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

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

เกี่ยวกับ Codelab นี้

subjectอัปเดตล่าสุดเมื่อ มี.ค. 8, 2024
account_circleเขียนโดย Googler

1 ภาพรวม

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

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

426dc59200875a20.png

โค้ดแล็บนี้จะแสดงวิธีทําสิ่งต่อไปนี้

  • สร้างตาราง 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 ในโค้ดแล็บในภายหลัง ทําตามวิธีการต่อไปนี้เพื่อสร้างชุดข้อมูลสําหรับเอาต์พุตของไปป์ไลน์ข้อมูล

  1. ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
  2. ในแผงExplorer ให้ค้นหาชื่อโปรเจ็กต์ แล้วคลิกเมนูรายการเพิ่มเติม (จุดแนวตั้ง 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. ใช้ CLI ของ cbt เพื่อเขียนธุรกรรมบัตรเครดิตจำนวนหนึ่งลงในตาราง 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 มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีเขียนคำค้นหาสำหรับข้อมูลบันทึกการเปลี่ยนแปลง

ค้นหาธุรกรรม 1 รายการ

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

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 แถวเดียว คุณจะต้อง Pivot ข้อมูลและบันทึกผลลัพธ์นั้นลงในตารางใหม่ รูปแบบนี้จัดการการค้นหาได้ง่ายกว่า

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. ตั้งค่าเมตริกเป็น sales_dollars

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

  1. คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิวงกลม
  2. ตั้งค่ามิติข้อมูลเป็น category
  3. ตั้งค่าเมตริกเป็น 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. คลิกลบ พิมพ์ "ลบ" แล้วคลิกลบเพื่อยืนยัน

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