基于阿里云DataWorks的物流履约时效离线分析2.
-
数仓模型构建
ORC和Parquet区别:
压缩率与查询性能 压缩率ORC通常压缩率更高,文件体积更小,适合存储成本敏感的场景。
Parquet因支持更灵活的嵌套结构,压缩率略低,但压缩算法选择更多(如Snappy、Gzip)
查询性能ORC在Hive中表现更优,尤其全表扫描和聚合查询,因索引和统计信息更完善
Parquet在Spark、Presto等框架中性能更佳,且对嵌套数据查询效率更高。
功能与兼容性 高级功能ORC支持ACID事务、行级更新和删除,适合需要事务保障的场景(如Hive 3.0+)
Parquet不支持事务,但支持动态分区写入和模式演化(Schema Evolution)
生态兼容性Parquet兼容性更广,支持Hadoop、Spark、Presto、Impala等主流引擎
ORC主要在Hive和Impala中优化较好,其他框架(如低版本Spark)支持有限。
-
业务需求拆解:根据维度建模理论,拆解业务需求,我主要负责的是履约时效和客户运营这两个场景的开发
-
设计分层存储策略:ODS层是从业务数据库读取的原始数据,不做处理,dwd层通过多个ods关联和清洗,形成可复用的明细层,dws层按照天维度聚合指标,如物流履约时长,客户进线次数,adm层面向特定主题开发
-
-
ETL链路开发
-
构建TB级数据Pipeline
-
设计任务容错机制:根据任务的优先级和重要程度,设置不同的容错机制,以保障数据产出的及时性,准确性
-
-
高性能存储与计算优化
-
实施存储治理
-
小文件合并:hive为每个小文件开启一个map任务,如果存在大量小文件,会占用大量的map初始化时间
-
-
任务计算优化
-