ค้นหาข้อมูล GitHub โดยใช้ BigQuery

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

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

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

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

สิ่งที่ต้องมี

  • โครงการ Google Cloud Platform
  • เบราว์เซอร์ เช่น Chrome หรือ Firefox

เปิดใช้ 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 ทั้งหมด และจะเรียกใน Codelab นี้ว่า PROJECT_ID ในภายหลัง

Codelab นี้ใช้ทรัพยากร BigQuery ร่วมกับแซนด์บ็อกซ์แซนด์บ็อกซ์ของ BigQuery ไม่จําเป็นต้องมีบัญชีสําหรับการเรียกเก็บเงิน หากต้องการนําขีดจํากัดแซนด์บ็อกซ์ออกในภายหลัง ให้เพิ่มบัญชีสําหรับการเรียกเก็บเงินโดยลงชื่อสมัครใช้ช่วงทดลองใช้ฟรีของ Google Cloud Platform

เปิดชุดข้อมูล GitHub ใน UI ทางเว็บของ BigQuery

https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table

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

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

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

ลองค้นหาชุดข้อมูลอื่น เช่น ชุดข้อมูลสาธารณะอื่นๆ

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

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

สิ่งที่เราพูดถึง

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

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