从事务性平面数据库填充事实表和维度表的最佳实践

2024-04-08

我想在 SSIS / SSAS 中填充星型模式/多维数据集。

我准备了所有维度表和事实表、主键等。

源是一个“平面”(项目级别)表,我现在的问题是如何拆分它 并将其从一个放入相应的表中。

我做了一些谷歌搜索,但找不到令人满意的解决方案。人们会认为这是 BI 开发中相当常见的问题/情况?!

谢谢, 亚历克斯


首先,这取决于您想要进行简单的初始数据传输还是更复杂的数据传输(例如增量)。我假设您正在进行初始数据传输。

假设您的项目表包含如下列:id, cat1, cat2, cat3, cat4, ...假设类别 1-4 有列id, cat_name,可以加载dim_cat1(商品类别1的维度表),如下:

insert into dim_cat1 (cat_name)
  select distinct cat1 from item_table;

您可以对所有其他类别/维度表执行相同的操作。我假设您的维度表已自动生成 ID。现在,加载事实表:

insert into fact_table (id, cat1_id, cat2_id, cat3_id, cat4_id, ...)
  select id, dc1.id
    from item_table it
      join dim_cat1 dc1 on dc1.cat_name = it.cat1
      join dim_cat2 dc2 on dc2.cat_name = it.cat2
      join dim_cat3 dc3 on dc3.cat_name = it.cat3
      join dim_cat4 dc3 on dc4.cat_name = it.cat4
 ...

如果您有大量数据,那么在 item_table 和维度表中的类别名称上创建索引可能是有意义的。

顺便说一句,这是一个独立于数据库的答案,我不使用 SSIS/SSAS:您可能有可用的工具可以为您简化此过程的部分内容,但用纯 SQL 编写实际上并不那么困难/耗时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从事务性平面数据库填充事实表和维度表的最佳实践 的相关文章

  • 将对象存储在数据库中

    我有很多对象 每个对象都可以有许多不同类型的属性 许多属性重叠 例如 许多对象具有属性 名称 由于对象的类型很多 如果为每组具有相同属性的对象构建一个表 将需要很多表 目前我使用的是mysql 它是这样存储的 object id attri
  • 如何使用 Azure 数据工厂将数据从追加变量活动复制到 csv 文件

    如何使用 Azure 数据工厂将数据从附加变量活动复制到 csv 文件 我有文件名数组存储在附加变量活动中 我想将所有这些文件名存储在数据湖位置的 CSV 文件中 欲了解更多信息 请参阅此如何使用 ADF 比较文件夹 Datalake 内的
  • Java - 如何批量插入和更新数据库

    我想在一个PreparedStatement 中批量处理多种类型的数据库调用 这可能吗 有没有办法做类似的事情 PreparedStatement pstmt connection prepareStatement 哪里的 可以是INSER
  • 长 IN 子句是代码异味吗?

    简单的问题 想知道长 IN 子句是否有代码味道 我真的不知道如何证明它的合理性 除了我认为的味道之外 我无法解释为什么它有味道 select name code capital population flower bird from us
  • 如何在 SSIS 脚本任务中传递自定义对象列表?

    我有一个脚本任务 它创建自定义对象列表并将它们设置为 SSIS 对象变量 定制类 public class Dog public string Name get set 用于填充列表并设置为 SSIS 对象变量 myDogs 的代码 pub
  • ssis 输出 json 文件添加额外的 crlf

    这个问题已经用c 代码解决了 请参考这篇文章the post https stackoverflow com questions 54059599 ssis generate json file remove return 54084996
  • Firestore 每秒向一个集合写入 500 多次以上

    Firestore 的限制为每秒 500 次写入 to 一个集合 其中文档包含顺序值 索引字段 https cloud google com firestore quotas writes and transactions https cl
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • 在实时计算机上更新(或替换)整个数据库表的最佳方法是什么?

    我每周都会收到一个数据源 我将对其进行解析并放入数据库中 数据每周不会有太大变化 但我应该定期更新数据库 除了每周更新外 数据是静态的 目前重建整个数据库不是问题 但最终该数据库将上线 人们可以在我重建数据库时查询该数据库 数据量并不小 几
  • 在哪里可以下载可用作数据仓库的示例数据库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在哪里可以下载可用于创建数据仓库的示例数据库 它不应该是来自 Microsoft Northwind
  • 在 MySQL 中对连续值进行分组并向这些组添加 id

    我有一个简单的表 我需要确定四行的组 这些组不是连续的 但每行的每一行的值都有 1 例如 language id C 16 C 17 Java 18 Python 19 HTML 65 JavaScript 66 PHP 67 Perl 6
  • cdb - 大文件(数百 GB)的常量键值存储

    我需要一个类似于 cdb 常量数据库 的工具 它允许我在索引文件中存储大量数据 数百 GB 范围内 CDB 是理想的候选者 但它有 2 GB 的文件大小限制 因此不适合 我正在寻找的功能是支持二进制键和值的持久键值存储 创建后数据库是只读的
  • QuickSight - 随着时间的推移活动事件的计数[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在 QuickSight 中有一个事件数据集 其中每条记录都有两个日期字段 开始日期和结束日期 如果 T 介于 startDate
  • 如何调试 MySQL 存储过程?

    我当前的调试存储过程的过程非常简单 我创建一个名为 debug 的表 在存储过程运行时从其中插入变量值 这允许我查看脚本中给定点的任何变量的值 但是有没有更好的方法来调试 MySQL 存储过程 下列debug msg可以调用过程来简单地将调
  • DB2连接授权失败原因:Java不支持安全机制

    我正在尝试使用 DB2JDBC Type4 驱动程序配置 DB2 连接 但我收到这个错误 线程 main 中的异常 com ibm db2 jcc am SqlInvalidAuthorizationSpecException jcc t4
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • APEX 安装失败,PLS-00201:必须声明标识符“SYS.DBMS_DB_VERSION”

    尝试在 Oracle XE 18c 数据库上安装 Oracle APEX 20 2 如下官方说明 https docs oracle com en database oracle application express 20 1 htmig
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐