เกี่ยวกับ Codelab นี้
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 จนเสร็จสมบูรณ์
สิ่งที่เราได้พูดถึง
- การตั้งค่าการจัดเตรียมข้อมูล
- การเปิดตารางและไปยังส่วนต่างๆ ของการเตรียมข้อมูล
- การแยกคอลัมน์ที่มีข้อมูลตัวเลขและคำอธิบายหน่วย
- การใช้รูปแบบวันที่ที่เป็นมาตรฐาน
- กำลังเตรียมข้อมูล