Associe ao Apache Spark
Como administrador do BigQuery, pode criar uma associação para permitir que os analistas de dados executem procedimentos armazenados para o Apache Spark.
Antes de começar
Ative a API BigQuery Connection.
-
Para receber as autorizações necessárias para criar uma associação do Spark, peça ao seu administrador para lhe conceder a função de administrador da associação do BigQuery (
roles/bigquery.connectionAdmin
) do IAM no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
- Opcional: para gerir os metadados através do Dataproc Metastore, certifique-se de que criou um serviço do Dataproc Metastore.
- Opcional: para ver o histórico de tarefas através das interfaces Web do Spark History Server, certifique-se de que criou um Persistent History Server (PHS) do Dataproc.
Considerações sobre a localização
Quando escolher uma localização para os seus dados, considere o seguinte:
Várias regiões
Tem de especificar Trusted Cloud recursos localizados na mesma grande área geográfica:
Uma ligação na multirregião dos EUA pode fazer referência a um Spark History Server ou a um Dataproc Metastore em qualquer região única na área geográfica dos EUA, como
us-central1
,us-east4
ouus-west2
.Uma ligação na multirregião da UE do BigQuery pode fazer referência a um servidor de histórico do Spark ou a um metastore do Dataproc nos estados membros da União Europeia, como
europe-north1
oueurope-west3
.
Regiões únicas
Uma associação numa única região só pode fazer referência a Trusted Cloud
recursos na mesma região. Por exemplo, uma ligação na única região us-east4
só pode fazer referência a um servidor de histórico do Spark ou a um Dataproc Metastore em us-east4
.
Crie associações
Selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery.
No painel Explorador, clique em
Adicionar dados.É apresentada a caixa de diálogo Adicionar dados.
No painel Filtrar por, na secção Tipo de origem de dados, selecione Aplicações empresariais.
Em alternativa, no campo Pesquisar origens de dados, pode introduzir
Spark
.Na secção Origens de dados em destaque, clique em Apache Spark.
Clique no cartão da solução Apache Spark: federação do BigQuery.
No painel Origem de dados externa, introduza as seguintes informações:
Na lista Tipo de ligação, selecione Apache Spark.
No campo ID da associação, introduza um nome para a associação, por exemplo,
spark_connection
.Na lista Localização dos dados, selecione uma região.
Pode criar uma ligação em regiões e multirregiões que suportam o BigQuery. Para mais informações, consulte o artigo Considerações sobre a localização.
Opcional: na lista Serviço de metastore, selecione um Dataproc Metastore.
Opcional: no campo Cluster do servidor de histórico, introduza um servidor de histórico persistente do Dataproc.
Clique em Criar associação.
Clique em Aceder à associação.
No painel Informações de associação, copie o ID da conta de serviço para utilização num passo seguinte.
bq
Num ambiente de linha de comandos, use o comando
bq mk
para criar uma ligação:bq mk --connection --connection_type='SPARK' \ --properties=PROPERTIES \ --project_id=PROJECT_ID \ --location=LOCATION CONNECTION_ID
Substitua o seguinte:
PROPERTIES
: um par de chave-valor para fornecer parâmetros específicos da ligação no formato JSONPor exemplo:
--properties='{ "metastoreServiceConfig": {"metastoreService": "METASTORE_SERVICE_NAME"}, "sparkHistoryServerConfig": {"dataprocCluster": "DATAPROC_CLUSTER_NAME"} }'
Substitua o seguinte:
METASTORE_SERVICE_NAME
: o Dataproc Metastore com uma configuração de rede gRPC, por exemplo,projects/my-project-id/locations/us-central1/services/my-service
Para mais informações, veja como aceder aos metadados do metastore do Hive armazenados através de um protocolo de ponto final.
DATAPROC_CLUSTER_NAME
: a configuração do servidor do histórico do Spark, por exemplo,projects/my-project-id/regions/us-central1/clusters/my-cluster
Para mais informações, consulte o artigo Crie um cluster do servidor de histórico persistente.
PROJECT_ID
: o ID do seu Trusted Cloud projetoLOCATION
: a localização onde quer armazenar a associação, por exemplo,US
CONNECTION_ID
: o ID da associação, por exemplo,myconnection
Quando vê os detalhes da associação na Trusted Cloud consola, o ID da associação é o valor na última secção do ID da associação totalmente qualificado apresentado em ID da associação, por exemplo,
projects/.../locations/.../connections/myconnection
Encontre e copie o ID da conta de serviço, pois vai precisar dele noutro passo:
bq show --location=LOCATION --connection PROJECT_ID.LOCATION.CONNECTION_ID
O resultado é semelhante ao seguinte:
Connection myproject.us.myconnection name type properties ---------------------- ------- --------------------------------------------------- myproject.us.myconnection SPARK {"serviceAccountId": "bqserver@example.s3ns.iam.gserviceaccount.com"}
Para obter informações sobre como gerir associações, consulte o artigo Faça a gestão das associações.
Conceda acesso à conta de serviço
Para permitir que um procedimento armazenado para o Apache Spark aceda aos seus Trusted Cloud recursos, tem de conceder à conta de serviço associada à ligação do procedimento armazenado as autorizações do IAM necessárias. Em alternativa, pode usar a sua conta de serviço personalizada para aceder aos dados.
Para ler e escrever dados do e para o BigQuery, tem de conceder à conta de serviço as seguintes autorizações de IAM:
bigquery.tables.*
nas tabelas do BigQuerybigquery.readsessions.*
no seu projeto
A função de IAM
roles/bigquery.admin
inclui as autorizações de que a conta de serviço precisa para ler e escrever dados de e para o BigQuery.Para ler e escrever dados do e para o Cloud Storage, tem de conceder à conta de serviço a autorização
storage.objects.*
nos seus objetos do Cloud Storage.A função do
roles/storage.objectAdmin
IAM inclui as autorizações de que a conta de serviço precisa para ler e escrever dados do e para o Cloud Storage.Se especificar o Dataproc Metastore quando criar uma associação, para que o BigQuery obtenha detalhes sobre a configuração do metastore, tem de conceder à conta de serviço a autorização
metastore.services.get
no Dataproc Metastore.A função
roles/metastore.metadataViewer
predefinida inclui a autorização de que a conta de serviço precisa para obter detalhes sobre a configuração do metastore.Também tem de conceder à conta de serviço a função
roles/storage.objectAdmin
no contentor do Cloud Storage para que o procedimento armazenado possa aceder ao diretório do armazém do Hive do Dataproc Metastore (hive.metastore.warehouse.dir
). Se o procedimento armazenado realizar operações no metastore, pode ter de conceder autorizações adicionais. Para mais informações acerca das funções e autorizações da IAM no Dataproc Metastore, consulte o artigo Funções e autorizações predefinidas do Dataproc Metastore.Se especificar um servidor de histórico persistente do Dataproc quando criar uma ligação, tem de conceder à conta de serviço as seguintes funções:
- A função
roles/dataproc.viewer
no servidor de histórico persistente do Dataproc que contém a autorizaçãodataproc.clusters.get
. - A função
roles/storage.objectAdmin
no contentor do Cloud Storage que especifica para a propriedadespark:spark.history.fs.logDirectory
quando cria o servidor de histórico persistente do Dataproc.
Para mais informações, consulte os artigos Servidor de histórico persistente do Dataproc e Funções e autorizações do Dataproc.
- A função
Partilhe ligações com utilizadores
Pode conceder as seguintes funções para permitir que os utilizadores consultem dados e geram ligações:
roles/bigquery.connectionUser
: permite que os utilizadores usem associações para estabelecer ligação a origens de dados externas e executar consultas nas mesmas.roles/bigquery.connectionAdmin
: permite que os utilizadores geram associações.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Selecione uma das seguintes opções:
Consola
Aceda à página do BigQuery.
As associações são apresentadas no seu projeto, num grupo denominado Associações externas.
No painel Explorador, clique no nome do projeto > Ligações externas > ligação.
No painel Detalhes, clique em Partilhar para partilhar uma associação. Depois, faça o seguinte:
Na caixa de diálogo Autorizações de ligação, partilhe a ligação com outros responsáveis adicionando ou editando responsáveis.
Clique em Guardar.
bq
Não pode partilhar uma ligação com a ferramenta de linhas de comando bq. Para partilhar uma associação, use a Trusted Cloud consola ou o método da API BigQuery Connections para partilhar uma associação.
API
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O que se segue?
- Saiba mais sobre os diferentes tipos de ligações.
- Saiba como gerir associações.
- Saiba como criar um procedimento armazenado para o Apache Spark.
- Saiba como gerir procedimentos armazenados.