Supermarket Data for Learning to be a Data Scientist — Upload data to Google BigQuery using Google Cloud SDK

ก่อนจะฝึกฝนฝีมือ analytics ได้ก็ต้องมี data ใช่ไหมครับ แต่การจะหา data ที่เป็นพฤติกรรมผู้บริโภคจริงๆ ก็หายากมาก ตาม tutorial ต่างๆ ก็มีแต่ข้อมูลน่ารักๆ ที่ไม่ค่อยเหมือนกับข้อมูลที่เราเจอกันจริงๆ ในชีวิตการทำงานจริง

วันนี้จะมาแสดงวิธีทำการเตรียมข้อมูลการซื้อของลูกค้า supermarket ที่เราไปสามารถ download มาใช้ แล้วส่งขึ้นไปเก็บบน Google BigQuery ซึ่งเป็น Cloud Data Warehouse ครับ

ปล. ดูเหมือนจะยาว แต่รูปเยอะครับ ไม่ยากนะครับ พยายามแสดงขั้นตอนอย่างละเอียดให้ดู

เตรียม Data Source

dunnhumby ซึ่งเป็นบริษัทที่ทำ analytics ให้กับ Tesco ทำด้านเกี่ยวกับ customer data science ได้เอาข้อมูลการซื้อของใน supermarket มา share ให้บุคคลทั่วไปได้ download ไปใช้ศึกษา ทดสอบ ฝึกฝนฝีมือ ตามไป download มาได้เลยครับ ด้านล่าง ข้อมูลมีทั้งหมด 4 ชุด ได้แก่

  1. Breakfast at the Frat: A Time Series Analysis
  2. Let’s Get Sort-of-Real: Dummy Data to Test Techniques and Algorithms
  3. Carbo-Loading: A Relational Database
  4. The Complete Journey

เพื่อความสะใจ เราไป download the complete journey มาใช้ดีกว่าครับ เพราะเป็นข้อมูลขนาดใหญ่ มีข้อมูลย้อนหลัง 2 ปี

ไป download มาเก็บไว้บนคอมนะครับ เก็บรอไว้ก่อน

Register Google Cloud Account

ณ จุดนี้ ใครยังไม่มี Google Cloud Account ขอให้จงไป register กันให้ถ้วนหน้า register แล้วเค้าจะให้ free credit ให้เราทดลองใช้ได้อย่างสนุกสนาน 300 USD ใช้ไปเถอะครับ ยังไงก็เหลือเฟือ (ถ้าใช้แค่ Google BigQuery )

1) เข้าไปที่ https://cloud.google.com/free/ ครับ

กด Try It Free

2) แล้วก็กรอกรายละเอียดไปเรื่อยๆครับ

3) ใส่ e-mail ที่ เป็น gmail ครับ

4) จะถามเราให้ accept เรื่อง agreement ต่างๆ

5) จากนั้น ก็กรอกรายละเอียดส่วนตัวเข้าไปครับ

6) ใส่รายละเอียดบัตรเครดิต (บัตรเดบิตจะไม่ได้นะครับ)

** หลายคนกังวลเรื่องค่าใช้จ่ายบัตรเครดิต ถ้าใช้แค่ Google BigQuery จริงๆ มันไม่แพงเลย มี free credit 300 USD ตลอด 12 ปี ใช้อย่างรุนแรง ก็มาเรียกเก็บบิลเดือนละแค่ 10 USD เองครับ (งดกาแฟแฟนซีนิดเดียวก็ได้แล้ว)

7) เป็นอันเสร็จพิธี เค้าก็จะไป สร้าง Project ให้เรา

Let’s Explore Google Cloud Platform

หลังจาก register เสร็จแล้ว ก็จะวิ่งมาที่ Google Cloud Platform Console

Google Cloud Platform มี products อยู่มากมายหลายหลาก แต่เราจะใช้ในวันนี้เพียงแค่ 2 ตัวก่อนนะครับ ก็คือ

1) Google Cloud Storage

2) Google BigQuery

Install Cloud SDK

เราสามารถ load data เข้า Google BigQuery ผ่านทาง User Interface ได้อย่างง่ายดาย แต่ด้วยความที่เรามีไฟล์หลายสิบไฟล์รออยู่ ถ้ามานั่ง upload ทีละไฟล์ คงใช้เวลาอีกนานมากกว่าจะเสร็จ

GCP ก็มี Cloud SDK ให้เราไว้ใช้สั่งงานผ่าน command line ครับ เราก็แค่ไป download SDK จาก link ด้านล่าง แล้ว install ครับ

1) เข้าไป download Cloud SDK เพื่อมา install ครับ

2) ก็กด Next ไปเรื่อยๆ ครับ

3) ก็จะวิ่ง install ไปเรื่อยๆ ครับ

4) เมื่อ install เสร็จ ก็จะขึ้น command prompt มา บอกให้เราต้อง log in ก่อนนะ ก็ใส่ Y แล้วกระแทก enter ไป

5) ก็จะวิ่งไป เปิด browser มาเพื่อให้เรา log in ตาม gmail ที่เราสมัครไป

6) ให้เรากด allow เพื่อให้ SDK เข้าถึง GCP เราได้

7) เสร็จเรียบร้อย

8) แต่ยังไม่เสร็จทั้งหมดครับ กลับมาที่ command line เราก็ต้องเลือก default project ที่จะใช้ ตอนนี้เรามี project เดียว ก็เลือก 1 ไป ถ้ามี project อื่น ก็เลือกตามที่อยากใช้ครับ

9) จากนั้น ก็ให้เรา enable api ครับ ก็กด y แล้ว enter ไป รอสักพักหน่อย ก็เสร็จเรียบร้อย พร้อมใช้

Upload files to Google Cloud Storage

Cloud Storage ก็ทำหน้าที่เป็นตัวเก็บไฟล์ระยะยาว เหมือน archive ให้เราระดับนึง เอามาทำเป็น data lake ก็ได้นะครับ

เราจะเริ่มจากการโยนไฟล์ที่เราเตรียมไว้ขึ้นไปบน Google Cloud Storage ก่อนครับ ตัวนี้ จะทำหน้าที่เป็น data source สำหรับ Google BigQuery ให้เรา

ขั้นตอนในการโยนไฟล์ขึ้นไปบน GCS ก็มีดังนี้

1) ไปดูไฟล์ที่เรา download มาจาก dunnhumby กันครับ

ข้อควรระวัง ให้ลบไฟล์ time.csv ออกครับ เพราะไม่ใช่ไฟล์ข้อมูล

2) ใช้ command line (กดตรง search แล้วพิมพ์ cmd)

3) ใช้ command ข้างล่างในการ upload ไฟล์ขึ้นไปครับ ใครแก่ๆ หน่อย ก็จะคุ้นเคยกับคำว่า *.csv ก็คือ เอาไฟล์ทั้งหมดที่เป็น csv ขึ้นไปนะครับ

อไปสองวันสองคืน …. ขึ้นอยู่กับความเร็วของ internet ของแต่ละคน

ด้านล่างเป็นรูปตัวอย่างตอน upload files ครับ เค้าก็จะวิ่งไปเรื่อยๆ แต่ของผมไฟดับ เนตตัด คอมดับไปรอบนึงกลางทาง เลยมาทำต่ออีก 20 GB ที่เหลือ

Upload data to Google BigQuery

เมื่อ data source พร้อมแล้ว เราก็จะกวาดข้อมูลจาก storage เข้าสู่ BigQuery ครับ

1) ใช้ command ดังนี้ครับ

2) Cloud SDK ก็จะวิ่งไปสั่งให้ Google BigQuery run job ครับ ถ้าไปเปิด GBQ ดูตอนนี้ ก็จะมี job run อยู่

3) รอไปซักแปป ก็จะเสร็จเรียบร้อยแล้ว เร็วไหมเอ่ย create insert table 300 ล้าน record ในเวลา 204 วินาที (ช้าตอน upload files ด้วยเนตลูกเต่าของเรา)

4) พอไปเปิด GBQ ก็จะได้ table ที่เราอยากได้เรียบร้อยครับ ^^


Begin your data scientist journey

ข้อมูลพร้อมแล้ว ก็เริ่มลงมือทำได้เลยครับ ส่วนใครที่ยังคิดไม่ออกว่าจะเริ่มอะไรดี เริ่มจาก list นี้ง่ายๆ ก่อนได้เลย

  1. วิเคราะห์ในมุมมอง sales หา trend หา seasonal pattern
  2. วิเคราะห์พฤติกรรมลูกค้า แบ่งกลุ่มหาลูกค้าชั้นดี
  3. ทำ recommendation engine เพื่อแนะนำสินค้าให้ลูกค้า

ลองย้อนกลับไปอ่านบทความเก่าๆ ก่อนเป็นไอเดียนะครับ


หวังว่าทุกคนจะทำตามได้สำเร็จเรียบร้อยนะครับ เพียงเท่านี้ ทุกคนก็จะมีข้อมูลขนาดใหญ่ไว้ฝึกฝนฝีมือ แถมยังเป็นข้อมูลที่เข้าใจได้ไม่ยาก เป็นข้อมูล retail ที่เหมาะสมกับการเป็นพื้นฐานในการเริ่มต้นการเป็น data scientist เลยครับ

สำหรับอาจารย์ การเตรียมการแบบนี้เพื่อนำไปใช้ใน Lab ก็จะช่วยลดความยุ่งยากในการจัดเตรียม server ได้ไปเยอะเลยครับ ผมเคยเอาไปใช้สอน ก็สะดวกสบายมาก

อย่าปล่อยโอกาสในอนาคตให้หลุดมือไปด้วยคำว่าไม่เคยลองทำหรือไม่พร้อมครับ

https://quotespicky.com/inspirational-learning-quotes/inspirational-learning-quotes-30-inspirational-education-quotes-for-students-a-house-of-fun/

Thanachart Ritbumroong

Written by

Lecturer at Business Analytics and Data Science Program, National Institute of Development Administration, Thailand and Data Analytics Consultant

More From Medium

More from Thanachart Ritbumroong

Also tagged Data

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade