使用 BigQuery 用戶端程式庫查詢公開資料集
瞭解如何使用 BigQuery 用戶端程式庫查詢公開資料集。
如要直接在Google Cloud 控制台中,按照這項工作的逐步指南操作,請選取偏好的程式設計語言:
C#
Go
Java
Node.js
PHP
Python
Ruby
事前準備
-
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
-
選擇免付費使用 BigQuery 沙箱,或為專案啟用計費功能。 Google Cloud
如果專案未啟用計費功能,會自動前往 BigQuery 沙箱讓您執行操作。沙箱可供您免付費使用部分 BigQuery 功能,協助熟悉 BigQuery。如果您只打算將專案用於本文練習,建議使用 BigQuery 沙箱。
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/serviceusage.serviceUsageAdmin, roles/bigquery.jobUsergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
-
啟用 BigQuery API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable bigquery
新專案會自動啟用 BigQuery API。
-
在 Google Cloud 控制台中啟用 Cloud Shell。
在 Cloud Shell 中啟用 Google Cloud 專案:
gcloud config set project PROJECT_ID將 PROJECT_ID 替換為您為本逐步導覽選取的專案。
輸出結果會與下列內容相似:
Updated property [core/project].
查詢公開資料集
選取下列其中一種語言:
C#
在 Cloud Shell 中,建立新的 C# 專案和檔案:
dotnet new console -n BigQueryCsharpDemo
輸出結果大致如下。為簡化輸出結果,這裡省略了幾行內容。
Welcome to .NET 6.0! --------------------- SDK Version: 6.0.407 ... The template "Console App" was created successfully. ...
這個指令會建立名為
BigQueryCsharpDemo的 C# 專案和Program.cs檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace BigQueryCsharpDemo
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd BigQueryCsharpDemo
安裝 C# 專用的 BigQuery 用戶端程式庫:
dotnet add package Google.Cloud.BigQuery.V2
輸出結果大致如下。為簡化輸出結果,這裡省略了幾行內容。
Determining projects to restore... Writing /tmp/tmpF7EKSd.tmp ... info : Writing assets file to disk. ...
將變數
GOOGLE_PROJECT_ID設成GOOGLE_CLOUD_PROJECT這個值,然後匯出變數:export GOOGLE_PROJECT_ID=$GOOGLE_CLOUD_PROJECT
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERYCSHARPDEMO專案。點選
Program.cs檔案即可開啟。如要依據
bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數,請將檔案內容改成下列程式碼:點選「Open Terminal」(開啟終端機)。
在終端機中執行
Program.cs指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。dotnet run結果大致如下:
Query Results: ------------ https://stackoverflow.com/questions/35159967: 170023 views https://stackoverflow.com/questions/22879669: 142581 views https://stackoverflow.com/questions/10604135: 132406 views https://stackoverflow.com/questions/44564887: 128781 views https://stackoverflow.com/questions/27060396: 127008 views https://stackoverflow.com/questions/12482637: 120766 views https://stackoverflow.com/questions/20673986: 115720 views https://stackoverflow.com/questions/39109817: 108368 views https://stackoverflow.com/questions/11057219: 105175 views https://stackoverflow.com/questions/43195143: 101878 views
您已成功使用 BigQuery C# 用戶端程式庫查詢公開資料集。
Go
在 Cloud Shell 中,建立新的 Go 專案和檔案:
mkdir bigquery-go-quickstart \ && touch \ bigquery-go-quickstart/app.go
這個指令會建立名為
bigquery-go-quickstart的 Go 專案及名為app.go的檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-go-quickstart
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd bigquery-go-quickstart
建立
go.mod檔案:go mod init quickstart
輸出結果會與下列內容相似:
go: creating new go.mod: module quickstart go: to add module requirements and sums: go mod tidy安裝 Go 專用的 BigQuery 用戶端程式庫:
go get cloud.google.com/go/bigquery
輸出結果會與下列內容相似:為簡化輸出結果,這裡省略了幾行內容。
go: downloading cloud.google.com/go/bigquery v1.49.0 go: downloading cloud.google.com/go v0.110.0 ... go: added cloud.google.com/go/bigquery v1.49.0 go: added cloud.google.com/go v0.110.0
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERY-GO-QUICKSTART專案。點選
app.go,開啟這個檔案。接著請將下列程式碼複製到
app.go檔案中,依據bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數:點選「Open Terminal」(開啟終端機)。
在終端機中執行
app.go指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。go run app.go
結果大致如下:
https://stackoverflow.com/questions/35159967 : 170023 views https://stackoverflow.com/questions/22879669 : 142581 views https://stackoverflow.com/questions/10604135 : 132406 views https://stackoverflow.com/questions/44564887 : 128781 views https://stackoverflow.com/questions/27060396 : 127008 views https://stackoverflow.com/questions/12482637 : 120766 views https://stackoverflow.com/questions/20673986 : 115720 views https://stackoverflow.com/questions/39109817 : 108368 views https://stackoverflow.com/questions/11057219 : 105175 views https://stackoverflow.com/questions/43195143 : 101878 views
您已成功使用 BigQuery Go 用戶端程式庫查詢公開資料集。
Java
在 Cloud Shell 中,使用 Apache Maven 建立新的 Java 專案:
mvn archetype:generate \ -DgroupId=com.google.app \ -DartifactId=bigquery-java-quickstart \ -DinteractiveMode=false
這個指令會建立名為
bigquery-java-quickstart的 Maven 專案。輸出結果大致如下。為簡化輸出結果,這裡省略了幾行內容。
[INFO] Scanning for projects... ... [INFO] Building Maven Stub Project (No POM) 1 ... [INFO] BUILD SUCCESS ...
除了 Maven,還有許多依附元件管理系統可以使用。如要進一步瞭解如何設定 Java 開發環境,以搭配用戶端程式庫使用,請參閱這份說明文件。
重新命名 Maven 預設建立的
App.java檔案:mv \ bigquery-java-quickstart/src/main/java/com/google/app/App.java \ bigquery-java-quickstart/src/main/java/com/google/app/SimpleApp.java
開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-java-quickstart
如果出現提示,詢問是否要同步處理 Java 類別路徑或設定,請點選「Always」(一律)。
若在本逐步操作說明課程中,未看到提示或未發生類別路徑相關錯誤,請按照下列步驟操作:
- 依序點選「File」>「Preferences」>「Open Settings (UI)」。
- 依序點選「Extensions」>「Java」。
- 捲動至「Configuration: Update Build Configuration」,然後選取「automatic」。
在「Explorer」窗格中,找出
BIGQUERY-JAVA-QUICKSTART專案。點開
pom.xml檔案。找到
<dependencies>標記,在現有依附元件的後方新增下列依附元件。請勿替換任何現有的依附元件。<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-bigquery</artifactId> </dependency>在結尾標記
</dependencies>的後面那行新增下列內容:<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.1.5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>在「Explorer」窗格中,找到
BIGQUERY-JAVA-QUICKSTART專案,然後依序點選「src」>「main/java/com/google/app」>「SimpleApp.java」。檔案會隨即開啟。如要針對
bigquery-public-data.stackoverflow資料集建立查詢,請保留檔案的第一行package com.google.app;,然後將其他內容改成下列程式碼:此查詢會傳回前 10 個最常觀看的 Stack Overflow 頁面及其觀看次數。
對「SimpleApp.java」按一下滑鼠右鍵,然後點選「Run Java」。如果系統提示您授權 Cloud Shell 並同意條款,請點選「Authorize」(授權)。
結果大致如下:
https://stackoverflow.com/questions/35159967 : 170023 views https://stackoverflow.com/questions/22879669 : 142581 views https://stackoverflow.com/questions/10604135 : 132406 views https://stackoverflow.com/questions/44564887 : 128781 views https://stackoverflow.com/questions/27060396 : 127008 views https://stackoverflow.com/questions/12482637 : 120766 views https://stackoverflow.com/questions/20673986 : 115720 views https://stackoverflow.com/questions/39109817 : 108368 views https://stackoverflow.com/questions/11057219 : 105175 views https://stackoverflow.com/questions/43195143 : 101878 views
您已成功使用 BigQuery Java 用戶端程式庫查詢公開資料集。
Node.js
在 Cloud Shell 中,建立新的 Node.js 專案和檔案:
mkdir bigquery-node-quickstart \ && touch \ bigquery-node-quickstart/app.js
以下指令會建立名為
bigquery-node-quickstart的 Node.js 專案和app.js檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-node-quickstart
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd bigquery-node-quickstart
安裝 Node.js 專用的 BigQuery 用戶端程式庫:
npm install @google-cloud/bigquery
輸出結果會與下列內容相似:
added 63 packages in 2s
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERY-NODE-QUICKSTART專案。點選
app.js,開啟這個檔案。接著請將下列程式碼複製到
app.js檔案中,依據bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數:點選「Open Terminal」(開啟終端機)。
在終端機中執行
app.js指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。node app.js結果大致如下:
Query Results: url: https://stackoverflow.com/questions/35159967, 170023 views url: https://stackoverflow.com/questions/22879669, 142581 views url: https://stackoverflow.com/questions/10604135, 132406 views url: https://stackoverflow.com/questions/44564887, 128781 views url: https://stackoverflow.com/questions/27060396, 127008 views url: https://stackoverflow.com/questions/12482637, 120766 views url: https://stackoverflow.com/questions/20673986, 115720 views url: https://stackoverflow.com/questions/39109817, 108368 views url: https://stackoverflow.com/questions/11057219, 105175 views url: https://stackoverflow.com/questions/43195143, 101878 views
您已成功使用 BigQuery Node.js 用戶端程式庫查詢公開資料集。
PHP
在 Cloud Shell 中,建立新的 PHP 專案和檔案:
mkdir bigquery-php-quickstart \ && touch \ bigquery-php-quickstart/app.php
這個指令會建立名為
bigquery-php-quickstart的 PHP 專案和app.php檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-php-quickstart
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd bigquery-php-quickstart
安裝 PHP 專用的 BigQuery 用戶端程式庫:
composer require google/cloud-bigquery
輸出內容大致如下。為簡化輸出結果,這裡省略了幾行內容。
Running composer update google/cloud-bigquery Loading composer repositories with package information Updating dependencies ... No security vulnerability advisories found Using version ^1.24 for google/cloud-bigquery
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERY-PHP-QUICKSTART專案。點選
app.php,開啟這個檔案。接著請將下列程式碼複製到
app.php檔案中,依據bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數:點選「Open Terminal」(開啟終端機)。
在終端機中執行
app.php指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。php app.php結果大致如下:
--- Row 1 --- url: https://stackoverflow.com/questions/35159967, 170023 views --- Row 2 --- url: https://stackoverflow.com/questions/22879669, 142581 views --- Row 3 --- url: https://stackoverflow.com/questions/10604135, 132406 views --- Row 4 --- url: https://stackoverflow.com/questions/44564887, 128781 views --- Row 5 --- url: https://stackoverflow.com/questions/27060396, 127008 views --- Row 6 --- url: https://stackoverflow.com/questions/12482637, 120766 views --- Row 7 --- url: https://stackoverflow.com/questions/20673986, 115720 views --- Row 8 --- url: https://stackoverflow.com/questions/39109817, 108368 views --- Row 9 --- url: https://stackoverflow.com/questions/11057219, 105175 views --- Row 10 --- url: https://stackoverflow.com/questions/43195143, 101878 views Found 10 row(s)
您已成功使用 BigQuery PHP 用戶端程式庫查詢公開資料集。
Python
在 Cloud Shell 中,建立新的 Python 專案和檔案:
mkdir bigquery-python-quickstart \ && touch \ bigquery-python-quickstart/app.py
這個指令會建立名為
bigquery-python-quickstart的 Python 專案和app.py檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-python-quickstart
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd bigquery-python-quickstart
安裝 Python 專用的 BigQuery 用戶端程式庫:
pip install --upgrade google-cloud-bigquery
輸出內容大致如下:為簡化輸出結果,這裡省略了幾行內容。
Installing collected packages: google-cloud-bigquery ... Successfully installed google-cloud-bigquery-3.9.0 ...
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERY-PYTHON-QUICKSTART專案。點選
app.py,開啟這個檔案。接著請將下列程式碼複製到
app.py檔案中,依據bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數:點選「Open Terminal」(開啟終端機)。
在終端機中執行
app.py指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。python app.py結果大致如下:
https://stackoverflow.com/questions/35159967 : 170023 views https://stackoverflow.com/questions/22879669 : 142581 views https://stackoverflow.com/questions/10604135 : 132406 views https://stackoverflow.com/questions/44564887 : 128781 views https://stackoverflow.com/questions/27060396 : 127008 views https://stackoverflow.com/questions/12482637 : 120766 views https://stackoverflow.com/questions/20673986 : 115720 views https://stackoverflow.com/questions/39109817 : 108368 views https://stackoverflow.com/questions/11057219 : 105175 views https://stackoverflow.com/questions/43195143 : 101878 views
您已成功使用 BigQuery Python 用戶端程式庫查詢公開資料集。
Ruby
在 Cloud Shell 中,建立新的 Ruby 專案和檔案:
mkdir bigquery-ruby-quickstart \ && touch \ bigquery-ruby-quickstart/app.rb
這個指令會建立名為
bigquery-ruby-quickstart的 Ruby 專案和app.rb檔案。開啟 Cloud Shell 編輯器:
cloudshell workspace bigquery-ruby-quickstart
接著要在 Cloud Shell 編輯器中開啟終端機,請點選「Open Terminal」(開啟終端機)。
開啟專案目錄:
cd bigquery-ruby-quickstart
安裝 Ruby 專用的 BigQuery 用戶端程式庫:
gem install google-cloud-bigquery
輸出內容會類似如下。為簡化輸出結果,這裡省略了幾行內容。
23 gems installed
點選「Open Editor」(開啟編輯器)。
在「Explorer」窗格中,找出
BIGQUERY-RUBY-QUICKSTART專案。點選
app.rb,開啟這個檔案。接著請將下列程式碼複製到
app.rb檔案中,依據bigquery-public-data.stackoverflow資料集建立查詢,讓系統傳回瀏覽量最高的前 10 個 Stack Overflow 頁面和相應瀏覽次數:點選「Open Terminal」(開啟終端機)。
在終端機中執行
app.rb指令碼。如果系統提示您授權 Cloud Shell 並同意條款,請按一下「Authorize」(授權)。ruby app.rb結果大致如下:
https://stackoverflow.com/questions/35159967: 170023 views https://stackoverflow.com/questions/22879669: 142581 views https://stackoverflow.com/questions/10604135: 132406 views https://stackoverflow.com/questions/44564887: 128781 views https://stackoverflow.com/questions/27060396: 127008 views https://stackoverflow.com/questions/12482637: 120766 views https://stackoverflow.com/questions/20673986: 115720 views https://stackoverflow.com/questions/39109817: 108368 views https://stackoverflow.com/questions/11057219: 105175 views https://stackoverflow.com/questions/43195143: 101878 views
您已成功使用 BigQuery Ruby 用戶端程式庫查詢公開資料集。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收費,請刪除 Google Cloud 專案,或刪除您在本逐步操作說明課程中建立的資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
刪除專案的方法如下:
- 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
刪除資源
如果使用現有專案,請刪除稍早建立的資源:
C#
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
BigQueryCsharpDemo資料夾:rm -R BigQueryCsharpDemo
-R旗標會刪除資料夾中的所有資產。
Go
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-go-quickstart資料夾:rm -R bigquery-go-quickstart
-R旗標會刪除資料夾中的所有資產。
Java
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-java-quickstart資料夾:rm -R bigquery-java-quickstart
-R旗標會刪除資料夾中的所有資產。
Node.js
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-node-quickstart資料夾:rm -R bigquery-node-quickstart
-R旗標會刪除資料夾中的所有資產。
PHP
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-php-quickstart資料夾:rm -R bigquery-php-quickstart
-R旗標會刪除資料夾中的所有資產。
Python
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-python-quickstart資料夾:rm -R bigquery-python-quickstart
-R旗標會刪除資料夾中的所有資產。
Ruby
在 Cloud Shell 中,移至上一層目錄:
cd ..
刪除您建立的
bigquery-ruby-quickstart資料夾:rm -R bigquery-ruby-quickstart
-R旗標會刪除資料夾中的所有資產。
後續步驟
- 進一步瞭解如何使用 BigQuery 用戶端程式庫。
- 進一步瞭解 BigQuery 公開資料集。
- 瞭解如何將資料載入 BigQuery。
- 進一步瞭解如何在 BigQuery 查詢資料。
- 掌握 BigQuery 最新消息。
- 瞭解 BigQuery 定價。
- 瞭解 BigQuery 配額與限制。