autonumberhash128 - 脚本函数
此脚本函数用于计算合并输入表达式值的 128 位散列,并返回脚本执行期间遇到的每个特殊散列值的唯一整数值。例如,此函数可用于创建复合键的紧凑记忆呈现形式。
信息注释您只能连接已在同一数据加载过程中生成的 autonumberhash128 关键字段,作为根据读取表格的顺序所生成的整数。如果您需要使用在两次数据加载过程中保持一致且独立于源数据排序的关键字段,应使用 hash128、hash160 或 hash256 函数。
语法:
autonumberhash128(expression {, expression})
示例: 创建合成钥段
在此例中,我们使用 autonumberhash128 函数创建合成钥段以节省内存。尽管此例主要用于演示目的,但对于包含大量行的表格将非常有意义。
Region | Year | Month | Sales |
---|---|---|---|
North | 2014 | May | 245 |
North | 2014 | May | 347 |
North | 2014 | June | 127 |
South | 2014 | June | 645 |
South | 2013 | May | 367 |
South | 2013 | May | 221 |
使用内联数据加载源数据。然后,我们添加前置 Load,用来从 Region、Year 和 Month 字段创建合成钥段。
RegionSales: LOAD *, AutoNumberHash128(Region, Year, Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Sales North, 2014, May, 245 North, 2014, May, 347 North, 2014, June, 127 South, 2014, June, 645 South, 2013, May, 367 South, 2013, May, 221 ];
最终生成的表格如下所示:
Region | Year | Month | Sales | RYMkey |
---|---|---|---|---|
North | 2014 | May | 245 | 1 |
North | 2014 | May | 347 | 1 |
North | 2014 | June | 127 | 2 |
South | 2014 | June | 645 | 3 |
South | 2013 | May | 367 | 4 |
South | 2013 | May | 221 | 4 |
在此例中,如果您需要链接到其他表格,可以引用 RYMkey(例如 1),而不是字符串“North2014May”。
现在,我们可以通过类似方式加载成本的源表格。在前置 Load 中已排除 Region、Year 和 Month 字段以避免创建合成关键字段,因为我们已经使用 autonumberhash128 函数创建复合关键字段用于链接表格。
RegionCosts: LOAD Costs, AutoNumberHash128(Region, Year, Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Costs South, 2013, May, 167 North, 2014, May, 56 North, 2014, June, 199 South, 2014, June, 64 South, 2013, May, 172 South, 2013, May, 126 ];
现在,我们可以将表格图表添加到工作表,并添加 Region、Year 和 Month 字段,以及销售额和成本的 Sum 度量。该表格如下所示:
Region | Year | Month | Sum([Sales]) | Sum([Costs]) |
---|---|---|---|---|
Totals | - | - | 1952 | 784 |
North | 2014 | June | 127 | 199 |
North | 2014 | May | 592 | 56 |
South | 2014 | June | 645 | 64 |
South | 2013 | May | 588 | 465 |