ELT 파이프라인에서 개인 식별 정보(PII) 해시
12157 단어 dataengineeringdatabasepython
개인 식별 정보란 무엇입니까?
개인 식별 정보(PII)는 다음과 같이 정의됩니다. 정보가 적용되는 개인의 신원을 직접 또는 간접적인 수단으로 합리적으로 추론할 수 있도록 하는 정보의 표현. 유럽 연합에 있는 사람들의 PII를 수집, 사용 또는 저장하는 경우 작업GDPR을 준수해야 하므로 고객의 개인 데이터를 보호해야 합니다.
뭐, 난 그냥 삭제
물론 파일 저장소/데이터베이스에 추가하기 전에 데이터에서 PII를 삭제하는 것에 대해 생각할 수 있지만 조직의 데이터 사용자는 이에 대해 말할 수 있습니다. 종종 분석가 또는 데이터 과학자는 통찰력을 생성하기 위해 여러 데이터 소스로 작업하고 이들 간의 연결을 찾아야 합니다.
예를 들어 Amazon, Shopify 또는 eBay와 같은 다양한 판매 플랫폼에서 고객을 찾습니다. 이러한 플랫폼에는 각 사용자에 대한 공통 고유 식별자가 없으므로 이메일, 이름 또는 전화번호와 같은 대체 식별자를 사용해야 합니다. 그러나 이 개인 정보를 삭제하기로 결정한 경우에는 더 이상 불가능합니다. ELT 파이프라인에 "해싱"단계를 추가해 보겠습니다.
바이바이파이를 소개합니다
ByeByePii는 개인 식별 정보를 해싱하기 위한 Python 패키지입니다. JSON 파일을 저장하는 데이터 레이크가 GDPR을 준수하도록 만드는 데 중점을 두고 구축되었습니다. 두 가지 기능이 있는 간단한 패키지입니다.
최신 릴리스 버전의 바이너리 설치 프로그램은 Python Package Index (PyPI)에서 사용할 수 있습니다.
pip install ByeByePii
JSON 분석 및 해시에 대한 키 목록 생성
Python 사전에서 모든 키를 수동으로 찾을 필요가 없도록
analyzeDict
함수를 사용할 수 있습니다.import byebyepii
import json
if __name__ == '__main__':
# Loading local JSON file
with open('data.json') as json_file:
data = json.load(json_file)
# Analyzing the dictionary and creating our hash list
key_list, subkey_list = byebyepii.analyzeDict(data)
$ python3 analyzeDict.py
Add BuyerInfo - BuyerEmail to hash list? (y/n) y
Add SalesChannel to hash list? (y/n) n
Add OrderStatus to hash list? (y/n) n
Add PurchaseDate to hash list? (y/n) n
Add ShippingAddress - StateOrRegion to hash list? (y/n) y
Add ShippingAddress - PostalCode to hash list? (y/n) y
Add ShippingAddress - City to hash list? (y/n) n
Add ShippingAddress - CountryCode to hash list? (y/n) n
Add LastUpdateDate to hash list? (y/n) n
Keys to hash: ['BuyerInfo', 'ShippingAddress', 'ShippingAddress', 'ShippingAddress', 'ShippingAddress']
Subkeys to hash: ['BuyerEmail', 'StateOrRegion', 'PostalCode']
주어진 JSON에서 PII 해싱
방금 만든 키 목록을 사용하여 사전에서 PII를 해시할 수 있습니다.
import byebyepii
import json
if __name__ == '__main__':
# Loading local JSON file
with open('data.json') as json_file:
data = json.load(json_file)
# Hasing the PII
keys_to_hash = ['BuyerInfo', 'ShippingAddress', 'ShippingAddress', 'ShippingAddress', 'ShippingAddress']
subkeys_to_hash = ['BuyerEmail', 'StateOrRegion', 'PostalCode']
hashed_pii = byebyepii.hashPii(data, keys_to_hash, subkeys_to_hash)
# Writing the updated JSON file
with open('hashed_data.json', 'w') as outfile:
json.dump(hashed_pii, outfile)
전에:
{
"BuyerInfo": {
"BuyerEmail": "[email protected]"
},
"EarliestShipDate": "2022-01-01T23:59:59Z",
"SalesChannel": "Website",
"OrderStatus": "Shipped",
"PurchaseDate": "2022-01-01T23:59:59Z",
"ShippingAddress": {
"StateOrRegion": "West Midlands",
"PostalCode": "DY9 0TH",
"City": "STOURBRIDGE",
"CountryCode": "GB"
},
"LastUpdateDate": "2022-01-01T23:59:59Z",
}
후에:
{
"BuyerInfo": {
"BuyerEmail": "037a51cb9162f51772eaf6b0fb02e1b5d0bf8219deacf723eeedc162209bfd33"
},
"EarliestShipDate": "2022-01-01T23:59:59Z",
"SalesChannel": "Website",
"OrderStatus": "Shipped",
"PurchaseDate": "2022-01-01T23:59:59Z",
"ShippingAddress": {
"StateOrRegion": "08fa57d00de1936ebea7aeaf8e36d04510a5d885cfaa4f169c2b010d36ccaca4",
"PostalCode": "714f02c01e20988ee273776dc218f44326c2f5839618b0c117413b0cc7d91701",
"City": "STOURBRIDGE",
"CountryCode": "GB"
},
"LastUpdateDate": "2022-01-01T23:59:59Z",
}
문자열
[email protected]
은 항상 037a51cb9162f51772eaf6b0fb02e1b5d0bf8219deacf723eeedc162209bfd33
로 해시되므로 교차 기능 식별자로 여전히 완벽하게 사용할 수 있습니다.
Reference
이 문제에 관하여(ELT 파이프라인에서 개인 식별 정보(PII) 해시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codiefz/hash-personal-identifiable-information-pii-in-your-elt-pipelines-3k55텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)