Cómo crear un archivo de definición de tablas para una fuente de datos externa

En esta página, se describe cómo crear un archivo de definición de tablas para una fuente de datos externa. Una fuente de datos externa (también conocida como fuente de datos federada) es una fuente de datos que puedes consultar directamente, aunque los datos no estén almacenados en BigQuery.

Archivos de definición de tablas

Un archivo de definición de tablas contiene una definición de esquema de tabla externa y metadatos, como el formato de datos de la tabla y las propiedades relacionadas. Cuando creas un archivo de definición de tablas, puedes utilizar la detección automática de esquemas a fin de definir el esquema para una fuente de datos externa, puedes proporcionar el esquema intercalado (en la línea de comandos) o puedes proporcionar el archivo JSON que contiene la definición del esquema.

Los archivos de definición de tablas se utilizan con la CLI y la API de BigQuery. No utilizas los archivos de definición de tablas cuando creas una tabla externa mediante GCP Console o la IU web clásica de BigQuery.

Puedes crear archivos de definición de tablas para las siguientes fuentes de datos externas:

  • Cloud Storage

    • Valores separados por comas (CSV)
    • JSON (delimitado por saltos de línea)
    • Archivos de Avro
    • Archivos de exportación de Cloud Datastore
    • Archivos de exportación de Cloud Firestore
  • Google Drive

    • Valores separados por comas (CSV)
    • JSON (delimitado por saltos de línea)
    • Archivos de Avro
    • Hojas de cálculo de Google (solo la primera pestaña)
  • Cloud Bigtable

Antes de comenzar

A fin de crear un archivo de definición de tablas, necesitas el URI para la fuente de datos:

Tablas externas permanentes y temporales

Puedes consultar una fuente de datos externa en BigQuery; para ello, usa una tabla permanente o una temporal. Cuando usas una tabla permanente, se crea una tabla en un conjunto de datos de BigQuery vinculado a tu fuente de datos externa. Debido a que la tabla es permanente, puedes usar controles de acceso a nivel del conjunto de datos para compartir la tabla con otras personas que también tienen acceso a la fuente de datos externa subyacente y puedes consultar la tabla en cualquier momento.

Cuando consultas una fuente de datos externa con una tabla temporal, envías un comando que incluye una consulta y crea una tabla no permanente vinculada a la fuente de datos externa. Cuando usas una tabla temporal, no se crea una tabla en uno de tus conjuntos de datos de BigQuery. Debido a que la tabla no se almacena de forma permanente en un conjunto de datos, no puede compartirse con otras personas. La consulta de una fuente de datos externa mediante una tabla permanente es útil para las consultas únicas ad-hoc sobre datos externos, o para procesos de extracción, transformación y carga (ETL).

Puedes utilizar un archivo de definición de tablas para describir una tabla externa permanente o temporal.

Cómo crear una definición de tablas con la detección automática de esquemas

Si especificas un archivo CSV, JSON o de Hojas de cálculo de Google sin incluir una descripción del esquema intercalado o un archivo de esquema, puedes utilizar la marca --autodetect para configurar la opción "autodetect" como true en el archivo de definición de tablas. Cuando la detección automática está habilitada, BigQuery hace un esfuerzo para inferir automáticamente el esquema. Consulta Detección automática del esquema en BigQuery para obtener más información.

Puedes utilizar la detección automática del esquema cuando creas definiciones de tablas para:

  • Los archivos JSON almacenados en Cloud Storage o Google Drive
  • Los archivos CSV almacenados en Cloud Storage o Google Drive
  • Los archivos de Hojas de cálculo de Google almacenados en Google Drive

Definiciones de tablas JSON

Puedes crear una definición de tablas con la detección automática habilitada para archivos JSON delimitados por saltos de línea que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --autodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile.

    bq mkdef --autodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --autodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect en la Referencia de la API.

Definiciones de tablas CSV

Puedes crear una definición de tablas con la detección automática habilitada para los archivos CSV que están almacenados en Cloud Storage o Google Drive.

Google Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --autodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile.

    bq mkdef --autodetect --source_format=CSV "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre las opciones de detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect. Si deseas obtener información sobre las opciones de CSV, consulta configuration.query.tableDefinitions.(key).csvOptions.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --autodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=CSV "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "csvOptions": {
        "allowJaggedRows": false,
        "allowQuotedNewlines": false,
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "quote": "\"",
        "skipLeadingRows": 0
      },
      "sourceFormat": "CSV",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre las opciones de detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect en la Referencia de la API. Si deseas obtener información sobre las opciones de CSV, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

Definiciones de tablas de las Hojas de cálculo de Google

Puedes crear una definición de tablas con la detección automática habilitada para los archivos de Hojas de cálculo de Google (solo la primera pestaña) que están almacenados en Google .Drive.

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --autodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd.

    bq mkdef --autodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "sourceFormat": "GOOGLE_SHEETS",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Si deseas obtener información sobre la configuración específica de los archivos de Hojas de cálculo de Google, consulta configuration.query.tableDefinitions.(key).googleSheetsOptions en la Referencia de la API. Además, muchos de los ajustes comunes se aplican a los archivos de Hojas de cálculo de Google. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre las opciones de detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre las opciones de detección automática de esquemas, consulta configuration.query.tableDefinitions.(key).autodetect en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos de Hojas de cálculo de Google, consulta configuration.query.tableDefinitions.(key).googleSheetsOptions.

Cómo crear una definición de tablas con un esquema intercalado

Si no deseas utilizar la detección automática de esquemas, puedes crear un archivo de definición de tablas; para ello, proporciona una definición de esquema intercalado. A fin de proporcionar una definición de esquema intercalado, enumera los campos y los tipos de datos en la línea de comandos con el siguiente formato: [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE].

Puedes utilizar una definición de esquema intercalado cuando creas archivos de definición de tablas para:

  • Los archivos JSON almacenados en Cloud Storage o Google Drive
  • Los archivos CSV almacenados en Cloud Storage o Google Drive
  • Los archivos de Hojas de cálculo de Google almacenados en Google Drive

Definiciones de tablas JSON

Puedes crear una definición de tablas con un esquema intercalado para los archivos JSON delimitados por saltos de línea que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile. Reemplaza [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] por la información del esquema, por ejemplo, Name:STRING,Address:STRING, y así sucesivamente.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] por la información del esquema, por ejemplo, Name:STRING,Address:STRING, y así sucesivamente.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Definiciones de tablas CSV

Puedes crear una definición de tablas con un esquema intercalado para los archivos CSV que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile. Reemplaza [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] por la información del esquema, por ejemplo, Name:STRING,Address:STRING, y así sucesivamente.

    bq mkdef --noautodetect --source_format=CSV "[BUCKET_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos CSV, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] por la información del esquema, por ejemplo, Name:STRING,Address:STRING, y así sucesivamente.

    bq mkdef --noautodetect --source_format=CSV "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos CSV, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

Definiciones de tablas de las Hojas de cálculo de Google

Puedes crear una definición de tablas con un esquema intercalado para los archivos de Hojas de cálculo de Google (solo la primera pestaña) que están almacenados en Google Drive.

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] por la información del esquema, por ejemplo, Name:STRING,Address:STRING, y así sucesivamente.

    bq mkdef --noautodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE] > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Si deseas obtener información sobre la configuración específica de los archivos de Hojas de cálculo de Google, consulta configuration.query.tableDefinitions.sheetsOptions en la Referencia de la API. Además, muchos de los ajustes comunes se aplican a los archivos de Hojas de cálculo de Google. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos de Hojas de cálculo de Google, consulta configuration.query.tableDefinitions.sheetsOptions en la Referencia de la API.

Cómo crear una definición de tabla con un archivo de esquema JSON

Si no deseas utilizar la detección automática ni proporcionar una definición de esquema intercalado, puedes crear un archivo de esquema JSON y hacer referencia a él cuando crees el archivo de definición de tablas. Debes crear el archivo de esquema JSON manualmente, que debe estar en tu máquina local. No se admite la referencia a un archivo de esquema JSON en Cloud Storage o Google Drive.

Puedes utilizar un archivo de esquema JSON cuando creas definiciones de tablas para:

  • Los archivos JSON almacenados en Cloud Storage o Google Drive
  • Los archivos CSV almacenados en Cloud Storage o Google Drive
  • Los archivos de Hojas de cálculo de Google almacenados en Google Drive

Definiciones de tablas JSON

Puedes crear una definición de tablas con un archivo de esquema JSON para los archivos JSON delimitados por saltos de línea que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas. Reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile. Reemplaza [PATH_TO_SCHEMA] por la ubicación del archivo de esquema JSON en tu máquina local.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[BUCKET_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [PATH_TO_SCHEMA] por la ubicación del archivo de esquema JSON en tu máquina local.

    bq mkdef --noautodetect --source_format=NEWLINE_DELIMITED_JSON "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "schema": {
        "fields": [
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          },
          {
            "name": "[FIELD]",
            "type": "[DATA_TYPE]"
          }
          ...
        ]
      },
      "sourceFormat": "NEWLINE_DELIMITED_JSON",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen JSON, pero muchos de los ajustes generales se aplican a los archivos JSON. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Definiciones de tablas CSV

Puedes crear una definición de tablas con un archivo de esquema JSON para los archivos CSV que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage, por ejemplo, gs://mybucket/myfile. Reemplaza [PATH_TO_SCHEMA] por la ubicación del archivo de esquema JSON en tu máquina local.

    bq mkdef --noautodetect --source_format=CSV "[BUCKET_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos CSV, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [PATH_TO_SCHEMA] por la ubicación del archivo de esquema JSON en tu máquina local.

    bq mkdef --noautodetect --source_format=CSV "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Por ejemplo, si tu archivo contiene una fila de encabezado, cambiarías "skipLeadingRows" a 1.

    Hay varios ajustes específicos de los archivos CSV, como "allowJaggedRows". Si deseas obtener más información, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API. Si deseas obtener información sobre la configuración específica de los archivos CSV, consulta configuration.query.tableDefinitions.(key).csvOptions en la Referencia de la API.

Definiciones de tablas de las Hojas de cálculo de Google

Puedes crear una definición de tablas con un archivo de esquema JSON para los archivos de Hojas de cálculo de Google (solo la primera pestaña) que están almacenados en Google Drive.

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos con la marca --noautodetect para crear una definición de tablas. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive, por ejemplo, https://drive.google.com/open?id=123ABCD123AbcD123Abcd. Reemplaza [PATH_TO_SCHEMA] por la ubicación del archivo de esquema JSON en tu máquina local.

    bq mkdef --noautodetect --source_format=GOOGLE_SHEETS "[DRIVE_URI]" [PATH_TO_SCHEMA] > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" no está habilitado, y la información del esquema se escribe en el archivo de definición de tablas.

    {
      "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) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. Si deseas obtener información sobre la configuración específica de los archivos de Hojas de cálculo de Google, consulta configuration.query.tableDefinitions.sheetsOptions en la Referencia de la API. Además, muchos de los ajustes comunes se aplican a los archivos de Hojas de cálculo de Google. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Cómo crear definiciones de tablas Avro

Si utilizas un archivo de Avro como fuente de datos externa, BigQuery recupera automáticamente el esquema con el uso de los datos de origen. Cuando creas una definición de tablas para los archivos de Avro, no necesitas utilizar la detección automática de esquemas ni proporcionar una definición de esquema intercalado o un archivo de esquema.

Puedes crear un archivo de definición de tablas para los datos de Avro que están almacenados en Cloud Storage o Google Drive.

Cloud Storage

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos para crear una definición de tablas. No es necesario utilizar la marca --noautodetect con los archivos de Avro. La detección automática de esquemas está inhabilitada para los archivos de Avro. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage.

    bq mkdef --source_format=AVRO "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que no es necesaria la configuración "autodetect".

    {
      "sourceFormat": "AVRO",
      "sourceUris": [
        "[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen de Avro, pero muchos de los ajustes generales se aplican a los archivos de Avro. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Google Drive

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos para crear una definición de tablas. No es necesario utilizar la marca --noautodetect con los archivos de Avro. La detección automática de esquemas está inhabilitada para los archivos de Avro. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [DRIVE_URI] por tu URI de Google Drive.

    bq mkdef --source_format=AVRO "[DRIVE_URI]" > /tmp/[FILE_NAME]
    
  2. Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que "autodetect" está configurado como true.

    {
      "autodetect": true,
      "sourceFormat": "AVRO",
      "sourceUris": [
        "[DRIVE_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de origen de Avro, pero muchos de los ajustes generales se aplican a los archivos de Avro. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Cómo crear definiciones de tablas de exportación de Cloud Datastore y Cloud Firestore

Si utilizas una exportación de Cloud Datastore o Cloud Firestore como fuente de datos externa, BigQuery recupera automáticamente el esquema con los datos de origen de descripción automática. Cuando creas una definición de tablas para los archivos de copias de seguridad de Cloud Datastore y Cloud Firestore, no necesitas utilizar la detección automática de esquemas ni proporcionar una definición de esquema intercalado o un archivo de esquema.

Puedes crear un archivo de definición de tablas para los datos de exportación de Cloud Datastore y Cloud Firestore que están almacenados en Cloud Storage.

CLI

  1. Utiliza el comando mkdef de la herramienta de línea de comandos para crear una definición de tablas. No es necesario utilizar la marca --noautodetect con los archivos de copias de seguridad de Cloud Datastore o Cloud Firestore. La detección automática de esquemas está inhabilitada para estos tipos de archivos. El comando mkdef genera un archivo de definición de tablas en formato JSON. En el siguiente ejemplo, se crea una definición de tablas y se escribe el resultado en un archivo: /tmp/[FILE_NAME]. Reemplaza [FILE_NAME] por el nombre de tu archivo de definición de tablas y reemplaza [BUCKET_URI] por tu URI de Cloud Storage. Ten en cuenta que el formato de origen de DATASTORE_BACKUP se utiliza para Cloud Datastore y Cloud Firestore.

    bq mkdef --source_format=DATASTORE_BACKUP "[BUCKET_URI]" > /tmp/[FILE_NAME]
    
  2. (Opcional) Abre el archivo de definición de tablas en un editor de texto. Por ejemplo, el comando nano /tmp/[FILE_NAME] abre el archivo en nano. El archivo debe verse de la siguiente manera. Ten en cuenta que no es necesaria la configuración "autodetect".

    {
      "sourceFormat": "DATASTORE_BACKUP",
      "sourceUris": [
        "gs://[BUCKET_URI]"
      ]
    }
    
  3. (Opcional) Edita manualmente el archivo de definición de tablas para modificar, agregar o borrar ajustes. No hay ajustes de configuración específicos de los archivos de exportación de Cloud Datastore y Cloud Firestore, pero muchos de los ajustes generales se aplican a estos tipos de archivos. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

API

Si utilizas la API de BigQuery, establece una definición de tablas como parte de la configuración de tu trabajo. Si deseas obtener más información, consulta configuration.query.tableDefinitions en la Referencia de la API.

Cómo crear definiciones de tablas de Cloud Bigtable

Cuando creas un archivo de definición de tablas para Cloud Bigtable, genera manualmente el archivo en formato JSON. El uso del comando mkdef para crear una definición de tablas actualmente no es compatible con las fuentes de datos de Cloud Bigtable. La detección automática de esquemas tampoco es compatible con Cloud Bigtable. Para obtener una lista de las opciones de definición de tablas de Cloud Bigtable, consulta configuration.query.tableDefinitions.(key).bigtableOptions en la Referencia de la API.

Un archivo de definición de tablas JSON para Cloud Bigtable se parece al siguiente ejemplo. Con el uso de este archivo de definición de tablas, BigQuery lee los datos de una sola familia de columnas, lo que permite interpretar los valores como número enteros codificados binarios.

{
    "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"
            }
        ],
    }
}

Compatibilidad con comodines para los archivos de definición de tablas

Si los datos de Cloud Storage están separados en varios archivos que comparten un nombre base común, puedes usar un comodín en el URI en el archivo de definición de tablas. Agrega un asterisco (*) al nombre base, y escribe el depósito y el nombre de archivo entre comillas. Por ejemplo, si tienes dos archivos con los nombres fed-sample000001.csv y fed-sample000002.csv, el URI del depósito sería "gs://mybucket/fed-sample*".

Solo puedes usar un comodín para objetos (nombres de archivos) dentro de tu depósito. El comodín puede aparecer dentro del nombre del objeto o al final de este. No se admite la adición de un comodín al nombre del depósito.

Para los datos de Cloud Bigtable, solo se puede especificar un URI y tiene que ser una URL HTTPS totalmente especificada y válida para una tabla de Cloud Bigtable. Para las copias de seguridad de Cloud Datastore, solo se puede especificar un URI y debe terminar con .backup_info.

El carácter comodín * no se permite cuando se crean archivos de definición de tablas para lo siguiente:

  • Fuentes de datos de Cloud Bigtable
  • Exportaciones de Cloud Datastore almacenadas en Cloud Storage
  • Exportaciones de Cloud Firestore almacenadas en Cloud Storage
  • Datos almacenados en Google Drive
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.