เกี่ยวกับ Codelab นี้
1 บทนำ
Google Cloud Dataflow
อัปเดตล่าสุด:26 พฤษภาคม 2020
Dataflow คืออะไร
Dataflow เป็นบริการที่มีการจัดการสำหรับการทำงานในรูปแบบการประมวลผลข้อมูลหลากหลายรูปแบบ เอกสารในเว็บไซต์นี้จะแสดงวิธีทำให้ไปป์ไลน์การประมวลผลข้อมูลแบบกลุ่มและการสตรีมมิงใช้งานได้โดยใช้ Dataflow รวมถึงวิธีการใช้ฟีเจอร์บริการ
Apache Beam SDK เป็นโมเดลการเขียนโปรแกรมโอเพนซอร์สที่ให้คุณพัฒนาได้ทั้งไปป์ไลน์แบบกลุ่มและสตรีมมิง คุณสร้างไปป์ไลน์ด้วยโปรแกรม Apache Beam แล้วเรียกใช้ไปป์ไลน์ในบริการ Dataflow เอกสารประกอบเกี่ยวกับ Apacheบีมให้ข้อมูลแนวคิดเชิงลึกและข้อมูลอ้างอิงสำหรับโมเดลการเขียนโปรแกรม Apacheบีม, SDK และโปรแกรมเรียกใช้อื่นๆ
การวิเคราะห์ข้อมูลสตรีมมิงด้วยความเร็ว
Dataflow ช่วยให้การพัฒนาไปป์ไลน์ข้อมูลสตรีมมิงเป็นไปอย่างง่ายดายและรวดเร็วโดยมีเวลาในการตอบสนองของข้อมูลต่ำลง
ลดความซับซ้อนของการดำเนินการและการจัดการ
อนุญาตให้ทีมมุ่งเน้นที่การเขียนโปรแกรมแทนการจัดการคลัสเตอร์เซิร์ฟเวอร์เนื่องจากแนวทางแบบ Serverless ของ Dataflow นำค่าใช้จ่ายในการดำเนินการออกจากภาระงานด้านวิศวกรรมข้อมูล
ลดต้นทุนรวมในการเป็นเจ้าของ
การปรับขนาดทรัพยากรอัตโนมัติควบคู่กับความสามารถในการประมวลผลแบบกลุ่มที่เพิ่มประสิทธิภาพต้นทุนทำให้ Dataflow มีขีดความสามารถที่ไม่จำกัดในระบบเสมือนจริงในการจัดการภาระงานตามฤดูกาลและพุ่งสูงโดยไม่มีการใช้จ่ายมากเกินไป
ฟีเจอร์สำคัญ
การจัดการทรัพยากรอัตโนมัติและการจัดสรรงานแบบไดนามิกใหม่
Dataflow ทำให้การจัดสรรและการจัดการทรัพยากรการประมวลผลเป็นแบบอัตโนมัติเพื่อลดเวลาในการตอบสนองและเพิ่มการใช้งานให้ได้สูงสุด คุณจึงไม่ต้องสร้างอินสแตนซ์หรือจองอินสแตนซ์ด้วยตนเอง นอกจากนี้ การแบ่งพาร์ติชันงานยังทำงานแบบอัตโนมัติและได้รับการเพิ่มประสิทธิภาพเพื่อปรับสมดุลการทำงานที่ล่าช้าแบบไดนามิก ไม่จำเป็นต้องตามหา "แป้นลัด" อีกต่อไป หรือประมวลผลข้อมูลอินพุตล่วงหน้า
การปรับขนาดอัตโนมัติในแนวนอน
การปรับขนาดทรัพยากรผู้ปฏิบัติงานอัตโนมัติในแนวนอนเพื่ออัตราการส่งข้อมูลที่ดีที่สุดช่วยให้ประสิทธิภาพโดยรวมดีขึ้น
การกำหนดราคาการกำหนดเวลาทรัพยากรที่ยืดหยุ่นสำหรับการประมวลผลแบบกลุ่ม
เพื่อการประมวลผลที่มีความยืดหยุ่นในการกำหนดตารางเวลางาน เช่น งานข้ามคืน การกำหนดเวลาทรัพยากรที่ยืดหยุ่น (FlexRS) จะเสนอราคาต่ำกว่าสำหรับการประมวลผลแบบกลุ่ม งานที่ยืดหยุ่นเหล่านี้จะอยู่ในคิวที่มีการรับประกันว่าจะมีการดึงข้อมูลเพื่อดำเนินการได้ภายใน 6 ชั่วโมง
สิ่งที่คุณจะดำเนินการในฐานะส่วนหนึ่งของ
ใน Codelab นี้ คุณจะเริ่มใช้ Dataflow SQL โดยการส่งคำสั่ง SQL ผ่าน UI ของ Dataflow SQL จากนั้นคุณจะสำรวจไปป์ไลน์ที่ทำงานอยู่โดยใช้ UI การตรวจสอบ Dataflow
สิ่งที่คุณจะได้เรียนรู้
- วิธีส่งคำสั่ง SQL เป็นงาน Dataflow ใน Dataflow SQL UI
- วิธีไปยังไปป์ไลน์ Dataflow
- สำรวจกราฟ Dataflow ที่สร้างโดยคำสั่ง SQL
- สำรวจข้อมูลการตรวจสอบจากกราฟ
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud Platform ที่เปิดใช้การเรียกเก็บเงิน
- เปิดใช้ Google Cloud Dataflow และ Google Cloud PubSub แล้ว
2 การตั้งค่า
ตรวจสอบว่าคุณได้เปิดใช้ Dataflow API และ Cloud Pub/Sub API ซึ่งตรวจสอบได้โดยการตรวจสอบ API และ หน้าบริการ
3 การเข้าถึง UI ของ Dataflow SQL
UI ของ Dataflow SQL คือการตั้งค่า UI ทางเว็บของ BigQuery สำหรับการสร้างงาน SQL SQL คุณเข้าถึง UI ของ Dataflow SQL ได้จาก UI บนเว็บของ BigQuery
- ไปที่ UI เว็บ BigQuery
- เปลี่ยนไปใช้ Cloud Dataflow Engine
- คลิกเมนูแบบเลื่อนลงเพิ่มเติม และเลือกการตั้งค่าการค้นหา
- เลือกเครื่องมือ Dataflow ในเมนูการตั้งค่าการค้นหา
- ในข้อความแจ้งที่ปรากฏขึ้นหากไม่ได้เปิดใช้ Dataflow และ API แคตตาล็อกข้อมูล ให้คลิกเปิดใช้ API
- คลิก Save
คุณยังเข้าถึง UI ของ Dataflow SQL จากอินเทอร์เฟซการตรวจสอบ Dataflow ได้
- ไปที่อินเทอร์เฟซการตรวจสอบ Dataflow
- คลิกสร้างงานจาก SQL
4 การเรียกใช้งานโฟลว์ข้อมูลด้วยการค้นหา SQL
การเขียนการค้นหา Dataflow SQL
การค้นหา Dataflow SQL ใช้ไวยากรณ์การค้นหา SQL ของ Dataflow ไวยากรณ์การค้นหา Dataflow SQL คล้ายกับ BigQuery SQL มาตรฐาน คุณสามารถใช้ส่วนขยายสตรีมมิงของ Dataflow SQL เพื่อรวมข้อมูลจากการอัปเดตแหล่งที่มาของ Dataflow อย่างต่อเนื่อง เช่น Pub/Sub ตัวอย่างเช่น คำค้นหาต่อไปนี้นับผู้โดยสารในสตรีม Pub/Sub ของการนั่งแท็กซี่ทุกๆ นาที
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
การเรียกใช้การค้นหา Dataflow SQL
เมื่อคุณเรียกใช้การค้นหา Dataflow SQL แล้ว Dataflow จะเปลี่ยนการค้นหาเป็นไปป์ไลน์ Apache Beam และเรียกใช้ไปป์ไลน์
คุณเรียกใช้การค้นหา Dataflow SQL ได้โดยใช้ Cloud Console หรือเครื่องมือบรรทัดคำสั่ง gcloud
หากต้องการเรียกใช้การค้นหา Dataflow SQL ให้ใช้ UI ของ Dataflow SQL
- ไปที่ UI ของ Dataflow SQL
- ป้อนการค้นหา Dataflow SQL ด้านบนลงในตัวแก้ไขการค้นหา
- คลิกสร้างงาน Cloud Dataflow เพื่อเปิดแผงตัวเลือกงาน
- (ไม่บังคับ) คลิก แสดงพารามิเตอร์ที่ไม่บังคับ และเรียกดูรายการ
- ในส่วน "ปลายทางของแผง" ให้เลือก BigQuery เป็นประเภทเอาต์พุต
- เลือกรหัสชุดข้อมูลและสร้างชื่อตาราง "passengers_per_min"
- คลิก "สร้าง"
โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาข้อมูลและการเขียนผลการค้นหา Dataflow SQL ที่หัวข้อใช้ Dataflow SQL
5 การสำรวจงานใน UI ของ Dataflow Monitoring
เมื่อดำเนินการไปป์ไลน์โดยใช้บริการที่มีการจัดการของ Dataflow คุณจะดูงานนั้นและงานอื่นๆ ได้โดยใช้อินเทอร์เฟซผู้ใช้ของการตรวจสอบบนเว็บของ Dataflow อินเทอร์เฟซการตรวจสอบช่วยให้คุณดูและโต้ตอบกับงาน Dataflow ได้
คุณเข้าถึงอินเทอร์เฟซการตรวจสอบ Dataflow ได้โดยใช้ Google Cloud Console อินเทอร์เฟซการตรวจสอบจะแสดงข้อมูลต่อไปนี้
- รายการงาน Dataflow ทั้งหมดที่กำลังทำงานอยู่ในขณะนี้และเรียกใช้งานก่อนหน้านี้ภายใน 30 วันที่ผ่านมา
- ภาพกราฟิกของไปป์ไลน์แต่ละรายการ
- รายละเอียดเกี่ยวกับสถานะ การดำเนินการ และเวอร์ชันของ SDK ของงาน
- ลิงก์ไปยังข้อมูลเกี่ยวกับบริการ Google Cloud ที่เรียกใช้ไปป์ไลน์ เช่น Compute Engine และ Cloud Storage
- ข้อผิดพลาดหรือคำเตือนที่เกิดขึ้นระหว่างการทำงาน
คุณดูแผนภูมิการตรวจสอบงานได้ภายในอินเทอร์เฟซการตรวจสอบ Dataflow แผนภูมิเหล่านี้แสดงเมตริกตลอดระยะเวลาของงานไปป์ไลน์ และประกอบด้วยข้อมูลต่อไปนี้
- ระดับการเข้าถึงระดับขั้นตอนเพื่อช่วยระบุขั้นตอนที่อาจทําให้เกิดความล่าช้าของไปป์ไลน์
- ข้อมูลทางสถิติที่อาจแสดงพฤติกรรมที่ผิดปกติ
- เมตริก I/O ที่ช่วยระบุจุดคอขวดในแหล่งที่มาและซิงก์
การเข้าถึงอินเทอร์เฟซการตรวจสอบ Dataflow
หากต้องการเข้าถึงอินเทอร์เฟซการตรวจสอบ Dataflow ให้ทำตามขั้นตอนต่อไปนี้
- ไปที่ Cloud Console แล้วทำดังนี้
- เลือกโปรเจ็กต์ Google Cloud
- คลิกเมนูที่มุมบนซ้าย
- ไปที่ส่วน Big Data แล้วคลิก Dataflow
รายการงาน Dataflow จะปรากฏขึ้นพร้อมสถานะ
รายการงาน Dataflow ใน Cloud Console ที่มีงานอยู่ในสถานะกำลังทำงาน ล้มเหลว และสำเร็จ
งานหนึ่งๆ อาจมีสถานะต่อไปนี้
- —: UI การตรวจสอบยังไม่ได้รับสถานะจากบริการ Dataflow
- กำลังทำงาน: งานกำลังทำงานอยู่
- ยังไม่เริ่ม: สร้างงานแล้ว แต่ระบบต้องใช้เวลาเพื่อเตรียมการก่อนเปิดตัว
- อยู่ในคิวแล้ว: งาน FlexRS อยู่ในคิวแล้ว
- กำลังยกเลิก...: งานกำลังถูกยกเลิก
- ยกเลิกแล้ว: งานที่ผู้ใช้ยกเลิกไปแล้ว
- กำลังระบาย...: งานกำลังระบาย
- ระบายแล้ว: ผู้ใช้ระบายงานแล้ว
- กำลังอัปเดต...: งานกำลังอัปเดต
- อัปเดตแล้ว: ผู้ใช้อัปเดตงาน
- สำเร็จ: งานเสร็จเรียบร้อยแล้ว
- ล้มเหลว: งานล้มเหลว
ค้นหางานที่มี "dfsql" เป็นส่วนหนึ่งของตำแหน่งงาน แล้วคลิกชื่อตำแหน่งงาน
หน้ารายละเอียดงานจะมีข้อมูลต่อไปนี้
- กราฟงาน: การแสดงภาพไปป์ไลน์ของคุณ
- เมตริกงาน: เมตริกเกี่ยวกับการปฏิบัติการงานของคุณ
- แผงข้อมูลงาน: ข้อมูลรายละเอียดเกี่ยวกับไปป์ไลน์ของคุณ
- บันทึกงาน: บันทึกที่สร้างโดยบริการ Dataflow ที่ระดับงาน
- บันทึกของผู้ปฏิบัติงาน: บันทึกที่สร้างโดยบริการ Dataflow ที่ระดับผู้ปฏิบัติงาน
- การรายงานข้อผิดพลาดของงาน: แผนภูมิแสดงตำแหน่งที่เกิดข้อผิดพลาดบนไทม์ไลน์ที่เลือก และจำนวนข้อผิดพลาดที่บันทึกไว้ทั้งหมด
- ตัวเลือกเวลา: เครื่องมือที่ช่วยให้คุณปรับช่วงเวลาของเมตริก
ภายในหน้ารายละเอียดงาน คุณสามารถเปลี่ยนมุมมองงานด้วยแท็บกราฟงานและเมตริกงานได้
- คลิกแท็บเมตริกของงานและสำรวจแผนภูมิ
6 การหยุดงาน Dataflow SQL
หากต้องการหยุดงาน SQL ของ Dataflow ให้ใช้คำสั่งยกเลิก ระบบไม่รองรับการหยุดงาน Dataflow SQL ด้วยการระบาย