データ定義言語ステートメントの使用

データ定義言語(DDL)ステートメントを使用すると、標準 SQL クエリ構文を使用して BigQuery リソースを作成および変更できます。現時点では、BigQuery で DDL コマンドを使用して、次の操作を行うことができます。

CREATE TABLE ステートメント

BigQuery でテーブルを作成するには、CREATE TABLE DDL ステートメントを使用します。

構文

{CREATE TABLE | CREATE TABLE IF NOT EXISTS | CREATE OR REPLACE TABLE}
table_name
[(
  column_name column_schema[, ...]
)]
[PARTITION BY partition_expression]
[CLUSTER BY clustering_column_list]
[OPTIONS(table_option_list)]
[AS query_statement]

ここで

{CREATE TABLE | CREATE TABLE IF NOT EXISTS | CREATE OR REPLACE TABLE} は、次のステートメントのいずれかです。

  • CREATE TABLE - 新しいテーブルを作成します。
  • CREATE TABLE IF NOT EXISTS - 指定したデータセット内にそのテーブルが存在しない場合にのみ作成します。
  • CREATE OR REPLACE TABLE - 指定したデータセット内にテーブルを作成し、同じ名前のテーブルが存在する場合は置き換えます。

CREATE TABLE ステートメントは、以下の規則に従う必要があります。

  • 使用できる CREATE ステートメントは 1 つのみ。
  • 列リストと as query_statement 句のいずれかまたは両方が存在する必要がある。
  • 列リストと as query_statement 句の両方が存在する場合、BigQuery は、as query_statement 句内の名前を無視し、列の位置を列リストに一致させる。
  • as query_statement 句が存在し、列リストが存在しない場合、BigQuery は、列の名前と型を as query_statement 句から判断する。
  • 列リストと as query_statement 句のいずれかで、列名が指定されている必要がある。
  • 列名を重複させることはできない。

table_name

table_name は作成するテーブルの名前です。テーブル名はデータセット内で一意である必要があります。テーブル名の要件は次のとおりです。

  • 1,024 文字以内
  • 英字(大文字または小文字)、数字、アンダースコアだけが含まれている

column_namecolumn_schema

(column_name column_schema[, ...]) には、テーブルのスキーマ情報がカンマ区切りリストで含まれています。

  • column_name は、列の名前です。列名の要件は次のとおりです。
    • 英字(大文字または小文字)、数字(0~9)、アンダースコア(_)だけが含まれている
    • 英字またはアンダースコアで始まっている
    • 128 文字以内である
  • column_schemaデータ型に似ていますが、ARRAY 以外の型に対してはオプションの NOT NULL 制約をサポートします。column_schema は、トップレベルの列と STRUCT フィールドのオプションもサポートします。
column_schema :=
   {simple_type [NOT NULL] |
    STRUCT<field_list> [NOT NULL] |
    ARRAY<array_element_schema>}
   [OPTIONS(column_option_list)]

field_list := field_name column_schema [, ...]

array_element_schema := {simple_type | STRUCT<field_list>} [NOT NULL]

simple_typeサポートされている任意のデータ型です(STRUCTARRAY は除きます)。

field_name は、構造体フィールドの名前です。構造体フィールドの名前には列名と同じ制約があります。

列またはフィールドに対して NOT NULL 制約が存在する場合、列またはフィールドは REQUIRED モードで作成されています。逆に、列またはフィールドに対して NOT NULL 制約がない場合、列またはフィールドは NULLABLE モードで作成されています。

ARRAY 型の列およびフィールドでは NOT NULL 修飾子はサポートされていません。たとえば、ARRAY 列に REPEATED モードがあり、空にすることはできますが、NULL にすることはできないため、ARRAY<INT64> NOT NULLcolumn_schema は無効です。NOT NULL 制約が指定されているかどうかに関係なく、テーブル内の配列要素は NULL になることはありません。たとえば、ARRAY<INT64>ARRAY<INT64 NOT NULL> に相当します。

テーブルの column_schemaNOT NULL 属性は、テーブルに対するクエリ経由で伝播されません。テーブル Tx INT64 NOT NULL として宣言されている列が含まれている場合、たとえば、CREATE TABLE dataset.newtable AS SELECT x FROM T では、xNULLABLE である、dataset.newtable という名前のテーブルが作成されます。

column_schema は、CREATE TABLE ステートメントの列定義リストでのみ使用できます。式内の型として使用することはできません。たとえば、CAST(1 AS INT64 NOT NULL) は無効です。

partition_expression

PARTITION BY は、テーブルのパーティショニングを制御するオプションの句です。 partition_expression は、テーブルのパーティショニング方法を決める式です。パーティション式には次の値を使用できます。

  • PARTITION BY DATE(_PARTITIONTIME) - _PARTITIONTIME pseudo column の日付ベースのタイムスタンプを使用してテーブルを分割します。この構文は、AS query_statement 句がない CREATE TABLE でのみサポートされています。
  • PARTITION BY DATE(<timestamp_column>) - TIMESTAMP 列の日付を使用してテーブルを分割します。
  • PARTITION BY <date_column> - DATEを使用してテーブルを分割します。

clustering_column_list

CLUSTER BY は、テーブルのクラスタ化を制御するオプションの句です。 clustering_column_list は、テーブルのクラスタ化方法を決めるカンマ区切りのリストです。クラスタ化列リストには、4 個までのクラスタ化列を含めることができます。

table_option_list

table_option_list を使用すると、ラベルや有効期限などの省略可能な追加のテーブル オプションを指定できます。カンマ区切りリストを使用して複数のオプションを含めることができます。

テーブル オプション リストは次の形式で指定します。

NAME=VALUE, ...

NAMEVALUE は、次のいずれかの組み合わせである必要があります。

NAME VALUE 詳細
expiration_timestamp TIMESTAMP

例: expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC"

このプロパティは、expirationTime テーブル リソース プロパティと同等です。

partition_expiration_days

FLOAT64

例: partition_expiration_days=7

このプロパティは、timePartitioning.expirationMs テーブル リソース プロパティと同等ですが、単位はミリ秒ではなく日数です。1 日は 86,400,000 ミリ秒または 24 時間に相当します。

このプロパティは、分割テーブルを作成する場合にのみ使用できます。

require_partition_filter

BOOL

例: require_partition_filter=true

このプロパティは、timePartitioning.requirePartitionFilter テーブル リソース プロパティと同等です。

このプロパティは、分割テーブルを作成する場合にのみ使用できます。

kms_key_name

STRING

例: kms_key_name="projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"

このプロパティは、encryptionConfiguration.kmsKeyName テーブル リソース プロパティと同等です。

詳細については、Cloud KMS 鍵によるデータの保護をご覧ください。

friendly_name

STRING

例: friendly_name="my_table"

このプロパティは、friendlyName テーブル リソース プロパティと同等です。

description

STRING

例: description="a table that expires in 2020"

このプロパティは、description テーブル リソース プロパティと同等です。

labels

ARRAY<STRUCT<STRING, STRING>>

例: labels=[("org_unit", "development")]

このプロパティは、labels テーブル リソース プロパティと同等です。

VALUE は、リテラル、クエリ パラメータ、およびスカラー関数のみを含む定数式です。定数式が null と評価された場合、対応するオプション NAME は無視されます。定数式には以下を含めることはできません

  • テーブルへの参照
  • サブクエリ、または SELECTCREATEUPDATE などの SQL 文
  • ユーザー定義関数、集計関数、または分析関数
  • 以下のスカラー関数
    • ARRAY_TO_STRING
    • REPLACE
    • REGEXP_REPLACE
    • RAND
    • FORMAT
    • LPAD
    • RPAD
    • REPEAT
    • SESSION_USER
    • GENERATE_ARRAY
    • GENERATE_DATE_ARRAY

column_option_list

column_schema 内で column_option_list を使用すると、省略可能な列またはフィールドのオプションを指定できます。列のオプションの構文と要件はテーブル オプションの場合と同じですが、NAMEVALUE のリストは異なります。

NAME VALUE 詳細
description

STRING

例: description="a unique id"

このプロパティは、schema.fields[].description テーブル リソース プロパティと同等です。

query_statement

AS query_statement 句は、作成されるテーブルからのクエリを指定します。query_statement でサポートされる形式については、SQL 構文リファレンスをご覧ください。

既知の制限事項:

  • クエリ結果から取り込み時間分割テーブルを作成することはできません。代わりに、CREATE TABLE DDL ステートメントを使用して取り込み時間分割テーブルを作成した後に、INSERT DML ステートメントを使用してそのテーブルにデータを挿入します。
  • OR REPLACE 修飾子を使用してテーブルを別の種類のパーティショニングで置き換えることはできません。代わりに、テーブルに対して DROP を行った後に、CREATE TABLE ... AS SELECT ... ステートメントを使用してテーブルを再作成します。

CREATE TABLE の例

新しいテーブルの作成

CREATE TABLE DDL ステートメントは、指定されたオプションでテーブルを作成します。テーブル名がデータセット内に存在する場合は、次のエラーが返されます。

Already Exists: [PROJECT]:[DATASET].[TABLE]

次の例は、mydataset 内に newtable という名前の分割テーブルを作成します。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

partition_expression 式(PARTITION BY DATE(_PARTITIONTIME))を使用してテーブルを分割します。この式は、_PARTITIONTIME 擬似列の日付ベースのタイムスタンプを使用してテーブルを分割します。

テーブル スキーマには次の 2 つの列があります。

  • x - 整数と、「オプション INTEGER 型フィールド」の説明
  • y - 次の 2 つの列が含まれる STRUCT

    • a - 文字列の配列と、「繰り返し STRING 型フィールド」の説明
    • b - ブール値

テーブル オプション リストで指定する内容は次のとおりです。

  • テーブルの有効期限 - 2020 年 1 月 1 日 00:00:00 UTC
  • パーティションの有効期限 - 1 日
  • 説明 - 2020 年に期限が切れるテーブル
  • ラベル - org_unit = development

DDL を使用して新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.newtable
     (
       x INT64 OPTIONS(description="An optional INTEGER field"),
       y STRUCT<
         a ARRAY<STRING> OPTIONS(description="A repeated STRING field"),
         b BOOL
       >
     )
     PARTITION BY DATE(_PARTITIONTIME)
     OPTIONS(
       expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
       partition_expiration_days=1,
       description="a table that expires in 2020, with each partition living for 24 hours",
       labels=[("org_unit", "development")]
     )
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.newtable
(
  x INT64 OPTIONS(description="An optional INTEGER field"),
  y STRUCT<
    a ARRAY<STRING> OPTIONS(description="A repeated STRING field"),
    b BOOL
  >
)
PARTITION BY DATE(_PARTITIONTIME)
OPTIONS(
  expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
  partition_expiration_days=1,
  description="a table that expires in 2020, with each partition living for 24 hours",
  labels=[("org_unit", "development")]
)'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

既存のテーブルからの新しいテーブルの作成

CREATE TABLE ... AS SELECT DDL ステートメントは、クエリからテーブルを作成します。テーブル名がデータセット内に存在する場合は、次のエラーが返されます。

Already Exists: [PROJECT]:[DATASET].[TABLE]

次の例は、mydataset 内に top_words という名前のテーブルを作成します。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.rainy_days`)。

テーブル スキーマには次の 2 つの列があります。

  • corpus - シェイクスピア全集の名前
  • top_words - wordSTRING)と word_count(単語数を表す INT64)の 2 つのフィールドを持つ STRUCTARRAY

テーブル オプション リストで指定する内容は次のとおりです。

  • 説明 - シェイクスピア全集で使用されている上位 10 単語

DDL を使用して新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.top_words
     OPTIONS(
       description="Top ten words per Shakespeare corpus"
     ) AS
     SELECT
       corpus,
       ARRAY_AGG(STRUCT(word, word_count) ORDER BY word_count DESC LIMIT 10) AS top_words
     FROM bigquery-public-data.samples.shakespeare
     GROUP BY corpus;

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
     CREATE TABLE mydataset.top_words
     OPTIONS(
       description="Top ten words per Shakespeare corpus"
     ) AS
     SELECT
       corpus,
       ARRAY_AGG(STRUCT(word, word_count)
                 ORDER BY word_count DESC LIMIT 10) AS top_words
     FROM bigquery-public-data.samples.shakespeare
     GROUP BY corpus;'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

テーブルが存在しない場合にのみテーブルを作成

CREATE TABLE IF NOT EXISTS DDL ステートメントは、テーブル名がデータセットに存在しない場合にのみ、指定されたオプションでテーブルを作成します。テーブル名がデータセットに存在する場合、エラーは返されず、アクションも実行されません。

次の例は、mydataset 内に newtable という名前のテーブルが存在しない場合にのみ、mydataset 内に newtable という名前のテーブルを作成します。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

テーブル スキーマには次の 2 つの列があります。

  • x - 整数
  • y - a(文字列の配列)と b(ブール値)を持つ STRUCT

テーブル オプション リストで指定する内容は次のとおりです。

  • 有効期限 - 2020 年 1 月 1 日 00:00:00 UTC
  • 説明 - 2020 年に期限が切れるテーブル
  • ラベル - org_unit = development

テーブル名がデータセットに存在しない場合にのみ DDL を使用して新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE IF NOT EXISTS mydataset.newtable (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
     OPTIONS(
       expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
       description="a table that expires in 2020",
       labels=[("org_unit", "development")]
     )
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE IF NOT EXISTS mydataset.newtable (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
 OPTIONS(
   expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
   description="a table that expires in 2020",
   labels=[("org_unit", "development")]
 )'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

テーブルの作成または置換

CREATE OR REPLACE TABLE DDL ステートメントは、指定されたオプションでテーブルを作成します。テーブル名がデータセット内に存在する場合、そのテーブルは空のテーブルで上書きされます。

次の例は、mydataset 内に newtable という名前のテーブルを作成し、mydataset 内に newtable が存在する場合はそれを上書きします。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

テーブル スキーマには次の 2 つの列があります。

  • x - 整数
  • y - a(文字列の配列)と b(ブール値)を持つ STRUCT

テーブル オプション リストで指定する内容は次のとおりです。

  • 有効期限 - 2020 年 1 月 1 日 00:00:00 UTC
  • 説明 - 2020 年に期限が切れるテーブル
  • ラベル - org_unit = development

DDL を使用して新しいテーブルを作成し、同じ名前のテーブルを上書きするには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE OR REPLACE TABLE mydataset.newtable (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
     OPTIONS(
       expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
       description="a table that expires in 2020",
       labels=[("org_unit", "development")]
     )
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE OR REPLACE TABLE mydataset.newtable (x INT64, y STRUCT<a ARRAY<STRING>, b BOOL>)
 OPTIONS(
   expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC",
   description="a table that expires in 2020",
   labels=[("org_unit", "development")]
 )'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

REQUIRED 列を持つテーブルの作成

NOT NULL ステートメントの列定義リスト内の CREATE TABLE 修飾子は、列またはフィールドが REQUIRED モードで作成されることを指定します。

次の例は、mydataset 内に newtable という名前のテーブルを作成します。テーブル名がデータセット内に存在する場合は、次のエラーが返されます。

Already Exists: [PROJECT]:[DATASET].[TABLE]

デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

テーブル スキーマには次の 3 つの列があります。

  • x - REQUIRED 整数
  • y - a(文字列の配列)、b(REQUIRED ブール値)、c(NULLABLE float)を持つ REQUIRED STRUCT
  • z - NULLABLE 文字列

DDL を使用して REQUIRED 列を持つ新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE my_dataset.new_table (
       x INT64 NOT NULL,
       y STRUCT<
         a ARRAY<STRING>,
         b BOOL NOT NULL,
         c FLOAT64
       > NOT NULL,
       z STRING
     )
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
 CREATE TABLE my_dataset.new_table (
   x INT64 NOT NULL,
   y STRUCT<
     a ARRAY<STRING>,
     b BOOL NOT NULL,
     c FLOAT64
   > NOT NULL,
   z STRING
 )'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

分割テーブルの作成

次の例では、DATE 列を使用して mydataset 内に newtable という名前の分割テーブルを作成します。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

テーブル スキーマには次の 2 つの列があります。

  • transaction_id - 整数
  • transaction_date - 日付

テーブル オプション リストで指定する内容は次のとおりです。

  • パーティション有効期限 - 3 日
  • 説明 - transaction_date で分割するテーブル

DDL を使用して新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.newtable (transaction_id INT64, transaction_date DATE)
     PARTITION BY transaction_date
     OPTIONS(
       partition_expiration_days=3,
       description="a table partitioned by transaction_date"
     )
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.newtable (transaction_id INT64, transaction_date DATE)
PARTITION BY transaction_date
OPTIONS(
  partition_expiration_days=3,
  description="a table partitioned by transaction_date"
)'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

クエリ結果からの分割テーブルの作成

次の例では、DATE 列を使用して mydataset 内に days_with_rain という名前の分割テーブルを作成します。デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.newtable`)。

テーブル スキーマには次の列があります。

  • date - データ収集の日付(DATE
  • station_name - 気象観測所の名前(STRING
  • prcp - インチ単位の降水量(FLOAT64

テーブル オプション リストで指定する内容は次のとおりです。

  • パーティションの有効期限 - 1 年間
  • 説明 - 降水量が測定される気象観測所(日ごとに分割)

DDL を使用して新しいテーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.days_with_rain
     PARTITION BY date
     OPTIONS (
       partition_expiration_days=365,
       description="weather stations with precipitation, partitioned by day"
     ) AS
     SELECT
       DATE(CAST(year AS INT64), CAST(mo AS INT64), CAST(da AS INT64)) AS date,
       (SELECT ANY_VALUE(name) FROM `bigquery-public-data.noaa_gsod.stations` AS stations
        WHERE stations.usaf = stn) AS station_name,  -- Stations may have multiple names
       prcp
     FROM `bigquery-public-data.noaa_gsod.gsod2017` AS weather
     WHERE prcp != 99.9  -- Filter unknown values
       AND prcp > 0      -- Filter stations/days with no precipitation
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.days_with_rain
PARTITION BY date
OPTIONS (
  partition_expiration_days=365,
  description="weather stations with precipitation, partitioned by day"
) AS
SELECT
  DATE(CAST(year AS INT64), CAST(mo AS INT64), CAST(da AS INT64)) AS date,
  (SELECT ANY_VALUE(name) FROM `bigquery-public-data.noaa_gsod.stations` AS stations
   WHERE stations.usaf = stn) AS station_name,  -- Stations may have multiple names
  prcp
FROM `bigquery-public-data.noaa_gsod.gsod2017` AS weather
WHERE prcp != 99.9  -- Filter unknown values
  AND prcp > 0      -- Filter stations/days with no precipitation
'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

クラスタ化テーブルの作成

例 1

次の例では、mydatasetmyclusteredtable という名前のクラスタ化テーブルを作成します。このテーブルは分割テーブルで、TIMESTAMP 列で分割され、customer_id という名前の STRING 列でクラスタ化されています。

デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.myclusteredtable`)。

テーブル スキーマには次の 3 つの列があります。

  • timestamp - データ収集の日付(TIMESTAMP
  • customer_id - 顧客 ID(STRING
  • transaction_amount - 取引金額(NUMERIC

テーブル オプション リストで指定する内容は次のとおりです。

  • パーティションの有効期限 - 3 日
  • 説明 - 「customer_id でクラスタ化されたテーブル」

DDL ステートメントを使用して、クラスタ化テーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に、CREATE TABLE DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.myclusteredtable
     (
       timestamp TIMESTAMP,
       customer_id STRING,
       transaction_amount NUMERIC
     )
     PARTITION BY DATE(timestamp)
     CLUSTER BY customer_id
     OPTIONS (
       partition_expiration_days=3,
       description="a table clustered by customer_id"
     )

  4. [Show Options] をクリックします。

  5. [Processing Location] で [Unspecified] をクリックし、データのロケーションを選択します。データが US または EU マルチリージョン ロケーションに存在する場合、処理ロケーションを未指定のままにしておくことができます。データが US または EU に存在する場合、処理ロケーションは自動的に検出されます。

  6. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.myclusteredtable
(
  timestamp TIMESTAMP,
  customer_id STRING,
  transaction_amount NUMERIC
)
PARTITION BY DATE(timestamp)
CLUSTER BY customer_id
OPTIONS (
  partition_expiration_days=3,
  description="a table clustered by customer_id"
)'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

例 2

次の例では、mydatasetmyclusteredtable という名前のクラスタ化テーブルを作成します。テーブルは取り込み時間分割テーブルです。

デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.myclusteredtable`)。

テーブル スキーマには次の 3 つの列があります。

  • timestamp - データ収集の日付(TIMESTAMP
  • customer_id - 顧客 ID(STRING
  • transaction_amount - 取引金額(NUMERIC

テーブル オプション リストで指定する内容は次のとおりです。

  • パーティションの有効期限 - 3 日
  • 説明 - 「customer_id でクラスタ化されたテーブル」

DDL ステートメントを使用して、クラスタ化テーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に、CREATE TABLE DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.myclusteredtable
     (
       timestamp TIMESTAMP,
       customer_id STRING,
       transaction_amount NUMERIC
     )
     PARTITION BY DATE(_PARTITIONTIME)
     CLUSTER BY
       customer_id
     OPTIONS (
       partition_expiration_days=3,
       description="a table clustered by customer_id"
     )

  4. [Show Options] をクリックします。

  5. [Processing Location] で [Unspecified] をクリックし、データのロケーションを選択します。データが US または EU マルチリージョン ロケーションに存在する場合、処理ロケーションを未指定のままにしておくことができます。データが US または EU に存在する場合、処理ロケーションは自動的に検出されます。

  6. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.myclusteredtable
(
  timestamp TIMESTAMP,
  customer_id STRING,
  transaction_amount NUMERIC
)
PARTITION BY DATE(_PARTITIONTIME)
CLUSTER BY
  customer_id
OPTIONS (
  partition_expiration_days=3,
  description="a table clustered by customer_id"
)'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

クエリ結果からクラスタ化テーブルを作成する

次の例では、クエリの結果を使用して、mydatasetmyclusteredtable という名前でクラスタ化テーブルを作成します。テーブルは、TIMESTAMP 列で分割された分割テーブルです。

デフォルト プロジェクトを構成していない場合は、`[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式でデータセット名の前に追加します(例: `myproject.mydataset.myclusteredtable`)。

テーブル スキーマには次の 3 つの列があります。

  • timestamp - データ収集の日付(TIMESTAMP
  • customer_id - 顧客 ID(STRING
  • transaction_amount - 取引金額(NUMERIC

テーブル オプション リストで指定する内容は次のとおりです。

  • パーティションの有効期限 - 3 日
  • 説明 - 「customer_id でクラスタ化されたテーブル」

DDL ステートメントを使用して、クラスタ化テーブルを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に、CREATE TABLE DDL ステートメントを入力します。

     #standardSQL
     CREATE TABLE mydataset.myclusteredtable
     (
       timestamp TIMESTAMP,
       customer_id STRING,
       transaction_amount NUMERIC
     )
     PARTITION BY DATE(timestamp)
     CLUSTER BY
       customer_id
     OPTIONS (
       partition_expiration_days=3,
       description="a table clustered by customer_id"
     )
     AS SELECT * FROM mydataset.myothertable

  4. [Show Options] をクリックします。

  5. [Processing Location] で [Unspecified] をクリックし、データのロケーションを選択します。データが US または EU マルチリージョン ロケーションに存在する場合、処理ロケーションを未指定のままにしておくことができます。データが US または EU に存在する場合、処理ロケーションは自動的に検出されます。

  6. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE mydataset.myclusteredtable
  (
    timestamp TIMESTAMP,
    customer_id STRING,
    transaction_amount NUMERIC
  )
PARTITION BY DATE(timestamp)
CLUSTER BY
  customer_id
OPTIONS (
  partition_expiration_days=3,
  description="a table clustered by customer_id"
)
AS SELECT * FROM mydataset.myothertable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

CREATE VIEW ステートメント

BigQuery でビューを作成するには CREATE VIEW DDL ステートメントを使用します。

構文

{CREATE VIEW | CREATE VIEW IF NOT EXISTS | CREATE OR REPLACE VIEW}
view_name
[OPTIONS(view_option_list)]
AS query_expression

ここで

{CREATE VIEW | CREATE VIEW IF NOT EXISTS | CREATE OR REPLACE VIEW} は、次のステートメントのいずれかです。

  • CREATE VIEW - 新しいビューを作成します。
  • CREATE VIEW IF NOT EXISTS - 指定したデータセット内にそのビューが存在しない場合にのみ作成します。
  • CREATE OR REPLACE VIEW - 指定したデータセット内にビューを作成し、同じ名前のビューが存在する場合は置き換えます。

view_name は、作成するビューの名前です。ビュー名は、データセット内で一意である必要があります。ビュー名には次の制限があります。

  • 1,024 文字以内
  • 英字(大文字または小文字)、数字、アンダースコアだけが含まれている

view_option_list を使用すると、ラベルや有効期限などのビュー作成オプションを追加で指定できます。

CREATE VIEW ステートメントは、以下の規則に従う必要があります。

  • 使用できる CREATE ステートメントは 1 つのみ。

query_expression は、ビューを定義するために使用される標準 SQL クエリ式です。

view_option_list

[view_option_list] を使用すると、ラベルや有効期限などの省略可能な追加のビュー オプションを指定できます。カンマ区切りリストを使用して複数のオプションを含めることができます。

ビュー オプションは次の形式で指定します。

NAME=VALUE, ...

NAMEVALUE は、次のいずれかの組み合わせである必要があります。

NAME VALUE 詳細
expiration_timestamp TIMESTAMP

例: expiration_timestamp=TIMESTAMP "2020-01-01 00:00:00 UTC"

このプロパティは、expirationTime テーブル リソース プロパティと同等です。

friendly_name

STRING

例: friendly_name="my_view"

このプロパティは、friendlyName テーブル リソース プロパティと同等です。

description

STRING

例: description="a view that expires in 2020"

このプロパティは、description テーブル リソース プロパティと同等です。

labels

ARRAY<STRUCT<STRING, STRING>>

例: labels=[("org_unit", "development")]

このプロパティは、labels テーブル リソース プロパティと同等です。

VALUE は、リテラル、クエリ パラメータ、およびスカラー関数のみを含む定数式です。定数式が null と評価された場合、対応するオプション NAME は無視されます。定数式には以下を含めることはできません

  • テーブルへの参照
  • サブクエリ、または SELECTCREATEUPDATE などの SQL 文
  • ユーザー定義関数、集計関数、または分析関数
  • 以下のスカラー関数
    • ARRAY_TO_STRING
    • REPLACE
    • REGEXP_REPLACE
    • RAND
    • FORMAT
    • LPAD
    • RPAD
    • REPEAT
    • SESSION_USER
    • GENERATE_ARRAY
    • GENERATE_DATE_ARRAY

新しいビューの作成

CREATE VIEW DDL ステートメントは、指定されたオプションでビューを作成します。ビュー名がデータセット内に存在する場合、次のエラーが返されます。

Already Exists: [PROJECT]:[DATASET].[VIEW]

次の例は、mydataset 内に newview という名前のビューを作成します。DDL ステートメントを使用してビューを作成する場合、プロジェクト、データセット、ビューを `[PROJECT].[DATASET].[VIEW]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.newview`)。

ビューは、次の標準 SQL クエリを使用して定義されます。

SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable

ビュー オプション リストで指定する内容は次のとおりです。

  • 有効期限 - ビューが作成されてから 48 時間
  • わかりやすい名前 - newview
  • 説明 - 2 日後に有効期限が切れるビュー
  • ラベル - org_unit = development

DDL を使用して新しいビューを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE VIEW `myproject.mydataset.newview`
     OPTIONS(
       expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
       friendly_name="newview",
       description="a view that expires in 2 days",
       labels=[("org_unit", "development")]
     )
     AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE TABLE myproject.mydataset.newview
 OPTIONS(
   expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
   friendly_name="newview",
   description="a view that expires in 2 days",
   labels=[("org_unit", "development")]
 )
 AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Java

BigQuery.create() メソッドを呼び出して、クエリジョブを開始します。Job.waitFor() メソッドを呼び出して、DDL クエリが完了するまで待ちます。

 verbatim 92067e1295b4ca0dfd50aa29333602b4 // import com.google.cloud.bigquery.*;
// String projectId = "my-project";
// String datasetId = "my_dataset";
// String tableId = "new_view";
// BigQuery bigquery = BigQueryOptions.getDefaultInstance().toBuilder()
//     .setProjectId(projectId)
//     .build().getService();

String sql =
    String.format(
        "CREATE VIEW `%s.%s.%s`\n"
            + "OPTIONS(\n"
            + "  expiration_timestamp=TIMESTAMP_ADD(\n"
            + "    CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),\n"
            + "  friendly_name=\"new_view\",\n"
            + "  description=\"a view that expires in 2 days\",\n"
            + "  labels=[(\"org_unit\", \"development\")]\n"
            + ")\n"
            + "AS SELECT name, state, year, number\n"
            + "  FROM `bigquery-public-data.usa_names.usa_1910_current`\n"
            + "  WHERE state LIKE 'W%%';\n",
        projectId, datasetId, tableId);

// Make an API request to run the query job.
Job job = bigquery.create(JobInfo.of(QueryJobConfiguration.newBuilder(sql).build()));

// Wait for the query to finish.
job = job.waitFor();

QueryJobConfiguration jobConfig = (QueryJobConfiguration) job.getConfiguration();
System.out.printf(
    "Created new view \"%s.%s.%s\".\n",
    jobConfig.getDestinationTable().getProject(),
    jobConfig.getDestinationTable().getDataset(),
    jobConfig.getDestinationTable().getTable()); endverbatim 92067e1295b4ca0dfd50aa29333602b4 

Python

Client.query() メソッドを呼び出して、クエリジョブを開始します。QueryJob.result() メソッドを呼び出し、DDL クエリが完了するまで待ちます。

 verbatim 1395df751143a1f2c4241b84df92ad0d # from google.cloud import bigquery
# project = 'my-project'
# dataset_id = 'my_dataset'
# table_id = 'new_view'
# client = bigquery.Client(project=project)

sql = """
CREATE VIEW `{}.{}.{}`
OPTIONS(
    expiration_timestamp=TIMESTAMP_ADD(
        CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
    friendly_name="new_view",
    description="a view that expires in 2 days",
    labels=[("org_unit", "development")]
)
AS SELECT name, state, year, number
    FROM `bigquery-public-data.usa_names.usa_1910_current`
    WHERE state LIKE 'W%'
""".format(project, dataset_id, table_id)

job = client.query(sql)  # API request.
job.result()  # Waits for the query to finish.

print('Created new view "{}.{}.{}".'.format(
    job.destination.project,
    job.destination.dataset_id,
    job.destination.table_id)) endverbatim 1395df751143a1f2c4241b84df92ad0d 

ビューが存在しない場合にのみビューを作成

CREATE VIEW IF NOT EXISTS DDL ステートメントは、ビュー名がデータセットに存在しない場合にのみ、指定されたオプションでビューを作成します。ビュー名がデータセットに存在する場合、エラーは返されず、アクションも実行されません。

次の例は、mydataset 内に newview という名前のビューが存在しない場合にのみ、mydataset 内に newview という名前のビューを作成します。DDL ステートメントを使用してビューを作成する場合、プロジェクト、データセット、ビューを `[PROJECT].[DATASET].[VIEW]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.newview`)。

ビューは、次の標準 SQL クエリを使用して定義されます。

SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable

ビュー オプション リストで指定する内容は次のとおりです。

  • 有効期限 - ビューが作成されてから 48 時間
  • わかりやすい名前 - newview
  • 説明 - 2 日後に有効期限が切れるビュー
  • ラベル - org_unit = development

ビュー名がデータセットに存在しない場合にのみ、DDL を使用して新しいビューを作成するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE VIEW IF NOT EXISTS `myproject.mydataset.newview`
     OPTIONS(
       expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
       friendly_name="newview",
       description="a view that expires in 2 days",
       labels=[("org_unit", "development")]
     )
     AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE VIEW IF NOT EXISTS myproject.mydataset.newview
 OPTIONS(
   expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
   friendly_name="newview",
   description="a view that expires in 2 days",
   labels=[("org_unit", "development")]
 )
 AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

ビューの作成または置換

CREATE OR REPLACE VIEW DDL ステートメントは、指定されたオプションでビューを作成します。ビュー名がデータセットに存在する場合は、指定されたクエリ式を使用してそのビューが上書きされます。

次の例は、mydataset 内に newview という名前のビューを作成し、mydatasetnewview が存在する場合はそれを上書きします。DDL ステートメントを使用してビューを作成する場合、プロジェクト、データセット、ビューを `[PROJECT].[DATASET].[VIEW]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.newview`)。

ビューは、次の標準 SQL クエリを使用して定義されます。

    SELECT column_1, column_2, column_3 FROM `myproject.mydataset.mytable`

ビュー オプション リストで指定する内容は次のとおりです。

  • 有効期限 - ビューが作成されてから 48 時間
  • わかりやすい名前 - newview
  • 説明 - 2 日後に有効期限が切れるビュー
  • ラベル - org_unit = development

DDL を使用して新しいビューを作成し、同じ名前のビューを上書きするには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     CREATE OR REPLACE VIEW `myproject.mydataset.newview`
     OPTIONS(
       expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
       friendly_name="newview",
       description="a view that expires in 2 days",
       labels=[("org_unit", "development")]
     )
     AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインに表示されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
CREATE OR REPLACE VIEW myproject.mydataset.newview
 OPTIONS(
   expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 48 HOUR),
   friendly_name="newview",
   description="a view that expires in 2 days",
   labels=[("org_unit", "development")]
 )
 AS SELECT column_1, column_2, column_3 FROM myproject.mydataset.mytable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

DROP TABLE ステートメント

BigQuery でテーブルを削除するには、DROP TABLE DDL ステートメントを使用します。

構文

{DROP TABLE | DROP TABLE IF EXISTS}
table_name

ここで

{DROP TABLE | DROP TABLE IF EXISTS} は、次のステートメントのいずれかです。

  • DROP TABLE 指定したデータセット内のテーブルを削除します。
  • DROP TABLE IF EXISTS - 指定したデータセット内にそのテーブルが存在する場合にのみ削除します。

table_name は、削除するテーブルの名前です。

テーブルの削除

DROP TABLE DDL ステートメントは、指定されたデータセット内のテーブルを削除します。データセット内にそのテーブル名が存在しない場合は、次のエラーが返されます。

Error: Not found: Table myproject:mydataset.mytable

別のプロジェクトにあるテーブルを削除する場合は、プロジェクト、データセット、テーブルを `[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.mytable`)。

DDL を使用してテーブルを削除するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     DROP TABLE mydataset.mytable
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインから削除されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
DROP TABLE mydataset.mytable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

テーブルが存在する場合にのみテーブルを削除

DROP TABLE IF EXISTS DDL ステートメントは、テーブルが存在する場合にのみ、指定されたデータセット内のテーブルを削除します。テーブル名がデータセットに存在しない場合、エラーは返されず、アクションも実行されません。

別のプロジェクトにあるテーブルを削除する場合は、プロジェクト、データセット、テーブルを `[PROJECT].[DATASET].[TABLE]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.mytable`)。

テーブルが存在する場合にのみ DDL を使用してテーブルを削除するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     DROP TABLE IF EXISTS mydataset.mytable
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインから削除されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
DROP TABLE IF EXISTS mydataset.mytable'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

DROP VIEW ステートメント

BigQuery でビューを削除するには、DROP VIEW DDL ステートメントを使用します。

構文

{DROP VIEW | DROP VIEW IF EXISTS}
view_name

ここで

{DROP VIEW | DROP VIEW IF EXISTS} は、次のステートメントのいずれかです。

  • DROP VIEW - 指定したデータセット内のビューを削除します。
  • DROP VIEW IF EXISTS - 指定したデータセット内にそのビューが存在する場合にのみビューを削除します。

view_name は、削除するビューの名前です。

ビューの削除

DROP VIEW DDL ステートメントは、指定されたデータセット内のビューを削除します。ビュー名がデータセットに存在しない場合は、次のエラーが返されます。

Error: Not found: Table myproject:mydataset.myview

別のプロジェクトにあるビューを削除する場合は、プロジェクト、データセット、ビューを `[PROJECT].[DATASET].[VIEW]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.myview`)。

DDL を使用してビューを削除するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     DROP VIEW mydataset.myview
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、ビューがナビゲーション ペインから削除されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
DROP VIEW mydataset.myview'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

ビューが存在する場合にのみビューを削除

DROP VIEW IF EXISTS DDL ステートメントは、ビューが存在する場合にのみ、指定されたデータセット内のビューを削除します。ビュー名がデータセットに存在しない場合、エラーは返されず、アクションも実行されません。

別のプロジェクトにあるビューを削除する場合は、プロジェクト、データセット、ビューを `[PROJECT].[DATASET].[VIEW]`(バッククォートを含む)の形式で指定する必要があります(例: `myproject.mydataset.myview`)。

ビューが存在する場合にのみ DDL を使用してビューを削除するには:

ウェブ UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

  2. [Compose query] をクリックします。

  3. [New Query] テキスト領域に DDL ステートメントを入力します。

     #standardSQL
     DROP VIEW IF EXISTS mydataset.myview
     

  4. [RUN QUERY] をクリックします。クエリが完了すると、テーブルがナビゲーション ペインから削除されます。

コマンドライン

bq query コマンドを入力し、クエリ パラメータとして DDL ステートメントを指定します。

bq query --use_legacy_sql=false '
DROP VIEW IF EXISTS mydataset.myview'

API

jobs.query メソッドを呼び出し、リクエスト本文の query プロパティで DDL ステートメントを指定します。

DDL 機能によって、ジョブリソースで返される情報が拡張されます。 statistics.query.statementType には、DDL サポート用の次の追加の値が含まれます。

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query には次の 2 つの追加フィールドがあります。

  • ddlOperationPerformed: 実行された DDL オペレーションであり、DDL ターゲットの存在に依存する可能性があります。現在の値は次のとおりです。
    • CREATE: クエリによって DDL ターゲットが作成されました。
    • SKIP: オペレーションなし。例 - CREATE TABLE IF NOT EXISTS が送信されていて、テーブルが存在します。または DROP TABLE IF EXISTS が送信されていて、テーブルは存在しません。
    • REPLACE: クエリによって DDL ターゲットが置き換えられました。例 - CREATE OR REPLACE TABLE が送信されていて、テーブルがすでに存在しています。
    • DROP: クエリによって DDL ターゲットが削除されました。
  • ddlTargetTable: CREATE TABLE/VIEW ステートメントまたは DROP TABLE/VIEW ステートメントを送信すると、次の 3 つのフィールドを持つオブジェクトとしてターゲット テーブルが返されます。
    • "projectId": string
    • "datasetId": string
    • "tableId": string

開発中の機能

次の機能は開発中ですが、現時点のベータ版では利用できません。

  • DROP TABLE DDL ステートメントを使用した後の、BigQuery ウェブ UI のテーブルリストの自動更新
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。