向星型模式事实插入值 table
Insert value to Star schema fact table
我在设计星型模式时被卡住了。这是我的问题
我已经设计了几个维度table。
与客户 table(customer_id,姓名,地址)(200 行)
库存 table(电影,类别,inv_id)(400 行)
商店 table(store_id,商店)(4 行)
和销售 table (sale_date,sale_id)(16500 行)
我正在尝试将值插入事实 table(新创建的,空的)付款(FK customer_id,FK inv_id,FK store_id,FK sale_id, payment_amount)
我有15650笔付款记录。我如何将这些值插入事实 table?
当我使用
insert into payment_amount
select amount
from original
运行出错。 NOT null 外键违规
我应该怎么做才能将这些值包含在事实中 table?
我知道我这里有概念上的错误,希望你能给我一个很好的澄清
抛出的错误可能是因为父维度 table 中不存在这些值 - 客户 table、库存 table、商店 table、销售 table 否则,一旦您尝试在事实 table 中加载此值,则不会插入具有非空约束的其余字段。
您的设计遗漏了 table 标准之间的基本关系。例如,客户如何与销售相关或销售如何与商店相关
例如,您可以建立一些关系,例如 - 商店 table -> 客户 table、销售和库存 table。这些关系可以是一对多、一对一或多对一。这样您就可以针对特定库存从特定商店识别对客户的独特销售
您需要按照以下方式设计数据流:
1. 首先是 Staging table,它可能是非持久性的,并且将是来自不同来源的所有摄取的着陆区
2. 有一些中间 table 将包含来自暂存 tables 的数据转换
3. 从暂存和中间 table 中创建维度 table
4. 从维度和中间 tables
创建事实 table
作为最佳实践 - 在下面的流程中加载记录,这样就不会出现键冲突 -
分期 -> 中级 -> 维度 -> 事实
在理想情况下 - 您无需明确提及密钥,而是在其之上进行清理工作。
我在设计星型模式时被卡住了。这是我的问题
我已经设计了几个维度table。 与客户 table(customer_id,姓名,地址)(200 行) 库存 table(电影,类别,inv_id)(400 行) 商店 table(store_id,商店)(4 行) 和销售 table (sale_date,sale_id)(16500 行)
我正在尝试将值插入事实 table(新创建的,空的)付款(FK customer_id,FK inv_id,FK store_id,FK sale_id, payment_amount) 我有15650笔付款记录。我如何将这些值插入事实 table?
当我使用
insert into payment_amount
select amount
from original
运行出错。 NOT null 外键违规
我应该怎么做才能将这些值包含在事实中 table? 我知道我这里有概念上的错误,希望你能给我一个很好的澄清
抛出的错误可能是因为父维度 table 中不存在这些值 - 客户 table、库存 table、商店 table、销售 table 否则,一旦您尝试在事实 table 中加载此值,则不会插入具有非空约束的其余字段。 您的设计遗漏了 table 标准之间的基本关系。例如,客户如何与销售相关或销售如何与商店相关
例如,您可以建立一些关系,例如 - 商店 table -> 客户 table、销售和库存 table。这些关系可以是一对多、一对一或多对一。这样您就可以针对特定库存从特定商店识别对客户的独特销售
您需要按照以下方式设计数据流: 1. 首先是 Staging table,它可能是非持久性的,并且将是来自不同来源的所有摄取的着陆区 2. 有一些中间 table 将包含来自暂存 tables 的数据转换 3. 从暂存和中间 table 中创建维度 table 4. 从维度和中间 tables
创建事实 table作为最佳实践 - 在下面的流程中加载记录,这样就不会出现键冲突 - 分期 -> 中级 -> 维度 -> 事实
在理想情况下 - 您无需明确提及密钥,而是在其之上进行清理工作。