Lab 3: ค้นพบสินค้าที่สูญหายด้วย BigQuery Graph และ Conversational Analytics

1. บทนำ

ยินดีต้อนรับสู่ขั้นตอนสุดท้ายของการสืบสวนเรื่องสินค้าที่สูญหาย หลังจากติดตามตู้คอนเทนเนอร์ที่ขโมยฟิกเกอร์ Android จากลอนดอนไปจนถึงซิดนีย์ ร่องรอยก็หายไป การปิดใช้ทรานสปอนเดอร์ของตู้คอนเทนเนอร์ทำให้ห้องนิรภัยอัจฉริยะของตู้คอนเทนเนอร์ทริกเกอร์การล็อกดาวน์ฉุกเฉินโดยอัตโนมัติ

ภารกิจของคุณคือค้นหาตำแหน่งสุดท้ายของตู้คอนเทนเนอร์และดึงรหัสผ่านสำหรับการลบล้างด้วยตนเองเพื่อปลดล็อกห้องนิรภัยด้วยตนเอง เพื่อกู้คืนสินค้าที่มีมูลค่าสูงก่อนที่ระบบจะล็อกอย่างถาวร

ตัวอย่างสถาปัตยกรรม Conversational Analytics ของ Lost Cargo Lab 3

หากต้องการค้นหาคอนเทนเนอร์ที่หายไปและรักษาความปลอดภัยของสินค้า คุณจะต้องสร้างกราฟพร็อพเพอร์ตี้ BigQuery เพื่อติดตามเส้นทางการจัดส่ง จากนั้นคุณจะสืบค้นเครือข่ายนี้ในภาษาธรรมชาติโดยใช้ Conversational Analytics และปิดท้ายด้วยการค้นหาเชิงความหมายในข้อมูลเมตาของข้อมูลด้วย Knowledge Catalog เพื่อค้นหารหัสการลบล้าง

💡 พลาดLab 1 หรือ Lab 2 ไม่ต้องกังวล ห้องทดลองนี้เป็นแบบครบวงจร ขั้นตอนการตั้งค่าสภาพแวดล้อมจะจัดเตรียมทุกอย่างที่คุณต้องการเพื่อให้คุณเริ่มใช้งานได้ทันทีและดำเนินการให้เสร็จสมบูรณ์ได้ด้วยตนเอง

สิ่งที่คุณต้องทำ

  • โคลนที่เก็บและเรียกใช้สคริปต์การตั้งค่าใน Google Cloud Shell
  • สร้างกราฟพร็อพเพอร์ตี้ใน BigQuery โดยลิงก์ข้อมูลบริษัท เรือ และใบรับรอง
  • ใช้การวิเคราะห์แบบสนทนาเพื่อค้นหากราฟในภาษาธรรมชาติ โดยติดตามเส้นทางการขนส่งสินค้าเพื่อระบุผู้ให้บริการที่รับผิดชอบ
  • ค้นหาตารางที่มีรหัสการลบล้างสุดท้ายโดยใช้แคตตาล็อกความรู้
  • ใช้การควบคุมการเข้าถึงระดับคอลัมน์ของ BigQuery เพื่อยกเลิกการมาสก์และแสดงรหัสสุดท้าย

สิ่งที่คุณต้องมี

  • เว็บเบราว์เซอร์ เช่น Chrome
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
  • สิทธิ์เข้าถึง Google Cloud Shell

Codelab นี้ออกแบบมาสำหรับผู้ปฏิบัติงานด้านข้อมูลทุกระดับ

ทรัพยากรที่สร้างในโค้ดแล็บนี้ควรมีค่าใช้จ่ายน้อยกว่า $5

ระยะเวลาโดยประมาณ: Codelab นี้จะใช้เวลาประมาณ 45 นาที

2. ก่อนเริ่มต้น

สร้างโปรเจ็กต์ Google Cloud

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว

เริ่มต้น Cloud Shell

คุณจะใช้ Google Cloud Shell เพื่อดาวน์โหลดโค้ด เรียกใช้สคริปต์การตั้งค่า และทำให้แอปพลิเคชันใช้งานได้

  1. ในแท็บเบราว์เซอร์ใหม่ ให้เปิด Cloud Shell โดยทำดังนี้

เปิดใช้งาน Cloud Shell

  1. เมื่อเชื่อมต่อแล้ว ให้ตั้งค่ารหัสโปรเจ็กต์และยืนยันสภาพแวดล้อม
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1

คุณควรเห็นข้อความที่คล้ายกับข้อความต่อไปนี้

Your active configuration is: [cloudshell-####]
Updated property [core/project]

เปิดใช้ API ที่จำเป็น

เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อเปิดใช้ API ที่จำเป็น

gcloud services enable \
 bigquery.googleapis.com \
 aiplatform.googleapis.com \
 datacatalog.googleapis.com  \
 geminidataanalytics.googleapis.com \
 cloudaicompanion.googleapis.com 

เมื่อดำเนินการสำเร็จ คุณควรเห็นข้อความที่คล้ายกับข้อความต่อไปนี้

Operation "operations/..." finished successfully.

3. ตั้งค่าสภาพแวดล้อม

ในแล็บก่อนหน้าของชุดนี้ เราได้วางรากฐานสำหรับการตรวจสอบแล้ว

1. โคลนที่เก็บ

โคลนที่เก็บ Codelab ไปยังสภาพแวดล้อม Cloud Shell โดยทำดังนี้

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/bigquery-graph-analytics
git checkout main
cd codelabs/bigquery-graph-analytics/

2. ตั้งค่าตารางฐานและแท็กนโยบาย

เรียกใช้สคริปต์การตั้งค่าเพื่อสร้างชุดข้อมูล BigQuery และใช้แท็กการรักษาความปลอดภัยระดับคอลัมน์เพื่อจำกัดข้อมูลที่ละเอียดอ่อน

bash setup_lab.sh

ตรวจสอบว่าเอาต์พุตในเทอร์มินัลแสดงการเริ่มต้นที่สำเร็จ

🚀 Provisioning foundational tables and deploying Policy Tag security bindings...
🎯 Active Project: your-project-id
...
🎉 Success! Foundational tables initialized and Column-Level Policy Tags fully mapped out of the box!

เมื่อตั้งค่าสภาพแวดล้อมเรียบร้อยแล้วและป้อนข้อมูลลอจิสติกส์ลงใน BigQuery คุณก็สร้างกราฟพร็อพเพอร์ตี้เพื่อเชื่อมต่อตารางและติดตามเส้นทางการขนส่งสินค้าได้แล้ว

4. เชื่อมต่อข้อมูลโดยใช้ BigQuery Graph

ในการวิเคราะห์ข้อมูลซัพพลายเชน เราจะกำหนดความสัมพันธ์ระหว่างบริษัท เรือ และใบรับรองสินค้า การสร้างกราฟพร็อพเพอร์ตี้ช่วยให้เราค้นหาการเชื่อมต่อเหล่านี้ได้อย่างง่ายดาย

1. วิธีที่กราฟพร็อพเพอร์ตี้สร้างความสัมพันธ์

แผนที่สถาปัตยกรรมที่คอมไพล์กราฟพร็อพเพอร์ตี้

กราฟพร็อพเพอร์ตี้ BigQuery จะจำลองเครือข่ายโดยใช้สิ่งต่อไปนี้

  • โหนด: เอนทิตีในเครือข่าย ในห้องทดลองนี้ โหนดจะแสดงถึงบริษัท (ซึ่งจัดเก็บรายละเอียดการติดต่อโดยตรง) Manifest และเรือ
  • ขอบ: ความสัมพันธ์ที่ลิงก์โหนดเข้าด้วยกัน เช่น
    • ขอบเชื่อมต่อ Manifest กับ Vessel (ผ่านความสัมพันธ์ในตาราง manifests)
    • ขอบจะเชื่อมต่อเรือกับบริษัท (ผ่านความสัมพันธ์ในตาราง vessels)
  • พร็อพเพอร์ตี้: ข้อมูลเมตาที่จัดเก็บไว้ในโหนดหรือขอบ เช่น โหนดบริษัทมีคอลัมน์อย่าง company_name และ phone_number และโหนดไฟล์ Manifest มี seal_integrity_status และพิกัด (last_ping_lat, last_ping_long)
  • ป้ายกำกับ: ชื่อแท็กที่กำหนดให้กับโหนด (เช่น Company, Vessel, Manifest) และขอบ (เช่น CARRIED_BY, OPERATED_BY) เพื่อให้เครื่องมือค้นหาระบุประเภทโหนดและความสัมพันธ์ได้

2. ติดตั้งใช้งานกราฟพร็อพเพอร์ตี้ใน BigQuery

setup_graph.sql ไฟล์มี DDL ของ SQL เพื่อกำหนดและสร้างกราฟพร็อพเพอร์ตี้ แต่ขณะนี้ยังไม่สมบูรณ์ คุณต้องกําหนดป้ายกํากับขอบ (ความสัมพันธ์) ในไฟล์สคีมานี้ก่อนที่จะคอมไพล์และนําไปใช้งาน

  1. เปิด Cloud Shell Editor

เปิดเครื่องมือแก้ไข Cloud Shell

  1. เปิดไฟล์ setup_graph.sql ใน Cloud Shell Editor

SQL สำหรับการสร้างกราฟ

  1. ค้นหาตัวยึดตำแหน่งสำหรับป้ายกำกับขอบ
    • บรรทัดที่ 22: แทนที่ `EDGE_TABLE_PLACEHOLDER` ด้วยแท็กที่มีความหมายซึ่งแสดงถึงความสัมพันธ์ระหว่างไฟล์ Manifest กับเรือ (เช่น CARRIED_BY)
    • บรรทัดที่ 27: แทนที่ `EDGE_TABLE_PLACEHOLDER` ด้วยแท็กที่แสดงความสัมพันธ์ระหว่างเรือกับบริษัท (เช่น OPERATED_BY)
  2. บันทึกไฟล์

ตอนนี้ ให้กลับไปที่เทอร์มินัล Cloud Shell และทําให้กราฟพร็อพเพอร์ตี้ที่อัปเดตใช้งานได้โดยใช้สคริปต์ที่เสร็จสมบูรณ์แล้ว

bq query --use_legacy_sql=false < setup_graph.sql

คุณควรเห็นเอาต์พุตที่ระบุว่างานเสร็จสมบูรณ์แล้ว

Waiting on bqjob_r... ... (0s) Current status: DONE

คุณดูรายละเอียดกราฟพร็อพเพอร์ตี้ได้ใน BigQuery Console โดยทำดังนี้

ค้นหา lost_cargo_dataset แล้วเลือกกราฟ

แผนที่สถาปัตยกรรมที่คอมไพล์กราฟพร็อพเพอร์ตี้

เมื่อคอมไพล์กราฟพร็อพเพอร์ตี้เรียบร้อยแล้ว เรามาดู BigQuery Studio เพื่อค้นหาและแสดงภาพการเชื่อมต่อกันเลย

5. ค้นหากราฟ

คุณสามารถค้นหาและสำรวจกราฟด้วยภาพโดยใช้ Graph Query Language (GQL) ดั้งเดิมได้โดยตรงภายใน BigQuery Studio

1. ค้นหาเชนคอนเทนเนอร์ -> เรือ -> บริษัท

มาดูคำค้นหา GQL โดยค้นหาผู้ที่ควบคุมเรือบรรทุกสินค้ากัน การค้นหาผู้ให้บริการต้องดำเนินการผ่านโหนดเอนทิตี 3 โหนดที่แยกกันในเครือข่ายโลจิสติกส์ของเรา

แนวคิดโหนดกราฟ

  1. เริ่มที่โหนดคอนเทนเนอร์ Manifest
  2. ติดตามขอบความสัมพันธ์ CARRIED_BY เพื่อค้นหา Vessel
  3. ติดตามขอบความสัมพันธ์ OPERATED_BY จากเรือนั้นไปยัง Company ที่รับผิดชอบ แล้วดึงรหัสของเรือ

ก่อนอื่น ให้เรียกใช้การค้นหาเพื่อแสดงภาพเครือข่ายทั้งหมด (โดยไม่มีตัวกรอง) เพื่อดูทั้งกราฟ

  1. เปิดแท็บใหม่ในตัวแก้ไข SQL ของ BigQuery Studio วางการค้นหา GQL ต่อไปนี้ แล้วคลิกเรียกใช้
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest)-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. เมื่อการค้นหาเสร็จสมบูรณ์ ให้คลิกแท็บกราฟ (อยู่ข้างแท็บตารางผลลัพธ์) ในแผงผลการค้นหาที่ด้านล่าง

ผลลัพธ์กราฟ BigQuery 1

  1. BigQuery จะแสดงผลลัพธ์เป็นภาพกราฟแบบอินเทอร์แอกทีฟ ซูมเข้าเพื่อดูเครือข่ายทั้งหมดของคอนเทนเนอร์ เรือ และผู้ให้บริการที่เชื่อมต่อ

โครงสร้างของการค้นหา GQL

มาดูรายละเอียดการค้นหา GQL ที่เราเพิ่งเรียกใช้กัน

  • GRAPH_TABLE: สั่งให้ BigQuery เรียกใช้การค้นหากราฟพร็อพเพอร์ตี้กับกราฟ logistics_network
  • MATCH: ประกาศรูปแบบการข้ามหลายฮอป เราเริ่มต้นที่ Manifest (m) จากนั้นจับคู่ความสัมพันธ์ของขอบ :CARRIED_BY ที่ชี้ไปยัง Vessel (v) แล้วจับคู่ความสัมพันธ์ของขอบ :OPERATED_BY ที่ชี้ไปยัง Company (comp)
  • GQL แทนที่ตรรกะการรวมที่ซับซ้อนด้วยลูกศรความสัมพันธ์ในรูปแบบ ASCII ที่ใช้งานง่ายและมนุษย์อ่านได้ ()->[]->() ซึ่งช่วยให้การเขียนและเพิ่มประสิทธิภาพการค้นหาแบบหลายขั้นตอนเป็นเรื่องง่าย
  • RETURN: แสดงผลพร็อพเพอร์ตี้หรือเส้นทาง JSON จากองค์ประกอบที่ตรงกัน

2. กรองผลการค้นหาของคำค้นหา GQL

ตอนนี้มากรองคำค้นหาเพื่อให้เราดูเฉพาะเส้นทางของคอนเทนเนอร์ที่ถูกบุกรุกเป้าหมาย MV-CAPYBARA-003

  1. วางคำค้นหาต่อไปนี้ลงในตัวแก้ไข SQL แล้วคลิกเรียกใช้
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest {shipment_id: 'MV-CAPYBARA-003'})-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. คลิกแท็บกราฟในส่วนผลลัพธ์

ผลลัพธ์กราฟ BigQuery 2

  1. ตอนนี้โปรแกรมดูจะแสดงเฉพาะเส้นทางการสำรวจที่ใช้งานอยู่สำหรับ MV-CAPYBARA-003 ซูมเข้าเพื่อดูโหนดและการเชื่อมต่อ
    • ดับเบิลคลิกโหนด Company เพื่อเปิดแผงคุณสมบัติ ในส่วนพร็อพเพอร์ตี้ คุณจะเห็นผู้ให้บริการ company_id: 103 (Davy Jones Shipping) จดรหัสบริษัทนี้ไว้ คุณจะต้องใช้รหัสนี้ในภายหลังเพื่อดึงรหัสผ่านการล้างข้อมูลจากรีจิสทรีความปลอดภัย
    • ดับเบิลคลิกโหนด Vessel เพื่อยืนยันว่าเป็น Flying Dutchman

6. แชทกับกราฟโดยใช้ Conversational Analytics

ตอนนี้คุณได้ค้นหากราฟด้วยตนเองเพื่อหารหัสบริษัทแล้ว มาใช้การวิเคราะห์เชิงสนทนาเพื่อแชทกับกราฟโดยตรงและระบุตำแหน่งที่คอนเทนเนอร์ของเรากำลังมุ่งหน้าไปกัน

1. เริ่มเซสชัน Conversational Analytics

  1. ในคอนโซล Google Cloud ให้ไปที่คอนโซล BigQuery แล้วขยายแผงทรัพยากรเพื่อค้นหาชุดข้อมูล (lost_cargo_dataset)
  2. คลิกทรัพยากรกราฟพร็อพเพอร์ตี้: logistics_network
  3. ในแถบเครื่องมือของแผงรายละเอียดที่ด้านบน ให้คลิกปุ่มแชท ซึ่งจะเปิดเซสชัน Conversational Analytics ที่โหลดบริบทของกราฟไว้ล่วงหน้า

อินเทอร์เฟซการกำหนดค่า Data Agent ของ BigQuery ที่ลิงก์แหล่งที่มาของ Property Graph ที่คอมไพล์แล้ว

2. ระบุพอร์ตเชื่อมต่อที่ใกล้ที่สุดสำหรับคอนเทนเนอร์ที่ถูกลักลอบ

เครื่องบินลาดตระเวนทางทะเลเพิ่งพบเรือที่ตรงกับคำอธิบายของเรือบรรทุกสินค้าของเราซึ่งแล่นอยู่นอกเส้นทาง (โดยปิดใช้งานทรานสปอนเดอร์) ที่พิกัด POINT(-122.48 37.55) หากต้องการสกัดกั้นสินค้า เราต้องหาท่าเทียบเรือที่ใกล้ที่สุดซึ่งเป็นที่ตั้งของDavy Jones Shippingกลุ่มเงา

แทนที่จะค้นหาพอร์ตทั่วโลกทั้งหมดด้วยตนเอง เราจะค้นหาเครือข่ายกราฟเพื่อดึงพอร์ตที่เชื่อมต่อกับกองเรือที่ใช้งานอยู่ของกลุ่มและวัดว่าพอร์ตใดอยู่ใกล้กับจุดที่พบมากที่สุด

  1. ในกล่องแชทของ Conversational Analytics ให้ป้อนพรอมต์ต่อไปนี้
    Find all ports associated with Davy Jones Shipping vessels. Which port is closest to coordinate POINT(-122.48 37.55), show the distance in km, and display it on a map.
    

อินเทอร์เฟซการกำหนดค่า Data Agent ของ BigQuery ที่ลิงก์แหล่งที่มาของ Property Graph ที่คอมไพล์แล้ว

  1. โปรดพิจารณาคำตอบอย่างละเอียด เอเจนต์จะสำรวจกราฟและแสดงสิ่งอำนวยความสะดวกในการเทียบท่าที่ใกล้ที่สุดพร้อมระยะทาง
    • พอร์ตเชื่อมต่อ: Mountain View Terminal
    • ระยะทาง: 39.42 kilometers
  2. เนื่องจาก Conversational Analytics ขับเคลื่อนโดย Gemini ที่มีการผสานรวมเชิงพื้นที่ (GIS) แบบเนทีฟ จึงสามารถตีความจุดพิกัดทางภูมิศาสตร์และใช้ความรู้เกี่ยวกับโลกเพื่อยืนยันตำแหน่งได้"เรืออยู่ห่างจากท่าเรือ Mountain View รัฐแคลิฟอร์เนียประมาณ 39.42 กิโลเมตร ซึ่งบ่งชี้ว่ากำลังมุ่งหน้าไปยังท่าเรือเพื่อเทียบท่า"

ซึ่งยืนยันว่าสินค้าของเรากำลังมุ่งหน้าไปยัง Mountain View โดยตรง

เบื้องหลัง: Graph Query Language (GQL) และ GIS ภูมิสารสนเทศ

เบื้องหลังการทำงาน เอเจนต์ข้อมูลวิเคราะห์เชิงสนทนาจะรวบรวมและเรียกใช้คําค้นหาแบบไดนามิกที่รวมการจับคู่เส้นทางกราฟกับการคํานวณระยะทางเชิงพื้นที่ ซึ่งทำได้โดยใช้คําสั่ง GQL COLUMNS ดั้งเดิม โดยคํานวณระยะทางตามแนวเส้นโค้งบนพื้นผิวทรงกลม (Geodesic) ภายในกราฟการจับคู่การสำรวจ

SELECT port_id, port_name, country, latitude, longitude, distance_km 
FROM GRAPH_TABLE(
  `lost_cargo_dataset.logistics_network`
  MATCH (c:Company)<-[]-(v:Vessel)-[]->(p:Port)
  WHERE LOWER(c.company_name) = 'davy jones shipping'
  COLUMNS (
    p.port_id, 
    p.port_name, 
    p.country, 
    p.latitude, 
    p.longitude, 
    ROUND(ST_DISTANCE(ST_GEOGPOINT(p.longitude, p.latitude), ST_GEOGPOINT(-122.48, 37.55)) / 1000, 2) AS distance_km
  )
)
ORDER BY distance_km ASC;

การรวมฟังก์ชันภูมิสารสนเทศ (GIS) ดั้งเดิม (ST_DISTANCE, ST_GEOGPOINT) เข้ากับการจับคู่กราฟพร็อพเพอร์ตี้ GQL ทำให้ BigQuery แก้ไขร่องรอยการดำเนินงานของกลุ่มบริษัทแบบไดนามิก และคำนวณความใกล้ชิดทางกายภาพในโลกแห่งความเป็นจริงได้ในการค้นหาเดียว

7. ค้นหาข้อมูลที่ขาดหายไปด้วย Knowledge Catalog

กราฟพร็อพเพอร์ตี้แสดงความสัมพันธ์ แต่ไม่ได้มีตารางที่จัดเก็บรหัสการลบล้างจริง

ในสภาพแวดล้อมขององค์กรจริงที่มีชุดข้อมูลและตารางหลายร้อยรายการ การค้นหาข้อมูลนี้อาจเป็นเรื่องยาก เราจะใช้แคตตาล็อกความรู้เพื่อทำการค้นหาเชิงความหมายและค้นหาตารางที่ถูกต้อง

1. การค้นหาเชิงความหมายใน Knowledge Catalog

  1. ใน คอนโซล Google Cloud ให้ค้นหาและไปที่ Knowledge Catalogค้นหา
  2. ในคอลัมน์ตัวกรองการค้นหาในส่วนระบบ ให้เลือก BigQuery เพื่อจำกัดผลลัพธ์
  3. ป้อนคำค้นหาต่อไปนี้ในช่องค้นหา
    container override codes
    

อินเทอร์เฟซการค้นหาเชิงความหมายของ Knowledge Catalog ที่ค้นหาตารางซีลจริงที่แยกต่างหาก

  1. คลิกแหล่งข้อมูลตาราง maritime_security_registry ที่ปรากฏในผลการค้นหา

เมื่อตรวจสอบสคีมาข้อมูลเมตา คุณจะเห็นว่าตารางมีคอลัมน์สำหรับข้อมูลความปลอดภัยของคอนเทนเนอร์ เช่น บริษัทผู้ประสานงาน co_id, โทเค็นผู้ดูแล cust_tok และที่สำคัญที่สุดคือคอลัมน์รหัสผ่านสำหรับการลบล้างคอนเทนเนอร์ที่ปลอดภัย clc_ovr_cd

เราค้นพบทั้งตารางและคอลัมน์ที่ปลอดภัยที่แน่นอนซึ่งเราต้องใช้ในการกู้คืนสินค้าเรียบร้อยแล้ว

🔓 การกำกับดูแลในโลกแห่งความเป็นจริง: ในสภาพแวดล้อมขององค์กรที่ใช้งานจริง ทีมรักษาความปลอดภัยและการกำกับดูแลยังใช้ประโยชน์จากสิ่งต่อไปนี้ด้วย

  • เทมเพลตแง่มุมและแท็ก: เพื่อแนบข้อมูลเมตาทางธุรกิจ (เช่น เจ้าของข้อมูล ระยะเวลาการเก็บรักษา หรือการจัดประเภท PII) กับสคีมาตาราง
  • แหล่งที่มาของข้อมูล: เพื่อสร้างโฟลว์ชาร์ตแบบภาพโดยอัตโนมัติซึ่งแสดงถึงวิธีที่ระบบปลายทางจะค้นหาและใช้ตาราง เช่น maritime_security_registry

2. ตรวจสอบการรักษาความปลอดภัยของคอลัมน์ใน BigQuery

  1. กลับไปที่คอนโซล BigQuery
  2. ในแท็บExplorer ให้เลือก lost_cargo_dataset แล้วคลิกตาราง maritime_security_registry
  3. คลิกแท็บสคีมา

มุมมองสคีมาของตารางที่แสดงแท็กนโยบายที่กำหนดให้กับคอลัมน์ clc_ovr_cd

  1. โปรดทราบว่าคอลัมน์ clc_ovr_cd ได้รับการรักษาความปลอดภัยด้วยแท็กนโยบายชื่อ MaskShippingDetails (แสดงอยู่ในคอลัมน์แท็กนโยบาย)
  2. เปิดแท็บ SQL Editor ใหม่ใน BigQuery แล้วพยายามดูรหัสการลบล้างรีจิสทรีโดยเรียกใช้การค้นหาต่อไปนี้
    SELECT * FROM `lost_cargo_dataset.maritime_security_registry` 
    WHERE co_id = 103;
    
  3. เนื่องจากบัญชีของคุณยังไม่มีสิทธิ์อ่านคอลัมน์ที่ติดแท็กด้วย MaskShippingDetails คำค้นหาจึงจะล้มเหลวทันทีพร้อมข้อผิดพลาดด้านความปลอดภัยของฐานข้อมูลปฏิเสธการเข้าถึง

มุมมองพื้นที่ทํางาน BigQuery ที่แสดงผลการมาสก์ระดับคอลัมน์มาตรฐานหรือข้อจํากัดการปฏิเสธการเข้าถึง

8. การแฮ็กรหัสผ่านเพื่อดึงรหัสผ่าน

หากต้องการอ่านโค้ดลบล้างสุดท้ายในข้อความที่ชัดเจน เราต้องให้สิทธิ์บัญชีผู้ใช้ในการอ่านคอลัมน์ที่ติดแท็กด้วย MaskShippingDetails

1. ให้สิทธิ์แท็กนโยบาย

  1. ในแผงการนำทางด้านซ้ายของคอนโซล BigQuery ให้ไปที่แท็กนโยบาย
  2. เลือกการจัดหมวดหมู่ชื่อ LostCargoSecurity_
  3. คลิก MaskShippingDetails ในรายการแท็ก
  4. ในแผงข้อมูลทางด้านขวาของหน้าจอ ให้คลิกเพิ่มผู้รับมอบสิทธิ์ (หากแผงซ่อนอยู่ ให้คลิกแสดงแผงข้อมูลที่ด้านขวาบน)
  5. ในช่องหลักการใหม่ ให้ป้อนอีเมลผู้ใช้ Google Cloud ที่ใช้งานอยู่
  6. ในเมนูแบบเลื่อนลงเลือกบทบาท ให้ค้นหาและเลือกผู้อ่านแบบละเอียด แล้วคลิกบันทึก

แผงการดูแลระบบแท็กนโยบาย BigQuery ที่กำหนดบทบาทผู้อ่านแบบละเอียดในมาสก์สตริงเป้าหมาย

2. ค้นหารหัสลบล้าง

กลับไปที่โปรแกรมแก้ไขพื้นที่ทํางาน BigQuery เนื่องจากตอนนี้คุณมีสิทธิ์เข้าถึงระดับผู้อ่านแบบละเอียดแล้ว เราจึงควรเรียกใช้การค้นหาอีกครั้งและดูข้อมูลที่ไม่ได้มาสก์ได้

SELECT *  FROM `lost_cargo_dataset.maritime_security_registry` 
WHERE co_id = 103;

🔓 ผลลัพธ์

การค้นหาจะแสดงรหัสการลบล้างที่ไม่ได้มาสก์

SHIVER-ME-TIMBERS-888

ผลการดำเนินการในพื้นที่ทำงานของ BigQuery ซึ่งแสดงผลแฟล็กสตริงที่แน่นอนซึ่งไม่ได้มาสก์

9. ล้างข้อมูล

โปรดล้างข้อมูลทรัพยากรแซนด์บ็อกซ์ที่สร้างขึ้นระหว่างแล็บนี้เพื่อหลีกเลี่ยงการเรียกเก็บเงิน

กลับไปที่เทอร์มินัล Cloud Shell แล้วลบชุดข้อมูล BigQuery ที่มีตารางการขนส่ง

bq rm -r -f -d lost_cargo_dataset

นำไฟล์ที่โคลนจากที่เก็บออก

cd ..
rm -rf data-cloud-roadshow-26

10. ขอแสดงความยินดี

คุณแก้ไขการตรวจสอบและดึงรหัสการลบล้างการล้างข้อมูลเรียบร้อยแล้ว

สิ่งที่คุณได้เรียนรู้

  • วิธีสร้างกราฟเชิงคุณสมบัติใน BigQuery เพื่อแสดงถึงเอนทิตีและความสัมพันธ์ที่ซับซ้อน
  • วิธีตั้งค่าโหนด Edge พร็อพเพอร์ตี้ และป้ายกำกับเพื่อบันทึกการเชื่อมต่อข้อมูล
  • วิธีค้นหากราฟพร็อพเพอร์ตี้โดยใช้ภาษาธรรมชาติด้วย Conversational Analytics ของ BigQuery
  • วิธีสร้างนิพจน์ Graph Query Language (GQL) เพื่อข้ามเส้นทางเชิงสัมพันธ์
  • วิธีค้นหาชิ้นงานที่ปลอดภัยโดยใช้แคตตาล็อกความรู้และเข้าถึงข้อมูลที่จำกัดระดับคอลัมน์โดยใช้แท็กนโยบาย