เกี่ยวกับ Codelab นี้
1 ภาพรวม
Codelab นี้จะแนะนำขั้นตอนการวิเคราะห์สตรีมข้อมูลธุรกรรมบัตรเครดิตที่เขียนลงใน Bigtable คุณจะได้ดูวิธีใช้ Bigtable เปลี่ยนสตรีมไปยังเทมเพลต BigQuery เพื่อส่งออกข้อมูลแบบเรียลไทม์ จากนั้น คุณจะเห็นเทคนิคในการค้นหาบันทึกสตรีมการเปลี่ยนแปลงและวิธีจัดรูปแบบข้อมูลใหม่เพื่อสร้างแดชบอร์ดโดยใช้ Looker
Codelab นี้มีไว้สําหรับผู้ใช้ด้านเทคนิคที่คุ้นเคยกับ Bigtable, การใช้เครื่องมือบรรทัดคําสั่ง และบริการสตรีมมิงเหตุการณ์
โค้ดแล็บนี้จะแสดงวิธีทําสิ่งต่อไปนี้
- สร้างตาราง 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 ในโค้ดแล็บในภายหลัง ทําตามวิธีการต่อไปนี้เพื่อสร้างชุดข้อมูลสําหรับเอาต์พุตของไปป์ไลน์ข้อมูล
- ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
- ในแผงExplorer ให้ค้นหาชื่อโปรเจ็กต์ แล้วคลิกเมนูรายการเพิ่มเติม (จุดแนวตั้ง 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
- ใช้ 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
- ในคอนโซล Google Cloud ให้ไปที่หน้า BigQuery
- ในแผง Explorer ให้ขยายโปรเจ็กต์และชุดข้อมูล
bigtable_bigquery_tutorial
- คลิกตาราง
retail-database_changelog
คุณอาจต้องรีเฟรชชุดข้อมูลหากไม่มีตาราง - หากต้องการดูบันทึกการเปลี่ยนแปลง ให้คลิกแสดงตัวอย่าง
ลองใช้คำค้นหา
ตอนนี้คุณสามารถเรียกใช้การค้นหา 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
- คลิกไปที่มุมมองเพื่อไปที่หน้ารายละเอียดของมุมมองใหม่
- คลิกส่งออก
- เลือกสํารวจด้วย Looker Studio
8 เพิ่มแผนภูมิลงในหน้าแดชบอร์ด
ตอนนี้คุณสามารถสร้างกราฟข้อมูลเพื่อให้เข้าใจและแชร์เป็นรายงานได้ง่ายขึ้น คุณจะต้องเพิ่มแผนภูมิ 3 รายการลงในแดชบอร์ด ดังนี้
- จำนวนเงินของธุรกรรมในช่วงระยะเวลาหนึ่ง
- ธุรกรรมทั้งหมดสำหรับผู้ขายแต่ละราย
- เปอร์เซ็นต์ของธุรกรรมต่อหมวดหมู่
ตั้งค่าหน้าเว็บ
- คลิกแผนภูมิที่มีอยู่แต่ละรายการ แล้วกดลบเพื่อนำออก
- เลือกพร็อพเพอร์ตี้ทางด้านขวามือของหน้าเพื่อให้แก้ไขข้อมูลกราฟได้
เพิ่มแผนภูมิ
จํานวนเงินของธุรกรรมในช่วงระยะเวลาหนึ่ง
- คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิอนุกรมเวลา
- ตั้งค่ามิติข้อมูลเป็น
transaction_date
- ตั้งค่าเมตริกเป็น
sales_dollars
จำนวนธุรกรรมทั้งหมดสำหรับผู้ขายแต่ละราย
- คลิกเพิ่มแผนภูมิ แล้วสร้างตาราง
- ตั้งค่ามิติข้อมูลเป็น
merchant
- ตั้งค่าเมตริกเป็น
sales_dollars
เปอร์เซ็นต์ของธุรกรรมต่อหมวดหมู่
- คลิกเพิ่มแผนภูมิ แล้วสร้างแผนภูมิวงกลม
- ตั้งค่ามิติข้อมูลเป็น
category
- ตั้งค่าเมตริกเป็น
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
แล้วคลิกชุดข้อมูลนั้น - คลิกลบ พิมพ์ "ลบ" แล้วคลิกลบเพื่อยืนยัน