如何将拆分的HDFS文件加载到Oracle数据库?

时间:2017-07-26 07:38:19

标签: hadoop hive sqoop

我需要将数据从HDFS上的拆分文件加载到Oracle数据库。

[user@asdf 007]$ hadoop dfs -ls 
hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/*
Found 18 items
drwxrwxrwx   - bigsql hdfs          0 2017-07-24 01:00 hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=1
drwxrwxrwx   - bigsql hdfs          0 2017-07-24 01:00 hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=2
drwxrwxrwx   - bigsql hdfs          0 2017-07-24 01:00 hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=3
drwxrwxrwx   - bigsql hdfs          0 2017-07-24 01:00 hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=4
drwxrwxrwx   - bigsql hdfs          0 2017-07-24 01:00 hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=5
.......

如果我打开任何文件夹中的文件

hdfs://XXXXXX/split_files/test_folder/test_table_with_partitions/tm=2017-07-24/dept=5
他们没有时间和时间。他们内部的部门信息。因此,当我使用sqoop时,信息未加载到数据库表中。

如何将此信息也加载到数据库中?在sqoop中有没有选择呢?

1 个答案:

答案 0 :(得分:0)

从给定的详细信息看,您看到的HDFS文件来自Hive表。

要将分区的配置单元表导出到RDBMS,您必须使用--hcatalog-table的{​​{1}}参数。下面给出了一个示例,其中test1 hive表被分区并被导出到MySQL table test.test。

sqoop

要导出到Oracle数据库,您必须将sqoop export --connect jdbc:mysql://10.0.0.35:3306/test --username root --table test1 --hcatalog-table test1 替换为jdbc:mysql://10.0.0.35:3306/test