Hive 使用Sqoop将视图(数据库表)从Oracle迁移到配置单元

Hive 使用Sqoop将视图(数据库表)从Oracle迁移到配置单元,hive,sqoop,bigdata,Hive,Sqoop,Bigdata,我是大数据的初学者,我们正在使用sqoop将视图从Oracle迁移到Hive,使用Cloudera管理,我们正在使用的命令示例如下: sqoop import -D mapred.child.java.opts="\-Djava.security.egd=file:/my_url" \ -D mapreduce.map.memory.mb=9192 -D mapreduce.map.java.opts=-Xmx4096m \ --connect jdbc:oracle:thin:@//

我是大数据的初学者,我们正在使用sqoop将视图从Oracle迁移到Hive,使用Cloudera管理,我们正在使用的命令示例如下:

sqoop import -D mapred.child.java.opts="\-Djava.security.egd=file:/my_url" \ 
  -D mapreduce.map.memory.mb=9192 -D mapreduce.map.java.opts=-Xmx4096m \
  --connect jdbc:oracle:thin:@//my_url --username "my_user" \
  --password "my_password" --table my_view_name --compress \
  --compression-codec=snappy --as-parquetfile \
  --create-hive-table --hive-database my_db_name \
  --hive-table our_table_anme --hive-import \
  -m 8 --hive-overwrite \
  --map-column-java column_name=String,column_name=String,column_name=String,column_name=Float --split-by cloumn_name
到目前为止,它进展顺利,有点慢,有一些大的董事会

问题:我们必须用更大的表来迁移视图,这会导致问题,并且我们认为蜂箱不能承受负载。 对加载此信息有何建议


注意:我们考虑只复制表,然后尝试构建视图的选项,但是视图对表属性进行了复杂的修改,并且计算量很大,在我们的例子中,在impala中创建这个是非常复杂的。

加载非常大的表的模板:使用query而不是带有where子句的表来加载分区+使用split column(尝试找到一些整数均匀分布的列)。并行或顺序运行sqoop以加载不同的分区。理想情况下,根据
where
子句,if谓词下推将在Oracle中工作。如果没有,并且Oracle端是一个瓶颈,那么使用相同的技术分别加载表:where+split,然后使用额外的配置单元进程具体化视图

HDFS
上创建视图是一种开销。我们还将整个视图作为配置单元中的表导入。可以用来提高性能的优化技术很少。谢谢,事实上,我们已经在使用了-,很抱歉,我在给出的示例中错误地省略了它。是的,我明白了。它应该是例外,没有拆分列和-m