物流数仓-物流概念和数仓架构

1、数据仓库概念

        数据仓库(Data Warehouse),是为企业制定决策,提供数据支持的。可以帮助企业改进业务流程、提高产品质量等。

        数据仓库的输入数据通常包括:业务数据、用户行为数据(日志数据)和爬虫数据等。本项目仅对业务数据进行统计。

        业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。

2、项目需求和架构

2.1、项目需求分析

本项目仅对业务数据分析处理。
一、项目需求
1、业务数据采集平台搭建
2、数据仓库维度建模
3、分析,运单、线路、卡车、司机、快递等物流核心主题,统计上百个报表指标。
4、采用即席查询工具,随时进行指标分析
5、对集群性能进行监控,发生异常需要报警。
6、元数据管理
7、质量监控
8、权限管理

2.2、项目框架

2.2.1、项目选型

技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算

  • 数据采集传输: Flume,Kafka,DataX,Flink-CDC,Sqoop,Maxwell,Logstash
  • 数据存储: MySOL,HDFS,HBase,Redis,MongoDB
  • 数据计算: Hive, Spark,Tez,Flink,Storm
  • 数据查询: Presto,Kylin,Impala,Druid,ClickHouse,Doris
  • 数据可视化: Superset,Echarts,QuickBI,DataV
  • 任务调度: DolphinScheduler,Azkaban, Oozie,Airflow
  • 集群监控: Zabbix,Prometheus
  • 元数据管理: Atlas
  • 权限管理: Ranger,Sentry

2.2.2、系统数据流程设计

2.2.3、框架版本选型

选择Apache框架

注意事项: 框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。

 

3、物流系统业务简介

3.1、物流系统业务流程

        以用户下单寄件为例对业务流程进行说明。用户下单并支付完成后,快递员上门取件,而后提及到转运站。物流管理系统规划路线,生成运输任务。接下来分拣员分拣,将快递分派到指定运输班次。运输任务启动,每五分钟更新进度,经过若干转运中心、转运站(中间每个环节都要经历入站、分拣、出站三个环节),到达目标转运站(运输路线的最后一个转运站),由派件快递员领件,派送至收件方,后者签收,运单完成。

        此外,转运中心是市级的,转运站是区(县)级的,转运中心每天有八个发车班次,转运站每天有四个发车班次,转运中心互通,转运站不互通。

3.2、物流系统表结构

        以下为当前物流系统涉及到的业务数据表结构关系。这27张表以运单表、用户表等,用户表提供用户的详细信息,支付表提供该运单的支付详情,运单详情表提供运单的课程等情况。本次讲解以此27个表为例,实际项目中,业务数据库中表格远远不止这些。

3.2.1 城际公路里程表(a_template_city_distance

字段名

字段说明

id

编号(主键)

city_no1

城市1编号

city_no2

城市2编号

distance

距离(单位:km)

remark

城市名称(城市1名称 + 城市2名称)

3.2.2 小区表(base_complex

字段名

字段说明

id

编号(主键)

complex_name

小区名称

province_id

省份ID

city_id

城市ID

district_id

区(县)ID

district_name

区(县)名称

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.3 字典表(base_dic)

字段名

字段说明

id

编号(主键)

parent_id

父级编号

name

名称

dict_code

编码

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.4 机构表(base_organ

字段名

字段说明

id

编号(主键)

org_name

机构名称

org_level

机构等级(1为转运中心,2为转运站)

region_id

地区ID,1级机构为city,2级机构为district

org_parent_id

父级机构ID

points

多边形经纬度坐标集合

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.5 地区表(base_region_info

字段名

字段说明

id

编号(主键)

parent_id

父级地区ID

name

地区名称

dict_code

编码(行政级别)

short_name

简称

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.6 员工表(employee_info

字段名

字段说明

id

编号(主键)

username

用户名

password

密码

real_name

真实姓名

id_card

身份证号

phone

手机号

birthday

生日

gender

性别

address

地址

employment_date

入职日期

graduation_date

毕业日期

education

学历

position_type

岗位类别

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.7 快递员信息表(express_courier

字段名

字段说明

id

编号(主键)

emp_id

员工ID

org_id

所属机构ID

working_phone

工作电话

express_type

快递员类型(收货;发货)

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.8 快递员小区关系表(express_courier_complex

字段名

字段说明

id

编号(主键)

courier_emp_id

快递员员工编号

complex_id

小区编号

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.9 快递员取件任务表(express_task_collect

字段名

字段说明

id

编号(主键)

order_id

运单ID

status

状态

org_id

机构编号

org_name

机构名称

courier_emp_id

快递员员工编号

courier_name

快递员姓名

estimated_collected_time

预计揽收时间

estimated_commit_time

预计提交时间

actual_collected_time

实际揽收时间

actual_commit_time

实际提交时间

cancel_time

取消时间

remark

备注

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.10 快递员派件任务表(express_task_delivery

字段名

字段说明

id

编号(主键)

order_id

运单ID

status

任务状态

org_id

机构ID

org_name

机构名称

courier_emp_id

快递员员工编号

courier_name

快递员姓名

estimated_end_time

预估完成时间

start_delivery_time

实际开始时间

delivered_time

实际完成时间

is_rejected

是否拒收运货

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.11 运输线路表(line_base_info

字段名

字段说明

id

编号(主键)

name

线路名称

line_no

线路编号

line_level

线路级别

org_id

所属机构

transport_line_type_id

线路类型

start_org_id

起始机构id

start_org_name

起始机构名称

end_org_id

目标机构id

end_org_name

目标机构名称

pair_line_id

配对线路ID

distance

直线距离

cost

公路里程

estimated_time

预计时间(分钟)

status

状态 0:禁用 1:正常

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.12 班次表(line_base_shift

字段名

字段说明

id

编号(主键)

line_id

线路id

start_time

班次开始时间

est_end_time

预估到达时间

driver1_emp_id

第一司机

driver2_emp_id

第二司机

truck_id

卡车

pair_shift_id

配对班次(同一辆车一去一回的另一班次)

is_enabled

状态 0:禁用 1:正常

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.13 运单明细表(order_cargo

字段名

字段说明

id

编号(主键)

order_id

运单id

cargo_type

货物类型

volumn_length

长cm

volumn_width

宽cm

volumn_height

高cm

weight

重量 kg

remark

备注

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.14 运单表(order_info

字段名

字段说明

id

编号(主键)

order_no

运单号

status

运单状态

collect_type

取件类型,1为网点自寄,2为上门取件

user_id

客户id

receiver_complex_id

收件人小区id

receiver_province_id

收件人省份id

receiver_city_id

收件人城市id

receiver_district_id

收件人区县id

receiver_address

收件人详细地址

receiver_name

收件人姓名

receiver_phone

收件人电话

receive_location

起始点经纬度

sender_complex_id

发件人小区id

sender_province_id

发件人省份id

sender_city_id

发件人城市id

sender_district_id

发件人区县id

sender_address

发件人详细地址

sender_name

发件人姓名

sender_phone

发件人电话

send_location

发件人坐标

payment_type

支付方式

cargo_num

货物个数

amount

金额

estimate_arrive_time

预计到达时间

distance

距离,单位:公里

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.15 运单机构中转表(order_org_bound

字段名

字段说明

id

编号(主键)

order_id

运单编号

org_id

机构id

status

状态 出库 入库

inbound_time

入库时间

inbound_emp_id

入库人员id

sort_time

分拣时间

sorter_emp_id

分拣人员id

outbound_time

出库时间

outbound_emp_id

出库人员id

create_time

创建时间

update_time

修改时间

is_deleted

删除标志

3.2.16 运单追踪表(order_trace_log

字段名

字段说明

id

编号(主键)

order_id

运单编号

trace_desc

进度描述

create_time

创建时间

cur_task_id

当前快递任务id

task_type

任务类型:1  揽收 2 运输 3 中转 4派送

charge_emp_id

负责人id

remark

备注

is_rollback

是否回退中

update_time

更新时间

is_deleted

是否删除

3.2.17 员工机构关联表(sorter_info

字段名

字段说明

id

编号(主键)

emp_id

职员id

org_id

机构id

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.18 运单运输线路明细表(transport_plan_line_detail

字段名

字段说明

id

编号(主键)

order_id

运单编号

start_org_id

起始机构

end_org_id

终点机构

line_base_id

业务表线路id

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.19 运输任务表(transport_task

字段名

字段说明

id

编号(主键)

shift_id

班次ID

line_id

线路ID

start_org_id

起始机构ID

start_org_name

起始机构名称

end_org_id

目的机构id

end_org_name

目的机构名称

status

任务状态

order_num

运单个数

driver1_emp_id

司机1 ID

driver1_name

司机1名称

driver2_emp_id

司机2 ID

driver2_name

司机2名称

truck_id

卡车ID

truck_no

卡车号牌

actual_start_time

实际启动时间

actual_end_time

实际到达时间

actual_distance

实际行驶距离

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.20 运单运输任务关联表(transport_task_detail

字段名

字段说明

id

编号(主键)

transport_task_id

运输任务ID

order_id

运单ID

sorter_emp_id

分拣员id

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.21 运输任务进度表(transport_task_process

字段名

字段说明

id

编号(主键)

transport_task_id

任务ID

cur_distance

当前行驶里程

line_distance

线路里程

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.22 司机信息表(truck_driver

字段名

字段说明

id

编号(主键)

emp_id

员工ID

org_id

所属机构ID

team_id

所属车队ID

license_type

准驾车型

init_license_date

初次领证日期

expire_date

有效截止日期

license_no

驾驶证号

license_picture_url

驾照图片

is_enabled

状态

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.23 卡车信息表(truck_info

字段名

字段说明

id

编号(主键)

team_id

所属车队id

truck_no

车牌号码

truck_model_id

型号

device_gps_id

GPS设备id

engine_no

发动机编码

license_registration_date

注册时间

license_last_check_date

最后年检日期

license_expire_date

失效日期

picture_url

图片链接

is_enabled

是否可用

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.24 卡车型号表(truck_model

字段名

字段说明

id

编号(主键)

model_name

型号名称

model_type

型号类型

model_no

型号编码

brand

品牌

truck_weight

整车重量(吨)

load_weight

额定载重(吨)

total_weight

总质量(吨)

eev

排放标准

boxcar_len

货箱长m

boxcar_wd

货箱宽m

boxcar_hg

货箱高m

max_speed

最高时速(千米/时)

oil_vol

油箱容积(升)

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.25 车队信息表(truck_team

字段名

字段说明

id

编号(主键)

name

车队名称

team_no

车队编号

org_id

所属机构

manager_emp_id

负责人

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.26 用户地址表(user_address

字段名

字段说明

id

编号(主键)

user_id

用户id

phone

电话号

province_id

所属省份id

city_id

所属城市id

district_id

所属区县id

complex_id

所属小区id

address

详细地址

is_default

是否默认 0:否,1:是

create_time

创建时间

update_time

更新时间

is_deleted

是否删除

3.2.27 用户信息表(user_info

字段名

字段说明

id

编号(主键)

login_name

用户名称

nick_name

用户昵称

passwd

用户密码

real_name

用户姓名

phone_num

手机号

email

邮箱

head_img

头像

user_level

用户级别

birthday

用户生日

gender

性别 M男,F女

create_time

创建时间

update_time

修改时间

is_deleted

是否删除

4、总结

        这个物流数仓是尚硅谷的教学视频。

        在B站的视频:01_项目概述_哔哩哔哩_bilibili

        物流数仓只用到了业务数据,而且用到的组件较少,业务逻辑较为简单,可以通过这个项目提高自己对数仓的理解和对数仓搭建的整体流程的理解。

        有帮助的话请点个赞吧!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值