Como usar instruções de linguagem de definição de dados

As instruções da linguagem de definição de dados (DDL, na sigla em inglês) permitem criar e modificar recursos BigQuery usando a sintaxe de consulta do SQL padrão. Atualmente, você pode usar comandos DDL no BigQuery para:

Instrução CREATE TABLE

Para criar uma tabela no BigQuery, use a instrução DDL CREATE TABLE.

Sintaxe

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

Em que:

{CREATE TABLE | CREATE TABLE IF NOT EXISTS | CREATE OR REPLACE TABLE} é uma das instruções a seguir:

  • CREATE TABLE: cria uma nova tabela.
  • CREATE TABLE IF NOT EXISTS: cria uma nova tabela somente se a tabela não existir atualmente no conjunto de dados especificado.
  • CREATE OR REPLACE TABLE: cria uma tabela e substitui uma tabela existente com o mesmo nome no conjunto de dados especificado.

As instruções CREATE TABLE precisam obedecer às regras a seguir:

  • Apenas uma instrução CREATE é permitida.
  • A lista de colunas, a cláusula as query_statement ou ambas precisam estar presentes.
  • Quando a lista de colunas e a cláusula as query_statement estão presentes, o BigQuery ignora os nomes na cláusula as query_statement e corresponde às colunas com a lista de colunas por posição.
  • Quando a cláusula as query_statement está presente e a lista de colunas está ausente, o BigQuery determina os nomes e os tipos de coluna a partir da cláusula as query_statement.
  • É necessário especificar os nomes das colunas por meio da lista de colunas ou da cláusula as query_statement.
  • Não é permitido duplicar nomes de colunas.

table_name

table_name é o nome da tabela que você está criando. O nome da tabela precisa ser exclusivo por conjunto de dados. Esse nome pode:

  • conter até 1.024 caracteres
  • conter letras (maiúsculas e minúsculas), números e sublinhados.

column_name e column_schema

(column_name column_schema[, ...]) contém as informações de esquema da tabela em uma lista separada por vírgulas:

  • column_name é o nome da coluna. Um nome de coluna:
    • precisa conter apenas letras (a-z, A-Z), números (0-9) ou sublinhados (_);
    • precisa começar com uma letra ou um sublinhado;
    • pode ter até 128 caracteres.
  • column_schema é semelhante a um tipo de dados, mas aceita uma restrição NOT NULL opcional para tipos diferentes de ARRAY. column_schema também é compatível com opções em colunas de nível superior e campos 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 é qualquer tipo de dados compatíveis além de STRUCT e ARRAY.

field_name é o nome do campo struct. Os nomes dos campos struct têm as mesmas restrições que os nomes das colunas.

Quando a restrição NOT NULL está presente em uma coluna ou um campo, a coluna ou o campo é criado com o modo REQUIRED. Por outro lado, quando a restrição NOT NULL está ausente, a coluna ou campo é criado com o modo NULLABLE.

As colunas e os campos do tipo ARRAY não são compatíveis com o modificador NOT NULL. Por exemplo, um column_schema de ARRAY<INT64> NOT NULL é inválido, uma vez que as colunas ARRAY têm o modo REPEATED e podem estar vazias, mas não podem ser NULL. Um elemento de matriz em uma tabela nunca pode ser NULL, independentemente de a restrição NOT NULL ser especificada. Por exemplo, ARRAY<INT64> é equivalente a ARRAY<INT64 NOT NULL>.

O atributo NOT NULL de column_schema de uma tabela não se propaga por consultas nela. Se a tabela T contiver uma coluna declarada como x INT64 NOT NULL, por exemplo, o conjunto de dados CREATE TABLE dataset.newtable AS SELECT x FROM T cria uma tabela denominada dataset.newtable em que x é NULLABLE.

column_schema pode ser usado apenas na lista de definições de coluna das instruções CREATE TABLE. Não pode ser usado como um tipo em expressões. Por exemplo, CAST(1 AS INT64 NOT NULL) não é válido.

partition_expression

partition_expression é uma expressão opcional que controla o particionamento de tabelas. A expressão da partição pode conter os valores a seguir:

  • PARTITION BY DATE(_PARTITIONTIME): particiona a tabela usando o carimbo de data/hora baseado em data na _PARTITIONTIME pseudo column. Essa sintaxe é compatível apenas com CREATE TABLE sem a cláusula AS query_statement.
  • PARTITION BY DATE(<timestamp_column>): particiona a tabela usando a data da coluna TIMESTAMP.
  • PARTITION BY <date_column>: particiona a tabela usando a coluna DATE.

table_option_list

table_option_list permite que você especifique opções de tabela adicionais, como um rótulo e um prazo de validade. Para incluir várias opções, use uma lista separada por vírgulas.

Especifique uma lista de opções de tabela no seguinte formato:

NAME=VALUE, ...

NAME e VALUE precisam ser uma das combinações a seguir:

NAME VALUE Detalhes
expiration_timestamp TIMESTAMP

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

Essa propriedade é equivalente à propriedade de recurso de tabela expirationTime.

partition_expiration_days

FLOAT64

Exemplo: partition_expiration_days=7

Essa propriedade é equivalente à propriedade de recurso de tabela timePartitioning.expirationMs, mas usa dias em vez de milissegundos. Um dia é equivalente a 86.400.000 milissegundos, ou 24 horas.

Essa propriedade só pode ser usada na criação de uma tabela particionada.

kms_key_name

STRING

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

Essa propriedade é equivalente à propriedade de recurso de tabela encryptionConfiguration.kmsKeyName.

Consulte mais detalhes sobre Como proteger dados com chaves do Cloud KMS.

friendly_name

STRING

Exemplo: friendly_name="my_table"

Essa propriedade é equivalente à propriedade de recurso de tabela friendlyName.

description

STRING

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

Essa propriedade é equivalente à propriedade de recurso da tabela description.

labels

ARRAY<STRUCT<STRING, STRING>>

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

Essa propriedade é equivalente à propriedade de recurso de tabela labels.

VALUE é uma expressão constante que contém apenas literais, parâmetros de consulta e funções escalares. Se a expressão constante for avaliada como null, a opção NAME correspondente será ignorada. A expressão constante não pode conter os itens a seguir:

  • uma referência a uma tabela
  • subconsultas ou instruções SQL, como SELECT, CREATE e UPDATE
  • funções definidas pelo usuário, funções agregadas ou funções analíticas
  • as funções escalares a seguir:
    • ARRAY_TO_STRING
    • REPLACE
    • REGEXP_REPLACE
    • RAND
    • FORMAT
    • LPAD
    • RPAD
    • REPEAT
    • SESSION_USER
    • GENERATE_ARRAY
    • GENERATE_DATE_ARRAY

column_option_list

column_option_list em column_schema permite que você especifique itens opcionais de coluna ou campo. As opções de coluna têm a mesma sintaxe e requisitos que as opções de tabela, mas com uma lista diferente de NAME e VALUE:

NAME VALUE Detalhes
description

STRING

Exemplo: description="a unique id"

Essa propriedade é equivalente à propriedade de recurso da tabela schema.fields[].description.

query_statement

A cláusula AS query_statement especifica a consulta a partir da qual a tabela precisa ser criada. Consulte a referência de sintaxe SQL para o formulário aceito de query_statement.

Limitações conhecidas:

  • Não é possível criar uma tabela particionada por tempo de ingestão a partir do resultado de uma consulta. Em vez disso, use uma instrução DDL CREATE TABLE para criar a tabela e, em seguida, use uma instrução DML INSERT para inserir dados nela.
  • Não é possível usar o modificador OR REPLACE para substituir uma tabela por um tipo diferente de particionamento. Em vez disso, DROP a tabela e, em seguida, use CREATE TABLE ... AS SELECT ... para recriá-la.

Exemplos "CREATE TABLE"

Como criar uma nova tabela

A instrução DDL CREATE TABLE cria uma tabela com as opções especificadas. Se o nome da tabela existir no conjunto de dados, o erro a seguir será retornado:

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

O exemplo a seguir cria uma tabela chamada newtable em mydataset. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém duas colunas:

  • x: um inteiro, com a descrição "Um campo INTEGER opcional"
  • y: um STRUCT que contém duas colunas:

    • a: uma matriz de strings, com a descrição "Um campo STRING repetido"
    • b: um booleano

A lista de opções da tabela especifica:

  • prazo de validade: 1º de janeiro de 2020 às 00:00:00 UTC;
  • descrição: uma tabela que expira em 2020;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova tabela usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma nova tabela a partir de uma existente

A instrução DDL CREATE TABLE ... AS SELECT cria uma tabela a partir de uma consulta. Se o nome da tabela existir no conjunto de dados, o erro a seguir será retornado:

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

O exemplo a seguir cria uma tabela denominada top_words no mydataset. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os backticks); por exemplo, "myproject.mydataset.rainy_days".

O esquema da tabela contém duas colunas:

  • corpus: nome de um corpus de Shakespeare
  • top_words: um ARRAY de STRUCTs contendo dois campos: word (uma STRING) e word_count (um INT64 com a contagem de palavras)

A lista de opções da tabela especifica:

  • descrição: 10 principais palavras por corpus de Shakespeare.

Para criar uma nova tabela usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma tabela somente se a tabela não existir

A instrução DDL CREATE TABLE IF NOT EXISTS cria uma tabela com as opções especificadas somente se o nome da tabela não existe no conjunto de dados. Se o nome da tabela existir no conjunto de dados, nenhum erro será retornado e nenhuma ação será tomada.

No exemplo a seguir, criaremos uma tabela chamada newtable em mydataset somente se nenhuma tabela chamada newtable existir em mydataset. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém duas colunas:

  • x: um número inteiro
  • y: STRUCT que contém a (uma matriz de strings) e b (um booleano)

A lista de opções da tabela especifica:

  • prazo de validade: 1º de janeiro de 2020 às 00:00:00 UTC;
  • descrição: uma tabela que expira em 2020;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova tabela usando DDL somente se o nome da tabela não existir no conjunto de dados:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar ou substituir uma tabela

A instrução DDL CREATE OR REPLACE TABLE cria uma tabela com as opções especificadas. Se o nome da tabela existir no conjunto de dados, ela será substituída por uma tabela vazia.

No exemplo a seguir, criaremos uma tabela chamada newtable em mydataset, e se newtable existir em mydataset, ele será substituído. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém duas colunas:

  • x: um número inteiro
  • y: STRUCT que contém a (uma matriz de strings) e b (um booleano)

A lista de opções da tabela especifica:

  • prazo de validade: 1º de janeiro de 2020 às 00:00:00 UTC;
  • descrição: uma tabela que expira em 2020;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova tabela usando DDL e substituir uma tabela com o mesmo nome:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma tabela com colunas REQUIRED

O modificador NOT NULL na lista de definição de coluna de uma instrução CREATE TABLE especifica que uma coluna ou um campo é criado no modo REQUIRED.

O exemplo a seguir cria uma tabela chamada newtable em mydataset. Se o nome da tabela existir no conjunto de dados, o erro a seguir será retornado:

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

Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém três colunas:

  • x: um número inteiro REQUIRED
  • y: um STRUCT REQUIRED que contém a (uma matriz de strings), b (um REQUIRED booleano) e c (um NULLABLE flutuante)
  • z: uma string NULLABLE

Para criar uma nova tabela com colunas REQUIRED usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma tabela particionada

O exemplo a seguir cria uma tabela particionada chamada newtable em mydataset usando uma coluna DATE. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém duas colunas:

  • transaction_id: um número inteiro
  • transaction_date: uma data

A lista de opções da tabela especifica:

  • validade da partição: três dias;
  • descrição: uma tabela particionada por transaction_date.

Para criar uma nova tabela usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma tabela particionada a partir do resultado de uma consulta

O exemplo a seguir cria uma tabela particionada chamada days_with_rain em mydataset usando uma coluna DATE. Se você não tiver um projeto padrão configurado, adicione-o ao nome do conjunto de dados neste formato: "[PROJECT].[DATASET].[TABLE]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newtable".

O esquema da tabela contém duas colunas:

  • data: a DATE da coleta de dados
  • station_name: o nome da estação meteorológica como STRING
  • prcp: a quantidade de precipitação em polegadas como um FLOAT64

A lista de opções da tabela especifica:

  • validade da partição: um ano;
  • Descrição: estações meteorológicas com precipitação, divididas por dia.

Para criar uma nova tabela usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Instrução CREATE VIEW

Para criar uma visualização no BigQuery, use a instrução DDL CREATE VIEW.

Sintaxe

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

Em que:

{CREATE VIEW | CREATE VIEW IF NOT EXISTS | CREATE OR REPLACE VIEW} é uma das instruções a seguir:

  • CREATE VIEW: cria uma nova visualização.
  • CREATE VIEW IF NOT EXISTS: cria uma nova visualização somente se ela não existir no conjunto de dados especificado.
  • CREATE OR REPLACE VIEW: cria uma visualização e substitui uma visualização existente com o mesmo nome no conjunto de dados especificado.

view_name é o nome da visualização que você está criando. O nome da visualização precisa ser exclusivo por conjunto de dados. O nome da visualização pode:

  • conter até 1.024 caracteres;
  • conter letras (maiúsculas e minúsculas), números e sublinhados.

view_option_list permite que você especifique opções de criação de visualização adicionais, como um rótulo e um prazo de validade.

As instruções CREATE VIEW precisam obedecer às regras a seguir:

  • Apenas uma instrução CREATE é permitida.

query_expression é a expressão de consulta SQL padrão usada para definir a visualização.

view_option_list

[view_option_list] permite que você especifique opções de visualização adicionais, como um rótulo e um prazo de validade. Para incluir várias opções, use uma lista separada por vírgulas.

Especifique uma opção de visualização no seguinte formato:

NAME=VALUE, ...

NAME e VALUE precisam ser uma das combinações a seguir:

NAME VALUE Detalhes
expiration_timestamp TIMESTAMP

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

Essa propriedade é equivalente à propriedade de recurso de tabela expirationTime.

friendly_name

STRING

Exemplo: friendly_name="my_view"

Essa propriedade é equivalente à propriedade de recurso de tabela friendlyName.

description

STRING

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

Essa propriedade é equivalente à propriedade de recurso da tabela description.

labels

ARRAY<STRUCT<STRING, STRING>>

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

Essa propriedade é equivalente à propriedade de recurso de tabela labels.

VALUE é uma expressão constante que contém apenas literais, parâmetros de consulta e funções escalares. Se a expressão constante for avaliada como null, a opção NAME correspondente será ignorada. A expressão constante não pode conter os itens a seguir:

  • uma referência a uma tabela
  • subconsultas ou instruções SQL, como SELECT, CREATE e UPDATE
  • funções definidas pelo usuário, funções agregadas ou funções analíticas
  • as funções escalares a seguir:
    • ARRAY_TO_STRING
    • REPLACE
    • REGEXP_REPLACE
    • RAND
    • FORMAT
    • LPAD
    • RPAD
    • REPEAT
    • SESSION_USER
    • GENERATE_ARRAY
    • GENERATE_DATE_ARRAY

Exemplos

Como criar uma nova visualização

A instrução DDL CREATE VIEW cria uma visualização com as opções especificadas. Se o nome da visualização existir no conjunto de dados, o erro a seguir será retornado:

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

No exemplo a seguir, criaremos uma visualização chamada newview em mydataset. Quando você usa uma instrução DDL para criar uma visualização, é necessário especificar o projeto, o conjunto de dados e visualizar no formato a seguir: "[PROJECT]. [DATASET].[VIEW]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newview".

A visualização é definida usando a consulta SQL padrão a seguir:

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

A lista de opções de visualização especifica:

  • prazo de validade: 48 horas a partir do momento em que a visualização é criada;
  • nome amigável: newview;
  • descrição: uma visualização que expira em dois dias;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova visualização usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar uma visualização somente se ela não existir

A instrução DDL CREATE VIEW IF NOT EXISTS cria uma visualização com as opções especificadas somente se o nome da visualização não existir no conjunto de dados. Se o nome da visualização existir no conjunto de dados, nenhum erro será retornado e nenhuma ação será tomada.

No exemplo a seguir, criaremos uma visualização chamada newview em mydataset somente se nenhuma visualização chamada newview existir em mydataset. Quando você usa uma instrução DDL para criar uma visualização, é necessário especificar o projeto, o conjunto de dados e visualizar no formato a seguir: "[PROJECT]. [DATASET].[VIEW]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newview".

A visualização é definida por meio da consulta SQL padrão a seguir:

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

A lista de opções de visualização especifica:

  • prazo de validade: 48 horas a partir do momento em que a visualização é criada;
  • nome amigável: newview;
  • descrição: uma visualização que expira em dois dias;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova visualização usando DDL somente se o nome dela não existir no conjunto de dados:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como criar ou substituir uma visualização

A instrução DDL CREATE OR REPLACE VIEW cria uma visualização com as opções especificadas. Se o nome da visualização existir no conjunto de dados, ela será substituída usando a expressão de consulta especificada.

No exemplo a seguir, criaremos uma visualização chamada newview em mydataset e, se newview existir em mydataset, ela será substituída. Quando você usa uma instrução DDL para criar uma visualização, é necessário especificar o projeto, o conjunto de dados e visualizar no formato a seguir: "[PROJECT]. [DATASET].[VIEW]" (incluindo os acentos graves). Por exemplo, "myproject.mydataset.newview".

A visualização é definida por meio da consulta SQL padrão a seguir:

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

A lista de opções de visualização especifica:

  • prazo de validade: 48 horas a partir do momento em que a visualização é criada;
  • nome amigável: newview;
  • descrição: uma visualização que expira em dois dias;
  • rótulo: org_unit = desenvolvimento.

Para criar uma nova visualização usando DDL e substituir uma visualização com o mesmo nome:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #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. Clique em Gerar consulta. Quando a consulta é concluída, a tabela aparece no painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Instrução DROP TABLE

Para excluir uma tabela no BigQuery, use a instrução DDL DROP TABLE.

Sintaxe

{DROP TABLE | DROP TABLE IF EXISTS}
table_name

Em que:

{DROP TABLE | DROP TABLE IF EXISTS} é uma das instruções a seguir:

  • DROP TABLE: exclui uma tabela no conjunto de dados especificado.
  • DROP TABLE IF EXISTS: exclui uma tabela somente se ela existe no conjunto de dados especificado.

table_name é o nome da tabela que você está excluindo.

Exemplos

Como excluir tabelas

A instrução DDL DROP TABLE exclui uma tabela no conjunto de dados especificado. Se o nome da tabela não existir no conjunto de dados, o erro a seguir será retornado:

Error: Not found: Table myproject:mydataset.mytable

Se você estiver excluindo uma tabela em outro projeto, será necessário especificar o projeto, o conjunto de dados e a tabela no formato a seguir: "[PROJECT]. [DATASET].[TABLE]" (incluindo os acentos agudos). Por exemplo, "myproject.mydataset.mytable".

Para excluir uma tabela usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #standardSQL
     DROP TABLE mydataset.mytable
     

  4. Clique em Gerar consulta. Quando a consulta é concluída, a tabela é removida do painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

API

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como excluir uma tabela somente se ela existir

A instrução DDL DROP TABLE IF EXISTS excluirá uma tabela no conjunto de dados especificado somente se ela existir. Se o nome da tabela não existir no conjunto de dados, nenhum erro será retornado e nenhuma ação será tomada.

Se você estiver excluindo uma tabela em outro projeto, será necessário especificar o projeto, o conjunto de dados e a tabela no formato a seguir: "[PROJECT]. [DATASET].[TABLE]" (incluindo os acentos agudos). Por exemplo, "myproject.mydataset.mytable".

Para excluir uma tabela usando DDL somente se a tabela existir:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #standardSQL
     DROP TABLE IF EXISTS mydataset.mytable
     

  4. Clique em Gerar consulta. Quando a consulta é concluída, a tabela é removida do painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

API

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Instrução DROP VIEW

Para excluir uma visualização no BigQuery, use a instrução DDL DROP VIEW.

Sintaxe

{DROP VIEW | DROP VIEW IF EXISTS}
view_name

Em que:

{DROP VIEW | DROP VIEW IF EXISTS} é uma das instruções a seguir:

  • DROP VIEW: exclui uma visualização no conjunto de dados especificado.
  • DROP VIEW IF EXISTS: exclui uma visualização somente se ela existe no conjunto de dados especificado.

view_name é o nome da visualização que você está excluindo.

Exemplos

Como excluir uma visualização

A instrução DDL DROP VIEW exclui uma visualização no conjunto de dados especificado. Se o nome da visualização não existir no conjunto de dados, o erro a seguir será retornado:

Error: Not found: Table myproject:mydataset.myview

Se você estiver excluindo uma visualização em outro projeto, será necessário especificar o projeto, o conjunto de dados e a visualização no formato a seguir: "[PROJECT]. [DATASET].[VIEW]" (incluindo os acentos agudos). Por exemplo, "myproject.mydataset.myview".

Para excluir uma visualização usando DDL:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #standardSQL
     DROP VIEW mydataset.myview
     

  4. Clique em Gerar consulta. Quando a consulta é concluída, a visualização é removida do painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

API

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Como excluir uma visualização somente se ela existir

A instrução DDL DROP VIEW IF EXISTS excluirá uma visualização no conjunto de dados especificado somente se ela existir. Se o nome da visualização não existir no conjunto de dados, nenhum erro será retornado e nenhuma ação será tomada.

Se você estiver excluindo uma visualização em outro projeto, será necessário especificar o projeto, o conjunto de dados e a visualização no formato a seguir: "[PROJECT]. [DATASET].[VIEW]" (incluindo os acentos agudos). Por exemplo, "myproject.mydataset.myview".

Para excluir uma visualização usando DDL somente se ela existir:

IU da Web

  1. Acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique em Escrever consulta.

  3. Digite a instrução DDL na área de texto Nova consulta.

     #standardSQL
     DROP VIEW IF EXISTS mydataset.myview
     

  4. Clique em Gerar consulta. Quando a consulta é concluída, a tabela é removida do painel de navegação.

Linha de comando

Digite o comando bq query e forneça a instrução DDL como o parâmetro de consulta.

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

API

Chame o método jobs.query e forneça a instrução DDL na propriedade de consulta do corpo da solicitação.

A funcionalidade DDL amplia as informações retornadas por um Recurso de jobs. statistics.query.statementType inclui os valores adicionais a seguir para compatibilidade com DDL:

  • CREATE_TABLE
  • CREATE_TABLE_AS_SELECT
  • DROP_TABLE
  • CREATE_VIEW
  • DROP_VIEW

statistics.query tem dois campos adicionais:

  • ddlOperationPerformed: a operação DDL realizada, possivelmente dependente da existência do destino DDL. Os valores atuais incluem os itens a seguir:
    • CREATE: a consulta criou o destino DDL.
    • SKIP: ambiente autônomo. Exemplos: CREATE TABLE IF NOT EXISTS foi enviado e a tabela existe. Ou DROP TABLE IF EXISTS foi enviado e a tabela não existe.
    • REPLACE: a consulta substituiu o destino DDL. Exemplo: CREATE OR REPLACE TABLE foi enviado e a tabela já existe.
    • DROP: a consulta excluiu o destino DDL.
  • ddlTargetTable: ao enviar uma instrução CREATE TABLE/VIEW ou DROP TABLE/VIEW, a tabela de destino é retornada como um objeto com três campos:
    • "projectId": string
    • "datasetId": string
    • "tableId": string

Recursos em desenvolvimento

Os recursos a seguir estão sendo desenvolvidos, mas atualmente não estão disponíveis na versão beta:

  • Atualização automática da lista de tabelas na IU da Web do BigQuery depois de usar uma instrução DDL DROP TABLE.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.