BigQuery admite la consulta de datos de Cloud Storage en los siguientes formatos:
- Valores separados por comas (CSV)
- JSON (delimitado por saltos de línea)
- Avro
- ORC
- Parquet
- Exportaciones de Datastore
- Exportaciones de Firestore
BigQuery admite la consulta de datos de Cloud Storage de estas clases de almacenamiento:
- Estándar
- Nearline
- Coldline
- Archivo
Para consultar una fuente de datos externa de Cloud Storage, 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 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 incluye el nombre del bucket 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á 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 la documentación sobre los URI de solicitud de Cloud Storage.
BigQuery no admite 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 origen que se muestra a continuación, 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:
Abre Cloud Storage Console
Explora la ubicación del objeto (archivo) que contiene los datos de origen.
En la parte superior de la consola de Cloud Storage, toma nota de la ruta al objeto. Para redactar el URI, reemplaza
gs://bucket/file
por 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.
Tablas externas permanentes y temporales
Puedes consultar una fuente de datos externa en BigQuery; para ello, usa una tabla permanente o una temporal. Una tabla permanente es una tabla que se crea en un conjunto de datos y está vinculada a tu fuente de datos externa. Debido a que la tabla es permanente, puedes usar controles de acceso para compartir la tabla con otras personas que también tengan acceso a la fuente de datos externa subyacente y también puedes hacer consultas 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 datos de Cloud Storage con tablas externas permanentes
Permisos y alcances obligatorios
Cuando consultas datos externos en Cloud Storage mediante una tabla permanente, necesitas permisos para ejecutar un trabajo de consulta a nivel de proyecto o superior, crear una tabla que apunte a los datos externos y acceder a la tabla. Cuando tus datos externos se almacenan en Cloud Storage, también necesitas permisos para acceder a los datos en el bucket de Cloud Storage.
Permisos de BigQuery
Como mínimo, se requieren los siguientes permisos para crear y consultar una tabla externa en BigQuery.
bigquery.tables.create
bigquery.tables.getData
bigquery.jobs.create
Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.tables.create
y bigquery.tables.getData
:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.jobs.create
:
bigquery.user
bigquery.jobUser
bigquery.admin
Además, si un usuario tiene permisos bigquery.datasets.create
, se le otorga el acceso bigquery.dataOwner
cuando crea un conjunto de datos.
El acceso bigquery.dataOwner
le brinda al usuario la posibilidad de crear tablas externas en el conjunto de datos, pero aún se necesitan los permisos bigquery.jobs.create
para consultar los datos.
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Permisos de Cloud Storage
Para consultar datos externos en un depósito de Cloud Storage, debes tener permisos storage.objects.get
. Si usas un comodín de URI, también debes tener permisos storage.objects.list
.
Se puede otorgar la función predefinida de IAM storage.objectViewer
para proporcionar los permisos storage.objects.get
y storage.objects.list
.
Alcances para instancias de Compute Engine
Cuando creas una instancia de Compute Engine, puedes especificar una lista de alcances para la instancia. Los permisos controlan el acceso de la instancia a los productos de Google Cloud, incluido 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 información sobre cómo aplicar alcances a una instancia de Compute Engine, consulta la sección acerca de cómo cambiar 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 la sección sobre las cuentas de servicio.
Crea y consulta una tabla externa permanente
Puedes crear una tabla permanente vinculada a tu fuente de datos externa mediante las siguientes opciones:
- Usa Cloud Console.
- Usar el comando
mk
de la herramienta de línea de comandos debq
- Mediante la creación de un
ExternalDataConfiguration
cuando uses el método de APItables.insert
- Mediante la ejecución de la declaración de lenguaje de definición de datos (DDL)
CREATE EXTERNAL TABLE
- Usa bibliotecas cliente.
Para consultar una fuente de datos externa mediante 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 para compartir la tabla con otras personas que también tengan 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 el método de API
tables.insert
para crear una tabla externa permanente, debes crear un recurso de tabla que incluya una definición de esquema y unExternalDataConfiguration
. Establece el parámetroautodetect
entrue
para habilitar la detección automática de esquemas en las fuentes de datos compatibles. - Si usas la herramienta de línea de comandos de
bq
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 intercalado con la herramienta debq
. Cuando creas un archivo de definición de tablas, puedes habilitar la detección automática de esquemas de las fuentes de datos compatibles. - Si usas Cloud Console para crear una tabla externa permanente, puedes ingresar el esquema de tabla de forma manual o usar la detección automática de esquemas en las fuentes de datos admitidas.
Para crear una tabla externa, sigue estos pasos:
Console
- En Cloud Console, abre la página de BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
En el panel de detalles, haz clic en Crear tabla (Create table).
En la página Crear tabla, en la sección Fuente haz lo siguiente:
En Create table from (Crear tabla desde), selecciona Cloud Storage.
En el campo Select file from Cloud Storage bucket (Seleccionar archivo del depósito de Cloud Storage), busca el archivo o depósito de Cloud Storage o ingresa el URI de Cloud Storage. Ten en cuenta que no puedes incluir varios URI en Cloud Console, pero se admiten comodines. El bucket de Cloud Storage debe estar en la misma ubicación que el conjunto de datos que contiene la tabla que quieres crear.
En File format (Formato de archivo), selecciona el formato de tus datos. Entre los formatos válidos para datos externos de Cloud Storage, se incluyen los siguientes:
- Valores separados por comas (CSV)
- JSON (delimitado por saltos de línea)
- Avro
- Copia de seguridad de Datastore (también se usa para Firestore)
En la página Crear tabla (Create table), en la sección Destino (Destination), haz lo siguiente:
En Dataset name (Nombre del conjunto de datos), selecciona el conjunto de datos correspondiente.
Verifica que Table type (Tipo de tabla) esté configurado como Tabla externa.
En el campo Nombre de la tabla, ingresa el nombre de la tabla que quieres crear en BigQuery.
En la sección Esquema, ingresa la definición del esquema.
- Para los archivos JSON o CSV, puedes marcar la opción Detección automática a fin de habilitar la detección automática de esquemas. La Detección automática no está disponible para las exportaciones de Datastore, Firestore ni archivos Avro. La información del esquema de estos tipos de archivos se recupera de forma automática desde los datos de origen autodescriptivos.
- Para archivos CSV y JSON, puedes ingresar la información del esquema de forma manual como se indica a continuación:
- Habilita Editar como texto y, luego, ingresa el esquema de la tabla como un arreglo JSON.
Nota: Para ver el esquema de una tabla existente en formato JSON, ingresa el siguiente comando en la herramienta de línea de comandos de
bq
:bq show --format=prettyjson dataset.table
. - Usa Agregar campo para ingresar el esquema de forma manual.
- Habilita Editar como texto y, luego, ingresa el esquema de la tabla como un arreglo JSON.
Nota: Para ver el esquema de una tabla existente en formato JSON, ingresa el siguiente comando en la herramienta de línea de comandos de
Haz clic en Crear tabla.
Después de crear la tabla permanente, puedes ejecutar una consulta en ella como si fuera una tabla de BigQuery nativa. Cuando se completa tu consulta, puedes exportar los resultados como archivos CSV o JSON, guardarlos como una tabla o en Hojas de cálculo de Google.
bq
Debes crear una tabla en la herramienta de línea de comandos de bq
mediante el comando bq mk
. Cuando usas la herramienta de línea de comandos de bq
para crear una tabla 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)
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.table
Aquí:
- definition_file es la ruta de acceso al archivo de definición de tabla de tu máquina local.
- dataset es el nombre del conjunto de datos que contiene la tabla.
- table es el nombre de la tabla que crearás.
Por ejemplo, con el siguiente comando, se crea una tabla permanente llamada mytable
mediante un archivo de definición de tabla denominado 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 siguiente comando:
bq mk \ --external_table_definition=schema@source_format=Cloud Storage URI \ dataset.table
En el ejemplo anterior, se ilustra lo siguiente:
- schema es la definición de esquema en el formato
field:data_type,field:data_type
. - source_format es
CSV
,NEWLINE_DELIMITED_JSON
,AVRO
oDATASTORE_BACKUP
(también se usaDATASTORE_BACKUP
para Filestore). - Cloud Storage URI es tu URI de Cloud Storage.
- dataset es el nombre del conjunto de datos que contiene la tabla.
- table es el nombre de la tabla que crearás.
Por ejemplo, con el siguiente comando, se crea una tabla permanente con el nombre sales
vinculada a un archivo CSV almacenado en Cloud Storage con la siguiente definición de esquema: 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@source_format=Cloud Storage URI \ dataset.table
En el ejemplo anterior, se ilustra lo siguiente:
- schema es la ruta de acceso al archivo de esquema JSON en tu máquina local.
- source_format es
CSV
,NEWLINE_DELIMITED_JSON
,AVRO
oDATASTORE_BACKUP
(DATASTORE_BACKUP
también se usa para Firestore). - Cloud Storage URI es tu URI de Cloud Storage.
- dataset es el nombre del conjunto de datos que contiene la tabla.
- table es el nombre de la tabla que crearás.
Por ejemplo, con el siguiente comando, se crea una tabla llamada sales
vinculada a un archivo CSV almacenado en Cloud Storage mediante el archivo de esquema /tmp/sales_schema.json
.
bq mk \
--external_table_definition=/tmp/sales_schema.json@CSV=gs://mybucket/sales.csv \
mydataset.sales
Después de crear la tabla permanente, puedes ejecutar una consulta en ella como si fuera una tabla de BigQuery nativa. Cuando se completa tu consulta, puedes exportar los resultados como archivos CSV o JSON, guardarlos como una tabla o en Hojas de cálculo de Google.
DDL
Puedes crear una tabla externa permanente si ejecutas la instrucción de DDL CREATE EXTERNAL TABLE
. Puedes especificar el esquema de manera explícita. Si no especificas un esquema, BigQuery usa la detección automática de esquemas para inferirlo a partir de los datos externos.
En el siguiente ejemplo, se usa la detección automática de esquemas para crear una tabla externa llamada sales
que está vinculada a un archivo CSV almacenado en Cloud Storage:
CREATE OR REPLACE EXTERNAL TABLE mydataset.sales
OPTIONS (
format = 'CSV',
uris = ['gs://mybucket/sales.csv']
)
En el siguiente ejemplo, se especifica un esquema de manera explícita y se omite la primera fila en el archivo CSV.
CREATE OR REPLACE EXTERNAL TABLE mydataset.sales
(
Region STRING,
Quarter STRING,
Total_Sales INT64
)
OPTIONS (
format = 'CSV',
uris = ['gs://mybucket/sales.csv'],
skip_leading_rows = 1
)
API
Crea un ExternalDataConfiguration
cuando uses el método de API tables.insert
. Especifica la propiedad schema
o establece la propiedad autodetect
en true
a fin de habilitar la detección automática de esquemas para las fuentes de datos compatibles.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para Python incluidas en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Consulta datos de Cloud Storage con tablas temporales
Si quieres realizar una consulta sobre 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 tabla o el esquema proporcionado para crear la tabla externa temporal, y es en esta donde se ejecuta la consulta. La herramienta de línea de comandos de bq
y la API admiten las consultas a una fuente de datos externa mediante el uso de 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).
Permisos necesarios
Cuando consultas datos externos en Cloud Storage con una tabla temporal, necesitas permisos para ejecutar trabajos de consulta a nivel de proyecto o superior, además de acceso al conjunto de datos que contiene la tabla que apunta a los datos externos. Cuando consultas datos en Cloud Storage, también necesitas permisos para acceder al bucket que los contiene.
Permisos de BigQuery
Como mínimo, se requieren los siguientes permisos para consultar una tabla externa en BigQuery mediante una tabla temporal.
bigquery.tables.getData
bigquery.jobs.create
Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.tables.getData
:
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Las siguientes funciones predefinidas de IAM incluyen los permisos bigquery.jobs.create
:
bigquery.user
bigquery.jobUser
bigquery.admin
Además, si un usuario tiene permisos bigquery.datasets.create
, se le otorga el acceso bigquery.dataOwner
cuando crea un conjunto de datos.
El acceso bigquery.dataOwner
le brinda al usuario la posibilidad de crear tablas externas en el conjunto de datos y acceder a ellas, pero aún se necesitan los permisos bigquery.jobs.create
para consultar los datos.
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Permisos de Cloud Storage
Para consultar datos externos en un depósito de Cloud Storage, debes tener permisos storage.objects.get
. Si usas un comodín de URI, también debes tener permisos storage.objects.list
.
Se puede otorgar la función predefinida de IAM storage.objectViewer
para proporcionar los permisos storage.objects.get
y storage.objects.list
.
Crea y consulta una tabla temporal
Puedes crear y consultar una tabla temporal vinculada a una fuente de datos externa mediante la herramienta de línea de comandos de bq
, la API o las bibliotecas cliente.
bq
Para consulta una tabla temporal vinculada a una fuente de datos externa, usa el comando bq query
con la marca --external_table_definition
. Cuando usas la herramienta de línea de comandos de bq
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)
Opcional: 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 mediante un archivo de definición de tablas, ingresa el comando siguiente.
bq --location=location query \ --external_table_definition=table::definition_file \ 'query'
Aquí:
- location es el nombre de tu ubicación.
La marca
--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes establecer el valor de la marca enasia-northeast1
. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc. - table es el nombre de la tabla temporal que creas.
- definition_file es la ruta de acceso al archivo de definición de tabla de tu máquina local.
- query es la consulta que enviarás a la tabla temporal.
Por ejemplo, con el siguiente comando, se crea y consulta una tabla temporal llamada sales
mediante un archivo de definición de tablas denominado sales_def
.
bq 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::schema@source_format=Cloud Storage URI \ 'query'
Aquí:
- location es el nombre de tu ubicación.
La marca
--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes establecer el valor de la marca enasia-northeast1
. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc. - table es el nombre de la tabla temporal que crearás.
- schema es la definición de esquema intercalada en el formato
field:data_type,field:data_type
. - source_format es
CSV
,NEWLINE_DELIMITED_JSON
,AVRO
oDATASTORE_BACKUP
(DATASTORE_BACKUP
también se usa para Firestore). - Cloud Storage URI es tu URI de Cloud Storage.
- query es la consulta que enviarás a la tabla temporal.
Por ejemplo, con el siguiente comando, se crea y consulta una tabla temporal llamada sales
vinculada a un archivo CSV almacenado en Cloud Storage con la siguiente definición de esquema: Region:STRING,Quarter:STRING,Total_sales:INTEGER
.
bq 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 siguiente comando:
bq --location=location query \ --external_table_definition=schema_file@source_format=Cloud Storage URI \ 'query'
Aquí:
- location es el nombre de tu ubicación.
La marca
--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes establecer el valor de la marca enasia-northeast1
. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc. - 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
oDATASTORE_BACKUP
(DATASTORE_BACKUP
también se usa para Firestore). - Cloud Storage URI es tu URI de Cloud Storage.
- query es la consulta que enviarás a la tabla temporal.
Por ejemplo, con el siguiente comando, se crea y consulta una tabla temporal llamada sales
vinculada a un archivo CSV almacenado en Cloud Storage mediante el archivo de esquema /tmp/sales_schema.json
.
bq query
external_table_definition=sales::/tmp/sales_schema.json@CSV=gs://mybucket/sales.csv
'SELECT Region, Total_sales FROM sales'
API
Crea una configuración de trabajo de consulta. Revisa Consulta datos de Google Drive para obtener información sobre las llamadas a
jobs.query
yjobs.insert
.Especifica la fuente de datos externa mediante la creación de una
ExternalDataConfiguration
.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para Python incluidas en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Consulta datos particionados de forma externa
Consulta las instrucciones para consultar datos de Cloud Storage particionados de forma externa.
Admisión de comodines para el 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 es gs://mybucket/fed-sample*
.
Luego, puedes usar este URI de comodín en Cloud Console, así como en la herramienta de línea de comandos de bq
, la API o las bibliotecas cliente.
Solo puedes usar un comodín para los objetos (nombres de archivos) dentro de tu bucket. 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 bucket.
Para las exportaciones de Google Datastore, solo se puede especificar un URI, y este debe terminar con .backup_info
o .export_metadata
.
No se permite el carácter comodín de asterisco en los siguientes casos:
- Cuando creas tablas externas vinculadas a exportaciones de Datastore o Firestore.
- Cuando cargas datos de exportación de Datastore o Cloud Firestore desde Cloud Storage.
Seudocolumna _FILE_NAME
Las tablas basadas en fuentes de datos externas proporcionan una seudocolumna llamada _FILE_NAME
. Esta columna contiene la ruta completamente calificada 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. En la consulta de ejemplo siguiente, se muestra la selección de _FILE_NAME
mediante la asignación del alias fn
a la seudocolumna.
bq query \
--project_id=project_id \
--use_legacy_sql=false \
'SELECT
name,
_FILE_NAME AS fn
FROM
`dataset.table_name`
WHERE
name contains "Alex"'
En el ejemplo anterior, se ilustra lo siguiente:
- 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.
Cuando la consulta tiene un predicado de filtro en la seudocolumna _FILE_NAME
, BigQuery intentará omitir los archivos de lectura que no cumplen con el filtro. Se aplican recomendaciones similares a las consultas a tablas particionadas por tiempo de transferencia mediante seudocolumnas cuando se construyen predicados de consulta con la seudocolumna _FILE_NAME
.