1. บทนำ
ลองนึกภาพว่าคุณสามารถเตรียมข้อมูลให้พร้อมสำหรับการวิเคราะห์ได้เร็วขึ้นและมีประสิทธิภาพมากขึ้นโดยไม่ต้องเป็นผู้เชี่ยวชาญด้านการเขียนโค้ด การเตรียมข้อมูล BigQuery ช่วยให้คุณทำเช่นนั้นได้ ฟีเจอร์ที่มีประสิทธิภาพนี้ช่วยลดความซับซ้อนในการนำเข้า เปลี่ยนรูป และล้างข้อมูล ทำให้ผู้ปฏิบัติงานด้านข้อมูลทุกคนในองค์กรสามารถเตรียมข้อมูลได้
พร้อมที่จะปลดล็อกความลับที่ซ่อนอยู่ในข้อมูลผลิตภัณฑ์แล้วใช่ไหม
ข้อกำหนดเบื้องต้น
- ความเข้าใจพื้นฐานเกี่ยวกับ Google Cloud Console
- ความเข้าใจพื้นฐานเกี่ยวกับ SQL
สิ่งที่คุณจะได้เรียนรู้
- วิธีที่การเตรียมข้อมูล BigQuery สามารถล้างและเปลี่ยนรูปแบบข้อมูลดิบให้เป็นข้อมูลอัจฉริยะทางธุรกิจที่นำไปใช้ได้จริง โดยใช้ตัวอย่างที่สมจริงจากอุตสาหกรรมแฟชั่นและความงาม
- วิธีเรียกใช้และกำหนดเวลาการเตรียมข้อมูลสำหรับข้อมูลที่ทำความสะอาดแล้ว
สิ่งที่คุณต้องมี
- บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
- เว็บเบราว์เซอร์ เช่น Chrome
2. การตั้งค่าพื้นฐานและข้อกำหนด
การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



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

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

หากต้องการใช้การเตรียมข้อมูล BigQuery คุณจะต้องมีบทบาทและสิทธิ์ต่อไปนี้
- ผู้แก้ไขข้อมูล BigQuery (roles/bigquery.dataEditor)
- ผู้บริโภคการใช้บริการ (roles/serviceusage.serviceUsageConsumer)
4. การค้นหาและติดตามข้อมูล "bq data preparation demo" ใน BigQuery Analytics Hub
เราจะใช้ชุดข้อมูล bq data preparation demo สำหรับบทแนะนำนี้ ซึ่งเป็นชุดข้อมูลที่ลิงก์ไว้ใน BigQuery Analytics Hub ที่เราจะอ่าน
การเตรียมข้อมูลจะไม่เขียนกลับไปยังแหล่งที่มา และเราจะขอให้คุณกำหนดตารางปลายทางที่จะเขียน ตารางที่เราจะใช้ในการฝึกนี้มีเพียง 1,000 แถวเพื่อลดต้นทุนให้เหลือน้อยที่สุด แต่การเตรียมข้อมูลจะทำงานใน BigQuery และจะปรับขนาดไปพร้อมกัน
ทำตามขั้นตอนต่อไปนี้เพื่อค้นหาและติดตามชุดข้อมูลที่ลิงก์
- เข้าถึง Analytics Hub: ไปที่ BigQuery ในคอนโซล Google Cloud
- ในเมนูการนำทางของ BigQuery ให้เลือก "Analytics Hub" ในส่วน "การกำกับดูแล"

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

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

- เข้าถึงชุดข้อมูลใน BigQuery: เมื่อสมัครใช้บริการสำเร็จแล้ว ระบบจะลิงก์ชุดข้อมูลภายในข้อมูลกับโปรเจ็กต์ BigQuery ของคุณ
กลับไปที่ BigQuery Studio
5. สํารวจข้อมูลและเปิดใช้การจัดเตรียมข้อมูล
- ค้นหาชุดข้อมูลและตาราง: ในแผง Explorer ให้เลือกโปรเจ็กต์ แล้วค้นหาชุดข้อมูลที่รวมอยู่ใน
bq data preparation demoข้อมูล เลือกตารางstg_product - เปิดในการเตรียมข้อมูล: คลิกจุดแนวตั้ง 3 จุดข้างชื่อตาราง แล้วเลือก
Open in Data Preparation
ซึ่งจะเปิดตารางในอินเทอร์เฟซการเตรียมข้อมูลเพื่อให้คุณเริ่มเปลี่ยนรูปแบบข้อมูลได้

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

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

6. การจัดการคอลัมน์ราคา
มาจัดการคอลัมน์ราคากัน ดังที่เราได้เห็นแล้วว่าฟิลด์นี้มีทั้งสกุลเงินและจำนวนเงิน เป้าหมายของเราคือการแยกข้อมูลเหล่านี้ออกเป็น2 คอลัมน์ที่แตกต่างกัน ได้แก่ สกุลเงินและจำนวนเงิน
Gemini ได้ระบุคำแนะนำหลายอย่างสำหรับคอลัมน์ราคา
- ค้นหาคำแนะนำที่คล้ายกับข้อความต่อไปนี้
คำอธิบาย: "นิพจน์นี้จะนำ "USD " ที่นำหน้าออกจากฟิลด์ที่ระบุ"
REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
- เลือก "แสดงตัวอย่าง"

- เลือก "ใช้"
ถัดไปสำหรับคอลัมน์ราคา ให้แปลงประเภทข้อมูลจาก STRING เป็น NUMERIC
- ค้นหาคำแนะนำที่คล้ายกับข้อความต่อไปนี้
คำอธิบาย: "แปลงคอลัมน์ราคาจากประเภทสตริงเป็น float64"
SAFE_CAST(Price AS float64)
- เลือก "ใช้"
ตอนนี้คุณควรเห็นขั้นตอนที่ใช้แล้ว 3 ขั้นตอนในรายการขั้นตอน

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

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

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

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

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

- ปล่อยคอลัมน์เป้าหมายเป็น "ผลิตภัณฑ์"
- คลิกใช้
การเปลี่ยนรูปแบบควรให้ผลลัพธ์ต่อไปนี้

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

Gemini ใน BigQuery เลือกคีย์การเชื่อมโยง productid ให้เราโดยอัตโนมัติ และระบุฝั่งซ้ายและขวาเนื่องจากชื่อคีย์เหมือนกัน
หมายเหตุ: ตรวจสอบว่าช่องคำอธิบายระบุว่า "เข้าร่วมโดยใช้ productid" หากมีคีย์สำหรับการรวมเพิ่มเติม ให้เขียนทับช่องคำอธิบายเป็น "รวมตาม productid" แล้วเลือกปุ่มสร้างในช่องคำอธิบายเพื่อสร้างนิพจน์การรวมใหม่โดยมีเงื่อนไขต่อไปนี้ L.
productid
= R.
productid 
- (ไม่บังคับ) เลือก "แสดงตัวอย่าง" เพื่อดูตัวอย่างผลลัพธ์
- คลิก
Apply
ล้างแอตทริบิวต์เพิ่มเติม
แม้ว่าการรวมจะสำเร็จ แต่ข้อมูลแอตทริบิวต์เพิ่มเติมต้องมีการล้างข้อมูล คอลัมน์ LaunchDate มีรูปแบบวันที่ไม่สอดคล้องกัน และคอลัมน์ Brand มีค่าที่ขาดหายไป
เราจะเริ่มด้วยการจัดการกับคอลัมน์ LaunchDate

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

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

9. การเพิ่มตารางปลายทาง
ตอนนี้ชุดข้อมูลของเราสะอาดและพร้อมที่จะโหลดลงในตารางมิติข้อมูลในคลังข้อมูลแล้ว
- คลิก
ADD STEP - เลือก
Destination - กรอกพารามิเตอร์ที่จำเป็น: ชุดข้อมูล:
bq_data_preparation_demoตาราง:DimProduct - คลิก
Save

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

10. โบนัส ก: การจัดการคอลัมน์ผู้ผลิตและการสร้างตารางข้อผิดพลาด
นอกจากนี้ เรายังพบค่าว่างในคอลัมน์ Manufacturer ด้วย สำหรับระเบียนเหล่านี้ เราต้องการใช้การตรวจสอบคุณภาพของข้อมูลและย้ายระเบียนไปยังตารางข้อผิดพลาดเพื่อตรวจสอบเพิ่มเติม
สร้างตารางข้อผิดพลาด
- คลิกปุ่ม
Moreข้างชื่อstg_product data preparation - เลือก
Error Tableในส่วนSetting - เลือกช่อง
Enable error tableแล้วกำหนดค่าดังนี้
- ชุดข้อมูล: เลือก
bq_data_preparation_demo - ตาราง: ป้อน
err_dataprep - ในส่วน
Define duration for keeping errorsให้เลือก30 days (default)
- คลิก
Save

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

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

ล้างข้อมูลคอลัมน์ ProductID_1 ที่ซ้ำกัน
ตอนนี้คุณลบคอลัมน์ ProductID_1 ซึ่งซ้ำกับ ProductID จากตารางที่รวมได้แล้ว
- ไปที่แท็บ
Schema - คลิกจุด 3 จุดข้างคอลัมน์
ProductID_1 - คลิก
Drop
ตอนนี้เราพร้อมที่จะเรียกใช้งานการเตรียมข้อมูลและตรวจสอบทั้งไปป์ไลน์แล้ว เมื่อพอใจกับผลลัพธ์แล้ว เราก็สามารถตั้งเวลาให้งานทำงานโดยอัตโนมัติได้
- ก่อนออกจากมุมมองการเตรียมข้อมูล ให้บันทึกการเตรียมข้อมูล คุณควรเห็นปุ่ม
Saveข้างstg_product data preparationชื่อ คลิกปุ่มเพื่อบันทึก
11. ล้างข้อมูลในสภาพแวดล้อม
- ลบ
stg_product data preparation - ลบชุดข้อมูล
bq data preparation demo
12. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึง
- การตั้งค่าการจัดเตรียมข้อมูล
- การเปิดตารางและการไปยังส่วนต่างๆ ของการเตรียมข้อมูล
- การแยกคอลัมน์ที่มีข้อมูลตัวอธิบายตัวเลขและหน่วย
- การกำหนดรูปแบบวันที่ให้เป็นมาตรฐาน
- เรียกใช้การจัดเตรียมข้อมูล