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



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
 - รหัสโปรเจ็กต์จะซ้ำกันไม่ได้ในโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น 
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงชื่อหลังจากขั้นตอนนี้ไม่ได้ และชื่อดังกล่าวจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
 
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
 
3. ก่อนเริ่มต้น
เปิดใช้ API
หากต้องการใช้ Gemini ใน BigQuery คุณต้องเปิดใช้ Gemini สำหรับ Google Cloud API โดยทั่วไปผู้ดูแลระบบบริการหรือเจ้าของโปรเจ็กต์ที่มีserviceusage.services.enableสิทธิ์ IAM จะเป็นผู้ดำเนินการขั้นตอนนี้
- หากต้องการเปิดใช้ Gemini for Google Cloud API ให้ไปที่หน้า Gemini for 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" ในฮับข้อมูลวิเคราะห์ของ BigQuery
เราจะใช้ชุดข้อมูล bq data preparation demo ในบทแนะนํานี้ ซึ่งเป็นชุดข้อมูลที่ลิงก์ใน BigQuery Analytics Hub ที่เราจะอ่าน
การเตรียมข้อมูลจะไม่เขียนกลับไปยังแหล่งที่มา และเราจะขอให้คุณกําหนดตารางปลายทางที่จะเขียน ตารางที่เราจะใช้ในการฝึกนี้จะมีเพียง 1,000 แถวเพื่อประหยัดค่าใช้จ่าย แต่การเตรียมข้อมูลจะทํางานใน BigQuery และจะปรับขนาดไปพร้อมๆ กัน
ทําตามขั้นตอนต่อไปนี้เพื่อค้นหาและติดตามชุดข้อมูลที่ลิงก์
- เข้าถึง Analytics Hub: ในคอนโซล Google Cloud ให้ไปที่ BigQuery
 - ในเมนูการนำทางของ 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'')
- เลือก "แสดงตัวอย่าง"
 

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

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

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

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

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

- เลือก 
Transformationจากเมนูแบบเลื่อนลง - ในช่องพรอมต์ภาษาธรรมชาติ ให้ป้อน "ดึงคำหลังเครื่องหมายทับ (|) ในคอลัมน์ผลิตภัณฑ์" จากนั้นกด Enter เพื่อสร้าง 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 - เลือก 
30 days (default)ในส่วนDefine duration for keeping errors 
- คลิก 
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 จนเสร็จสมบูรณ์
สิ่งที่เราได้พูดถึง
- การตั้งค่าการจัดเตรียมข้อมูล
 - การเปิดตารางและไปยังส่วนต่างๆ ของการเตรียมข้อมูล
 - การแยกคอลัมน์ที่มีข้อมูลตัวเลขและคำอธิบายหน่วย
 - การใช้รูปแบบวันที่ที่เป็นมาตรฐาน
 - กำลังเตรียมข้อมูล