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

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

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

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

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

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

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

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