导入到HDFS或Hive(直接)

卡利约格(Kaliyug)拮抗剂
  1. 堆栈:使用Ambari 2.1安装了HDP-2.3.2.0-2950
  2. 源是一个大约1.6TB的MS SQL数据库和大约25个表。最终目的是检查现有查询是否可以在HDP上更快地运行
  3. 没有足够的时间和可用性来多次导入数据,因此,导入必须执行一次,并且需要对Hive表,查询等进行试验,例如,首先创建一个普通的分区表在ORC中。如果还不够,请尝试索引等等。可能的话,我们还将评估Parquet格式,依此类推

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

现在,我计划创建一个Hive表,但是这里提到一些问题

我的问题是,鉴于以上所有要点,最安全的方法(在时间上并且不会弄乱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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章