大数据之数据仓库 制造业数仓 供应链 / 设备数据 建模

大数据阿木 发布于 3 天前 1 次阅读


制造业数仓建模:供应链与设备数据集成与分析

随着大数据时代的到来,制造业企业对数据的依赖日益增强。数据仓库作为企业数据整合、分析和决策支持的核心平台,对于供应链管理和设备数据监控具有重要意义。本文将围绕制造业数仓建模,探讨供应链与设备数据的集成与分析方法,并给出相应的代码实现。

一、数据仓库概述

数据仓库是一个面向主题的、集成的、非易失的、时间序列的数据集合,用于支持企业决策。制造业数仓通常包含以下三个层次:

1. 数据源层:包括各种原始数据,如ERP系统、MES系统、传感器数据等。

2. 数据仓库层:对原始数据进行清洗、转换、集成,形成统一的数据模型。

3. 数据应用层:提供数据查询、报表、分析等功能,支持企业决策。

二、供应链数据建模

1. 供应链数据模型

供应链数据模型主要包括以下实体:

- 供应商:提供原材料或服务的实体。

- 采购订单:供应商与采购部门之间的合同。

- 库存:存储的原材料或产品。

- 销售订单:客户与销售部门之间的合同。

- 生产订单:生产部门根据销售订单生成的生产计划。

2. 供应链数据集成

以下是一个简单的供应链数据集成示例,使用Python和Pandas库进行数据清洗和转换。

python

import pandas as pd

假设供应商数据存储在供应商.xlsx文件中


supplier_df = pd.read_excel('供应商.xlsx')

假设采购订单数据存储在采购订单.xlsx文件中


purchase_order_df = pd.read_excel('采购订单.xlsx')

数据清洗和转换


supplier_df['供应商ID'] = supplier_df['供应商ID'].astype(str)


purchase_order_df['供应商ID'] = purchase_order_df['供应商ID'].astype(str)

数据集成


integrated_df = pd.merge(supplier_df, purchase_order_df, on='供应商ID')

查看集成后的数据


print(integrated_df.head())


三、设备数据建模

1. 设备数据模型

设备数据模型主要包括以下实体:

- 设备:生产过程中的设备。

- 设备参数:设备的运行参数,如温度、压力、流量等。

- 设备状态:设备的运行状态,如正常、故障、维护等。

2. 设备数据集成

以下是一个简单的设备数据集成示例,使用Python和Pandas库进行数据清洗和转换。

python

import pandas as pd

假设设备数据存储在设备参数.xlsx文件中


device_param_df = pd.read_excel('设备参数.xlsx')

假设设备状态数据存储在设备状态.xlsx文件中


device_status_df = pd.read_excel('设备状态.xlsx')

数据清洗和转换


device_param_df['设备ID'] = device_param_df['设备ID'].astype(str)


device_status_df['设备ID'] = device_status_df['设备ID'].astype(str)

数据集成


integrated_device_df = pd.merge(device_param_df, device_status_df, on='设备ID')

查看集成后的数据


print(integrated_device_df.head())


四、数据仓库建模与实现

1. 数据仓库建模

数据仓库建模通常采用星型模型或雪花模型。以下是一个星型模型的示例:

- 事实表:记录业务活动的数据,如销售订单表、生产订单表等。

- 维度表:描述业务活动的属性,如供应商表、设备表等。

2. 数据仓库实现

以下是一个简单的数据仓库实现示例,使用Python和SQLAlchemy库进行数据库操作。

python

from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey


from sqlalchemy.ext.declarative import declarative_base


from sqlalchemy.orm import sessionmaker

创建数据库引擎


engine = create_engine('sqlite:///manufacturing_datawarehouse.db')

定义基类


Base = declarative_base()

定义供应商表


class Supplier(Base):


__tablename__ = 'supplier'


id = Column(Integer, primary_key=True)


name = Column(String)


contact = Column(String)

定义采购订单表


class PurchaseOrder(Base):


__tablename__ = 'purchase_order'


id = Column(Integer, primary_key=True)


supplier_id = Column(Integer, ForeignKey('supplier.id'))


order_date = Column(String)


amount = Column(Float)

创建表


Base.metadata.create_all(engine)

创建会话


Session = sessionmaker(bind=engine)


session = Session()

添加数据


new_supplier = Supplier(name='供应商A', contact='联系人A')


session.add(new_supplier)


session.commit()

查询数据


supplier = session.query(Supplier).filter(Supplier.name == '供应商A').first()


print(supplier.name, supplier.contact)

关闭会话


session.close()


五、数据分析和报表

数据仓库建立后,可以进行数据分析和报表生成。以下是一个简单的数据报表生成示例,使用Python和Pandas库进行数据分析和报表生成。

python

import pandas as pd

假设数据仓库中的销售订单表存储在sales_orders.xlsx文件中


sales_orders_df = pd.read_excel('sales_orders.xlsx')

数据分析


top_customers = sales_orders_df.groupby('customer_id')['amount'].sum().sort_values(ascending=False).head(10)

报表生成


report_df = pd.DataFrame(top_customers)


report_df.to_excel('top_customers_report.xlsx')


总结

本文围绕制造业数仓建模,探讨了供应链与设备数据的集成与分析方法,并给出了相应的代码实现。通过数据仓库,企业可以更好地整合和管理数据,为供应链管理和设备监控提供有力支持。随着大数据技术的不断发展,制造业数仓将在企业决策中发挥越来越重要的作用。