Hash128 - 指令碼與圖表函數
Hash128() 會傳回組合輸入運算式值的 128 位元雜湊值。結果為包含 22 個字元的字串。 雜湊值對於遮罩個人識別資訊 (PII) 很實用,例如客戶姓名、社會安全號碼或帳號。
語法:
Hash128(expr{, expression})
傳回的資料類型: 字串
引數 | 描述 |
---|---|
expr | 要評估的字串。 |
範例 | 結果 |
---|---|
Hash128( 'abc', 'xyz', '123' ) | 傳回 MA&5]6+3=:>:>G%S<U*S2+ |
Hash128 ( Region, Year, Month ) Note: Region, Year, and Month are table fields. |
傳回 G7*=6GKPJ(Z+)^KM?<$'A+ |
範例 - Hash128 基礎事項
概述
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
以下欄位將用於建立 128 位元雜湊值:
-
Region
-
Year
-
Month
-
載入指令碼
Example:
Load *
inline [
Region, Year, Month
abc, xyz, 123
EU, 2022, 01
UK, 2022, 02
US, 2022, 02
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
Region
-
Year
-
Month
建立下列計算維度:
-
=Hash128(Region, Year, Month),用來計算 128 位元雜湊值。
區域 | 年 | 月 | Hash128(Region, Year, Month) |
---|---|---|---|
abc | xyz | 123 | MA&5]6+3=:>;>G%S<U*S2+ |
EU | 2022 | 01 | B40^K&[T@!;VB'XR]<5=/$ |
UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN! |
US | 2022 | 02 | C6@#]4#_G-(]J7EQY#KRW0 |
對於每一列,Region、Year 和 Month 的雜湊字串聯結在一起並傳回 22 個字元的字串。
以下程式碼顯示如何在載入指令碼中使用該函數。
Hash_128:
Load *,
Hash128(Region, Year, Month) as Hash128_Region_Year_Month;
Load * inline [
Region, Year, Month
abc, xyz, 123
EU, 2022, 01
UK, 2022, 02
US, 2022, 02 ];
區域 | 年 | 月 | Hash128_Region_Year_Month |
---|---|---|---|
abc | xyz | 123 | MA&5]6+3=:>;>G%S<U*S2+ |
EU | 2022 | 01 | B40^K&[T@!;VB'XR]<5=/$ |
UK | 2022 | 02 | O5T;+1?[B&"F&1//MA[MN! |
US | 2022 | 02 | C6@#]4#_G-(]J7EQY#KRW0 |
範例 - 具有重複項目的 Hash128 使用情境
概述
此範例為每個產品項目建立唯一的雜湊值。雜湊值作為唯一識別碼,讓公司能夠有效地偵測和管理重複內容。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
TransactionID
-
ProductID
-
ProductName
-
SupplierID
-
載入指令碼
Example:
Load *
inline [
TransactionID, ProductID, ProductName, SupplierID
1, 101, Widget A, S001, 100
2, 102, Widget B, S002, 200
3, 101, Widget A, S001, 50
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
Transaction ID
-
ProductID
-
ProductName
-
SupplierID
建立下列計算維度:
-
=Hash128(ProductID, ProductName, SupplierID),用來計算 22 個字元的金鑰。
TransactionID | ProductID | ProductName | SupplierID | Hash128(ProductID, ProductName, SupplierID) |
---|---|---|---|---|
1 | 101 | Widget A | S001 | CY`&^(N,E/#`TJT4&]/7N% |
2 | 102 | Widget B | S002 | O7(1;V1%MG;Z+A[/H)G5&0 |
3 | 101 | Widget A | S001 | CY`&^(N,E/#`TJT4&]/7N% |
比較 Hash128 函數的輸出。請注意,第一個和第三個 TransactionID 記錄具有重複的雜湊值,因為這些列的 ProductID、ProductName 和 SupplierID 字串的組合相同。
範例 - 對匿名資料的 Hash128 使用情境
概述
金融服務公司處理敏感的客戶資訊,例如信用卡號、社會安全號碼和客戶姓名。為了保護隱私並確保遵守《一般資料保護規範》(GDPR) 或《健康保險可攜性和責任法案》(HIPAA) 等法規,他們需要在產生分析報告時對敏感資料進行匿名處理。不過,他們也需要保持一致性,以便他們可以在不同的資料集追蹤相同客戶,而不會洩露客戶的身分。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
-
載入到稱為 Example 之資料表格的資料集。
-
資料表格中的欄位如下:
-
CustomerID
- CustomerName
-
SSN
-
載入指令碼
Example:
Load *
inline [
CustomerID, CustomerName, SSN
101, John Doe, 123-45-6789|
102, Jane Smith, 987-65-4321
];
結果
載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度:
-
CustomerID
-
CustomerName
-
SSN
建立下列計算維度:
-
=Hash128(CustomerName)
-
=Hash128(SSN)
CustomerID | CustomerName | SSN | Hash128(CustomerName) | Hash128(SSN) |
---|---|---|---|---|
101 | John Doe | 123-45-6789| | GMD(*B9*!PQ&MTY2@$4A\+ | N&[PSH:I$M?OF<5/9LV&N# |
102 | Jane Smith | 987-65-4321 | EP@9]GSI)5G\I*,B?H,C?) | HCFXMR'2=\3WF6?_\6LN;$ |
資料隱私:不會直接看見原始敏感資料,但雜湊值在不同記錄之間能保持一致。這樣就能進行分析,例如彙總客戶活動,而無需暴露客戶的實際身分。
合規性:對敏感欄位進行雜湊處理,藉此讓公司確保遵守資料隱私法規。
安全性:雜湊函數產生不可逆的固定大小輸出,為敏感資料增加了額外的保護層。