professional-cloud-data-engineer
Prepare and test your skills
Prepare and test your skills
Hybrid and multi-cloud integration connects Google Cloud data sources, such as BigQuery, to external business intelligence and visualization tools located on-premises, in other clouds, or with partners. The goal is to enable secure, performant, and scalable connections without moving the data from its source. This is achieved through direct API integration, standardized database drivers, and robust network security controls.
For tools with native integration, like Tableau, a direct connection is made using the BigQuery API. This API authenticates using OAuth 2.0 access tokens, which can be generated automatically by the tool or via a customer-supplied service account private key. For other tools and custom applications, Google provides ODBC and JDBC drivers. These drivers allow legacy or custom software to connect to BigQuery as if it were a traditional database, enabling integration with existing infrastructure.
Securing these cross-network connections is critical. Google Cloud provides frameworks like VPC Service Controls and Private Service Connect to enforce a security perimeter and ensure private connectivity.
Beyond connectivity, managing performance and governance is essential. Administrators must monitor BigQuery slot utilization and query performance, especially with many concurrent reporting workloads from external tools. Integrating with Cloud Monitoring and analyzing BigQuery audit logs helps track usage and optimize costs. Access should be governed using Identity and Access Management (IAM) to grant precise permissions at the dataset, table, or view level, ensuring external tools only access authorized data.
BigQuery BI Engine is an in-memory analysis service that accelerates SQL queries by caching frequently accessed data. It integrates directly with the BigQuery API, so any BI tool like Looker Studio, Tableau, or Power BI can use it without modification. The service uses vectorized processing and advanced data encodings to efficiently use CPU and compress data. To use BI Engine, you must create a reservation that defines the dedicated storage capacity for acceleration at the project and region level.
Dashboard performance can be further optimized by combining BI Engine with table partitioning, clustering, and materialized views.
BI Engine allows you to designate preferred tables to ensure acceleration is applied to your most critical datasets. When you mark tables as preferred, BI Engine prioritizes caching them and prevents other traffic from interfering. If there isn't enough RAM, BI Engine intelligently offloads less-frequently accessed partitions and columns. For the best performance on specific dashboards, create a separate project with a dedicated BI Engine reservation large enough to hold all the required tables and mark them as preferred.
BI Engine works best with simpler dashboard-type queries that spend most of their execution time processing raw data. To maximize benefits, minimize the number of joins in your queries; BI Engine is optimized for queries where a large fact table is joined with smaller dimension tables. However, BI Engine has limitations:
A practical workaround for unsupported features is to save query results to a table and schedule regular refreshes to keep the data current.
Connecting third-party visualization tools to Google Cloud data sources requires establishing secure connections that enforce least-privilege access. Tools like Tableau connect natively using the BigQuery API, while other applications use specialized ODBC or JDBC drivers. Authentication for these connections is managed through OAuth 2.0 access tokens or customer-supplied service account private keys. When using compute resources, attaching a service account directly to the resource is the preferred authentication method. Security administrators must carefully restrict the access scopes of these service accounts to prevent credential leakage.
A five-step process flow showing how external BI tools authenticate securely to BigQuery: the tool connects via the BigQuery API or ODBC/JDBC drivers, authenticates with an OAuth 2.0 token or service account private key, attaches a service account with restricted access scopes, receives IAM role authorization at the dataset, table, or view level, and gains least-privilege access enforced by authorized views and row-level security.
Authorization is enforced using Identity and Access Management (IAM) roles to control access to datasets, tables, and views. BigQuery supports three role types:
The use of basic roles in production should be minimized to prevent over-permissioning and to uphold the principle of least privilege.
For sensitive data, fine-grained access control like row-level security and column-level security is required. One effective method is using authorized views or authorized datasets, which allow users to query data without giving them direct access to the underlying base tables. BigLake tables extend this capability to data in Cloud Storage, enabling SQL queries on external data while enforcing strict security policies without sharing bucket permissions.
A strong security model requires separating responsibilities within the data pipeline. For example, a data analyst should have permissions to query tables but should never have direct read access to the underlying storage buckets. This segregation ensures analysts cannot bypass data warehouse controls, while data warehouse administrators retain sole authority over managing datasets and binding tables.
BI tools like Looker Studio, Tableau, Power BI, and custom apps connect to BigQuery through the BigQuery API or ODBC/JDBC drivers. Inside the Google Cloud project, BI Engine accelerates supported queries using an in-memory cache of preferred tables sized by a BI Engine reservation, while unsupported queries revert to BigQuery slots; Cloud Monitoring tracks BI Engine metrics and slot utilization.
You can connect using the native BigQuery API with OAuth 2.0 authentication or use ODBC and JDBC drivers for other tools, and secure the cross-network connections with VPC Service Controls to create a service perimeter and Private Service Connect for private access without exposing traffic to the public internet.
BigQuery BI Engine is an in-memory analysis service that accelerates SQL queries by caching frequently accessed data, integrating directly with the BigQuery API for tools like Looker Studio, Tableau, or Power BI. Performance is further optimized by combining it with data layout strategies like table partitioning, clustering, and materialized views, and by designating preferred tables within a dedicated reservation.
BigQuery BI Engine does not support queries using wildcard tables, external tables, or JavaScript UDFs, and queries returning more than 1 GiB of data cannot be accelerated. A workaround is to save query results to a table and schedule regular refreshes.
Authentication is managed through OAuth 2.0 access tokens or service account private keys, with service accounts attached to compute resources being the preferred method. Authorization is enforced using Identity and Access Management (IAM) roles, preferring predefined or custom roles over basic roles, and fine-grained security is added using authorized views, row-level security, and BigLake tables.
Your organization uses a Looker dashboard connected to BigQuery to analyze sales performance. The dashboard displays the current month's data and relies on a query that joins a massive sales_fact table with multiple smaller dimension tables.
Users are reporting high dashboard latency, and the repeated execution of these complex joins is driving up analytical costs. You need to optimize the data layout and leverage BigQuery BI Engine to minimize query latency and reduce costs.
What should you do?
Create a materialized view that pre-joins the tables and partition it by the sales date. Configure a BI Engine reservation and add both the materialized view and its base tables to the preferred tables list.
Create a logical view that joins the tables and partition the base sales_fact table by the sales date. Configure a BI Engine reservation and add the logical view to the preferred tables list.
Export the joined data to a BigLake Iceberg table and partition it by the sales date. Configure a BI Engine reservation and add the BigLake Iceberg table to the preferred tables list.
Create a materialized view that pre-joins the tables and partition it by the sales date. Configure a BI Engine reservation and add only the materialized view to the preferred tables list.