10

项目遇到的问题之Sqoop

 3 years ago
source link: https://zjinc36.github.io/2020/08/28/2020-20200828-%E9%A1%B9%E7%9B%AE%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E4%B9%8BSqoop/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

项目遇到的问题之Sqoop

想了20分钟的博客名

世界是唯物辩证的

项目遇到的问题之Sqoop

Aug 28, 2020BigData

Sqoop数据导出Parquet

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

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

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

Sqoop导出数据到MySql时,使用4个map怎么保证数据的一致性

因为在导出数据的过程中map任务可能会失败,可以使用--staging-table --clear-staging

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'

任务执行成功首先在tmp临时表中,然后将tmp表中的数据复制到目标表中(这个时候可以使用事务,保证事务的一致性)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK