1. 首页 > 国产数据库教程 > PolarDB教程 > 正文

polardb教程FG026-PolarDB数据仓库与商业智能

本文档风哥主要介绍PolarDB数据仓库与商业智能,包括数据仓库概念、商业智能概念、数据仓库架构、数据仓库规划、商业智能规划、性能优化、数据仓库实施方案、商业智能实施方案、数据集成、数据仓库实战、商业智能实战和数据仓库问题排查等内容,风哥教程参考PolarDB官方文档内容编写,适合DBA人员和数据分析人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 数据仓库概念

数据仓库是指一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

数据仓库的核心特征:

  • 面向主题:数据仓库围绕企业的核心业务主题组织数据
  • 集成性:数据仓库集成来自不同数据源的数据
  • 稳定性:数据仓库中的数据一旦加载,很少修改
  • 时变性:数据仓库中的数据反映历史变化
  • 决策支持:数据仓库用于支持管理决策

1.2 商业智能概念

商业智能是指利用数据仓库、数据挖掘、在线分析处理等技术,对企业数据进行分析,为企业决策提供支持的过程。

# 商业智能的核心组件
– 数据仓库:存储和管理企业数据
– ETL工具:提取、转换和加载数据
– OLAP工具:在线分析处理工具
– 数据挖掘工具:发现数据中的模式和趋势
– 报表工具:生成各种报表
– 仪表盘:可视化展示数据

# 商业智能的应用场景
– 销售分析:分析销售数据,了解销售趋势
– 客户分析:分析客户数据,了解客户行为
– 财务分析:分析财务数据,了解财务状况
– 运营分析:分析运营数据,优化运营流程
– 市场分析:分析市场数据,了解市场趋势

# 商业智能的价值
– 提高决策效率:快速获取和分析数据,提高决策效率
– 发现业务机会:发现数据中的模式和趋势,发现业务机会
– 优化业务流程:分析业务数据,优化业务流程
– 降低运营成本:通过数据分析,降低运营成本
– 提升竞争力:通过数据驱动决策,提升企业竞争力

1.3 数据仓库架构

数据仓库架构是指数据仓库的结构和组件之间的关系。

风哥提示:数据仓库与商业智能是企业数字化转型的重要组成部分,建议DBA人员和数据分析人员熟悉相关知识和操作,确保数据仓库和商业智能系统的正常运行。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 数据仓库规划

数据仓库规划是指根据企业的业务需求,制定合理的数据仓库规划,确保数据仓库的正常运行。

# 数据仓库规划的内容
1. 业务需求分析:了解企业的业务需求和数据需求
2. 数据源评估:评估企业的数据源,包括数据类型、数据量、数据质量等
3. 数据模型设计:设计数据仓库的数据模型,包括维度模型、星型模型、雪花模型等
4. 技术选型:选择合适的技术栈,包括数据库、ETL工具、OLAP工具等
5. 存储规划:规划数据仓库的存储,包括存储容量、存储结构等
6. 性能规划:规划数据仓库的性能,包括查询性能、加载性能等
7. 安全规划:规划数据仓库的安全,包括数据访问控制、数据加密等

# 数据仓库规划的步骤
1. 需求分析:了解企业的业务需求和数据需求
2. 设计数据模型:设计数据仓库的数据模型
3. 选择技术栈:选择合适的技术栈
4. 规划存储和性能:规划数据仓库的存储和性能
5. 制定实施计划:制定数据仓库的实施计划
6. 测试验证:在测试环境中验证数据仓库规划的有效性
7. 监控维护:监控数据仓库的运行状态,及时发现和解决问题

# 数据仓库规划的重要性
– 确保数据仓库的质量:合理的规划确保数据仓库的质量和可靠性
– 提高数据仓库的性能:合理的规划提高数据仓库的查询和加载性能
– 降低实施成本:合理的规划降低数据仓库的实施和维护成本
– 满足业务需求:合理的规划确保数据仓库满足企业的业务需求

2.2 商业智能规划

商业智能规划是指根据企业的业务需求,制定合理的商业智能规划,确保商业智能系统的正常运行。

# 商业智能规划的内容
1. 业务需求分析:了解企业的业务需求和分析需求
2. 数据源评估:评估企业的数据源,包括数据类型、数据量、数据质量等
3. 分析模型设计:设计商业智能的分析模型,包括维度、指标等
4. 技术选型:选择合适的技术栈,包括BI工具、可视化工具等
5. 报表规划:规划商业智能的报表,包括报表类型、报表格式等
6. 仪表盘规划:规划商业智能的仪表盘,包括仪表盘布局、指标选择等
7. 安全规划:规划商业智能的安全,包括数据访问控制、权限管理等

# 商业智能规划的步骤
1. 需求分析:了解企业的业务需求和分析需求
2. 设计分析模型:设计商业智能的分析模型
3. 选择技术栈:选择合适的技术栈
4. 规划报表和仪表盘:规划商业智能的报表和仪表盘
5. 制定实施计划:制定商业智能的实施计划
6. 测试验证:在测试环境中验证商业智能规划的有效性
7. 监控维护:监控商业智能系统的运行状态,及时发现和解决问题

# 商业智能规划的重要性
– 确保商业智能系统的质量:合理的规划确保商业智能系统的质量和可靠性
– 提高分析效率:合理的规划提高分析效率,快速获取和分析数据
– 满足业务需求:合理的规划确保商业智能系统满足企业的业务需求
– 提升决策能力:合理的规划提升企业的决策能力,通过数据驱动决策

2.3 性能优化

性能优化是指通过调整数据仓库和商业智能系统的配置,提高系统性能。

# 性能优化的内容
– 数据模型优化:优化数据仓库的数据模型,提高查询性能
– 索引优化:优化数据仓库的索引,提高查询速度
– 分区优化:使用分区表,提高大表的查询速度
– 并行处理:使用并行查询,提高查询速度
– 缓存优化:使用缓存,提高查询速度
– ETL优化:优化ETL过程,提高数据加载速度
– 硬件优化:升级硬件,提高系统性能

# 性能优化的策略
– 数据模型优化:使用维度模型,减少表连接
– 索引优化:创建合适的索引,提高查询速度
– 分区优化:根据数据特点进行分区,提高查询速度
– 并行处理:使用并行查询,提高查询速度
– 缓存优化:使用缓存,减少重复查询
– ETL优化:优化ETL过程,提高数据加载速度
– 硬件优化:根据业务需求选择合适的硬件

# 性能优化的工具
– 数据库监控工具:监控数据库性能
– ETL工具:优化ETL过程
– OLAP工具:优化OLAP查询
– 性能测试工具:测试系统性能

生产环境建议:根据企业的业务需求和数据特点,制定合理的数据仓库和商业智能规划,确保系统的正常运行。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 数据仓库实施方案

3.1.1 数据模型设计

# 数据模型设计
# 步骤1:分析业务需求
# 了解企业的业务需求和数据需求

# 步骤2:设计维度模型
# 设计星型模型或雪花模型

# 步骤3:创建事实表
mysql> CREATE TABLE fgedudb.fgedu_sales_fact (
-> sale_id INT PRIMARY KEY,
-> product_id INT,
-> customer_id INT,
-> date_id INT,
-> quantity INT,
-> amount DECIMAL(10,2),
-> FOREIGN KEY (product_id) REFERENCES fgedudb.fgedu_product_dim(product_id),
-> FOREIGN KEY (customer_id) REFERENCES fgedudb.fgedu_customer_dim(customer_id),
-> FOREIGN KEY (date_id) REFERENCES fgedudb.fgedu_date_dim(date_id)
-> );

# 步骤4:创建维度表
mysql> CREATE TABLE fgedudb.fgedu_product_dim (
-> product_id INT PRIMARY KEY,
-> product_name VARCHAR(100),
-> category VARCHAR(50),
-> price DECIMAL(10,2)
-> );

mysql> CREATE TABLE fgedudb.fgedu_customer_dim (
-> customer_id INT PRIMARY KEY,
-> customer_name VARCHAR(100),
-> address VARCHAR(200),
-> phone VARCHAR(20)
-> );

mysql> CREATE TABLE fgedudb.fgedu_date_dim (
-> date_id INT PRIMARY KEY,
-> date DATE,
-> year INT,
-> quarter INT,
-> month INT,
-> day INT,
-> week INT
-> );

# 步骤5:创建索引
mysql> CREATE INDEX idx_sale_product ON fgedudb.fgedu_sales_fact(product_id);
mysql> CREATE INDEX idx_sale_customer ON fgedudb.fgedu_sales_fact(customer_id);
mysql> CREATE INDEX idx_sale_date ON fgedudb.fgedu_sales_fact(date_id);

3.1.2 ETL实施

# ETL实施
# 步骤1:提取数据
# 从源系统提取数据

# 步骤2:转换数据
# 转换数据格式和结构

# 步骤3:加载数据
# 将数据加载到数据仓库

# 示例ETL脚本
#!/bin/bash
# etl_sales.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

# 提取数据
mysql -u root -p -h source_host -P 3306 -e “SELECT * FROM source_db.sales” > sales_data.csv

# 转换数据
# 这里可以使用Python或其他工具进行数据转换

# 加载数据
mysql -u root -p -h pc-12345678.mysql.polardb.rds.aliyuncs.com -P 3306 -e “LOAD DATA INFILE ‘/polardb/data/sales_data.csv’ INTO TABLE fgedudb.fgedu_sales_fact FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ IGNORE 1 ROWS;”

# 加载维度数据
mysql -u root -p -h pc-12345678.mysql.polardb.rds.aliyuncs.com -P 3306 -e “INSERT INTO fgedudb.fgedu_product_dim (product_id, product_name, category, price) VALUES (1, ‘Product A’, ‘Category 1’, 100.00), (2, ‘Product B’, ‘Category 2’, 200.00), (3, ‘Product C’, ‘Category 1’, 150.00);”

mysql -u root -p -h pc-12345678.mysql.polardb.rds.aliyuncs.com -P 3306 -e “INSERT INTO fgedudb.fgedu_customer_dim (customer_id, customer_name, address, phone) VALUES (1, ‘Customer A’, ‘Address 1’, ‘1234567890’), (2, ‘Customer B’, ‘Address 2’, ‘0987654321’), (3, ‘Customer C’, ‘Address 3’, ‘1122334455’);”

mysql -u root -p -h pc-12345678.mysql.polardb.rds.aliyuncs.com -P 3306 -e “INSERT INTO fgedudb.fgedu_date_dim (date_id, date, year, quarter, month, day, week) VALUES (1, ‘2024-01-01’, 2024, 1, 1, 1, 1), (2, ‘2024-01-02’, 2024, 1, 1, 2, 1), (3, ‘2024-01-03’, 2024, 1, 1, 3, 1);”

3.2 商业智能实施方案

3.2.1 报表设计

# 报表设计
# 步骤1:分析业务需求
# 了解企业的报表需求

# 步骤2:设计报表结构
# 设计报表的结构和格式

# 步骤3:创建报表
# 使用BI工具创建报表

# 示例SQL查询
# 销售报表
SELECT
p.product_name,
p.category,
SUM(s.quantity) AS total_quantity,
SUM(s.amount) AS total_amount
FROM
fgedudb.fgedu_sales_fact s
JOIN
fgedudb.fgedu_product_dim p ON s.product_id = p.product_id
GROUP BY
p.product_name, p.category
ORDER BY
total_amount DESC;

# 客户报表
SELECT
c.customer_name,
SUM(s.quantity) AS total_quantity,
SUM(s.amount) AS total_amount
FROM
fgedudb.fgedu_sales_fact s
JOIN
fgedudb.fgedu_customer_dim c ON s.customer_id = c.customer_id
GROUP BY
c.customer_name
ORDER BY
total_amount DESC;

# 时间报表
SELECT
d.year,
d.month,
SUM(s.quantity) AS total_quantity,
SUM(s.amount) AS total_amount
FROM
fgedudb.fgedu_sales_fact s
JOIN
fgedudb.fgedu_date_dim d ON s.date_id = d.date_id
GROUP BY
d.year, d.month
ORDER BY
d.year, d.month;

3.2.2 仪表盘设计

# 仪表盘设计
# 步骤1:分析业务需求
# 了解企业的仪表盘需求

# 步骤2:设计仪表盘布局
# 设计仪表盘的布局和组件

# 步骤3:创建仪表盘
# 使用BI工具创建仪表盘

# 仪表盘组件
– 销售总额:显示总销售额
– 销售趋势:显示销售趋势图
– 产品销售:显示各产品的销售情况
– 客户销售:显示各客户的销售情况
– 区域销售:显示各区域的销售情况

# 示例SQL查询
# 销售总额
SELECT SUM(amount) AS total_sales FROM fgedudb.fgedu_sales_fact;

# 销售趋势
SELECT
d.date,
SUM(s.amount) AS daily_sales
FROM
fgedudb.fgedu_sales_fact s
JOIN
fgedudb.fgedu_date_dim d ON s.date_id = d.date_id
GROUP BY
d.date
ORDER BY
d.date;

# 产品销售
SELECT
p.product_name,
SUM(s.amount) AS product_sales
FROM
fgedudb.fgedu_sales_fact s
JOIN
fgedudb.fgedu_product_dim p ON s.product_id = p.product_id
GROUP BY
p.product_name
ORDER BY
product_sales DESC;

3.3 数据集成

数据集成是指将来自不同数据源的数据整合到数据仓库中。

# 数据集成的内容
– 数据源连接:连接不同的数据源
– 数据提取:从数据源提取数据
– 数据转换:转换数据格式和结构
– 数据加载:将数据加载到数据仓库
– 数据质量:确保数据的质量和一致性

# 数据集成的工具
– ETL工具:如Informatica、Talend、Kettle等
– 数据同步工具:如DataX、Canal等
– 数据质量工具:如Great Expectations等

# 数据集成的实施
1. 数据源评估:评估企业的数据源
2. 工具选型:选择合适的数据集成工具
3. 流程设计:设计数据集成流程
4. 实施部署:实施数据集成流程
5. 测试验证:测试数据集成的有效性
6. 监控维护:监控数据集成的运行状态

风哥提示:数据仓库和商业智能实施方案是确保系统正常运行的重要手段,建议DBA人员和数据分析人员熟悉相关知识和操作,确保系统的稳定性和可靠性。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 数据仓库实战

数据仓库实战:

# 数据仓库实战
# 步骤1:创建数据仓库表
mysql> CREATE DATABASE fgedudb;

# 创建事实表
mysql> CREATE TABLE fgedudb.fgedu_sales_fact (
-> sale_id INT PRIMARY KEY,
-> product_id INT,
-> customer_id INT,
-> date_id INT,
-> quantity INT,
-> amount DECIMAL(10,2)
-> );

# 创建维度表
mysql> CREATE TABLE fgedudb.fgedu_product_dim (
-> product_id INT PRIMARY KEY,
-> product_name VARCHAR(100),
-> category VARCHAR(50),
-> price DECIMAL(10,2)
-> );

mysql> CREATE TABLE fgedudb.fgedu_customer_dim (
-> customer_id INT PRIMARY KEY,
-> customer_name VARCHAR(100),
-> address VARCHAR(200),
-> phone VARCHAR(20)
-> );

mysql> CREATE TABLE fgedudb.fgedu_date_dim (
-> date_id INT PRIMARY KEY,
-> date DATE,
-> year INT,
-> quarter INT,
-> month INT,
-> day INT,
-> week INT
-> );

# 步骤2:加载数据
# 加载维度数据
mysql> INSERT INTO fgedudb.fgedu_product_dim (product_id, product_name, category, price) VALUES (1, ‘Product A’, ‘Category 1’, 100.00), (2, ‘Product B’, ‘Category 2’, 200.00), (3, ‘Product C’, ‘Category 1’, 150.00);

mysql> INSERT INTO fgedudb.fgedu_customer_dim (customer_id, customer_name, address, phone) VALUES (1, ‘Customer A’, ‘Address 1’, ‘1234567890’), (2, ‘Customer B’, ‘Address 2’, ‘0987654321’), (3, ‘Customer C’, ‘Address 3’, ‘1122334455’);

mysql> INSERT INTO fgedudb.fgedu_date_dim (date_id, date, year, quarter, month, day, week) VALUES (1, ‘2024-01-01’, 2024, 1, 1, 1, 1), (2, ‘2024-01-02’, 2024, 1, 1, 2, 1), (3, ‘2024-01-03’, 2024, 1, 1, 3, 1);

# 加载事实数据
mysql> INSERT INTO fgedudb.fgedu_sales_fact (sale_id, product_id, customer_id, date_id, quantity, amount) VALUES (1, 1, 1, 1, 10, 1000.00), (2, 2, 2, 1, 5, 1000.00), (3, 3, 3, 2, 8, 1200.00), (4, 1, 2, 2, 15, 1500.00), (5, 2, 3, 3, 10, 2000.00);

# 步骤3:创建索引
mysql> CREATE INDEX idx_sale_product ON fgedudb.fgedu_sales_fact(product_id);
mysql> CREATE INDEX idx_sale_customer ON fgedudb.fgedu_sales_fact(customer_id);
mysql> CREATE INDEX idx_sale_date ON fgedudb.fgedu_sales_fact(date_id);

# 步骤4:查询测试
mysql> SELECT
-> p.product_name,
-> p.category,
-> SUM(s.quantity) AS total_quantity,
-> SUM(s.amount) AS total_amount
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_product_dim p ON s.product_id = p.product_id
-> GROUP BY
-> p.product_name, p.category
-> ORDER BY
-> total_amount DESC;
+————-+———-+—————-+————-+
| product_name | category | total_quantity | total_amount |
+————-+———-+—————-+————-+
| Product B | Category 2 | 15 | 3000.00 |
| Product A | Category 1 | 25 | 2500.00 |
| Product C | Category 1 | 8 | 1200.00 |
+————-+———-+—————-+————-+

4.2 商业智能实战

商业智能实战:

# 商业智能实战
# 步骤1:创建报表
# 销售报表
mysql> SELECT
-> p.product_name,
-> p.category,
-> SUM(s.quantity) AS total_quantity,
-> SUM(s.amount) AS total_amount
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_product_dim p ON s.product_id = p.product_id
-> GROUP BY
-> p.product_name, p.category
-> ORDER BY
-> total_amount DESC;

# 客户报表
mysql> SELECT
-> c.customer_name,
-> SUM(s.quantity) AS total_quantity,
-> SUM(s.amount) AS total_amount
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_customer_dim c ON s.customer_id = c.customer_id
-> GROUP BY
-> c.customer_name
-> ORDER BY
-> total_amount DESC;

# 时间报表
mysql> SELECT
-> d.year,
-> d.month,
-> d.day,
-> SUM(s.quantity) AS total_quantity,
-> SUM(s.amount) AS total_amount
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_date_dim d ON s.date_id = d.date_id
-> GROUP BY
-> d.year, d.month, d.day
-> ORDER BY
-> d.year, d.month, d.day;

# 步骤2:创建仪表盘
# 销售总额
mysql> SELECT SUM(amount) AS total_sales FROM fgedudb.fgedu_sales_fact;

# 销售趋势
mysql> SELECT
-> d.date,
-> SUM(s.amount) AS daily_sales
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_date_dim d ON s.date_id = d.date_id
-> GROUP BY
-> d.date
-> ORDER BY
-> d.date;

# 产品销售排名
mysql> SELECT
-> p.product_name,
-> SUM(s.amount) AS product_sales
-> FROM
-> fgedudb.fgedu_sales_fact s
-> JOIN
-> fgedudb.fgedu_product_dim p ON s.product_id = p.product_id
-> GROUP BY
-> p.product_name
-> ORDER BY
-> product_sales DESC
-> LIMIT 5;

4.3 数据仓库问题排查

数据仓库问题排查:

# 数据仓库问题排查
# 问题1:查询性能缓慢
# 排查步骤:
# 1. 分析执行计划
mysql> EXPLAIN SELECT * FROM fgedudb.fgedu_sales_fact s JOIN fgedudb.fgedu_product_dim p ON s.product_id = p.product_id;

# 2. 检查索引
mysql> SHOW INDEX FROM fgedudb.fgedu_sales_fact;
mysql> SHOW INDEX FROM fgedudb.fgedu_product_dim;

# 3. 优化查询
mysql> SELECT p.product_name, SUM(s.amount) AS total_amount FROM fgedudb.fgedu_sales_fact s JOIN fgedudb.fgedu_product_dim p ON s.product_id = p.product_id GROUP BY p.product_name;

# 问题2:数据加载失败
# 排查步骤:
# 1. 检查数据源
# 确保数据源可以正常连接

# 2. 检查数据格式
# 确保数据格式正确

# 3. 检查数据库权限
# 确保用户有足够的权限

# 4. 检查错误日志
# 查看数据库错误日志

# 问题3:数据质量问题
# 排查步骤:
# 1. 检查数据完整性
mysql> SELECT * FROM fgedudb.fgedu_sales_fact WHERE product_id IS NULL;

# 2. 检查数据一致性
mysql> SELECT s.product_id FROM fgedudb.fgedu_sales_fact s LEFT JOIN fgedudb.fgedu_product_dim p ON s.product_id = p.product_id WHERE p.product_id IS NULL;

# 3. 检查数据准确性
# 验证数据的准确性

# 常见问题解决方法
– 查询性能缓慢:创建合适的索引,优化查询语句
– 数据加载失败:检查数据源、数据格式、数据库权限和错误日志
– 数据质量问题:加强数据验证和清洗,确保数据的完整性、一致性和准确性

生产环境建议:定期监控数据仓库和商业智能系统的运行状态,及时发现和解决问题,确保系统的正常运行。from polardb视频:www.itpux.com

Part05-风哥经验总结与分享

5.1 最佳实践

PolarDB数据仓库与商业智能最佳实践:

  • 数据模型设计:使用维度模型,减少表连接,提高查询性能
  • ETL优化:优化ETL过程,提高数据加载速度
  • 索引优化:创建合适的索引,提高查询速度
  • 分区优化:使用分区表,提高大表的查询速度
  • 并行处理:使用并行查询,提高查询速度
  • 缓存优化:使用缓存,减少重复查询
  • 数据质量:加强数据验证和清洗,确保数据的完整性、一致性和准确性
  • 监控维护:建立完善的监控系统,及时发现和解决问题

5.2 常见问题与解决

PolarDB数据仓库与商业智能常见问题与解决方法:

  • 查询性能缓慢:创建合适的索引,优化查询语句,使用分区表
  • 数据加载失败:检查数据源、数据格式、数据库权限和错误日志
  • 数据质量问题:加强数据验证和清洗,确保数据的完整性、一致性和准确性
  • 存储空间不足:定期清理数据,使用分区表,增加存储容量
  • ETL过程失败:检查ETL脚本,确保数据源可以正常连接,处理异常情况
  • 报表生成缓慢:优化查询语句,使用缓存,增加硬件资源

PolarDB数据仓库与商业智能未来发展趋势:

  • 智能化:引入AI技术,实现智能数据仓库和商业智能
  • 自动化:实现自动化数据集成和分析,减少人工干预
  • 云原生深化:进一步融合云原生技术,提供更弹性、更高效的数据仓库和商业智能服务
  • 实时分析:支持实时数据处理和分析,提供实时洞察
  • 多模支持:支持更多数据类型和处理模式的数据仓库和商业智能
  • 生态完善:加强与其他云服务的集成,提供更完整的数据仓库和商业智能解决方案
  • 国产化替代:助力企业实现数据仓库和商业智能系统国产化替代,提升数据安全
风哥提示:PolarDB数据仓库与商业智能是企业数字化转型的重要组成部分,建议DBA人员和数据分析人员熟悉相关知识和操作,确保系统的正常运行。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息