Business Intelligence商业智能:概念、数据仓库、相关工具

本文主要是介绍Business Intelligence商业智能:概念、数据仓库、相关工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

datawarehouse data marts, and data lakes

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


data warehouses

Enterprise Data Warehouse 通用架构:

在这里插入图片描述

data cube:

在这里插入图片描述
slicing:

在这里插入图片描述
dicing:

在这里插入图片描述
drilling:

在这里插入图片描述
pivoting:

在这里插入图片描述
rolling up(aggregate):

在这里插入图片描述
meterialized views

在这里插入图片描述

可以设置不同的refresh option:

never: creation的时候常用
upon request: manually 或者scheduled
immediately: automatically after every statement

举个例子:

在这里插入图片描述
postgreSQL中,我们使用如下命令:

在这里插入图片描述

Db2 被称为MQT:

在这里插入图片描述

facts and dimensions table

我的理解:

基本就是facts tables 是带primary key的table,通过各种foreign key和dimesions table连接在一起.

facts 是一个中枢,dimension是这套data的多个维度.

从这里可以衍生出来两个概念, star schema, 和 snowflake schema
如下图, 这是一个pos 机销售数据.红框部分是最开始设计的star schema, 之后往外长出来的 snowflake schema
在这里插入图片描述
在这里插入图片描述

staging area

定义:

是ETL过程中的中间存储站
是搭建在data sources 和 target system之间的桥梁
有时候只是短暂存在
有时可以用于归档,用于troubleshooting
也可以用来优化和监控ETL jobs

在这里插入图片描述举个例子:
在这里插入图片描述
functions:

  • integration
  • change detaction
  • scheduling
  • cleansing data
  • aggregation
  • normalization

data quality

在这里插入图片描述

python的生成数据质量报告的模板:


import os
import psycopg2
import pandas as pd
from tabulate import tabulateimport mytests
# import the data quality checks
from dataqualitychecks import check_for_nulls
from dataqualitychecks import check_for_min_max
from dataqualitychecks import check_for_valid_values
from dataqualitychecks import check_for_duplicates
from dataqualitychecks import run_data_quality_check# connect to database
pgpassword = os.environ.get('POSTGRES_PASSWORD')
conn = psycopg2.connect(user = "postgres",password = pgpassword,host = "localhost",port = "5432",database = "billingDW")print("Connected to data warehouse")#Start of data quality checks
results = []
tests = {key:value for key,value in mytests.__dict__.items() if key.startswith('test')}
for testname,test in tests.items():test['conn'] = connresults.append(run_data_quality_check(**test))#print(results)
df=pd.DataFrame(results)
df.index+=1
df.columns = ['Test Name', 'Table','Column','Test Passed']
print(tabulate(df,headers='keys',tablefmt='psql'))
#End of data quality checks
conn.close()
print("Disconnected from data warehouse")

其中 mytest 内容包括:

from dataqualitychecks import check_for_nulls
from dataqualitychecks import check_for_min_max
from dataqualitychecks import check_for_valid_values
from dataqualitychecks import check_for_duplicatestest1={"testname":"Check for nulls","test":check_for_nulls,"column": "monthid","table": "DimMonth"
}test2={"testname":"Check for min and max","test":check_for_min_max,"column": "monthid","table": "DimMonth","minimum":1,"maximum":12
}test3={"testname":"Check for valid values","test":check_for_valid_values,"column": "category","table": "DimCustomer","valid_values":{'Individual','Company'}
}test4={"testname":"Check for duplicates","test":check_for_duplicates,"column": "monthid","table": "DimMonth"
}

populating a data warehouse

前提:

在这里插入图片描述
具体步骤:

在这里插入图片描述
建立relationship就是建外键, 如下是sql语法.
在这里插入图片描述

在db2中创建MQT的的sql语法:

CREATE TABLE avg_customer_bill (customerid, averagebillamount) AS
(select customerid, avg(billedamount)
from factbilling
group by customerid
)DATA INITIALLY DEFERREDREFRESH DEFERREDMAINTAINED BY SYSTEM;

querying the data

面向star schema, 通过join的方式,可以将真实想要看到的内容呈现出来. 让内容更加可读.

同样的关键字包括rollup,与cube稍微不同. 严格按照group的column顺序来, 如果没有第一个col,就不会再做展示.

我们可以创建staging table from materialized views , 实现渐进的刷新(incrementally refresh)

data warehouse analysis

BI tools

在这里插入图片描述
工具list:

在这里插入图片描述
基本就是这个模式:

  1. get connected
  2. prepare your data
  3. build visualization
  4. find patterns
  5. generate reports
  6. gain insights

这篇关于Business Intelligence商业智能:概念、数据仓库、相关工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676633

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事