将数据从oracle移动到HDFS,处理并从HDFS移动到Teradata
我的要求是
还需要每15分钟进行一次整个处理.源数据的量可以接近50GB,并且处理的数据也可以是相同的. 经过互联网搜索后,我发现了
这是一个正确的选择,这是否适用于所需的时间段(请注意,这不是每日批次)? 我发现的其他选项如下
请分享您对这些选项的想法以及任何其他可能性. 看起来你有几个问题,所以让我们试着把它分解.在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的好处是处理将在您的集群中分发,因此您可以完全控制计划. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |