列出資料集

本文件說明如何在 BigQuery 中列出資料集。

您可以透過以下方式列出資料集:

  • 使用 GCP 主控台或傳統 BigQuery 網頁版 UI
  • 使用 bq ls CLI 指令
  • 呼叫 datasets.list API 方法。
  • 使用用戶端程式庫

必要權限

當您列出資料集時,只會傳回您擁有 bigquery.datasets.get 權限的資料集。以下是具有 bigquery.datasets.get 權限的預先定義 Cloud IAM 角色:

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

如要進一步瞭解 BigQuery 中的 Cloud IAM 角色和權限,請參閱存取權控管一文。

列出專案中的資料集

如要列出專案中的資料集:

Console

「Resources」(資源) 窗格中會依專案列出資料集。

傳統版 UI

網頁版 UI 的導覽窗格中會依專案列出資料集。

CLI

發出 bq ls 指令來依資料集 ID 列出資料集。--format 標記可用來控管輸出內容。如果您要列出預設專案以外的專案資料集,請將 --project_id 標記新增至該指令。

如果要列出專案中包括匿名資料集在內的所有資料集,請使用 --all 標記或 -a 捷徑。

如果要列出專案中除了匿名資料集以外的所有資料集,請使用 --datasets 標記或 -d 捷徑。這個標記是選用的,匿名資料集預設為不列出。

其他標記包括:

  • --filter:列出符合篩選器運算式的資料集。以空格分隔的方式列出標籤鍵和值,格式為 labels.key:value。如要進一步瞭解如何使用標籤篩選資料集,請參閱新增及使用標籤相關說明。
  • --max_results-n:用來表示結果數量上限的整數。預設值為 50
bq ls --filter labels.key:value \
--max_results integer \
--format=prettyjson \
--project_id project_id

其中:

  • 「key:value」為標籤鍵和值。
  • 「integer」是代表要列出資料集數量的整數。
  • 「project_id」是您的專案名稱。

範例:

輸入下列指令,列出預設專案中的資料集。-- format 已設為「pretty」,藉此傳回基本格式的資料表。

bq ls --format=pretty

輸入下列指令,列出 myotherproject 中的資料集。--format 已設為「prettyjson」,藉此傳回 JSON 格式的詳細結果。

bq ls --format=prettyjson --project_id myotherproject

輸入下列指令,列出預設專案中的所有資料集 (包括匿名資料集)。在輸出內容中,匿名資料集的名稱會以底線開頭。

bq ls -a

輸入下列指令,從預設專案傳回超過預設 50 個的輸出資料集。

bq ls --max_results 60

輸入下列指令,列出預設專案中附有 org:dev 標籤的資料集。

ba ls --filter labels.org:dev

API

如要使用 API 列出資料集,請呼叫 datasets.list API 方法。

C#

在試用這個範例程式之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 C# 設定說明進行操作。詳情請參閱 BigQuery C# API 參考說明文件


using Google.Cloud.BigQuery.V2;
using System;
using System.Collections.Generic;
using System.Linq;

public class BigQueryListDatasets
{
    public void ListDatasets(
        string projectId = "your-project-id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        // Retrieve list of datasets in project
        List<BigQueryDataset> datasets = client.ListDatasets().ToList();
        // Display the results
        if (datasets.Count > 0)
        {
            Console.WriteLine($"Datasets in project {projectId}:");
            foreach (var dataset in datasets)
            {
                Console.WriteLine($"\t{dataset.Reference.DatasetId}");
            }
        }
        else
        {
            Console.WriteLine($"{projectId} does not contain any datasets.");
        }
    }
}

Go

在試行此示例之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Go 設定說明進行操作。詳情請參閱 BigQuery Go API 參考說明文件

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
it := client.Datasets(ctx)
for {
	dataset, err := it.Next()
	if err == iterator.Done {
		break
	}
	fmt.Println(dataset.DatasetID)
}

Java

在試行此示例之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件

// List datasets in the default project
Page<Dataset> datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
for (Dataset dataset : datasets.iterateAll()) {
  // do something with the dataset
}
// List datasets in a specified project
Page<Dataset> datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
for (Dataset dataset : datasets.iterateAll()) {
  // do something with the dataset
}

Node.js

在試用這個範例程式之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Node.js 設定說明進行操作。詳情請參閱 BigQuery Node.js API 參考說明文件

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function listDatasets() {
  // Lists all datasets in current GCP project.

  // Lists all datasets in the specified project
  const [datasets] = await bigquery.getDatasets();
  console.log('Datasets:');
  datasets.forEach(dataset => console.log(dataset.id));
}

PHP

在試行此示例之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 PHP 設定說明進行操作。詳情請參閱 BigQuery PHP API 參考說明文件

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId  = 'The Google project ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$datasets = $bigQuery->datasets();
foreach ($datasets as $dataset) {
    print($dataset->id() . PHP_EOL);
}

Python

在試行這個示例前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Python 設定說明進行操作。詳情請參閱 BigQuery Python API 參考說明文件

from google.cloud import bigquery

# TODO(developer): Construct a BigQuery client object.
# client = bigquery.Client()

datasets = list(client.list_datasets())
project = client.project

if datasets:
    print("Datasets in project {}:".format(project))
    for dataset in datasets:  # API request(s)
        print("\t{}".format(dataset.dataset_id))
else:
    print("{} project does not contain any datasets.".format(project))

Ruby

在試用這個範例程式之前,請至 BigQuery 快速入門導覽課程:使用用戶端程式庫,按照 Ruby 設定說明進行操作。詳情請參閱 BigQuery Ruby API 參考說明文件

require "google/cloud/bigquery"

def list_datasets project_id = "your-project-id"
  bigquery = Google::Cloud::Bigquery.new project: project_id

  puts "Datasets in project #{project_id}:"
  bigquery.datasets.each do |dataset|
    puts "\t#{dataset.dataset_id}"
  end
end

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁