前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Sqoop

作者头像
挽风
发布2023-10-17 15:38:06
2020
发布2023-10-17 15:38:06
举报
文章被收录于专栏:小道

1 Sqoop参数

代码语言:javascript
复制
/opt/module/sqoop/bin/sqoop import \
--connect \
--username \
--password \
--target-dir \
--delete-target-dir \
--num-mappers \
--fields-terminated-by   \
--query   "$2" ' and $CONDITIONS;'

2 Sqoop导入导出Null导致存储一致性问题

  Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性。在导出数据时采用–input-null-string和–input-null-non-string两个参数。导入数据时采用–null-string和–null-non-string。

3 Sqoop数据导出一致性问题

  Sqoop在导出到Mysql时,使用4个Map任务,过程中有2个任务失败,那此时MySQL中存储了另外两个Map任务导入的数据,此时业务正好看到了这个报表数据。而开发工程师发现任务失败后,会调试问题并最终将全部数据正确的导入MySQL,那后面业务再次看报表数据,发现本次看到的数据与之前的不一致,这在生产环境是不允许的。

  Since Sqoop breaks down export process into multiple transactions, it is possible that a failed export job may result in partial data being committed to the database. This can further lead to subsequent jobs failing due to insert collisions in some cases, or lead to duplicated data in others. You can overcome this problem by specifying a staging table via the --staging-table option which acts as an auxiliary table that is used to stage exported data. The staged data is finally moved to the destination table in a single transaction.官方链接

  –staging-table方式

代码语言:javascript
复制
sqoop export 
	--connect jdbc:mysql://192.168.137.10:3306/user_behavior 
	--username root 
	--password 123456 
	--table app_cource_study_report 
	--columns watch_video_cnt,complete_video_cnt,dt 
	--fields-terminated-by "\t" 
	--export-dir "/user/hive/warehouse/tmp.db/app_cource_study_analysis_${day}" 
	--staging-table app_cource_study_report_tmp 
	--clear-staging-table 
	--input-null-string '\N'

4 Sqoop底层运行的任务是什么?

  只有Map阶段,没有Reduce阶段的任务。默认是4个MapTask。

5 Sqoop在导入数据的时候数据倾斜

  split-by:按照自增主键来切分表的工作单元;

  num-mappers:启动N个map来并行导入数据,默认4个;

6 Sqoop数据导出Parquet

  Ads层数据用Sqoop往MySql中导入数据的时候,如果用了orc(Parquet)不能导入,需转化成text格式。

    (1)创建临时表,把Parquet中表数据导入到临时表,把临时表导出到目标表用于可视化

    (2)ads层建表的时候就不要建Parquet表

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Sqoop参数
  • 2 Sqoop导入导出Null导致存储一致性问题
  • 3 Sqoop数据导出一致性问题
  • 4 Sqoop底层运行的任务是什么?
  • 5 Sqoop在导入数据的时候数据倾斜
  • 6 Sqoop数据导出Parquet
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档