เตรียมข้อมูลด้วยตัวแทน AI ใน BigQuery Codelab

1. บทนำ

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

พร้อมที่จะปลดล็อกความลับที่ซ่อนอยู่ในข้อมูลผลิตภัณฑ์แล้วใช่ไหม

ข้อกำหนดเบื้องต้น

  • ความเข้าใจพื้นฐานเกี่ยวกับ Google Cloud Console
  • ความเข้าใจพื้นฐานเกี่ยวกับ SQL

สิ่งที่คุณจะได้เรียนรู้

  • วิธีที่การเตรียมข้อมูล BigQuery สามารถล้างและเปลี่ยนรูปแบบข้อมูลดิบให้เป็นข้อมูลอัจฉริยะทางธุรกิจที่นำไปใช้ได้จริง โดยใช้ตัวอย่างที่สมจริงจากอุตสาหกรรมแฟชั่นและความงาม
  • วิธีเรียกใช้และกำหนดเวลาการเตรียมข้อมูลสำหรับข้อมูลที่ทำความสะอาดแล้ว

สิ่งที่คุณต้องมี

  • บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
  • เว็บเบราว์เซอร์ เช่น Chrome

2. การตั้งค่าพื้นฐานและข้อกำหนด

การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง

  1. ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์
  • โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
  1. จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

3. ก่อนเริ่มต้น

เปิดใช้ API

หากต้องการใช้ Gemini ใน BigQuery คุณต้องเปิดใช้ Gemini สำหรับ Google Cloud API โดยปกติแล้ว ผู้ดูแลระบบบริการหรือเจ้าของโปรเจ็กต์ที่มีserviceusage.services.enableสิทธิ์ IAM จะเป็นผู้ดำเนินการขั้นตอนนี้

  1. หากต้องการเปิดใช้ Gemini สำหรับ Google Cloud API ให้ไปที่หน้า Gemini สำหรับ Google Cloud ใน Google Cloud Marketplace ไปที่ Gemini สำหรับ Google Cloud
  2. เลือกโปรเจ็กต์ในเครื่องมือเลือกโปรเจ็กต์
  3. คลิกเปิดใช้ หน้าเว็บจะอัปเดตและแสดงสถานะเป็นเปิดใช้ ตอนนี้ Gemini ใน BigQuery พร้อมให้บริการในโปรเจ็กต์ Google Cloud ที่เลือกแก่ผู้ใช้ทุกคนที่มีสิทธิ์ IAM ที่จำเป็นแล้ว

ตั้งค่าบทบาทและสิทธิ์เพื่อพัฒนาการเตรียมข้อมูล

  1. เลือก IAM ใน IAM และผู้ดูแลระบบ

4477412d79f29e0b.png

  1. เลือกผู้ใช้แล้วคลิกไอคอนดินสอเพื่อ "แก้ไขหลัก"

5eb558e04ad12362.png

หากต้องการใช้การเตรียมข้อมูล BigQuery คุณจะต้องมีบทบาทและสิทธิ์ต่อไปนี้

4. การค้นหาและติดตามข้อมูล "bq data preparation demo" ใน BigQuery Analytics Hub

เราจะใช้ชุดข้อมูล bq data preparation demo สำหรับบทแนะนำนี้ ซึ่งเป็นชุดข้อมูลที่ลิงก์ไว้ใน BigQuery Analytics Hub ที่เราจะอ่าน

การเตรียมข้อมูลจะไม่เขียนกลับไปยังแหล่งที่มา และเราจะขอให้คุณกำหนดตารางปลายทางที่จะเขียน ตารางที่เราจะใช้ในการฝึกนี้มีเพียง 1,000 แถวเพื่อลดต้นทุนให้เหลือน้อยที่สุด แต่การเตรียมข้อมูลจะทำงานใน BigQuery และจะปรับขนาดไปพร้อมกัน

ทำตามขั้นตอนต่อไปนี้เพื่อค้นหาและติดตามชุดข้อมูลที่ลิงก์

  1. เข้าถึง Analytics Hub: ไปที่ BigQuery ในคอนโซล Google Cloud
  2. ในเมนูการนำทางของ BigQuery ให้เลือก "Analytics Hub" ในส่วน "การกำกับดูแล"

6ddfac4dd863ca7b.png

  1. ค้นหารายการ: ใน UI ของ Analytics Hub ให้คลิกค้นหารายการ"
  2. พิมพ์ bq data preparation demo ลงในแถบค้นหาแล้วกด Enter

7e0cb82b80174cdc.png

  1. ติดตามข้อมูล: เลือกbq data preparation demoข้อมูลจากผลการค้นหา
  2. ในหน้ารายละเอียดข้อมูล ให้คลิกปุ่มติดตาม
  3. ตรวจสอบกล่องโต้ตอบการยืนยันและอัปเดตโปรเจ็กต์/ชุดข้อมูลหากจำเป็น ค่าเริ่มต้นควรถูกต้อง

2ef0ac1e3557f2f9.png

  1. เข้าถึงชุดข้อมูลใน BigQuery: เมื่อสมัครใช้บริการสำเร็จแล้ว ระบบจะลิงก์ชุดข้อมูลภายในข้อมูลกับโปรเจ็กต์ BigQuery ของคุณ

กลับไปที่ BigQuery Studio

5. สํารวจข้อมูลและเปิดใช้การจัดเตรียมข้อมูล

  1. ค้นหาชุดข้อมูลและตาราง: ในแผง Explorer ให้เลือกโปรเจ็กต์ แล้วค้นหาชุดข้อมูลที่รวมอยู่ในbq data preparation demoข้อมูล เลือกตาราง stg_product
  2. เปิดในการเตรียมข้อมูล: คลิกจุดแนวตั้ง 3 จุดข้างชื่อตาราง แล้วเลือก Open in Data Preparation

ซึ่งจะเปิดตารางในอินเทอร์เฟซการเตรียมข้อมูลเพื่อให้คุณเริ่มเปลี่ยนรูปแบบข้อมูลได้

76ace3d4b5cfc2d0.png

ดังที่คุณเห็นในตัวอย่างข้อมูลด้านล่าง เรามีความท้าทายด้านข้อมูลบางอย่างที่เราจะจัดการ ซึ่งรวมถึง

  • คอลัมน์ราคาประกอบด้วยทั้งจำนวนเงินและสกุลเงิน ซึ่งทำให้วิเคราะห์ได้ยาก
  • คอลัมน์ผลิตภัณฑ์จะรวมชื่อผลิตภัณฑ์และหมวดหมู่ (คั่นด้วยสัญลักษณ์ไปป์ |)

f4d93aa59a56447a.png

Gemini จะวิเคราะห์ข้อมูลและแนะนำการเปลี่ยนรูปแบบหลายอย่างทันที ในตัวอย่างนี้ เราเห็นคำแนะนำจำนวนหนึ่ง ในขั้นตอนถัดไป เราจะใช้ตัวกรองที่ต้องการ

fd4d14e4fa3c31c1.png

6. การจัดการคอลัมน์ราคา

มาจัดการคอลัมน์ราคากัน ดังที่เราได้เห็นแล้วว่าฟิลด์นี้มีทั้งสกุลเงินและจำนวนเงิน เป้าหมายของเราคือการแยกข้อมูลเหล่านี้ออกเป็น2 คอลัมน์ที่แตกต่างกัน ได้แก่ สกุลเงินและจำนวนเงิน

Gemini ได้ระบุคำแนะนำหลายอย่างสำหรับคอลัมน์ราคา

  1. ค้นหาคำแนะนำที่คล้ายกับข้อความต่อไปนี้

คำอธิบาย: "นิพจน์นี้จะนำ "USD " ที่นำหน้าออกจากฟิลด์ที่ระบุ"

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. เลือก "แสดงตัวอย่าง"

c9327cfbd32247d6.png

  1. เลือก "ใช้"

ถัดไปสำหรับคอลัมน์ราคา ให้แปลงประเภทข้อมูลจาก STRING เป็น NUMERIC

  1. ค้นหาคำแนะนำที่คล้ายกับข้อความต่อไปนี้

คำอธิบาย: "แปลงคอลัมน์ราคาจากประเภทสตริงเป็น float64"

SAFE_CAST(Price AS float64)
  1. เลือก "ใช้"

ตอนนี้คุณควรเห็นขั้นตอนที่ใช้แล้ว 3 ขั้นตอนในรายการขั้นตอน

d3359af47dce0c15.png

7. การจัดการคอลัมน์ผลิตภัณฑ์

คอลัมน์ผลิตภัณฑ์มีทั้งชื่อผลิตภัณฑ์และหมวดหมู่ โดยคั่นด้วยไปป์ (|)

แม้ว่าเราจะใช้ภาษาธรรมชาติได้อีกครั้ง แต่มาดูฟีเจอร์ที่มีประสิทธิภาพอีกอย่างหนึ่งของ Gemini กัน

ล้างชื่อผลิตภัณฑ์

  1. เลือกส่วนหมวดหมู่ของข้อมูลผลิตภัณฑ์ รวมถึงอักขระ | แล้วลบออก

5171d598a8cb3a75.png

Gemini จะจดจำรูปแบบนี้อย่างชาญฉลาดและแนะนำการเปลี่ยนรูปแบบที่จะใช้กับทั้งคอลัมน์

  1. เลือก "แก้ไข"

b36cac918b4f30e9.png

คำแนะนำของ Gemini นั้นถูกต้องแม่นยำ เพราะจะนำทุกอย่างที่อยู่หลังอักขระ "|" ออก ซึ่งเป็นการแยกชื่อผลิตภัณฑ์อย่างมีประสิทธิภาพ

แต่ครั้งนี้เราไม่ต้องการเขียนทับข้อมูลเดิม

  1. ในเมนูแบบเลื่อนลงของคอลัมน์เป้าหมาย ให้เลือก "สร้างคอลัมน์ใหม่"
  2. ตั้งชื่อเป็น ProductName

bda19e0e5e536ccd.png

  1. แสดงตัวอย่างการเปลี่ยนแปลงเพื่อให้แน่ใจว่าทุกอย่างดูเรียบร้อยดี
  2. ใช้การเปลี่ยนรูปแบบ

ดึงข้อมูลหมวดหมู่ผลิตภัณฑ์

เราจะใช้ภาษาพูดเพื่อสั่งให้ Gemini ดึงคำที่อยู่หลังเครื่องหมายไปป์ (|) ในคอลัมน์ผลิตภัณฑ์ ระบบจะเขียนทับค่าที่แยกออกมานี้ลงในคอลัมน์ที่มีอยู่ซึ่งชื่อว่าผลิตภัณฑ์

  1. คลิก Add Step เพื่อเพิ่มขั้นตอนการเปลี่ยนรูปแบบใหม่

77944047e698494c.png

  1. เลือก Transformation จากเมนูแบบเลื่อนลง
  2. ในช่องพรอมต์ภาษาธรรมชาติ ให้ป้อน "ดึงคำหลังเครื่องหมายไปป์ (|) ในคอลัมน์ผลิตภัณฑ์" แล้วกด Return เพื่อสร้าง SQL

82efc2447a3210bd.png

  1. ปล่อยคอลัมน์เป้าหมายเป็น "ผลิตภัณฑ์"
  2. คลิกใช้

การเปลี่ยนรูปแบบควรให้ผลลัพธ์ต่อไปนี้

d741c66d9e0e8e00.png

8. การรวมเพื่อเพิ่มคุณค่าให้กับข้อมูล

บ่อยครั้งที่คุณอาจต้องการเพิ่มคุณค่าให้กับข้อมูลด้วยข้อมูลจากแหล่งอื่นๆ ในตัวอย่างนี้ เราจะรวมข้อมูลผลิตภัณฑ์กับแอตทริบิวต์ผลิตภัณฑ์เพิ่มเติม stg_extended_product จากตารางของบุคคลที่สาม ตารางนี้มีรายละเอียดต่างๆ เช่น แบรนด์และวันที่เปิดตัว

  1. คลิก Add Step
  2. เลือก Join
  3. เรียกดูตาราง stg_extended_product

dca14451c3fbc7f0.png

Gemini ใน BigQuery เลือกคีย์การเชื่อมโยง productid ให้เราโดยอัตโนมัติ และระบุฝั่งซ้ายและขวาเนื่องจากชื่อคีย์เหมือนกัน

หมายเหตุ: ตรวจสอบว่าช่องคำอธิบายระบุว่า "เข้าร่วมโดยใช้ productid" หากมีคีย์สำหรับการรวมเพิ่มเติม ให้เขียนทับช่องคำอธิบายเป็น "รวมตาม productid" แล้วเลือกปุ่มสร้างในช่องคำอธิบายเพื่อสร้างนิพจน์การรวมใหม่โดยมีเงื่อนไขต่อไปนี้ L.

productid

= R.

productid 4d6dbfea28772f34.png

  1. (ไม่บังคับ) เลือก "แสดงตัวอย่าง" เพื่อดูตัวอย่างผลลัพธ์
  2. คลิก Apply

ล้างแอตทริบิวต์เพิ่มเติม

แม้ว่าการรวมจะสำเร็จ แต่ข้อมูลแอตทริบิวต์เพิ่มเติมต้องมีการล้างข้อมูล คอลัมน์ LaunchDate มีรูปแบบวันที่ไม่สอดคล้องกัน และคอลัมน์ Brand มีค่าที่ขาดหายไป

เราจะเริ่มด้วยการจัดการกับคอลัมน์ LaunchDate

f9b570d7c2d3a98d.png

ก่อนที่จะสร้างการเปลี่ยนรูปแบบใดๆ ให้ตรวจสอบคำแนะนำของ Gemini

  1. คลิกชื่อคอลัมน์ LaunchDate คุณควรเห็นคำแนะนำที่สร้างขึ้นซึ่งคล้ายกับคำแนะนำในรูปภาพด้านล่าง

62b6e6027a46ba75.png

  1. หากเห็นคําแนะนําที่มี SQL ต่อไปนี้ ให้ใช้คําแนะนําและข้ามขั้นตอนถัดไป
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. หากไม่เห็นคำแนะนำที่ตรงกับ SQL ด้านบน ให้คลิก Add Step
  2. เลือก Transformation
  3. ในช่อง SQL ให้ป้อนข้อมูลต่อไปนี้
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. ตั้งค่า Target Columns เป็น LaunchDate
  2. คลิก Apply

ตอนนี้คอลัมน์ LaunchDate มีรูปแบบวันที่ที่สอดคล้องกันแล้ว

ccf34aa05754a834.png

9. การเพิ่มตารางปลายทาง

ตอนนี้ชุดข้อมูลของเราสะอาดและพร้อมที่จะโหลดลงในตารางมิติข้อมูลในคลังข้อมูลแล้ว

  1. คลิก ADD STEP
  2. เลือก Destination
  3. กรอกพารามิเตอร์ที่จำเป็น: ชุดข้อมูล: bq_data_preparation_demo ตาราง: DimProduct
  4. คลิก Save

79fdc3666a3a21b9.png

ตอนนี้เราได้ทำงานกับแท็บ "ข้อมูล" และ "สคีมา" แล้ว นอกจากนี้ การเตรียมข้อมูล BigQuery ยังมีมุมมอง "กราฟ" ที่แสดงลําดับขั้นตอนการเปลี่ยนรูปแบบในไปป์ไลน์ด้วยภาพ

95e64d8152228f7b.png

10. โบนัส ก: การจัดการคอลัมน์ผู้ผลิตและการสร้างตารางข้อผิดพลาด

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

สร้างตารางข้อผิดพลาด

  1. คลิกปุ่ม More ข้างชื่อ stg_product data preparation
  2. เลือก Error Table ในส่วน Setting
  3. เลือกช่องEnable error table แล้วกำหนดค่าดังนี้
  • ชุดข้อมูล: เลือก bq_data_preparation_demo
  • ตาราง: ป้อน err_dataprep
  • ในส่วน Define duration for keeping errors ให้เลือก 30 days (default)
  1. คลิก Save

adb5722f05c1b205.png

ตั้งค่าการตรวจสอบในคอลัมน์ผู้ผลิต

  1. เลือกคอลัมน์ผู้ผลิต
  2. Gemini น่าจะระบุการเปลี่ยนรูปแบบที่เกี่ยวข้องได้ ค้นหาคำแนะนำที่เก็บเฉพาะแถวที่ฟิลด์ผู้ผลิตไม่ว่าง โดยจะมี SQL คล้ายกับตัวอย่างต่อไปนี้
Manufacturer IS NOT NULL

2. คลิกปุ่ม "แก้ไข" ในคำแนะนำนี้เพื่อตรวจสอบ

4749b551a03d8193.png

  1. เลือกตัวเลือก "แถวที่ตรวจสอบไม่ผ่านจะไปที่ตารางข้อผิดพลาด" หากไม่ได้เลือกไว้
  2. คลิก Apply

คุณสามารถตรวจสอบ แก้ไข หรือลบการเปลี่ยนรูปแบบที่ใช้ได้ทุกเมื่อโดยคลิกปุ่ม "ขั้นตอนที่ใช้"

15df6caacbdd6a69.png

ล้างข้อมูลคอลัมน์ ProductID_1 ที่ซ้ำกัน

ตอนนี้คุณลบคอลัมน์ ProductID_1 ซึ่งซ้ำกับ ProductID จากตารางที่รวมได้แล้ว

  1. ไปที่แท็บ Schema
  2. คลิกจุด 3 จุดข้างคอลัมน์ ProductID_1
  3. คลิก Drop

ตอนนี้เราพร้อมที่จะเรียกใช้งานการเตรียมข้อมูลและตรวจสอบทั้งไปป์ไลน์แล้ว เมื่อพอใจกับผลลัพธ์แล้ว เราก็สามารถตั้งเวลาให้งานทำงานโดยอัตโนมัติได้

  1. ก่อนออกจากมุมมองการเตรียมข้อมูล ให้บันทึกการเตรียมข้อมูล คุณควรเห็นปุ่ม Save ข้างstg_product data preparationชื่อ คลิกปุ่มเพื่อบันทึก

11. ล้างข้อมูลในสภาพแวดล้อม

  • ลบ stg_product data preparation
  • ลบชุดข้อมูล bq data preparation demo

12. ขอแสดงความยินดี

ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์

สิ่งที่เราได้พูดถึง

  • การตั้งค่าการจัดเตรียมข้อมูล
  • การเปิดตารางและการไปยังส่วนต่างๆ ของการเตรียมข้อมูล
  • การแยกคอลัมน์ที่มีข้อมูลตัวอธิบายตัวเลขและหน่วย
  • การกำหนดรูปแบบวันที่ให้เป็นมาตรฐาน
  • เรียกใช้การจัดเตรียมข้อมูล