ELT 파이프라인에서 개인 식별 정보(PII) 해시

개인 식별 정보란 무엇입니까?



개인 식별 정보(PII)는 다음과 같이 정의됩니다. 정보가 적용되는 개인의 신원을 직접 또는 간접적인 수단으로 합리적으로 추론할 수 있도록 하는 정보의 표현. 유럽 ​​연합에 있는 사람들의 PII를 수집, 사용 또는 저장하는 경우 작업GDPR을 준수해야 하므로 고객의 개인 데이터를 보호해야 합니다.

뭐, 난 그냥 삭제



물론 파일 저장소/데이터베이스에 추가하기 전에 데이터에서 PII를 삭제하는 것에 대해 생각할 수 있지만 조직의 데이터 사용자는 이에 대해 말할 수 있습니다. 종종 분석가 또는 데이터 과학자는 통찰력을 생성하기 위해 여러 데이터 소스로 작업하고 이들 간의 연결을 찾아야 합니다.
예를 들어 Amazon, Shopify 또는 eBay와 같은 다양한 판매 플랫폼에서 고객을 찾습니다. 이러한 플랫폼에는 각 사용자에 대한 공통 고유 식별자가 없으므로 이메일, 이름 또는 전화번호와 같은 대체 식별자를 사용해야 합니다. 그러나 이 개인 정보를 삭제하기로 결정한 경우에는 더 이상 불가능합니다. ELT 파이프라인에 "해싱"단계를 추가해 보겠습니다.


바이바이파이를 소개합니다



ByeByePii는 개인 식별 정보를 해싱하기 위한 Python 패키지입니다. JSON 파일을 저장하는 데이터 레이크가 GDPR을 준수하도록 만드는 데 중점을 두고 구축되었습니다. 두 가지 기능이 있는 간단한 패키지입니다.
  • PII를 식별하기 위해 Python 사전 분석
  • 지정된 Python 사전에서 PII 해싱

  • 최신 릴리스 버전의 바이너리 설치 프로그램은 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로 해시되므로 교차 기능 식별자로 여전히 완벽하게 사용할 수 있습니다.

    좋은 웹페이지 즐겨찾기