Introducción a la API de Storage Write (gRPC)
Puedes usar la API de BigQuery Storage Write (gRPC) para transmitir datos a BigQuery. En este documento, se describen la arquitectura, las capacidades y los casos de uso de la API de Storage Write (gRPC).
Para los proyectos nuevos, recomendamos usar la API de Storage Write (gRPC) en lugar de la API de Storage Write (REST). La API de Storage Write (gRPC) tiene precios más bajos y funciones más sólidas, incluida la semántica de entrega del tipo “exactamente una vez”.
Permisos necesarios
Para usar la API de Storage Write (gRPC), debes tener los permisos bigquery.tables.updateData.
Las siguientes funciones predefinidas de Identity and Access Management (IAM) incluyen los permisos bigquery.tables.updateData:
bigquery.dataEditorbigquery.dataOwnerbigquery.admin
Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.
Permisos de autenticación
El uso de la API de Storage Write (gRPC) requiere uno de los siguientes permisos de OAuth:
https://www.googleapis.com/auth/bigqueryhttps://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/bigquery.insertdata
Para obtener más información, consulta Descripción general de la autenticación.
Descripción general de la API de Storage Write (gRPC)
La abstracción principal en la API de Storage Write (gRPC) es una transmisión. Una transmisión escribe datos en una tabla de BigQuery. Más de una transmisión puede escribir de forma simultánea en la misma tabla.
Transmisión predeterminada
La API de Storage Write (gRPC) proporciona una transmisión predeterminada, diseñada para situaciones de transmisión en las que tienes datos que llegan de forma continua. Tiene las siguientes características:
- Los datos escritos en la transmisión predeterminada están disponibles de inmediato para realizar consultas.
- La transmisión predeterminada admite semántica de al menos una vez.
- No es necesario crear de forma explícita la transmisión predeterminada.
Si migras desde la API de Storage Write (REST), considera usar la transmisión predeterminada. Tiene una semántica de escritura similar, con mayor resiliencia de datos y menos restricciones de escalamiento.
Flujo de la API:
AppendRows(bucle)
Para obtener más información y el código de ejemplo, consulta Usa la transmisión predeterminada para la semántica de al menos una vez.
Transmisiones creadas por la aplicación
Puedes crear una transmisión de forma explícita si necesitas uno de los siguientes comportamientos:
- Escribe semánticas de escritura de tipo “solo una vez” a través del uso de desplazamientos de transmisión.
- Asistencia con propiedades ACID adicionales.
En general, las transmisiones creadas por la aplicación brindan un mayor control sobre la funcionalidad a costa de una complejidad adicional.
Cuando creas una transmisión, especificas un tipo. El tipo controla cuándo los datos escritos en la transmisión se vuelven visibles en BigQuery para su lectura.
Tipo pendiente
En tipo pendiente, los registros se almacenan en búfer en un estado pendiente hasta que confirmes la transmisión. Cuando confirmas una transmisión, todos los datos pendientes pasan a estar disponibles para su lectura. La confirmación es una operación atómica. Usa este tipo para las cargas de trabajo por lotes como alternativa a los trabajos de carga de BigQuery. Para obtener más información, consulta Carga datos por lotes con la API de Storage Write (gRPC).
Flujo de la API: