Cómo consultar datos de Cloud Storage

BigQuery es compatible con las consultas de datos de Cloud Storage en los siguientes formatos:

  • Valores separados por comas (CSV)
  • JSON (delimitado por saltos de línea)
  • Archivos Avro
  • Exportaciones de Cloud Datastore
  • Exportaciones de Cloud Firestore

BigQuery admite las consultas de datos de Cloud Storage de estas clases de almacenamiento:

  • Multirregional
  • Regional
  • Nearline
  • Coldline

Para consultar una fuente de datos externos de Cloud Storage de forma directa, proporciona la ruta de acceso del URI de Cloud Storage a tus datos y crea una tabla que haga referencia a la fuente de datos. La tabla usada para hacer referencia a la fuente de datos de Cloud Storage puede ser una tabla permanente o una tabla temporal.

Asegúrate de tener en cuenta la ubicación de tu conjunto de datos y del depósito de Cloud Storage cuando consultas datos almacenados en Cloud Storage.

Recupera el URI de Cloud Storage

Para crear una tabla externa con una fuente de datos de Cloud Storage, debes proporcionar el URI de Cloud Storage.

El URI de Cloud Storage comprende tu nombre del depósito y tu objeto (nombre del archivo). Por ejemplo, si el depósito de Cloud Storage se llama mybucket y el archivo de datos se llama myfile.csv, el URI del depósito sería gs://mybucket/myfile.csv. Si los datos se separan en varios archivos, puedes usar un comodín en el URI. Para obtener más información, consulta los URI de solicitud de Cloud Storage.

BigQuery no es compatible con los URI de origen que incluyen varias barras consecutivas después de la doble barra inicial. Los nombres de los objetos de Cloud Storage pueden contener varios caracteres de barras consecutivas (“/”). Sin embargo, BigQuery convierte varias barras consecutivas en una sola barra. Por ejemplo, el URI de fuente siguiente, a pesar de ser válido en Cloud Storage, no funciona en BigQuery: gs://[BUCKET]/my//object//name.

Para recuperar el URI de Cloud Storage, sigue estos pasos:

  1. Abre Cloud Storage Console

    Cloud Storage Console

  2. Explora la ubicación del objeto (archivo) que contiene los datos de origen.

  3. En la parte superior de Cloud Storage Console, toma nota de la ruta al objeto. Para redactar el URI, reemplaza gs://[BUCKET]/[FILE] con la ruta adecuada, por ejemplo, gs://mybucket/myfile.json. [BUCKET] es el nombre del depósito de Cloud Storage y [FILE] es el nombre del objeto (archivo) que contiene los datos.

Controles de acceso y alcances

Controles de acceso para tablas externas permanentes

Puedes compartir el acceso a una tabla externa permanente vinculada a una fuente de datos de Cloud Storage. Puedes compartir el acceso con los usuarios (incluidas las cuentas de servicio) o los grupos. Para consultar la tabla externa, tus usuarios o grupos necesitan (como mínimo) lo siguiente:

  • Acceso de READER o bigquery.dataViewer al conjunto de datos que contiene la tabla externa.
  • Acceso de bigquery.user al proyecto que contiene el conjunto de datos (a fin de ejecutar trabajos de consulta).
  • La función de IAM predefinida storage.objectViewer para leer los datos de Cloud Storage o los permisos siguientes:

    • storage.objects.get
    • storage.objects.list si usas un comodín de URI.

Alcances para instancias de Compute Engine

Cuando creas una instancia de Compute Engine, puedes especificar una lista de alcances para la instancia. Los alcances controlan el acceso a la instancia por parte de los productos de GCP, incluso Cloud Storage. Las aplicaciones que se ejecutan en la VM usan la cuenta de servicio adjuntada a la instancia para llamar a las API de Google Cloud.

Si configuras una instancia de Compute Engine de modo que se ejecute como la cuenta de servicio predeterminada de Compute Engine y que esa cuenta de servicio acceda a una tabla externa vinculada a una fuente de datos de Cloud Storage, la instancia necesita acceso de solo lectura a Cloud Storage. El alcance https://www.googleapis.com/auth/devstorage.read_only se otorga a la cuenta de servicio predeterminada de Compute Engine de manera automática. Si creas tu propia cuenta de servicio, aplica el alcance de solo lectura de Cloud Storage en la instancia.

Para obtener más información acerca de cómo aplicar alcances a una instancia de Compute Engine, consulta Cambia la cuenta de servicio y los niveles de acceso de una instancia. Para obtener más información sobre las cuentas de servicio de Compute Engine, consulta Cuentas de servicio.

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. Consultar una fuente de datos externa con una tabla temporal es útil para las consultas únicas ad-hoc sobre datos externos o procesos de extracción, transformación y carga (ETL).

Consulta de datos de Cloud Storage con tablas externas permanentes

Para consultar una fuente de datos externa por medio de una tabla permanente, debes crear una tabla en un conjunto de datos de BigQuery vinculado a tu fuente de datos externa. Los datos no se almacenan en la tabla de BigQuery. Debido a que la tabla es permanente, puedes usar controles de acceso a nivel de conjunto de datos para compartir la tabla con otras personas que también tienen acceso a la fuente de datos externa subyacente.

Existen tres maneras de especificar la información del esquema cuando creas una tabla externa permanente en BigQuery:

  • Si usas la API para crear una tabla externa permanente, en primer lugar, debes crear un archivo de definición de tablas que defina el esquema y los metadatos correspondientes a la fuente de datos externa. Cuando creas un archivo de definición de tablas, puedes habilitar la detección automática de las fuentes de datos compatibles.
  • Si usas la CLI para crear una tabla externa permanente, puedes usar un archivo de definición de tablas, puedes crear y usar tu propio archivo de esquema, o puedes ingresar el esquema de forma intercalada (en la línea de comandos).
  • Si usas la consola o la IU web de BigQuery clásica para crear una tabla externa permanente, puedes ingresar el esquema de tabla de forma manual o usar la detección automática del esquema en las fuentes de datos admitidas.

Para consultar datos de Cloud Storage con una tabla externa permanente, debes hacer lo siguiente:

  • Crea un archivo de definición de tablas (para la API y, de forma opcional, destinada a la CLI).
  • Crea una tabla en BigQuery vinculada a la fuente de datos externa.
  • Consulta la tabla vinculada a la fuente de datos externa.

Cómo crear una tabla externa permanente

Puedes crear una tabla permanente vinculada a tu fuente de datos externa mediante las siguientes opciones:

  • Usando GCP Console o la IU web de BigQuery clásica
  • Usando el comando mk de la herramienta de línea de comandos
  • Configurando las propiedades de configuration.query.tableDefinitions en un trabajo de consulta mediante la API

Console

  1. Abre la IU web de BigQuery en GCP Console.
    Ir a la IU web de BigQuery
  2. En el panel de navegación, en la sección Recursos (Resources), expande tu proyecto y selecciona un conjunto de datos. Haz clic en Crear tabla (Create table) en la parte derecha de la ventana. Crear tabla
  3. En la página Crear tabla (Create table), en la sección Origen (Source) haz lo siguiente:

    • En Crear tabla desde (Create table from), selecciona el tipo de fuente que desees.

      Crear fuente de la tabla

    • En el campo de origen, busca el depósito de Cloud Storage/archivo, o ingresa el URI de Cloud Storage. Ten en cuenta que no puedes incluir varios URI en la IU web de BigQuery, pero se admiten comodines. El depósito de Cloud Storage debe estar en la misma ubicación que el conjunto de datos que contiene la tabla que vas a crear.

      Seleccionar archivo

    • En Formato de archivo (File format), selecciona el formato de tus datos. Entre los formatos válidos para datos de Cloud Storage, se incluyen los siguientes:

      • Valores separados por comas (CSV)
      • JSON (delimitado por saltos de línea)
      • Avro
      • Copia de seguridad de Cloud Datastore (también se usa con Cloud Firestore)
  4. En la página Crear tabla (Create table), en la sección Destino (Destination) haz lo siguiente:

    • En Nombre del conjunto de datos (Dataset name), selecciona el conjunto de datos que corresponda.

      Seleccionar conjunto de datos

    • En el campo Nombre de la tabla (Table name), ingresa el nombre de la tabla que estás creando en BigQuery.

    • Verifica que el Tipo de tabla (Table type) esté configurado como Tabla externa (External table).

  5. En la sección Esquema (Schema), ingresa la definición del esquema.

    • Para los archivos JSON o CSV, puedes marcar la opción de Detección automática a fin de habilitar la detección automática de esquemas. La detección automática no está disponible para exportaciones de Cloud Datastore o Cloud Firestore y archivos Avro. La información del esquema de estos tipos de archivos se recupera de forma automática desde los datos de origen autodescriptivos.
    • Ingresa la información del esquema de forma manual de la siguiente manera:
      • Habilita Editar como texto (Edit as text) y, luego, ingresa el esquema de la tabla como un arreglo de JSON. Nota: Puedes ver el esquema de una tabla existente en formato JSON si ingresas el siguiente comando: bq show --format=prettyjson [DATASET].[TABLE].
      • Usa Agregar campo (Add field) para ingresar el esquema de forma manual.
  6. Haz clic en Crear tabla (Create table).

Una vez creada la tabla permanente, puedes ejecutar una consulta en la tabla como si fuera una tabla nativa de BigQuery, sujeta a los límites de las fuentes de datos externos.

Una vez completa tu consulta, puedes exportar los resultados como archivos CSV o JSON, guardar los resultados como una tabla o en Hojas de cálculo de Google. Consulta Descarga, guarda y exporta datos para obtener más información.

IU clásica

  1. Ve a la IU web de BigQuery.
    Ir a la IU web de BigQuery

  2. En el panel de navegación, desplázate sobre un conjunto de datos, haz clic en el ícono de flecha hacia abajo imagen del ícono de flecha hacia abajo y selecciona Crear tabla nueva.

  3. En la página Crear tabla, en la sección Datos fuente realiza lo siguiente:

    • En Ubicación, selecciona Cloud Storage y en el campo de origen, ingresa el URI de Cloud Storage. Ten en cuenta que se admiten comodines para los URI de Cloud Storage.
    • En Formato de archivo, selecciona el formato de tus datos. Entre los formatos válidos para datos de Cloud Storage, se incluyen los siguientes:

      • Valores separados por comas (CSV)
      • JSON (delimitado por saltos de línea)
      • Avro
      • Copia de seguridad de Cloud Datastore (también se usa con Cloud Firestore)
  4. En la página Crear tabla, en la sección Tabla de destino:

    • Para el Nombre de tabla, elige el conjunto de datos apropiado y, en el campo de nombre de tabla, ingresa el nombre de la tabla permanente que estás creando en BigQuery.
    • Verifica que el Tipo de tabla esté configurado como Tabla externa.
  5. En la sección Esquema, ingresa la información del esquema.

    • Para los archivos JSON o CSV, puedes marcar la opción de Detección automática a fin de habilitar la detección automática de esquemas. La detección automática no está disponible para exportaciones de Cloud Datastore o Cloud Firestore y archivos Avro. La información del esquema de estos tipos de archivos se recupera de forma automática desde los datos de origen autodescriptivos.

    • También puedes ingresar información de esquemas CSV o JSON de forma manual de la manera siguiente:

      • Haz clic en Editar como texto y, luego, ingresa el esquema de la tabla en formato JSON.
      • Usa Agregar campo para ingresar de forma manual el esquema.
  6. Selecciona los elementos aplicables en la sección Opciones y haz clic en Crear tabla.

Una vez creada la tabla permanente, puedes ejecutar una consulta en la tabla como si fuera una tabla nativa de BigQuery, sujeta a los límites de las fuentes de datos externos.

Una vez completa tu consulta, puedes exportar los resultados como archivos CSV o JSON, guardar los resultados como una tabla o en Hojas de cálculo de Google. Consulta Descarga, guarda y exporta datos para obtener más información.

CLI

Debes usar el comando bq mk para crear una tabla en la herramienta de línea de comandos de BigQuery. Cuando usas la CLI para crear una tabla vinculada a una fuente de datos externa, puedes identificar el esquema de la tabla por medio de las opciones siguientes:

  • Un archivo de definición de tablas (almacenado en tu máquina local)
  • Una definición de esquema intercalado
  • Un archivo de esquema JSON (almacenado en tu máquina local)

Para crear una tabla permanente vinculada a tu fuente de datos de Cloud Storage por medio de un archivo de definición de tablas, ingresa el comando siguiente:

bq mk --external_table_definition=[DEFINITION_FILE] [DATASET_ID].[TABLE_NAME]

Donde:

  • [DEFINITION_FILE] es la ruta de acceso al archivo de definición de tablas en tu máquina local.
  • [DATASET_ID] es el nombre del conjunto de datos que contiene la tabla.
  • [TABLE_NAME] es el nombre de la tabla que creas.

Por ejemplo, con el comando siguiente, se crea una tabla permanente llamada mytable por medio de un archivo de definición de tablas llamado mytable_def.

bq mk --external_table_definition=/tmp/mytable_def mydataset.mytable

Para crear una tabla permanente vinculada a tu fuente de datos externa por medio de una definición de esquema intercalado, ingresa el comando siguiente.

bq mk --external_table_definition=[SCHEMA]@[SOURCE_FORMAT]=[CLOUD_STORAGE_URI] [DATASET_ID].[TABLE_NAME]

Donde:

  • [SCHEMA] es la definición de esquema (en el formato [FIELD]:[DATA_TYPE], [FIELD]:[DATA_TYPE]).
  • [SOURCE_FORMAT] es CSV, NEWLINE_DELIMITED_JSON, AVRO, o DATASTORE_BACKUP (DATASTORE_BACKUP también se usa con Cloud Filestore).
  • [CLOUD_STORAGE_URI] es tu URI de Cloud Storage
  • [DATASET_ID] es el nombre del conjunto de datos que contiene la tabla.
  • [TABLE_NAME] es el nombre de la tabla que creas.

Por ejemplo, con el comando siguiente, se crea una tabla permanente llamada sales vinculada a un archivo CSV almacenado en Cloud Storage con la definición de esquema siguiente: Region:STRING,Quarter:STRING,Total_sales:INTEGER.

bq mk --external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv mydataset.sales

Para crear una tabla permanente vinculada a tu fuente de datos externa por medio de un archivo de esquema JSON, ingresa el comando siguiente.

bq mk --external_table_definition=[SCHEMA_FILE]@[SOURCE_FORMAT]=[CLOUD_STORAGE_URI] [DATASET_ID].[TABLE_NAME]

Donde:

  • [SCHEMA_FILE] es la ruta de acceso al archivo de esquema JSON en tu máquina local.
  • [SOURCE_FORMAT] es CSV, NEWLINE_DELIMITED_JSON, AVRO, o DATASTORE_BACKUP (DATASTORE_BACKUP también se usa con Cloud Firestore).
  • [CLOUD_STORAGE_URI] es tu URI de Cloud Storage
  • [DATASET_ID] es el nombre del conjunto de datos que contiene la tabla.
  • [TABLE_NAME] es el nombre de la tabla que creas.

Por ejemplo, con el comando siguiente, se crea una tabla llamada sales vinculada a un archivo CSV almacenado en Cloud Storage por medio del archivo de esquema /tmp/sales_schema.json.

bq mk --external_table_definition=/tmp/sales_schema.json@CSV=gs://mybucket/sales.csv mydataset.sales

Una vez que creada la tabla permanente, puedes ejecutar una consulta en la tabla como si fuera una tabla nativa de BigQuery, sujeta a las limitaciones para las fuentes de datos externas.

Una vez completa tu consulta, puedes descargar los resultados como CSV o JSON, guardar los resultados como una tabla, o guardar los resultados en Hojas de cálculo de Google. Consulta Descarga, guarda y exporta datos para obtener más información.

API

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'

# Configure the external data source
dataset_ref = client.dataset(dataset_id)
table_id = 'us_states'
schema = [
    bigquery.SchemaField('name', 'STRING'),
    bigquery.SchemaField('post_abbr', 'STRING')
]
table = bigquery.Table(dataset_ref.table(table_id), schema=schema)
external_config = bigquery.ExternalConfig('CSV')
external_config.source_uris = [
    'gs://cloud-samples-data/bigquery/us-states/us-states.csv',
]
external_config.options.skip_leading_rows = 1  # optionally skip header row
table.external_data_configuration = external_config

# Create a permanent table linked to the GCS file
table = client.create_table(table)  # API request

# Example query to find states starting with 'W'
sql = 'SELECT * FROM `{}.{}` WHERE name LIKE "W%"'.format(
    dataset_id, table_id)

query_job = client.query(sql)  # API request

w_states = list(query_job)  # Waits for query to finish
print('There are {} states with names starting with W.'.format(
    len(w_states)))

Consulta datos de Cloud Storage con tablas temporales

Si quieres realizar una consulta en una fuente de datos externa sin crear una tabla permanente, debes ejecutar un comando que combine lo siguiente:

  • Un archivo de definición de tablas con una consulta
  • Una definición de esquema intercalado con una consulta
  • Un archivo de definición de esquema JSON con una consulta

Se emplea el archivo de definición de esquema o el esquema proporcionado para crear la tabla externa temporal y se ejecuta la consulta en la tabla externa temporal. La CLI y la API de BigQuery admiten las consultas de fuentes de datos externas con una tabla temporal.

Cuando usas una tabla externa temporal, no se crea una tabla en uno de los 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. Consultar una fuente de datos externa con una tabla temporal es útil para las consultas únicas ad-hoc sobre datos externos o procesos de extracción, transformación y carga (ETL).

Crea y consulta una tabla temporal

Puedes crear y consultar una tabla temporal vinculada a una fuente de datos externa por medio de la CLI o la API.

CLI

Usa el comando bq query con la marca --external_table_definition para consultar una tabla temporal vinculada a una fuente de datos externa. Cuando usas la CLI para consultar una tabla temporal vinculada a una fuente de datos externa, puedes identificar el esquema de la tabla por medio de las siguientes opciones:

  • Un archivo de definición de tablas (almacenado en tu máquina local)
  • Una definición de esquema intercalado
  • Un archivo de esquema JSON (almacenado en tu máquina local)

Proporciona la marca --location y configura el valor en tu ubicación.

Para realizar una consulta en una tabla temporal vinculada a tu fuente de datos externa por medio de un archivo de definición de tablas, ingresa el comando siguiente.

bq --location=[LOCATION] query --external_table_definition=[TABLE_NAME]::[DEFINITION_FILE] '[QUERY]'

Donde:

  • [LOCATION] es el nombre de tu ubicación. La marca --location es opcional si tus datos están en las ubicaciones multirregionales US o EU.
  • [TABLE_NAME] es el nombre de la tabla temporal que creas.
  • [DEFINITION_FILE] es la ruta de acceso al archivo de definición de tablas en tu máquina local.
  • [QUERY] es la consulta que envías a la tabla temporal.

Por ejemplo, con el comando siguiente, se crea y consulta una tabla temporal llamada sales por medio de un archivo de definición de tablas llamado sales_def.

bq --location=US query --external_table_definition=sales::sales_def 'SELECT Region,Total_sales FROM sales;'

Para realizar una consulta en una tabla temporal vinculada a tu fuente de datos externa por medio de una definición de esquema intercalado, ingresa el comando siguiente.

bq --location=[LOCATION] query --external_table_definition=[TABLE_NAME]::[SCHEMA]@[SOURCE_FORMAT]=[CLOUD_STORAGE_URI] '[QUERY]'

Donde:

  • [LOCATION] es el nombre de tu ubicación. La marca --location es opcional si tus datos están en las ubicaciones multirregionales US o EU.
  • [TABLE_NAME] es el nombre de la tabla temporal que creas.
  • [SCHEMA] es la definición del esquema intercalado (en el formato [FIELD]:[DATA_TYPE],[FIELD]:[DATA_TYPE]).
  • [SOURCE_FORMAT] es CSV, NEWLINE_DELIMITED_JSON, AVRO, o DATASTORE_BACKUP (DATASTORE_BACKUP también se usa con Cloud Firestore).
  • [CLOUD_STORAGE_URI] es tu URI de Cloud Storage
  • [QUERY] es la consulta que envías a la tabla temporal.

Por ejemplo, con el comando siguiente, se crea y consulta una tabla temporal llamada sales vinculada a un archivo CSV almacenado en Cloud Storage con la definición de esquema siguiente: Region:STRING,Quarter:STRING,Total_sales:INTEGER.

bq --location=US query --external_table_definition=sales::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv 'SELECT Region,Total_sales FROM sales;'

Para realizar una consulta en una tabla temporal vinculada a tu fuente de datos externa por medio de un archivo de esquema JSON, ingresa el comando siguiente:

bq --location=[LOCATION] query --external_table_definition=[SCHEMA_FILE]@[SOURCE_FORMAT]=[CLOUD_STORAGE_URI] '[QUERY]'

Donde:

  • [LOCATION] es el nombre de tu ubicación. La marca --location es opcional si tus datos están en las ubicaciones multirregionales US o EU.
  • [SCHEMA_FILE] es la ruta de acceso al archivo de esquema JSON en tu máquina local.
  • [SOURCE_FORMAT] es CSV, NEWLINE_DELIMITED_JSON, AVRO, o DATASTORE_BACKUP (DATASTORE_BACKUP también se usa con Cloud Firestore).
  • [CLOUD_STORAGE_URI] es tu URI de Cloud Storage
  • [QUERY] es la consulta que envías a la tabla temporal.

    Por ejemplo, con el comando siguiente, se crea y consulta una tabla temporal llamada sales vinculada a un archivo CSV almacenado en Cloud Storage por medio del archivo de esquema /tmp/sales_schema.json.

    bq --location=US query --external_table_definition=sales::/tmp/sales_schema.json@CSV=gs://mybucket/sales.csv 'SELECT Region,Total_sales FROM sales;'

API

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

# from google.cloud import bigquery
# client = bigquery.Client()

# Configure the external data source and query job
external_config = bigquery.ExternalConfig('CSV')
external_config.source_uris = [
    'gs://cloud-samples-data/bigquery/us-states/us-states.csv',
]
external_config.schema = [
    bigquery.SchemaField('name', 'STRING'),
    bigquery.SchemaField('post_abbr', 'STRING')
]
external_config.options.skip_leading_rows = 1  # optionally skip header row
table_id = 'us_states'
job_config = bigquery.QueryJobConfig()
job_config.table_definitions = {table_id: external_config}

# Example query to find states starting with 'W'
sql = 'SELECT * FROM `{}` WHERE name LIKE "W%"'.format(table_id)

query_job = client.query(sql, job_config=job_config)  # API request

w_states = list(query_job)  # Waits for query to finish
print('There are {} states with names starting with W.'.format(
    len(w_states)))

Compatibilidad con comodines para los URI de Cloud Storage

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. También puedes usar un comodín cuando creas una tabla externa sin usar un archivo de definición de tablas.

Para agregar un comodín al URI de Cloud Storage, debes agregar un asterisco (*) al nombre base. Por ejemplo, si tienes dos archivos llamados fed-sample000001.csv y fed-sample000002.csv, el URI del depósito sería gs://mybucket/fed-sample*. Este URI comodín se puede usar en la consola, la IU clásica, la CLI o la API.

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

Para las exportaciones de Google Cloud Datastore, solo se puede especificar un URI, y este debe terminar con .backup_info o .export_metadata.

El carácter comodín * no está permitido en las situaciones siguientes:

  • Cuando creas tablas externas vinculadas a las exportaciones de Cloud Datastore o Cloud Firestore.
  • Cuando cargas datos de exportación de Cloud Datastore o Cloud Firestore desde Cloud Storage.

Pseudocolumna _FILE_NAME

Las tablas basadas en fuentes de datos externas proporcionan una pseudocolumna llamada _FILE_NAME. Esta columna contiene la ruta de acceso calificada por completo al archivo al que pertenece la fila. Esta columna solo está disponible para tablas que hagan referencia a datos externos almacenados en Cloud Storage y Google Drive.

El nombre de columna _FILE_NAME está reservado, lo que significa que no puedes crear una columna con ese nombre en ninguna de tus tablas. Para seleccionar el valor de _FILE_NAME, debes usar un alias. La consulta de ejemplo siguiente muestra la selección de _FILE_NAME mediante la asignación del alias fn a la pseudocolumna.

bq query --project_id=[PROJECT_ID] --use_legacy_sql=false 'SELECT name, _FILE_NAME AS fn from [DATASET].[TABLE_NAME] where name contains "Alex";' 

Donde:

  • [PROJECT_ID] es el ID del proyecto válido (esta marca no es necesaria si usas Cloud Shell o si configuras un proyecto predeterminado en el SDK de Cloud).
  • [DATASET] es el nombre del conjunto de datos que almacena la tabla externa permanente.
  • [TABLE_NAME] es el nombre de la tabla externa permanente.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

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