有没有将结果从Pig直接导出到像mysql这样的数据库的方法?一种将结果从Pig导出到数据库的方法
11
A
回答
7
在记住orangeoctopus所说的内容(提防DDOS ...)的时候,你看看DBStorage?
data = LOAD '...' AS (...);
...
STORE data INTO DBStorage('com.mysql.jdbc.Driver', 'dbc:mysql://host/db', 'INSERT ...');
4
我看到的主要问题是每个reducer实际上都会在同一时间插入到数据库中。
如果您不认为这会是一个问题,我建议您编写custom Storage method,它使用JDBC(或类似的东西)直接插入到数据库中,并且不向HDFS写任何内容。
如果您害怕在您自己的数据库上执行DDOS攻击,可能收集HDFS上的数据并对MySQL执行单独的批量加载会更好。
2
我目前正在试验一个嵌入式猪应用程序,它通过PigServer.OpenIterator和JDBC连接将结果加载到mysql中。它在测试中工作得很好,但我还没有尝试过。这与已经建议的自定义存储方法类似,但是从单点开始运行,所以不会发生意外的DDOS攻击。如果不从数据库服务器运行负载(我个人更喜欢除了数据库本身之外什么都不运行),那么实际上最终会支付两次网络传输成本(群集 - >分段计算机,分段计算机 - >数据库服务器)服务器),但这与“写出文件并批量加载”选项没有区别。
1
2
Sqoop可能是要走的好方法,但它是很难建立(恕我直言)作为所有这些的Hadoop相关的项目...
猪的DBStorage是工作正常(至少用于存储)。
不要忘记注册的PiggyBank和你的MySQL驱动程序:
-- Register Piggy bank
REGISTER /opt/cmr/pig/pig-0.10.0/lib/piggybank.jar;
-- Register MySQL driver
REGISTER /opt/cmr/mysql/drivers/mysql-connector-java-5.1.15-bin.jar
下面是一个示例调用:
-- Store a relation into a SQL table
STORE relation INTO 'unused' USING org.apache.pig.piggybank.storage.DBStorage('com.mysql.jdbc.Driver', 'jdbc:mysql://<mysqlserver>/<database>', '<login>', '<password>', 'REPLACE INTO <table> (<column1>, <column2>) VALUES (?, ?)');
相关问题
- 1. 将数据从一种方法传递到另一种方法
- 2. 将数值从一种方法返回到另一种方法
- 3. 将Apex从一个数据库导出/导入到另一个数据库
- 4. 将整个Neo4j数据库/密码结果导出到GraphJSON
- 5. 从查询导出的数据结果
- 6. 从旧的数据库结构导出到新的数据库结构
- 7. 哪种方法可以将数据从一个Informix 10数据库存档到另一个数据库?
- 8. 我想找出一种方法来简化从访问数据库导入数据到.Net应用程序
- 9. 将数据从一个MySQL数据库导入到另一个数据库的最有效方法
- 10. 从数据库导出数据到HTML?
- 11. 将整个数组从一种方法传递到另一种
- 12. 将参数从一种方法传递到另一种
- 13. 团结MVC3 - 配置使用数据库的第一种方法
- 14. 从一种方法返回数组到另一种方法
- 15. 如何从另一种方法添加结果数组
- 16. 从一台机器导入/导出数据库到另一台
- 17. 如何将数据从Hadoop导出到MySQL /任何数据库?
- 18. 使用ClosedXML将数据从excel导出到数据库表
- 19. Wordpress使用$ wpdb将数据从数据库导出到csv
- 20. 将数据从BigQuery导出到本地PostgreSQL/MySql数据库
- 21. 如何将数据从SQL数据库导出到MS Excel中
- 22. 如何将数据从csv文件导出到mysql数据库?
- 23. CodeIgniter:将数据从数据库导出到Excel中并下载
- 24. 将数据从一个数据库导出到标准DB厂商的策略
- 25. 将结果输出到数据框中
- 26. 如何将nunit结果导入到数据库
- 27. 将ASPNETDB数据导出到另一个数据库
- 28. 一种将数组及其键值保存到数据库的有效方法
- 29. 将Elasticsearch数据结果导出到CSV文件中
- 30. Microsoft SQL Server:如何从数据库导出数据并将它们导入到另一个数据库?
好像有没有办法解决编写使用JDBC一个UDF。 。谢谢! – Christoph 2011-01-11 09:52:26