Het lijkt erop dat je meerdere vragen hebt, dus laten we proberen ze op te splitsen.
Importeren in HDFS
Het lijkt erop dat je op zoek bent naar Sqoop . Sqoop is een tool waarmee u eenvoudig gegevens in/uit HDFS kunt overbrengen en waarmee u verbinding kunt maken met verschillende databases, waaronder native Oracle. Sqoop is compatibel met de Oracle JDBC thin driver. Hier is hoe u zou overzetten van Oracle naar HDFS:
sqoop import --connect jdbc:oracle:[email protected]:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir
Voor meer informatie:hier en hier . Merk op dat je met Sqoop ook rechtstreeks in een Hive-tabel kunt importeren, wat handig kan zijn om je analyse uit te voeren.
Verwerking
Zoals je hebt opgemerkt, is het een goed idee om Hive te gebruiken om je analyse uit te voeren, aangezien je gegevens in eerste instantie relationeel zijn, omdat je misschien meer bekend bent met SQL-achtige syntaxis. Varken is meer pure relationele algebra en de syntaxis is NIET SQL-achtig, het is meer een kwestie van voorkeur, maar beide benaderingen zouden goed moeten werken.
Omdat je met Sqoop gegevens rechtstreeks in Hive kunt importeren, zouden je gegevens direct klaar moeten zijn om te worden verwerkt nadat ze zijn geïmporteerd.
In Hive zou je je query kunnen uitvoeren en hem vertellen om de resultaten in HDFS te schrijven:
hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."
Exporteren naar TeraData
Cloudera heeft vorig jaar een connector voor Teradata voor Sqoop uitgebracht zoals beschreven hier , dus je moet een kijkje nemen, want dit ziet er precies uit wat je wilt. Hier is hoe je het zou doen:
sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output
Het hele ding is zeker te doen in welke tijdsperiode je maar wilt, wat uiteindelijk van belang is, is de grootte van je cluster, als je het snel wilt, schaal dan je cluster op als dat nodig is. Het goede aan Hive en Sqoop is dat de verwerking in je cluster wordt gedistribueerd, zodat je volledige controle hebt over de planning.