Esta página descreve como usar o wrapper de dados externos do BigQuery para aceder a dados armazenados ou acessíveis através do BigQuery a partir de uma interface do AlloyDB para PostgreSQL. Pode armazenar dados no BigQuery como tabelas nativas, tabelas externas do BigLake ou tabelas do BigLake para o Apache Iceberg no BigQuery. Para mais informações acerca das vistas do BigQuery na vista geral do AlloyDB.
Esta página pressupõe que tem um cluster e uma instância principal do AlloyDB, e que tem um conjunto de dados e tabelas do BigQuery. Para mais informações, consulte os artigos Crie conjuntos de dados e Crie e use tabelas.
Antes de começar
- Peça acesso à funcionalidade Vistas do BigQuery para o seu cluster e aguarde até receber a confirmação da ativação antes de seguir as instruções nesta página.
- Familiarize-se com os tipos de dados e as associações de colunas do BigQuery suportados.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Ative as APIs Cloud necessárias para criar e estabelecer ligação ao AlloyDB para PostgreSQL.
No passo Confirmar projeto, clique em Seguinte para confirmar o nome do projeto ao qual vai fazer alterações.
No passo Ativar APIs, clique em Ativar para ativar o seguinte:
- API AlloyDB
- API Compute Engine
- Cloud Resource Manager API
- API de rede de serviços
- BigQuery Storage API
A API Service Networking é necessária se planear configurar a conetividade de rede ao AlloyDB através de uma rede VPC que resida no mesmo projeto que o AlloyDB. Google Cloud
A API Compute Engine e a API Cloud Resource Manager são necessárias se planear configurar a conetividade de rede ao AlloyDB através de uma rede VPC que reside num projeto Google Cloud diferente.
- Visualizador de dados do BigQuery
(
roles/bigquery.dataViewer) ou qualquer função personalizada com autorizaçõesbigquery.tables.getebigquery.tables.getData. Quando concedida numa tabela ou numa vista, esta função concede autorizações para ler dados e metadados da tabela ou da vista. - Utilizador da sessão de leitura do BigQuery
(
roles/bigquery.readSessionUser) ou qualquer função personalizada com autorizaçõesbigquery.readsessions.createebigquery.readsessions.getData. Oferece a capacidade de criar e usar sessões de leitura. Abra a CLI gcloud. Se não tiver a CLI gcloud instalada, instale e inicialize a CLI gcloud ou use o Cloud Shell.
Execute o comando
gcloud beta alloydb clusters describe:gcloud beta alloydb clusters describe CLUSTER --region=REGIONSubstitua o seguinte:
CLUSTER: o ID do cluster do AlloyDB.REGION: a localização do cluster do AlloyDB, por exemplo,asia-east1,us-east1. Consulte a lista completa de regiões em Gerir localizações de instâncias.
O resultado contém um campo
serviceAccountEmail, que é a conta de serviço deste cluster.Conceda as autorizações necessárias. Para mais informações, consulte o artigo Controle o acesso aos recursos com a IAM.
Se a conta de serviço do cluster não tiver as autorizações necessárias, são apresentados os seguintes erros quando uma consulta é executada na tabela do BigQuery:
The user does not have bigquery.readsessions.create permissionsPermission bigquery.tables.get denied on tablePermission bigquery.tables.getData denied on table
Crie a extensão.
- Ligue-se à instância do AlloyDB através do cliente psql seguindo as instruções em Ligue um cliente psql a uma instância. Em alternativa, pode usar o AlloyDB Studio. Para mais informações, consulte o artigo Faça a gestão dos seus dados através da Google Cloud consola.
Execute o seguinte comando:
CREATE EXTENSION bigquery_fdw;
Crie um servidor externo para definir os parâmetros de ligação para o conjunto de dados do BigQuery remoto.
CREATE SERVER BIGQUERY_SERVER_NAME FOREIGN DATA WRAPPER bigquery_fdw;Substitua o seguinte:
BIGQUERY_SERVER_NAME: identificador exclusivo do servidor externo. Defina isto uma vez numa determinada base de dados. Pode substituirBIGQUERY_SERVER_NAMEpelo nome do seu servidor.
Crie o mapeamento de utilizadores executando o comando
CREATE USER MAPPING, que especifica as credenciais a usar quando se liga ao servidor externo.CREATE USER MAPPING FOR USERNAME SERVER BIGQUERY_SERVER_NAME ;Substitua o seguinte:
USERNAME: um nome de utilizador da base de dados ou um utilizador de IAM que acede à tabela externa.BIGQUERY_SERVER_NAME: identificador exclusivo do servidor externo que criou.
Defina tabelas externas que correspondam às tabelas às quais quer aceder no BigQuery através do comando
CREATE FOREIGN TABLE. Este comando permite-lhe definir a estrutura de uma tabela remota. A tabela externa pode ter todas ou um subconjunto das colunas na tabela de origem no BigQuery.CREATE FOREIGN TABLE TABLENAME ( COLUMNX_NAME DATE_TYPE, COLUMNX_NAME DATE_TYPE, ... ) SERVER BIGQUERY_SERVER_NAME OPTIONS (project BIGQUERY_PROJECT_ID, dataset BIGQUERY_DATASET_NAME, table BIGQUERY_TABLE_NAME);Substitua o seguinte:
TABLENAME: o nome da tabela externa na base de dados AlloyDB local.COLUMNX_NAME: o nome da coluna tem de corresponder ao nome da coluna na origem do BigQuery.Xindica que a tabela pode ser criada com várias colunas.DATA_TYPE: o tipo de dados da coluna.BIGQUERY_SERVER_NAME: identificador exclusivo do servidor externo que criou.BIGQUERY_PROJECT_ID: ID do projeto onde reside o conjunto de dados do BigQuery.BIGQUERY_DATASET_NAME: nome do conjunto de dados do BigQuery para a tabela.BIGQUERY_TABLE_NAME: nome da tabela do BigQuery.
Depois de criar a tabela externa, pode consultá-la da mesma forma que consulta qualquer tabela no AlloyDB.
- Importe dados do BigQuery e do Iceberg para o AlloyDB.
- Saiba mais sobre os tipos de dados do BigQuery e as associações de colunas suportados.
Funções necessárias
Para conceder acesso de leitura ao conjunto de dados do BigQuery à conta de serviço do cluster do AlloyDB, precisa das seguintes autorizações. Para mais informações, consulte o artigo Conceda acesso do AlloyDB ao conjunto de dados do BigQuery.
Conceda acesso do AlloyDB ao conjunto de dados do BigQuery
Depois de ativar a funcionalidade de vistas do BigQuery no cluster do AlloyDB, conceda ao cluster do AlloyDB acesso à conta de serviço ao conjunto de dados do BigQuery.
Para usar a CLI gcloud, pode instalar e inicializar a CLI Google Cloud ou usar a Cloud Shell.