[GCP Series] มาลองใช้ Google BigQuery กันดีกว่า
จากตอนก่อนที่พาไปสมัคร Google Cloud Platform กันแล้ว วันนี้จะพาไปลองเล่น BigQuery กัน
BigQuery คืออะไร ลองไปอ่านกันในนี้เลย cloud.google.com/bigquery
Service นี้ สามารถใช้งาน Storage ได้ 10 GB และ Query ได้ 1TB/Month ฟรี (เกินกว่านี้จะถูกเก็บเงินตามการใช้งาน (ซึ่งถ้ายังมี Free Credit อยู่ก็ไม่น่ากังวลมาก)
ไม่เขียนเยอะแล้ว เอาเป็นว่าไปดูวิธีใช้กันเลยดีกว่า
1) ไปที่ console.cloud.google.com
จากนั้น Login ให้เรียบร้อย จะเข้าสู่หน้า Console หลัก ให้กดไปที่แถบ Search ด้านบน
2) ไปที่ BigQuery Service
จากนั้นพิมพ์คำว่า BigQuery จะเจอกับ Service ที่ชื่อ BigQuery ให้กดไปได้เลย
จะเจอกับหน้า BigQuery Console
3) สร้าง Dataset ใหม่
กดไปที่ Project Name ในส่วนของ Explorer (สำหรับ Account สร้างใหม่ แต่ละคนจะได้ชื่อไม่เหมือนกัน)
จากนั้นกดไปที่ Create Dataset (ถ้าหาไม่เจอสังเกตสัญลักษณ์ Folder ที่มีเครื่องหมายบวก)
จะมีแถบ Create dataset โผล่ขึ้นมาทางขวามือ ให้กรอกรายละเอียดตามนี้
- Dataset ID : ตั้งชื่อ Dataset ตามที่เราต้องการ (ได้แค่ตัวอักษร, ตัวเลข, Underscore เท่านั้น)
- Data location : สถานที่เก็บ Data ของเรา เลือกเป็น United States (US) ไว้
- Default table expiration : วันหมดอายุของข้อมูล ในที่นี้เลือกเป็น Never ไว้ (หรือถ้าใครกลัวลืม จะกำหนดวันไว้ก็ได้)
- Encryption : เป็นการเข้ารหัสข้อมูล ให้ง่ายเลือกให้ Google จัดการได้เลย
จากนั้นกดปุ่ม Create Dataset สีฟ้าด้านล่าง ก็จะได้ Dataset ตามที่เราสร้างขึ้นมาอยู่ภายใต้ Project name ของเรา
4) ไปหาข้อมูลมา
นี่อาจจะเป็นขั้นตอนที่ยากที่สุด เพราะไม่มีข้อมูล !!!!
เอาเป็นว่าใน Tutorial นี้มาลองใช้ข้อมูล Telecom users dataset จาก Kaggle กันดูดีกว่า
เข้าไปโหลดได้เลยที่ www.kaggle.com/radmirzosimov/telecom-users-dataset (ต้องสมัครสมาชิก Kaggle ไว้ด้วย)
ทั้งนี้สามารถดูรายละเอียดของ Dataset คร่าว ๆ ได้ในหน้าของ Dataset เลย
หลังจากได้ข้อมูลมาแล้ว ไปที่ขั้นต่อไปกันเลย
5) นำข้อมูลไปไว้บน Google Drive
BigQuery สามารถนำเข้าข้อมูลได้หลายวิธีด้วยกัน แต่วิธีที่ค่อนข้างง่ายและข้อจำกัดน้อยหน่อย คือการนำเข้าข้อมูลผ่าน Google Drive นี่เอง
วิธีง่าย ๆ ก็คือ โยนไฟล์มันลงไปซักที่ของ Google Drive ของเราได้เลย
จากนั้น คลิกขวาไปที่ชื่อไฟล์ของเรา และกดไปที่ Get link
จากนั้นจะมีหน้าต่างสำหรับตั้งค่าการ Share ขึ้นมา จะมี 2 อย่างที่เราต้องทำ
1. แก้ Restricted เป็น Anyone with the link
2. ทำการ Copy link มา
จะได้ลิงค์ยาว ๆ มาแบบนี้
https://drive.google.com/file/d/1VSD_hsGhxttqZCJRgePSg2cCR6gHmkUm/view?usp=sharing
ให้เราเก็บส่วนที่เป็นตัวหนาเอาไว้ ซึ่งแต่ละไฟล์จะได้ค่านี้แตกต่างกัน (เรียกว่า file_id)
ในที่นี้ ขอเก็บ 1VSD_hsGhxttqZCJRgePSg2cCR6gHmkUm เอาไว้ตรงนี้ก่อน (ย้ำ แต่ละคนได้เลขไฟล์ต่างกัน และเอา File_id นี้ไปใช้ไม่ได้แล้วด้วยเพราะลบไฟล์ไปแล้วนะ อิอิ)
6) สร้าง Table ใน Dataset
กลับไปที่ BigQuery ให้กดไปที่ชื่อ Dataset ที่เราสร้างมา ภายในส่วนของ Explorer จากนั้นกดไปที่ CREATE TABLE (ถ้าหาไม่เจอ ให้สังเกตสัญลักษณ์เครื่องหมายบวกในกล่องสี่เหลี่ยม)
จะพบกับแถบ Create table โผล่ขึ้นมา ให้ทำการตั้งค่าตามนี้เลย
1. Source จะแบ่งออกไปอีก 3 ส่วนย่อย
- Create table from : ส่วนนี้ให้เลือกเป็น Drive (ตามจริงมีวิธีอื่นอีก)
- Select Drive URI : จำ file id ที่ให้หามาจาก Google Drive ในขั้นตอนที่ 5 ได้ไหม (ที่ยาวๆ เหมือน 1VSD_hsGhxttqZCJRgePSg2cCR6gHmkUm นั่นแหละ) ให้เอาส่วนนั้นมาต่อหลัง URL นี้ https://drive.google.com/open?id=
จะได้เป็น https://drive.google.com/open?id=1VSD_hsGhxttqZCJRgePSg2cCR6gHmkUm แล้วเอาไปใส่ในช่องนั้นได้เลย (ย้ำอีกครั้ง id ใคร id มัน ไฟล์ใคร ไฟล์มัน)
อย่าลืม ต้องเอา https://drive.google.com/open?id= มาผสมกับ file id
- File format : เนื่องจากไฟล์ที่เราใช้เป็น .csv ให้เลือกเป็น CSV ได้เลย (สามารถเอา CSV/Arvo/JSONL หรือ Google Sheet เข้ามาก็ได้
2. Destination ส่วนที่ตั้งตั้งค่ามีแค่ Table name ซึ่งตั้งเป็นอะไรก็ได้ที่สื่อให้รู้ว่านี่คือข้อมูลอะไร (ตามตัวอย่างใช้ sample_table น่าตีจริง)
3. Schema ส่วนนี้ให้ติ๊กถูกตรง Auto detect (Schema and input parameters) ไปเลย
จากนั้นกด Create table ข้างใต้ได้เลย รอซักพักจนสร้าง Table เสร็จ (สังเกตได้จากที่ในชื่อ Dataset ฝั่ง Explorer มีชื่อ Table โผล่ขึ้นมา)
7) มาลอง Query กัน
หลังจากที่ข้อมูลเราพร้อมแล้ว ลองกดไปที่ชื่อ Table ของเรา จะพบหน้าสรุปข้อมูลคร่าว ๆ มาให้ กดไปที่ QUERY TABLE เพื่อลอง Query กันได้เลย
BigQuery จะขึ้นส่วน Editor ขึ้นมา สามารถใช้ SQL Syntax ในการ Query ข้อมูลขึ้นมาได้เลย
อาจจะเริ่มจากคำถามง่าย ๆ เช่น ขอข้อมูลทั้งหมด 1000 Rows มาดูหน่อย ด้วย Syntax
SELECT * FROM `charged-kiln-308404.sample_dataset.sample_table` LIMIT 1000
หรือขอดูหน่อยว่าคนที่จ่ายเงินแต่ละช่องทาง มี Churn (บอกเลิกการเป็นลูกค้า) ทั้งหมดกี่คน
แต่ก็จะมีบาง Function ที่ทำได้เฉพาะใน BigQuery เท่านั้น ลองศึกษาเพิ่มเติมได้ที่ https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
จบกันไปแล้ววกับการลองเอาข้อมูลเข้า BigQuery เพียงเท่านี้ทุก ๆ คนก็สามารถลองฝึกใช้ SQL แบบง่าย ๆ ได้แล้ว ไม่มีข้ออ้างว่าไม่มีที่ให้ฝึกแล้วนาาาาา
สำหรับคราวหน้าจะมาแนะนำ Service อะไรอีก รอติดตามได้เลยยยยย