2016-11-14 33 views
0

我在將MySql轉儲導入到Hive時遇到問題。從MySql轉儲導入到配置單元

我使用sqoop連接器成功將數據從MySql導入Hive。但是,還有更多數據轉儲需要導入到Hive。首先恢復數據庫是不可行的。由於轉儲大小爲300G,因此需要3天才能恢復。另外,由於磁盤空間問題,我無法在MySql上還原兩個以上的文件。

因此,我正在尋找將MySql轉儲中的數據直接導入到配置單元中,而無需還原到MySql中。

還有一個問題,MySql轉儲是有多個插入語句(大約10億)。那麼它會爲每個插入創建多個文件?在那種情況下,如何合併它們?

+0

提供更多詳細信息,如 – Phoenix

+0

中的數據格式我有一個mysql數據轉儲,我想直接導入到配置單元(HDFS底層它),而無需將其恢復到MySql。 –

回答

0

您可以使用Hive提供的「load」命令加載存在於本地目錄中的數據。

示例:這會將文件fileName.csv中存在的數據加載到您的配置單表tableName中。

load data local inpath '/tmp/fileName.csv' overwrite into table tableName; 

如果您的數據存在於HDFS中,請使用相同的加載命令,而不使用本地選項。

示例:這裏/ tmp/DataDirectory是一個HDFS目錄,該目錄中的所有文件都將加載到Hive中。

load data inpath '/tmp/DataDirectory/*' overwrite into table tableName; 

注意:由於蜂巢是讀模式,一定要採取你的行分隔符和字段分隔符在文件和要裝載到蜂巢表都一樣照顧。