このドキュメントでは、BigQuery でデータセットの情報やメタデータを取得する方法について説明します。
データセット情報は次の方法で取得できます。
- Cloud Console の使用
bq
コマンドライン ツールでbq show
コマンドを使用する。datasets.get
API メソッドを呼び出すINFORMATION_SCHEMA
ビューのクエリを実行する(ベータ版)。- クライアント ライブラリを使用する。
必要な権限
データセットに関する情報またはメタデータを取得するには、少なくとも bigquery.datasets.get
権限が付与されている必要があります。次の IAM 事前定義ロールには bigquery.datasets.get
権限が含まれています。
bigquery.user
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataOwner
bigquery.dataEditor
bigquery.admin
BigQuery での IAM ロールと権限の詳細については、アクセス制御をご覧ください。
データセットの情報の取得
プロジェクト内のデータセットに関する情報を取得するには:
Console
[リソース] パネルでデータセット名をクリックします。[クエリエディタ] の下に、データセットの説明と詳細が表示されます。データセットのテーブルは、[リソース] パネル内のデータセット名の下に入れ子になっています。
デフォルトでは、匿名データセットは Cloud Console に表示されません。匿名データセットの情報を表示するには、bq
コマンドライン ツールまたは API を使用します。
bq
bq show
コマンドを発行します。--format
フラグを使用して出力を制御できます。デフォルト以外のプロジェクトにあるデータセットの情報を取得する場合は、project_id:dataset
の形式でプロジェクト ID をデータセットに追加します。
匿名データセットの情報を表示するには、bq ls --all
コマンドを使用してすべてのデータセットをリストし、匿名データセットの名前を bq show
コマンドで使用します。
bq show --format=prettyjson project_id:dataset
以下を置き換えます。
- project_id はプロジェクトの名前です。
- dataset はデータセットの名前です。
例:
次のコマンドを入力して、デフォルト プロジェクトにある mydataset
に関する情報を表示します。
bq show --format=prettyjson mydataset
次のコマンドを入力して、myotherproject
にある mydataset
に関する情報を表示します。
bq show --format=prettyjson myotherproject:mydataset
次のコマンドを入力して、デフォルト プロジェクトにある匿名データセット _1234abcd56efgh78ijkl1234
に関する情報を表示します。
bq show --format=prettyjson _1234abcd56efgh78ijkl1234
API
datasets.get
API メソッドを呼び出し、関連パラメータを指定します。
Go
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Go の手順に従って設定を行ってください。詳細については、BigQuery Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、BigQuery Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、BigQuery クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。
INFORMATION_SCHEMA
(ベータ版)
INFORMATION_SCHEMA
は、データセット、ルーティン、テーブル、ビュー、ジョブ、予約、ストリーミング データに関するメタデータへのアクセスを可能にする一連のビューです。
SCHEMATA
ビュー
INFORMATION_SCHEMA.SCHEMATA
ビューにクエリを実行すると、現在のユーザーがアクセスできるプロジェクトの各データセットが 1 行で返されます。
INFORMATION_SCHEMA.SCHEMATA
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
CATALOG_NAME |
STRING |
データセットを含むプロジェクトの名前 |
SCHEMA_NAME |
STRING |
データセットの名前(datasetId ともいいます) |
SCHEMA_OWNER |
STRING |
値は常に NULL |
CREATION_TIME |
TIMESTAMP |
データセットの作成日時 |
LAST_MODIFIED_TIME |
TIMESTAMP |
データセットの最終更新日時 |
LOCATION |
STRING |
データセットの地理的なロケーション |
例
次の例では、今後の使用のために予約されている schema_owner
を除き、すべての列を INFORMATION_SCHEMA.SCHEMATA
ビューから取得します。デフォルト プロジェクト myproject
内のすべてのデータセットのメタデータが返されます。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、この形式 `project_id`.INFORMATION_SCHEMA.view
でそのプロジェクト ID をデータセットに追加します。例: `myproject`.INFORMATION_SCHEMA.SCHEMATA
クエリを実行するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。SELECT * EXCEPT(schema_owner) FROM INFORMATION_SCHEMA.SCHEMATA
[実行] をクリックします。
bq
query
コマンドで、--nouse_legacy_sql
または --use_legacy_sql=false
フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA
クエリには標準 SQL 構文を使用する必要があります。
クエリを実行するには、次のように入力します。
bq query --nouse_legacy_sql \ 'SELECT * EXCEPT(schema_owner) FROM INFORMATION_SCHEMA.SCHEMATA'
結果は次のようになります。
+----------------+---------------+---------------------+---------------------+-----------------+ | catalog_name | schema_name | creation_time | last_modified_time | location | +----------------+---------------+---------------------+---------------------+-----------------+ | myproject | mydataset1 | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US | | myproject | mydataset2 | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US | | myproject | mydataset3 | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | asia-northeast1 | +----------------+---------------+---------------------+---------------------+-----------------+
SCHEMATA_OPTIONS
ビュー
INFORMATION_SCHEMA.SCHEMATA_OPTIONS
ビューにクエリを実行すると、現在のユーザーがアクセスできるプロジェクトの各データセットが 1 行で返されます。
INFORMATION_SCHEMA.SCHEMATA_OPTIONS
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
CATALOG_NAME |
STRING |
データセットを含むプロジェクトの名前 |
SCHEMA_NAME |
STRING |
データセットの名前(datasetId ともいいます) |
OPTION_NAME |
STRING |
options テーブル内の名前値の 1 つ |
OPTION_TYPE |
STRING |
オプション テーブル内のデータ型の値の 1 つ |
OPTION_VALUE |
STRING |
オプション テーブル内の値のオプションの 1 つ |
オプション テーブル
OPTION_NAME |
OPTION_TYPE |
OPTION_VALUE |
---|---|---|
default_table_expiration_days |
FLOAT64 |
データセット内のすべてのテーブルのデフォルトの有効期間(日数) |
friendly_name |
STRING |
わかりやすいデータセット名 |
description |
STRING |
データセットの説明 |
labels |
ARRAY<STRUCT<STRING, STRING>> |
データセットのラベルを表す STRUCT の配列 |
例
例 1:
次の例では、INFORMATION_SCHEMATA.SCHEMATA_OPTIONS
ビューにクエリを実行して、デフォルト プロジェクト(myproject
)内のすべてのデータセットのデフォルトのテーブル有効期限を取得します。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、この形式 `project_id`.INFORMATION_SCHEMA.view
でそのプロジェクト ID をデータセットに追加します。例: `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
クエリを実行するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name="default_table_expiration_days"
[実行] をクリックします。
bq
query
コマンドで、--nouse_legacy_sql
または --use_legacy_sql=false
フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA
クエリには標準 SQL 構文を使用する必要があります。
クエリを実行するには、次のように入力します。
bq query --nouse_legacy_sql \ 'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name="default_table_expiration_days"'
結果は次のようになります。
+----------------+---------------+-------------------------------+-------------+---------------------+ | catalog_name | schema_name | option_name | option_type | option_value | +----------------+---------------+-------------------------------+-------------+---------------------+ | myproject | mydataset3 | default_table_expiration_days | FLOAT64 | 0.08333333333333333 | | myproject | mydataset2 | default_table_expiration_days | FLOAT64 | 90.0 | | myproject | mydataset1 | default_table_expiration_days | FLOAT64 | 30.0 | +----------------+---------------+-------------------------------+-------------+---------------------+
例 2:
次の例では、INFORMATION_SCHEMATA.SCHEMATA_OPTIONS
ビューにクエリを実行して、デフォルト プロジェクト(myproject
)のすべてのデータセットのラベルを取得します。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、この形式 `project_id`.INFORMATION_SCHEMA.view
でそのプロジェクト ID をデータセットに追加します。例: `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
クエリを実行するには:
Console
Cloud Console で [BigQuery] ページを開きます。
[クエリエディタ] ボックスに、次の標準 SQL クエリを入力します。
INFORMATION_SCHEMA
には標準 SQL 構文を使用する必要があります。標準 SQL は Cloud Console のデフォルトの構文です。SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name="labels"
[実行] をクリックします。
bq
query
コマンドで、--nouse_legacy_sql
または --use_legacy_sql=false
フラグを使用して標準 SQL 構文を指定します。INFORMATION_SCHEMA
クエリには標準 SQL 構文を使用する必要があります。
クエリを実行するには、次のように入力します。
bq query --nouse_legacy_sql \ 'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name="labels"'
結果は次のようになります。
+----------------+---------------+-------------+---------------------------------+------------------------+ | catalog_name | schema_name | option_name | option_type | option_value | +----------------+---------------+-------------+---------------------------------+------------------------+ | myproject | mydataset1 | labels | ARRAY<STRUCT<STRING, STRING>> | [STRUCT("org", "dev")] | | myproject | mydataset2 | labels | ARRAY<STRUCT<STRING, STRING>> | [STRUCT("org", "dev")] | +----------------+---------------+-------------+---------------------------------+------------------------+
次のステップ
- データセットの作成方法について詳しくは、データセットの作成をご覧ください。
- データセットにアクセス制御を割り当てる方法について詳しくは、データセットへのアクセス制御をご覧ください。
- プロジェクト内のデータセットを一覧表示する方法について詳しくは、データセットの一覧表示をご覧ください。
- データセット プロパティの変更方法について詳しくは、データセットの更新をご覧ください。
- ラベルの作成と管理の詳細は、ラベルの作成と管理をご覧ください。
INFORMATION_SCHEMA
の概要については、BigQueryINFORMATION_SCHEMA
の概要をご覧ください。