1. บทนำ
BigQuery คือฐานข้อมูลการวิเคราะห์ที่มีการจัดการอย่างเต็มรูปแบบและมีต้นทุนต่ำของ Google BigQuery ช่วยให้คุณค้นหาข้อมูลขนาดเทราไบต์ได้โดยไม่ต้องมีผู้ดูแลฐานข้อมูลหรือโครงสร้างพื้นฐานใดๆ ในการจัดการ BigQuery ใช้ SQL ที่คุ้นเคยและรูปแบบการเรียกเก็บเงินแบบจ่ายเฉพาะสิ่งที่ใช้ BigQuery ช่วยให้คุณมุ่งเน้นการวิเคราะห์ข้อมูลเพื่อค้นหาข้อมูลเชิงลึกที่มีความหมาย
ในโค้ดแล็บนี้ คุณจะได้ดูวิธีค้นหาชุดข้อมูลสาธารณะของ GitHub ซึ่งเป็นหนึ่งในชุดข้อมูลสาธารณะที่มีอยู่ใน BigQuery
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ BigQuery
- วิธีเขียนคําค้นหาเพื่อรับข้อมูลเชิงลึกในชุดข้อมูลขนาดใหญ่
สิ่งที่คุณต้องมี
2. ตั้งค่า
เปิดใช้ BigQuery
หากยังไม่มีบัญชี Google (Gmail หรือ Google Apps) คุณต้องสร้างบัญชี
- ลงชื่อเข้าใช้คอนโซล Google Cloud Platform ( console.cloud.google.com) แล้วไปที่ BigQuery นอกจากนี้ คุณยังเปิดเว็บ UI ของ BigQuery ได้โดยตรงโดยป้อน URL ต่อไปนี้ในเบราว์เซอร์
https://console.cloud.google.com/bigquery
- ยอมรับข้อกำหนดในการให้บริการ
- คุณต้องสร้างโปรเจ็กต์ก่อนจึงจะใช้ BigQuery ได้ ทำตามข้อความแจ้งเพื่อสร้างโปรเจ็กต์ใหม่
เลือกชื่อโปรเจ็กต์และจดรหัสโปรเจ็กต์ไว้
รหัสโปรเจ็กต์คือชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด ซึ่งจะเรียกว่า PROJECT_ID ในภายหลังใน Codelab นี้
Codelab นี้ใช้ทรัพยากร BigQuery ภายในขีดจำกัดของแซนด์บ็อกซ์ BigQuery ไม่จำเป็นต้องมีบัญชีสำหรับการเรียกเก็บเงิน หากต้องการนำขีดจำกัดของแซนด์บ็อกซ์ออกในภายหลัง คุณสามารถเพิ่มบัญชีสำหรับการเรียกเก็บเงินได้โดยลงชื่อสมัครใช้ช่วงทดลองใช้ฟรีของ Google Cloud Platform
3. ดูตัวอย่างข้อมูล GitHub
เปิดชุดข้อมูล GitHub ในเว็บ UI ของ BigQuery
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table
ดูตัวอย่างคร่าวๆ ว่าข้อมูลมีลักษณะอย่างไร

4. ค้นหาข้อมูล GitHub
เปิดเครื่องมือแก้ไขการค้นหา

ป้อนการค้นหาต่อไปนี้เพื่อค้นหาข้อความคอมมิตที่พบบ่อยที่สุดในชุดข้อมูลสาธารณะของ GitHub
SELECT subject AS subject,
COUNT(*) AS num_duplicates
FROM `bigquery-public-data.github_repos.sample_commits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100
เนื่องจากชุดข้อมูล GitHub มีขนาดใหญ่ การใช้ชุดข้อมูลตัวอย่างขนาดเล็กขณะทดลองจะช่วยประหยัดค่าใช้จ่ายได้ ใช้ไบต์ที่ประมวลผลใต้เอดิเตอร์เพื่อประมาณค่าใช้จ่ายของคําค้นหา

คลิกปุ่มเรียกใช้
ในอีกไม่กี่วินาที ผลลัพธ์จะแสดงที่ด้านล่าง โดยจะบอกปริมาณข้อมูลที่ประมวลผลและระยะเวลาที่ใช้

แม้ว่าตาราง sample_commits จะมีขนาด 2.49 GB แต่คําค้นหาประมวลผลเพียง 35.8 MB BigQuery จะประมวลผลเฉพาะไบต์จากคอลัมน์ที่ใช้ในการค้นหาเท่านั้น ดังนั้นปริมาณข้อมูลทั้งหมดที่ประมวลผลจึงอาจน้อยกว่าขนาดตารางอย่างมาก การจัดกลุ่มและการแบ่งพาร์ติชันจะช่วยลดปริมาณข้อมูลที่ประมวลผลได้มากยิ่งขึ้น
5. ข้อมูลสาธารณะเพิ่มเติม
ตอนนี้ลองค้นหาชุดข้อมูลอื่น เช่น ชุดข้อมูลสาธารณะอื่นๆ
ตัวอย่างเช่น การค้นหาต่อไปนี้จะค้นหาโปรเจ็กต์ยอดนิยมที่เลิกใช้งานแล้วหรือไม่มีการบำรุงรักษาในชุดข้อมูลสาธารณะของ Libraries.io ซึ่งยังคงใช้เป็นทรัพยากร Dependency ในโปรเจ็กต์อื่นๆ
SELECT
name,
dependent_projects_count,
language,
status
FROM
`bigquery-public-data.libraries_io.projects_with_repository_fields`
WHERE status IN ('Deprecated', 'Unmaintained')
ORDER BY dependent_projects_count DESC
LIMIT 100
นอกจากนี้ องค์กรอื่นๆ ยังได้เผยแพร่ข้อมูลของตนต่อสาธารณะใน BigQuery ด้วย ตัวอย่างเช่น ชุดข้อมูล GH Archive ของ Github สามารถใช้เพื่อวิเคราะห์เหตุการณ์สาธารณะใน GitHub เช่น Pull Request, ดาวที่เก็บ และปัญหาที่เปิด คุณใช้ชุดข้อมูล PyPI ของ Python Software Foundation เพื่อวิเคราะห์คำขอดาวน์โหลดแพ็กเกจ Python ได้
6. ยินดีด้วย
คุณใช้ BigQuery และ SQL เพื่อค้นหาชุดข้อมูลสาธารณะของ GitHub คุณมีสิทธิ์ค้นหาชุดข้อมูลขนาดเพตะไบต์
สิ่งที่คุณครอบคลุม
- การใช้ไวยากรณ์ SQL เพื่อค้นหาบันทึกการคอมมิตใน GitHub
- การเขียนคำค้นหาเพื่อรับข้อมูลเชิงลึกในชุดข้อมูลขนาดใหญ่
ดูข้อมูลเพิ่มเติม
- เรียนรู้ SQL ด้วยข้อมูลเบื้องต้นเกี่ยวกับ SQL ของ Kaggle
- ดูเอกสารประกอบของ BigQuery
- ดูวิธีที่คนอื่นๆ ใช้ชุดข้อมูล GitHub ในบล็อกโพสต์นี้
- สำรวจข้อมูลสภาพอากาศ ข้อมูลอาชญากรรม และอื่นๆ ใน TIL ด้วย BigQuery
- ดูวิธีโหลดข้อมูลลงใน BigQuery โดยใช้เครื่องมือบรรทัดคำสั่งของ BigQuery
- ดูกลุ่มย่อย BigQuery เพื่อดูว่าคนอื่นๆ ใช้ BigQuery อย่างไรในปัจจุบัน