Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os destinatários de dados da federação Open ID Connect (OIDC) podem usar um cliente do Iceberg REST Catalog (IRC), como OSS Spark ou Snowflake, para aceder a partilhas OpenSharing criadas no Azure Databricks.
Se estiver a usar tokens portadores para gerir a autenticação, veja Criar um objeto destinatário para utilizadores não-Databricks usando tokens portadores (partilha Databricks-to-Open).
Esta página destina-se aos destinatários. Para informações sobre como os fornecedores podem ativar a federação OIDC para destinatários no Azure Databricks, consulte Habilitar a federação Open ID Connect (OIDC) para destinatários OpenSharing.
Descarregue o perfil Iceberg para conectores OAuth
Vá ao URL do portal de perfil OIDC que o fornecedor do Azure Databricks partilhou consigo.
Solicite o URL se ainda não o recebeu.
Na página do portal, selecione a partilha a que quer aceder no menu suspenso.
Clica em Descarregar ficheiro.
No ficheiro descarregado, substitua
clientId,clientSecret, escopepelos seus valores.Utilize o nome da partilha selecionada como armazém na configuração.
Importe o ficheiro do perfil de partilha com o seu código de cliente.
Aceder aos dados partilhados
Aceda aos dados usando qualquer Catálogo Iceberg REST.
Snowflake
Na sua folha de trabalho Snowflake, execute o seguinte comando para criar uma integração de catálogo. Também pode copiar o comando SQL do portal de perfil OIDC que o seu fornecedor partilhou consigo. Certifica-te de que escolhes a partilha que queres aceder.
Substitua os valores provisórios antes de o executar:
-
<catalog-integration-name>: Um nome para a integração do catálogo. -
<catalog-uri>: O ponto final do Catálogo REST do Iceberg. Encontre-o no portal do perfil OIDC ou no ficheiro de perfil descarregado. -
<share-name>: O nome da partilha que selecionou no portal de perfil OIDC. -
<oauth-token-uri>: O ponto final do token OAuth do seu IdP. -
<oauth-client-id>e<oauth-client-secret>: As tuas credenciais OAuth. -
<oauth-scope>: O seu âmbito OAuth.
USE ROLE ACCOUNTADMIN;
CREATE OR REPLACE CATALOG INTEGRATION <catalog-integration-name>
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
REST_CONFIG = (
CATALOG_URI = '<catalog-uri>'
WAREHOUSE = '<share-name>'
ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
)
REST_AUTHENTICATION = (
TYPE = OAUTH
OAUTH_TOKEN_URI = '<oauth-token-uri>'
OAUTH_CLIENT_ID = '<oauth-client-id>'
OAUTH_CLIENT_SECRET = '<oauth-client-secret>'
OAUTH_ALLOWED_SCOPES = ('<oauth-scope>')
)
REFRESH_INTERVAL_SECONDS = 30 -- Optional
ENABLED = TRUE;
Crie uma base de dados ligada que utilize a integração do catálogo. Substitua <database-name> por um nome para a base de dados.
CREATE DATABASE <database-name>
LINKED_CATALOG = (
CATALOG = <catalog-integration-name>
);
OSS Spark
O exemplo seguinte lê dados partilhados de um Catálogo REST do Iceberg usando o OSS Spark. Execute-o a partir de uma instalação do Spark que inclua o runtime do Spark para Iceberg e os JARs do pacote AWS.
Substitua os valores provisórios antes de o executar:
-
<spark-home>: O caminho para a sua instalação do Spark. -
<iceberg-jars-path>: O caminho para os seus ficheiros JAR do Iceberg. -
<catalog-uri>: O ponto final do Catálogo REST do Iceberg. Encontre-o no portal do perfil OIDC ou no ficheiro de perfil descarregado. -
<share-name>: O nome da partilha que selecionou no portal de perfis OIDC. -
<oauth-token-uri>: O ponto final do token OAuth do seu IdP. -
<oauth-client-id>e<oauth-client-secret>: As tuas credenciais OAuth. -
<oauth-scope>: O seu âmbito OAuth. -
<spark-script>: O caminho para o script em Scala a executar.
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 PATH=/usr/lib/jvm/java-17-openjdk-amd64/bin:$PATH <spark-home>/bin/spark-shell \
--jars <iceberg-jars-path>/iceberg-spark-runtime-4.0_2.13-1.10.2.jar,<iceberg-jars-path>/iceberg-aws-bundle-1.10.2.jar \
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
--conf spark.sql.catalog.databricks=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.databricks.type=rest \
--conf spark.sql.catalog.databricks.uri=<catalog-uri> \
--conf spark.sql.catalog.databricks.warehouse=<share-name> \
--conf spark.sql.catalog.databricks.rest.auth.type=oauth2 \
--conf spark.sql.catalog.databricks.oauth2-server-uri=<oauth-token-uri> \
--conf spark.sql.catalog.databricks.credential=<oauth-client-id>:<oauth-client-secret> \
--conf spark.sql.catalog.databricks.scope=<oauth-scope> \
--conf spark.sql.catalog.databricks.io-impl=org.apache.iceberg.aws.s3.S3FileIO \
< <spark-script>