星型模式,代理键
Star schema, surrogate keys
我们有带有遥测数据的又大又宽的平面文件。他们每天都来。
我将在 ADLA 数据库中创建 星型模式 ,其中将填充来自这些大文件的数据。 (看起来 ADLA DB 提供了很多功能(与原始 ADLS 相反):索引、统计、压缩、分布管理...)
要生成代理键,我们可以使用:
- row_number
- 散列
散列呢?我们可以使用哪些功能来实现它? (我正在考虑 C#)
首先我想了解您为什么要使用代理键。
当前的 U-SQL 表旨在支持批量查询,您可以提前知道大部分预期查询。因此,您设计分布键和方案(散列、直接散列、范围)和聚簇索引以优化最昂贵的作业。
例如,如果您需要使用直接散列来管理数据倾斜,则使用代理键是有意义的,但否则它可能会增加利用 partition/distribution 消除的复杂性。
关于实现您自己的散列函数,C# 有一些内置的散列函数,您也可以编写自己的散列函数。例如,C# Object.GetHashCode
方法。
我们有带有遥测数据的又大又宽的平面文件。他们每天都来。
我将在 ADLA 数据库中创建 星型模式 ,其中将填充来自这些大文件的数据。 (看起来 ADLA DB 提供了很多功能(与原始 ADLS 相反):索引、统计、压缩、分布管理...)
要生成代理键,我们可以使用:
- row_number
- 散列
散列呢?我们可以使用哪些功能来实现它? (我正在考虑 C#)
首先我想了解您为什么要使用代理键。
当前的 U-SQL 表旨在支持批量查询,您可以提前知道大部分预期查询。因此,您设计分布键和方案(散列、直接散列、范围)和聚簇索引以优化最昂贵的作业。
例如,如果您需要使用直接散列来管理数据倾斜,则使用代理键是有意义的,但否则它可能会增加利用 partition/distribution 消除的复杂性。
关于实现您自己的散列函数,C# 有一些内置的散列函数,您也可以编写自己的散列函数。例如,C# Object.GetHashCode
方法。