Como criar um arquivo de definição de tabela para uma fonte de dados externa

Nesta página, descrevemos como criar um arquivo de definição de tabela para uma fonte de dados externa. Uma fonte de dados externa (também chamada de "federada") pode ser consultada diretamente, mesmo que os dados não estejam armazenados no BigQuery.

Arquivos de definição de tabela

Um arquivo de definição de tabela contém a definição de esquema de uma tabela externa e metadados, como o formato de dados da tabela e propriedades relacionadas. Ao criar um arquivo de definição de tabela, use a detecção automática de esquema para defini-lo em uma fonte de dados externa. É possível fornecer o esquema in-line (na linha de comando) ou um arquivo JSON que contenha a definição do esquema.

Os arquivos de definição de tabela são usados com a CLI e a API do BigQuery. Você não usa arquivos de definição de tabela ao criar uma tabela externa usando o Console do GCP ou a interface de usuário da Web clássica do BigQuery.

É possível criar arquivos de definição de tabela para as seguintes fontes de dados externas:

  • Cloud Storage

    • valores separados por vírgula (CSV)
    • JSON, delimitado por nova linha
    • arquivos Avro
    • arquivos de exportação do Cloud Datastore
    • arquivos de exportação do Cloud Firestore
  • Google Drive

    • valores separados por vírgula (CSV, na sigla em inglês)
    • JSON, delimitado por nova linha.
    • arquivos Avro
    • Planilhas Google (apenas a primeira guia)
  • Cloud Bigtable

Antes de começar

Para criar um arquivo de definição de tabela, você precisa do URI para a fonte de dados:

Tabelas externas permanentes x temporárias

É possível consultar uma fonte de dados externa no BigQuery usando uma tabela permanente ou uma temporária. A tabela permanente é criada no conjunto de dados do BigQuery vinculado à fonte de dados externa. Como ela é permanente, você pode usar os controles de acesso em nível de conjunto de dados para compartilhá-la com outros que também tenham acesso à fonte de dados externa subjacente. Além disso, é possível consultar a tabela a qualquer momento.

Ao consultar uma fonte de dados externa usando uma tabela temporária, você envia um comando que inclui uma consulta e cria uma tabela não permanente vinculada a essa fonte. A tabela temporária não é criada em um dos conjuntos de dados do BigQuery. Como ela não fica armazenada permanentemente em um conjunto de dados, não é possível compartilhá-la com outros. A consulta a uma fonte de dados externa usando uma tabela temporária é útil quando você quer consultar dados externos apenas uma vez, com um propósito específico, ou executar processos de extração, transformação e carregamento (ETL, na sigla em inglês).

Você pode usar um arquivo de definição de tabela para descrever uma tabela externa permanente ou temporária.

Como criar uma definição de tabela usando a detecção automática de esquema

Se você especifica um arquivo CSV, JSON ou do Planilhas Google sem incluir uma descrição de esquema in-line ou um arquivo de esquema, é possível usar a sinalização --autodetect para configurar a opção "autodetect" como true no arquivo de definição de tabela. Quando a detecção automática está ativada, o BigQuery tenta inferir automaticamente o esquema. Consulte Detecção automática de esquema no BigQuery para mais informações.

É possível usar a detecção automática de esquema ao criar definições de tabela para:

  • arquivos JSON armazenados no Cloud Storage ou no Google Drive;
  • arquivos CSV armazenados no Cloud Storage ou no Google Drive;
  • arquivos do Planilhas Google armazenados no Google Drive.

Definições de tabela JSON

É possível criar uma definição de tabela com a detecção automática ativada para arquivos JSON delimitados por nova linha armazenados no Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --autodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile.

    bq mkdef --autodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre a detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --autodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a BigQuery API, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre a detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect na referência da API.

Definições de tabela CSV

É possível criar uma definição de tabela com a detecção automática ativada para arquivos CSV armazenados no Cloud Storage ou no Google Drive.

Google Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --autodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile.

    bq mkdef --autodetect --source_format=CSV "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a BigQuery API, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre as opções de detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect. Para informações sobre as opções de CSV, consulte configuration.query.tableDefinitions.(key).csvOptions.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --autodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=CSV "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre as opções de detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect na referência da API. Para informações sobre as opções de CSV, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

Definições de tabela do Planilhas Google

Você pode criar uma definição de tabela com detecção automática ativada para arquivos do Planilhas Google (somente a primeira guia) armazenados no Google Drive.

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --autodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "sourceFormat": "GOOGLE_SHEETS",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Para informações sobre as configurações específicas de arquivos do Planilhas Google, consulte configuration.query.tableDefinitions.(key).googleSheetsOptions na referência da API. Além disso, muitas das configurações comuns se aplicam aos arquivos do Planilhas Google. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre as opções de detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre as opções de detecção automática de esquema, consulte configuration.query.tableDefinitions.(key).autodetect na referência da API. Para informações sobre as configurações específicas de arquivos do Planilhas Google, consulte configuration.query.tableDefinitions.(key).googleSheetsOptions.

Como criar uma definição de tabela usando um esquema in-line

Se você não quer usar a detecção automática de esquema, é possível criar um arquivo de definição de tabela fornecendo uma definição de esquema in-line. Para fornecer uma definição de esquema in-line, liste os campos e os tipos de dados na linha de comando no seguinte formato: [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE].

É possível usar uma definição de esquema in-line ao criar arquivos de definição de tabela para:

  • arquivos JSON armazenados no Cloud Storage ou no Google Drive;
  • arquivos CSV armazenados no Cloud Storage ou no Google Drive;
  • arquivos do Planilhas Google armazenados no Google Drive.

Definições de tabela JSON

É possível criar uma definição de tabela usando um esquema in-line para arquivos JSON delimitados por novas linhas armazenados no Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile. Substitua [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] pelas informações do esquema, por exemplo, Name:STRING,Address:STRING e assim por diante.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] pelas informações do esquema, por exemplo, Name:STRING,Address:STRING, e assim por diante.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Definições de tabela CSV

É possível criar uma definição de tabela usando um esquema in-line para arquivos CSV armazenados no Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile. Substitua [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] pelas informações do esquema, por exemplo, Name:STRING,Address:STRING e assim por diante.

    bq mkdef --noautodetect --source_format=CSV "[BUCKET_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre configurações específicas de arquivos CSV, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] pelas informações do esquema, por exemplo, Name:STRING,Address:STRING, e assim por diante.

    bq mkdef --noautodetect --source_format=CSV "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre configurações específicas de arquivos CSV, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

Definições de tabela do Planilhas Google

Você pode criar uma definição de tabela usando um esquema in-line para arquivos do Planilhas Google (somente a primeira guia) armazenados no Google Drive.

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] pelas informações do esquema, por exemplo, Name:STRING,Address:STRING, e assim por diante.

    bq mkdef --noautodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "googleSheetsOptions": {
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
        ]
      },
      "sourceFormat": "GOOGLE_SHEETS",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Para informações sobre as configurações específicas de arquivos do Planilhas Google, consulte configuration.query.tableDefinitions.sheetsOptions na referência da API. Além disso, muitas das configurações comuns se aplicam aos arquivos do Planilhas Google. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre as configurações específicas de arquivos do Planilhas Google, consulte configuration.query.tableDefinitions.sheetsOptions na referência da API.

Como criar uma definição de tabela usando um arquivo de esquema JSON

Se você não quer usar a detecção automática ou fornecer uma definição de esquema in-line, é possível criar um arquivo de esquema JSON e fazer referência a ele ao criar o arquivo de definição de tabela. É necessário criar o arquivo de esquema JSON manualmente, e ele precisa estar na sua máquina local. Não é possível fazer referência a um arquivo de esquema JSON no Cloud Storage ou no Google Drive.

É possível usar um arquivo de esquema JSON ao criar definições de tabela para:

  • arquivos JSON armazenados no Cloud Storage ou no Google Drive;
  • arquivos CSV armazenados no Cloud Storage ou no Google Drive;
  • arquivos do Planilhas Google armazenados no Google Drive.

Definições de tabela JSON

É possível criar uma definição de tabela usando um arquivo de esquema JSON para arquivos JSON delimitados por novas linhas armazenados no Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela. Substitua [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile. Substitua [PATH_TO_SCHEMA] pela localização do arquivo de esquema JSON na sua máquina local.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [PATH_TO_SCHEMA] pelo local do arquivo de esquema JSON na máquina local.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração específicos dos arquivos de origem JSON, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Definições de tabela CSV

É possível criar uma definição de tabela usando um arquivo de esquema JSON para arquivos CSV armazenados no Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage, por exemplo: gs://mybucket/myfile. Substitua [PATH_TO_SCHEMA] pela localização do arquivo de esquema JSON na sua máquina local.

    bq mkdef --noautodetect --source_format=CSV "[BUCKET_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre configurações específicas de arquivos CSV, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

Google Drive

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [PATH_TO_SCHEMA] pelo local do arquivo de esquema JSON na máquina local.

    bq mkdef --noautodetect --source_format=CSV "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Por exemplo, se o arquivo contém uma linha de cabeçalho, altere "skipLeadingRows" para 1.

    Existem várias configurações específicas para arquivos CSV, como "allowJaggedRows". Para mais informações, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API. Para informações sobre configurações específicas de arquivos CSV, consulte configuration.query.tableDefinitions.(key).csvOptions na referência da API.

Definições de tabela do Planilhas Google

Você pode criar uma definição de tabela usando um arquivo de esquema JSON para arquivos do Planilhas Google (somente a primeira guia) armazenados no Google Drive.

CLI

  1. Use o comando mkdef da ferramenta de linha de comando com a sinalização --noautodetect para criar uma definição de tabela. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive, por exemplo: https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Substitua [PATH_TO_SCHEMA] pelo local do arquivo de esquema JSON na máquina local.

    bq mkdef --noautodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" não está ativado e as informações do esquema são gravadas no arquivo de definição de tabela.

    {
      "googleSheetsOptions": {
        "skipLeadingRows": 0
      },
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
        ]
      },
      "sourceFormat": "GOOGLE_SHEETS",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Para informações sobre as configurações específicas de arquivos do Planilhas Google, consulte configuration.query.tableDefinitions.sheetsOptions na referência da API. Além disso, muitas das configurações comuns se aplicam aos arquivos do Planilhas Google. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Como criar definições de tabela Avro

Se você usa um arquivo Avro como fonte de dados externa, o BigQuery recupera automaticamente o esquema usando os dados de origem. Ao criar uma definição de tabela para arquivos Avro, você não precisa usar a detecção automática de esquema e não precisa fornecer uma definição ou um arquivo de esquema in-line.

É possível criar um arquivo de definição de tabela para dados Avro armazenados no Google Cloud Storage ou no Google Drive.

Cloud Storage

CLI

  1. Use a ferramenta de linha de comando mkdef para criar uma definição de tabela. Você não precisa usar a sinalização --noautodetect com arquivos Avro. A detecção automática de esquema é desativada para arquivos Avro. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage.

    bq mkdef --source_format=AVRO "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que a configuração "autodetect" não é necessária.

    {
      "sourceFormat": "AVRO",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração para arquivos de origem Avro, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Google Drive

CLI

  1. Use a ferramenta de linha de comando mkdef para criar uma definição de tabela. Você não precisa usar a sinalização --noautodetect com arquivos Avro. A detecção automática de esquema é desativada para arquivos Avro. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do arquivo de definição de tabela e [DRIVE_URI] pelo URI do Google Drive.

    bq mkdef --source_format=AVRO "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que "autodetect" está definido como true.

    {
      "autodetect": true,
      "sourceFormat": "AVRO",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há ajustes de configuração para arquivos de origem Avro, mas muitas das configurações gerais se aplicam a eles. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Como criar definições de tabela de exportação do Cloud Datastore e do Cloud Firestore

Se você usa uma exportação do Cloud Datastore ou do Cloud Firestore como uma fonte de dados externa, o BigQuery recupera automaticamente o esquema usando os dados de origem autoexplicativos. Ao criar uma definição de tabela para arquivos Avro, você não precisa usar a detecção automática de esquema e nem fornecer uma definição ou um arquivo de esquema in-line.

É possível criar um arquivo de definição de tabela para os dados de exportação do Cloud Datastore e do Cloud Firestore armazenados no Cloud Storage.

CLI

  1. Use mkdef da ferramenta de linha de comando para criar uma definição de tabela. Você não precisa usar a sinalização --noautodetect com os arquivos de backup do Cloud Datastore ou do Cloud Firestore. A detecção automática de esquema está desativada para esses tipos de arquivo. Com o comando mkdef, um arquivo de definição de tabela no formato JSON é gerado. No exemplo a seguir, criamos uma definição de tabela e gravamos a saída em um arquivo - /tmp/[FILE_NAME]. Substitua [FILE_NAME] pelo nome do seu arquivo de definição de tabela e [BUCKET_URI] pelo URI do Cloud Storage. Observe que o formato de origem DATASTORE_BACKUP é usado para o Cloud Datastore e o Cloud Firestore.

    bq mkdef --source_format=DATASTORE_BACKUP "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abra o arquivo de definição de tabela em um editor de texto. Por exemplo, o comando nano /tmp/[FILE_NAME] abre o arquivo em nano. É necessário que o arquivo esteja no formato a seguir. Observe que a configuração "autodetect" não é necessária.

    {
      "sourceFormat": "DATASTORE_BACKUP",
      "sourceUris": [
        "gs://[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edite manualmente o arquivo de definição de tabela para modificar, adicionar ou excluir configurações. Não há configurações específicas para os arquivos de exportação do Cloud Datastore e do Cloud Firestore, mas muitas das configurações gerais se aplicam a esses tipos de arquivo. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

API

Se estiver usando a API BigQuery, crie uma definição de tabela como parte da configuração do job. Para mais informações, consulte configuration.query.tableDefinitions na referência da API.

Como criar definições de tabela do Cloud Bigtable

Ao criar um arquivo de definição de tabela no Cloud Bigtable, você o gera manualmente no formato JSON. O uso do comando mkdef para criar uma definição de tabela não é compatível atualmente com fontes de dados do Cloud Bigtable. A detecção automática de esquema também não é compatível com o Cloud Bigtable. Para uma lista das opções de definição de tabela do Cloud Bigtable, consulte configuration.query.tableDefinitions.(key).bigtableOptions na referência da API.

O arquivo JSON de definição de tabela do Cloud Bigtable é semelhante ao mostrado a seguir. Com esse arquivo, o BigQuery lê os dados de um único grupo de colunas, interpretando os valores como números inteiros binários codificados.

{
    "sourceFormat": "BIGTABLE",
    "sourceUris": [
        "https://googleapis.com/bigtable/projects/[PROJECT_ID]/instances/[INSTANCE_ID]/tables/[TABLE_NAME]"
    ],
    "bigtableOptions": {
        "columnFamilies" : [
            {
                "familyId": "family_int",
                "type": "INTEGER",
                "encoding": "BINARY"
            }
        ],
    }
}

Compatibilidade com caracteres curinga para arquivos de definição de tabela

Se os dados do Cloud Storage estiverem separados em vários arquivos que compartilham um nome de base comum, é possível usar um caractere curinga no URI no arquivo de definição de tabela. Anexe um asterisco (*) ao nome de base e coloque o intervalo e o nome de arquivo entre aspas. Por exemplo, se você tiver dois arquivos chamados fed-sample000001.csv e fed-sample000002.csv, o URI do intervalo será "gs://mybucket/fed-sample*".

Você só pode usar um caractere curinga para objetos (nomes de arquivos) no intervalo. O caractere curinga pode ser exibido dentro ou no final do nome do objeto. Não é possível incluir um caractere curinga ao nome do intervalo.

Para dados do Cloud Bigtable, apenas um URI pode ser especificado. Além disso, ele precisa ser um URL HTTPS totalmente definido e válido para uma tabela do Cloud Bigtable. Para backups do Cloud Datastore, apenas um URI pode ser especificado, e precisa terminar com .backup_info.

O caractere curinga * não é permitido ao criar arquivos de definição de tabela para:

  • fontes de dados Cloud Bigtable;
  • exportações do Cloud Datastore armazenadas no Cloud Storage;
  • exportações do Cloud Firestore armazenadas no Cloud Storage;
  • dados armazenados no Google Drive.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

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