Partilhar via


O que são esquemas de casas de lago?

Lakehouse suporta a criação de esquemas personalizados. Os esquemas permitem agrupar suas tabelas para melhor descoberta de dados, controle de acesso e muito mais.

Criar uma estrutura do tipo lakehouse

Para permitir o suporte de esquemas para o seu lakehouse, mantenha a caixa ao lado de Lakehouse schemas assinalada ao criá-lo.

Captura de ecrã mostrando a nova caixa de diálogo lakehouse.

Observação

Se preferires criar uma casa de lago sem suporte de esquemas, podes desmarcar a caixa.

Depois de criar a casa do lago, você pode encontrar um esquema padrão chamado dbo em Tabelas. Este esquema está sempre lá e não pode ser alterado ou removido. Para criar um novo esquema, passe o mouse sobre Tabelas, selecione ..., e escolha Novo esquema. Digite o nome do esquema e selecione Criar. Vê o seu esquema listado em Tabelas por ordem alfabética.

Captura de tela mostrando a nova caixa de diálogo do esquema lakehouse.

Armazenar tabelas em esquemas de lakehouse

Você precisa de um nome de esquema para armazenar uma tabela em um esquema. Caso contrário, ele vai para o esquema dbo padrão.

df.write.mode("Overwrite").saveAsTable("contoso.sales")

Você pode usar o Lakehouse Explorer para organizar suas tabelas e arrastar e soltar nomes de tabelas em esquemas diferentes.

Animação de tabelas móveis entre esquemas.

Atenção

Se modificar a tabela, também deve atualizar elementos relacionados, como o código do caderno ou fluxos de dados, para garantir que estão alinhados com o esquema correto.

Traga várias tabelas com atalho de esquema

Para referenciar múltiplas tabelas Delta de outro Fabric lakehouse ou armazenamento externo, use o atalho de esquema que exibe todas as tabelas dentro do esquema ou pasta escolhida. Quaisquer alterações nas tabelas no local de origem também aparecem no esquema. Para criar um atalho de esquema, passe o mouse sobre Tabelas, selecione ..., e escolha Novo atalho de esquema. Em seguida, selecione um esquema noutra lakehouse ou uma pasta com tabelas Delta no seu armazenamento externo, como o Azure Data Lake Storage (ADLS) Gen2. Isso cria um novo esquema com suas tabelas referenciadas.

Captura de ecrã mostrando o novo atalho do esquema lakehouse.

Aceder aos esquemas de lakehouse para relatórios do Power BI

Para criar o seu modelo semântico, basta escolher as tabelas que pretende utilizar. As tabelas podem estar em esquemas diferentes. Se tabelas de esquemas diferentes compartilharem o mesmo nome, você verá números ao lado de nomes de tabelas quando estiver na visualização de modelo.

Esquemas Lakehouse no bloco de notas

Quando você olha para um lakehouse com suporte para esquemas no editor de notas, você vê que as tabelas estão em esquemas. Você pode arrastar e soltar a tabela em uma célula de código e obter um trecho de código que se refere ao esquema onde a tabela está localizada. Use este namespace para se referir a tabelas em seu código: "workspace.lakehouse.schema.table". Se você deixar de fora qualquer um dos elementos, o executor usa a configuração padrão. Por exemplo, se apenas fornecer o nome da tabela, ele usará o esquema padrão (dbo) do lakehouse padrão para o notebook.

Importante

Se quiser usar esquemas no seu código, certifique-se de que o lakehouse predefinido para o notebook tem esquemas ativados ou que não há nenhum lakehouse predefinido selecionado.

Consultas SQL do Spark entre espaços de trabalho

Use o namespace "workspace.lakehouse.schema.table" para referenciar as tabelas no seu código. Dessa forma, você pode unir tabelas de diferentes espaços de trabalho se o usuário que executa o código tiver permissão para acessar as tabelas.

SELECT * 
    FROM operations.hr.hrm.employees as employees 
    INNER JOIN global.corporate.company.departments as departments
    ON employees.deptno = departments.deptno;

Referência a lakehouses sem esquema predefinido

Quando defines um lakehouse com esquema ou sem lakehouse como padrão no teu caderno, o código do Spark usa referência com esquema para tabelas. No entanto, ainda pode aceder a lakehouses sem esquemas ativados dentro do mesmo código, referindo-os como "lakehouse.table."

Além disso, é possível juntar mesas de diferentes tipos de casas de lago.

SELECT * 
    FROM workspace.schemalh.schema.table as schematable 
    INNER JOIN workspace.nonschemalh.table as nonschematable
    ON schematable.id = nonschematable.id;

Para ajudar na transição e refatoração do código existente para lakehouses com suporte a esquema, é suportada a nomenclatura em quatro partes para lakehouses sem esquemas. Podes consultar tabelas como "workspace.lakehouse.dbo.table", onde "dbo" serve como nome do esquema — mesmo que ainda não exista num lakehouse sem suporte a esquemas. Esta abordagem permite-lhe atualizar o seu código sem qualquer tempo de inatividade antes de ativar o suporte de esquema nos seus lakehouses.

API para esquemas de lakehouse

Para criar uma plataforma de dados lakehouse com esquemas, use Create Lakehouse - API REST e especifique "enableSchemas": true no pedido creationPayload. Para listar tabelas, esquemas ou obter detalhes de tabelas, use as APIs de tabelas OneLake para a Delta.

Esquemas de habilitação para casas de lago existentes

Continuamos a suportar lakehouses sem esquema e estamos a trabalhar para alcançar a paridade completa de funcionalidades entre os dois tipos. É também suportada interoperabilidade total no Spark, permitindo consultar e unir diferentes tipos de casas de lago. Em breve, apresentaremos ferramentas para ajudar os clientes a fazer a transição dos seus lakehouses de versões sem esquema definido para versões com esquema definido, permitindo-lhe beneficiar de funcionalidades melhoradas sem precisar de mover dados ou sofrer interrupções.

Limitações atuais

Ainda existem algumas limitações nas casas de lago com esquema em Spark que estão a ser implementadas nos próximos meses.

Funcionalidades/funcionalidades não suportadas Solução
Perspetivas de inspiração Utilizar Visões de Lago Materializadas.
Casa de lago compartilhada Cria atalhos numa casa do lago com o papel de espaço de trabalho para as mesas partilhadas da casa do lago e acede a eles através dos atalhos.
Tabelas ADLS externas Usa atalhos do OneLake.
Links Privados Utilizar lakehouses sem um esquema predefinido.
Proteção de Trânsito de Outboubd Utilizar lakehouses sem um esquema predefinido.