- https://cloud.google.com/bigquery/docs/introduction
- https://cloud.google.com/bigquery/streaming-data-into-bigquery
- https://cloud.google.com/bigquery/docs/datasets-intro
- https://cloud.google.com/iam/docs/creating-managing-service-account-keys
- https://cloud.google.com/bigquery/docs/schemas
- Streams data into BigQuery using JSON row inserts.
- Maps event fields to BigQuery table columns.
- Authenticates using Google Cloud service accounts.
- Logs schema validation and write errors for troubleshooting.
- Supports batched inserts for improved performance where applicable.
- The connector subscribes to a Kafka-native Condense topic.
- Incoming messages are expected to be valid JSON objects.
- The connector authenticates using the configured Google Cloud Service Account.
- Each message is inserted into the configured BigQuery table.
- Insert status and errors are recorded in Condense logs.
Field-by-Field Explanation
1. Title
Internal reference name for the connector.
Examples:
- bq-fleet-logger
- bq-revenue-stream
- bq-telemetry-archive
- fleet-intelligence-prod
- customer-analytics-2025
- raw_events
- vehicle_telemetry
- streamed_data
- driver_behaviour
- trip_summaries
- fraud_alerts
roles/bigquery.dataEditor role on the dataset or table.
For security:
- Use dedicated service accounts.
- Rotate credentials periodically.
- Store credentials securely.
roles/bigquery.dataEditor permission.
3. Streaming Insert Failures
Cause: Network issues or BigQuery streaming quota limits.
Solution: Verify connectivity and monitor Google Cloud quotas.
4. Payload Parsing Error
Cause: Payload is not valid JSON.
Solution: Transform Avro, CSV, or binary payloads into JSON before sending them to the connector.
Advanced Topics
1. Streaming Inserts
BigQuery streaming inserts provide low-latency data availability for analytics.
2. Schema Evolution
Changes to incoming event schemas must also be reflected in the destination BigQuery table.
3. Partitioning and Clustering
Use BigQuery table partitioning and clustering for improved query performance on large datasets.
4. Duplicate Handling
Streaming inserts do not automatically eliminate duplicate records.
Use unique identifiers or additional Condense logic where idempotent processing is required.
Best Practices
- Keep the Condense message schema aligned with the destination BigQuery schema.
- Flatten deeply nested JSON where possible to improve query performance.
- Use descriptive project, dataset, and table names.
- Monitor BigQuery streaming quotas and connector logs.
- Store Service Account credentials securely and rotate them regularly.