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.
Esta página descreve como configurar a Lakehouse Federation para executar consultas federadas em dados Teradata que não são geridos pelo Azure Databricks. Para saber mais sobre a Lakehouse Federation, consulte O que é a Lakehouse Federation?
Para se ligar à sua base de dados Teradata usando a Lakehouse Federation, deve criar o seguinte na sua metastore do Azure Databricks Unity Catalog (os espaços de trabalho criados após 9 de novembro de 2023 já têm uma metastore do Unity Catalog provisionada automaticamente):
- Uma conexão ao seu banco de dados Teradata.
- Um catálogo estrangeiro que espelha a sua base de dados Teradata no Unity Catalog, permitindo-lhe usar a sintaxe de consulta do Unity Catalog e as ferramentas de governação de dados para gerir o acesso dos utilizadores do Azure Databricks à base de dados.
Antes de começar
Antes de começar, certifique-se de que cumpre os requisitos desta secção.
Requisitos do Databricks
Requisitos do espaço de trabalho:
- Espaço de trabalho habilitado para o Unity Catalog. Os espaços de trabalho criados após 9 de novembro de 2023 são ativados automaticamente para o Unity Catalog, incluindo o provisionamento automático de metastores. Não precisas de criar uma metastore manualmente a menos que o teu espaço de trabalho seja anterior à ativação automática e não tenha sido ativado para o Unity Catalog. Consulte Ativação automática do Unity Catalog.
Requisitos de computação:
- Conectividade de rede do seu recurso de computação para os sistemas de banco de dados de destino. Consulte recomendações de rede para a Lakehouse Federation.
- Azure Databricks cálculo deve utilizar o Databricks Runtime 16.1 ou superior e o modo de acesso Standard ou Dedicado.
- Os armazéns SQL devem ser profissionais ou sem servidor e devem usar 2024.50 ou superior.
Permissões necessárias:
- Para criar uma conexão, você deve ser um administrador de metastore ou um usuário com o privilégio de
CREATE CONNECTIONno metastore do Unity Catalog anexado ao espaço de trabalho. Nos espaços de trabalho que estavam ativados automaticamente para o Unity Catalog, os administradores de espaços de trabalho têm esseCREATE CONNECTIONprivilégio por defeito. - Para criar um catálogo estrangeiro, você deve ter a permissão
CREATE CATALOGno metastore e ser o proprietário da conexão ou ter o privilégio deCREATE FOREIGN CATALOGna conexão. Nos espaços de trabalho que estavam ativados automaticamente para o Unity Catalog, os administradores de espaços de trabalho têm esseCREATE CATALOGprivilégio por defeito.
Os requisitos de permissão adicionais são especificados em cada seção baseada em tarefas a seguir.
Autenticação Teradata
As ligações Teradata no Azure Databricks Lakehouse Federation suportam apenas o mecanismo de autenticação TD2 (a autenticação Teradata predefinida). O TD2 autentica os utilizadores com um nome de utilizador e palavra-passe geridos pela base de dados Teradata.
Outros mecanismos de autenticação Teradata, como LDAP, Kerberos e TDNEGO, não são suportados.
Teradata TLS
- Pode escolher entre
require,prefer,verify-ca,verify-full,disablemodos para SSL. Oprefermodo depende do servidor para permitir a encriptação (o número de porta pode ser configurado). Se estiver a usar TLS, qualquer uma das opções será suficiente (a porta será 443) (verify-caeverify-fullfortalecem a segurança da conexão, mas requerem mais configuração do lado do servidor). A Databricks recomenda aceitar SSL. Se o seu servidor não aceitar SSL, use odisablemodo; usarrequirepara tentar SSL quando não é suportado introduz sobrecarga de desempenho. Para obter mais informações, consulte Como proteger conexões usando TLS na documentação do Teradata.
Criar uma ligação Azure Databricks
Uma conexão especifica um caminho e credenciais para acessar um sistema de banco de dados externo. Para criar uma ligação, pode usar o Explorador de Catálogos ou o comando SQL CREATE CONNECTION num caderno de Azure Databricks ou o editor de consultas SQL do Databricks.
Note
Você também pode usar a API REST do Databricks ou a CLI do Databricks para criar uma conexão. Consulte POST /api/2.1/unity-catalog/connections e comandos do Unity Catalog.
Permissões necessárias: administrador da Metastore ou utilizador com o privilégio CREATE CONNECTION.
Explorador de Catálogos
- No seu espaço de trabalho Azure Databricks, clique em
Catalog.
- Na parte superior do painel Catálogo, clique no
ícone Adicionar e selecione Criar uma conexão no menu. - Na página Noções básicas de conexão do assistente Configurar conexão, insira um nome de conexão amigável.
- Selecione um Tipo de conexão de Teradata.
- (Opcional) Adicione um comentário.
- Clique em Next.
- Na página de Autenticação , introduza as seguintes propriedades de ligação para a instância Teradata:
-
Host: Por exemplo,
teradata-demo.teradata.com -
Port: Por exemplo,
1025 -
User: Por exemplo,
teradata_user -
Palavra-passe: Por exemplo,
password123 -
Modo SSL:
require,prefer,verify-ca,verify-full,disable
-
Host: Por exemplo,
- Clique em Criar conexão.
- Na página Noções básicas do catálogo
, insira um nome para o catálogo estrangeiro. Um catálogo estrangeiro espelha uma base de dados num sistema de dados externo para que possas consultar e gerir o acesso aos dados dessa base de dados usando o Azure Databricks e o Unity Catalog. - (Opcional) Clique em Teste de conexão para confirmar que funciona.
- Clique Criar catálogo.
- Na página Acesso, selecione os espaços de trabalho nos quais os utilizadores podem aceder ao catálogo que você criou. Você pode selecionar Todos os espaços de trabalho têm acessoou clicar em Atribuir a espaços de trabalho, selecione os espaços de trabalho e clique em Atribuir.
- Altere o Proprietário que poderá gerir o acesso a todos os objetos no catálogo. Comece a digitar um principal na caixa de texto e clique no principal nos resultados retornados.
- Conceder os privilégios no catálogo.
Clique em Grant:
- Especifique os Principals que terão acesso aos objetos no catálogo. Comece a digitar um principal na caixa de texto e clique no principal nos resultados retornados.
- Selecione as predefinições de privilégio conceder a cada entidade de segurança. Todos os usuários da conta recebem
BROWSEpor padrão.- Selecione Leitor de Dados no menu suspenso para conceder
readprivilégios sobre objetos no catálogo. - Selecione Editor de Dados no menu suspenso para conceder os privilégios
reademodifyem objetos no catálogo. - Selecione manualmente os privilégios a conceder.
- Selecione Leitor de Dados no menu suspenso para conceder
- Clique em Conceder.
- Clique em Next.
- Na página de Metadados , especifique os pares chave-valor de etiquetas. Para obter mais informações, consulte Aplicação de tags a objetos protegíveis do Unity Catalog.
- (Opcional) Adicione um comentário.
- Clique em Salvar.
SQL
Execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL:
CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>',
ssl_mode '<ssl_mode>' -- optional
);
O Databricks recomenda que use Azure Databricks secrets em vez de strings de texto simples para valores sensíveis como credenciais. Por exemplo:
CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>'),
ssl_mode '<ssl_mode>' -- optional
)
Se precisar usar cadeias de texto simples em comandos SQL de notebooks, evite truncar as cadeias de texto escapando caracteres especiais, como $ com \. Por exemplo: \$.
Para obter informações sobre como configurar segredos, consulte Gestão de segredos.
Criar um catálogo estrangeiro
Note
Se você usar a interface do usuário para criar uma conexão com a fonte de dados, a criação de catálogo estrangeiro será incluída e você poderá ignorar esta etapa.
Um catálogo estrangeiro espelha uma base de dados num sistema de dados externo para que possas consultar e gerir o acesso aos dados dessa base de dados usando o Azure Databricks e o Unity Catalog. Para criar um catálogo estrangeiro, use uma conexão com a fonte de dados que já foi definida.
Para criar um catálogo estrangeiro, pode usar o Explorador de Catálogos ou o comando SQL CREATE FOREIGN CATALOG num bloco de notas Azure Databricks ou o editor de consultas SQL. Você também pode usar a API REST do Databricks ou a CLI do Databricks para criar um catálogo. Consulte POST /api/2.1/unity-catalog/catalogs e comandos do Unity Catalog .
Permissões necessárias:CREATE CATALOG permissão no metastore e ou a propriedade da conexão ou o privilégio de CREATE FOREIGN CATALOG na conexão.
Explorador de Catálogos
No seu espaço de trabalho Azure Databricks, clique em
Catalog para abrir o Explorador de Catálogos.
Na parte superior do painel Catálogo
, clique no ícone Adicionar ou mais ícone Adicionar e selecioneAdicionar um catálogo no menu. Como alternativa, na página Acesso rápido, clique no botão Catálogos e, em seguida, clique no botão Criar catálogo.
Siga as instruções para criar catálogos estrangeiros em Criar catálogos.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL. Os itens entre parênteses são opcionais. Substitua os valores de espaço reservado:
-
<catalog-name>: Nome do catálogo em Azure Databricks. -
<connection-name>: O objeto de conexão que especifica a fonte de dados, o caminho e as credenciais de acesso. -
<database-name>: Nome da base de dados que pretende espelhar como catálogo em Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Conformidade com ANSI
O conector Teradata utiliza TMODE=ANSI por defeito para todas as sessões a partir do Databricks Runtime 17.1. Esta configuração alinha o comportamento da comparação de strings e das operações numéricas com o dialeto ANSI SQL que o Azure Databricks usa por defeito. No modo ANSI, as comparações de cadeias são sensíveis a maiúsculas e minúsculas, enquanto no modo legado TERA do Teradata, são insensíveis a maiúsculas e minúsculas (por exemplo, 'ABC' = 'abc' avalia como verdadeiro). O comportamento legado pode produzir resultados inesperados quando consulta o Teradata a partir de uma computação do Azure Databricks com suporte para ANSI.
Importante
Se mudar para Databricks Runtime 17.1 ou posterior, Databricks SQL ou computação Serverless, o modo de sessão predefinido muda de TERA para ANSI. Isto pode afetar os resultados das consultas, especialmente para visões Teradata que dependem de correspondência de cadeias sem distinção entre maiúsculas e minúsculas. Por exemplo, uma vista com um filtro como WHERE status = 'Active' pode devolver resultados diferentes se os dados subjacentes contiverem 'ACTIVE' ou 'active' porque ANSI o modo os trata como valores diferentes.
Pushdowns suportados
A tabela a seguir lista as operações de pushdown suportadas para o Teradata, juntamente com o processamento necessário para cada uma.
| Empurrão | Computação suportada |
|---|---|
| Aggregates |
|
| Cast |
|
| Contém, Começa, Termina, Semelhante a |
|
| Filters |
|
| Limit |
|
| Projections |
|
| Joins |
|
Mapeamentos de tipo de dados
Quando você lê do Teradata para o Spark, os tipos de dados são mapeados da seguinte maneira:
| Tipo de Teradata | Tipo de faísca |
|---|---|
| Byte, Blob (conjunto de bytes) | BinaryType |
| Byteint, Smallint, Inteiro | IntegerType |
| BigInt | LongType |
| Flutuador, Duplo, Dupla Precisão | DoubleType |
| Número(n, m) | DecimalType |
| Número(*, m), Número(*), Número | Unsupported |
| Varchar(N) | StringType |
| Hora, marca temporal | TimestampType |