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

1. บทนำ

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

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

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

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

6. ยินดีด้วย

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

สิ่งที่คุณครอบคลุม

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

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