看起来你有几个问题,所以让我们试着分解一下。
在 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
欲了解更多信息:这里和这里。请注意,您也可以使用 Sqoop 直接导入 Hive 表,这可以方便您进行分析。
加工
正如您所指出的,由于您的数据最初是关系型的,因此使用 Hive 进行分析是一个好主意,因为您可能更熟悉类似 SQL 的语法。Pig 是更纯粹的关系代数,语法不像 SQL,它更像是一个偏好问题,但两种方法都应该可以正常工作。
由于您可以使用 Sqoop 直接将数据导入 Hive,因此您的数据应该在导入后直接准备好进行处理。
在 Hive 中,您可以运行查询并告诉它在 HDFS 中写入结果:
hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."
导出到 TeraData
Cloudera 去年发布了一个用于 Sqoop 的 Teradata 连接器,如此处所述,因此您应该查看一下,因为这看起来正是您想要的。以下是您的操作方法:
sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output
整个事情在您想要的任何时间段内都是绝对可行的,最终重要的是您的集群的大小,如果您想要它快速然后根据需要扩展您的集群。Hive 和 Sqoop 的好处是处理将分布在您的集群中,因此您可以完全控制计划。