mysql - 如何在不使用 sqoop 的情况下将行从 mysql 复制到 hive
问题描述
我必须从那里复制整个 mysql 表到 hive。我不能使用 sqoop。
我找到了一种从 mysql 获取整个数据集的方法,并且逐行(循环到数据集),复制到配置单元中......
但这是一个非常慢的方法(50k 行在我的集群中需要几个小时)
是像“ *insert into mysql select * from hive* ”这样的方式吗?
谢谢你,马可
解决方案
为什么不使用 sqlplus 执行查询并将数据加载到文件中,然后将此文件放入 HDFS
sqlplus -s user/password@dbname <<EOF
set feedback off trimspool on
spool file_name.txt;
select * from table_name;
spool off;
exit;
EOF
将数据放入文件 file_name.txt 后,您可以直接将数据放入 hdfs
hadoop fs -put file_name.txt /myhdfsfolder/
推荐阅读
- node.js - 使用 Winston 3.0 和 Nodejs 的 Json 格式日志未在 Kibana 中显示
- r - 基于 R 中的累积概率函数计算结果可能性的问题
- python - Python“无价值”字典
- sql-server - 按特定(每个)日期检索订单数,例如周六有 20 个订单,周日有 22 个怎么做
- c# - 开/关暗模式按钮
- python - 如何解决此弃用警告
- c# - 如何将锁系统状态添加到我的 SaveState 类?
- arrays - 如何将对象传递给一个方法,然后再传递给另一个方法
- three.js - 如何将旧的演示升级到最新版本的three.js?
- regex - 不允许 XSD 正则表达式中的特定字符串