BigQuery คือฐานข้อมูลการวิเคราะห์ต้นทุนต่ําของ NoOps ที่มีการจัดการครบวงจรของ Google BigQuery ช่วยให้คุณค้นหาข้อมูลเป็นเทราไบต์ได้โดยไม่จําเป็นต้องมีผู้ดูแลระบบฐานข้อมูลหรือโครงสร้างพื้นฐานใดๆ ที่จะจัดการ BigQuery ใช้ SQL ที่คุ้นเคยและโมเดลการชาร์จแบบจ่ายตามการใช้งานเท่านั้น BigQuery ช่วยให้คุณมุ่งเน้นไปที่การวิเคราะห์ข้อมูลเพื่อค้นหาข้อมูลเชิงลึกที่สําคัญ
ในห้องทดลองนี้เราจะดูวิธีค้นหาชุดข้อมูลสาธารณะของ GitHub ซึ่งเป็นหนึ่งในชุดข้อมูลสาธารณะที่ใช้ได้ใน BigQuery
สิ่งที่จะได้เรียนรู้
- การใช้ BigQuery
- เขียนคําค้นหาเพื่อรับข้อมูลเชิงลึกเกี่ยวกับชุดข้อมูลขนาดใหญ่
สิ่งที่ต้องมี
เปิดใช้ 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
- เขียนคําค้นหาเพื่อรับข้อมูลเชิงลึกเกี่ยวกับชุดข้อมูลขนาดใหญ่
ดูข้อมูลเพิ่มเติม
- เรียนรู้ SQL ด้วยหลักสูตรแนะนําข้อมูลเบื้องต้นเกี่ยวกับ SQL
- สํารวจเอกสารประกอบเกี่ยวกับ BigQuery
- ดูวิธีที่ผู้อื่นใช้ชุดข้อมูล GitHub ในบล็อกโพสต์นี้
- สํารวจข้อมูลสภาพอากาศ ข้อมูลอาชญากรรม และอื่นๆ ใน TIL ด้วย BigQuery
- ดูวิธีโหลดข้อมูลลงใน BigQuery โดยใช้เครื่องมือบรรทัดคําสั่ง BigQuery
- ดู BigQuery Subreddit เกี่ยวกับวิธีที่ผู้ใช้รายอื่นใช้ BigQuery ในวันนี้