การเรียกใช้คำสั่ง SQL แรกโดยใช้ Google Cloud Dataflow

1. บทนำ

Cloud-Dataflow.png

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

  1. ไปที่ UI เว็บ BigQuery

  1. เปลี่ยนไปใช้ Cloud Dataflow Engine
  • คลิกเมนูแบบเลื่อนลงเพิ่มเติม และเลือกการตั้งค่าการค้นหา

เมนูแบบเลื่อนลง "เพิ่มเติม" ใน UI เว็บของ BigQuery ที่มีการเลือกตัวเลือกการตั้งค่าการค้นหาไว้

  • เลือกเครื่องมือ Dataflow ในเมนูการตั้งค่าการค้นหา
  • ในข้อความแจ้งที่ปรากฏขึ้นหากไม่ได้เปิดใช้ Dataflow และ API แคตตาล็อกข้อมูล ให้คลิกเปิดใช้ API

เมนูการตั้งค่าการค้นหาที่มีข้อความแจ้งให้เปิดใช้ API

  • คลิก Save เมนูการตั้งค่าการค้นหาที่มีการเลือกปุ่มตัวเลือก Dataflow Engine และเปิดใช้ API

คุณยังเข้าถึง 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 เป็นประเภทเอาต์พุต

1155e94529ff58fe.png

  • เลือกรหัสชุดข้อมูลและสร้างชื่อตาราง "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 จะปรากฏขึ้นพร้อมสถานะ

58f6402cc923d6bb.png

รายการงาน Dataflow ใน Cloud Console ที่มีงานอยู่ในสถานะกำลังทำงาน ล้มเหลว และสำเร็จ

งานหนึ่งๆ อาจมีสถานะต่อไปนี้

  • : UI การตรวจสอบยังไม่ได้รับสถานะจากบริการ Dataflow
  • กำลังทำงาน: งานกำลังทำงานอยู่
  • ยังไม่เริ่ม: สร้างงานแล้ว แต่ระบบต้องใช้เวลาเพื่อเตรียมการก่อนเปิดตัว
  • อยู่ในคิวแล้ว: งาน FlexRS อยู่ในคิวแล้ว
  • กำลังยกเลิก...: งานกำลังถูกยกเลิก
  • ยกเลิกแล้ว: งานที่ผู้ใช้ยกเลิกไปแล้ว
  • กำลังระบาย...: งานกำลังระบาย
  • ระบายแล้ว: ผู้ใช้ระบายงานแล้ว
  • กำลังอัปเดต...: งานกำลังอัปเดต
  • อัปเดตแล้ว: ผู้ใช้อัปเดตงาน
  • สำเร็จ: งานเสร็จเรียบร้อยแล้ว
  • ล้มเหลว: งานล้มเหลว

ค้นหางานที่มี "dfsql" เป็นส่วนหนึ่งของตำแหน่งงาน แล้วคลิกชื่อตำแหน่งงาน

e3bce9b1929564c9.png

หน้ารายละเอียดงานจะมีข้อมูลต่อไปนี้

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

ภายในหน้ารายละเอียดงาน คุณสามารถเปลี่ยนมุมมองงานด้วยแท็บกราฟงานและเมตริกงานได้

  • คลิกแท็บเมตริกของงานและสำรวจแผนภูมิ

7076f8a8911066ab.png

6. การหยุดงาน Dataflow SQL

หากต้องการหยุดงาน SQL ของ Dataflow ให้ใช้คำสั่งยกเลิก ระบบไม่รองรับการหยุดงาน Dataflow SQL ด้วยการระบาย

1229697a873e1cf9.png