Как да преместите много данни от инстанция на AWS Oracle RDS към S3?

Имам огромно количество данни в една таблица (~7 милиарда реда) в инстанция на AWS Oracle RDS. Крайният резултат е, че искам тази таблица като стойности, разделени с тръба, съхранени в S3, така че да мога да я прочета в EMR. Това е основно еднократно нещо, така че имам нужда да работи точно и без да се налага да стартирам отново цялото качване, защото нещо е изтекло; Не ме интересува как работи или колко трудно/досадно е да се настрои. Имам root достъп до кутията на Oracle. Разгледах Data Pipelines, но изглежда, че поддържат само MySQL и трябва да го накарам да работи с Oracle. Освен това нямам достатъчно място на твърдия диск, за да изхвърля цялата таблица в CSV на екземпляра на Oracle и след това да я кача. Как мога да направя това?


person Jeff Tucker    schedule 03.03.2015    source източник


Отговори (2)


Можете да използвате Sqoop (http://sqoop.apache.org/), за да направите това. Можете да напишете sqoop скрипт, който може да бъде планиран като „EMR дейност“ под Data Pipeline.

Sqoop използва Hadoop и може да отваря множество връзки към Oracle и да зарежда.

Можете да съхранявате необработените си данни на S3 и директно да ги четете на EMR. Или можете да изберете да копирате това в EMR, като използвате дейността „S3Distcp“ (отново планирано в Data Pipeline, ако желаете).

Ако нямате нужда от планиране, можете да завъртите EMR клъстер с помощта на EMR конзола - и да стартирате Sqoop върху това.

person user1452132    schedule 04.03.2015
comment
Това изглежда обещаващо! Благодаря - person Jeff Tucker; 04.03.2015
comment
Проработи! В крайна сметка просто използвах sqoop директно като стъпка в моя EMR клъстер и след това използвах s3distcp като друга стъпка, така че няма тръбопровод за данни, но виждам как би било сравнително лесно да включа това в тръбопровод за данни в бъдеще. - person Jeff Tucker; 05.03.2015

Можете да използвате Python/boto, за да направите същото в по-малък мащаб. Копирането на 7 милиарда записа ще ви отнеме "само" 8 дни, като използвате една нишка. Можете да създадете опашка от 100 нишки и паралелно да обработвате дялове на Oracle таблица. Може да не е производствено решение, но работи за моите ad hoc работни места.

Разгледайте го Oracle_To_S3_Data_Uploader

person Alex B    schedule 06.04.2016