4.作为4.的解决方案,我决定首先将表以Avro格式导入HDFS中,例如:
sqoop import --connect 'jdbc:sqlserver://server;database=dbname' --username someuser --password somepassword --as-avrodatafile --num-mappers 8 --table tablename --warehouse-dir /dataload/tohdfs/ --verbose
我的问题是,鉴于以上所有要点,最安全的方法(在时间上并且不会弄乱HDFS等)是什么?首先引入HDFS,创建Hive表并进行实验或直接导入Hive(我现在不知道如何我删除了这些表并希望重新开始,是否必须重新导入数据)
对于加载,您可以尝试以下选项
1)您可以将mysql导入到csv文件中,该文件将作为备份存储在Linux文件系统中,然后将distcp到HDFS。
2)如前所述,您可以执行Sqoop导入并将数据加载到Hive表(parent_table)。
要使用不同的格式和分区表检查性能,可以使用CTAS(选择时创建表)查询,您可以在其中从基表(parent_table)创建新表。在CTAS中,您可以提及parque或avro等格式,并且还提供分区选项。
即使删除CTAS创建的新表,基本表也在那里。
根据我的经验,Parque +分区将提供最佳性能,但这也取决于您的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句