我的开发人员已将他们的应用程序设置为使用 GUID 作为几乎所有表的 PK,默认情况下 SQL Server 已在这些 PK 上设置聚集索引。
该系统相对年轻,我们最大的表只有一百万多行,但我们正在查看我们的索引并希望能够快速扩展,因为在不久的将来可能需要它。
所以,我的第一个倾向是将聚集索引移动到 created 字段,它是 DateTime 的 bigint 表示。但是,我可以使 CX 独一无二的唯一方法是在此 CX 中包含 GUID 列,但按创建顺序排列。
这是否会使集群键太宽,是否会提高写入性能?读取也很重要,但此时写入可能是一个更大的问题。
我一直在研究 Amazon 的 Redshift 数据库作为我们数据仓库未来可能的替代品。我的经验一直是使用维度建模和 Ralph Kimball 的方法,所以看到 Redshift 不支持自动递增列的串行数据类型等功能有点奇怪。
但是,AWS 大数据博客最近有一篇关于如何为星型架构优化 Redshift 的博客文章:https : //blogs.aws.amazon.com/bigdata/post/Tx1WZP38ERPGK5K/Optimizing-for-Star-Schemas -and-Interleaved-Sorting-on-Amazon-Redshift
我的问题是在 Redshift 中加载星型模式的最佳实践是什么?我在 Redshift 的任何文档中都找不到答案。
我倾向于将我的文件从 S3 导入到临时表中,然后在插入到目标表之前使用 SQL 进行诸如查找和生成代理键之类的转换。
这是其他人目前正在做的事情吗?是否有值得花钱的 ETL 工具使这更容易?
我们正在逐步淘汰旧系统并迁移到新系统。上次我们淘汰旧系统时,我们并行运行两个系统并在两者之间集成数据,直到我们领域中的所有内容完全迁移。在这个过程中,我能够在我们的旧系统和我们的新系统之间建立集成,利用 SQL Server 的变更数据捕获来跟踪变更并逐步集成这些变更。
对于下一次迁移,我们将逐步淘汰的旧系统基于 MySQL v5.1.69 而不是 SQL Server。我不熟悉 MySQL,我想知道是否有任何类似于 CDC 的技术可以在我们当前版本或值得迁移的更新版本的 MySQL 上利用?
我正在尝试编写一个查询来对一些数据进行非规范化以集成到我们的数据仓库中,特别是围绕生成一些时隙。
在我的源系统中,我有一个表,它有一个开始时间和结束时间,然后有一列指定每 15 分钟间隔有多少约会空档可用。
例子:
Location | Start Time | End Time | Appointment Slots
A | 9:00 am | 5:00 pm | 2
B | 9:00 am | 5:00 pm | 1
Run Code Online (Sandbox Code Playgroud)
我已经能够使用 CTE 生成 15 分钟块的列表。但是,每个 15 分钟的插槽只是说位置 A 有 2 个插槽可用,位置 B 有 1 个插槽可用。我想要的是能够为位置 A 每 15 分钟生成 2 行,每 15 分钟生成 1 行对于位置 B。
sql-server ×2
etl ×1
index-tuning ×1
integration ×1
mysql ×1
mysql-5.1 ×1
redshift ×1
t-sql ×1