BigQuery API V2(Java)を使用して、
BigQueryのデータセットを取得する方法
についてご紹介します。
取得可能なデータセットはAPIで使用するメールアドレス
(サービスアカウントメールアドレス or OAuth2.0認証を行うメールアドレス)
からのアクセス権限が付与されているものだけです。
権限付与に関しては
⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)
を参照ください。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。
No | 目次 | |
---|---|---|
1 | データセット一覧を取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 | |
2 | データセットを取得 | |
1 | スコープ | |
2 | 実行 | |
3 | レスポンスの内容 |
1. データセット一覧を取得
指定したプロジェクトのデータセット一覧を取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.CLOUD_PLATFORM_READ_ONLY
https://www.googleapis.com/auth/bigquery.readonly
⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Bigquery bigquery = getBigquery();
Bigquery.Datasets datasets = bigquery.datasets();
Bigquery.Datasets.List list = datasets.list("プロジェクトID");
DatasetList res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets
が実行されます。
1.2.2. クエリパラメータ
Bigquery.Datasets.Listのsetメソッドにより、クエリパラメータを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setMaxResults | Integer | 結果の最大数 |
setPageToken | String | 取得するページトークン |
setAll | Boolean | 非表示のデータセットを含むか |
setFilter | String | 結果をラベルでフィルタリングするための式 形式:"labels.<名前>[:<値>]" |
1.3. レスポンスの内容
DatasetList
メソッド | 戻り値 | 説明 |
---|---|---|
getKind | String | リソースの種類 固定文字列:"bigquery#datasetList" |
getNextPageToken | String | 次のページトークン |
getEtag | String | 結果ページのハッシュ値 |
getDatasets | List<DatasetList.Datasets> | プロジェクト内のデータセット |
DatasetList.Datasets
メソッド | 戻り値 | 説明 |
---|---|---|
getId | String | プロジェクト名を含むデータセットID 形式:「プロジェクト名:データセットID」 |
getKind | String | リソースの種類 固定文字列:"bigquery#dataset" |
getDatasetReference | DatasetReference | データセット参照 |
getLabels | Map<String,String> | このデータセットに関連付けられたラベル |
getFriendlyName | String | データセットの代替名 |
getLocation | String | データセットのロケーション |
DatasetReference
メソッド | 戻り値 | 説明 |
---|---|---|
getDatasetId | String | データセットID |
getProjectId | String | プロジェクトID |
2. データセットを取得
指定したデータセットのメタデータを取得します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.CLOUD_PLATFORM_READ_ONLY
https://www.googleapis.com/auth/bigquery.readonly
⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。
2.2. 実行
データセットIDは、DatasetReferenceのgetDatasetId()で取得できる値を使用します。
public static void main(String[] args) throws Exception{
Bigquery bigquery = getBigquery();
Bigquery.Datasets datasets = bigquery.datasets();
Bigquery.Datasets.Get list = datasets.get("プロジェクトID","データセットID");
Dataset res = list.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
GET: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets/{データセットID}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
Dataset
メソッド | 戻り値 | 説明 |
---|---|---|
getId | String | プロジェクト名を含むデータセットID 形式:「プロジェクト名:データセットID」 |
getEtag | String | 結果ページのハッシュ値 |
getKind | String | リソースの種類 固定文字列:"bigquery#dataset" |
getLocation | String | データセットのロケーション |
getSelfLink | String | リソースにアクセスするために使用できるURL |
getLabels | Map<String,String> | このデータセットに関連付けられたラベル |
getDatasetReference | DatasetReference | データセット参照 |
getFriendlyName | String | データセットの代替名 |
getDescription | String | データセットのわかりやすい説明 |
getType | String | データセットのタイプ |
getDefaultTableExpirationMs | Long | データセット内のすべてのテーブルのデフォルトの存続期間(ミリ秒) |
getDefaultPartitionExpirationMs | Long | デフォルトのパーティションの有効期限(ミリ秒) |
getAccess | List<Dataset.Access> | エンティティのデータセット |
getCreationTime | Long | データセットが作成された時刻(ミリ秒) |
getLastModifiedTime | Long | データセットが最後に変更された日付(ミリ秒) |
getDefaultEncryptionConfiguration | EncryptionConfiguration | データセット内のすべてのテーブルのデフォルトの暗号化キー |
getLinkedDatasetSource | LinkedDatasetSource | 【getType()がLINKEDの場合】 データセット参照 |
getExternalDatasetReference | ExternalDatasetReference | 【getType()がEXTERNALの場合】 データセット参照 |
getIsCaseInsensitive | Boolean | データセットとそのテーブル名が大文字と小文字を区別しないか |
getDefaultCollation | String | データセット内に今後作成されるテーブルのデフォルトの照合仕様 "und:ci"(ロケールは不明、文字の大小区別なし)、""(空の文字列。文字の大小区別あり) |
getDefaultRoundingMode | RoundingMode(enum) | このデータセット内で作成される新しいテーブルのデフォルトの丸めモード仕様 |
getMaxTimeTravelHours | Long | タイムトラベルウィンドウの定義(時間) |
getTags | List<Dataset.Tags> | データセットのタグ |
getStorageBillingModel | StorageBillingModel(enum) | 課金モデル |
Dataset.Access
メソッド | 戻り値 | 説明 |
---|---|---|
getRole | String | IAMロールID |
getUserByEmail | String | アクセス許可するメールアドレス(サービスアカウントメールアドレス or OAuth2.0認証を行うメールアドレス) |
getGroupByEmail | String | アクセス許可するグループのメールアドレス |
getDomain | String | アクセス許可するドメイン |
getSpecialGroup | String | アクセス許可する特別なグループ |
getIamMember | String | IAMポリシーに表示されるユーザー、グループ、ドメイン、または特別なグループではない他のタイプのメンバー |
getView | TableReference | アクセスを許可する別のデータセットからのビュー |
getRoutine | RoutineReference | アクセスを許可する別のデータセットのルーティン |
getDataset | DatasetAccessEntry | データセットへの読み取りアクセス許可 |
TableReference
メソッド | 戻り値 | 説明 |
---|---|---|
getProjectId | String | プロジェクトID |
getDatasetId | String | データセットID |
getTableId | String | テーブルID |
RoutineReference
メソッド | 戻り値 | 説明 |
---|---|---|
getProjectId | String | プロジェクトID |
getDatasetId | String | データセットID |
getRoutineId | String | ルーティンID |
DatasetAccessEntry
メソッド | 戻り値 | 説明 |
---|---|---|
getDataset | DatasetReference | このエントリが適用されるデータセット |
getTargetTypes | List<TargetType(enum)> | このエントリが適用されるデータセット内のリソース |
Dataset.Tags
メソッド | 戻り値 | 説明 |
---|---|---|
getTagKey | String | タグキーの名前空間付きフレンドリ名 |
getTagValue | String | タグ値の短縮名 |
EncryptionConfiguration
メソッド | 戻り値 | 説明 |
---|---|---|
getKmsKeyName | String | CloudKMS暗号化キー |
LinkedDatasetSource
メソッド | 戻り値 | 説明 |
---|---|---|
getSourceDataset | DatasetReference | ソースデータセット参照 |
ExternalDatasetReference
メソッド | 戻り値 | 説明 |
---|---|---|
getExternalSource | String | このデータセットを裏付ける外部ソース |
getConnection | String | externalSourceへのアクセスに使用される接続ID |
RoundingMode
定義値 | 内容 |
---|---|
ROUNDING_MODE_UNSPECIFIED | 設定なし |
ROUND_HALF_AWAY_FROM_ZERO | NUMERIC値とBIGNUMERIC値の書き込み時に精度と位取りを適用するときに、半分の値をゼロから四捨五入する |
ROUND_HALF_EVEN | NUMERIC値とBIGNUMERIC値の書き込み時に精度と位取りを適用するときに、半分の値を最も近い偶数値に丸める |
StorageBillingModel
定義値 | 内容 |
---|---|
STORAGE_BILLING_MODEL_UNSPECIFIED | 設定なし |
LOGICAL | 論理バイトに対する課金 |
PHYSICAL | 物理バイトに対する課金 |
TargetType
定義値 | 内容 |
---|---|
TARGET_TYPE_UNSPECIFIED | 未使用(使用不可) |
VIEWS | このエントリはデータセット内のビューに適用 |
データセットのタイプ
定義値 | 内容 |
---|---|
DEFAULT | 所有者と承認されたアカウントのみがアクセス可能なデータセット |
PUBLIC | 誰でもアクセス可能なデータセット |
LINKED | リンクされたデータセット |
EXTERNAL | 外部メタデータカタログに定義されているデータセット |
おしまい。。