ทดสอบการทำ あなたのデータ湖のデータをアマゾン


การแชข้อมูลหรือใช้ต้อง 遵守するตาม 規則เวลา ディールกับข้อมูลลูกค้าซึ่งอาจจะประกอบไปด้วยข้อมูลส่วนตัว (ピ)ที่ส่วนมากจะถูกทำ データ匿名化การลบข้อมูลโดยไม่ระบุชื่อ) เช่นพวก ピアスอย่าง ชื่อ หรือ นามสกุล
ในโพสต์นี้เราจะลองมาทำกระบวนการ データを表すโดยใช้ アマゾンアテナ!
Athena คืออะไร?

目次
  • Architecture Diagram
  • Pre-requisites
  • Anonymize with Athena
  • Conclusion

  • アーキテクチャ図
    กระบวนการที่จะทำคือ เราจะ アップロードข้อมูลเข้าไปใน アマゾンS 3ทำการ データを表すและเขียนข้อมูลลงไปใน s 3 ( persistent )แล้วสุดท้ายเราจะมาลองสร้าง データを表すให้อยู่ในรูปแบบ ビュー

    事前の要件
  • AWS Account - ❗ ดูวิธีการคิดราคาของ Amazon Athena ก่อนนะจ๊ะ..
  • โหลดข้อมูลแล้วลุยเลย! ลิ้งนี้

  • アテナで匿名化

    เราจะสร้าง tables ที่มีข้อมูลที่ถูก anonymized แล้ว แต่ก่อนที่จะทำลองคำนึงสิ่งที่เราจะเอาข้อมูลไปใช้ต่อ ตัวอย่างเช่น ถ้า columns นั้นเราคิดว่าไม่มีโอกาสหรือไม่แน่ใจว่าจะใช้หรือใน analytics process บางครั้งการที่เราละเว้นหรือไม่นำข้อมูลนั้นมาอาจจะเป็นวิธีที่ดีกว่า วิธีนึงในการทำ anonymize sensitive information คือการทำ hashing

    hash function คือ function ที่เราใช้ในการ map data จากขนาดไหนก็ได้ให้อยู่ในรูปแบบขนาดที่คงที่ หาอ่านเพิ่มเกี่ยวกับ Hash function
  • เริ่มสร้าง テーブルโดยใช้ アテナลิ้งนี้
  • CREATE EXTERNAL TABLE `cust_data`(
      `customer_id` bigint, 
      `prefix` string, 
      `first_name` string, 
      `middle_name` string, 
      `last_name` string, 
      `suffix` string, 
      `gender` string, 
      `dob` string, 
      `address` string)
    ROW FORMAT DELIMITED 
      FIELDS TERMINATED BY ',' 
    STORED AS INPUTFORMAT 
      'org.apache.hadoop.mapred.TextInputFormat' 
    OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION
      's3://chatkom-doc-shared/data/'
    TBLPROPERTIES (
      'classification'='csv', 
      'delimiter'=',', 
      'skip.header.line.count'='1', 
      'typeOfData'='file')
    
    ลอง クエリผ่าน Athena
    SELECT * FROM "default"."customers" limit 10;
    
  • สร้าง テーブルที่ทำการ データの匿名化โดยใช้ アテナลิ้งนี้
  • CREATE table "default"."cust_data_anonym"
    WITH (format='parquet')
    as
    SELECT 
    customer_id,
    prefix,
    sha256(to_utf8(cast(first_name AS varchar))) AS first_name_anonym,
    sha256(to_utf8(cast(middle_name AS varchar))) AS middle_name_anonym,
    last_name,suffix,
    gender,
    dob,
    address
    FROM "default"."cust_data"
    
    ลอง クエリผ่าน Athena
    SELECT * FROM "default"."cust_data_anonym" limit 10;
    

    เราจะเห็นข้อมูลใน 最初の名前กับ 名前ถูก 匿名化するโดย ハッシュ関数
  • ในกรณีเราไม่ต้องการสร้าง テーブルสามารถทำเป็น ビューครอบได้เช่นกัน โดยใช้ アテナลิ้งนี้
  • CREATE OR REPLACE VIEW "default"."v_cust_data_anonym"
    as
    SELECT 
    customer_id,
    prefix,
    sha256(to_utf8(cast(first_name AS varchar))) AS first_name_anonym,
    sha256(to_utf8(cast(middle_name AS varchar))) AS middle_name_anonym,
    last_name,suffix,
    gender,
    dob,
    address
    FROM "default"."cust_data"
    

    ✅ 結論 จบแล้ว! Hasing function เป็นทางเลือกนึงในการ Anonymizing dataset ซึ่งเป็นสิ่งเราเจอบ่อยๆก่อนที่จะ analyze ข้อมูล ซึ่งในตัวอย่างนี้เรามีการ Anonymizing dataset ใน S3 กับ Athena hashing function