ToB企服应用市场:ToB评测及商务社交产业平台
标题:
大数据-242 离线数仓 - 电商焦点交易 数据导入 全量数据导入方案 产物分类
[打印本页]
作者:
石小疯
时间:
2024-12-11 09:16
标题:
大数据-242 离线数仓 - 电商焦点交易 数据导入 全量数据导入方案 产物分类
点一下关注吧!!!非常感谢!!持续更新!!!
Java篇开始了!
现在开始更新 MyBatis,一起深入浅出!
现在已经更新到了:
Hadoop(已更完)
HDFS(已更完)
MapReduce(已更完)
Hive(已更完)
Flume(已更完)
Sqoop(已更完)
Zookeeper(已更完)
HBase(已更完)
Redis (已更完)
Kafka(已更完)
Spark(已更完)
Flink(已更完)
ClickHouse(已更完)
Kudu(已更完)
Druid(已更完)
Kylin(已更完)
Elasticsearch(已更完)
DataX(已更完)
Tez(已更完)
数据发掘(已更完)
Prometheus(已更完)
Grafana(已更完)
离线数仓(正在更新…)
章节内容
上节我们完成了如下的内容:
电商焦点交易 业务数据表结构
订单、产物、分类、店肆、付出表
数据导入
已经确定的事变:DataX、导出7张表的数据。
MySQL导出:全量导出、增量导出(导出前一天的数据)
业务数据生存在MySQL中,逐日凌晨上一天的表数据:
表数据量少,采用全量方式导出MySQL
表数据量多,而且根据字段能区分出天天新增数据,采用增量的方式导出MySQL
3张增量表:
订单表 wzk_trade_orders
订单产物表 wzk_order_produce
产物信息表 wzk_product_info
4张全量表:
产物分量表 wzk_product_category
商家店肆表 wzk_shops
商家地区构造表 wzk_shop_admin_org
付出方式表 wzk_payment
数据库导入
上述的内容中,可以先把表构建出来,然后天生一批数据,用于测试,我这里就导入天生好的数据了。
业务需求
电商体系业务中最关键的业务,电商的运营活动都是围绕这个主题睁开。
选取的指标包括:订单数、商品数、付出金额,对这些指标按贩卖区域、商品范例分析。
在大数据的分析中,"电商焦点交易"是指电商平台上全部与商品交易相关的焦点活动和交易数据的聚集。详细来说,焦点交易涵盖了商品的浏览、加购物车、下单、付出、发货、收货等一系枚活动,它们直接影响电商平台的运营效率、用户体验和商业代价。
需求板块
电商平台的焦点交易可以分为以下几个重要环节,每个环节都涉及大量数据的收集、存储和分析:
商品浏览:用户浏览商品的活动数据,比方用户查看了哪些商品、查看时长、是否点击了相关广告或推荐商品等。这些数据可以或许帮助平台了解用户的兴趣点,进而优化商品推荐和个性化营销策略。
加入购物车:用户将商品添加到购物车中的活动。通过分析购物车中的商品,可以获取用户的购买意图和倾向,帮助商家调整商品定价、库存和促销策略。
下单:用户在电商平台上完成的订单天生活动。包括订单的创建、订单内容、用户的收货地址、选择的付出方式等数据。订单数据是电商交易中的焦点,通常涉及大量的数据信息,要求体系可以或许高效地处理和存储。
付出:付出是交易中至关重要的环节,付出数据可以通过付出方式、付出乐成与否、付出金额、付出时间等维度举行分析。这部门数据可以帮助平台评估差别付出方式的受接待水平,并举行相应的优化。
发货:商品发货数据记载了商家发货的时间、物流公司、物流单号等信息。通过对发货数据的分析,可以判断出物流时效、发货效率等关键指标,进一步优化供应链和物流流程。
收货和评价:用户收到商品后的评价、退换货活动等。评价数据不但反映了商品的质量和用户满意度,还对后续的购买决定产生影响。此外,退换货数据也可以或许反映出商品质量问题和物流中的痛点。
全量数据导入
MySQL => HDFS => Hive
逐日加载全量数据,形成新的分区
MySQL Reader => HDFS Writer
产物分类表
vim /opt/wzk/datax/product_category.json
复制代码
写入的内容如下所示:
数据量小的表没有须要使用多个channel,使用多个channel会天生多个小文件
实验命令之前要在HDFS上创建对应的目录:/user/data/trade.db/product_category/dt=yyyy-mm-dd
{
"job": {
"setting": {
"speed": {
"channel": 1
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "hive",
"password": "hive@wzk.icu",
"column": [
"catId",
"parentId",
"catName",
"isShow",
"sortNum",
"isDel",
"createTime",
"level"
],
"connection": [
{
"table": [
"wzk_product_category"
],
"jdbcUrl": [
"jdbc:mysql://h122.wzk.icu:3306/ebiz"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://h121.wzk.icu:9000",
"fileType": "text",
"path": "/user/data/trade.db/product_category/dt=$do_date",
"fileName": "product_category_$do_date",
"column": [
{
"name": "catId",
"type": "INT"
},
{
"name": "parentId",
"type": "INT"
},
{
"name": "catName",
"type": "STRING"
},
{
"name": "isShow",
"type": "TINYINT"
},
{
"name": "sortNum",
"type": "INT"
},
{
"name": "isDel",
"type": "TINYINT"
},
{
"name": "createTime",
"type": "STRING"
},
{
"name": "level",
"type": "TINYINT"
}
],
"writeMode": "append",
"fieldDelimiter": ","
}
}
}
]
}
}
复制代码
写入的结果如下图:
加载数据的过程如下:
do_date='2020-07-01'
# 创建目录
hdfs dfs -mkdir -p /user/data/trade.db/product_category/dt=$do_date
# 数据迁移
python $DATAX_HOME/bin/datax.py -p "-Ddo_date=$do_date" /opt/wzk/datax/product_category.json
# 加载数据
# hive 还没有表,后续再执行
hive -e "alter table ods.ods_trade_product_category add partition(dt='$do_date')"
复制代码
对应的截图如下所示:
DataX将MySQL数据加载到HDFS上:
商家店肆表
wzk_shops => ods.ods_trade_shops
vim /opt/wzk/datax/shops.json
复制代码
创建的内容:
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "hive",
"password": "hive@wzk.icu",
"column": [
"shopId",
"userId",
"areaId",
"shopName",
"shopLevel",
"status",
"createTime",
"modifyTime"
],
"connection": [
{
"table": [
"wzk_shops"
],
"jdbcUrl": [
"jdbc:mysql://h122.wzk.icu:3306/ebiz"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://h121.wzk.icu:9000",
"fileType": "text",
"path": "/user/data/trade.db/shops/dt=$do_date",
"fileName": "shops_$do_date",
"column": [
{
"name": "shopId",
"type": "INT"
},
{
"name": "userId",
"type": "INT"
},
{
"name": "areaId",
"type": "INT"
},
{
"name": "shopName",
"type": "STRING"
},
{
"name": "shopLevel",
"type": "TINYINT"
},
{
"name": "status",
"type": "TINYINT"
},
{
"name": "createTime",
"type": "STRING"
},
{
"name": "modifyTime",
"type": "STRING"
}
],
"writeMode": "append",
"fieldDelimiter": ","
}
}
}
]
}
}
复制代码
对应的截图如下所示:
数据加载实验如下指令:
do_date='2020-07-02'
# 创建目录
hdfs dfs -mkdir -p /user/data/trade.db/shops/dt=$do_date
# 数据迁移
python $DATAX_HOME/bin/datax.py -p "-Ddo_date=$do_date" /opt/wzk/datax/shops.json
# 加载数据
# hive中还没有表 后续再执行
hive -e "alter table ods.ods_trade_shops add
partition(dt='$do_date')"
复制代码
DataX 数据库数据导入到 HDFS 结果如下:
商家地区构造表
wzk_shop_admin_org => ods.ods_trade_shop_admin_org
vim /opt/wzk/datax/shop_org.json
复制代码
编写的内容如下所示:
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "hive",
"password": "hive@wzk.icu",
"column": [
"id",
"parentId",
"orgName",
"orgLevel",
"isDelete",
"createTime",
"updateTime",
"isShow",
"orgType"
],
"connection": [
{
"table": [
"wzk_shop_admin_org"
],
"jdbcUrl": [
"jdbc:mysql://h122.wzk.icu:3306/ebiz"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://h121.wzk.icu:9000",
"fileType": "text",
"path": "/user/data/trade.db/shop_org/dt=$do_date",
"fileName": "shop_admin_org_$do_date.dat",
"column": [
{
"name": "id",
"type": "INT"
},
{
"name": "parentId",
"type": "INT"
},
{
"name": "orgName",
"type": "STRING"
},
{
"name": "orgLevel",
"type": "TINYINT"
},
{
"name": "isDelete",
"type": "TINYINT"
},
{
"name": "createTime",
"type": "STRING"
},
{
"name": "updateTime",
"type": "STRING"
},
{
"name": "isShow",
"type": "TINYINT"
},
{
"name": "orgType",
"type": "TINYINT"
}
],
"writeMode": "append",
"fieldDelimiter": ","
}
}
}
]
}
}
复制代码
对应的截图如下所示:
数据加载脚本:
do_date='2020-07-01'
# 创建目录
hdfs dfs -mkdir -p /user/data/trade.db/shop_org/dt=$do_date
# 数据迁移
python $DATAX_HOME/bin/datax.py -p "-Ddo_date=$do_date" /opt/wzk/datax/shop_org.json
# 加载数据
# hive中还没有表 后续再执行
hive -e "alter table ods.ods_trade_shop_admin_org add
partition(dt='$do_date')"
复制代码
写入的内容如下所示,从数据库将数据加载到HDFS中:
付出方式表
wzk_payments => ods.ods_trade_payments
vim /opt/wzk/datax/payments.json
复制代码
对应的内容如下:
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "hive",
"password": "hive@wzk.icu",
"column": [
"id",
"payMethod",
"payName",
"description",
"payOrder",
"online"
],
"connection": [
{
"table": [
"wzk_payments"
],
"jdbcUrl": [
"jdbc:mysql://h122.wzk.icu:3306/ebiz"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://h121.wzk.icu:9000",
"fileType": "text",
"path": "/user/data/trade.db/payments/dt=$do_date",
"fileName": "payments_$do_date.dat",
"column": [
{
"name": "id",
"type": "INT"
},
{
"name": "payMethod",
"type": "STRING"
},
{
"name": "payName",
"type": "STRING"
},
{
"name": "description",
"type": "STRING"
},
{
"name": "payOrder",
"type": "INT"
},
{
"name": "online",
"type": "TINYINT"
}
],
"writeMode": "append",
"fieldDelimiter": ","
}
}
}
]
}
}
复制代码
对应的截图如下:
数据导入的过程如下:
do_date='2020-07-01'
# 创建目录
hdfs dfs -mkdir -p /user/data/trade.db/payments/dt=$do_date
# 数据迁移
python $DATAX_HOME/bin/datax.py -p "-Ddo_date=$do_date" /opt/wzk/datax/payments.json
# 加载数据
# hive还没有表 后续再执行
hive -e "alter table ods.ods_trade_payments add
partition(dt='$do_date')"
复制代码
从MySQL中将数据加载到HDFS中:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4