ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL

大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL 点一下关注吧非常感谢持续更新----------------------Java篇开始了---------目前开始更新 MyBatis一起深入浅出目前已经更新到了---------* Hadoop已更完* HDFS已更完* MapReduce已更完* Hive已更完* Flume已更完* Sqoop已更完* Zookeeper已更完* HBase已更完* Redis 已更完* Kafka已更完* Spark已更完* Flink已更完* ClickHouse已更完* Kudu已更完* Druid已更完* Kylin已更完* Elasticsearch已更完* DataX已更完* Tez已更完* 数据挖掘已更完* Prometheus已更完* Grafana已更完* 离线数仓正在更新…# 章节内容-------上节我们完成了如下的内容* 广告业务 测试* FlumeAgent 加载ODS、DWD层导入数据----### 加载ADS层#### ad_show_page sh /opt/wzk/hive/ads_load_ad_show_page.sh 2020-07-21 执行结果如下图所示查看Hive中的数据 hive use ads; select * from ads_ad_show_place limit 5; 运行结果如下图所示继续导入其他数据 sh /opt/wzk/hive/ads_load_ad_show_page.sh 2020-07-22 sh /opt/wzk/hive/ads_load_ad_show_page.sh 2020-07-23 sh /opt/wzk/hive/ads_load_ad_show_page.sh 2020-07-24 …省略 最终的Hive的数据量如下所示 select count() from ads_ad_show_place; 对应图片为#### ad_show_page_window sh /opt/wzk/hive/ads_load_ad_show_page_window.sh 2020-07-21 执行结果如下所示查看Hive中的数据如下 hive use ads; select * from ads_ad_show_place_window limit 5; 执行结果如下图所示继续加载其他的数据 sh /opt/wzk/hive/ads_load_ad_show_page_window.sh 2020-07-22 sh /opt/wzk/hive/ads_load_ad_show_page_window.sh 2020-07-23 sh /opt/wzk/hive/ads_load_ad_show_page_window.sh 2020-07-24 …省略 Hive中的数据总数如下 select count() from ads_ad_show_place_window; 运行结果如下所示导出数据----### 执行步骤* 在MySQL创建对应的表* 创建配置文件JSON* 执行命令使用JSON配置文件测试* 编写执行脚本Shell* Shell脚本的测试### MySQL drop table if exists dwads.ads_ad_show_place; create table dwads.ads_ad_show_place( ad_action tinyint, hour varchar(2), place varchar(20), product_id int, cnt int, dt varchar(10) ); 执行结果如下图所示### DataX#### 配置文件 vim /opt/wzk/datax/ads_ad_show_place.json 写入的内容如下所示 { “job”:{ “setting”:{ “speed”:{ “channel”:1 } }, “content”:[ { “reader”:{ “name”:“hdfsreader”, “parameter”:{ “path”:“/user/hive/warehouse/ads.db/ads_ad_show_place/dtKaTeX parse error: Expected }, got EOF at end of input: … value:do_date” } ], “fileType”:“text”, “encoding”:“UTF-8”, “fieldDelimiter”:“,” } }, “writer”:{ “name”:“mysqlwriter”, “parameter”:{ “writeMode”:“insert”, “username”:“hive”, “password”:“hivewzk.icu”, “column”:[ “ad_action”, “hour”, “place”, “product_id”, “cnt”, “dt” ], “preSql”:[ “delete from ads_ad_show_place where dt‘$do_date’” ], “connection”:[ { “jdbcUrl”:“jdbc:mysql://h122.wzk.icu:3306/dwads?useUnicodetruecharacterEncodingutf-8”, “table”:[ “ads_ad_show_place” ] } ] } } } ] } } 写入内容如下所示#### DataX 简介DataX 是由阿里巴巴开源的分布式离线数据同步工具用于解决不同存储系统之间的数据传输问题。它被设计为一种高效、稳定、易扩展的工具能够适应多种复杂的数据同步需求。#### 核心特点支持多种数据源* 关系型数据库 MySQL, PostgreSQL, Oracle, SQL Server, DB2 等。* NoSQL 数据库 MongoDB, HBase 等。* 大数据存储系统 Hive, MaxCompute (ODPS), HDFS。* 其他 FTP 文件、ElasticSearch 等。高性能* 基于多线程的并行架构能充分利用机器的多核性能。* 支持分片传输提高数据传输的吞吐量。灵活性和易用性* 配置文件化使用 JSON 格式的配置文件定义任务简单直观。* 支持任务调度可与调度工具集成实现定时任务。* 兼容多种数据格式和传输协议。扩展性* 插件式架构开发者可以通过编写 Reader 和 Writer 插件支持新的数据源。开源与社区支持* 基于 Apache 2.0 开源协议开发者可以自由使用和修改。* 拥有活跃的社区和丰富的文档支持。#### 组成部分Reader* 负责从数据源中读取数据。* 示例MySQLReader, HdfsReader。Writer* 负责将数据写入目标存储。* 示例MySQLWriter, HdfsWriter。Framework* DataX 的核心调度引擎负责 Reader 和 Writer 的协调工作。* 提供错误处理、数据校验、性能优化等功能。Transform* 用于对传输的数据进行处理和转换可选。* 例如数据格式的转换、字段的增删改等。#### 工作流程初始化* 加载用户配置的 JSON 文件解析 Reader 和 Writer 的配置。* 准备任务上下文。读取数据* Reader 读取源数据并以批量的方式输出。转换数据* 可选步骤Transform 模块对数据进行处理。写入数据* Writer 接收 Reader 输出的数据并将其写入目标存储。任务管理与监控* DataX 提供实时的任务运行日志和统计信息包括速度、成功率、错误信息等。### 执行导出 vim /opt/wzk/hive/ads_ad_show_place.sh 写入的内容如下所示 #!/bin/bash source /etc/profile JSON/opt/wzk/datax if [ -n “$1” ] ;then do_date$1 else do_datedate -d -1 day %Ffi pythonDATAXHOME/bin/datax.py−p−DdodateDATAX_HOME/bin/datax.py -p -Ddo_dateDATAXH​OME/bin/datax.py−p−Ddod​atedo_date $JSON/ads_ad_show_place.json 写入结果如下图执行脚本可以得到结果 sh /opt/wzk/hive/ads_ad_show_place.sh 2020-07-21 执行过程如下图所示查看结果----执行结束查看数据库的结果如下所示
返回列表