ใช้ BigQuery เพื่อค้นหาข้อมูล GitHub

1. บทนำ

BigQuery คือฐานข้อมูลการวิเคราะห์ต้นทุนต่ำที่มีการจัดการของ Google อย่างเต็มรูปแบบ เมื่อใช้ BigQuery คุณจะค้นหาข้อมูลนับเทราไบต์ได้โดยไม่ต้องใช้ผู้ดูแลระบบฐานข้อมูลหรือโครงสร้างพื้นฐานใดๆ จัดการ BigQuery ใช้ SQL ที่คุ้นเคยและรูปแบบการชาร์จแบบจ่ายเท่าที่คุณใช้ BigQuery ช่วยให้คุณมุ่งเน้นไปที่การวิเคราะห์ข้อมูลเพื่อหาข้อมูลเชิงลึกที่สำคัญได้

ใน Codelab นี้ คุณจะเห็นวิธีค้นหาชุดข้อมูลสาธารณะของ GitHub ซึ่งเป็นหนึ่งในชุดข้อมูลสาธารณะที่มีอยู่ใน BigQuery

สิ่งที่คุณจะได้เรียนรู้

  • วิธีใช้ BigQuery
  • วิธีเขียนการค้นหาเพื่อรับข้อมูลเชิงลึกเกี่ยวกับชุดข้อมูลขนาดใหญ่

สิ่งที่คุณต้องมี

  • โปรเจ็กต์ Google Cloud
  • เบราว์เซอร์ เช่น Chrome หรือ Firefox

2. ตั้งค่า

เปิดใช้ BigQuery

หากยังไม่มีบัญชี Google (Gmail หรือ Google Apps) คุณต้องสร้างบัญชีก่อน

  • ลงชื่อเข้าใช้คอนโซล Google Cloud Platform ( console.cloud.google.com) และไปที่ BigQuery นอกจากนี้คุณยังเปิด UI เว็บของ BigQuery ได้โดยตรงโดยการป้อน URL ต่อไปนี้ในเบราว์เซอร์ของคุณ
https://console.cloud.google.com/bigquery
  • ยอมรับข้อกำหนดในการให้บริการ
  • คุณต้องสร้างโปรเจ็กต์ก่อนจึงจะใช้ BigQuery ได้ ทำตามข้อความแจ้งเพื่อสร้างโปรเจ็กต์ใหม่

เลือกชื่อโปรเจ็กต์และจดรหัสโปรเจ็กต์ไว้ 5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

รหัสโปรเจ็กต์คือชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด และจะมีการอ้างอิงใน Codelab ว่า PROJECT_ID ในภายหลัง

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

ดูตัวอย่างอย่างรวดเร็วว่าข้อมูลมีลักษณะอย่างไร

ed0b9fce5eab1c6b.png

4. ค้นหาข้อมูล GitHub

เปิดเครื่องมือแก้ไขการค้นหา

759423d320075d96.png

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

fb66b7e9c6e838c.png

คลิกปุ่มเรียกใช้

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

3ce1a59763d0dab5.png

แม้ว่าตาราง 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 เช่น การดึงคำขอ, ดาวของที่เก็บ และปัญหาที่เปิด คุณสามารถใช้ชุดข้อมูล PyPI ของ Python Software Foundation เพื่อวิเคราะห์คำขอดาวน์โหลดแพ็กเกจ Python ได้

6. ยินดีด้วย

คุณใช้ BigQuery และ SQL เพื่อค้นหาชุดข้อมูลสาธารณะของ GitHub คุณมีอำนาจในการค้นหาชุดข้อมูลระดับเพตะไบต์

สิ่งที่คุณได้พูดคุยกัน

  • การใช้ไวยากรณ์ SQL เพื่อค้นหาระเบียนคอมมิตของ GitHub
  • การเขียนการค้นหาเพื่อรับข้อมูลเชิงลึกเกี่ยวกับชุดข้อมูลขนาดใหญ่

ดูข้อมูลเพิ่มเติม