助力工业物联网,工业大数据之ODS层构建:需求分析【八】

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 助力工业物联网,工业大数据之ODS层构建:需求分析【八】

01:ODS层构建:需求分析

  • 目标:掌握ODS层构建的实现需求
  • 路径
  • step1:目标
  • step2:问题
  • step3:需求
  • step4:分析
  • 实施
  • 目标:将已经采集同步成功的101张表的数据加载到Hive的ODS层数据表中
  • 问题
  • 难点1:表太多,如何构建每张表?
  • 101张表的数据已经存储在HDFS
  • 建表
  • 方法1:手动开发每一张表建表语句,手动运行
  • 方法2:通过程序自动化建表
  • 拼接建表的SQL语句
create external table 数据库名称.表名
comment '表的注释'
partitioned by
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
location '这张表在HDFS上的路径'
TBLPROPERTIES ('这张表的Schema文件在HDFS上的路径')
  • 表名、表的注释、表在HDFS上的路径、Schema文件在HDFS上的路径
  • 将SQL语句提交给Hive或者Spark来执行
  • 申明分区
alter table 表名 add partition if not exists partition(key=value)
  • 难点2:如果使用自动建表,如何获取每张表的字段信息?
  • Schema文件:每个Avro格式的数据表都对应一个Schema文件
  • 统一存储在HDFS上
  • 需求:加载Sqoop生成的Avro的Schema文件,实现自动化建表
  • 分析
  • step1:代码中构建一个Hive/SparkSQL的连接
  • step2:创建ODS层数据库
create database if not exists one_make_ods;
  • step3:创建ODS层全量表:44张表
create external table one_make_ods_test.ciss_base_areas
comment '行政地理区域表'
PARTITIONED BY (dt string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
location '/data/dw/ods/one_make/full_imp/ciss4.ciss_base_areas'
TBLPROPERTIES ('avro.schema.url'='hdfs://bigdata.maynor.cn:9000/data/dw/ods/one_make/avsc/CISS4_CISS_BASE_AREAS.avsc');
  • 读取全量表表名
  • 动态获取表名:循环读取文件
  • 获取表的信息:表的注释
  • Oracle:表的信息
  • 从Oracle中获取表的注释
  • 获取表的文件:HDFS上AVRO文件的地址
/data/dw/ods/one_make/full_imp
  • 获取表的Schema:HDFS上的Avro文件的Schema文件地址
/data/dw/ods/one_make/avsc
  • 拼接建表字符串
  • 方式一:直接相加:简单
str1 = "I "
str2 = "like China"
str3 = str1 + str2
  • 方式二:通过列表拼接:复杂
  • 执行建表SQL语句
  • step4:创建ODS层增量表:57张表
  • 读取增量表表名
  • 动态获取表名:循环读取文件
  • 获取表的信息:表的注释
  • Oracle:表的信息
  • 从Oracle中获取表的注释
  • 获取表的文件:HDFS上AVRO文件的地址
/data/dw/ods/one_make/incr_imp
  • 获取表的Schema:HDFS上的Avro文件的Schema文件地址
/data/dw/ods/one_make/avsc
  • 拼接建表字符串
  • 执行建表SQL语句
  • 小结
  • 掌握ODS层构建的实现需求

02:ODS层构建:创建项目环境

  • 目标实现Pycharm中工程结构的构建
  • 实施
  • 安装Python3.7环境
  • 项目使用的Python3.7的环境代码,所以需要在Windows中安装Python3.7,与原先的Python高版本不冲突,正常安装即可
  • 创建Python工程
  • 安装PyHive、Oracle库
  • step1:在Windows的用户家目录下创建pip.ini文件
  • 例如:C:\Users\Frank\pip\pip.ini
  • 内容:指定pip安装从阿里云下载
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
  • step2:将文件添加到Windows的Path环境变量

  • step3:进入项目环境目录
  • 例如我的项目路径是:D:\PythonProject\OneMake_Spark\venv\Scripts

  • 将提供的sasl-0.2.1-cp37-cp37m-win_amd64.whl文件放入Scripts目录下

  • 在CMD中执行以下命令,切换到Scripts目录下
#切换到D盘
D:
#切换到项目环境的Scripts目录下
cd D:\PythonProject\OneMake_Spark\venv\Scripts
  • step4:CMD中依次执行以下安装命令
# 安装sasl包 -> 使用pycharm安装,会存在下载失败情况,因此提前下载好,对应python3.7版本
pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl
# 安装thrift包
pip install thrift
# 安装thrift sasl包One
pip install thrift-sasl
# 安装python操作oracle包
pip install cx-Oracle
# 安装python操作hive包,也可以操作sparksql
pip install pyhive
  • step5:验证安装结果
  • 温馨提示:其实工作中你也可以通过Pycharm直接安装
  • 小结
  • 实现Pycharm中工程结构的构建

03:ODS层构建:代码导入

  • 目标实现Python项目代码的导入及配置
  • 实施
  • Oracle本地驱动目录:将提供的instantclient_12_2目录放入D盘的根目录下
  • PyHive本地连接配置:将提供的CMU目录放入C盘的根目录下

  • auto_create_hive_table包
  • 创建路径包
auto_create_hive_table.cn.maynor.datatohive
  • 在datatohive的init文件中放入如下代码
from auto_create_hive_table.cn.maynor.datatohive import LoadData2DWD
from auto_create_hive_table.cn.maynor.datatohive.CHiveTableFromOracleTable import CHiveTableFromOracleTable
from auto_create_hive_table.cn.maynor.datatohive.CreateHiveTablePartition import CreateHiveTablePartition
  • 其他包的init都放入如下内容
#!/usr/bin/env python
# @desc :
__coding__ = "utf-8"
__author__ = "maynor"
  • 将对应的代码文件放入对应的包或者目录中
  • step1:从提供的代码中复制config、log、resource这三个目录直接粘贴到auto_create_hive_table包下
  • step2:从提供的代码中复制entity、utils、EntranceApp.py这三个直接粘贴到maynor包下
  • step3:从提供的代码中复制fileformat等文件直接粘贴到datatohive包下
  • DW归档目录**:将提供的代码中的dw目录直接粘贴到项目中

  • 小结
  • 实现Python项目代码的导入及配置


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
10天前
|
传感器 搜索推荐 物联网
5G与物联网:构建万物互联的未来世界
【9月更文挑战第11天】5G与物联网的融合正引领我们进入一个万物互联的未来世界。在这个世界中,各种设备将通过网络紧密相连,实现数据的实时传输和处理。这不仅将极大地方便人们的生活和工作,还将推动社会向智能化、数字化迈进。我们有理由相信,在不久的将来,一个更加智能、便捷、高效的世界将呈现在我们面前。
|
17天前
|
传感器 自动驾驶 物联网
5G+物联网:构建智慧城市的新基石
【9月更文挑战第4天】5G+物联网作为构建智慧城市的新基石,正引领着城市管理的智能化变革。随着技术的不断成熟和应用场景的不断拓展,智慧城市将变得更加智能、高效和可持续。然而,我们也应看到,智慧城市的建设还面临着数据安全、隐私保护等挑战。未来,我们需要加强技术创新和法规建设,确保智慧城市在快速发展的同时,也能够保障人民的安全和权益。
|
26天前
|
存储 SQL 分布式计算
Hadoop生态系统概述:构建大数据处理与分析的基石
【8月更文挑战第25天】Hadoop生态系统为大数据处理和分析提供了强大的基础设施和工具集。通过不断扩展和优化其组件和功能,Hadoop将继续在大数据时代发挥重要作用。
|
28天前
|
人工智能 分布式计算 架构师
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
大数据及AI典型场景实践问题之基于MaxCompute构建Noxmobi全球化精准营销系统如何解决
|
29天前
|
存储 监控 安全
大数据架构设计原则:构建高效、可扩展与安全的数据生态系统
【8月更文挑战第23天】大数据架构设计是一个复杂而系统的工程,需要综合考虑业务需求、技术选型、安全合规等多个方面。遵循上述设计原则,可以帮助企业构建出既高效又安全的大数据生态系统,为业务创新和决策支持提供强有力的支撑。随着技术的不断发展和业务需求的不断变化,持续优化和调整大数据架构也将成为一项持续的工作。
|
1月前
|
SQL 监控 大数据
"解锁实时大数据处理新境界:Google Dataflow——构建高效、可扩展的实时数据管道实践"
【8月更文挑战第10天】随着大数据时代的发展,企业急需高效处理数据以实现即时响应。Google Dataflow作为Google Cloud Platform的强大服务,提供了一个完全托管的流处理与批处理方案。它采用Apache Beam编程模型,支持自动扩展、高可用性,并能与GCP服务无缝集成。例如,电商平台可通过Dataflow实时分析用户行为日志:首先利用Pub/Sub收集数据;接着构建管道处理并分析这些日志;最后将结果输出至BigQuery。Dataflow因此成为构建实时数据处理系统的理想选择,助力企业快速响应业务需求。
95 6
|
1月前
|
存储 分布式计算 数据处理
面向业务增长的数据平台构建策略
【8月更文第13天】为了构建一个能够支持企业业务增长的数据平台,我们需要考虑几个关键的方面:数据的收集与整合(数据集成)、存储、处理和分析。本文将详细介绍这些步骤,并提供具体的代码示例来帮助理解。
28 1
|
2月前
|
存储 传感器 安全
云上智能物联网平台:构建未来智联世界的基石
四、未来发展趋势 4.1 边缘计算的融合 随着物联网设备数量的不断增加和数据量的快速增长,边缘计算将成为云上智能物联网平台的重要组成部分。通过将计算能力和数据存储能力下沉到边缘侧,可以减少数据传输延迟和带宽消耗,提高系统的响应速度和稳定性。
108 7
|
2月前
|
存储 搜索推荐 数据建模
阿里巴巴大数据实践之数据建模:构建企业级数据湖
阿里巴巴通过构建高效的数据湖和实施先进的数据建模策略,实现了数据驱动的业务增长。这些实践不仅提升了内部运营效率,也为客户提供了更好的服务体验。随着数据量的不断增长和技术的不断创新,阿里巴巴将持续优化其数据建模方法,以适应未来的变化和发展。
|
3天前
|
传感器 存储 人工智能
智能农业的未来:物联网技术如何革新传统农业
本文探讨了物联网(IoT)技术在农业中的应用及其对传统农业的革新。通过详细分析当前农业面临的挑战,如资源浪费和效率低下,文章阐述了物联网技术如何通过实时数据监控和自动化系统提高农业生产的效率和可持续性。此外,文章还讨论了实施物联网技术时需要考虑的技术、经济和社会因素,以及未来发展趋势。

热门文章

最新文章