Consulta de datos de almacenamiento de Blob
En este documento, se describe cómo consultar datos almacenados en una tabla de BigLake de Azure Blob Storage.
Antes de comenzar
Asegúrate de tener una tabla de BigLake de almacenamiento de blob.
Roles obligatorios
Para consultar tablas de BigLake de Blob Storage, asegúrate de que el emisor de la API de BigQuery tenga los siguientes roles:
- Usuario de conexión de BigQuery (
roles/bigquery.connectionUser
) - Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) - BigQuery User (
roles/bigquery.user
)
El emisor puede ser tu cuenta o una cuenta de servicio de conexión de Blob Storage. Según los permisos que tengas, puedes otorgarte estos roles o pedirle a tu administrador que te los otorgue. Para obtener más información sobre cómo otorgar roles, consulta Visualiza los roles que se pueden otorgar en los recursos.
A fin de ver los permisos exactos necesarios para consultar las tablas de BigLake de Blob Storage, expande la sección Permisos necesarios:
Permisos necesarios
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
(solo es necesario si lees datos con la API de BigQuery Storage Read)bigquery.tables.get
bigquery.tables.getData
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Consulta tablas de BigLake en BLOB Storage
Después de crear una tabla de BigLake de Blob Storage, puedes consultarla con la sintaxis de Google SQL, de la misma manera que si fuese una tabla de BigQuery estándar.
Los resultados de las consultas en caché se almacenan en una tabla temporal de BigQuery. Para consultar una tabla de BigLake temporal, consulta Consulta una tabla de BigLake temporal. Para obtener más información sobre las limitaciones y cuotas de BigQuery Omni, consulta las limitaciones y cuotas.
Cuando crees una reserva en una región de BigQuery Omni, usa la edición Enterprise. Para aprender a crear una reserva con una edición, consulta Crea reservas.
Ejecuta una consulta en la tabla de BigLake de Blob Storage:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente oración:
SELECT * FROM DATASET_NAME.TABLE_NAME;
Reemplaza lo siguiente:
DATASET_NAME
: Es el nombre del conjunto de datos que creaste.TABLE_NAME
: Es la tabla de BigLake que creaste.Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
Consulta una tabla temporal
BigQuery crea tablas temporales para almacenar los resultados de las consultas. Para recuperar el resultado de la consulta de tablas temporales, puedes usar la consola de Google Cloud o la API de BigQuery.
Selecciona una de las opciones siguientes:
Console
Cuando consultas una tabla de BigLake que hace referencia a datos de la nube externas, puedes ver los resultados de la consulta que se muestran en la consola de Google Cloud.
API
Para consultar una tabla de BigLake con la API, sigue estos pasos:
- Crea un objeto de trabajo.
- Llama al método
jobs.insert
para ejecutar la consulta de forma asíncrona o al métodojobs.query
para ejecutar la consulta de forma síncrona y pasar el objetoJob
. - Para leer filas con el
jobs.getQueryResults
, pasa la referencia del trabajo determinado y los métodostabledata.list
, pasando la referencia de la tabla determinada del resultado de la consulta.
Consulta la 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, Google Drive, Amazon S3 y Azure Blob Storage.
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"'
Reemplaza lo siguiente:
-
PROJECT_ID
es un ID de proyecto válido (esta marca no es necesaria si usas Cloud Shell o si configuras un proyecto predeterminado en Google Cloud CLI). -
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
.
¿Qué sigue?
- Obtén más información sobre cómo usar SQL en BigQuery.
- Obtén información sobre BigQuery Omni.
- Obtén más información sobre las cuotas de BigQuery.