Hash Casing (Project)
Applies to
Platform: Microsoft SQL Server · Snowflake · Snowflake dbt · Databricks · Databricks dbt · Fabric Lakehouse · Fabric Warehouse · Oracle
Architecture: Data Store · Data Vault · Dimensional · Data Mart
Hash Casing (HashCasing) converts every term value of a hash input to upper or lower case before it is hashed. Use it when values that differ only in letter case must give the same business key and must not create a new version. It applies to every key hash and row hash of the project.
Values and default
None(default): values keep their case.Upper: values are converted to upper case.Lower: values are converted to lower case.
Set the value in the Hashing group of the Additional Settings in Project Settings, before the first load.
Effect on generated output
Each term value is wrapped in UPPER or LOWER, after the conversion to text and after Hash Trim. The Hash Null Placeholder is not converted. With Upper, Microsoft SQL Server generates for the terms CUSTOMER and CUSTOMER_SINCE:
ISNULL(UPPER([CUSTOMER]), N'_NULL_')
+ N'_' + ISNULL(UPPER(CAST([CUSTOMER_SINCE] AS NVARCHAR(4000))),
N'_NULL_')
With Upper, the values abc and ABC give the same hash, and a change from one to the other creates no new version. With None, they give different hashes, also on Microsoft SQL Server with a case-insensitive collation, where a comparison with = treats them as equal.
Changing the value
A new value changes every hash whose input text it changes, for example every input with lower-case letters when you switch from None to Upper. Stored hash values are not recalculated, so the next load treats those rows as changed. The consequences for loaded objects are described in Changing the hash settings.
Available since Generator 2.2. Earlier releases did not convert the case, so None keeps hash values unchanged after an upgrade.
Related articles
- Reference: Hash Trim (Project), Hash Null Placeholder (Project), Hash Concatenation Separator (Project), Hash Algorithm (Project)
- See also: How biGENIUS-X builds hash values, Manage Project settings and Generator configuration