วิเคราะห์และแสดงภาพข้อมูลธุรกรรมบัตรเครดิตใน Bigtable โดยใช้ BigQuery และ Looker

1. ภาพรวม

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

Codelab นี้มีไว้สำหรับผู้ใช้ที่มีความรู้ด้านเทคนิคซึ่งคุ้นเคยกับ Bigtable, การใช้เครื่องมือบรรทัดคำสั่ง และบริการสตรีมเหตุการณ์

426dc59200875a20.png

Codelab นี้จะแสดงวิธีทำสิ่งต่อไปนี้

  • สร้างตาราง Bigtable ที่เปิดใช้สตรีมการเปลี่ยนแปลง
  • สร้างชุดข้อมูล BigQuery
  • ติดตั้งใช้งานเทมเพลต Dataflow Bigtable change streams to BigQuery.
  • ค้นหาสตรีมเหตุการณ์ใน BigQuery
  • แสดงภาพสตรีมเหตุการณ์ด้วย Looker

แผนภาพนี้แสดงสถาปัตยกรรมของระบบที่คุณจะติดตั้งใช้งาน

336e940307d0e0a.png

2. การตั้งค่าโปรเจ็กต์

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์

eb5309715175de69.png

  1. ตรวจสอบว่าโปรเจ็กต์ Google Cloud ของคุณเปิดใช้การเรียกเก็บเงินแล้ว
  2. ไปที่หน้าการเปิดใช้ API ที่กรอกข้อมูลไว้ล่วงหน้าเพื่อเปิดใช้ API ที่จำเป็นสำหรับ Dataflow, Bigtable, BigQuery, Looker และ Cloud Storage

3. สร้างชุดข้อมูล BigQuery

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

  1. ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
  2. ในแผงสำรวจ ให้ค้นหาชื่อโปรเจ็กต์ แล้วคลิกเมนูแบบเลื่อนลง (จุดแนวตั้ง 3 จุดข้างรหัสโปรเจ็กต์)
  3. คลิกสร้างชุดข้อมูล

122bc1a411b8dc63.png

  1. ในแผงสร้างชุดข้อมูล ให้ทำดังนี้
  • สำหรับรหัสชุดข้อมูล ให้ป้อน bigtable_bigquery_tutorial
  • ปล่อยการตั้งค่าเริ่มต้นที่เหลือไว้ตามเดิม
  • คลิกสร้างชุดข้อมูล

4. สร้างตาราง Bigtable ที่เปิดใช้สตรีมการเปลี่ยนแปลง

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

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าอินสแตนซ์ Bigtable
  2. คลิกรหัสของอินสแตนซ์ที่คุณใช้สำหรับบทแนะนำนี้ หากไม่มีอินสแตนซ์ ให้สร้างอินสแตนซ์ที่มีชื่อที่คุณเลือกในภูมิภาคที่อยู่ใกล้คุณ คุณสามารถใช้การกำหนดค่าเริ่มต้นสำหรับทุกอย่างที่เหลือได้

a2e8de7b66dc42e.png

  1. คลิกตารางในแผงการนำทางด้านซ้าย
  2. คลิกสร้างตาราง

9c267c00f93747c4.png

  • ตั้งชื่อตาราง retail-database
  • เพิ่มตระกูลคอลัมน์ชื่อ transactions
  • เลือกเปิดใช้สตรีมการเปลี่ยนแปลง
  • ปล่อยให้นโยบายการเก็บขยะและระยะเวลาเก็บรักษาเป็นค่าเริ่มต้น
  • คลิกสร้าง

696cd1399c354816.png

5. เริ่มต้น Data Pipeline เพื่อบันทึกสตรีมการเปลี่ยนแปลง

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

f4cd9d8faf10ce77.png

  1. ในหน้าตาราง Bigtable ให้ค้นหาตาราง retail-database
  2. ในคอลัมน์สตรีมการเปลี่ยนแปลง ให้คลิกเชื่อมต่อ
  3. ในกล่องโต้ตอบเชื่อมต่อกับ Dataflow ให้เลือก BigQuery
  4. คลิกสร้างงาน Dataflow
  5. ป้อนค่าพารามิเตอร์ในช่องพารามิเตอร์ที่ระบุ คุณไม่จำเป็นต้องระบุพารามิเตอร์ที่ไม่บังคับ
  • ตั้งค่ารหัสโปรไฟล์แอปพลิเคชัน Cloud Bigtable เป็น default
  • ตั้งค่าชุดข้อมูล BigQuery เป็น bigtable_bigquery_tutorial
  1. คลิกเรียกใช้ชิ้นงาน
  2. โปรดรอจนกว่าสถานะของงานจะเป็นกำลังเริ่มต้นหรือกำลังทำงานก่อนดำเนินการต่อ โดยอาจใช้เวลาประมาณ 5 นาทีเมื่อมีการจัดคิวงาน หน้าเว็บจะอัปเดตโดยอัตโนมัติ เทมเพลตนี้จะสร้างงานสตรีมมิงเพื่อให้ประมวลผลข้อมูลใหม่ที่เขียนไปยัง Bigtable ได้อย่างต่อเนื่องจนกว่าจะหยุดงานด้วยตนเอง

a04908b37c6fe96b.png

6. เขียนข้อมูลบางอย่างลงใน Bigtable

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

  1. เปิด Cloud Shell โดยคลิกปุ่มที่มุมบนขวาของคอนโซลระบบคลาวด์

f6395329b04ecb64.png

  1. หากได้รับแจ้ง ให้ยอมรับข้อความแจ้งเพื่อให้สิทธิ์ Cloud Shell
  2. ดาวน์โหลดชุดข้อมูล
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. ตั้งค่าตัวแปรสภาพแวดล้อมในบรรทัดคำสั่ง
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. ใช้ cbt CLI เพื่อเขียนธุรกรรมบัตรเครดิตหลายรายการลงในตาราง retail-database
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

เอาต์พุตจะแสดงข้อความต่อไปนี้

Done importing 10000 rows.

7. ดูบันทึกการเปลี่ยนแปลงใน BigQuery

  1. ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
  2. ในบานหน้าต่าง Explorer ให้ขยายโปรเจ็กต์และชุดข้อมูล bigtable_bigquery_tutorial
  3. คลิกตาราง retail-database_changelog คุณอาจต้องรีเฟรชชุดข้อมูลหากไม่มีตาราง
  4. หากต้องการดูบันทึกการเปลี่ยนแปลง ให้คลิกแสดงตัวอย่าง

aa97ff01f944832.png

ลองใช้คำค้นหา

ตอนนี้คุณสามารถเรียกใช้การค้นหา 2-3 รายการในชุดข้อมูลนี้เพื่อรับข้อมูลเชิงลึกได้ การค้นหา SQL มีให้ที่นี่ แต่เอกสารประกอบค้นหาบันทึกการเปลี่ยนแปลงของ Bigtable ใน BigQuery มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีเขียนการค้นหาสำหรับข้อมูลบันทึกการเปลี่ยนแปลง

ค้นหาธุรกรรมรายการเดียว

ใช้การค้นหาต่อไปนี้เพื่อค้นหาข้อมูลธุรกรรมหนึ่งๆ

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

คุณจะเห็นว่าแต่ละคอลัมน์ที่เขียนจะเปลี่ยนเป็นแถวแต่ละแถวใน BigQuery

ดูจำนวนการซื้อในแต่ละหมวดหมู่

ใช้การค้นหาต่อไปนี้เพื่อนับจำนวนการซื้อต่อหมวดหมู่

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

จัดรูปแบบข้อมูลใหม่

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

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

สร้างแดชบอร์ด Looker

  1. คลิกไปดูเพื่อไปยังหน้ารายละเอียดของมุมมองใหม่
  2. คลิกส่งออก
  3. เลือกสำรวจด้วย Looker Studio

bb45482e9101b0f.png

8. เพิ่มแผนภูมิลงในแดชบอร์ด

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

  • จำนวนเงินของธุรกรรมในช่วงระยะเวลาหนึ่ง
  • ธุรกรรมทั้งหมดสำหรับผู้ขายแต่ละราย
  • เปอร์เซ็นต์ของธุรกรรมต่อหมวดหมู่

426dc59200875a20.png

ตั้งค่าหน้าเว็บ

  1. คลิกแผนภูมิที่มีอยู่แต่ละรายการแล้วกดลบเพื่อนำออก
  2. เลือกที่พักทางด้านขวามือของหน้า เพื่อให้คุณแก้ไขข้อมูลกราฟได้

เพิ่มแผนภูมิ

จำนวนเงินของธุรกรรมในช่วงระยะเวลาหนึ่ง

  1. คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิอนุกรมเวลา
  2. ตั้งค่ามิติข้อมูลเป็น transaction_date
  1. ตั้งค่าเมตริกเป็น sales_dollars

372bdf2a2bcdb817.png

ธุรกรรมทั้งหมดสำหรับผู้ขายแต่ละราย

  1. คลิกเพิ่มแผนภูมิ แล้วสร้างตาราง
  2. ตั้งค่ามิติข้อมูลเป็น merchant
  3. ตั้งค่า Metric เป็น sales_dollars

เปอร์เซ็นต์ของธุรกรรมต่อหมวดหมู่

  1. คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิวงกลม
  2. ตั้งค่ามิติข้อมูลเป็น category
  3. ตั้งค่า Metric เป็น sales_dollars

ดูการเปลี่ยนแปลงแบบเรียลไทม์

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

  1. กลับไปที่ Cloud Shell
  2. ดาวน์โหลดและเขียนชุดข้อมูลที่ 2
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. กลับไปที่แดชบอร์ด Looker แล้วรีเฟรชข้อมูลด้วยคำสั่ง Ctrl+Shift+E หรือคลิกรีเฟรชข้อมูลในเมนูมุมมอง ตอนนี้คุณควรเห็นข้อมูลของเดือนมกราคม 2024 ในแผนภูมิ

คุณสร้างกราฟและเมตริกได้อีกมากมายนอกเหนือจากนี้ อ่านข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Looker

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

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

หยุดไปป์ไลน์สตรีมการเปลี่ยนแปลง

  1. ในคอนโซล Google Cloud ให้ไปที่หน้างาน Dataflow
  2. เลือกงานการสตรีมจากรายการงาน
  3. คลิกหยุดในการนำทาง
  4. ในกล่องโต้ตอบหยุดงาน ให้เลือกยกเลิก แล้วคลิกหยุดงาน

ลบทรัพยากร Bigtable

หากสร้างอินสแตนซ์ Bigtable สำหรับบทแนะนำนี้ คุณสามารถลบอินสแตนซ์หรือล้างข้อมูลตารางที่สร้างได้

  1. ในคอนโซล Google Cloud ให้ไปที่หน้าอินสแตนซ์ Bigtable
  2. คลิกรหัสของอินสแตนซ์ที่คุณใช้สำหรับบทแนะนำนี้
  3. คลิกตารางในแผงการนำทางด้านซ้าย
  4. ค้นหาตาราง retail-database
  5. คลิกแก้ไข
  6. ยกเลิกการเลือกเปิดใช้สตรีมการเปลี่ยนแปลง
  7. คลิกบันทึก
  8. เปิดเมนูรายการเพิ่มเติมสำหรับตาราง
  9. คลิกลบแล้วป้อนชื่อตารางเพื่อยืนยัน
  10. ไม่บังคับ: ลบอินสแตนซ์หากคุณสร้างอินสแตนซ์ใหม่สำหรับบทแนะนำนี้

ลบชุดข้อมูล BigQuery

  1. ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
  2. ในแผงเครื่องมือสำรวจ ให้ค้นหาชุดข้อมูล bigtable_bigquery_tutorial แล้วคลิก
  3. คลิกลบ พิมพ์ "ลบ" แล้วคลิกลบเพื่อยืนยัน

ขั้นตอนถัดไป