我有三个表在我的mysql数据库:
parent_table
有两个连接表:foo
, bar
,其中parent_table
有多个foo
和bar
, foo
, bar
属于parent_table
。
如何使用sqoop或其他方法将这些表导入到hive中进行查询?
示例如下:
sqoop import-all-tables
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db"
--username=retail_dba
--password=cloudera
--warehouse-dir=/user/hive/warehouse/retail_stage.db
——connect子句中的retail_db是mysql数据库——username子句中的Retail_dba是mysql用户,对mysql数据库retail_db下的表具有读权限Cloudera中的——password子句是mysql用户retail_dba的密码/user/hive/warehouse/retail_stage.db中的——warehouse-dir是hadoop目录(在这种情况下是hive数据库,可以有任何有效的hadoop目录)。上面的脚本将在/user/hive/warehouse/retail_stage.db下为每个mysql表创建目录。
您可以像在Cloudera Quickstart VM中那样运行此脚本
你可以先看一下描述如何使用Sqoop的Sqoop用户指南或更多面向用例的书籍Apache Sqoop Cookbook。这两个源应该能够帮助您理解在这种情况下需要做什么。