Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déplacer les données d'oracle vers HDFS, traiter et déplacer vers Teradata depuis HDFS

Il semble que vous ayez plusieurs questions, alors essayons de les décomposer.

Importer dans HDFS

Il semble que vous recherchiez Sqoop . Sqoop est un outil qui vous permet de transférer facilement des données vers/depuis HDFS, et peut se connecter nativement à diverses bases de données, y compris Oracle. Sqoop est compatible avec le pilote léger Oracle JDBC. Voici comment effectuer le transfert d'Oracle vers HDFS :

sqoop import --connect jdbc:oracle:[email protected]:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir

Pour plus d'informations :ici et ici . Notez que vous pouvez également importer directement dans une table Hive avec Sqoop, ce qui peut être pratique pour faire votre analyse.

Traitement

Comme vous l'avez noté, étant donné que vos données sont initialement relationnelles, il est judicieux d'utiliser Hive pour effectuer votre analyse, car vous êtes peut-être plus familiarisé avec la syntaxe de type SQL. Pig est plus de l'algèbre relationnelle pure et la syntaxe n'est PAS de type SQL, c'est plus une question de préférence, mais les deux approches devraient fonctionner correctement.

Étant donné que vous pouvez importer des données dans Hive directement avec Sqoop, vos données doivent être directement prêtes à être traitées après leur importation.

Dans Hive, vous pouvez exécuter votre requête et lui dire d'écrire les résultats dans HDFS :

hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."

Exportation vers TeraData

Cloudera a publié l'année dernière un connecteur pour Teradata pour Sqoop comme décrit ici , vous devriez donc jeter un coup d'œil car cela ressemble exactement à ce que vous voulez. Voici comment procéder :

sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output

Le tout est certainement faisable dans la période de temps que vous souhaitez, en fin de compte, ce qui comptera, c'est la taille de votre cluster, si vous le voulez rapidement, augmentez votre cluster selon vos besoins. La bonne chose avec Hive et Sqoop est que le traitement sera distribué dans votre cluster, vous avez donc un contrôle total sur le calendrier.