看起来你有几个问题,所以让我们试着把它分解.
在HDFS中导入
看起来你正在寻找Sqoop. Sqoop是一个工具,可以让你轻松地将数据传入/传出HDFS,并可以本地连接到包括Oracle在内的各种数据库. Sqoop与Oracle JDBC瘦驱动程序兼容.以下是从Oracle转移到HDFS的方法:
sqoop import --connect jdbc:oracle:thin@myhost:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir
有关更多信息:here和here.请注意,您也可以直接导入带有Sqoop的Hive表,这样可以方便地进行分析.
处理
正如您所指出的,由于您的数据最初是关系型的,因此使用Hive进行分析是个好主意,因为您可能更熟悉类似SQL的语法. Pig是更纯粹的关系代数,语法不是类似SQL的,它更像是一个偏好问题,但两种方法都应该可以正常工作.
由于您可以使用Sqoop直接将数据导入Hive,因此您的数据在导入后应该可以直接处理.
在Hive中,您可以运行查询并告诉它在HDFS中写入结果:
hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."
导出到TeraData
Cloudera去年发布了一个连接Teradata for Sqoop的连接器,如here所述,所以你应该看一下,看起来就像你想要的那样.您将如何做到这一点:
sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output
整个过程绝对可以在你想要的任何时间段内完成,最终重要的是集群的大小,如果你想快速,那么根据需要扩展你的集群. Hive和Sqoop的好处是处理将在您的集群中分发,因此您可以完全控制计划.