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

Codelab นี้จะแสดงวิธีทำสิ่งต่อไปนี้
- สร้างตาราง Bigtable ที่เปิดใช้สตรีมการเปลี่ยนแปลง
- สร้างชุดข้อมูล BigQuery
- ติดตั้งใช้งานเทมเพลต Dataflow
Bigtable change streams to BigQuery. - ค้นหาสตรีมเหตุการณ์ใน BigQuery
- แสดงภาพสตรีมเหตุการณ์ด้วย Looker
แผนภาพนี้แสดงสถาปัตยกรรมของระบบที่คุณจะติดตั้งใช้งาน

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

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

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

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

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

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

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

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

- หากได้รับแจ้ง ให้ยอมรับข้อความแจ้งเพื่อให้สิทธิ์ Cloud Shell
- ดาวน์โหลดชุดข้อมูล
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- ตั้งค่าตัวแปรสภาพแวดล้อมในบรรทัดคำสั่ง
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- ใช้
cbtCLI เพื่อเขียนธุรกรรมบัตรเครดิตหลายรายการลงในตาราง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
- ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
- ในบานหน้าต่าง Explorer ให้ขยายโปรเจ็กต์และชุดข้อมูล
bigtable_bigquery_tutorial - คลิกตาราง
retail-database_changelogคุณอาจต้องรีเฟรชชุดข้อมูลหากไม่มีตาราง - หากต้องการดูบันทึกการเปลี่ยนแปลง ให้คลิกแสดงตัวอย่าง

ลองใช้คำค้นหา
ตอนนี้คุณสามารถเรียกใช้การค้นหา 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
- คลิกไปดูเพื่อไปยังหน้ารายละเอียดของมุมมองใหม่
- คลิกส่งออก
- เลือกสำรวจด้วย Looker Studio

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

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

ธุรกรรมทั้งหมดสำหรับผู้ขายแต่ละราย
- คลิกเพิ่มแผนภูมิ แล้วสร้างตาราง
- ตั้งค่ามิติข้อมูลเป็น
merchant - ตั้งค่า Metric เป็น
sales_dollars
เปอร์เซ็นต์ของธุรกรรมต่อหมวดหมู่
- คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิวงกลม
- ตั้งค่ามิติข้อมูลเป็น
category - ตั้งค่า Metric เป็น
sales_dollars
ดูการเปลี่ยนแปลงแบบเรียลไทม์
ใช้เวลาสักครู่เพื่อสำรวจค่าในกราฟ คุณสามารถคลิกผู้ขายที่เฉพาะเจาะจงในตารางหรือหมวดหมู่ที่เฉพาะเจาะจงในตาราง ซึ่งจะทำให้แผนภูมิทั้งหมดกรองตามค่าที่เฉพาะเจาะจงเหล่านั้นเพื่อให้คุณได้รับข้อมูลเชิงลึกเพิ่มเติม จากนั้นคุณจะเขียนข้อมูลเพิ่มเติมและดูว่ากราฟนี้จะอัปเดตแบบเรียลไทม์ได้อย่างไร
- กลับไปที่ Cloud Shell
- ดาวน์โหลดและเขียนชุดข้อมูลที่ 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
- กลับไปที่แดชบอร์ด Looker แล้วรีเฟรชข้อมูลด้วยคำสั่ง
Ctrl+Shift+Eหรือคลิกรีเฟรชข้อมูลในเมนูมุมมอง ตอนนี้คุณควรเห็นข้อมูลของเดือนมกราคม 2024 ในแผนภูมิ
คุณสร้างกราฟและเมตริกได้อีกมากมายนอกเหนือจากนี้ อ่านข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Looker
9. ล้างข้อมูล
โปรดลบโปรเจ็กต์ที่มีทรัพยากรหรือเก็บโปรเจ็กต์ไว้และลบทรัพยากรแต่ละรายการเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
หยุดไปป์ไลน์สตรีมการเปลี่ยนแปลง
- ในคอนโซล Google Cloud ให้ไปที่หน้างาน Dataflow
- เลือกงานการสตรีมจากรายการงาน
- คลิกหยุดในการนำทาง
- ในกล่องโต้ตอบหยุดงาน ให้เลือกยกเลิก แล้วคลิกหยุดงาน
ลบทรัพยากร Bigtable
หากสร้างอินสแตนซ์ Bigtable สำหรับบทแนะนำนี้ คุณสามารถลบอินสแตนซ์หรือล้างข้อมูลตารางที่สร้างได้
- ในคอนโซล Google Cloud ให้ไปที่หน้าอินสแตนซ์ Bigtable
- คลิกรหัสของอินสแตนซ์ที่คุณใช้สำหรับบทแนะนำนี้
- คลิกตารางในแผงการนำทางด้านซ้าย
- ค้นหาตาราง
retail-database - คลิกแก้ไข
- ยกเลิกการเลือกเปิดใช้สตรีมการเปลี่ยนแปลง
- คลิกบันทึก
- เปิดเมนูรายการเพิ่มเติมสำหรับตาราง
- คลิกลบแล้วป้อนชื่อตารางเพื่อยืนยัน
- ไม่บังคับ: ลบอินสแตนซ์หากคุณสร้างอินสแตนซ์ใหม่สำหรับบทแนะนำนี้
ลบชุดข้อมูล BigQuery
- ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
- ในแผงเครื่องมือสำรวจ ให้ค้นหาชุดข้อมูล
bigtable_bigquery_tutorialแล้วคลิก - คลิกลบ พิมพ์ "ลบ" แล้วคลิกลบเพื่อยืนยัน