[go: up one dir, main page]

0% acharam este documento útil (0 voto)
6 visualizações531 páginas

Fabric Data Engineering

Enviado por

ap19800927
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações531 páginas

Fabric Data Engineering

Enviado por

ap19800927
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 531

Dê a sua opinião sobre a experiência de download do PDF.

Documentação da Engenharia de Dados


no Microsoft Fabric
A engenharia de dados no Microsoft Fabric permite que os usuários projetem, criem e
mantenham sistemas que possibilitem que suas organizações coletem, armazenem,
processem e analisem grandes volumes de dados.

Sobre a Engenharia de dados

e VISÃO GERAL

O que é a Engenharia de dados?

O que é um lakehouse?

Funções e permissões do espaço de trabalho

Introdução ao lakehouse

b COMEÇAR AGORA

Criar um lakehouse

Navegar pelo lakehouse explorer

c GUIA DE INSTRUÇÕES

Obter dados no lakehouse usando o notebook

Introdução aos notebooks

b COMEÇAR AGORA

Notebooks do Microsoft Fabric

c GUIA DE INSTRUÇÕES

Criar e gerenciar notebooks

Explorar dados do lakehouse com um notebook


Visualizar os notebooks

Implantação e controle do código-fonte de notebooks

Usar MSSparkUtils no notebook

Delta Lake

p CONCEITO

Tabelas Lakehouse e Delta

c GUIA DE INSTRUÇÕES

Otimização Delta e Ordem V

Carregar nas tabelas

Tutorial de ponta a ponta do Lakehouse

p CONCEITO

Visão geral do cenário do Lakehouse

g TUTORIAL

Etapa 1 – criar um workspace

Etapa 2 – Criar um lakehouse

Etapa 3 – Ingerir dados no lakehouse

Etapa 4 – Transformar dados em tabelas delta

Etapa 5 – Criar um relatório

Etapa 6: Limpar os recursos

Apache Spark

p CONCEITO

Definição de trabalho do Apache Spark


Visão geral do monitoramento do Spark

Assistente do Apache Spark

b COMEÇAR AGORA

Criar uma definição de trabalho do Spark

Criar uma definição de trabalho do Spark com uma API do Fabric

c GUIA DE INSTRUÇÕES

Agendar e executar uma definição de trabalho do Spark

Monitorar aplicativo Spark

Gerenciar pacotes do Apache Spark

Como usar o Fabric MSSparkUtils

Definir as configurações de capacidade

Integração do VS Code

c GUIA DE INSTRUÇÕES

Usar notebooks do VS Code

Use notebooks do VS Code com recurso

Usar definições de trabalho do Spark do VS Code

Explorar o lakehouse do VS Code

Desenvolver notebook com base na experiência Web do VS Code

Introdução ao ambiente

b COMEÇAR AGORA

Ambientes do Microsoft Fabric

c GUIA DE INSTRUÇÕES

Gerenciar computação do Spark em ambientes


Gerenciar bibliotecas em ambientes

Migrar as bibliotecas de espaço de trabalho existentes e as propriedades do Spark para um


ambiente
O que é a engenharia de dados no
Microsoft Fabric?
Artigo • 06/12/2023

A engenharia de dados no Microsoft Fabric permite que os usuários projetem, criem e


mantenham infraestruturas e sistemas que possibilitem que suas organizações coletem,
armazenem, processem e analisem grandes volumes de dados.

O Microsoft Fabric fornece vários recursos de engenharia de dados para garantir que
seus dados sejam facilmente acessíveis, bem organizados e de alta qualidade. Na home
page de engenharia de dados, você pode:

Criar e gerenciar seus dados usando um lakehouse

Projetar pipelines para copiar dados para o lakehouse

Usar definições de trabalho do Spark para enviar trabalhos de lote/streaming para


o cluster do Spark

Usar notebooks para gravar código para ingestão, preparação e transformação de


dados

Lakehouse
Lakehouses são arquiteturas de dados que permitem que as organizações armazenem e
gerenciem dados estruturados e não estruturados em um único local, usando várias
ferramentas e estruturas para processar e analisar esses dados. Essas ferramentas e
estruturas podem incluir consultas e análises baseadas em SQL, bem como aprendizado
de máquina e outras técnicas avançadas de análise.

Definição de trabalho do Apache Spark


As definições de trabalho do Spark são um conjunto de instruções que definem como
executar um trabalho em um cluster do Spark. Elas incluem informações como as fontes
de dados de entrada e saída, as transformações e as configurações do aplicativo Spark.
A definição de trabalho do Spark permite que você envie trabalhos de lote/streaming
para o cluster do Spark, aplique uma lógica de transformação diferente aos dados
hospedados em seu Lakehouse, juntamente com muitas outras coisas.

Notebook
O Notebooks é um ambiente de computação interativo que permite que criar e
compartilhar documentos que contêm código ao vivo, equações, visualizações e texto
narrativo. Ele permite que os usuários gravem e executem código em várias linguagens
de programação, incluindo Python, R e Scala. Você pode usar notebooks para ingestão
de dados, preparação, análise e outras tarefas relacionadas a dados.

Pipeline de dados
Os pipelines de dados são uma série de etapas que podem coletar, processar e
transformar dados de sua forma bruta para um formato que pode ser usado para
análise e tomada de decisão. Eles são um componente crítico da engenharia de dados,
pois fornecem uma maneira de mover dados de sua origem para seu destino de
maneira confiável, escalonável e eficiente.

Conteúdo relacionado
Introdução à experiência de Engenharia de Dados:

Para saber mais sobre lakehouses, confira O que é um lakehouse no Microsoft


Fabric?
Para começar a usar um lakehouse, confira Criar um lakehouse no Microsoft Fabric.
Para saber mais sobre as definições de trabalho do Apache Spark, consulte O que
é uma definição de trabalho do Apache Spark?
Para começar a usar uma definição de trabalho do Apache Spark, consulte Como
criar uma definição de trabalho do Apache Spark no Fabric.
Para saber mais sobre Notebooks, consulte Criar e executar o notebook.
Para começar a usar a atividade de cópia de pipelines, consulte Como copiar
dados usando a atividade de cópia.
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Comparar a Engenharia de Dados do
Fabric ao Spark no Azure Synapse
Artigo • 16/11/2023

Essa comparação entre a Engenharia de Dados do Fabric e o Spark no Azure Synapse


fornece um resumo dos principais recursos e uma análise detalhada em várias
categorias, que incluem Pools do Spark, configuração, bibliotecas, notebooks e
definições de trabalho do Spark.

A tabela a seguir compara o Spark do Azure Synapse e o Spark do Fabric em diferentes


categorias:

Categoria Azure Synapse Spark Spark do Fabric

Pools do Spark Pool do Spark Pool inicial / Pool personalizado


- V-Order
- Alta simultaneidade

Configurações do Spark Nível do pool Nível de ambiente


Nível de definição de trabalho Nível do Notebook ou Definição
do Notebook ou do Spark de trabalho do Spark

Bibliotecas do Spark Pacotes no nível do workspace -


Pacotes no nível do pool Bibliotecas de ambiente
Pacotes embutidos Bibliotecas embutidas

Recursos Notebook (Python, Scala, Spark Notebook (Python, Scala, Spark


SQL, R, .NET) SQL, R)
Definição de trabalho do Spark Definição de trabalho do Spark
(Python, Scala, .NET) (Python, Scala, R)
Pipelines de dados do Synapse Pipelines de dados do Data
Atividades de pipeline Factory
(notebook, definição de trabalho Atividades de pipeline (notebook)
do Spark)

Dados Armazenamento principal (ADLS Armazenamento primário


Gen2) (OneLake)
Residência de dados (baseada Residência de dados (com base
em cluster/região) em capacidade/região)

Metadados Metastore do Hive interno HMS interno (lakehouse)


(HMS) -
HMS externo (usando o BD SQL
do Azure)

conexões Tipo de conector (serviços Tipo de conector (DMTS)


vinculados) Fontes de dados
Categoria Azure Synapse Spark Spark do Fabric

Fontes de dados -
Conexão da fonte de dados com
a identidade do workspace

Segurança RBAC e controle de acesso RBAC e controle de acesso


ACLs de armazenamento (ADLS -
Gen2) -
Links Privados -
VNet gerenciada (isolamento de -
rede) -
Identidade do workspace do Marcas de serviço
Synapse Key Vault (via mssparkutils)
Proteção contra Exfiltração dos
Dados (DEP)
Marcas de serviço
Key Vault (via
mssparkutils/serviço vinculado)

DevOps Integração com o Azure DevOps Integração do Azure DevOps


CI/CD (não há suporte interno) (notebook)
Pipelines de implantação
(notebook)

Experiência do Integração do IDE (IntelliJ) Integração do IDE (VS Code)


desenvolvedor Interface do usuário do Synapse Interface do usuário do Fabric
Studio Colaboração (workspaces e
Colaboração (workspaces) compartilhamento)
Livy API -
API/SDK API/SDK
mssparkutils mssparkutils

Log e monitoramento Assistente do Spark Assistente do Spark


Trabalhos e pools de Trabalhos e pools de
monitoramento internos (por monitoramento internos (por
meio do Synapse Studio) meio do Hub de Monitoramento)
Servidor de histórico do Spark Servidor de histórico do Spark
Prometheus/Grafana -
Log Analytics -
Conta de Armazenamento -
Hubs de Eventos -

BCDR (continuidade dos BCDR (dados) ADLS Gen2 BCDR (dados) OneLake
negócios e recuperação
de desastre)

Considerações e limitações:
Integração do DMTS: você não pode usar o DMTS por meio de notebooks e
definições de trabalho do Spark.

RBAC no nível da carga de trabalho: o Fabric dá suporte a quatro funções de


workspace diferentes. Para obter mais informações, confira Funções em
workspaces no Microsoft Fabric.

Identidade gerenciada: atualmente, o Fabric não dá suporte à execução de


notebooks e definições de trabalho do Spark usando a identidade do workspace
ou a identidade gerenciada do Azure KeyVault em notebooks.

Integração do Git: o Fabric dá suporte à integração do Git para notebooks usando


repositórios do Azure.

CI/CD: você pode usar a API/o SDK do Fabric e os pipelines de implantação.

API Livy e como enviar e gerenciar trabalhos do Spark: a API Livy está no roteiro,
mas ainda não foi exposta no Fabric. Você deve criar notebooks e definições de
trabalho do Spark com a interface do usuário do Fabric.

Logs e métricas do Spark: no Azure Synapse, você pode emitir logs e métricas do
Spark para seu próprio armazenamento, por exemplo, Log Analytics, blob e Hubs
de Eventos. Você também pode obter uma lista de aplicativos Spark para o
workspace da API. Atualmente, ambos os recursos não estão disponíveis no Fabric.

Outras considerações:
JDBC: o suporte à conexão JDBC não está disponível no momento no Fabric.

Comparação do pool do Spark


A tabela a seguir compara os Pools do Spark no Azure Synapse e no Fabric.

Configurações do Spark Azure Synapse Spark Spark do Fabric

Pool dinâmico (instâncias pré- - Sim, pools iniciais


aquecidas)

Pool personalizado Sim Yes

Versões do Spark (runtime) 2.4, 3.1, 3.2, 3.3 3.3, 3.4

Autoscale Sim Yes

Alocação dinâmica de Sim, até 200 Sim, com base na


executores capacidade
Configurações do Spark Azure Synapse Spark Spark do Fabric

Tamanhos de nó ajustáveis Sim, 3-200 Sim, 1 com base na


capacidade

Configuração de nó 3 nós 1 nó
personalizada

Família de tamanhos de nós Otimizado para memória, GPU Otimizado para memória
acelerada

Tamanho do nó Small-XXXLarge Small-XXLarge

Pausa automática Sim, personalizável com o mínimo Sim, 2 minutos não


de 5 minutos personalizáveis

Alta simultaneidade Não Sim

V-Order Não Sim

Spark Autotune Não Sim

Limites de simultaneidade Fixo Variável com base na


capacidade

Vários pools do Spark Sim Sim (ambientes)

Cache inteligente Sim Yes

Suporte ao SDK/à API Sim Não

Runtime: O Fabric não dá suporte às versões 2.4, 3.1 e 3.2 do Spark. O Fabric Spark
dá suporte ao Spark 3.3 com Delta 2.2 no Runtime 1.1 e Spark 3.4 com Delta 2.4 no
Runtime 1.2.

Dimensionamento automático: no Spark do Azure Synapse, o pool pode escalar


verticalmente até 200 nós, independentemente do tamanho do nó. No Fabric, o
número máximo de nós está sujeito ao tamanho do nó e à capacidade
provisionada. Veja o exemplo a seguir para o SKU F64.

Tamanho do pool do Azure Synapse Spark do Fabric (Pool Personalizado,


Spark Spark SKU F64)

Small Mín: 3, máx: 200 Mín: 1, máx: 32

Médio Mín: 3, máx: 200 Mín: 1, máx: 16

grande Mín: 3, máx: 200 Mín: 1, máx: 8

Extragrande Mín: 3, máx: 200 Mín: 1, máx: 4


Tamanho do pool do Azure Synapse Spark do Fabric (Pool Personalizado,
Spark Spark SKU F64)

XX-Grande Mín: 3, máx: 200 Mín: 1, máx: 2

Tamanhos de nó ajustáveis: no Spark do Azure Synapse, você pode acessar até


200 nós. No Fabric, o número de nós que você pode ter em seu pool do Spark
personalizado depende do tamanho do nó e da capacidade do Fabric. A
capacidade é uma medida de quanto poder de computação você pode usar no
Azure. Uma maneira de pensar nisso é que dois vCores do Spark (uma unidade de
poder de computação do Spark) são iguais a uma unidade de capacidade. Por
exemplo, um SKU F64 de capacidade do Fabric tem 64 unidades de capacidade, o
que equivale a 128 VCores Spark. Portanto, se você escolher um tamanho de nó
pequeno, poderá ter até 32 nós no pool (128/4 = 32). Em seguida, o total de
vCores na capacidade/vCores por tamanho de nó = número total de nós
disponíveis. Para obter mais informações, confira computação do Spark.

Família de tamanho de nó: os pools do Spark do Fabric só dão suporte à família


de tamanho de nó otimizado para memória por enquanto. Se você estiver usando
um Pool do Spark de SKU acelerada por GPU no Azure Synapse, eles não estarão
disponíveis no Fabric.

Tamanho do nó: o tamanho do nó xx-grande vem com 432 GB de memória no


Azure Synapse, enquanto o mesmo tamanho de nó tem 512 GB no Fabric,
incluindo 64 vCores. O restante dos tamanhos de nó (pequeno a x grande) tem os
mesmos vCores e memória no Azure Synapse e Fabric.

Pausa automática: se você habilitá-la no Spark no Azure Synapse, o pool do


Apache Spark será pausado automaticamente após uma quantidade especificada
de tempo ocioso. Essa configuração é pode ser definida no Azure Synapse (mínimo
de 5 minutos), mas os pools personalizados têm uma duração de uso automático
padrão não personalizável de 2 minutos no Fabric após a expiração da sessão. A
expiração da sessão padrão é definida como 20 minutos no Fabric.

Alta simultaneidade: o Fabric dá suporte à alta simultaneidade em notebooks.


Para obter mais informações, confira Modo de alta simultaneidade no Spark no
Fabric.

Limites de simultaneidade: em termos de simultaneidade, o Spark do Azure


Synapse tem um limite de 50 trabalhos simultâneos de execução por pool do
Spark e 200 trabalhos na fila por pool do Spark. O máximo de trabalhos ativos é de
250 para cada pool do Spark e 1.000 para cada workspace. No Spark do Microsoft
Fabric, as SKUs de capacidade definem os limites de simultaneidade. As SKUs têm
limites variados no máximo de trabalhos simultâneos que variam de 1 a 512. Além
disso, o Spark do Fabric tem um sistema de limitação dinâmico baseado em
reserva para gerenciar a simultaneidade e garantir uma operação suave mesmo
durante os horários de pico de uso. Para obter mais informações, confira Limites
de simultaneidade e filas nas capacidades do Spark no Microsoft Fabric e
capacidades do Fabric .

Vários Pools do Spark: se você quiser ter vários Pools do Spark, use ambientes do
Fabric para selecionar um pool por bloco de anotações ou definição de trabalho
do Spark. Para obter mais informações, confira Criar, configurar e usar um
ambiente no Microsoft Fabric.

7 Observação

Saiba como migrar pools do Spark do Azure Synapse para o Fabric.

Comparação de configurações do Spark


As configurações do Spark podem ser aplicadas em diferentes níveis:

Nível de ambiente: essas configurações são usadas como a configuração padrão


para todos os trabalhos do Spark no ambiente.
Nível embutido: definir configurações do Spark embutidas usando notebooks e
definições de trabalho do Spark.

Embora ambas as opções sejam compatíveis com o Spark do Azure Synapse e o Fabric,
há algumas considerações:

Configuração do Spark Azure Synapse Spark Spark do Fabric

Nível de ambiente Sim, pools Sim, ambientes

Embutido Sim Yes

Importar/exportar Sim Sim (.yml de ambientes)

Suporte ao SDK/à API Sim Não

Nível de ambiente: no Azure Synapse, você pode definir várias configurações do


Spark e atribuí-las a diferentes pools do Spark. Você pode fazer isso no Fabric
usando ambientes.
Em linha: no Azure Synapse, os notebooks e os trabalhos do Spark dão suporte à
anexação de diferentes configurações do Spark. No Fabric, as configurações de
nível de sessão são personalizadas com a configuração
spark.conf.set(<conf_name>, <conf_value>) . Para trabalhos em lotes, você

também pode aplicar configurações por meio do SparkConf.

Importação/exportação: essa opção para configurações do Spark está disponível


em ambientes do Fabric.

Outras considerações:
Configurações imutáveis do Spark: algumas configurações do Spark são
imutáveis. Se você receber a mensagem AnalysisException: Can't modify the
value of a Spark config: <config_name> , a propriedade em questão será

imutável.
Agendador FAIR: o agendador FAIR é usado no modo de alta simultaneidade.
V-Order: V-Order é a otimização de tempo de gravação aplicada aos arquivos
parquet habilitados por padrão em pools do Spark no Fabric.
Gravação otimizada: a gravação otimizada é desabilitada por padrão no Azure
Synapse, mas habilitada por padrão para o Spark no Fabric.

7 Observação

Saiba como Migrar configurações do Spark do Azure Synapse para o Fabric.

Comparação de bibliotecas do Spark


Você pode aplicar bibliotecas do Spark em diferentes níveis:

Nível do workspace: você não pode carregar/instalar essas bibliotecas em seu


workspace e, posteriormente, atribuí-las a um pool específico do Spark no Azure
Synapse.
Nível de ambiente: você pode carregar/instalar bibliotecas em um ambiente.
Bibliotecas de nível de ambiente estão disponíveis para todos os notebooks e
definições de trabalho do Spark em execução no ambiente.
Embutida: além das bibliotecas no nível do ambiente, você também pode
especificar bibliotecas embutidas. Por exemplo, no início de uma sessão de
notebook.

Considerações:
Biblioteca do Spark Azure Synapse Spark Spark do Fabric

Nível do workspace Sim Não

Nível de ambiente Sim, pools Sim, ambientes

Embutido Sim Yes

Importar/exportar Sim Yes

Suporte ao SDK/à API Sim Não

Embutida: O comando mágico %%configure ainda não tem suporte total no Fabric
neste momento. Não o use para trazer o arquivo .jar para a sua sessão do
notebook.

Outras considerações:
Bibliotecas internas: o Fabric e o Azure Synapse compartilham um núcleo
comum do Spark, mas podem diferir ligeiramente em suporte diferente de suas
bibliotecas de runtime. Normalmente, o uso de código é compatível, com
algumas exceções. Nesse caso, os usuários podem precisar de compilação,
adição de bibliotecas personalizadas e ajuste de sintaxe. Veja as bibliotecas
internas de runtime do Fabric Spark aqui.

7 Observação

Saiba como migrar bibliotecas do Spark do Azure Synapse para o Fabric.

Comparação de notebooks
Notebooks e definições de trabalho do Spark são itens de código primários para
desenvolver trabalhos do Apache Spark no Fabric. Há algumas diferenças entre os
notebooks do Spark no Azure Synapse e os notebooks do Spark no Fabric:

Funcionalidade do notebook Azure Synapse Spark Spark do Fabric

Importar/exportar Sim Yes

Configuração de sessão Sim, interface do usuário Sim, interface do usuário


e em linha (ambiente) e embutida

IntelliSense Sim Yes

mssparkutils Sim Yes


Funcionalidade do notebook Azure Synapse Spark Spark do Fabric

Recursos do Notebook Não Sim

Colaboração Não Sim

Alta simultaneidade Não Sim

.NET para Spark C# Sim Não

Suporte à atividade de Sim Yes


pipeline

Suporte interno à execução Não Sim


agendada

Suporte ao SDK/à API Sim Yes

mssparkutils: como as conexões DMTS ainda não têm suporte no Fabric, apenas
getToken e getSecret têm suporte por enquanto no Fabric para

mssparkutils.credentials . Não há suporte a mssparkutils.env .

Recursos de notebooks: a experiência do bloco de anotações do Fabric fornece


um sistema de arquivos semelhante ao Unix para ajudar você a gerenciar pastas e
arquivos. Para obter mais informações, confira Como usar notebooks do Microsoft
Fabric.

Colabore: o bloco de anotações do Fabric é um item colaborativo que dá suporte


a vários usuários editando o mesmo bloco de anotações. Para obter mais
informações, confira Como usar notebooks do Microsoft Fabric.

Alta simultaneidade: no Fabric, você pode anexar blocos de anotações a uma


sessão de alta simultaneidade. Essa opção é uma alternativa para usuários que
usam ThreadPoolExecutor no Azure Synapse. Para obter mais informações, confira
Configurar o modo de alta simultaneidade para notebooks do Fabric.

.NET para Spark C#: o Fabric não dá suporte ao .NET Spark (C#). No entanto,
recomendamos que os usuários com cargas de trabalho existentes escritas em C#
ou F# migrem para Python ou Scala.

Suporte interno à execução agendada: o Fabric dá suporte a execuções


agendadas para notebooks.

Outras considerações:
Você pode usar recursos dentro de um notebook que só têm suporte em uma
versão específica do Spark. Lembre-se de que o Spark 2.4 e 3.1 não têm suporte
no Fabric.
Se o seu notebook ou trabalho do Spark estiver usando um serviço vinculado
com diferentes conexões de fonte de dados ou pontos de montagem, você
deverá modificar seus trabalhos do Spark para usar métodos alternativos de
lidar com conexões de fontes de dados e coletores externos. Use o código
spark para se conectar a fontes de dados usando bibliotecas do Spark
disponíveis.

7 Observação

Saiba como migrar notebooks do Azure Synapse para o Fabric.

Comparação de definição de trabalho do Spark


Considerações importantes sobre a definição de trabalho do Spark:

Funcionalidade de trabalho do Spark Azure Synapse Spark Spark do Fabric

PySpark Sim Yes

Scala Sim Yes

.NET para Spark C# Sim Não

SparkR Não Sim

Importar/exportar Sim (interface do usuário) Não

Suporte à atividade de pipeline Sim Não

Suporte interno à execução agendada Não Sim

Políticas de repetição Não Sim

Suporte ao SDK/à API Sim Yes

Trabalhos do Spark: você pode trazer seus arquivos py/.R/jar. O Fabric dá suporte
ao SparkR. Uma definição de trabalho do Spark dá suporte a arquivos de
referência, argumentos de linha de comando, configurações do Spark e referências
de lakehouse.

Importação/exportação: no Azure Synapse, você pode importar/exportar


definições de trabalho do Spark baseadas em JSON da interface do usuário. Esse
recurso ainda não está disponível no Fabric.
.NET para Spark C#: o Fabric não dá suporte ao .NET Spark (C#). No entanto, a
recomendação é que os usuários com cargas de trabalho existentes escritas em C#
ou F# migrem para Python ou Scala.

Suporte à atividade de pipeline: os pipelines de dados no Fabric ainda não


incluem a atividade de definição de trabalho do Spark. Você pode usar execuções
agendadas se quiser executar o trabalho do Spark periodicamente.

Suporte interno à execução agendada: o Fabric dá suporte a execuções


agendadas para uma definição de trabalho do Spark.

Políticas de repetição: essa opção permite que os usuários executem trabalhos de


streaming estruturados pelo Spark indefinidamente.

7 Observação

Saiba como Migrar definições de trabalho do Spark do Azure Synapse para o


Fabric.

Comparação do Metastore do Hive (HMS)


Diferenças e considerações do MetaStore do Hive (HMS):

Tipo de HMS Azure Synapse Spark Spark do Fabric

HMS interno Sim Sim (lakehouse)

HMS externo Sim Não

HMS externo: atualmente, o Fabric não dá suporte a uma API de Catálogo e a


acesso a um HMS (Metastore de Hive) externo.

7 Observação

Saiba como migrar metadados HMS do catálogo do Spark do Azure Synapse para
o Fabric.

Próximas etapas
Saiba mais sobre as opções de migração para Pools do Spark, configurações,
bibliotecas, notebooks e definições de trabalho do Spark
Migrar dados e pipelines
Migrar metadados do Metastore do Hive

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Guia de decisão do Microsoft Fabric:
atividade de cópia, fluxo de dados ou
Spark
Artigo • 15/11/2023

Utilize este guia de referência e os cenários de exemplo para ajudar você a decidir se
precisa de uma atividade de Cópia, de um fluxo de dados ou do Spark para suas cargas
de trabalho do Microsoft Fabric.

atividade Copy, fluxo de dados e propriedades


do Spark
Pipeline com atividade de Fluxo de Dados Spark
cópia Gen2

Caso de uso Migração do data lake e do Ingestão de Ingestão de dados,


data warehouse, dados, transformação de
ingestão de dados, transformação dados,
transformação leve de dados, processamento de
estruturação de dados,
dados, criação de perfil de
criação de perfil dados
de dados

Persona do Engenheiro de dados, Engenheiro de Engenheiro de


desenvolvedor integrador de dados dados, dados,
principal integrador de cientista de dados,
dados, desenvolvedor de
analista de dados
negócios

Conjunto de ETL, ETL, Spark (Scala,


habilidades do SQL, M, Python, Spark SQL,
desenvolvedor JSON SQL R)
primário

Código escrito Sem código, Sem código, Código


pouco código pouco código

Volume de dados Baixo para alto Baixo para alto Baixo para alto

Interface de Assistente, Power query Notebook,


desenvolvimento refinada Definição de
Pipeline com atividade de Fluxo de Dados Spark
cópia Gen2

trabalho do Spark

Fontes Mais de 30 conectores Mais de 150 Centenas de


conectores bibliotecas do Spark

Destinos Mais de 18 conectores Lakehouse, Centenas de


Banco de Dados bibliotecas do Spark
SQL do Azure,
Azure Data
explorer,
Azure Synapse
analytics

Complexidade da Baixa: Baixo para alto: Baixo para alto:


transformação leve - conversão de tipo, Mais de 300 suporte para
mapeamento de coluna, funções de bibliotecas nativas
arquivos de transformação do Spark e de
mesclagem/divisão, software livre
hierarquia de nivelamento

Examine os três cenários a seguir para obter ajuda na escolha de como trabalhar com
seus dados no Fabric.

Cenário1
Leo, um engenheiro de dados, precisa ingerir um grande volume de dados de sistemas
externos, tanto no local quanto na nuvem. Esses sistemas externos incluem bancos de
dados, sistemas de arquivos e APIs. Leo não deseja escrever e manter o código para
cada conector ou operação de movimentação de dados. Ele quer seguir as melhores
práticas das camadas de medalhão, com bronze, prata e ouro. Leo não tem nenhuma
experiência com o Spark, então ele prefere arrastar e soltar a interface do usuário o
máximo possível, com codificação mínima. E ele também quer processar os dados em
um agendamento.

A primeira etapa é obter os dados brutos no lakehouse de camada de bronze dos


recursos de dados do Azure e de várias fontes de terceiros (como Snowflake Web, REST,
AWS S3, GCS etc.). Ele quer um lakehouse consolidado, para que todos os dados de
várias fontes LOB, locais e de nuvem residam em um único lugar. Leo analisa as opções
e seleciona a atividade de cópia de pipeline como a escolha apropriada para sua cópia
binária bruta. Esse padrão se aplica à atualização de dados histórica e incremental. Com
a atividade de cópia, o Leo poderá carregar dados Gold em um data warehouse sem
código se a necessidade surgir e os pipelines fornecerem ingestão de dados de alta
escala que pode mover dados de escala petabyte. atividade Copy é a melhor opção de
código baixo e sem código para mover petabytes de dados para lakehouses e armazéns
de variedades de fontes, seja ad-hoc ou por meio de um agendamento.

Cenário2
Mary é uma engenheira de dados com um profundo conhecimento dos vários requisitos
de relatórios analíticos do LOB. Uma equipe de upstream implementou com êxito uma
solução para migrar dados históricos e incrementais de vários LOB para um lakehouse
comum. Mary foi encarregada de limpar os dados, aplicar lógicas de negócios e
carregá-los em vários destinos (como SQL do Azure BD, ADX e um lakehouse) em
preparação para suas respectivas equipes de relatório.

Mary é um usuário experiente de Power Query e o volume de dados está no intervalo de


baixo a médio para obter o desempenho desejado. Os fluxos de dados fornecem
interfaces sem código ou de baixo código para ingerir dados de centenas de fontes de
dados. Com fluxos de dados, você pode transformar dados usando mais de 300 opções
de transformação de dados e gravar os resultados em vários destinos com uma
interface de usuário fácil de usar e altamente visual. Mary analisa as opções e decide
que faz sentido usar o Dataflow Gen 2 como sua opção de transformação preferida.

Cenário3
Adam é um engenheiro de dados que trabalha para uma grande empresa de varejo que
usa uma lakehouse para armazenar e analisar seus dados do cliente. Como parte de seu
trabalho, Adam é responsável por criar e manter os pipelines de dados que extraem,
transformam e carregam dados na lakehouse. Um dos requisitos de negócios da
empresa é executar a análise de revisão do cliente para obter insights sobre as
experiências de seus clientes e melhorar seus serviços.

Adam decide que a melhor opção é usar o Spark para criar a lógica de extração e
transformação. O Spark fornece uma plataforma de computação distribuída que pode
processar grandes quantidades de dados em paralelo. Ele escreve um aplicativo Spark
usando Python ou Scala, que lê dados estruturados, semiestruturados e não
estruturados do OneLake para comentários e análises do cliente. O aplicativo limpa,
transforma e grava dados em tabelas Delta na lakehouse. Em seguida, os dados estão
prontos para serem usados para análise downstream.

Próximas etapas
Como copiar dados usando a atividade de cópia
Início Rápido: crie seus primeiros fluxos de dados para obter e transformar dados
Como criar uma definição de trabalho do Apache Spark no Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Guia de decisão do Microsoft Fabric:
escolher um armazenamento de dados
Artigo • 05/03/2024

Use este guia de referência e os cenários de exemplo para ajudar a escolher um


armazenamento de dados para suas cargas de trabalho do Microsoft Fabric.

Propriedades de armazenamento de dados


ノ Expandir a tabela

Data Lakehouse Datamart do Banco de dados


warehouse Power BI KQL
(Eventhouse)

Volume de dados Ilimitado Ilimitado Até 100 GB Ilimitado

Tipo de dados Estruturados Não estruturado, Estruturados Não estruturado,


semiestruturado, semiestruturado,
estruturado estruturado

Persona do Desenvolvedor Engenheiro de Desenvolvedor Cientista de


desenvolvedor de data dados, cientista de cidadão dados cidadão,
principal warehouse, dados engenheiro de
engenheiro de dados, cientista
SQL de dados,
engenheiro de
SQL

Conjunto de SQL Spark(Scala, Sem código, Sem código, KQL,


habilidades do PySpark, Spark SQL, SQL SQL
desenvolvedor R)
primário

Dados Bancos de Pastas e arquivos, Banco de Bancos de dados,


organizados por dados, bancos de dados e dados, tabelas, esquemas e
esquemas e tabelas consultas tabelas
tabelas

Operações de T-SQL, Spark Spark,T-SQL Spark,T- KQL, T-SQL,


leitura (suporta leitura SQL,Power BI Spark, Power BI
de tabelas
usando atalhos,
ainda não
suporta acesso
Data Lakehouse Datamart do Banco de dados
warehouse Power BI KQL
(Eventhouse)

a visualizações,
procedimentos
armazenados,
funções etc.)

Operações de T-SQL Spark(Scala, Fluxos de KQL, Spark,


gravação PySpark, Spark SQL, dados, T-SQL ecossistema do
R) conector

Transações de Sim Não Não Sim, para


várias tabelas ingestão de várias
tabelas. Consulte
Política de
atualização.

Interface de Scripts SQL Notebooks Spark, Power BI KQL Queryset,


desenvolvimento definições de Banco de Dados
principal trabalho do Spark KQL

Segurança Nível do objeto Nível de linha, nível Editor de RLS Segurança em


(tabela, de tabela (ao usar interno nível de linha
exibição, T-SQL), nenhum
função, para Spark
procedimento
armazenado
etc.), nível da
coluna, nível de
linha,
DDL/DML,
mascaramento
de dados
dinâmico

Acessar dados Sim Sim Não Sim


por meio de (indiretamente
atalhos pelo lakehouse)

Pode ser uma Sim (tabelas) Sim (arquivos e Não Sim


origem para tabelas)
atalhos

Consultar entre Sim, consulte Sim, consulte em Não Sim, consulte


itens as tabelas de tabelas de bancos de dados
lakehouse e lakehouse e KQL, lakehouses e
warehouse warehouse;consulta warehouses com
entre lakehouses atalhos
Data Lakehouse Datamart do Banco de dados
warehouse Power BI KQL
(Eventhouse)

(incluindo atalhos
usando Spark)

Análise avançada Elementos nativos


da Série
Temporal,
Armazenamento
geoespacial
completo e
recursos de
consulta

Suporte à Indexação
formatação completa para
avançada texto gratuito e
dados
semiestruturados,
como JSON

Latência de Ingestão na fila,


ingestão ingestão de
streaming tem
uma latência de
alguns segundos

7 Observação

O Eventhouse é um espaço de trabalho para múltiplos bancos de dados KQL. O


banco de dados KQL está disponível para o público em geral, enquanto o
Eventhouse está em Preview. Para obter mais informações, veja Visão geral do
Eventhhouse (preview).

Cenários
Examine esses cenários para obter ajuda para escolher um armazenamento de dados no
Fabric.

Cenário 1
Susan, uma desenvolvedora profissional, é nova no Microsoft Fabric. Eles estão prontos
para começar a limpar, modelar e analisar dados, mas precisam decidir criar um data
warehouse ou um lakehouse. Após a revisão dos detalhes na tabela anterior, os pontos
de decisão primários são o conjunto de habilidades disponível e a necessidade de
transações de várias tabelas.

Susan passou muitos anos criando data warehouses em mecanismos de banco de dados
relacionais e está familiarizada com a sintaxe e a funcionalidade do SQL. Pensando na
equipe maior, os principais consumidores desses dados também são qualificados com
ferramentas analíticas de SQL e SQL. Susan decide usar um data warehouse, que
permite que a equipe interaja principalmente com o T-SQL, permitindo também que
todos os usuários do Spark na organização acessem os dados.

Cenário 2
Rob, um engenheiro de dados, precisa armazenar e modelar vários terabytes de dados
no Fabric. A equipe tem uma combinação de habilidades de PySpark e T-SQL. A maioria
da equipe que executa consultas T-SQL são consumidores e, portanto, não precisam
escrever instruções INSERT, UPDATE ou DELETE. Os desenvolvedores restantes se
sentem confortáveis em trabalhar em notebooks e, como os dados são armazenados no
Delta, eles podem interagir com uma sintaxe SQL semelhante.

Rob decide usar um lakehouse, que permite que a equipe de engenharia de dados use
suas diversas habilidades em relação aos dados, permitindo que os membros da equipe
altamente qualificados no T-SQL consumam os dados.

Cenário 3
Ash, um desenvolvedor cidadão, é um desenvolvedor do Power BI. Eles estão
familiarizados com o Excel, o Power BI e o Office. Eles precisam criar um produto de
dados para uma unidade de negócios. Eles sabem que não têm as habilidades
necessárias para criar um data warehouse ou um lakehouse, e eles parecem ser demais
para suas necessidades e volumes de dados. Eles revisam os detalhes na tabela anterior
e veem que os pontos de decisão primários são suas próprias habilidades e sua
necessidade de autoatendimento, sem capacidade de código e volume de dados abaixo
de 100 GB.

O Ash trabalha com analistas de negócios familiarizados com o Power BI e o Microsoft


Office e sabe que eles já têm uma assinatura de capacidade Premium. Ao pensar na
equipe, eles percebem que os principais consumidores desses dados podem ser
analistas, familiarizados com ferramentas analíticas sem código e SQL. Ash decide usar
um datamart do Power BI, que permite que a equipe interaja rapidamente para criar a
funcionalidade, usando uma experiência sem código. As consultas podem ser
executadas por meio do Power BI e do T-SQL, permitindo também que os usuários do
Spark na organização acessem os dados.

Cenário 4
Daisy é uma analista de negócios experiente no uso de Power BI para analisar gargalos
da cadeia de fornecedores para uma grande cadeia de varejo global. Eles precisam criar
uma solução de dados escalonável que possa lidar com bilhões de linhas de dados e ser
usada para criar dashboards e relatórios que podem ser usados para tomar decisões de
negócios. Os dados são provenientes de plantas, fornecedores, transportadoras e outras
fontes em vários formatos estruturados, semiestruturados e não estruturados.

Daisy decide usar um Banco de Dados KQL devido à escalabilidade, tempos de resposta
rápidos, recursos de análise avançada, incluindo análise de série temporal, funções
geoespaciais e atualização rápida de dados no Power BI. As consultas podem ser
executadas usando o Power BI e o KQL para comparar entre períodos atuais e
anteriores, identificar rapidamente problemas emergentes ou fornecer análises
geoespaciais de rotas terrestres e marítimas.

Conteúdo relacionado
O que é armazenamento de dados no Microsoft Fabric?
Criar um warehouse no Microsoft Fabric
Criar um lakehouse no Microsoft Fabric
Introdução aos datamarts do Power BI
Criar um banco de dados KQL

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Upload do arquivo CSV na tabela Delta
para relatórios do Power BI
Artigo • 22/12/2023

O Microsoft Fabric Lakehouse é uma plataforma de arquitetura de dados para


armazenar, gerenciar e analisar dados estruturados e não estruturados em um único
local.

Neste tutorial, você aprenderá a:

Faça o upload de um arquivo CSV para um Lakehouse


Converta o arquivo em uma tabela Delta
Gere um modelo semântico e crie um relatório do Power BI

Crie um Lakehouse e prepare um arquivo CSV


1. No Microsoft Fabric, selecione Engenharia de Dados do Synapse.

2. Verifique se você está no espaço de trabalho desejado, ou selecione ou crie um.

3. Na página Início, selecione Lakehouse.

4. Insira o nome do seu Lakehouse.

5. Selecione Criar.

6. Faça o download do arquivo CSV "Taxi Zone Lookup Table" do site TLC Trip
Record Data e salve-o em um local do seu computador.
Faça upload de um arquivo CSV para o
Lakehouse
1. Crie a pasta TaxiData na seção Files do seu Lakehouse.

2. Faça o upload do arquivo na pasta usando o item Upload arquivo no menu


contextual da pasta.

3. Após o upload, selecione a pasta para ver seu conteúdo.

4. Renomeie o arquivo para remover caracteres especiais; neste exemplo, remova o


caractere '+'. Para ver a lista completa de caracteres especiais, leia o artigo
Carregar em tabelas do Delta Lake.

Carregue o arquivo em uma tabela Delta


1. Clique com o botão direito do mouse ou use as reticências no arquivo CSV para
acessar o menu contextual. Selecione Carregar para Tabelas e escolha a opção
Nova tabela.

2. A interface do usuário para carregar tabelas exibida com o nome de tabela


sugerida. As validações em tempo real de caracteres especiais são aplicadas
durante a digitação.

3. Selecione Carregar para executar o carregamento.

4. A tabela agora aparece no explorador do Lakehouse. Expanda a tabela para ver as


colunas e seus tipos. Selecione a tabela para ver uma pré-visualização.

7 Observação

Se a tabela já existir, serão exibidas diferentes opções de modo de carregamento.


Substituição removerá e recriará a tabela. Acréscimo inserirá todo o conteúdo CSV
como novos dados. Para obter um guia detalhado sobre o recurso Carregar para
Tabelas, leia o artigo Carregar para Tabelas.

Gere um modelo semântico e crie um relatório


do Power BI
1. Selecione Novo modelo semântico do Power BI na faixa de opções do Lakehouse.

2. Selecione a tabela a ser adicionada ao modelo semântico e selecione o botão


Confirmar.

3. Na experiência de edição do modelo semântico, você pode definir relações entre


várias tabelas e também aplicar normalização de tipos de dados e transformações
DAX aos dados, se desejar.

4. Selecione Novo relatório na faixa de opções.

5. Use a experiência do construtor de relatórios para projetar um relatório do Power


BI.

Conteúdo relacionado
Carregar nas tabelas do Delta Lake
O que é o Delta Lake?

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Obter dados de streaming no lakehouse
e acessar com o ponto de extremidade
de análise do SQL
Artigo • 15/11/2023

Este início rápido explica como criar uma Definição de Trabalho do Spark que contém
código Python com o Streaming Estruturado do Spark para obter dados em um
lakehouse e, em seguida, servi-los por meio de um ponto de extremidade de análise do
SQL. Depois de concluir este início rápido, você terá uma Definição de Trabalho do
Spark que é executada continuamente e o ponto de extremidade de análise do SQL
pode exibir os dados de entrada.

Executar um script do Python


1. Use o código Python a seguir que usa o streaming estruturado do Spark para
obter dados em uma tabela lakehouse.

Python

import sys
from pyspark.sql import SparkSession

if __name__ == "__main__":
spark = SparkSession.builder.appName("MyApp").getOrCreate()

tableName = "streamingtable"
deltaTablePath = "Tables/" + tableName

df = spark.readStream.format("rate").option("rowsPerSecond",
1).load()

query =
df.writeStream.outputMode("append").format("delta").option("path",
deltaTablePath).option("checkpointLocation", deltaTablePath +
"/checkpoint").start()
query.awaitTermination()

2. Salve o script como arquivo Python (.py) no computador local.

Criar um lakehouse
Use as seguintes etapas para criar um lakehouse:
1. No Microsoft Fabric, selecione a experiência de Engenharia de Dados do Synapse.

2. Navegue até o workspace desejado ou crie um novo, se necessário.

3. Para criar um lakehouse, selecione o ícone Lakehouse na seção Novo no painel


principal.

4. Insira o nome do lakehouse e selecione Criar.

Criar uma Definição de Trabalho do Spark


Execute as etapas a seguir para criar uma Definição de Trabalho do Spark:

1. No mesmo workspace em que você criou um lakehouse, selecione o ícone Criar no


menu à esquerda.

2. Em "Engenharia de Dados", selecione Definição de Trabalho do Spark.


3. Insira o nome da Definição de Trabalho do Spark e selecione Criar.

4. Selecione Carregar e, então, selecione o arquivo Python que você criou na etapa
anterior.

5. Em Referência do Lakehouse , escolha o lakehouse que você criou.

Definir política de repetição para Definição de


Trabalho do Spark
Use as seguintes etapas para definir a política de repetição para sua Definição de
Trabalho do Spark:

1. No menu superior, selecione o ícone Configuração .


2. Abra a guia Otimização e defina o gatilho Política de Repetição como Ativado.

3. Defina o máximo de tentativas de repetição ou marcar Permitir tentativas


ilimitadas.

4. Especifique o tempo entre cada tentativa de repetição e selecione Aplicar.

7 Observação

Há um limite de tempo de vida de 90 dias para a configuração da política de


repetição. Depois que a política de repetição estiver habilitada, o trabalho será
reiniciado de acordo com a política dentro de 90 dias. Após esse período, a política
de repetição deixará de funcionar automaticamente e o trabalho será encerrado.
Em seguida, os usuários precisarão reiniciar manualmente o trabalho, o que, por
sua vez, reabilitará a política de repetição.

Executar e monitorar a Definição de Trabalho


do Spark
1. No menu superior, selecione o ícone Executar.
2. Verifique se a Definição do Trabalho do Spark foi enviada com êxito e em
execução.

Exibir dados usando um ponto de extremidade


de análise do SQL
1. No modo de exibição do workspace, selecione o Lakehouse.

2. No canto direito, selecione Lakehouse e selecione Ponto de extremidade de


análise do SQL.

3. Na exibição ponto de extremidade de análise do SQL em Tabelas, selecione a


tabela que o script usa para obter dados. Em seguida, você pode visualizar seus
dados do ponto de extremidade de análise do SQL.

Próximas etapas
Definição de Trabalho do Spark
O que é o ponto de extremidade de análise do SQL para um lakehouse?

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Referenciando dados no lakehouse nos
projetos de Ciência de Dados
Artigo • 06/12/2023

Este guia de início rápido explica como referenciar os dados armazenados na conta
ADLS externa e usá-los nos seus projetos de Ciência de Dados. Depois de concluir este
início rápido, você terá um atalho para o armazenamento do ADLS no seu lakehouse e
um notebook com código Spark que acessa seus dados externos.

Preparar os dados do atalho


1. No Azure, crie uma conta do ADLS Gen2

2. Habilite o namespace hierárquico.

3. Criar pastas para seus dados

4. Carregar dados

5. Adicionar sua identidade de usuário à função BlobStorageContributor

6. Obter ponto de extremidade da conta de armazenamento

Criar um atalho
1. Abra seu lakehouse para chegar ao Lakehouse Explorer

2. Em arquivos, crie uma pasta na qual você referencia os dados


3. Selecione com o botão direito do mouse (...) e selecione Novo Atalho ao lado do
nome da pasta

4. Selecionar Fontes Externas > ADLS Gen2

5. Forneça o nome do atalho, o ponto de extremidade da conta de armazenamento,


encerre o local da sua pasta de dados na conta de armazenamento

6. Selecione criar
Acessar os dados referenciados no Notebook
1. Abrir um notebook existente ou criar um novo notebook
2. Fixar seu lakehouse no notebook
3. Procure por seus dados na pasta de atalho
4. Selecione um arquivo com dados estruturados e arraste-o para o notebook para
obter o código gerado
5. Executar o código para obter o conteúdo do arquivo
6. Adicionar o código da análise de dados

Conteúdo relacionado
Carregar nas tabelas do Delta Lake
O que é o Delta Lake?

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Cenário de ponta a ponta do lakehouse:
visão geral e arquitetura
Artigo • 15/11/2023

O Microsoft Fabric é uma solução de análise multifuncional para empresas que abrange
desde movimentação de dados até ciência de dados, análises em tempo real e business
intelligence. Ele oferece um conjunto abrangente de serviços, incluindo data lake,
engenharia de dados e integração de dados, tudo em um só lugar. Para obter mais
informações, consulte O que é o Microsoft Fabric?

Esse tutorial guia você através de um cenário de ponta a ponta, desde a aquisição de
dados até o consumo de dados. Ele ajuda você a ter uma compreensão básica do Fabric,
incluindo as diferentes experiências e como elas se integram, bem como as experiências
de desenvolvedor cidadão e profissional que vêm com o trabalho nesta plataforma. Esse
tutorial não se destina a ser uma arquitetura de referência, uma lista exaustiva de
recursos e funcionalidades ou uma recomendação de melhores práticas específicas.

Cenário de ponta a ponta do lakehouse


Tradicionalmente, as organizações vêm criando data warehouses modernos para suas
necessidades de análise de dados transacionais e estruturados. E data lakehouses para
necessidades de análise de dados de Big Data (semi/não estruturado). Esses dois
sistemas foram executados em paralelo, criando silos, duplicação de dados e maior
custo total de propriedade.

O Fabric com sua unificação de armazenamento de dados e padronização no formato


Delta Lake permite eliminar silos, remover a duplicação de dados e reduzir
drasticamente o custo total de propriedade.

Com a flexibilidade oferecida pelo Fabric, você pode implementar arquiteturas do


lakehouse ou do data warehouse ou combiná-las para obter o melhor de ambas com
uma implementação simples. Nesse tutorial, você usará um exemplo de uma
organização de varejo e criará seu lakehouse do início ao fim. Ele usa a arquitetura
medallion em que a camada bronze tem os dados brutos, a camada prata tem os dados
validados e com exclusão de duplicação e a camada de ouro tem dados altamente
refinados. Você pode adotar a mesma abordagem para implementar um lakehouse para
qualquer organização de qualquer setor.

Este tutorial explica como um desenvolvedor da empresa fictícia Wide World Importers
no campo de varejo conclui as seguintes etapas:
1. Entre em sua conta do Power BI e inscreva-se para a avaliação gratuita do
Microsoft Fabric. Se você não tiver uma licença do Power BI, inscreva-se em uma
licença gratuita do Power BI e então poderá iniciar a avaliação do Fabric (versão
prévia).

2. Crie e implemente um lakehouse de ponta a ponta para sua organização:

Criar um workspace do Fabric.


Criar um lakehouse.
Ingerir dados, transformar dados e carregá-los no lakehouse. Você também
pode explorar o OneLake, uma cópia de seus dados no modo lakehouse e no
modo de ponto de extremidade de análise do SQL.
Conecte-se ao lakehouse usando o ponto de extremidade de análise do SQL
e Crie um relatório do Power BI usando o DirectLake para analisar dados de
vendas em diferentes dimensões.
Opcionalmente, você pode orquestrar e agendar a ingestão de dados e o
fluxo de transformação com um pipeline.

3. Limpe os recursos excluindo o workspace e outros itens.

Arquitetura
A imagem a seguir mostra a arquitetura de ponta a ponta do lakehouse. Os
componentes envolvidos são descritos na lista a seguir.
Fontes de dados: o Fabric torna a conexão rápida e fácil aos Serviços de Dados do
Azure, bem como a outras plataformas baseadas em nuvem e fontes de dados
locais, para ingestão de dados simplicada.

Ingestão: você pode criar insights rapidamente para sua organização usando mais
de 200 conectores nativos. Esses conectores são integrados ao pipeline do Fabric e
utilizam a transformação de dados de arrastar e soltar simples com o fluxo de
dados. Além disso, com o recurso de Atalho no Fabric, você pode se conectar aos
dados existentes, sem precisar copiá-los ou movê-los.

Transformar e armazenar: o Fabric é padronizado no formato Delta Lake. Isso


significa que todos os mecanismos do Fabric podem acessar e manipular o mesmo
conjunto de dados armazenado no OneLake sem duplicar os dados. Esse sistema
de armazenamento oferece a flexibilidade para criar lakehouses usando uma
arquitetura medallion ou uma malha de dados, dependendo das suas
necessidades organizacionais. Você pode escolher entre uma experiência de pouco
código ou sem código para transformação de dados, utilizando pipelines/fluxos de
dados ou notebook/Spark para uma experiência code-first.

Consumir: o Power BI pode consumir dados do Lakehouse para gerar relatórios e


visualização. Cada Lakehouse tem um ponto de extremidade de TDS interno
denominado ponto de extremidade de análise do SQL, para facilitar a conectividade
e a consulta de dados nas tabelas do Lakehouse de outras ferramentas de
relatório. O ponto de extremidade de análise do SQL fornece aos usuários a
funcionalidade de conexão do SQL.

Amostra do conjunto de dados


Este tutorial usa o banco de dados de exemplo da Wide World Importers (WWI). Para o
cenário de ponta a ponta do Lakehouse, geramos dados suficientes para explorar os
recursos de escala e desempenho da plataforma Fabric.

A WWI (Wide World Importers) é uma importadora e distribuidora atacadista de


produtos inovadores que opera na área da baía de São Francisco. Como atacadista, a
WWI tem clientes que são, em sua maioria, empresas que revendem os produtos para
pessoas físicas. A WWI comercializa produtos para clientes de varejo em todos os
Estados Unidos, incluindo lojas especializadas, supermercados, lojas de computação,
lojas de atrações turísticas e algumas pessoas físicas. Também vendem mercadorias para
outros fornecedores por meio de uma rede de agentes que promovem os produtos em
nome da empresa. Para saber mais sobre o perfil e a operação da empresa, confira
Bancos de dados de exemplo da Wide World Importers para Microsoft SQL.
Em geral, os dados são trazidos de sistemas transacionais ou aplicativos de linha de
negócios para um lakehouse. No entanto, para facilitar esse tutorial, usamos o modelo
dimensional fornecido pela WWI como nossa fonte de dados inicial. Usamos ele como
fonte para ingerir os dados em um lakehouse e transformá-lo em diferentes estágios
(Bronze, Prata e Ouro) de uma arquitetura medallion.

Modelo de dados
Embora o modelo dimensional da WWI contenha várias tabelas de fatos, para este
tutorial, usamos a tabela de fatos de Vendas e suas dimensões correlacionadas. O
exemplo a seguir ilustra o modelo da WWI:
Fluxo de dados e de transformação
Conforme descrito anteriormente, estamos usando os dados de exemplo dos dados de
exemplo da WWI (Wide World Importers) para criar esse lakehouse de ponta a ponta.
Nessa implementação, os dados de exemplo são armazenados em uma conta de
armazenamento de dados do Azure no formato de arquivo Parquet para todas as
tabelas. No entanto, em cenários reais, os dados normalmente se originariam de várias
fontes e em formatos diversos.

A imagem a seguir mostra a fonte, destino e transformação dados:

Fonte de dados: os dados de origem estão no formato de arquivo Parquet e em


uma estrutura não particionada. Está armazenado em uma pasta para casa tabela.
Neste tutorial, configuramos um pipeline para ingerir os dados históricos
completos ou únicos no lakehouse.

Nesse tutorial, usamos a tabela de fatos Venda, que tem uma pasta pai com dados
históricos por 11 meses (com uma subpasta para cada mês) e outra pasta que
contém dados incrementais por três meses (uma subpasta para cada mês).
Durante a ingestão de dados inicial, 11 meses de dados são ingeridos na tabela do
lakehouse. No entanto, quando os dados incrementais chegam, eles incluem
dados atualizados de outubro e novembro, e novos dados de dezembro. Os dados
de outubro e novembro são mesclados com os dados existentes e os novos dados
de dezembro são gravados na tabela do lakehouse, conforme mostrado na
imagem a seguir:
Lakehouse: neste tutorial, você cria um lakehouse, ingere dados na seção de
arquivos do lakehouse e, em seguida, cria tabelas do Delta Lake na seção Tabelas
do lakehouse.

Transformação: para preparação e transformação de dados, você vê duas


abordagens diferentes. Demonstramos o uso de Notebooks/Spark para usuários
que preferem uma experiência code-first e usam pipelines/fluxo de dados para
usuários que preferem uma experiência com pouco código ou sem código.

Consumir: para demonstrar o consumo de dados, você verá como usar o recurso
DirectLake do Power BI para criar relatórios, painéis e consultar dados diretamente
no lakehouse. Além disso, mostramos como você poderá disponibilizar seus dados
para ferramentas de geração de relatórios de terceiros usando o ponto de
extremidade de análise do TDS/SQL. Esse ponto de extremidade permite que você
se conecte ao warehouse e execute consultas SQL para análise.

Próximas etapas
Prossiga para o próximo artigo para saber como

Criar um lakehouse
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Tutorial do Lakehouse: Criar um espaço
de trabalho do Fabric
Artigo • 10/01/2024

Antes de começar a criar o lakehouse, você precisa criar um espaço de trabalho em que
possa criar o restante do tutorial.

Pré-requisitos
Inscreva-se para a Avaliação gratuita do Microsoft Fabric. A avaliação no Fabric requer
uma licença do Power BI. Se você não tiver um, inscreva-se em uma licença gratuita do
Power BI, e, em seguida, poderá iniciar a avaliação do Fabric.

Criar um workspace
Nesta etapa, você criará um espaço de trabalho do Fabric. O espaço de trabalho contém
todos os itens necessários para este tutorial do lakehouse, que inclui lakehouse, fluxos
de dados, pipelines do Data Factory, notebooks, modelos semânticos do Power BI e
relatórios.

1. Entre no Power BI .

2. Selecione Workspaces e Novo espaço de trabalho.


3. Preencha o formulário Criar um espaço de trabalho com os seguintes detalhes:

Nome: Insira o Tutorial do Fabric Lakehouse e quaisquer caracteres extras


para tornar o nome exclusivo.

Descrição: insira uma descrição opcional para seu espaço de trabalho.

Avançado: em Modo de licença, selecione Capacidade de avaliação. Você


também pode escolher Capacidade de malha com SKU F64 ou uma
capacidade Premium do Power BI com SKU P1 se tiver acesso a elas. Essas
SKUs fornecem acesso a todos os recursos do Fabric.
4. Selecione Aplicar para criar e abrir o espaço de trabalho.

Próxima etapa
Criar um lakehouse no Microsoft Fabric

Comentários
Esta página foi útil?  Yes  No
Fornecer comentários sobre o produto | Pergunte à comunidade
Tutorial do Lakehouse: criar um
lakehouse, ingerir dados de exemplo e
criar um relatório
Artigo • 16/04/2024

Nesse tutorial, você cria um lakehouse, ingere dados de exemplo na tabela delta, aplica
a transformação quando necessário e, em seguida, cria relatórios.

Pré-requisitos
Criar um workspace do Fabric
Nesse artigo, você segue as etapas para ingerir um arquivo CSV, o que exige que
você tenha o OneDrive configurado. Se você não tiver o OneDrive configurado,
inscreva-se na avaliação gratuita do Microsoft 365: Avaliação gratuita -
Experimente o Microsoft 365 por um mês .

Criar um lakehouse
1. No serviço do Power BI , selecione Workspaces no menu à esquerda.

2. Para abrir seu workspace, insira seu nome na caixa de texto de pesquisa localizada
na parte superior e selecione-o nos resultados da pesquisa.

3. No comutador de experiência localizado na parte inferior esquerda, selecione


Engenharia de Dados.
4. Na guia Engenharia de Dados, selecione Lakehouse para criar um lakehouse.

5. Na caixa de diálogo Novo lakehouse, insira wwilakehouse no campo Nome .

6. Selecione Criar para criar e abrir o novo lakehouse.

Ingerir dados de exemplo

7 Observação

Se você não tiver o OneDrive configurado, inscreva-se na avaliação gratuita do


Microsoft 365: Avaliação gratuita - Experimente o Microsoft 365 por um mês .

1. Baixe o arquivo dimension_customer.csv do repositório de exemplos do Fabric .

2. No Lakehouse Explorer, você vê opções para carregar dados no lakehouse.


Selecione Novo Fluxo de Dados Gen2.

3. No novo painel de fluxo de dados, selecione Importar de um arquivo Text/CSV.


4. No painel Conectar-se à fonte de dados, selecione o botão de opção Carregar
arquivo . Arraste e solte o arquivo dedimension_customer.csv que você baixou na
etapa 1. Depois que o arquivo for carregado, selecione Avançar.

5. Na página Visualizar dados do arquivo , visualize os dados e selecione Criar para


continuar e retornar à tela de fluxo de dados.

6. No painel Configurações de Consulta, atualize o campo Nome como


dimension_customer.

7 Observação

O Fabric adiciona um espaço e um número no final do nome da tabela por


padrão. Os nomes de tabela devem ser minúsculos e não devem conter
espaços. Renomeie-o adequadamente e remova todos os espaços do nome
da tabela.

7. Neste tutorial, você já associou os dados do cliente a um lakehouse. Caso você


tenha outros itens de dados que deseja associar ao lakehouse. pode adicioná-los
com as seguintes etapas:
Nos itens de menu, selecione Adicionar destino de dados e selecione
Lakehouse. Na tela Conectar-se ao destino de dados, entre em sua conta, se
necessário, e selecione Avançar.

Navegue até o wwilakehouse em seu workspace.

Se a tabela dimension_customer não existir, selecione a configuração Nova


tabela e insira o nome da tabela dimension_customer. Se a tabela já existir,
selecione a configuração Tabela existente e escolha dimension_customer na
lista de tabelas no pesquisador de objetos. Selecione Avançar.

No painel Escolher configurações de destino , selecione Substituir como


Método de atualização. Selecione Salvar configurações para retornar à tela
de fluxo de dados.

8. Na tela de fluxo de dados, você pode transformar facilmente os dados com base
em seus requisitos de negócios. Para simplificar, não estamos fazendo nenhuma
alteração neste tutorial. Para continuar, selecione Publicar na parte inferior direita
da tela.
9. Um círculo giratório ao lado do nome do fluxo de dados indica que a publicação
está em andamento na exibição do item. Quando a publicação for concluída,
selecione ... e selecione Propriedades. Renomeie o fluxo de dados para Carregar
Tabela do Lakehouse e selecione Salvar.

10. Selecione a opção Atualizar agora ao lado do nome do fluxo de dados para
atualizar o fluxo de dados. Ele executa o fluxo de dados e move dados do arquivo
de origem para a tabela lakehouse. Enquanto estiver em andamento, você verá um
círculo giratório em Coluna atualizada no modo de exibição de item.
11. Depois que o fluxo de dados for atualizado, selecione o novo lakehouse no painel
de navegação esquerdo para exibir o dimension_customer tabela delta.

12. Selecione a tabela para visualizar seus dados. Você também pode usar o ponto de
extremidade de análise do SQL do lakehouse para consultar os dados com
instruções SQL. Selecione Ponto de extremidade de análise do SQL no menu
suspenso Lakehouse na parte superior direita da tela.

13. Selecione a tabela dimension_customer para visualizar seus dados ou selecione


Nova consulta SQL para gravar suas instruções SQL.

14. A consulta de exemplo a seguir agrega a contagem de linhas com base na coluna
BuyingGroup da tabela dimension_customer . Os arquivos de consulta SQL são
salvos automaticamente para referência futura e você pode renomear ou excluir
esses arquivos com base em sua necessidade.

Para executar o script, selecione o ícone Executar na parte superior do arquivo de


script.

SQL

SELECT BuyingGroup, Count(*) AS Total


FROM dimension_customer
GROUP BY BuyingGroup
Criar um relatório
1. Anteriormente, todas as tabelas e exibições do lakehouse eram adicionadas
automaticamente ao modelo semântico. Com as atualizações recentes, para novos
lakehouses, você precisa adicionar manualmente suas tabelas ao modelo
semântico. Na guia Relatórios do lakehouse, selecione Gerenciar modelo
semântico padrão e selecione as tabelas que deseja adicionar ao modelo
semântico. Nesse caso, selecione a tabela dimension_customer.

2. Para garantir que as tabelas no modelo semântico sempre estejam sincronizadas,


alterne para o modo de exibição de Ponto de extremidade de análise SQL e abra
o painel de configurações do lakehouse. Selecione a configuração Modelo
semântico padrão do Power BI e ative Sincronizar o modelo semântico padrão
do Power BI. Para obter mais informações, confira Modelos semânticos padrão do
Power BI.

3. Após a adição da tabela, o sistema criará um modelo semântico com o mesmo


nome do lakehouse.
4. No painel do modelo semântico, você pode exibir todas as tabelas. Você tem
opções para criar relatórios do zero, relatório paginado ou permitir que o Power BI
crie automaticamente um relatório com base em seus dados. Para este tutorial,
selecione Explorar estes dados em Criar um relatório automaticamente. No
próximo tutorial, criamos um relatório do zero.

5. Como a tabela é uma dimensão e não há medidas nela, o Power BI cria uma
medida para a contagem de linhas e a agrega em diferentes colunas e cria gráficos
diferentes, conforme mostrado na imagem a seguir. Você pode salvar este
relatório para o futuro selecionando Salvar na faixa de opções superior. Você pode
fazer mais alterações neste relatório para atender às suas necessidades incluindo
ou excluindo outras tabelas ou colunas.

Próxima etapa
Ingerir dados no lakehouse

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Tutorial do Lakehouse: Ingerir dados no
Lakehouse
Artigo • 15/11/2023

Neste tutorial, você ingere tabelas dimensionais e de fatos adicionais dos Wide World
Importers (WWI) no Lakehouse.

Pré-requisitos
Criar um lakehouse

Ingestão de dados
Nesta seção, utilize a atividade Copiar dados do pipeline do Data Factory para ingerir
dados de amostra de uma conta de armazenamento do Azure para a seção Arquivos do
lakehouse criado anteriormente.

1. Selecione Espaços de Trabalho no painel de navegação esquerdo e, em seguida,


selecione o novo espaço de trabalho no menu Espaços de Trabalho. A exibição de
itens do seu espaço de trabalho é exibida.

2. No botão +Novo da página do espaço de trabalho, selecione Pipeline de dados.


3. Na caixa de diálogo Novo pipeline, especifique o nome como
IngestDataFromSourceToLakehouse e selecione Criar. Um novo pipeline do data
factory é criado e aberto.

4. Em seu pipeline do data factory recém-criado, selecione Adicionar atividade do


pipeline para adicionar uma atividade ao pipeline e selecione Copiar dados. Essa
ação adiciona uma atividade de cópia de dados à tela do pipeline.

5. Selecione a atividade de cópia de dados recém-adicionada na tela. As


propriedades da atividade aparecem em um painel abaixo da tela (talvez seja
necessário expandir o painel para cima, arrastando a borda superior). Na guia
Geral do painel de propriedades, especifique o nome da atividade de cópia de
dados Copiar dados para o Lakehouse.
6. Na guia Origem da atividade de Cópia de dados selecionada, selecione Externo
como Tipo de armazenamento de dados e, em seguida, selecione +Novo para
criar uma nova conexão com a fonte de dados.

7. Neste tutorial, todos os dados de amostra estão disponíveis em um contêiner


público do armazenamento de blobs do Azure. Conecte-se a esse contêiner para
copiar os dados dele. No assistente Nova conexão, selecione Armazenamento de
Blobs do Azure e, em seguida, Continuar.
8. Na próxima tela do assistente Nova conexão, insira os seguintes detalhes e
selecione Criar para criar a conexão com a fonte de dados.

Propriedade Valor

Nome da conta ou do https://azuresynapsestorage.blob.core.windows.net/sampledata


URI

Conexão Criar nova conexão

Nome da conexão wwisampledata

Tipo de autenticação Anônima


9. Depois que a nova conexão for criada, retorne à guia Origem da atividade de
cópia de dados e a conexão recém-criada será selecionada por padrão. Especifique
as seguintes propriedades antes de passar para as configurações de destino.

Propriedade Valor

Tipo de armazenamento de Externo


dados

Conexão wwisampledata

Tipo de caminho do Caminho do arquivo


arquivo

Caminho do arquivo Nome do contêiner (primeira caixa de texto): sampledata


Nome do diretório (segunda caixa de texto):
WideWorldImportersDW/parquet

Recursivamente Verificado

Formato de arquivo Binário


10. Na guia Destino da atividade de cópia selecionada, especifique as seguintes
propriedades:

Propriedade Valor

Tipo de armazenamento de dados Workspace

Tipo de armazenamento de dados do Lakehouse


workspace

Lakehouse wwilakehouse

Pasta raiz Arquivos

Caminho do arquivo Nome do diretório (primeira caixa de texto):


wwi-raw-data

Formato de arquivo Binário


11. Você terminou de configurar a atividade de cópia de dados. Selecione o botão
Salvar na faixa de opções superior (em Início) para salvar as alterações e selecione
Executar para executar o pipeline e sua atividade. Também é possível agendar os
pipelines para atualizar os dados em intervalos definidos para atender às
exigências do seu negócio. Para este tutorial, executamos o pipeline apenas uma
vez, clicando no botão Executar.

Essa ação dispara a cópia de dados da fonte de dados subjacente para o lakehouse
especificado e pode levar até um minuto para ser concluída. Você pode monitorar
a execução do pipeline e sua atividade na guia Saída, que aparece quando você
clica em qualquer lugar da tela. Opcionalmente, você pode selecionar o ícone de
óculos, que aparece quando você passa o mouse sobre o nome, para ver os
detalhes da transferência de dados.
12. Depois que os dados forem copiados, acesse a exibição de itens do espaço de
trabalho e selecione seu novo lakehouse (wwilakehouse) para abrir o Lakehouse
Explorer.

13. Verifique se, na exibição Lakehouse Explorer, uma nova pasta wwi-raw-data foi
criada e os dados de todas as tabelas foram copiados para lá.

Próximas etapas
Avance para o próximo artigo para saber mais sobre
Preparar e transformar os dados

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Tutorial do lakehouse: preparar e
transformar dados no lakehouse
Artigo • 08/08/2023

Neste tutorial, você usará notebooks com o runtime do Spark para transformar e
preparar os dados.

) Importante

O Microsoft Fabric está em versão prévia.

Pré-requisitos
Ingerir dados no lakehouse

Preparar dados
Nas etapas anteriores do tutorial, temos dados brutos ingeridos da origem para a seção
Arquivos do lakehouse. Agora você pode transformar esses dados e prepará-los para
criar tabelas delta.

1. Baixe os notebooks na pasta Código-fonte do Tutorial do Lakehouse .

2. No comutador de experiência localizado na parte inferior esquerda, selecione


Engenharia de Dados.

3. Selecione Importar notebook na seção Novo, na parte superior da página de


aterrissagem.
4. Selecione Carregar no painel Importar status que se abre no lado direito da tela.

5. Selecione todos os notebooks que foram baixados na etapa 1 desta seção.

6. Selecione Abrir. Uma notificação que indica o status da importação aparece no


canto superior direito da janela do navegador.

7. Depois que a importação for bem-sucedida, você poderá acessar a exibição de


itens do workspace e ver os notebooks recém-importados. Selecione o lakehouse
wwilakehouse para abri-lo.

8. Depois que o lakehouse wwilakehouse for aberto, selecione Abrir


notebook>Notebook existente no menu de navegação superior.
9. Na lista de notebooks existentes, selecione o notebook 01 – Criar Tabelas Delta e
selecione Abrir.

10. No notebook aberto no Gerenciador do Lakehouse, você verá que o notebook já


está vinculado ao seu lakehouse aberto.

7 Observação

O Fabric fornece o recurso de ordem V para gravar arquivos delta lake


otimizados. A ordem V geralmente melhora a compactação em três a quatro
vezes e a aceleração do desempenho em até 10 vezes em relação aos
arquivos Delta Lake que não são otimizados. O Spark no Fabric otimiza
dinamicamente as partições ao gerar arquivos com um tamanho padrão de
128 MB. O tamanho do arquivo de destino pode ser alterado por requisitos
de carga de trabalho usando configurações. Com o recurso de otimizar
gravação, o mecanismo do Apache Spark reduz o número de arquivos
gravados e visa aumentar o tamanho do arquivo individual dos dados
gravados.

11. Antes de gravar dados como tabelas delta lake na seção Tabelas do lakehouse, use
dois recursos do Fabric (ordem V e Otimizar Gravação) para otimizar a gravação
de dados e melhorar o desempenho da leitura. Para habilitar esses recursos em
sua sessão, defina essas configurações na primeira célula do notebook.

Para iniciar o notebook e executar todas as células em sequência, selecione


Executar Tudo na faixa de opções superior (em Página Inicial). Ou, para executar
apenas o código de uma célula específica, selecione o ícone Executar que aparece
à esquerda da célula ao passar o mouse ou pressione SHIFT + ENTER no teclado
enquanto o controle estiver na célula.
Ao executar uma célula, você não precisou especificar o pool do Spark subjacente
ou os detalhes do cluster porque o Fabric os fornece por meio do Pool Dinâmico.
Todo workspace do Fabric vem com um pool Spark padrão, chamado Pool
Dinâmico. Isso significa que, ao criar notebooks, você não precisa se preocupar em
especificar nenhuma configuração do Spark ou detalhes do cluster. Ao executar o
primeiro comando do notebook, o pool dinâmico entra em funcionamento em
alguns segundos. E a sessão do Spark é estabelecida e começa a executar o
código. A execução subsequente do código é quase instantânea nesse notebook
enquanto a sessão do Spark estiver ativa.

12. Em seguida, leia os dados brutos da seção Arquivos do lakehouse e adicione mais
colunas para diferentes partes da data como parte da transformação. Por fim, use a
API partitionBy do Spark para particionar os dados antes de gravá-los como tabela
delta com base nas colunas de partes de dados recém-criadas (ano e trimestre).

Python

from pyspark.sql.functions import col, year, month, quarter

table_name = 'fact_sale'

df = spark.read.format("parquet").load('Files/wwi-raw-
data/full/fact_sale_1y_full')
df = df.withColumn('Year', year(col("InvoiceDateKey")))
df = df.withColumn('Quarter', quarter(col("InvoiceDateKey")))
df = df.withColumn('Month', month(col("InvoiceDateKey")))

df.write.mode("overwrite").format("delta").partitionBy("Year","Quarter"
).save("Tables/" + table_name)

13. Depois que as tabelas de fatos forem carregadas, você poderá prosseguir com o
carregamento de dados para o restante das dimensões. A célula a seguir cria uma
função para ler dados brutos da seção Arquivos do lakehouse para cada um dos
nomes de tabela passados como parâmetro. Em seguida, criará uma lista de
tabelas de dimensão. Por fim, percorrerá a lista de tabelas e criará uma tabela delta
para cada nome de tabela lido do parâmetro de entrada.
Python

from pyspark.sql.types import *


def loadFullDataFromSource(table_name):
df = spark.read.format("parquet").load('Files/wwi-raw-data/full/' +
table_name)
df.write.mode("overwrite").format("delta").save("Tables/" +
table_name)

full_tables = [
'dimension_city',
'dimension_date',
'dimension_employee',
'dimension_stock_item'
]

for table in full_tables:


loadFullDataFromSource(table)

14. Para validar as tabelas criadas, clique com o botão direito do mouse e selecione
atualizar no lakehouse wwilakehouse. As tabelas são exibidas.

15. Vá para a exibição de itens do workspace novamente e selecione o lakehouse


wwilakehouse para abri-lo.

16. Agora, abra o segundo notebook. Na exibição do lakehouse, selecione Abrir


notebook>Notebook existente na faixa de opções.

17. Na lista de notebooks existentes, selecione o notebook 02 – Transformação de


Dados – Negócios para abri-lo.
18. No notebook aberto no Gerenciador do Lakehouse, você verá que o notebook já
está vinculado ao seu lakehouse aberto.

19. Uma organização pode ter engenheiros de dados trabalhando com Scala/Python e
outros engenheiros de dados trabalhando com SQL (Spark SQL ou T-SQL), todos
trabalhando na mesma cópia dos dados. O Fabric possibilita que esses diferentes
grupos, com experiências e preferências variadas, trabalhem e colaborem. As duas
abordagens diferentes transformam e geram agregações de negócios. Você pode
escolher a mais adequada para você ou misturar e combinar essas abordagens de
acordo com sua preferência, sem comprometer o desempenho:

Abordagem nº 1: use o PySpark para unir e agregar dados para gerar


agregados de negócios. Essa abordagem é preferível para alguém com
experiência em programação (Python ou PySpark).

Abordagem nº 2: use o Spark SQL para unir e agregar dados para gerar
agregações de negócios. Essa abordagem é preferível para alguém com
experiência em SQL que está fazendo a transição para o Spark.

20. Abordagem nº 1 (sale_by_date_city): use o PySpark para unir e agregar dados para
gerar agregados de negócios. Com o código a seguir, crie três quadros de dados
diferentes do Spark, cada um fazendo referência a uma tabela delta existente. Em
seguida, junte essas tabelas usando os dataframes, faça o agrupamento por para
gerar agregação, renomeie algumas colunas e, por fim, escreva-as como uma
tabela delta na seção Tabelas do lakehouse para persistir com os dados.

Nessa célula, crie três dataframes Spark diferentes, cada um fazendo referência a
uma tabela delta existente.

Python

df_fact_sale = spark.read.table("wwilakehouse.fact_sale")
df_dimension_date = spark.read.table("wwilakehouse.dimension_date")
df_dimension_city = spark.read.table("wwilakehouse.dimension_city")
Nessa célula, una essas tabelas usando os dataframes criados anteriormente, faça
o agrupamento por para gerar agregação, renomeie algumas colunas e, por fim,
escreva-as como uma tabela delta na seção Tabelas do lakehouse.

Python

sale_by_date_city = df_fact_sale.alias("sale") \
.join(df_dimension_date.alias("date"), df_fact_sale.InvoiceDateKey ==
df_dimension_date.Date, "inner") \
.join(df_dimension_city.alias("city"), df_fact_sale.CityKey ==
df_dimension_city.CityKey, "inner") \
.select("date.Date", "date.CalendarMonthLabel", "date.Day",
"date.ShortMonth", "date.CalendarYear", "city.City",
"city.StateProvince", "city.SalesTerritory", "sale.TotalExcludingTax",
"sale.TaxAmount", "sale.TotalIncludingTax", "sale.Profit")\
.groupBy("date.Date", "date.CalendarMonthLabel", "date.Day",
"date.ShortMonth", "date.CalendarYear", "city.City",
"city.StateProvince", "city.SalesTerritory")\
.sum("sale.TotalExcludingTax", "sale.TaxAmount",
"sale.TotalIncludingTax", "sale.Profit")\
.withColumnRenamed("sum(TotalExcludingTax)", "SumOfTotalExcludingTax")\
.withColumnRenamed("sum(TaxAmount)", "SumOfTaxAmount")\
.withColumnRenamed("sum(TotalIncludingTax)", "SumOfTotalIncludingTax")\
.withColumnRenamed("sum(Profit)", "SumOfProfit")\
.orderBy("date.Date", "city.StateProvince", "city.City")

sale_by_date_city.write.mode("overwrite").format("delta").option("overw
riteSchema", "true").save("Tables/aggregate_sale_by_date_city")

21. Abordagem nº 2 (sale_by_date_employee): use o Spark SQL para unir e agregar


dados para gerar agregados de negócios. Com o código a seguir, crie uma
exibição temporária do Spark unindo três tabelas, faça agrupamento por para
gerar agregação e renomeie algumas colunas. Por fim, leia a exibição temporária
do Spark e, por fim, escreva-a como uma tabela delta na seção Tabelas do
lakehouse para persistir com os dados.

Nessa célula, crie uma exibição temporária do Spark unindo três tabelas, faça
agrupamento por para gerar agregação e renomeie algumas colunas.

Python

%%sql
CREATE OR REPLACE TEMPORARY VIEW sale_by_date_employee
AS
SELECT
DD.Date, DD.CalendarMonthLabel
, DD.Day, DD.ShortMonth Month, CalendarYear Year
,DE.PreferredName, DE.Employee
,SUM(FS.TotalExcludingTax) SumOfTotalExcludingTax
,SUM(FS.TaxAmount) SumOfTaxAmount
,SUM(FS.TotalIncludingTax) SumOfTotalIncludingTax
,SUM(Profit) SumOfProfit
FROM wwilakehouse.fact_sale FS
INNER JOIN wwilakehouse.dimension_date DD ON FS.InvoiceDateKey =
DD.Date
INNER JOIN wwilakehouse.dimension_Employee DE ON FS.SalespersonKey =
DE.EmployeeKey
GROUP BY DD.Date, DD.CalendarMonthLabel, DD.Day, DD.ShortMonth,
DD.CalendarYear, DE.PreferredName, DE.Employee
ORDER BY DD.Date ASC, DE.PreferredName ASC, DE.Employee ASC

Nessa célula, leia a exibição temporária do Spark criada na célula anterior e, por
fim, grave-a como uma tabela delta na seção Tabelas do lakehouse.

Python

sale_by_date_employee = spark.sql("SELECT * FROM


sale_by_date_employee")
sale_by_date_employee.write.mode("overwrite").format("delta").option("o
verwriteSchema", "true").save("Tables/aggregate_sale_by_date_employee")

22. Para validar as tabelas criadas, clique com o botão direito do mouse e selecione
atualizar no lakehouse wwilakehouse. As tabelas de agregação são exibidas.

Ambas as abordagens produzem um resultado semelhante. Você pode escolher com


base em seu histórico e preferência, para minimizar a necessidade de aprender uma
nova tecnologia ou comprometer o desempenho.

Além disso, você pode perceber que está gravando dados como arquivos delta lake. O
recurso de descoberta e registro automático de tabelas do Fabric coleta e registra essas
tabelas no metastore. Você não precisa chamar explicitamente as instruções de CREATE
TABLE para criar tabelas a serem usadas com o SQL.

Próximas etapas
Avance para o próximo artigo para saber mais sobre

Criar relatórios usando o Power BI


Tutorial da Lakehouse: criando relatórios
no Microsoft Fabric
Artigo • 15/11/2023

Nesta seção do tutorial, você cria um modelo de dados do Power BI e cria um relatório
do zero.

Pré-requisitos
Prepare e transforme os dados utilizando notebooks e o runtime do Spark

Criar um relatório
O Power BI está integrado de forma nativa em toda a experiência do Fabric. Essa
integração nativa traz um modo exclusivo, chamado DirectLake, de acessar os dados no
Lakehouse para fornecer a experiência de consulta e geração de relatórios de maior
desempenho. O modo DirectLake é um novo e inovador recurso de mecanismo para
analisar modelo semântico muito grandes no Power BI. A tecnologia baseia-se na ideia
de carregar arquivos formatados em parquet diretamente de um data lake sem precisar
consultar um data warehouse ou um ponto de extremidade do Lakehouse e sem
precisar importar ou duplicar dados em um modelo semântico do Power BI. O
DirectLake é um caminho rápido para carregar os dados do data lake diretamente no
mecanismo do Power BI, Pronto para análise.

No modo tradicional DirectQuery, o mecanismo do Power BI consulta diretamente os


dados da fonte para cada execução de consulta, e o desempenho da consulta depende
da velocidade de recuperação dos dados. O DirectQuery elimina a necessidade de
copiar dados, certificando-se de que todas as alterações na origem sejam
imediatamente refletidas nos resultados da consulta. Por outro lado, no modo de
importação, o desempenho é muito melhor porque os dados estão prontamente
disponíveis na memória sem a necessidade de consultar os dados da origem para cada
execução de consulta; no entanto, o mecanismo do Power BI deve primeiro copiar os
dados para a memória no tempo de atualização dos dados. Quaisquer alterações na
fonte de dados subjacente são detectadas durante a próxima atualização de dados
(tanto na atualização agendada quanto na sob demanda).

O modo DirectLake agora elimina essa exigência de importação ao carregar os arquivos


de dados diretamente na memória. Como não existe um processo de importação
explícito, é possível pegar todas as alterações na fonte à medida que elas ocorrem,
combinando assim as vantagens do DirectQuery e do modo de importação e evitando
suas desvantagens. O modo DirectLake é, portanto, a escolha ideal para analisar
modelos semânticos muito grandes e modelos semânticos com atualizações frequentes
na fonte.

1. No seu lakehouse wwilakehouse, selecione o ponto de extremidade de análise


SQL no menu suspenso Lakehouse no canto superior direito da tela.

2. No painel do ponto de extremidade SQL, você deve poder conferir todas as


tabelas que criou. Se ainda não as estiver conferindo, selecione o ícone Atualizar
na parte superior. Em seguida, selecione a guia Modelo na parte inferior para abrir
o modelo semântico padrão do Power BI.

3. Para esse modelo de dados, é necessário definir a relação entre diferentes tabelas
para que você possa criar relatórios e visualizações com base nos dados
provenientes de diferentes tabelas. Na tabela fact_sale, arraste o campo CityKey e
solte-o no campo CityKey da tabela dimension_city para criar um relacionamento.
É exibida a caixa de diálogo Criar Relacionamento.

4. Na caixa de diálogo Criar Relacionamento:

a. A tabela 1 é preenchida com fact_sale e a coluna CityKey.

b. A tabela 2 é preenchida com dimension_city e a coluna CityKey.

c. Cardinalidade: muitos para um (*:1)

d. Direção do filtro cruzado: Único

e. Deixe selecionada a caixa ao lado de Tornar este relacionamento ativo.

f. Selecione a caixa ao lado de Assumir integridade referencial.

g. Selecione Confirmar.
7 Observação

Ao definir relacionamentos para este relatório, verifique se há um


relacionamento de muitos para um da tabela fact_sale (Tabela 1) para as
tabelas dimension_* (Tabela 2) e não vice-versa.

5. Em seguida, adicione esses relacionamentos com as mesmas configurações Criar


Relacionamento mostradas acima, mas com as seguintes tabelas e colunas:

StockItemKey(fact_sale) - StockItemKey(dimension_stock_item)
Salespersonkey(fact_sale) - EmployeeKey(dimension_employee)
CustomerKey(fact_sale) - CustomerKey(dimension_customer)
InvoiceDateKey(fact_sale) - Date(dimension_date)

Depois de adicionar esses relacionamentos, seu modelo de dados estará pronto


para a geração de relatórios, conforme mostrado na imagem a seguir:

6. Selecione Novo relatório para começar a criar relatórios/dashboards no Power BI.


Na tela de relatórios do Power BI, é possível criar relatórios para atender a seus
requisitos de negócios, arrastando as colunas necessárias do painel Data para a
tela e utilizando uma ou mais das visualizações disponíveis.

7. Adicionar um Título:

a. Na Faixa de Opções, selecione Caixa de texto.

b. Digite em Relatório de Lucro dos Importadores da WW.

c. Destaque o texto, aumente o tamanho para 20 e coloque-o no canto superior


esquerdo da página do relatório.

8. Adicionar um Cartão:
a. No painel Dados, expanda fact_sales e marque a caixa ao lado de Lucro. Essa
seleção cria um gráfico de colunas e adiciona o campo ao eixo Y.

b. Com o gráfico de barras selecionado, selecione o visual Card no painel de


visualização. Essa seleção converte o visual em um cartão.

c. Coloque o cartão sob o título.

9. Adicionar um Gráfico de barras:

a. No painel Dados, expanda fact_sales e marque a caixa ao lado de Lucro. Essa


seleção cria um gráfico de colunas e adiciona o campo ao eixo Y.

b. No painel Dados, expanda dimension_city e marque a caixa SalesTerritory. Essa


seleção adiciona o campo ao eixo Y.

c. Com o gráfico de barras selecionado, selecione o visual Gráfico de barras


agrupadas no painel de visualização. Essa seleção converte o gráfico de colunas
em um gráfico de barras.

d. Redimensione o gráfico de barras para preencher a área sob o título e o cartão.


10. Clique em qualquer lugar da tela em branco (ou pressione a tecla Esc) para que o
gráfico de barras não seja mais selecionado.

11. Crie um gráfico visual de área empilhada:

a. No painel Visualizações, selecione o visual Gráfico de área empilhada.

b. Reposicione e redimensione o gráfico de área empilhada à direita dos visuais do


cartão e do gráfico de barras criados nas etapas anteriores.

c. No painel Dados, expanda fact_sales e marque a caixa ao lado de Lucro.


Expanda dimension_date e marque a caixa ao lado de FiscalMonthNumber.
Essa seleção cria um gráfico de linhas preenchido mostrando o lucro por mês
fiscal.

d. No painel Dados, expanda dimension_stock_item e arraste BuyingPackage para


o campo Legenda. Essa seleção adiciona uma linha para cada um dos pacotes
de compra.

12. Clique em qualquer lugar da tela em branco (ou pressione a tecla Esc) para que o
gráfico de área empilhada não seja mais selecionado.

13. Criar um gráfico de colunas:

a. No painel Visualizações, selecione o visual Gráfico de colunas empilhadas.

b. No painel Dados, expanda fact_sales e marque a caixa ao lado de Lucro. Essa


seleção adiciona o campo ao eixo Y.

c. No painel Dados, expanda dimension_employee e marque a caixa ao lado de


Funcionário. Essa seleção adiciona o campo ao eixo X.

14. Clique em qualquer lugar da tela em branco (ou pressione a tecla Esc) para que o
gráfico não seja mais selecionado.

15. Na faixa de opções, selecione Arquivo>Salvar.

16. Insira o nome de seu relatório como Relatório de Lucros.

17. Selecione Salvar.

Próximas etapas
Prossiga para o próximo artigo para saber como

Limpar recursos

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Tutorial do Lakehouse: Limpar recursos
do Fabric
Artigo • 15/01/2024

Como etapa final no tutorial, limpo seus recursos. Este artigo mostra como excluir um
espaço de trabalho.

Pré-requisitos
Criar o modelo de dados do Power BI e um relatório

Limpar os recursos
Você pode excluir relatórios individuais, pipelines, warehouses e outros itens ou remover
todo o espaço de trabalho. Use as seguintes etapas para excluir o este criado para este
tutorial:

1. Selecione seu espaço de trabalho, o Tutorial do Fabric Lakehouse no menu de


navegação à esquerda. Ele abre o modo de exibição de item do espaço de
trabalho.

2. Selecione Configurações do workspace.


3. Selecione Outros e Remover este espaço de trabalho.

4. Quando o aviso aparecer, selecione Excluir.

Conteúdo relacionado
Opções para inserir dados no Fabric Lakehouse

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é um lakehouse no Microsoft
Fabric?
Artigo • 15/11/2023

O Microsoft Fabric Lakehouse é uma plataforma de arquitetura de dados para


armazenar, gerenciar e analisar dados estruturados e não estruturados em um único
local. É uma solução flexível e escalonável que permite às organizações lidar com
grandes volumes de dados, utilizando várias ferramentas e estruturas para processar e
analisar esses dados. Ele se integra a outras ferramentas de gerenciamento e análise de
dados para fornecer uma solução abrangente para engenharia e análise de dados.

Ponto de extremidade de análise SQL do


Lakehouse
O Lakehouse cria uma camada de serviço gerando automaticamente um ponto de
extremidade de análise SQL e um modelo semântico padrão durante a criação. Essa
nova funcionalidade conferida permite que o usuário trabalhe diretamente sobre as
tabelas Delta no lago para proporcionar uma experiência sem atrito e com bom
desempenho, desde a ingestão de dados até a geração de relatórios.

É importante observar que o ponto de extremidade de análise SQL é uma experiência


somente leitura e não dá suporte à área da superfície T-SQL completa de um data
warehouse transacional.

7 Observação
Somente as tabelas no formato Delta estão disponíveis no ponto de extremidade
de análise SQL. Parquet, CSV e outros formatos não podem ser consultados usando
o ponto de extremidade de análise SQL. Se você não vir sua tabela, precisará
convertê-la para o formato Delta.

Descoberta e registro automáticos de tabelas


A descoberta e o registro automáticos de tabelas são um recurso do Lakehouse que
fornece uma experiência de arquivo para tabelas totalmente gerenciado para
engenheiros de dados e cientistas de dados. Você pode soltar um arquivo na área
gerenciada do Lakehouse e o sistema o valida automaticamente para os formatos
estruturados suportados, que atualmente são apenas tabelas Delta, e o registra no
metastore com os metadados necessários, como nomes de colunas, formatos,
compactação e muito mais. (Atualmente, o único formato com suporte é a tabela Delta.)
Em seguida, você pode fazer referência ao arquivo como uma tabela e utilizar a sintaxe
do SparkSQL para interagir com os dados.

Interação com o item do Lakehouse


Um engenheiro de dados pode interagir com o Lakehouse e com os dados contidos
nele de várias maneiras:

O explorador do Lakehouse: O explorador é a página principal de interação do


Lakehouse. Você pode carregar dados no seu Lakehouse, explorar dados no
Lakehouse utilizando o Pesquisador de Objetos, definir rótulos MIP & e várias
outras coisas. Saiba mais sobre a experiência do explorador: Navegar no
explorador do Fabric Lakehouse.

Notebooks: os engenheiros de dados podem usar o notebook para gravar códigos


para fazer a leitura, transformar e gravar diretamente no Lakehouse como tabelas
e/ou pastas. Você pode saber mais sobre como usar os notebooks para o
Lakehouse: Explore os dados no seu Lakehouse com um notebook e Como utilizar
um notebook para carregar dados no seu Lakehouse.

Pipelines: os engenheiros de dados podem usar ferramentas de integração de


dados, como a ferramenta de cópia do pipeline, para extrair dados de outras
fontes e colocá-los no Lakehouse. Encontre mais informações sobre como utilizar a
atividade de cópia: Como copiar dados utilizando a atividade de cópia.

Definições de trabalho do Apache Spark: os engenheiros de dados podem


desenvolver aplicativos robustos e orquestrar a execução de trabalhos compilados
do Spark em Java, Scala e Python. Saiba mais sobre os trabalhos do Spark: O que é
uma definição de trabalho do Apache Spark?

Dataflows Gen 2: os engenheiros de dados podem usar o Dataflows Gen 2 para


ingerir e preparar seus dados. Encontre mais informações sobre como carregar
dados usando fluxos de dados: Crie seu primeiro fluxo de dados para obter e
transformar dados.

Saiba mais sobre as diferentes maneiras de carregar dados em seu lakehouse: Opções
para obter dados no Fabric Lakehouse.

Multitarefa com lakehouse


A experiência de multitarefa fornece um design de guias do navegador que permite
abrir e alternar entre vários itens de maneira fácil, permitindo que você gerencie seu
data lakehouse com mais eficiência do que nunca. Chega de fazer malabarismos entre
janelas diferentes ou perder o controle de suas tarefas. O lakehouse fornece uma
experiência avançada de multitarefa para tornar seu percurso de gerenciamento de
dados o mais eficiente e amigável possível com os seguintes recursos:

Preservar operações em execução: você pode carregar ou executar a operação de


carregamento de dados em uma guia e verificar outra tarefa em uma guia
diferente. Com várias tarefas aprimoradas, as operações em execução não são
canceladas quando você navega entre as guias. Você pode se concentrar em seu
trabalho sem interrupções.

Manter o contexto: objetos selecionados, tabelas de dados ou arquivos


permanecem abertos e prontamente disponíveis quando você alterna entre as
guias. O contexto do data lakehouse está sempre ao seu alcance.

Recarregamento de lista sem bloqueio: um mecanismo de recarregamento sem


bloqueio para sua lista de arquivos e tabelas. Você pode continuar trabalhando
enquanto a lista é atualizada em segundo plano. Ele garante que você tenha os
dados mais recentes ao fornecer uma experiência suave e ininterrupta.

Notificações claramente definidas: as notificações do sistema especificam de qual


lakehouse elas estão vindo, facilitando o controle de alterações e atualizações em
seu ambiente multitarefa.

Design acessível do lakehouse


A acessibilidade sempre foi uma prioridade máxima para garantir que o Lakehouse seja
inclusivo e amigável para todos. Aqui estão as principais iniciativas que implementamos
até agora para dar suporte à acessibilidade:

Compatibilidade com leitor de tela: você pode trabalhar perfeitamente com


leitores de tela populares, permitindo que usuários com deficiência visual
naveguem e interajam com nossa plataforma com eficiência.

Reajuste de texto design responsivo que se adapta a diferentes tamanhos e


orientações de tela. O texto e o conteúdo se ajustam dinamicamente, facilitando a
exibição e a interação dos usuários com nosso aplicativo em uma variedade de
dispositivos.

Navegação por teclado: navegação aprimorada por teclado para permitir que os
usuários se movam pelo lakehouse sem depender de um mouse, melhorando a
experiência para pessoas com deficiência motora.

Texto alternativo para imagens: todas as imagens agora incluem um texto


alternativo descritivo, possibilitando que os leitores de tela transmitam
informações significativas.

Campos de formulário e rótulos: todos os campos de formulário têm rótulos


associados, simplificando a entrada de dados para todos, incluindo aqueles que
usam leitores de tela.

Próximas etapas
Nesta visão geral, você terá uma compreensão básica de um lakehouse. Avance para o
próximo artigo para saber como criar e usar seu próprio Lakehouse:

Para começar a usar lakehouses, consulte Criar um lakehouse no Microsoft Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Criar um lakehouse no Microsoft Fabric
Artigo • 13/03/2024

Neste tutorial, você aprenderá diferentes maneiras de criar um Lakehouse no Microsoft


Fabric.

Criar um lakehouse
O processo de criação do lakehouse é rápido e simples; há várias maneiras de começar.

Maneiras de criar um lakehouse


Há algumas maneiras de iniciar o processo de criação:

1. Página inicial da Engenharia de Dados

Você pode criar facilmente um lakehouse por meio do cartão Lakehouse na


seção Novo da página inicial.

2. Exibição do workspace

Você também pode criar um lakehouse por meio da exibição do workspace


quando estiver na experiência de Engenharia de Dados, usando o menu
suspenso Novo.
3. Página Criar

Um ponto de entrada para criar um lakehouse está disponível na página Criar


em Engenharia de Dados.

Criação de um lakehouse a partir da página inicial da


Engenharia de Dados
1. Navegue até a página inicial da Engenharia de Dados.

2. Na seção Novo, localize o cartão Lakehouse e selecione-o para iniciar o processo


de criação

3. Insira um nome para o lakehouse e um rótulo de confidencialidade, se sua


organização exigir um, e selecione Criar.
4. Assim que o lakehouse for criado, você será redirecionado para a página do Editor
do Lakehouse, onde poderá começar e carregar dados.

7 Observação

O lakehouse será criado no workspace atual em que você está.

Excluir um lakehouse
Para excluir um lakehouse, navegue até o hub de dados do OneLake e encontre seu
lakehouse. selecione o ... ao lado do nome do lakehouse e selecione Excluir. O
lakehouse e seu ponto de extremidade e modelo semântico de análise SQL associados
são excluídos.

7 Observação

Um lakehouse não poderá ser excluído se for referenciada em outro lugar, por
exemplo, em um pipeline ou dentro de um fluxo de trabalho de análise em tempo
real.

Conteúdo relacionado
Agora que você criou seu Lakehouse com êxito, saiba mais sobre:

Diferentes maneiras de carregar dados no Lakehouse, confira Obter experiência de


dados para o Lakehouse

Conheça o Explorador do Lakehouse, confira Navegando pelo Explorador do


Lakehouse

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Navegar pelo gerenciador do Fabric
Lakehouse
Artigo • 16/04/2024

A página Lakehouse explorer é como uma central das interações no ambiente do


Lakehouse. O explorer é incorporado ao portal do Fabric. Para abrir o explorer do
lakehouse, alterne para a experiência de Engenharia de dados no seletor de carga de
trabalho. Encontre e navegue até o item do lakehouse. Isso abrirá o explorador no qual
é possível interagir com os dados do lakehouse. O explorer é seu gateway para carregar
dados diretamente em seu Lakehouse, navegar por eles, visualizar conteúdo e executar
várias tarefas relacionadas aos dados. A página está dividida em três seções: o
Lakehouse explorer, a exibição principal e a faixa.

Lakehouse Explorer
O Lakehouse explorer oferece uma representação gráfica unificada de todo o
Lakehouse, fornecendo aos usuários uma interface intuitiva para navegação, acesso e
gerenciamento de dados.

A seção Tabela é uma representação amigável da área gerenciada no seu


Lakehouse. Essa área normalmente é organizada e controlada para facilitar o
processamento e a análise eficientes dos dados. Nela, você encontra todas as
tabelas, sejam elas geradas automaticamente ou criadas explicitamente e
registradas no metastore. Você pode selecionar uma tabela para visualizar,
inspecionar o esquema da tabela, acessar arquivos subjacentes e executar várias
outras ações relacionadas aos seus dados.
A Área não identificada é um espaço exclusivo na área gerenciada do Lakehouse.
Ele exibe as pastas ou os arquivos presentes na área gerenciada que não têm
tabelas associadas no SyMS. Por exemplo, se um usuário carregar arquivos sem
suporte, como imagens ou arquivos de áudio, na área gerenciada, eles não serão
detectados automaticamente nem vinculados a tabelas. Em vez disso, aparecerão
nessa área não identificada. A principal finalidade dessa seção é que os usuários
removam esses arquivos da área gerenciada ou os transfiram para a seção Arquivo
para processamento adicional.

A seção Arquivo representa a área não gerenciada do Lakehouse e pode ser


considerada uma "zona de destino" dos dados brutos ingeridos por várias fontes.
Para que esses dados possam ser usados na análise, geralmente exigem
processamento adicional. Nessa seção, você pode navegar por diretórios,
selecionar um diretório para visualizar, carregar uma pasta em uma tabela e
executar várias outras ações. Vale a pena observar que a seção Arquivo exibe
objetos no nível da pasta exclusivamente. Para exibir objetos no nível do arquivo,
você precisa utilizar a área de exibição principal.

Área de exibição principal


A principal área de exibição da página do Lakehouse é o espaço em que a maior parte
da interação de dados ocorre. A exibição é alterada dependendo do que você
selecionar. Como o pesquisador de objetos exibe apenas uma hierarquia de níveis de
pasta do lake, a área de exibição principal é o que você usa para navegar pelos arquivos,
visualizar arquivos e tabelas e para várias outras tarefas.

Visualização de tabela
Nosso datagrid de visualização de tabela tem um conjunto de recursos poderosos que
elevam suas interações com os dados, tornando seu trabalho ainda mais contínuo. Veja
aqui alguns do principais recursos:

Classificar colunas em ordem crescente ou decrescente com um simples clique.


Com esse recurso, você tem controle total da organização dos dados enquanto
trabalha com modelos semânticos grandes ou quando precisa identificar
rapidamente tendências.

Filtrar dados por substring ou selecionando em uma lista de valores disponíveis na


tabela.

Redimensionar colunas para adaptar a exibição dos dados conforme suas


preferências. Esse recurso ajuda você a priorizar dados essenciais ou expandir o
campo de exibição para abranger mais informações.

Visualização de arquivo
A visualização de arquivos de dados em um Lakehouse oferece uma série de benefícios
que aprimoram a qualidade dos dados, a compreensão e a eficiência geral do
gerenciamento de dados. Com ela, os profissionais de dados conseguem tomar
decisões informadas, otimizar a alocação de recursos e garantir que a análise seja
baseada em dados confiáveis e importantes.

A visualização está disponível para os seguintes tipos de arquivo: bmp, css, csv, gif,
html, jpeg, jpg, js, json, md, mjs, png, ps1, py, svg, ts, tsx, txt, xml e yaml

Faixa de opções
A faixa de opções do Lakehouse é a sua barra de ações de acesso rápido, uma maneira
conveniente de executar tarefas essenciais no Lakehouse. Aqui, é possível atualizar o
Lakehouse, atualizar as configurações, carregar dados ou criar notebooks, criar novos
modelos semânticos personalizados ou gerenciar acesso aos dados do OneLake com
facilidade.

Diferentes maneiras de carregar dados em um Lakehouse


Há várias maneiras de carregar dados em seu Lakehouse a partir da página do Explorer:

Upload local de arquivo/pasta: carregue dados diretamente do computador local


para a seção Arquivo do Lakehouse com facilidade. Saiba mais aqui**.

Código do Notebook: utilize as bibliotecas disponíveis do Spark para se conectar


a fontes de dados e carregar dados em dataframes e salvá-los no Lakehouse.
Encontre informações adicionais aqui**.

Ferramenta de cópia em pipelines: conecte-se a diversas fontes de dados e


coloque os dados no formato original ou converta-os em uma tabela Delta. Saiba
mais aqui**.

Fluxos de dados Gen 2: crie fluxos de dados para importar dados, transformá-los e
publicá-los no Lakehouse. Saiba mais aqui**.

Atalhos: crie atalhos para se conectar aos dados existentes no Lakehouse sem
precisar copiá-los diretamente. Encontre informações adicionais aqui**.
Exemplos: ingira rapidamente dados de exemplo para iniciar a exploração de
modelos semânticos e tabelas.

Descubra diversos casos de uso para entender a melhor maneira de carregar dados no
lakehouse.

Acessando o ponto de extremidade de análise SQL do


Lakehouse
O ponto de extremidade de análise SQL pode ser acessado diretamente da experiência
do Lakehouse usando a lista suspensa na área superior direita da faixa de opções.
Usando esse método de acesso rápido, você abre imediatamente o modo T-SQL para
trabalhar diretamente nas tabelas Delta no lake e prepará-las para gerar relatórios.

Conteúdo relacionado
Esperamos que este guia ajude você a aproveitar ao máximo o Lakehouse explorer e
suas diversas funcionalidades. Fique à vontade para explorar, experimentar e tornar as
tarefas de gerenciamento de dados mais eficientes.

Obter experiência de dados no Lakehouse.

Explorar os dados em seu Lakehouse com um notebook

Como usar um notebook para carregar dados em seu Lakehouse.

Como copiar dados usando a atividade de cópia.

Criar seu primeiro fluxo de dados para obter e transformar dados.

Criar um atalho do OneLake

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é o ponto de extremidade de
análise do SQL para um Lakehouse?
Artigo • 15/11/2023

O Microsoft Fabrics fornece uma experiência baseada em SQL para tabelas delta
lakehouse. Essa experiência baseada em SQL é chamada de ponto de extremidade de
análise SQL. Você pode analisar dados em tabelas delta usando a linguagem T-SQL,
salvar funções, gerar exibições e aplicar a segurança do SQL. Para acessar o ponto de
extremidade de análise do SQL, selecione um item correspondente na exibição do
espaço de trabalho ou alterne para o modo de ponto de extremidade de análise do SQL
no Lakehouse Explorer.

A criação de um Lakehouse cria um ponto de extremidade de análise SQL, que aponta


para o armazenamento de tabela delta Lakehouse. Depois de criar uma tabela delta no
Lakehouse, ela estará imediatamente disponível para consulta usando o ponto de
extremidade de análise do SQL. Para saber mais, confira a documentação do Data
Warehouse: ponto de extremidade de análise do SQL.

Reprovisionamento do ponto de extremidade


de análise do SQL
Oferecemos a capacidade de tentar novamente o provisionamento de ponto de
extremidade de análise do SQL diretamente dentro da experiência do Lakehouse.
Portanto, se sua tentativa de provisionamento inicial falhar, você terá a opção de tentar
novamente sem a necessidade de criar um Lakehouse totalmente novo. Esse recurso
permite que você atenue automaticamente os problemas de provisionamento de
maneira conveniente na interface do usuário, evitando a necessidade de uma recriação
completa do Lakehouse.

7 Observação

É importante observar que, embora esse recurso melhore a experiência do usuário,


um reprovisionamento de ponto de extremidade de análise do SQL ainda pode
falhar, da mesma forma que durante a criação inicial de um Lakehouse.

Modo somente leitura do ponto de


extremidade de análise do SQL
O ponto de extremidade de análise do SQL opera no modo somente leitura em tabelas
delta lakehouse. Você só pode ler dados de tabelas delta usando o ponto de
extremidade de análise do SQL. Eles podem salvar funções, exibições e definir a
segurança em nível de objeto do SQL.

7 Observação

Tabelas delta externas criadas com código Spark não ficarão visíveis para o ponto
de extremidade de análise do SQL. Use atalhos no espaço de Tabela para tornar as
tabelas delta externas visíveis para o ponto de extremidade de análise do SQL.

Para modificar dados em tabelas delta Lakehouse, você precisa alternar para o modo
lakehouse e usar o Apache Spark.

Controle de acesso usando a segurança do SQL


Você pode definir a segurança em nível de objeto para acessar dados usando o ponto
de extremidade de análise do SQL. Essas regras de segurança só se aplicarão para
acessar dados por meio do ponto de extremidade de análise do SQL. Para garantir que
os dados não sejam acessíveis de outras maneiras, você deve definir funções e
permissões de workspace, consulte Funções e permissões do workspace.

Próximas etapas
Introdução ao ponto de extremidade de análise do SQL do Lakehouse no
Microsoft Fabric
Funções e permissões do workspace
Segurança para armazenamento de dados no Microsoft Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Pipelines de implantação do Lakehouse
e integração do Git (Versão Prévia)
Artigo • 16/11/2023

O Lakehouse integra-se aos recursos de gerenciamento do ciclo de vida no Microsoft


Fabric, fornecendo uma colaboração padronizada entre todos os membros da equipe de
desenvolvimento ao longo da vida útil do produto. O gerenciamento do ciclo de vida
facilita um processo eficaz de versão e lançamento do produto, fornecendo
continuamente recursos e correções de bugs em vários ambientes. Para saber mais,
consulte O que é o gerenciamento do ciclo de vida no Microsoft Fabric?.

) Importante

Esse recurso está em versão prévia.

Integração do Git do Lakehouse


O Lakehouse é um item que contém metadados e dados referenciados em vários
objetos no espaço de trabalho. O Lakehouse contém tabelas, pastas e atalhos como
itens de contêiner de dados gerenciáveis primários. Do ponto de vista do fluxo de
trabalho de desenvolvimento, os seguintes objetos dependentes podem referenciar um
Lakehouse:

Fluxos de Dados e Pipelines de Dados


Definições de trabalho do Spark
Notebooks
Modelos semânticos e Power BI

O modelo semântico padrão e os metadados de ponto de extremidade de análise do


SQL, estão relacionados a um Lakehouse e gerenciados pelo processo de atualização do
Git por padrão. Como um princípio os dados não são rastreados no Git, somente os
metadados são rastreados.

Representação do Git
As seguintes informações do lakehouse são serializadas e rastreadas em um espaço de
trabalho conectado ao Git:

Nome de exibição
Descrição
GUID lógico

7 Observação

O GUID lógico rastreado é um identificador entre espaços de trabalho gerado


automaticamente representando um item e sua representação de controle da
fonte.

) Importante

Somente o artefato de contêiner lakehouse é rastreado no git na experiência atual.


Tabelas, pastas, atalhos e outras alterações de metadados não são controladas e
não possuem controle de versão no git.

Recursos de integração do Git do Lakehouse


Os seguintes recursos estão disponíveis:

Serialização dos metadados do objeto Lakehouse para uma representação JSON


do Git.
Aplique alterações diretamente ou use a solicitação de pull para controlar
alterações em espaços de trabalho e branches upstream ou downstream.
Renomear lakehouses são rastreados no Git. Atualizar um lakehouse renomeado
também renomeia o modelo de dados semânticos padrão e o ponto de
extremidade da análise do SQL.
Nenhuma ação é aplicada a tabelas, pastas e atalhos, metadados e dados desses
itens é sempre preservada.

Lakehouse em pipelines de implantação


O Lakehouse tem suporte nos pipelines de implantação de gerenciamento do ciclo de
vida do Microsoft Fabric. Ele habilita a segmentação de ambiente melhores práticas.

Pipelines de implantação do Lakehouse e integração do Git:

Implantação em espaços de trabalho de desenvolvimento, teste e produção.

Lakehouse pode ser removido como um objeto dependente após a implantação.


Também há suporte para mapeamento de diferentes Lakehouses no contexto do
pipeline de implantação.

Se nada for especificado durante a configuração do pipeline de implantação,


um novo objeto Lakehouse vazio com o mesmo nome será criado no workspace
de destino. As Definições de Trabalho do Notebook e do Spark são remapeadas
para fazer referência ao novo objeto Lakehouse no novo espaço de trabalho.

Se a dependência Lakehouse estiver configurada para fazer referência a um


Lakehouse diferente durante o tempo de configuração do pipeline de
implantação, como o Lakehouse upstream, um novo objeto Lakehouse vazio
com o mesmo nome ainda será criado no workspace de destino, mas as
referências de Notebooks e Definições de Trabalho do Spark serão
preservadas para um Lakehouse diferente, conforme solicitado.

Os pontos de extremidade de análise do SQL e modelos semânticos, são


provisionados como parte da implantação do Lakehouse.

Nenhum objeto dentro do Lakehouse é substituído.

As atualizações para o nome Lakehouse podem ser sincronizadas entre espaços de


trabalho em um contexto de pipeline de implantação.

Próximas etapas
O que é o gerenciamento do ciclo de vida no Microsoft Fabric?
Tutorial: gerenciamento do ciclo de vida no Fabric
Introdução à integração do Git
Introdução aos pipelines de implantação

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Gerenciar o lakehouse no Microsoft
Fabric com a API REST
Artigo • 15/11/2023

A API Rest do Microsoft Fabric fornece um ponto de extremidade de serviço para a


operação CRUD de um item do Fabric. As ações a seguir estão disponíveis para o
Lakehouse:

Ação Descrição

Criar Cria um lakehouse dentro de um workspace. Um ponto de extremidade de


análise SQL também é provisionado junto com o lakehouse.

Atualizar Atualiza o nome de um lakehouse e o ponto de extremidade de análise SQL.

Delete Exclui o lakehouse e o ponto de extremidade de análise SQL associado.

Obter Obtém as propriedades de um lakehouse e do ponto de extremidade de


propriedades análise SQL.

Listar tabelas Lista tabelas no lakehouse.

Carga da tabela Cria tabelas delta de arquivos e pastas CSV e parquet.

Manutenção de Aplica a compactação de bin, ordem V e remoção de arquivos não


tabela referenciados e antigos.

Pré-requisitos
A API Rest do Microsoft Fabric define um ponto de extremidade unificado para as
operações. O ponto de extremidade é
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items . Os espaços

reservados {workspaceId} e {lakehouseId} devem ser substituídos pelos valores


apropriados ao emitir os comandos exemplificados neste artigo.

CRUD do Lakehouse
Use a API a seguir para executar a criação, as modificações e a remoção do lakehouse
dentro de um workspace.

Criar um lakehouse
Solicitação:

HTTP

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items
{
"displayName": "demo",
"type": "Lakehouse"
}

Resposta:

JSON

{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}

Atualizar um lakehouse
Atualize a descrição e renomeie o Lakehouse.

Solicitação:

HTTP

PATCH
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/dc39f96a-
47d7-4c2d-9358-740f50c0aa31
{
"displayName": "newname",
"description": "Item's New description"
}

Resposta:

JSON

{
"id": "56c6dedf-2640-43cb-a412-84faad8ad648",
"type": "Lakehouse",
"displayName": "newname",
"description": "",
"workspaceId": "fc67689a-442e-4d14-b3f8-085076f2f92f"
}

Obter as propriedades do lakehouse


Solicitação:

HTTP

GET
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lak
ehouseId}

Resposta:

JSON

{
"id": "daaa77c7-9ef4-41fc-ad3c-f192604424f5",
"type": "Lakehouse",
"displayName": "demo",
"description": "",
"workspaceId": "bee6c118-c2aa-4900-9311-51546433bbb8",
"properties": {
"oneLakeTablesPath":
"https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{lakehouseId}/Tables
",
"oneLakeFilesPath":
"https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{lakehouseId}/Files"
,
"sqlEndpointProperties": {
"connectionString": "hkpobavgthae5kji5cuqxtivcu-
dda6npvkyiaeteyrkfkgim53xa-datawarehouse.pbidedicated.windows.net",
"id": "0dfbd45a-2c4b-4f91-920a-0bb367826479",
"provisioningStatus": "Success"
}
}
}

Excluir um lakehouse
Quando você exclui um lakehouse, os metadados e os dados do objeto são excluídos.
As referências de atalho são excluídas, mas os dados são preservados no destino.

Solicitação:

HTTP
DELETE
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehous
eId}

Resposta:Vazio

Listar tabelas em um Lakehouse


Solicitação:

HTTP

GET
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lak
ehouseId}/tables

Resposta:

JSON

{
"continuationToken": null,
"continuationUri": null,
"data": [
{
"type": "Managed",
"name": "demo1",
"location": "abfss://c522396d-7ac8-435d-8d77-
442c3ff21295@onelake.dfs.fabric.microsoft.com/{workspaceId}/Tables/demo1",
"format": "delta"
}
]
}

A API de listagem de tabelas oferece suporte à paginação. Forneça maxResults por


página como um parâmetro para a solicitação e a API responde com o URI de
continuação que pode ser usado para obter a próxima página de resultados.

Exemplo de paginação
Solicitação:

HTTP
GET
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lak
ehouseId}/tables?maxResults=1

Resposta:

JSON

{
"continuationToken": "+RID:~HTsuAOseYicH-
GcAAAAAAA==#RT:1#TRC:1#ISV:2#IEO:65567#QCF:8#FPC:AgKfAZ8BnwEEAAe8eoA=",
"continuationUri":
"https://api.fabric.microsoft.com:443/v1/workspaces/{workspaceId}/lakehouses
/{lakehouseId}/tables?continuationToken=%2BRID%3A~HTsuAOseYicH-
GcAAAAAAA%3D%3D%23RT%3A1%23TRC%3A1%23ISV%3A2%23IEO%3A65567%23QCF%3A8%23FPC%3
AAgKfAZ8BnwEEAAe8eoA%3D",
"data": [
{
"type": "Managed",
"name": "nyctaxismall",
"location": "abfss://bee6c118-c2aa-4900-9311-
51546433bbb8@onelake.dfs.fabric.microsoft.com/daaa77c7-9ef4-41fc-ad3c-
f192604424f5/Tables/nyctaxismall",
"format": "delta"
}
]
}

Carregar nas tabelas


Essa API apresenta as funcionalidades do recurso Carregar para Tabelas do lakehouse.
Com essa API, é possível carregar arquivos CSV e parquet para tabelas novas ou
existentes do delta lake no lakehouse.

Essa API é assíncrona, portanto, são necessárias três etapas:

1. Carregue arquivos e pastas na seção Arquivos do Lakehouse usando APIs do


OneLake.
2. Enviar carga para a solicitação da API de tabelas.
3. Acompanhar o status da operação até a conclusão.

As seções a seguir pressupõem que os arquivos já foram carregados.

Carregar na solicitação da API de tabelas


O parâmetro mode dá suporte a operações de overwrite e append . Parâmetro pathType
especificado se estiver carregando arquivos individuais ou todos os arquivos da pasta
especificada. Há suporte para CSV e parquet como o parâmetro format do arquivo.

Este exemplo carrega um arquivo CSV chamado demo.csv em uma tabela existente
chamada demo .

Solicitação:

HTTP

POST
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lak
ehouseId}/tables/demo/load
{
"relativePath": "Files/demo.csv",
"pathType": "File",
"mode": "overwrite",
"formatOptions":
{
"header": true,
"delimiter": ",",
"format": "CSV"
}
}

O cabeçalho de resposta contém o URI para sondar o status das operações assíncronas.
O URI está na variável Location do cabeçalho de resposta.

A variável Location contém um URI da seguinte maneira:


https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseI
d}/operations/32ad6d2a-82bb-420d-bb57-4620c8860373 . O GUID 32ad6d2a-82bb-420d-

bb57-4620c8860373 é a ID da operação para consultar o status da execução da carga em

operações de tabelas, conforme descrito na próxima seção.

Monitorar as operações Carregar para Tabelas


Depois de capturar a operationId da resposta à solicitação da API Carregar para Tabelas,
execute a seguinte solicitação:

Solicitação:

HTTP

GET
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lak
ehouseId}/operations/{operationId}

Resposta:

JSON

{
"Status": 3,
"CreatedTimeUtc": "",
"LastUpdatedTimeUtc": "",
"PercentComplete": 100,
"Error": null
}

Status de operação possíveis para carregar para tabelas:

1– Operação ainda não iniciada


2 – Em execução
3 – Êxito
4 – Com falha

Manutenção de tabela
Essa API apresenta as funcionalidades do recurso de manutenção de tabela do
Lakehouse. Com essa API, é possível aplicar compactação de bin, ordem V e a limpeza
de arquivos antigos não referenciados.

Essa API é assíncrona, portanto, são necessárias duas etapas:

1. Enviar a solicitação da API de manutenção de tabela.


2. Acompanhar o status da operação até a conclusão.

Solicitação da API de manutenção de tabela


Este exemplo executa um trabalho de manutenção de tabela que aplica a ordem V a
uma tabela, ao mesmo tempo em que aplica a ordem Z à coluna tipAmount e executa a
operação VACUUM com uma retenção de sete dias e uma hora.

Solicitação:

HTTP

POST
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehous
eId}/jobs/instances?jobType=TableMaintenance
{
"executionData": {
"tableName": "{table_name}",
"optimizeSettings": {
"vOrder": true,
"zOrderBy": [
"tipAmount"
]
},
"vacuumSettings": {
"retentionPeriod": "7.01:00:00"
}
}
}

O cabeçalho de resposta contém o URI para sondar o status das operações assíncronas.
O URI está na variável Location do cabeçalho de resposta.

A variável Location contém um URI como o seguinte:


https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/jo

bs/instances/f2d65699-dd22-4889-980c-15226deb0e1b . O GUID f2d65699-dd22-4889-980c-


15226deb0e1b é a ID da operação para consultar o status da execução das operações de

manutenção de tabela, conforme descrito na próxima seção.

Monitoramento das operações de manutenção de tabelas


Depois de capturar a operationId da resposta à solicitação da API Carregar para Tabelas,
execute a seguinte solicitação:

Solicitação:

HTTP

GET
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehous
eId}/jobs/instances/{operationId}

Resposta:

JSON

{
"parameters": {
"workspaceId": "{workspaceId}",
"itemId": "{lakehouseId}",
"jobInstanceId": "{operationId}"
},
"responses": {
"200": {
"body": {
"id": "{operationId}",
"itemId": "431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7",
"jobType": "DefaultJob",
"invokeType": "Manual",
"status": "Completed",
"rootActivityId": "8c2ee553-53a4-7edb-1042-0d8189a9e0ca",
"startTimeUtc": "2023-04-22T06:35:00.7812154",
"endTimeUtc": "2023-04-22T06:35:00.8033333",
"failureReason": null
}
}
}
}

Status de operação possível para a manutenção da tabela:

NotStarted – Trabalho não iniciado


InProgress – Trabalho em andamento
Completed – Trabalho concluído
Failed – O trabalho falhou
Canceled – Trabalho cancelado
Deduped – Uma instância do mesmo tipo de trabalho já está em execução e essa
instância de trabalho é ignorada

Próximas etapas
Recurso Carregar para Tabelas do Lakehouse.
Usar o recurso de manutenção de tabelas para gerenciar tabelas Delta no Fabric.
Otimização de tabela do Delta Lake e V-Order.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Opções para obter dados no Fabric
Lakehouse
Artigo • 15/11/2023

A experiência de obtenção de dados abrange todos os cenários do usuário para trazer


dados para o lakehouse, como:

Conectar-se a um SQL Server existente e copiar dados para a tabela Delta no


lakehouse.
Carregar arquivos do computador.
Copiar e mesclar várias tabelas de outros lakehouses em uma nova tabela Delta.
Conectar-se a uma fonte de streaming para obter dados em um lakehouse.
Referenciar dados sem copiá-los de outros lakehouses internas ou fontes externas.

Diferentes maneiras de carregar dados em um


lakehouse
No Microsoft Fabric, há algumas maneiras de obter dados em um lakehouse:

Upload de arquivo do computador local


Executar uma ferramenta de cópia em pipelines
Configurar um fluxo de dados
Bibliotecas do Apache Spark no código do notebook

Upload de arquivo local


Você também pode carregar dados armazenados em seu computador local. Você pode
fazer isso diretamente no Lakehouse Explorer.

Copiar ferramenta em pipelines


A ferramenta Copiar é uma solução de Integração de Dados altamente escalonável que
permite que você se conecte a diferentes fontes de dados e carregue os dados no
formato original ou converta-os em uma tabela Delta. A ferramenta Copiar faz parte das
atividades de pipelines que você pode modificar de várias maneiras, como
agendamento ou gatilho com base em um evento. Para obter mais informações,
consulte Como copiar dados usando a atividade de cópia.

Fluxos de dados
Para usuários familiarizados com fluxos de dados do Power BI, a mesma ferramenta está
disponível para carregar dados em seu lakehouse. Você pode acessá-lo rapidamente na
opção "Obter dados" do Lakehouse Explorer e obter dados de mais de 200 conectores.
Para obter mais informações, consulte Início rápido: Crie seu primeiro fluxo de dados
para obter e transformar dados.

Código do notebook
Você pode usar bibliotecas do Spark disponíveis para se conectar diretamente a uma
fonte de dados, carregar dados em um quadro de dados e salvá-los em um lakehouse.
Esse método é a maneira mais aberta de carregar dados no lakehouse que o código do
usuário está gerenciando totalmente.

7 Observação

Tabelas Delta externas criadas com código Spark não ficarão visíveis para o ponto
de extremidade de análise do SQL. Use atalhos no Espaço de tabela para tornar as
tabelas Delta externas visíveis para o ponto de extremidade de análise do SQL.

Considerações ao escolher a abordagem para


carregar dados
Caso de uso Recomendação

Carregamento de arquivo pequeno do computador Usar carregamento de arquivo local


local

Dados pequenos ou conector específico Usar Fluxos de dados

Fonte de dados grande Usar a ferramenta Copiar em


pipelines

Transformações de dados complexos Usar código do Notebook

Próximas etapas
Explorar os dados em seu lakehouse com um notebook
Início Rápido: como criar seu primeiro pipeline para copiar dados
Como copiar dados usando a atividade de cópia
Migrar dados do BD do SQL do Azure para o Lakehouse por meio do assistente de
cópia

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que são os atalhos no lakehouse?
Artigo • 06/12/2023

Os atalhos em um lakehouse permitem que os usuários referenciem os dados sem


copiá-los. Ele unifica os dados de diferentes lakehouses, espaços de trabalho ou
armazenamento externo, como o ADLS Gen2 ou o AWS S3. Você pode disponibilizar
rapidamente grandes quantidades de dados no seu lakehouse localmente sem a
latência de copiar dados da origem.

Configurando um atalho
Para criar um atalho, abra o Lakehouse Explorer e selecione onde colocar o atalho em
Tabelas ou Arquivos. Criar um atalho na tabela formatada no Delta nas Tabelas no
Lakehouse Explorer a registrará automaticamente como uma tabela, permitindo acesso
aos dados pelo Spark, o ponto de extremidade do SQL e o modelo semântico padrão. O
Spark pode acessar os atalhos em Arquivos para projetos de ciência de dados ou para
transformação em dados estruturados.

Controle de Acesso dos atalhos


Os atalhos das fontes internas do Microsoft Fabric usarão a identidade do usuário de
chamada. Os atalhos externos usarão os detalhes de conectividade, incluindo detalhes
de segurança especificados quando o atalho for criado.

Conteúdo relacionado
Saiba mais sobre os atalhos

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Obter dados de streaming para o
lakehouse com streaming estruturado
do Spark
Artigo • 18/08/2023

O Streaming estruturado é um mecanismo de processamento de fluxo escalonável e


tolerante a falhas integrado no Spark. O Spark cuida da execução da operação de
streaming de forma incremental e contínua à medida que os dados continuam a chegar.

O streaming estruturado ficou disponível no Spark 2.2. Desde então, tem sido a
abordagem recomendada para streaming de dados. O princípio fundamental por trás
do fluxo estruturado é tratar um fluxo de dados ao vivo como uma tabela em que novos
dados são sempre acrescentados continuamente, como uma nova linha em uma tabela.
Há algumas fontes de arquivo de streaming internas definidas, como CSV, JSON, ORC,
Parquet e suporte integrado para serviços de mensagens como Kafka e Hubs de
Eventos.

) Importante

O Microsoft Fabric está em versão prévia.

Este artigo fornece insights sobre como otimizar o processamento e a ingestão de


eventos por meio do streaming estruturado do Spark em ambientes de produção com
alta taxa de transferência. As abordagens sugeridas incluem:

Otimização de taxa de transferência de streaming de dados


Otimização de operações de gravação na tabela do Delta e
Envio em lote de eventos

Definições de trabalho do Spark e notebooks


do Spark
Os notebooks do Spark são uma excelente ferramenta para validar ideias e fazer
experimentos para obter insights de seus dados ou código. Os notebooks são
amplamente utilizados na preparação, visualização, no aprendizado de máquina e em
outros cenários de big data. As definições de trabalho do Spark são tarefas não
interativas baseadas em código em execução em um cluster Spark por longos períodos.
As definições de trabalho do Spark fornecem robustez e disponibilidade.
Notebooks do Spark são excelentes fontes para testar a lógica do seu código e atender
a todos os requisitos de negócios. No entanto, para mantê-lo em execução em um
cenário de produção, as definições de trabalho do Spark com a Política de repetição
habilitada são a melhor solução.

Política de repetição para definições de


trabalho do Spark
No Microsoft Fabric, o usuário pode definir uma política de repetição para trabalhos de
Definição de trabalho do Spark. Embora o script no trabalho possa ser infinito, a
infraestrutura que executa o script pode incorrer em um problema que exige a
interrupção do trabalho. Ou o trabalho pode ser eliminado devido às necessidades
subjacentes de aplicação de patch da infraestrutura. A política de repetição permite que
o usuário defina regras para reiniciar automaticamente o trabalho se ele for
interrompido devido a problemas subjacentes. Os parâmetros especificam a frequência
com que o trabalho deve ser reiniciado, até tentativas infinitas, e definem o tempo entre
repetições. Dessa forma, os usuários podem garantir que seus trabalhos de Definição de
trabalho do Spark continuem sendo executados infinitamente até que o usuário decida
interrompê-los.

Fontes de streaming
A configuração do streaming com Os Hubs de Eventos exige configuração básica, que
inclui o nome do namespace dos Hubs de Eventos, o nome do hub, o nome da chave de
acesso compartilhado e o grupo de consumidores. Um grupo de consumidores é uma
exibição de um hub de eventos inteiro. Isso permite que vários aplicativos de consumo
tenham um modo de exibição separado do fluxo de eventos e leiam o fluxo de forma
independente em seu próprio ritmo e com seus próprios deslocamentos.

As partições são uma parte essencial de ser capaz de lidar com um alto volume de
dados. Um único processador tem uma capacidade limitada para lidar com eventos por
segundo, enquanto vários processadores podem fazer um trabalho melhor quando
executados em paralelo. As partições permitem a possibilidade de processar grandes
volumes de eventos em paralelo.

Se muitas partições forem usadas com uma taxa de ingestão baixa, os leitores de
partição lidarão com uma pequena parte desses dados, resultando em processamento
não ideal. O número ideal de partições depende diretamente da taxa de processamento
desejada. Se você quer escalonar o processamento do seu evento, considere adicionar
mais partições. Não há limite de taxa de transferência específico em uma partição. No
entanto, a taxa de transferência agregada em seu namespace é limitada pelo número de
unidades de produtividade. Conforme você aumenta o número de unidades de
produtividade no seu namespace, considere partições adicionais para permitir que cada
um dos leitores simultâneos alcance sua taxa de transferência máxima.

A recomendação é investigar e testar o melhor número de partições para seu cenário de


taxa de transferência. Mas é comum ver cenários com alta taxa de transferência usando
32 ou mais partições.

O Conector dos Hubs de Eventos do Azure para Apache Spark (link ) é recomendado
para conectar o aplicativo Spark aos Hubs de Eventos do Azure.

Lakehouse como coletor de streaming


O Delta Lake é uma camada de armazenamento de software livre que fornece
transações ACID (atomicidade, consistência, isolamento e durabilidade) sobre as
soluções de armazenamento do data lake. O Delta Lake também dá suporte à
manipulação de metadados escalonáveis, evolução do esquema, viagem no tempo
(controle de versão de dados), formato aberto e outros recursos.

Na Engenharia de Dados do Fabric, o Delta Lake é usado para:

Fazer upsert (inserir/atualizar) facilmente e excluir dados usando o Spark SQL.


Compactar dados para minimizar o tempo gasto consultando dados.
Exibir o estado das tabelas antes e depois da execução das operações.
Recupere um histórico de operações executadas em tabelas.

O Delta é adicionado como um dos possíveis formatos de coletores de saída usados no


writeStream. Mais informações sobre os coletores de saída existentes podem ser
encontradas aqui .

O exemplo a seguir demonstra como é possível transmitir dados para o Delta Lake.

PySpark

import pyspark.sql.functions as f
from pyspark.sql.types import *

df = spark \
.readStream \
.format("eventhubs") \
.options(**ehConf) \
.load()

Schema = StructType([StructField("<column_name_01>", StringType(), False),


StructField("<column_name_02>", StringType(), False),
StructField("<column_name_03>", DoubleType(), True),
StructField("<column_name_04>", LongType(), True),
StructField("<column_name_05>", LongType(), True)])

rawData = df \
.withColumn("bodyAsString", f.col("body").cast("string")) \
.select(from_json("bodyAsString", Schema).alias("events")) \
.select("events.*") \
.writeStream \
.format("delta") \
.option("checkpointLocation", " Files/checkpoint") \
.outputMode("append") \
.toTable("deltaeventstable")

Sobre o snippet de código no exemplo:

format() é a instrução que define o formato de saída dos dados.


outputMode() define de que maneira as novas linhas no streaming são gravadas
(ou seja, acrescentadas, substituídas).
toTable() persiste os dados transmitidos para uma tabela do Delta criada usando o
valor passado como parâmetro.

Otimizar gravações do Delta


O particionamento de dados é uma parte essencial na criação de uma solução de
streaming robusta: o particionamento melhora a forma como os dados são organizados
e também melhora a taxa de transferência. Os arquivos são fragmentados facilmente
após as operações do Delta, resultando em muitos arquivos pequenos. E arquivos muito
grandes também são um problema, devido ao longo tempo para gravá-los no disco. O
desafio com o particionamento de dados é encontrar o equilíbrio adequado que resulta
em tamanhos de arquivo ideais. O Spark dá suporte ao particionamento na memória e
no disco. Os dados particionados corretamente podem fornecer o melhor desempenho
ao persistir dados no Delta Lake e consultar dados no Delta Lake.

Ao particionar dados no disco, você pode escolher como particionar os dados com
base em colunas usando partitionBy(). partitionBy() é uma função usada para
particionar grandes conjuntos de dados em arquivos menores com base em uma
ou várias colunas fornecidas durante a gravação em disco. O particionamento é
uma maneira de melhorar o desempenho da consulta ao trabalhar com um grande
conjunto de dados. Evite escolher uma coluna que gere partições muito pequenas
ou muito grandes. Defina uma partição com base em um conjunto de colunas com
uma boa cardinalidade e divida os dados em arquivos de tamanho ideal.
O particionamento de dados na memória pode ser feito usando transformações
repartition() ou coalesce(), distribuindo dados em vários nós de trabalho e criando
várias tarefas que podem ler e processar dados em paralelo usando os conceitos
básicos do RDD (Conjunto de Dados Distribuídos Resilientes). Ele permite dividir o
conjunto de dados em partições lógicas, que podem ser computadas em nós
diferentes do cluster.
repartition() é usado para aumentar ou diminuir o número de partições na
memória. A repartição reformula dados inteiros pela rede e os equilibra em
todas as partições.
coalesce() só é usado para diminuir o número de partições com eficiência. Essa é
uma versão otimizada de repartition() em que a movimentação de dados em
todas as partições é menor usando coalesce().

Combinar ambas as abordagens de particionamento é uma boa solução no cenário com


alta taxa de transferência. repartition() cria um número específico de partições na
memória, enquanto partitionBy() grava arquivos em disco para cada partição de
memória e coluna de particionamento. O exemplo a seguir ilustra o uso de ambas as
estratégias de particionamento no mesmo trabalho do Spark: os dados são divididos
primeiro em 48 partições na memória (supondo que tenhamos um total de 48 núcleos
de CPU) e particionados em disco com base em duas colunas existentes no conteúdo.

PySpark

import pyspark.sql.functions as f
from pyspark.sql.types import *
import json

rawData = df \
.withColumn("bodyAsString", f.col("body").cast("string")) \
.select(from_json("bodyAsString", Schema).alias("events")) \
.select("events.*") \
.repartition(48) \
.writeStream \
.format("delta") \
.option("checkpointLocation", " Files/checkpoint") \
.outputMode("append") \
.partitionBy("<column_name_01>", "<column_name_02>") \
.toTable("deltaeventstable")

Gravação otimizada
Outra opção para otimizar gravações no Delta Lake é usar a Gravação Otimizada. A
Gravação Otimizada é um recurso opcional que melhora a forma como os dados são
gravados na tabela do Delta. O Spark mescla ou divide as partições antes de gravar os
dados, maximizando a taxa de transferência dos dados que estão sendo gravados no
disco. No entanto, ele incorre em ordem aleatória total, portanto, para algumas cargas
de trabalho, pode causar uma degradação de desempenho. Trabalhos que usam
coalesce() e/ou repartition() para particionar dados em disco podem ser refatorados para
começar a usar a Gravação Otimizada.

O código a seguir é um exemplo do uso de Gravação Otimizada. Observe que


partitionBy() ainda é usado.

PySpark

spark.conf.set("spark.microsoft.delta.optimizeWrite.enabled", true)

rawData = df \
.withColumn("bodyAsString", f.col("body").cast("string")) \
.select(from_json("bodyAsString", Schema).alias("events")) \
.select("events.*") \
.writeStream \
.format("delta") \
.option("checkpointLocation", " Files/checkpoint") \
.outputMode("append") \
.partitionBy("<column_name_01>", "<column_name_02>") \
.toTable("deltaeventstable")

Eventos de envio em lote


Para minimizar o número de operações para melhorar o tempo gasto na ingestão de
dados no Delta Lake, os eventos de envio em lote são uma alternativa prática.

Os gatilhos definem a frequência com que uma consulta de streaming deve ser
executada (disparada) e emitir novos dados. Configura-los define um intervalo de
tempo de processamento periódico para microlotes, acumulando dados e agrupando
eventos de envio em lote em poucas operações persistentes, em vez de gravar em disco
o tempo todo.

O exemplo a seguir mostra uma consulta de streaming em que os eventos são


processados periodicamente em intervalos de um minuto.

PySpark

rawData = df \
.withColumn("bodyAsString", f.col("body").cast("string")) \
.select(from_json("bodyAsString", Schema).alias("events")) \
.select("events.*") \
.repartition(48) \
.writeStream \
.format("delta") \
.option("checkpointLocation", " Files/checkpoint") \
.outputMode("append") \
.partitionBy("<column_name_01>", "<column_name_02>") \
.trigger(processingTime="1 minute") \
.toTable("deltaeventstable")

A vantagem de combinar o envio em lote de eventos em operações de gravação de


tabela do Delta é que ele cria arquivos do Delta maiores com mais dados, evitando
arquivos pequenos. Você deve analisar a quantidade de dados que estão sendo
ingeridos e encontrar o melhor tempo de processamento para otimizar o tamanho dos
arquivos Parquet criados pela biblioteca do Delta.

Monitoramento
O Spark 3.1 e versões posteriores têm uma interface do usuário de streaming
estruturada integrada (link ) contendo as seguintes métricas de streaming:

Taxa de entrada
Taxa de processamento
Linhas de entrada
Duração do lote
Duração da operação

Próximas etapas
Obter dados de streaming no lakehouse e acessar com o ponto de extremidade
SQL.
Funções de workspace no Lakehouse
Artigo • 04/04/2024

As funções de workspace definem o que o usuário pode fazer com itens do Microsoft
Fabric. As funções podem ser atribuídas a indivíduos ou grupos de segurança na
exibição do workspace. Ver Permitir que os usuários tenham acesso aos workspaces.

O usuário pode ser atribuído às seguintes funções:

Administrador
Membro
Colaborador
Visualizador

Em um lakehouse, os usuários com funções Administração, Membro e Colaborador


podem executar todas as operações CRUD em todos os dados. Um usuário com a
função Visualizador só pode ler dados armazenados em Tabelas usando o ponto de
extremidade de análise SQL.

) Importante

Ao acessar dados usando o ponto de extremidade de análise SQL com a função


Visualizador, verifique se a política de acesso do SQL foi concedida para ler as
tabelas necessárias.

Conteúdo relacionado
Funções nos workspaces
Permissões de acesso a dados do OneLake
Segurança do Fabric e do OneLake

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como funciona o compartilhamento do
lakehouse
Artigo • 25/04/2024

Ao compartilhar um lakehouse, você concede a outros usuários ou grupos acesso a um


lakehouse sem conceder acesso ao espaço de trabalho e ao restante de seus itens. Para
ver a lista de itens que outras pessoas compartilharam com você, selecione Navegar na
barra de navegação do Fabric e selecione Compartilhado comigo. Você também pode
ver lakehouses que outras pessoas compartilharam com você no hub de dados do
OneLake.

Compartilhar um lakehouse também permite acesso ao ponto de extremidade SQL e ao


modelo semântico padrão associado.

Para compartilhar um lakehouse, navegue até o espaço de trabalho e selecione as


reticências (...) ao lado do nome do lakehouse. No menu Mais opções, selecione
Compartilhar. Preencha os campos na tela Conceder acesso de pessoas e selecione
Conceder.

Para editar ou remover permissões, confira Gerenciar permissões.

Compartilhamento e permissões
Por padrão, compartilhar um lakehouse concede aos usuários permissão de leitura para
o lakehouse, o ponto de extremidade SQL associado e o modelo semântico padrão.
Além dessas permissões padrão, você pode conceder:

Permissão ReadData no ponto de extremidade SQL para acessar dados sem a


política SQL.
Permissão ReadAll no lakehouse para acessar todos os dados usando o Apache
Spark.
Permissão de criação no modelo semântico padrão para permitir a criação de
relatórios do Power BI sobre o modelo semântico.

Gerenciando permissões
Depois de compartilhar um item, você pode editar ou remover permissões na tela
Acesso direto desse item. Para gerenciar permissões do lakehouse que você
compartilhou, navegue até o espaço de trabalho e selecione as reticências (...) ao lado
do nome do lakehouse. No menu Mais opções, selecione Gerenciar permissões. Na tela
Acesso direto, você pode ver o acesso concedido, adicionar permissões personalizadas
e remover o acesso e as permissões personalizadas.

Controle de acesso em nível de pasta


As permissões de acesso a dados do OneLake (preview) permitem criar funções
personalizadas em um lakehouse e conceder permissões de leitura apenas a pastas
especificadas no OneLake. A segurança da pasta do OneLake é hereditária para todas as
subpastas. Para cada função do OneLake, você pode atribuir usuários e grupos de
segurança ou conceder uma atribuição automática com base na função do espaço de
trabalho.

Saiba mais sobre o controle de acesso baseado em função (RBAC) do OneLake.

Funções de acesso a dados do OneLake


Para criar uma função de acesso a dados:

1. Abra o lakehouse no qual deseja definir a nova função.


2. Selecione Gerenciar acesso a dados do OneLake (preview) na faixa de opções e
confirme se deseja habilitar funções de acesso a dados (preview) para o lakehouse.
3. Em seguida, selecione Nova função e insira um nome para a função.
4. Se desejar que a função se aplique a todas as pastas do lakehouse, selecione
Todas as pastas. Se quiser que a função se aplique apenas às pastas selecionadas,
escolha Pastas selecionadas e selecione as pastas relevantes.
5. Selecione Salvar. É exibida uma notificação que confirma a criação da nova função.
6. No painel Editar <nome da função>, conceda à nova função Permissões de
leitura. Para isso, selecione Atribuir função.
7. Escolha as permissões que deseja atribuir, insira nomes ou endereços de e-mail no
campo Adicionar pessoas ou grupos e selecione Adicionar.
8. Revise a lista de destinatários em Pessoas e grupos atribuídos, remova os que
você não deseja na lista e selecione Salvar.

Para obter mais informações, consulte Introdução às funções de acesso a dados do


OneLake.

Conteúdo relacionado
Funções de espaço de trabalho no Lakehouse
Compartilhar itens no Microsoft Fabric
RBAC (controle de acesso baseado em função)
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é a computação do Spark no
Microsoft Fabric?
Artigo • 31/10/2023

Aplica-se a: Engenharia de Dados e Ciência de Dados no Microsoft Fabric

As experiências de Engenharia de Dados e Ciência de Dados do Microsoft Fabric operam


em uma plataforma de computação do Spark totalmente gerenciada. Essa plataforma
foi projetada para fornecer velocidade e eficiência incomparáveis. Com os pools iniciais,
você pode esperar a inicialização rápida da sessão do Spark, normalmente dentro de 5 a
10 segundos, e nenhuma necessidade de configuração manual. Além disso, você
também tem a flexibilidade de personalizar pools do Spark de acordo com os requisitos
específicos de engenharia de dados e ciência de dados. A plataforma permite uma
experiência de análise otimizada e personalizada.

) Importante

O Microsoft Fabric está em versão prévia.

Pools iniciais
Os pools iniciais são uma maneira rápida e fácil de usar o Spark na plataforma do
Microsoft Fabric em segundos. Você pode usar as sessões do Spark imediatamente, em
vez de esperar que o Spark configure os nós para você, o que ajuda você a fazer mais
com os dados e obter insights mais rapidamente.
Os pools iniciais têm clusters do Spark que estão sempre ativados e prontos para suas
solicitações. Eles usam nós médios que escalam verticalmente dinamicamente com base
nas suas necessidades de trabalho do Spark.
Os pools iniciais também têm configurações padrão que permitem instalar bibliotecas
rapidamente sem diminuir a velocidade da hora de início da sessão. No entanto, se você
quiser usar propriedades ou bibliotecas adicionais personalizadas do Spark de seu
workspace ou configurações de capacidade, pode levar mais tempo para o Spark obter
os nós para você. Quando se trata de cobrança e consumo de capacidade, você é
cobrado pelo consumo de capacidade ao começar a executar sua definição de trabalho
do notebook ou do Spark. Você não será cobrado pelo tempo em que os clusters
estiverem ociosos no pool.

Por exemplo, se você enviar um trabalho de notebook para um pool inicial, será
cobrado apenas pelo período em que a sessão do notebook estiver ativa. O tempo
cobrado não inclui o tempo ocioso ou o tempo necessário para personalizar a sessão
com o contexto do Spark.

Pools do Spark
Um pool do Spark é uma maneira de dizer ao Spark que tipo de recursos você precisa
para suas tarefas de análise de dados. Você pode dar um nome ao pool do Spark e
escolher quantos e quão grandes são os nós (os computadores que fazem o trabalho).
Você também pode informar ao Spark como ajustar o número de nós, dependendo de
quanto trabalho você tem. A criação de um pool do Spark é gratuita; você só paga
quando executa um trabalho do Spark no pool e, em seguida, o Spark configura os nós
para você.

Se você não usar o pool do Spark por dois minutos após a expiração da sessão, o pool
do Spark será desalocado. Esse período de tempo de expiração de sessão padrão é
definido como 20 minutos e você pode alterá-lo se desejar. Se você for um
administrador de workspace, também poderá criar pools personalizados do Spark para
seu workspace e torná-los a opção padrão para outros usuários. Dessa forma, você
pode economizar tempo e evitar configurar um novo pool do Spark sempre que
executar um notebook ou um trabalho do Spark. Os pools personalizados do Spark
levam cerca de três minutos para serem iniciados, pois o Spark precisa obter os nós do
Azure.
Você pode até mesmo criar Pools do Spark de nó único, definindo o número mínimo de
nós como 1, nesse caso, o driver e o executor seriam executados em um único nó que
vem com HA restaurável e é adequado para cargas de trabalho pequenas.

O tamanho e o número de nós que você pode ter em seu pool personalizado do Spark
depende da capacidade do Microsoft Fabric. A capacidade é uma medida de quanto
poder de computação você pode usar no Azure. Uma maneira de pensar nisso é que
dois VCores do Spark (uma unidade de poder de computação para Spark) são iguais a
uma unidade de capacidade. Por exemplo, um SKU F64 de capacidade do Fabric tem 64
unidades de capacidade, o que equivale a 128 VCores spark. Você pode usar esses
VCores do Spark para criar nós de tamanhos diferentes para o pool personalizado do
Spark, desde que o número total de VCores do Spark não exceda 128.

A cobrança de pools do Spark é semelhante à dos pools iniciais em que você não paga
pelos pools personalizados do Spark criados, a menos que tenha uma sessão ativa do
Spark criada para executar uma definição de trabalho do Spark ou notebook. Você só é
cobrado pela duração das execuções do trabalho. Você não é cobrado por estágios
como a criação e a desalocação do cluster após a conclusão do trabalho.

Por exemplo, se você enviar um trabalho de notebook para um pool personalizado do


Spark, será cobrado apenas pelo período de tempo em que a sessão estiver ativa. A
cobrança dessa sessão do notebook é interrompida depois que a sessão do Spark for
interrompida ou expirada. Você não será cobrado pelo tempo necessário para adquirir
instâncias de cluster da nuvem e pelo tempo necessário para inicializar o contexto do
Spark.

Possíveis configurações de pool personalizado para F64 com base no exemplo anterior:

SKU de capacidade Unidades de VCores do Tamanho do Número máximo


do Fabric capacidade Spark nó de nós

F64 64 128 Small 32

F64 64 128 Médio 16

F64 64 128 grande 8


SKU de capacidade Unidades de VCores do Tamanho do Número máximo
do Fabric capacidade Spark nó de nós

F64 64 128 Extragrande 4

F64 64 128 XX-Grande 2

7 Observação

Para criar pools personalizados, você precisa de permissões de administrador para


o workspace. E o administrador de capacidade do Microsoft Fabric deve conceder
permissões para permitir que os administradores do workspace dimensionem seus
pools personalizados do Spark. Para saber mais, consulte Introdução aos pools
personalizados do Spark no Fabric

Nós
A instância do Pool do Apache Spark consiste em um nó de cabeçalho e dois ou mais
nós de trabalho com um mínimo de três nós em uma instância do Spark. O nó de
cabeçalho executa serviços de gerenciamento extras, como Livy, Yarn Resource
Manager, Zookeeper e o driver do Spark. Todos os nós executam serviços como o Node
Agent e o Gerenciador de nó do Yarn. Todos os nós de trabalho executam o serviço de
executor do Spark.

Tamanhos dos nós


Um Pool do Spark pode ser definido com tamanhos de nó que variam de um pequeno
nó de computação com 4 vCore e 32 GB de memória até um nó de computação XX-
Grande com 64 vCore e 512 GB de memória por nó. Os tamanhos de nó podem ser
alterados após a criação do pool, embora a instância precise ser reiniciada.

Tamanho vCore Memória

Small 4 32 GB

Médio 8 64 GB

Grande 16 128 GB

Extragrande 32 256 GB

XX-Grande 64 512 GB
Autoscale
O dimensionamento automático para pools do Apache Spark permite escalar e reduzir
verticalmente de modo automático os recursos de computação com base na
quantidade de atividade. Quando a funcionalidade de dimensionamento automático
estiver habilitada, defina o número mínimo e máximo de nós a serem dimensionados.
Quando o recurso de dimensionamento automático estiver desabilitado, o número de
nós definido permanecerá fixo. Você pode alterar essa configuração após a criação do
pool, embora talvez seja necessário reiniciar a instância.

Alocação dinâmica
A alocação dinâmica permite que o aplicativo Spark solicite mais executores se as
tarefas excederem a carga que os executores atuais podem suportar. Ela também libera
os executores quando os trabalhos são concluídos e se o aplicativo Spark está se
movendo para o estado ocioso. Os usuários corporativos geralmente têm dificuldade
em ajustar as configurações do executor porque são muito diferentes em diferentes
estágios de um processo de execução de trabalho do Spark. Essas configurações
também dependem do volume de dados processados, que muda de tempos em
tempos. Os usuários podem habilitar a opção alocação dinâmica de executores como
parte da configuração do pool, o que habilitaria a alocação automática de executores
para o aplicativo do Spark com base nos nós disponíveis no Pool do Spark.

Quando a opção de alocação dinâmica está habilitada para cada aplicativo do Spark
enviado, o sistema reserva executores durante a etapa de envio de trabalho com base
no máximo de nós. Os usuários especificam o máximo de nós para dar suporte a
cenários de dimensionamento automático bem-sucedidos.

Próximas etapas
Introdução às Configurações de Administração da Engenharia/Ciência de Dados
para a capacidade do Fabric
Configurações de administração do workspace do Spark no Microsoft Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Configurar pools iniciais no Microsoft
Fabric
Artigo • 15/04/2024

Neste artigo, explicamos como personalizar pools de inicialização no Microsoft Fabric


para suas cargas de trabalho de análise. Os pools iniciais são uma maneira rápida e fácil
de usar o Spark na plataforma do Microsoft Fabric em segundos. Você pode usar as
sessões do Spark imediatamente, em vez de esperar que o Spark configure os nós para
você, o que ajuda você a fazer mais com os dados e obter insights mais rapidamente.

Os pools iniciais têm clusters do Spark que estão sempre ativados e prontos para suas
solicitações. Eles usam nós de tamanho médio e podem ser escalados verticalmente
com base nos requisitos da carga de trabalho.

Você pode especificar o máximo de nós para dimensionamento automático com base
nos requisitos de carga de trabalho de engenharia de dados ou de ciência de dados.
Com base nos nós máximos configurados, o sistema adquire e desativa nós
dinamicamente à medida que os requisitos de computação do trabalho mudam, o que
resulta em uma escala eficiente e em melhor desempenho.

Você também pode definir o limite máximo para executores em pools de inicialização e
com a Alocação Dinâmica habilitada, o sistema ajusta o número de executores
dependendo do volume de dados e das necessidades de computação no nível do
trabalho. Esse processo permite que você se concentre em suas cargas de trabalho sem
se preocupar com a otimização de desempenho e o gerenciamento de recursos.

7 Observação

Para personalizar um pool de inicialização, você precisa ter acesso de administrador


ao workspace.

Configurar pools de inicialização


Para gerenciar o pool de inicialização associado ao workspace:

1. Vá para o workspace e escolha as Configurações do workspace.


2. Em seguida, selecione a opção Engenharia de Dados/Ciência para expandir o


menu.

3. Selecione a opção Pool de Inicialização.


4. Você pode definir a configuração máxima de nós para seus pools iniciais com base
em um número permitido conforme a capacidade adquirida ou reduzir a
configuração máxima de nós padrão para um valor menor ao executar cargas de
trabalho menores.

A seção a seguir lista várias configurações padrão e os limites máximos de nós com
suporte para os pools de inicialização com base nas SKUs de capacidade do Microsoft
Fabric:

ノ Expandir a tabela

Nome do SKU Unidades de VCores do Tamanho Nós Número


capacidade Spark do nó máximos máximo de
padrão nós

F2 2 4 Médio 1 1

F4 4 8 Médio 1 1

F8 8 16 Médio 2 2

F16 16 32 Médio 3 4

F32 32 64 Médio 8 8

F64 64 128 Médio 10 16

(Capacidade de 64 128 Médio 10 16


avaliação)

F128 128 256 Médio 10 32

F256 256 512 Médio 10 64

F512 512 1024 Médio 10 128

F1024 1024 2.048 Médio 10 200

F2048 2.048 4096 Médio 10 200

7 Observação

Para personalizar um pool de inicialização, você precisa ter acesso de administrador


ao workspace.

Conteúdo relacionado
Saiba mais na documentação pública do Spark do Apache.
Introdução às Configurações de administração do workspace do Spark no
Microsoft Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como criar pools personalizados do
Spark no Microsoft Fabric
Artigo • 14/11/2023

Nesse documento, explicamos como criar pools personalizados do Apache Spark no


Microsoft Fabric para suas cargas de trabalho de análise. Os pools do Apache Spark
permitem que os usuários criem ambientes de computação personalizados com base
em seus requisitos específicos, garantindo o desempenho ideal e a utilização de
recursos.

Você especifica os nós mínimo e máximo para dimensionamento automático. Com base
nesses valores, o sistema adquire e desativa dinamicamente os nós à medida que os
requisitos de computação do trabalho mudam, o que resulta em dimensionamento
eficiente e melhor desempenho. A alocação dinâmica de executores em Pools do Spark
também alivia a necessidade de configuração manual do executor. Em vez disso, o
sistema ajusta o número de executores dependendo do volume de dados e das
necessidades de computação no nível do trabalho. Esse processo permite que você se
concentre em suas cargas de trabalho sem se preocupar com a otimização de
desempenho e o gerenciamento de recursos.

7 Observação

Para criar um pool personalizado do Spark, você precisa de acesso de


administrador ao workspace. O administrador de capacidade deve habilitar a opção
Pools de workspace personalizados na seção Computação do Spark das
Configurações de Capacidade Administração. Para saber mais, confira
Configurações de Computação do Spark para Recursos do Fabric.

Criar pools personalizados do Spark


Para criar ou gerenciar o pool do Spark associado ao seu workspace:

1. Vá para o workspace e selecione Configurações do workspace.


2. Selecione a opção Engenharia/Ciência de Dados para expandir o menu e, em
seguida, selecione Computação do Spark.

3. Selecione a opção Novo Pool . Na tela Criar Pool, nomeie o pool do Spark. Escolha
também a Família do Nó e selecione um Tamanho do nó dos tamanhos
disponíveis (Pequeno, Médio, Grande, Extra grande e Super extra grande), com
base nos requisitos de computação para suas cargas de trabalho.
4. Você também pode definir a configuração mínima de nó para seus pools
personalizados como 1. Como o Spark do Fabric fornece disponibilidade
restaurável para clusters com um único nó, você não precisa se preocupar com
falhas de trabalho, perda de sessão durante falhas ou sobre o pagamento em
computação para trabalhos menores do Spark.

5. Você também pode habilitar ou desabilitar o dimensionamento automático para


seus Pools do Spark personalizados. Quando o dimensionamento automático
estiver habilitado, o pool adquirirá dinamicamente novos nós até o limite máximo
de nós especificado pelo usuário e, em seguida, os desativará após a execução do
trabalho. Esse recurso garante um melhor desempenho ajustando os recursos com
base nos requisitos de trabalho. Você tem permissão para dimensionar os nós, que
se ajustam às unidades de capacidade adquiridas como parte do SKU de
capacidade do Fabric.
6. Você também pode optar por habilitar a alocação de executor dinâmico para o
pool do Spark, que determina automaticamente o número ideal de executores
dentro do limite máximo especificado pelo usuário. Esse recurso ajusta o número
de executores com base no volume de dados, resultando em melhor desempenho
e utilização de recursos.

Esses pools personalizados têm uma duração de uso automático padrão de 2 minutos.
Depois que a duração da pausa automática for atingida, a sessão expirará e os clusters
não serão alocados. Você é cobrado com base no número de nós e na duração pela
qual os pools personalizados do Spark são usados.

Próximas etapas
Saiba mais na documentação pública do Spark do Apache.
Introdução às Configurações de administração do workspace do Spark no
Microsoft Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Relatórios de cobrança e utilização do
Spark no Microsoft Fabric
Artigo • 15/11/2023

Aplica-se a: Engenharia e Ciência de Dados no Microsoft Fabric

Este artigo explica a utilização de computação e os relatórios do Spark que alimentam


as cargas de trabalho de Engenharia de Dados e Ciência do Synapse no Microsoft Fabric.
A utilização de computação inclui operações de lakehouse, como visualização de tabela,
carregamento em delta, execuções de notebook da interface, execuções agendadas,
execuções disparadas por etapas de notebook nos pipelines e execuções de definição
de trabalho do Spark.

Assim como outras experiências no Microsoft Fabric, a Engenharia de Dados também


usa a capacidade associada a um espaço de trabalho para executar esses trabalhos e
seus encargos gerais de capacidade aparecem no portal do Azure em sua assinatura de
Gerenciamento de Custos da Microsoft. Para saber mais sobre a cobrança do Fabric,
consulte Compreender sua fatura do Azure em uma capacidade do Fabric.

Capacidade do Fabric
Você, como usuário, pode comprar uma capacidade do Fabric do Azure especificando o
uso de uma assinatura do Azure. O tamanho da capacidade determina a quantidade de
energia de computação disponível. Para o Spark do Fabric, cada CU adquirida se traduz
em 2 VCores do Spark. Por exemplo, se você comprar uma capacidade do Fabric F128,
isso se traduzirá em 256 SparkVCores. Uma capacidade do Fabric é compartilhada em
todos os espaços de trabalho adicionados a ele e na qual o total de computação do
Spark permitido é compartilhado em todos os trabalhos enviados de todos os espaços
de trabalho associados a uma capacidade. Para entender os diferentes SKUs, alocação
de núcleos e limitação no Spark, visite Compreender a limitação do Spark e a fila.

Configuração de computação do Spark e


capacidade adquirida
A computação do Spark do Fabric oferece duas opções quando se trata de configuração
de computação.

1. Pools de inicialização: esses pools padrão são uma maneira rápida e fácil de usar o
Spark na plataforma do Microsoft Fabric em segundos. Você pode usar as sessões
do Spark imediatamente, em vez de esperar que o Spark configure os nós para
você, o que ajuda você a fazer mais com os dados e obter insights mais
rapidamente. Quando se trata de cobrança e consumo de capacidade, você é
cobrado ao começar a executar o notebook ou a definição de trabalho do Spark
ou a operação do lakehouse. Você não será cobrado pelo tempo em que os
clusters estiverem ociosos no pool.

Por exemplo, se você enviar um trabalho de notebook para um pool inicial, será
cobrado apenas pelo período em que a sessão do notebook estiver ativa. O tempo
cobrado não inclui o tempo ocioso ou o tempo necessário para personalizar a
sessão com o contexto do Spark. Para entender mais sobre como configurar os
pools de inicialização com base na SKU de Capacidade do Fabric adquirida, visite
Configurar os pools de inicialização com base na capacidade do Fabric

2. Pools do Spark: são pools personalizados, em que você pode personalizar o


tamanho dos recursos necessários para suas tarefas de análise de dados. Você
pode dar um nome ao pool do Spark e escolher quantos e quão grandes são os
nós (os computadores que fazem o trabalho). Você também pode informar ao
Spark como ajustar o número de nós, dependendo de quanto trabalho você tem.
A criação de um pool do Spark é gratuita; você só paga quando executa um
trabalho do Spark no pool e, em seguida, o Spark configura os nós para você.

Se você não usar o pool do Spark por dois minutos após a expiração da
sessão, o pool do Spark será desalocado. Esse período de tempo de
expiração de sessão padrão é definido como 20 minutos.
O tamanho e o número de nós que você pode ter em seu pool personalizado
do Spark depende da capacidade do Microsoft Fabric. Você pode usar esses
VCores do Spark para criar nós de tamanhos diferentes para o pool
personalizado do Spark, desde que o número total de VCores do Spark não
exceda 128.
A cobrança de pools do Spark é semelhante à dos pools iniciais em que você
não paga pelos pools personalizados do Spark criados, a menos que tenha
uma sessão ativa do Spark criada para executar uma definição de trabalho do
Spark ou notebook. Você só é cobrado pela duração das execuções do
trabalho. Você não é cobrado por estágios como a criação e a desalocação
do cluster após a conclusão do trabalho.

Por exemplo, se você enviar um trabalho de notebook para um pool personalizado


do Spark, será cobrado apenas pelo período de tempo em que a sessão estiver
ativa. A cobrança dessa sessão do notebook é interrompida depois que a sessão
do Spark for interrompida ou expirada. Você não será cobrado pelo tempo
necessário para adquirir instâncias de cluster da nuvem e pelo tempo necessário
para inicializar o contexto do Spark. Para entender mais sobre como configurar os
pools do Spark com base na SKU de Capacidade do Fabric adquirida, visite
Configurar os pools com base na capacidade do Fabric

Relatórios de uso de computação do Spark


O aplicativo Métricas de Capacidade do Microsoft Fabricfornece visibilidade do uso da
capacidade para todas as cargas de trabalho do Fabric em um só lugar. É usado por
administradores de capacidade para monitorar o desempenho das cargas de trabalho e
seu uso, em comparação com a capacidade adquirida.

Após instalar o aplicativo, selecione o tipo de item Notebook,Lakehouse, Definição de


trabalho Spark na lista suspensa Selecionar tipo de item:. O gráfico de Gráfico de faixa
de opções várias métricas, agora pode ser ajustado para um período de tempo
desejado para entender o uso de todos esses itens selecionados.

Todas as operações relacionadas ao Spark são classificadas como operações em


segundo plano. O consumo de capacidade do Spark é exibido em um Notebook, uma
Definição de Trabalho do Spark ou um Lakehouse e é agregado pelo nome e item da
operação. Por exemplo: caso execute um trabalho de notebook, poderá visualizar a
execução do notebook, as CUs usadas pelo notebook (Total de VCores do Spark/2,
como 1 CU fornece 2 VCores do Spark), duração que o trabalho durou no relatório.

Para entender mais sobre o relatório de uso da capacidade do Spark, visite


Compreender o consumo de capacidade do Spark usando o Aplicativo de Métricas de
Capacidade

Exemplo de cobrança
Considere este cenário:

Há uma capacidade C1 que hospeda um Espaço de Trabalho do Fabric W1 e esse


Espaço de Trabalho contém o Lakehouse LH1 e o Notebook NB1.
Qualquer operação do Spark que o notebook (NB1) ou lakehouse(LH1) executa
é relatada em relação à capacidade C1.

Estendendo este exemplo para um cenário em que há outro C2 de Capacidade que


hospeda um Espaço de Trabalho do Fabric W2 e permite dizer que esse Espaço de
Trabalho contém uma Definição de Trabalho do Spark (SJD1) e LH2 (Lakehouse).
Se a Definição de Trabalho do Spark (SDJ2) do Espaço de Trabalho (W2) fazer a
leitura de dados do Lakehouse (LH1), o uso será relatado em relação à
Capacidade C2 associada ao Espaço de Trabalho (W2) que hospeda o item.
Se o Notebook (NB1) executar uma operação de leitura do Lakehouse(LH2), o
consumo de capacidade será relatado em relação à Capacidade C1, que está
alimentando o Espaço de Trabalho W1 que hospedo o item de notebook.

Próximas etapas
Introdução às Configurações de Administração da Engenharia/Ciência de Dados
para a capacidade do Fabric
Configurações de administração do workspace do Spark no Microsoft Fabric
Instalar o aplicativo de métricas do Premium
Usar o aplicativo de métricas Premium
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Runtimes do Apache Spark no Fabric
Artigo • 15/11/2023

O Microsoft Fabric Runtime é uma plataforma integrada ao Azure baseada no Apache


Spark que permite a execução e o gerenciamento de experiências de engenharia de
dados e ciência de dados. Ele combina os principais componentes de fontes internas e
de software livre, fornecendo aos clientes uma solução abrangente. Para simplificar, nós
nos referimos ao Microsoft Fabric Runtime da plataforma Apache Spark como Fabric
Runtime.

Principais componentes do Fabric Runtime:

Apache Spark – Uma poderosa biblioteca de computação distribuída de código


aberto que habilita tarefas de processamento e análise de dados em larga escala.
O Apache Spark fornece uma plataforma versátil e de alto desempenho para
experiências de engenharia de dados e ciência de dados.

Delta Lake – uma camada de armazenamento de software livre que traz transações
ACID e outros recursos de confiabilidade de dados para o Apache Spark. Integrado
no Microsoft Fabric Runtime, o Delta Lake aprimora os recursos de processamento
de dados e garante a consistência dos dados em várias operações simultâneas.

Pacotes de nível padrão para Java/Scala, Python e R – Pacotes que dão suporte a
diversos ambientes e linguagens de programação. Esses pacotes são instalados e
configurados automaticamente, permitindo que os desenvolvedores apliquem
suas linguagens de programação preferenciais para tarefas de processamento de
dados.

O Microsoft Fabric Runtime é criado com base em um sistema operacional de


software livre robusto, garantindo compatibilidade com várias configurações de
hardware e requisitos do sistema.

Abaixo, você encontra uma comparação abrangente dos principais componentes,


incluindo versões do Apache Spark, sistemas operacionais com suporte, Java, Scala,
Python, Delta Lake e R, para Runtime 1.1 e Runtime 1.2 na plataforma Microsoft Fabric.

Runtime 1.1 Runtime 1.2

Apache Spark 3.3.1 3.4.1

Sistema operacional Ubuntu 18.04 Mariner 2.0

Java 8 11
Runtime 1.1 Runtime 1.2

Scala 2.12.15 2.12.17

Python 3.10 3.10

Delta Lake 2.2.0 2.4.0

R 4.2.2 4.2.2

Visite Runtime 1.1 ou Runtime 1.2 para explorar detalhes, novos recursos, melhorias e
cenários de migração para a versão de runtime específica.

Otimizações do Fabric
No Microsoft Fabric, tanto o mecanismo Spark quanto as implementações do Delta Lake
incorporam otimizações e recursos específicos da plataforma. Esses recursos são
projetados para usar integrações nativas na plataforma. É importante observar que
todos esses recursos podem ser desabilitados para alcançar a funcionalidade padrão do
Spark e do Delta Lake. Os Runtimes do Fabric para Apache Spark abrangem:

A versão de software livre completa do Apache Spark.


Uma coleção de quase 100 aprimoramentos internos e distintos de desempenho
de consulta. Esses aprimoramentos incluem recursos como cache de partição
(habilitando o cache de partição FileSystem para reduzir chamadas metastore) e
Junção Cruzada à Projeção da Subconsulta Escalar.
Cache inteligente integrado.

No Runtime do Fabric para Apache Spark e Delta Lake, há funcionalidades de gravador


nativo que atendem a duas finalidades principais:

1. Eles oferecem desempenho diferenciado para cargas de trabalho de gravação,


otimizando o processo de gravação.
2. Eles são padrão para a otimização V-Order de arquivos Delta Parquet. A
otimização de V-Order do Delta Lake é crucial para fornecer desempenho de
leitura superior em todos os mecanismos do Fabric. Para obter uma compreensão
mais profunda de como ele opera e como gerenciá-lo, consulte o artigo dedicado
sobre Otimização de tabela Delta Lake e V-Order.

Suporte a vários runtimes


O Fabric dá suporte a vários runtimes, oferecendo aos usuários a flexibilidade para
alternar perfeitamente entre eles, minimizando o risco de incompatibilidades ou
interrupções.

Por padrão, todos os novos espaços de trabalho usam a versão de runtime mais
recente, que atualmente é Runtime 1.2.

Para alterar a versão do runtime no nível do workspace, vá para Configurações do


Workspace > Engenharia/Ciência de Dados > Computação do Spark > Padrão no Nível
do Workspace e selecione o runtime desejado nas opções disponíveis.

Depois de fazer essa alteração, todos os itens criados pelo sistema no workspace,
incluindo Lakehouses, SJDs e Notebooks, funcionarão usando a versão de runtime no
nível do workspace recém-selecionada a partir da próxima Sessão spark. Se você estiver
usando um notebook com uma sessão existente para um trabalho ou qualquer
atividade relacionada ao lakehouse, essa sessão do Spark continuará como está. No
entanto, a partir da próxima sessão ou trabalho, a versão de runtime selecionada será
aplicada.

Consequências das alterações de runtime nas


Configurações do Spark
Em geral, pretendemos migrar todas as configurações do Spark. No entanto, se
identificarmos que a configuração do Spark não é compatível com o Runtime B,
emitimos uma mensagem de aviso e evitamos implementar a configuração.
Consequências das alterações de runtime no
gerenciamento de bibliotecas
Em geral, nossa abordagem é migrar todas as bibliotecas do Runtime A para o Runtime
B, incluindo runtimes públicos e personalizados. Se as versões do Python e do R
permanecerem inalteradas, as bibliotecas deverão funcionar corretamente. No entanto,
para Jars, há uma probabilidade significativa de que eles não funcionem devido a
alterações nas dependências e outros fatores, como alterações no Scala, Java, Spark e
no sistema operacional.

O usuário é responsável por atualizar ou substituir as bibliotecas que não funcionam


com o Runtime B. Se houver um conflito, o que significa que o Runtime B inclui uma
biblioteca originalmente definida no Runtime A, nosso sistema de gerenciamento de
biblioteca tentará criar a dependência necessária para o Runtime B com base nas
configurações do usuário. No entanto, o processo de construção falhará se ocorrer um
conflito. No log de erros, os usuários podem observar quais bibliotecas estão causando
conflitos e fazer ajustes em suas versões ou especificações.
Atualizar o protocolo Delta Lake
Os recursos do Delta Lake são sempre compatíveis com versões anteriores, garantindo
que as tabelas criadas em uma versão inferior do Delta Lake possam interagir
perfeitamente com versões mais altas. No entanto, quando determinados recursos são
habilitados (por exemplo, usando o método
delta.upgradeTableProtocol(minReaderVersion, minWriterVersion) , a compatibilidade

com versões inferiores do Delta Lake pode ser comprometida. Nesses casos, é essencial
modificar cargas de trabalho que fazem referência às tabelas atualizadas para se
alinharem a uma versão do Delta Lake que mantenha a compatibilidade.

Cada tabela Delta está associada a uma especificação de protocolo, definindo os


recursos compatíveis. Os aplicativos que interagem com a tabela, para leitura ou
gravação, dependem dessa especificação de protocolo para determinar se são
compatíveis com o conjunto de recursos da tabela. Se um aplicativo não tiver a
capacidade de lidar com um recurso listado como compatível com o protocolo da
tabela, não será possível ler ou gravar nessa tabela.

A especificação do protocolo é dividida em dois componentes distintos: o protocolo de


leitura e o protocolo de gravação. Visite a página "Como o Delta Lake gerencia a
compatibilidade de recursos?" para ler detalhes sobre ele.

Os usuários podem executar o comando delta.upgradeTableProtocol(minReaderVersion,


minWriterVersion) dentro do ambiente do PySpark e no Spark SQL e Scala. Esse

comando permite que eles iniciem uma atualização na tabela Delta.

É essencial observar que, ao executar essa atualização, os usuários recebem um aviso


indicando que atualizar a versão do protocolo Delta é um processo não acessível. Isso
significa que, depois que a atualização é executada, ela não pode ser desfeita.

As atualizações de versão do protocolo podem afetar potencialmente a compatibilidade


de leitores de tabela, gravadores ou ambos existentes do Delta Lake. Portanto, é
aconselhável continuar com cuidado e atualizar a versão do protocolo somente quando
necessário, como ao adotar novos recursos no Delta Lake.
Além disso, os usuários devem verificar se todas as cargas de trabalho e processos de
produção atuais e futuros são compatíveis com tabelas delta lake usando a nova versão
de protocolo para garantir uma transição perfeita e evitar possíveis interrupções.

Alterações Delta 2.2 vs Delta 2.4


No Fabric Runtime mais recente, versão 1.2, o formato de tabela padrão
( spark.sql.sources.default ) agora é delta . Nas versões anteriores do Fabric Runtime,
versão 1.1 e em todo o Synapse Runtime para Apache Spark contendo Spark 3.3 ou
anteriores, o formato de tabela padrão foi definido como parquet . Verifique a tabela
com os detalhes das configurações do Apache Spark para ver as diferenças entre o
Azure Synapse Analytics e o Microsoft Fabric.

Todas as tabelas criadas usando Spark SQL, PySpark, Scala Spark e Spark R, sempre que
o tipo de tabela for omitido, criarão a tabela como delta por padrão. Se os scripts
definirem explicitamente o formato de tabela, isso será respeitado. O comando USING
DELTA em comandos de criação de tabela do Spark torna-se redundante.

Os scripts que esperam ou assumem o formato de tabela parquet devem ser revisados.
Não há suporte para os comandos a seguir nas tabelas Delta:

ANALYZE TABLE $partitionedTableName PARTITION (p1) COMPUTE STATISTICS

ALTER TABLE $partitionedTableName ADD PARTITION (p1=3)


ALTER TABLE DROP PARTITION

ALTER TABLE RECOVER PARTITIONS


ALTER TABLE SET SERDEPROPERTIES

LOAD DATA

INSERT OVERWRITE DIRECTORY


SHOW CREATE TABLE

CREATE TABLE LIKE

Controle de versão
Nossa numeração de versão de runtime, embora intimamente relacionada ao Controle
de Versão Semântico, segue uma abordagem ligeiramente diferente. A versão principal
do runtime corresponde à versão principal do Apache Spark. Portanto, o Runtime 1
corresponde ao Spark versão 3. Da mesma forma, o próximo Runtime 2 será alinhado
com o Spark 4.0. É essencial observar que, entre os runtimes atuais, Runtime 1.1 e
Runtime 1.2, podem ocorrer alterações, incluindo a adição ou remoção de bibliotecas
diferentes. Além disso, nossa plataforma oferece um recurso de gerenciamento de
biblioteca que permite aos usuários instalar qualquer biblioteca desejada.

Próximas etapas
Runtime 1.2 (Spark 3.4, Java 11, Python 3.10, Delta Lake 2.4)
Runtime 1.1 (Spark 3.3, Java 8, Python 3.10, Delta Lake 2.2)

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Runtime 1.3 do Fabric
Artigo • 22/03/2024

O runtime do Fabric integra-se perfeitamente com o Azure. Ele fornece um ambiente


sofisticado para projetos de engenharia de dados e de ciência de dados que usam o
Apache Spark. Este artigo fornece uma visão geral dos recursos e componentes
essenciais do Runtime 1.3 do Fabric, o mais novo runtime para cálculos de big data.

O Runtime 1.3 do Fabric incorpora os seguintes componentes e atualizações projetados


para aprimorar seus recursos de processamento de dados:

Apache Spark 3.5


Sistema operacional: Mariner 2.0
Java: 11
Scala: 2.12.17
Python: 3.10
Delta Lake: 3.0.0

7 Observação

O Runtime 1.3 do Fabric está atualmente em um estágio de versão prévia pública


experimental. Para saber mais, consulte as limitações e notas.

Use as instruções a seguir para integrar o Runtime 1.3 no seu espaço de trabalho e usar
seus novos recursos:

1. Navegue até a guia Configurações do espaço de trabalho dentro do espaço de


trabalho do Fabric.
2. Acesse Engenharia/Ciência de Dados e selecione Configurações do Spark.
3. Selecione a guia Ambiente.
4. Na lista suspensa Versões do Runtime, selecione 1.3 Experimental (Spark 3.5,
Delta 3 OSS) e salve suas alterações. Esta ação define o 1.3 como runtime padrão
para seu espaço de trabalho.

Agora você pode começar a experimentar as mais recentes melhorias e funcionalidades


introduzidas no Runtime 1.3 do Fabric (Spark 3.5 e Delta Lake 3.0).

) Importante

Atualmente, leva cerca de 2 a 5 minutos para iniciar sessões do Spark 3.5, já que os
pools iniciais não fazem parte da versão experimental antecipada.

Prévia Pública Experimental


O estágio experimental do Runtime 1.3 do Fabric dá acesso antecipado a novos recursos
e APIs do Apache Spark. Isso inclui o Spark 3.5, que é uma versão de suporte de longo
prazo (LTS), oferecendo estabilidade antes que as principais atualizações do Spark 4.0
cheguem. A versão prévia permite que você use os aprimoramentos mais recentes
baseados no Spark imediatamente, garantindo uma transição suave e prontidão para
alterações futuras, como a atualização do Scala 2.13. Ele também melhora seus projetos
de dados com soluções avançadas e confiáveis no ecossistema do Azure.

 Dica

Para obter informações atualizadas, uma lista detalhada de alterações e as notas de


versão específicas dos runtimes do Fabric, verifique e assine Versões e Atualizações
de Runtimes do Spark .

Limitações
O Runtime 1.3 do Fabric está atualmente em um estágio de versão prévia pública
experimental, projetada para que os usuários explorem e experimentem os recursos e as
APIs mais recentes do Spark e do Delta Lake. Embora esta versão ofereça acesso às
principais funcionalidades, existem certas limitações:

Você pode usar sessões do Spark 3.5, escrever código em notebooks, agendar
definições de trabalho do Spark e usar com o PySpark, o Scala e o Spark SQL.
Porém, a linguagem R não tem suporte nesta versão antecipada.

Você pode instalar bibliotecas diretamente em seu código com pip e conda. Você
pode definir as configurações do Spark por meio das opções %%configurar em
notebooks e em definições de trabalho do Spark (SJDs).

Você pode ler e gravar no Lakehouse com o Delta 3.0 OSS, mas alguns recursos
avançados, como ordem V, gravação em Parquet nativo, compactação automática,
gravação otimizada, mesclagem com pouco embaralhamento, mesclagem,
evolução de esquema e viagem no tempo não estão incluídos nesta versão
antecipada.

O assistente do Spark não está disponível no momento. Porém, ferramentas de


monitoramento, como a interface do usuário e os logs do Spark têm suporte nesta
versão antecipada.

Recursos como integrações de Ciência de Dados, incluindo o Copilot, e conectores,


incluindo o Kusto, o SQL Analytics, o Cosmos DB e o MySQL Java Connector, não
têm suporte atualmente nesta versão antecipada. Não há suporte para bibliotecas
de Ciência de Dados em ambientes do PySpark. O PySpark só funciona com uma
configuração básica do Conda, que inclui o PySpark sozinho, sem bibliotecas
adicionais.

Não há suporte para integrações com artefato de ambiente e VSCode nesta versão
antecipada.

7 Observação

Compartilhe seu feedback sobre o Runtime do Fabric na Plataforma de Ideias .


Não deixe de mencionar a versão e o estágio do lançamento a que você está se
referindo. Valorizamos o feedback da comunidade e priorizamos as melhorias com
base em votos, para garantir que atendamos às necessidades dos usuários.

Principais destaques
Apache Spark 3.5
Apache Spark 3.5.0 é a sexta versão da série 3.x. Esta versão é um produto de ampla
colaboração dentro da comunidade de código aberto, tratando de mais de 1.300
problemas conforme registrados no Jira.

Nesta versão, há uma atualização na compatibilidade para streaming estruturado. Além


disso, esta versão amplia a funcionalidade dentro do PySpark e SQL. Ele adiciona
recursos como a cláusula de identificador SQL, argumentos nomeados em chamadas de
função SQL e a inclusão de funções SQL para agregações aproximadas HyperLogLog.
Outros recursos novos também incluem as funções de tabela definidas pelo usuário do
Python, a simplificação do treinamento distribuído via DeepSpeed e novos recursos de
streaming estruturado, como propagação de marca d'água e a operação
dropDuplicatesWithinWatermark.

Você pode conferir a lista completa e as mudanças detalhadas aqui:


https://spark.apache.org/releases/spark-release-3-5-0.html .

Delta Spark
O Delta Lake 3.0 marca um compromisso coletivo para tornar o Delta Lake interoperável
em todos os formatos, mais fácil de trabalhar e mais eficiente. O Delta Spark 3.0.0 foi
desenvolvido em cima do Apache Spark™ 3.5 . O artefato maven do Delta Spark foi
renomeado de delta-core para delta-spark.

Você pode conferir a lista completa e as mudanças detalhadas aqui:


https://docs.delta.io/3.0.0/index.html .

Conteúdo relacionado
Leia sobre os Runtimes do Apache Spark no Fabric – visão geral, controle de
versão, suporte a vários runtimes e atualização do protocolo Delta Lake
Guia de migração do Spark Core
Guias de migração de SQL, Datasets e DataFrame
Guia de migração de Streaming Estruturado
Guia de migração de MLlib (aprendizado de máquina)
Guia de migração do PySpark (Python no Spark)
Guia de migração do SparkR (R no Spark)

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Runtime 1.2
Artigo • 17/11/2023

O Microsoft Fabric Runtime é uma plataforma integrada ao Azure baseada no Apache Spark que permite a
execução e o gerenciamento de experiências de engenharia de dados e ciência de dados. Este documento
aborda os componentes e versões do Runtime 1.2.

O Microsoft Fabric Runtime 1.2 é a versão de runtime de GA mais recente. Os principais componentes do
Runtime 1.2 incluem:

Apache Spark 3.4.1


Sistema operacional: Mariner 2.0
Java: 11
Scala: 2.12.17
Python: 3.10
Delta Lake: 2.4.0
R: 4.2.2

O Microsoft Fabric Runtime 1.2 vem com uma coleção de pacotes de nível padrão, incluindo uma instalação
completa do Anaconda e bibliotecas comumente usadas para Java/Scala, Python e R. Essas bibliotecas são
incluídas automaticamente ao usar notebooks ou trabalhos na plataforma Microsoft Fabric. Consulte a
documentação para obter uma lista completa de bibliotecas. O Microsoft Fabric distribui periodicamente
atualizações de manutenção para o Runtime 1.2, fornecendo correções de bugs, aprimoramentos de
desempenho e patches de segurança. Manter-se atualizado garante o desempenho e a confiabilidade ideais
para suas tarefas de processamento de dados.

Novos recursos e melhorias do Spark versão 3.4.1


O Apache Spark 3.4.0 é a quinta versão da linha 3.x. Esta versão, impulsionada pela comunidade de software
livre, resolveu mais de 2.600 tíquetes Jira. Ela apresenta um cliente Python para Spark Connect, aprimora o
fluxo estruturado com acompanhamento de progresso assíncrono e processamento com estado do Python.
Ela expande a cobertura da API do Pandas com suporte de entrada NumPy, simplifica a migração de data
warehouses tradicionais por meio de conformidade ANSI e apresenta novas funções internas. Ela também
melhora a produtividade e a depuração do desenvolvimento com a criação de perfil de memória. Além disso,
o Runtime 1.2 é baseado no Apache Spark 3.4.1, uma versão de manutenção focada em correções de
estabilidade.

Principais destaques
Implementação de suporte para valores DEFAULT para colunas em tabelas (SPARK-38334 )
Suporte a TIMESTAMP SEM tipo de dados TIMEZONE (SPARK-35662 )
Suporte a "Referências de alias de coluna lateral" (SPARK-27561 )
Proteger o uso do SQLSTATE para classes de erro (SPARK-41994 )
Habilitar junções de filtro Bloom por padrão (SPARK-38841 )
Melhor escalabilidade da interface do usuário do Spark e estabilidade do driver para aplicativos grandes
(SPARK-41053 )
Acompanhamento de progresso assíncrono em streaming estruturado (SPARK-39591 )
Processamento com estado arbitrário no Fluxo Estruturado com o Python (SPARK-40434 )
Melhorias na cobertura da API do Pandas (SPARK-42882 ) e suporte à entrada NumPy no PySpark
(SPARK-39405 )
Fornecer um criador de perfil de memória para funções definidas pelo usuário do PySpark (SPARK-
40281 )
Implementar o Distribuidor PyTorch (SPARK-41589 )
Publicar artefatos de SBOM (lista de materiais de software) (SPARK-41893 )
Implementação de suporte para valores DEFAULT para colunas em tabelas (SPARK-38334 )
Compatível com SQL parametrizado (SPARK-41271 , SPARK-42702 )
Implementação de suporte para valores DEFAULT para colunas em tabelas (SPARK-38334 )
Add Dataset.as(StructType) (SPARK-39625 )
Compatível com SQL parametrizado (SPARK-41271 , SPARK-42702 )
Adicionar transformar colunas em linhas / derretimento (SPARK-38864 , SPARK-39876 )
Suporte a "referências de alias de coluna lateral" (SPARK-27561 )
Compatível com cláusula de deslocamento de resultado (SPARK-28330 , SPARK-39159 )
Compatível com carimbo de data/hora sem tipo de dados de fuso horário (SPARK-35662 )
Compatível com subconsultas escalares em viagens no tempo (SPARK-39306 )
Torne a API do Catálogo compatível com o namespace de 3 camadas (SPARK-39235 )
Compatíevcl com carimbo de data/hora em segundos para TimeTravel usando opções do Dataframe
(SPARK-39633 )
Adicionar SparkSession.config(Map) (SPARK-40163 )
Compatível com alteração do banco de dados padrão do catálogo de sessão (SPARK-35242 )
Compatibilidade do Protobuf para Spark - from_protobuf E to_protobuf (SPARK-40654 )
Adicionar a cláusula WHEN NOT MATCHED BY SOURCE a MERGE INTO (SPARK-40921 )
Relaxar a restrição de ordem para as opções de coluna CREATE TABLE (SPARK-40944 )
Equivalente do SQL para o comando de substituição do Dataframe (SPARK-40956 )
Compatível com Gerar sem necessidade de saída filho para hospedar referências externas (SPARK-
41441 )
ORDER BY ALL (SPARK-41637 )
GROUP BY ALL (SPARK-41635 )
Adicionar flatMapSortedGroups e cogroupSorted (SPARK-38591 )
Compatível com subconsultas com predicados de não igualdade correlacionados (SPARK-36114 )
Compatível com subconsultas com correlação por meio de UNION/INTERSECT/EXCEPT (SPARK-36124 )
A correção do erro OOM não pode ser relatada quando AQE (execução de consulta adaptável) em
(SPARK-42290 )
A correção da lógica de corte não lidou com os caracteres de controle ASCII corretamente (SPARK-
44383 )
Dataframe.joinWith outer-join deve retornar um valor nulo para linha sem correspondência (SPARK-
37829 )
Usar os utils para obter a opção de alocação dinâmica usada no ponto de verificação local (SPARK-
42421 )
Adicionar CapturedException a utils (SPARK-42078 )
Suporte a SELECT DEFAULT com ORDER BY, LIMIT, OFFSET para a relação de origem INSERT (SPARK-
43071 )
Cliente Python para Spark Connect (SPARK-39375 )

Leia a versão completa das notas de versão de uma versão específica do Apache Spark visitando Spark
3.4.0 e Spark 3.4.1 .

Novas otimizações de consulta personalizadas

Suporte de gravações simultâneas no Spark


Encontrar um erro 404 com a mensagem "Falha na operação: o caminho especificado não existe" é um
problema comum ao executar inserções de dados paralelas na mesma tabela usando uma consulta SQL
INSERT INTO. Esse erro pode resultar em perda de dados. Nosso novo recurso, o Algoritmo de Confirmação
de Saída de Arquivo, resolve esse problema, permitindo que os clientes executem a inserção de dados
paralela perfeitamente.

Para acessar esse recurso, habilite o sinalizador de recurso spark.sql.enable.concurrentWrites , que está
habilitado por padrão a partir do Runtime 1.2 (Spark 3.4). Embora esse recurso também esteja disponível em
outras versões do Spark 3, ele não está habilitado por padrão. Esse recurso não dá suporte à execução
paralela de consultas INSERT OVERWRITE em que cada trabalho simultâneo substitui dados em partições
diferentes da mesma tabela dinamicamente. Para essa finalidade, o Spark oferece um recurso alternativo, que
pode ser ativado definindo a configuração spark.sql.sources.partitionOverwriteMode como dinâmica .

Leituras inteligentes, que ignoram arquivos de trabalhos com falha


No sistema de confirmação do Spark atual, quando uma inserção em um trabalho de tabela falha, mas
algumas tarefas são bem-sucedidas, os arquivos gerados pelas tarefas bem-sucedidas coexistem com
arquivos do trabalho com falha. Essa coexistência pode causar confusão para os usuários, pois torna-se
desafiador distinguir entre arquivos pertencentes a trabalhos bem-sucedidos e malsucedidos. Além disso,
quando um trabalho lê de uma tabela enquanto outro está inserindo dados simultaneamente na mesma
tabela, o trabalho de leitura pode acessar dados não confirmados. Se um trabalho de gravação falhar, o
trabalho de leitura poderá processar dados incorretos.

O sinalizador spark.sql.auto.cleanup.enabled controla nosso novo recurso, resolvendo esse problema.


Quando habilitado, o Spark ignora automaticamente a leitura de arquivos que não foram confirmados
quando ele executa spark.read ou seleciona consultas de uma tabela. Os arquivos gravados antes de
habilitar esse recurso continuam a ser lidos normalmente.

Aqui estão as alterações visíveis:

Todos os arquivos agora incluem um identificador tid-{jobID} em seus nomes de arquivo.


Em vez do marcador _success normalmente criado no local de saída após a conclusão bem-sucedida
do trabalho, um novo marcador _committed_{jobID} é gerado. Esse marcador associa IDs de trabalho
bem-sucedidas a nomes de arquivo específicos.
Introduzimos um novo comando SQL que os usuários podem executar periodicamente para gerenciar o
armazenamento e limpar arquivos não confirmados. A sintaxe deste comando é a seguinte:
Para limpar um diretório específico: CLEANUP ('/path/to/dir') [RETAIN number HOURS];
Para limpar uma tabela específica: CLEANUP [db_name.]table_name [RETAIN number HOURS]; Nesta
sintaxe, path/to/dir representa o URI do local em que a limpeza é necessária e number é um valor de
tipo duplo que representa o período de retenção. O período de retenção padrão é definido como
sete dias.
Introduzimos uma nova opção de configuração chamada
spark.sql.deleteUncommittedFilesWhileListing , que é definida como false por padrão. Habilitar essa

opção resulta na exclusão automática de arquivos não confirmados durante as leituras, mas esse cenário
pode atrasar as operações de leitura. É recomendável executar manualmente o comando de limpeza
quando o cluster estiver ocioso em vez de habilitar esse sinalizador.

Guia de migração do Runtime 1.1 para o Runtime 1.2


Ao migrar do Runtime 1.1, alimentado pelo Apache Spark 3.3, para o Runtime 1.2, alimentado pelo Apache
Spark 3.4, examine o guia oficial de migração . Aqui estão os principais destaques:

Núcleo
Desde o Spark 3.4, o driver do Spark é proprietário de PersistentVolumnClaim s e tenta reutilizar se eles
não forem atribuídos a executores dinâmicos. Para restaurar o comportamento antes do Spark 3.4, você
pode definir spark.kubernetes.driver.ownPersistentVolumeClaim como false e
spark.kubernetes.driver.reusePersistentVolumeClaim como false .

Desde o Spark 3.4, o driver do Spark rastreia dados de ordem aleatória quando a alocação dinâmica é
habilitada sem o serviço de ordem aleatória. Para restaurar o comportamento antes do Spark 3.4, você
pode definir spark.dynamicAllocation.shuffleTracking.enabled como false .
Desde o Spark 3.4, o Spark tenta desativar o conjunto de dados distribuído resiliente (RDD) armazenado
em cache e colocar blocos em ordem aleatória se tanto spark.decommission.enabled quanto
spark.storage.decommission.enabled forem verdadeiros. Para restaurar o comportamento antes do

Spark 3.4, você pode definir spark.storage.decommission.rddBlocks.enabled e


spark.storage.decommission.shuffleBlocks.enabled como false .
Desde o Spark 3.4, o Spark usa o repositório RocksDB se spark.history.store.hybridStore.enabled for
verdadeiro. Para restaurar o comportamento antes do Spark 3.4, você pode definir
spark.history.store.hybridStore.diskBackend como LEVELDB .

PySpark

No Spark 3.4, o esquema de uma coluna de matriz é inferido mesclando os esquemas de todos os
elementos na matriz. Para restaurar o comportamento anterior em que o esquema só é inferido do
primeiro elemento, você pode definir
spark.sql.pyspark.legacy.inferArrayTypeFromFirstElement.enabled como true .

No Spark 3.4, ao usar a API do Pandas no Spark Groupby.apply , se o tipo de retorno do parâmetro func
não for especificado e compute.shortcut_limit for definido como 0, o número de linhas de amostragem
será automaticamente definido como 2. Esse ajuste garante que haja sempre pelo menos duas linhas de
amostragem para manter a inferência precisa do esquema.
No Spark 3.4, se a API do Pandas no Spark Index.insert estiver fora dos limites, ele gerará IndexError
com index {} is out of bounds for axis 0 with size {} para seguir o comportamento do Pandas 1.4.
No Spark 3.4, o nome da série é preservado na API do Pandas no Spark Series.mode para se alinhar ao
comportamento do Pandas 1.4.
No Spark 3.4, a API do Pandas no Spark Index.__setitem__ verifica primeiro se o tipo value é o tipo
Column para evitar gerar um aumento inesperado de ValueError em is_list_like como Não é possível
converter a coluna em bool: use "&" para "and", "|" para "or", "~" para "not" ao criar expressões
boolianas DataFrame.
No Spark 3.4, a API do Pandas no Spark astype('category') também atualiza categories.dtype de
acordo com dados originais dtype para seguir o comportamento do Pandas 1.4.
No Spark 3.4, a API do Pandas no Spark dá suporte ao grupo pela indexação posicional em
GroupBy.head e GroupBy.tail para seguir o Pandas 1.4. Os argumentos negativos agora funcionam

corretamente e resultam em intervalos relativos ao final e ao início de cada grupo. Anteriormente, os


argumentos negativos retornavam quadros vazios.
No Spark 3.4, o processo de esquema de inferência do groupby.apply no Pandas no Spark inferirá
primeiro o tipo do Pandas para garantir a precisão do Pandas dtype o máximo possível.
No Spark 3.4, o parâmetro de classificação Series.concat é respeitado para seguir os comportamentos
do Pandas 1.4.
No Spark 3.4, o DataFrame.__setitem__ faz uma cópia e substitui matrizes pré-existentes, que NÃO
serão gravadas em substituição para seguir os comportamentos do Pandas 1.4.
No Spark 3.4, o SparkSession.sql e a API do Pandas no Spark sql receberam o novo parâmetro args ,
que fornece associação de parâmetros nomeados aos literais do SQL.
No Spark 3.4, a API do Pandas no Spark segue para o Pandas 2.0, e algumas APIs foram preteridas ou
removidas no Spark 3.4 de acordo com as mudanças feitas no Pandas 2.0. Confira as [notas de versão do
pandas](https://pandas.pydata.org/docs/dev/whatsnew/ ) para obter mais detalhes.

SQL, conjuntos de dados e dataframe

Desde o Spark 3.4, comandos INSERT INTO com listas de colunas explícitas que compreendem menos
colunas do que a tabela de destino adicionam automaticamente os valores padrão correspondentes
para as colunas restantes (ou NULL para qualquer coluna sem um valor padrão explicitamente
atribuído). No Spark 3.3 ou anterior, esses comandos falhariam, retornando erros informando que o
número de colunas fornecidas não corresponde ao número de colunas na tabela de destino. Desabilitar
spark.sql.defaultColumn.useNullsForMissingDefaultValues restaura o comportamento anterior.

Desde o Spark 3.4, Número ou Número(*) do Teradata é tratado como Decimal(38,18). No Spark 3.3 ou
anterior, Número ou Número(*) do Teradata é tratado como Decimal(38, 0); nesse caso, a parte
fracionária é removida.
Desde o Spark 3.4, banco de dados v1, tabela, exibição permanente e identificador de função incluem
"spark_catalog" como o nome do catálogo se o banco de dados for definido, por exemplo, um
identificador de tabela é: spark_catalog.default.t . Para restaurar o comportamento herdado, defina
spark.sql.legacy.v1IdentifierNoCatalog como true .
Desde o Spark 3.4, quando o modo ANSI SQL(configuração spark.sql.ansi.enabled ) está ativado, o
SPARK SQL sempre retorna o resultado NULL ao obter um valor de mapa com uma chave inexistente.
No Spark 3.3 ou anterior, há um erro.
Desde o Spark 3.4, a CLI do SQL spark-sql não imprime o prefixo Error in query: antes da mensagem
de erro de AnalysisException .
Desde o Spark 3.4, a função split ignora as cadeias de caracteres vazias à direita quando o parâmetro
regex está vazio.

Desde o Spark 3.4, a função to_binary gera um erro para uma entrada malformada str . Use
try_to_binary para tolerar entradas malformadas e retornar NULO.

A cadeia de caracteres válida Base64 deve incluir símbolos do alfabeto base64 (A-Za-z0-9+/),
preenchimento opcional ( = ) e espaços em branco opcionais. Os espaços em branco são ignorados na
conversão, exceto quando são precedidos por símbolos de preenchimento. Se o preenchimento
estiver presente, ele deverá concluir a cadeia de caracteres e seguir as regras descritas no RFC 4648 §
4.
Cadeias de caracteres hexadecimais válidas devem incluir apenas símbolos permitidos (0-9A-Fa-f).
Os valores válidos de fmt são hex , base64 , utf-8 e utf8 , sem diferenciar maiúsculas de minúsculas.
Desde o Spark 3.4, o Spark só gera PartitionsAlreadyExistException quando cria partições, mas
algumas delas já existem. No Spark 3.3 ou anterior, o Spark pode lançar um
PartitionsAlreadyExistException ou PartitionAlreadyExistsException .

Desde o Spark 3.4, o Spark valida a especificação de partição em ALTER PARTITION para seguir o
comportamento de spark.sql.storeAssignmentPolicy , o que pode causar uma exceção se a conversão
de tipo falhar, por exemplo ALTER TABLE .. ADD PARTITION(p='a') , se a coluna p for do tipo int. Para
restaurar o comportamento herdado, defina spark.sql.legacy.skipTypeValidationOnAlterPartition
como true .
Desde o Spark 3.4, os leitores vetoriais são habilitados por padrão para os tipos de dados aninhados
(matriz, mapa e struct). Para restaurar o comportamento herdado, defina
spark.sql.orc.enableNestedColumnVectorizedReader e

spark.sql.parquet.enableNestedColumnVectorizedReader como false .

Desde o Spark 3.4, BinaryType não tem suporte na fonte de dados CSV. No Spark 3.3 ou anterior, os
usuários podem escrever colunas binárias na fonte de dados CSV, mas o conteúdo de saída em arquivos
CSV é Object.toString() , o que não tem sentido; entretanto, se os usuários lerem tabelas CSV com
colunas binárias, o Spark gerará uma exceção Unsupported type: binary .
Desde o Spark 3.4, as junções de filtro bloom são habilitadas por padrão. Para restaurar o
comportamento herdado, defina spark.sql.optimizer.runtime.bloomFilter.enabled como false .

Streaming estruturado

Desde o Spark 3.4, Trigger.Once foi preterido e os usuários são incentivados a migrar de Trigger.Once
para Trigger.AvailableNow . Confira SPARK-39805 para obter mais detalhes.
Desde o Spark 3.4, o valor padrão da configuração para a busca de deslocamento do Kafka
( spark.sql.streaming.kafka.useDeprecatedOffsetFetching ) é alterado de true para false . O padrão não
depende mais do agendamento baseado em grupo de consumidores, o que afeta a ACL necessária. Para
obter mais informações, confira Integração do fluxo estruturado ao Kafka .

Novos recursos e melhorias do Delta Lake 2.4


O Delta Lake é um projeto de software livre que permite a construção de uma arquitetura de lakehouse
com base em data lakes. O Delta Lake fornece transações ACID e tratamento de metadados escalonável,
além de unificar o processamento de dados de streaming e em lote com base nos data lakes existentes.

Especificamente, o Delta Lake oferece:

Transações ACID no Spark: os níveis de isolamento serializáveis asseguram que os leitores nunca
vejam dados inconsistentes.
Tratamento escalonável de metadados: usa o poder de processamento distribuído do Spark para lidar
com todos os metadados de tabelas em escala petabyte com bilhões de arquivos à vontade.
Streaming e unificação em lote : uma tabela no Delta Lake é uma tabela em lotes e uma fonte de
streaming e um coletor. A ingestão de dados de streaming, o provisionamento histórico em lote e as
consultas interativas funcionam imediatamente.
Imposição de esquema: trata automaticamente as variações de esquema para evitar a inserção de
registros inválidos durante a ingestão.
Viagem no tempo : o controle de versão de dados permite reversões, trilhas de auditoria de histórico
completas e experimentos de machine learning reproduzíveis.
Upserts e deletes : dá suporte a operações de mesclagem, atualização e exclusão para habilitar
casos de uso complexos, como a captura de dados de alteração, operações de dimensão de alteração
lenta (SCD), upserts de streaming e assim por diante.

Os principais recursos desta versão são os seguintes


Suporte para Apache Spark 3.4 .
Suporte à gravação de Vetores de exclusão para o comando DELETE . Anteriormente, ao excluir
linhas de uma tabela Delta, qualquer arquivo com pelo menos uma linha correspondente seria reescrito.
Com os vetores de exclusão, essas reescritas custosas podem ser evitadas. Veja O que são vetores de
exclusão? para obter mais detalhes.
Suporte para todas as operações de gravação em tabelas com vetores de exclusão habilitado.
Suporte PURGE para remover vetores de exclusão da versão atual de uma tabela Delta reescrevendo

todos os arquivos de dados com vetores de exclusão. Confira a documentação do para obter mais
detalhes.
Suporte para leitura do feed de dados de alterações para tabelas com vetores de exclusão habilitados.
Suporte REPLACE WHERE a expressões no SQL para substituir dados seletivamente. Anteriormente, as

opções "replaceWhere" só tinham suporte nas APIs do DataFrameWriter.


Cláusulas de suporte WHEN NOT MATCHED BY SOURCE no SQL para o comando Merge.

Suporte à omissão de colunas geradas da lista de colunas para consultas SQL INSERT INTO . O Delta
gera automaticamente os valores para quaisquer colunas geradas não especificadas.
Suporte ao tipo de dados TimestampNTZ adicionado no Spark 3.3. Usar TimestampNTZ requer uma
atualização de protocolo Delta; confira a documentação para obter mais informações.
Permitir a alteração do tipo de coluna de uma coluna char ou varchar para um tipo compatível no
comando ALTER TABLE . O novo comportamento é o mesmo do Apache Spark e permite o upcasting de
char ou varchar para varchar ou string .

Bloquear o uso de overwriteSchema com substituição de partição dinâmica. Esse cenário pode
corromper a tabela, pois nem todos os dados podem ser removidos e o esquema das partições
gravadas recentemente não pode corresponder ao esquema das partições inalteradas.
Retornar um DataFrame vazio para leituras do feed de dados de alteração quando não houver
confirmações dentro do intervalo de carimbo de data/hora fornecido. Anteriormente, um erro seria
gerado.
Corrigir um bug nas leituras do feed de dados de alteração para registros criados durante a hora
ambígua quando ocorre o horário de verão.
Corrigir um bug em que consultar uma tabela Delta externa na raiz de um bucket S3 geraria um erro.
Remover metadados internos vazados do Spark do log Delta para tornar as tabelas afetadas legíveis
novamente.

Leia a versão completa das notas de versão do Delta Lake 2.4 .

Pacotes de nível padrão para bibliotecas Java/Scala


A tabela a seguir lista todos os pacotes de nível padrão para Java/Scala e suas respectivas versões.
GroupId ArtifactId Versão

com.aliyun aliyun-java-sdk-core 4.5.10

com.aliyun aliyun-java-sdk-kms 2.11.0

com.aliyun aliyun-java-sdk-ram 3.1.0

com.aliyun aliyun-sdk-oss 3.13.0

com.amazonaws aws-java-sdk-bundle 1.12.262

com.clearspring.analytics fluxo 2.9.6

com.esotericsoftware kryo-shaded 4.0.2

com.esotericsoftware minlog 1.3.0

com.fasterxml.jackson jackson-annotations 2.14.2

com.fasterxml.jackson jackson-core 2.14.2

com.fasterxml.jackson jackson-core-asl 1.9.13

com.fasterxml.jackson jackson-databind 2.14.2

com.fasterxml.jackson jackson-dataformat-cbor 2.14.2

com.fasterxml.jackson jackson-mapper-asl 1.9.13

com.fasterxml.jackson jackson-module-scala_2.12 2.14.2

com.github.joshelser dropwizard-metrics-hadoop-metrics2-reporter 0.1.2

com.github.luben zstd-jni 1.5.2-5

com.github.vowpalwabbit vw-jni 9.3.0

com.github.wendykierp JTransforms 3.1

com.google.cloud.bigdataoss gcs-connector hadoop3-2.2.11

com.google.code.findbugs jsr305 3.0.0

com.google.code.gson gson 2.2.4

com.google.crypto.tink tink 1.7.0

com.google.flatbuffers flatbuffers-java 1.12.0

com.google.guava guava 14.0.1

com.google.protobuf protobuf-java 2.5.0

com.googlecode.json-simple json-simple 1.1.1

com.jcraft jsch 0.1.54

com.jolbox bonecp 0.8.0.RELEASE

com.linkedin.isolation-forest isolation-forest_3.2.0_2.12 2.0.8

com.microsoft.azure azure-data-lake-store-sdk 2.3.9

com.microsoft.azure azure-eventhubs 3.3.0


GroupId ArtifactId Versão

com.microsoft.azure azure-eventhubs-spark_2.12 2.3.22

com.microsoft.azure azure-keyvault-core 1.0.0

com.microsoft.azure azure-storage 7.0.1

com.microsoft.azure cosmos-analytics-spark-3.4.1-connector_2.12 1.8.10

com.microsoft.azure qpid-proton-j-extensions 1.2.4

com.microsoft.azure synapseml_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-cognitive_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-core_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-deep-learning_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-internal_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-lightgbm_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-opencv_2.12 0.11.2-spark3.4

com.microsoft.azure synapseml-vw_2.12 0.11.2-spark3.4

com.microsoft.azure.kusto kusto-data 3.2.1

com.microsoft.azure.kusto kusto-ingest 3.2.1

com.microsoft.azure.kusto kusto-spark_3.0_2.12 3.1.16

com.microsoft.azure.kusto spark-kusto-synapse-connector_3.1_2.12 1.3.3

com.microsoft.cognitiveservices.speech client-jar-sdk 1.14.0

com.microsoft.sqlserver msslq-jdbc 8.4.1.jre8

com.ning compress-lzf 1.1.2

com.sun.istack istack-commons-runtime 3.0.8

com.tdunning json 1.8

com.thoughtworks.paranamer paranamer 2.8

com.twitter chill-java 0.10.0

com.twitter chill_2.12 0.10.0

com.typesafe config 1.3.4

com.univocity univocity-parsers 2.9.1

com.zaxxer HikariCP 2.5.1

commons-cli commons-cli 1.5.0

commons-codec commons-codec 1.15

commons-collections commons-collections 3.2.2

commons-dbcp commons-dbcp 1.4


GroupId ArtifactId Versão

commons-io commons-io 2.11.0

commons-lang commons-lang 2.6

commons-logging commons-logging 1.1.3

commons-pool commons-pool 1.5.4.jar

dev.ludovic.netlib arpack 3.0.3

dev.ludovic.netlib blas 3.0.3

dev.ludovic.netlib lapack 3.0.3

io.airlift aircompressor 0,21

io.delta delta-core_2.12 2.4.0

io.delta delta-storage 2.4.0

io.dropwizard.metrics metrics-core 4.2.15

io.dropwizard.metrics metrics-graphite 4.2.15

io.dropwizard.metrics metrics-jmx 4.2.15

io.dropwizard.metrics metrics-json 4.2.15

io.dropwizard.metrics metrics-jvm 4.2.15

io.github.resilience4j resilience4j-core 1.7.1

io.github.resilience4j resilience4j-retry 1.7.1

io.netty netty-all 4.1.87.Final

io.netty netty-buffer 4.1.87.Final

io.netty netty-codec 4.1.87.Final

io.netty netty-codec-http2 4.1.87.Final

io.netty netty-codec-http-4 4.1.87.Final

io.netty netty-codec-socks 4.1.87.Final

io.netty netty-common 4.1.87.Final

io.netty netty-handler 4.1.87.Final

io.netty netty-handler-proxy 4.1.87.Final

io.netty netty-resolver 4.1.87.Final

io.netty netty-transport 4.1.87.Final

io.netty netty-transport-classes-epoll 4.1.87.Final

io.netty netty-transport-classes-kqueue 4.1.87.Final

io.netty netty-transport-native-epoll 4.1.87.Final-linux-aarch_64

io.netty netty-transport-native-epoll 4.1.87.Final-linux-x86_64


GroupId ArtifactId Versão

io.netty netty-transport-native-kqueue 4.1.87.Final-osx-aarch_64

io.netty netty-transport-native-kqueue 4.1.87.Final-osx-x86_64

io.netty netty-transport-native-unix-common 4.1.87.Final

io.opentracing opentracing-api 0.33.0

io.opentracing opentracing-noop 0.33.0

io.opentracing opentracing-util 0.33.0

io.spray spray-json_2.12 1.3.5

io.vavr vavr 0.10.4

io.vavr vavr-match 0.10.4

jakarta.annotation jakarta.annotation-api 1.3.5

jakarta.inject jakarta.inject 2.6.1

jakarta.servlet jakarta.servlet-api 4.0.3

jakarta.validation-api 2.0.2

jakarta.ws.rs jakarta.ws.rs-api 2.1.6

jakarta.xml.bind jakarta.xml.bind-api 2.3.2

javax.activation activation 1.1.1

javax.jdo jdo-api 3.0.1

javax.transaction jta 1,1

javax.transaction transaction-api 1,1

javax.xml.bind jaxb-api 2.2.11

javolution javolution 5.5.1

jline jline 2.14.6

joda-time joda-time 2.12.2

mysql mysql-connector-java 8.0.18

net.razorvine pickle 1,3

net.sf.jpam jpam 1,1

net.sf.opencsv opencsv 2.3

net.sf.py4j py4j 0.10.9.7

net.sourceforge.f2j arpack_combined_all 0,1

org.antlr ST4 4.0.4

org.antlr antlr-runtime 3.5.2

org.antlr antlr4-runtime 4.9.3


GroupId ArtifactId Versão

org.apache.arrow arrow-format 11.0.0

org.apache.arrow arrow-memory-core 11.0.0

org.apache.arrow arrow-memory-netty 11.0.0

org.apache.arrow arrow-vector 11.0.0

org.apache.avro avro 1.11.1

org.apache.avro avro-ipc 1.11.1

org.apache.avro avro-mapred 1.11.1

org.apache.commons commons-collections4 4.4

org.apache.commons commons-compress 1.22

org.apache.commons commons-crypto 1.1.0

org.apache.commons commons-lang3 3.12.0

org.apache.commons commons-math3 3.6.1

org.apache.commons commons-pool2 2.11.1

org.apache.commons commons-text 1.10.0

org.apache.curator curator-client 2.13.0

org.apache.curator curator-framework 2.13.0

org.apache.curator curator-recipes 2.13.0

org.apache.derby derby 10.14.2.0

org.apache.hadoop hadoop-aliyun 3.3.4.5.3-105251583

org.apache.hadoop hadoop-annotations 3.3.4.5.3-105251583

org.apache.hadoop hadoop-aws 3.3.4.5.3-105251583

org.apache.hadoop hadoop-azure 3.3.4.5.3-105251583

org.apache.hadoop hadoop-azure-datalake 3.3.4.5.3-105251583

org.apache.hadoop hadoop-client-api 3.3.4.5.3-105251583

org.apache.hadoop hadoop-client-runtime 3.3.4.5.3-105251583

org.apache.hadoop hadoop-cloud-storage 3.3.4.5.3-105251583

org.apache.hadoop hadoop-openstack 3.3.4.5.3-105251583

org.apache.hadoop hadoop-shaded-guava 1.1.1

org.apache.hadoop hadoop-yarn-server-web-proxy 3.3.4.5.3-105251583

org.apache.hive hive-common 2.3.9

org.apache.hive hive-exec 2.3.9

org.apache.hive hive-llap-common 2.3.9


GroupId ArtifactId Versão

org.apache.hive hive-metastore 2.3.9

org.apache.hive hive-serde 2.3.9

org.apache.hive hive-shims-0.23 2.3.9

org.apache.hive hive-shims 2.3.9

org.apache.hive hive-shims-common 2.3.9

org.apache.hive hive-shims-scheduler 2.3.9

org.apache.hive hive-storage-api 2.8.1

org.apache.httpcomponents httpclient 4.5.14

org.apache.httpcomponents httpcore 4.4.16

org.apache.httpcomponents httpmime 4.5.14

org.apache.httpcomponents.client5 httpclient5 5.1.3

org.apache.iceberg delta-iceberg 2.4.0.6

org.apache.ivy ivy 2.5.1

org.apache.kafka kafka-clients 3.3.2

org.apache.logging.log4j log4j-1.2-api 2.19.0

org.apache.logging.log4j log4j-api 2.19.0

org.apache.logging.log4j log4j-core 2.19.0

org.apache.logging.log4j log4j-slf4j-impl 2.19.0

org.apache.orc orc-core 1.8.4

org.apache.orc orc-mapreduce 1.8.4

org.apache.orc orc-shims 1.8.4

org.apache.parquet parquet-column 1.12.3

org.apache.parquet parquet-common 1.12.3

org.apache.parquet parquet-encoding 1.12.3

org.apache.parquet parquet-format-structures 1.12.3

org.apache.parquet parquet-hadoop 1.12.3

org.apache.parquet parquet-jackson 1.12.3

org.apache.qpid proton-j 0.33.8

org.apache.spark spark-avro_2.12 3.4.1.5.3-105251583

org.apache.spark spark-catalyst_2.12 3.4.1.5.3-105251583

org.apache.spark spark-core_2.12 3.4.1.5.3-105251583

org.apache.spark spark-graphx_2.12 3.4.1.5.3-105251583


GroupId ArtifactId Versão

org.apache.spark spark-hadoop-cloud_2.12 3.4.1.5.3-105251583

org.apache.spark spark-hive_2.12 3.4.1.5.3-105251583

org.apache.spark spark-kvstore_2.12 3.4.1.5.3-105251583

org.apache.spark spark-launcher_2.12 3.4.1.5.3-105251583

org.apache.spark spark-mllib_2.12 3.4.1.5.3-105251583

org.apache.spark spark-mllib-local_2.12 3.4.1.5.3-105251583

org.apache.spark spark-network-common_2.12 3.4.1.5.3-105251583

org.apache.spark spark-network-shuffle_2.12 3.4.1.5.3-105251583

org.apache.spark spark-repl_2.12 3.4.1.5.3-105251583

org.apache.spark spark-sketch_2.12 3.4.1.5.3-105251583

org.apache.spark spark-sql_2.12 3.4.1.5.3-105251583

org.apache.spark spark-sql-kafka-0-10_2.12 3.4.1.5.3-105251583

org.apache.spark spark-streaming_2.12 3.4.1.5.3-105251583

org.apache.spark spark-streaming-kafka-0-10-assembly_2.12 3.4.1.5.3-105251583

org.apache.spark spark-tags_2.12 3.4.1.5.3-105251583

org.apache.spark spark-token-provider-kafka-0-10_2.12 3.4.1.5.3-105251583

org.apache.spark spark-unsafe_2.12 3.4.1.5.3-105251583

org.apache.spark spark-yarn_2.12 3.4.1.5.3-105251583

org.apache.thrift libfb303 0.9.3

org.apache.thrift libthrift 0.12.0

org.apache.xbean xbean-asm9-shaded 4,22%

org.apache.yetus audience-annotations 0.5.0

org.apache.zookeeper zookeeper 3.6.3.5.3-105251583

org.apache.zookeeper zookeeper-jute 3.6.3.5.3-105251583

org.apiguardian apiguardian-api 1.1.0

org.codehaus.janino commons-compiler 3.1.9

org.codehaus.janino janino 3.1.9

org.codehaus.jettison jettison 1,1

org.datanucleus datanucleus-api-jdo 4.2.4

org.datanucleus datanucleus-core 4.1.17

org.datanucleus datanucleus-rdbms 4.1.19

org.datanucleusjavax.jdo 3.2.0-m3
GroupId ArtifactId Versão

org.eclipse.jetty jetty-util 9.4.50.v20221201

org.eclipse.jetty jetty-util-ajax 9.4.50.v20221201

org.fusesource.leveldbjni leveldbjni-all 1.8

org.glassfish.hk2 hk2-api 2.6.1

org.glassfish.hk2 hk2-locator 2.6.1

org.glassfish.hk2 hk2-utils 2.6.1

org.glassfish.hk2 osgi-resource-locator 1.0.3

org.glassfish.hk2.external aopalliance-repackaged 2.6.1

org.glassfish.jaxb jaxb-runtime 2.3.2

org.glassfish.jersey.containers jersey-container-servlet 2.36

org.glassfish.jersey.containers jersey-container-servlet-core 2.36

org.glassfish.jersey.core jersey-client 2.36

org.glassfish.jersey.core jersey-common 2.36

org.glassfish.jersey.core jersey-server 2.36

org.glassfish.jersey.inject jersey-hk2 2.36

org.ini4j ini4j 0.5.4

org.javassist javassist 3.25.0-GA

org.javatuples javatuples 1,2

org.jdom jdom2 2.0.6

org.jetbrains annotations 17.0.0

org.jodd jodd-core 3.5.2

org.json json 20210307

org.json4s json4s-ast_2.12 3.7.0-M11

org.json4s json4s-core_2.12 3.7.0-M11

org.json4s json4s-jackson_2.12 3.7.0-M11

org.json4s json4s-scalap_2.12 3.7.0-M11

org.junit.júpiter junit-jupiter 5.5.2

org.junit.júpiter junit-jupiter-api 5.5.2

org.junit.júpiter junit-jupiter-engine 5.5.2

org.junit.júpiter junit-jupiter-params 5.5.2

org.junit.platform junit-platform-commons 1.5.2

org.junit.platform junit-platform-engine 1.5.2


GroupId ArtifactId Versão

org.lz4 lz4-java 1.8.0

org.objenesis objenesis 3.2

org.openpnp opencv 3.2.0-1

org.opentest4j opentest4j 1.2.0

org.postgresql postgresql 42.2.9

org.roaringbitmap RoaringBitmap 0.9.38

org.roaringbitmap shims 0.9.38

org.rocksdb rocksdbjni 7.9.2

org.scala-lang scala-compiler 2.12.17

org.scala-lang scala-library 2.12.17

org.scala-lang scala-reflect 2.12.17

org.scala-lang.modules scala-collection-compat_2.12 2.7.0

org.scala-lang.modules scala-java8-compat_2.12 0.9.0

org.scala-lang.modules scala-parser-combinators_2.12 2.1.1

org.scala-lang.modules scala-xml_2.12 2.1.0

org.scalactic scalactic_2.12 3.2.14

org.scalanlp breeze-macros_2.12 2.1.0

org.scalanlp breeze_2.12 2.1.0

org.slf4j jcl-over-slf4j 2.0.6

org.slf4j jul-to-slf4j 2.0.6

org.slf4j slf4j-api 2.0.6

org.threeten threeten-extra 1.7.1

org.tukaani xz 1.9

org.typelevel algebra_2.12 2.0.1

org.typelevel cats-kernel_2.12 2.1.1

org.typelevel spire_2.12 0.17.0

org.typelevel spire-macros_2.12 0.17.0

org.typelevel spire-platform_2.12 0.17.0

org.typelevel spire-util_2.12 0.17.0

org.wildfly.openssl wildfly-openssl 1.0.7.Final

org.xerial.snappy snappy-java 1.1.10.1

oro oro 2.0.8


GroupId ArtifactId Versão

pl.edu.icm JLargeArrays 1.5

stax stax-api 1.0.1

Pacotes de nível padrão para Python


A tabela a seguir lista todos os pacotes de nível padrão para Python e suas respectivas versões.

Biblioteca Versão Biblioteca Versão Biblioteca Versão

_libgcc_mutex 0,1 jupyter_client 8.5.0 pycosat 0.6.6

_openmp_mutex 4.5 jupyter_core 5.4.0 pycparser 2.21

_py-xgboost-mutex 2,0 jupyter_events 0.8.0 pydantic 1.10.9

absl-py 2.0.0 jupyter_server 2.7.3 pygments 2.16.1

adal 1.2.7 jupyter_server_terminals 0.4.4 pyjwt 2.8.0

adlfs 2023.4.0 jupyterlab_pygments 0.2.2 pynacl 1.5.0

aiohttp 3.8.6 jupyterlab_widgets 3.0.9 pyodbc 4.0.39

aiosignal 1.3.1 keras 2.12.0 pyopenssl 23.2.0

alembic 1.12.0 keras-preprocessing 1.1.2 pyparsing 3.0.9

alsa-lib 1.2.10 keyutils 1.6.1 pyperclip 1.8.2

ansi2html 1.8.0 kiwisolver 1.4.5 pypika 0.48.9

anyio 3.7.1 krb5 1.21.2 pyqt 5.15.9

appdirs 1.4.4 lame 3,100 pyqt5-sip 12.12.2

argon2-cffi 23.1.0 lcms2 2.15 pysocks 1.7.1

argon2-cffi-bindings 21.2.0 ld_impl_linux-64 2,40 python 3.10.12

seta 1.3.0 lerc 4.0.0 python-dateutil 2.8.2

asttokens 2.4.0 liac-arff 2.5.0 python- 2.18.1


fastjsonschema

astunparse 1.6.3 libabseil 20230125.3 python-flatbuffers 23.5.26

async-timeout 4.0.3 libaec 1.1.2 python-graphviz 0.20.1

atk-1.0 2.38.0 libarrow 12.0.1 python-json-logger 2.0.7

attr 2.5.1 libbrotlicommon 1.0.9 python-tzdata 2023.3

attrs 23.1.0 libbrotlidec 1.0.9 python-xxhash 3.4.1

autopage 0.5.2 libbrotlienc 1.0.9 python_abi 3.10

aws-c-auth 0.7.3 libcap 2.69 pythonnet 3.0.1

aws-c-cal 0.6.1 libclang 15.0.7 pytorch 2.0.1


Biblioteca Versão Biblioteca Versão Biblioteca Versão

aws-c-common 0.9.0 libclang13 15.0.7 pytorch-mutex 1.0

aws-c-compression 0.2.17 libcrc32c 1.1.2 pytz 2023.3.post1

aws-c-event-stream 0.3.1 libcups 2.3.3 pyu2f 0.1.5

aws-c-http 0.7.11 libcurl 8.4.0 pywin32-on- 0.1.0


windows

aws-c-io 0.13.32 libdeflate 1,19 pyyaml 6.0.1

aws-c-mqtt 0.9.3 libebm 0.4.3 pyzmq 25.1.1

aws-c-s3 0.3.14 libedit 3.1.20191231 qt-main 5.15.8

aws-c-sdkutils 0.1.12 libev 4.33 rdma-core 28,9

aws-checksums 0.1.17 libevent 2.1.12 re2 2023.03.02

aws-crt-cpp 0.21.0 libexpat 2.5.0 readline 8.2

aws-sdk-cpp 1.10.57 libffi 3.4.2 referencial 0.30.2

azure-core 1.29.4 libflac 1.4.3 regex 2023.8.8

azure-datalake-store 0.0.51 libgcc-ng 13.2.0 solicitações 2.31.0

azure-identity 1.14.1 libgcrypt 1.10.1 requests-oauthlib 1.3.1

azure-storage-blob 12.18.3 libgd 2.3.3 retrying 1.3.3

azure-storage-file-datalake 12.12.0 libgfortran-ng 13.2.0 rfc3339-validator 0.1.4

backcall 0.2.0 libgfortran5 13.2.0 rfc3986-validator 0.1.1

backoff 1.11.1 libglib 2.78.0 rich 13.6.0

backports 1.0 libgoogle-cloud 2.12.0 rpds-py 0.10.6

backports.functools_lru_cache 1.6.5 libgpg-error 1.47 rsa 4.9

bcrypt 4.0.1 libgrpc 1.54.3 ruamel.yaml 0.17.32

beautifulsoup4 4.12.2 libhwloc 2.9.3 ruamel.yaml.clib 0.2.7

blas 1.0 libiconv 1.17 ruamel_yaml 0.15.80

bleach 6.1.0 libjpeg-turbo 2.1.5.1 s2n 1.3.49

blinker 1.6.3 libllvm14 14.0.6 sacremoses 0.0.53

brotli 1.0.9 libllvm15 15.0.7 salib 1.4.7

brotli-bin 1.0.9 libnghttp2 1.52.0 scikit-learn 1.3.0

brotli-python 1.0.9 libnsl 2.0.1 scipy 1.10.1

bzip2 1.0.8 libnuma 2.0.16 seaborn 0.12.2

c-ares 1.20.1 libogg 1.3.4 seaborn-base 0.12.2

ca-certificates 2023.7.22 libopus 1.3.1 send2trash 1.8.2


Biblioteca Versão Biblioteca Versão Biblioteca Versão

cached-property 1.5.2 libpng 1.6.39 sentence- 2.0.0


transformers

cached_property 1.5.2 libpq 15,4 sentry-sdk 1.32.0

cachetools 5.3.2 libprotobuf 3.21.12 seqeval 1.2.2

cairo 1.18.0 libpulsar 3.2.0 setproctitle 1.3.3

catboost 1.1.1 librsvg 2.56.3 setuptools 68.2.2

certifi 2023.7.22 libsndfile 1.2.2 shap 0.42.1

cffi 1.16.0 libsodium 1.0.18 shellingham 1.5.4

charset-normalizer 3.3.1 libsqlite 3.43.2 sip 6.7.12

chroma-hnswlib 0.7.3 libssh2 1.11.0 six 1.16.0

chromadb 0.4.13 libstdcxx-ng 13.2.0 slicer 0.0.7

clique 8.1.7 libsystemd0 254 smmap 5.0.0

cliff 4.2.0 libthrift 0.18.1 snappy 1.1.10

cloudpickle 2.2.1 libtiff 4.6.0 sniffio 1.3.0

clr_loader 0.2.6 libtool 2.4.7 soupsieve 2.5

cmaes 0.10.0 libutf8proc 2.8.0 sqlalchemy 2.0.22

cmd2 2.4.3 libuuid 2.38.1 sqlparse 0.4.4

colorama 0.4.6 libuv 1.46.0 stack_data 0.6.2

coloredlogs 15.0.1 libvorbis 1.3.7 starlette 0.27.0

colorlog 6.7.0 libwebp 1.3.2 statsmodels 0.14.0

comm 0.1.4 libwebp-base 1.3.2 stevedore 5.1.0

conda-package-handling 2.2.0 libxcb 1.15 sympy 1.12

conda-package-streaming 0.9.0 libxgboost 1.7.6 tabulate 0.9.0

configparser 5.3.0 libxkbcommon 1.6.0 tbb 2021.10.0

contourpy 1.1.1 libxml2 2.11.5 tenacity 8.2.3

criptografia 41.0.5 libxslt 1.1.37 tensorboard 2.12.3

cycler 0.12.1 libzlib 1.2.13 tensorboard-data- 0.7.0


server

cython 3.0.4 lightgbm 4.0.0 tensorflow 2.12.1

traço 2.14.0 lime 0.2.0.1 tensorflow-base 2.12.1

dash-core-components 2.0.0 llvm-openmp 17.0.3 tensorflow- 2.12.1


estimator

dash-html-components 2.0.0 llvmlite 0.40.1 termcolor 2.3.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

dash-table 5.0.0 lxml 4.9.3 terminado 0.17.1

dash_cytoscape 0.2.0 lz4-c 1.9.4 threadpoolctl 3.2.0

databricks-cli 0.18.0 mako 1.2.4 tiktoken 0.5.1

dataclasses 0,8 markdown 3.4.4 tinycss2 1.2.1

conjuntos de dados 2.14.6 markdown-it-py 3.0.0 tk 8.6.13

dbus 1.13.6 markupsafe 2.1.3 criadores de token 0.13.3

debugpy 1.8.0 matplotlib 3.7.2 TOML 0.10.2

decorator 5.1.1 matplotlib-base 3.7.2 tomli 2.0.1

defusedxml 0.7.1 matplotlib-inline 0.1.6 toolz 0.12.0

dill 0.3.7 mdurl 0.1.0 tornado 6.3.3

diskcache 5.6.3 mistune 3.0.1 tqdm 4.66.1

distlib 0.3.7 mkl 2021.4.0 traitlets 5.12.0

docker-py 6.1.3 mkl-service 2.4.0 transformers 4.26.0

docker-pycreds 0.4.0 mkl_fft 1.3.1 treeinterpreter 0.2.2

entrypoints 0,4 mkl_random 1.2.2 typed-ast 1.5.5

et_xmlfile 1.1.0 ml_dtypes 0.3.1 typer 0.9.0

exceptiongroup 1.1.3 mlflow-skinny 2.6.0 types-python- 2.8.19.14


dateutil

executando 1.2.0 monotonic 1.5 types-pytz 2023.3.1.1

expat 2.5.0 mpc 1.3.1 typing_extensions 4.5.0

fastapi 0.103.2 mpfr 4.2.1 typing_utils 0.1.0

flaml 2.1.1dev2 mpg123 1.32.3 tzdata 2023c

flask 3.0.0 mpmath 1.3.0 ucx 1.14.1

flatbuffers 23.5.26 msal 1.24.1 unicodedata2 15.1.0

font-ttf-dejavu-sans-mono 2.37 msal-extensions 1.0.0 unixodbc 2.3.12

font-ttf-inconsolata 3.000 multidict 6.0.4 uri-template 1.3.0

font-ttf-source-code-pro 2.038 multiprocess 0.70.15 urllib3 1.26.17

font-ttf-ubuntu 0,83 munkres 1.1.4 uvicorn 0.23.2

fontconfig 2.14.2 mysql-common 8.0.33 virtualenv 20.23.1

fonts-conda-ecosystem 1 mysql-libs 8.0.33 wandb 0.15.12

fonts-conda-forge 1 nbclient 0.8.0 wcwidth 0.2.8

fonttools 4.43.1 nbconvert-core 7.9.2 webcolors 1.13


Biblioteca Versão Biblioteca Versão Biblioteca Versão

fqdn 1.5.1 nbformat 5.9.2 webencodings 0.5.1

freetype 2.12.1 ncurses 6.4 websocket-client 1.6.4

fribidi 1.0.10 nest-asyncio 1.5.8 werkzeug 3.0.1

frozenlist 1.4.0 networkx 3.2 wheel 0.41.2

fsspec 2023.10.0 nltk 3.8.1 widgetsnbextension 4.0.9

gast 0.4.0 nspr 4.35 wrapt 1.15.0

gdk-pixbuf 2.42.10 nss 3,94 xcb-util 0.4.0

geographiclib 1,52 numba 0.57.1 xcb-util-image 0.4.0

geopy 2.3.0 numpy 1.24.3 xcb-util-keysyms 0.4.0

gettext 0.21.1 numpy-base 1.24.3 xcb-util-renderutil 0.3.9

gevent 23.9.0.post1 oauthlib 3.2.2 xcb-util-wm 0.4.1

gflags 2.2.2 onnxruntime 1.16.1 xgboost 1.7.6

giflib 5.2.1 openai 0.27.8 xkeyboard-config 2,40

gitdb 4.0.11 openjpeg 2.5.0 xorg-kbproto 1.0.7

gitpython 3.1.40 openpyxl 3.1.2 xorg-libice 1.1.1

glib 2.78.0 openssl 3.1.4 xorg-libsm 1.2.4

glib-tools 2.78.0 opt-einsum 3.3.0 xorg-libx11 1.8.7

glog 0.6.0 opt_einsum 3.3.0 xorg-libxau 1.0.11

gmp 6.2.1 optuna 2.8.0 xorg-libxdmcp 1.1.3

gmpy2 2.1.2 orc 1.9.0 xorg-libxext 1.3.4

google-auth 2.23.3 substitui 7.4.0 xorg-libxrender 0.9.11

google-auth-oauthlib 1.0.0 empacotando 23,2 xorg-renderproto 0.11.1

google-pasta 0.2.0 pandas 2.0.3 xorg-xextproto 7.3.0

graphite2 1.3.13 pandas-stubs 2.1.1.230928 xorg- 2.3.1


xf86vidmodeproto

Graphviz 8.1.0 pandasql 0.7.3 xorg-xproto 7.0.31

greenlet 3.0.1 pandocfilters 1.5.0 xxhash 0.8.2

grpcio 1.54.3 pango 1.50.14 xz 5.2.6

gst-plugins-base 1.22.6 paramiko 3.3.1 yaml 0.2.5

gstreamer 1.22.6 parso 0.8.3 yarl 1.9.2

gtk2 2.24.33 pathos 0.3.1 zeromq 4.3.5

gts 0.7.6 pathtools 0.1.2 zipp 3.17.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

h11 0.14.0 patsy 0.5.3 zlib 1.2.13

h5py 3.10.0 pbr 5.11.1 zope.event 5,0

harfbuzz 8.2.1 pcre2 10.40 zope.interface 6.1

hdf5 1.14.2 pexpect 4.8.0 zstandard 0.21.0

feriados 0,35 pickleshare 0.7.5 zstd 1.5.5

html5lib 1,1 pillow 10.0.1 astor 0.8.1

huggingface_hub 0.18.0 pip 23.1.2 contextlib2 21.6.0

humanfriendly 10.0 pixman 0.42.2 filelock 3.11.0

icu 73,2 pkgutil-resolve-name 1.3.10 fluent-logger 0.10.0

idna 3.4 platformdirs 3.5.1 gson 0.0.3

imageio 2.31.1 plotly 5.16.1 jaraco-context 4.3.0

importlib-metadata 6.8.0 ply 3.11 joblibspark 0.5.2

importlib_resources 6.1.0 pooch 1.8.0 json-tricks 3.17.3

importlib-metadata 6.8.0 portalocker 2.8.2 jupyter-ui-poll 0.2.2

importlib_resources 6.1.0 posthog 3.0.2 more-itertools 10.1.0

intel-openmp 2021.4.0 pox 0.3.3 msgpack 1.0.7

interpretar 0.4.3 ppft 1.7.6.7 mypy 1.4.1

interpret-core 0.4.3 prettytable 3.8.0 mypy-extensions 1.0.0

ipykernel 6.26.0 prometheus_client 0.17.1 nni 2.10.1

ipython 8.14.0 prompt-toolkit 3.0.39 powerbiclient 3.1.1

ipywidgets 8.0.7 prompt_toolkit 3.0.39 pyspark 3.4.1.5.3.20230713

isodate 0.6.1 protobuf 4.21.12 pythonwebhdfs 0.2.3

isoduration 20.11.0 psutil 5.9.5 responses 0.23.3

itsdangerous 2.1.2 pthread-stubs 0,4 rouge-score 0.1.2

jax 0.4.17 ptyprocess 0.7.0 esquema 0.7.5

jaxlib 0.4.14 pulsar-client 3.3.0 simplejson 3.19.2

jedi 0.19.1 pulseaudio-client 16.1 synapseml-mlflow 1.0.22.post2

jinja2 3.1.2 pure_eval 0.2.2 synapseml-utils 1.0.18.post1

joblib 1.3.2 py-xgboost 1.7.6 typeguard 2.13.3

jsonpointer 2.4 py4j 0.10.9.7 types-pyyaml 6.0.12.12

jsonschema 4.19.1 pyarrow 12.0.1 typing-extensions 4.8.0

jsonschema-specifications 2023.7.1 pyasn1 0.5.0 websockets 12.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

jsonschema-with-format- 4.19.1 pyasn1-modules 0.3.0 wolframalpha 5.0.0


nongpl

xmltodict 0.13.0

Pacotes de nível padrão para R


A tabela a seguir lista todos os pacotes de nível padrão para R e suas respectivas versões.

Biblioteca Versão Biblioteca Versão Biblioteca Versão

_libgcc_mutex 0,1 r-caret 6.0_94 r-praise 1.0.0

_openmp_mutex 4.5 r-cellranger 1.1.0 r-prettyunits 1.2.0

_r-mutex 1.0.1 r-class 7.3_22 r-proc 1.18.4

_r-xgboost-mutex 2,0 r-cli 3.6.1 r-processx 3.8.2

aws-c-auth 0.7.0 r-clipr 0.8.0 r-prodlim 2023.08.28

aws-c-cal 0.6.0 r-clock 0.7.0 r-profvis 0.3.8

aws-c-common 0.8.23 r-codetools 0.2_19 r-progress 1.2.2

aws-c-compression 0.2.17 r-collections 0.3.7 r-progressr 0.14.0

aws-c-event-stream 0.3.1 r-colorspace 2.1_0 r-promises 1.2.1

aws-c-http 0.7.10 r-commonmark 1.9.0 r-proxy 0.4_27

aws-c-io 0.13.27 r-config 0.3.2 r-pryr 0.1.6

aws-c-mqtt 0.8.13 r-conflicted 1.2.0 r-ps 1.7.5

aws-c-s3 0.3.12 r-coro 1.0.3 r-purrr 1.0.2

aws-c-sdkutils 0.1.11 r-cpp11 0.4.6 r-quantmod 0.4.25

aws-checksums 0.1.16 r-crayon 1.5.2 r-r2d3 0.2.6

aws-crt-cpp 0.20.2 r-credentials 2.0.1 r-r6 2.5.1

aws-sdk-cpp 1.10.57 r-crosstalk 1.2.0 r-r6p 0.3.0

binutils_impl_linux-64 2,40 r-crul 1.4.0 r-ragg 1.2.6

bwidget 1.9.14 r-curl 5.1.0 r-rappdirs 0.3.3

bzip2 1.0.8 r-data.table 1.14.8 r-rbokeh 0.5.2

c-ares 1.20.1 r-dbi 1.1.3 r-rcmdcheck 1.4.0

ca-certificates 2023.7.22 r-dbplyr 2.3.4 r-rcolorbrewer 1.1_3

cairo 1.18.0 r-desc 1.4.2 r-rcpp 1.0.11

cmake 3.27.6 r-devtools 2.4.5 r-reactable 0.4.4

curl 8.4.0 r-diagram 1.6.5 r-reactr 0.5.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

expat 2.5.0 r-dials 1.2.0 r-readr 2.1.4

font-ttf-dejavu-sans-mono 2.37 r-dicedesign 1.9 r-readxl 1.4.3

font-ttf-inconsolata 3.000 r-diffobj 0.3.5 r-recipes 1.0.8

font-ttf-source-code-pro 2.038 r-digest 0.6.33 r-rematch 2.0.0

font-ttf-ubuntu 0,83 r-downlit 0.4.3 r-rematch2 2.1.2

fontconfig 2.14.2 r-dplyr 1.1.3 r-remotes 2.4.2.1

fonts-conda-ecosystem 1 r-dtplyr 1.3.1 r-reprex 2.0.2

fonts-conda-forge 1 r-e1071 1.7_13 r-reshape2 1.4.4

freetype 2.12.1 r-ellipsis 0.3.2 r-rjson 0.2.21

fribidi 1.0.10 r-evaluate 0,23 r-rlang 1.1.1

gcc_impl_linux-64 13.2.0 r-fansi 1.0.5 r-rlist 0.4.6.2

gettext 0.21.1 r-farver 2.1.1 r-rmarkdown 2.22

gflags 2.2.2 r-fastmap 1.1.1 r-rodbc 1.3_20

gfortran_impl_linux-64 13.2.0 r-fontawesome 0.5.2 r-roxygen2 7.2.3

glog 0.6.0 r-forcats 1.0.0 r-rpart 4.1.21

glpk 5,0 r-foreach 1.5.2 r-rprojroot 2.0.3

gmp 6.2.1 r-forge 0.2.0 r-rsample 1.2.0

graphite2 1.3.13 r-fs 1.6.3 r-rstudioapi 0.15.0

gsl 2.7 r-furrr 0.3.1 r-rversions 2.1.2

gxx_impl_linux-64 13.2.0 r-future 1.33.0 r-rvest 1.0.3

harfbuzz 8.2.1 r-future.apply 1.11.0 r-sass 0.4.7

icu 73,2 r-gargle 1.5.2 r-scales 1.2.1

kernel-headers_linux-64 2.6.32 r-generics 0.1.3 r-selectr 0.4_2

keyutils 1.6.1 r-gert 2.0.0 r-sessioninfo 1.2.2

krb5 1.21.2 r-ggplot2 3.4.2 r-shape 1.4.6

ld_impl_linux-64 2,40 r-gh 1.4.0 r-shiny 1.7.5.1

lerc 4.0.0 r-gistr 0.9.0 r-slider 0.3.1

libabseil 20230125.3 r-gitcreds 0.1.2 r-sourcetools 0.1.7_1

libarrow 12.0.0 r-globals 0.16.2 r-sparklyr 1.8.2

libblas 3.9.0 r-glue 1.6.2 r-squarem 2021.1

libbrotlicommon 1.0.9 r-googledrive 2.1.1 r-stringi 1.7.12

libbrotlidec 1.0.9 r-googlesheets4 1.1.1 r-stringr 1.5.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

libbrotlienc 1.0.9 r-gower 1.0.1 r-survival 3.5_7

libcblas 3.9.0 r-gpfit 1.0_8 r-sys 3.4.2

libcrc32c 1.1.2 r-gt 0.9.0 r-systemfonts 1.0.5

libcurl 8.4.0 r-gtable 0.3.4 r-testthat 3.2.0

libdeflate 1,19 r-gtsummary 1.7.2 r-textshaping 0.3.7

libedit 3.1.20191231 r-hardhat 1.3.0 r-tibble 3.2.1

libev 4.33 r-haven 2.5.3 r-tidymodels 1.1.0

libevent 2.1.12 r-hexbin 1.28.3 r-tidyr 1.3.0

libexpat 2.5.0 r-highcharter 0.9.4 r-tidyselect 1.2.0

libffi 3.4.2 r-highr 0,10 r-tidyverse 2.0.0

libgcc-devel_linux-64 13.2.0 r-hms 1.1.3 r-timechange 0.2.0

libgcc-ng 13.2.0 r-htmltools 0.5.6.1 r-timedate 4022.108

libgfortran-ng 13.2.0 r-htmlwidgets 1.6.2 r-tinytex 0.48

libgfortran5 13.2.0 r-httpcode 0.3.0 r-torch 0.11.0

libgit2 1.7.1 r-httpuv 1.6.12 r-triebeard 0.4.1

libglib 2.78.0 r-httr 1.4.7 r-ttr 0.24.3

libgomp 13.2.0 r-httr2 0.2.3 r-tune 1.1.2

libgoogle-cloud 2.12.0 r-ids 1.0.1 r-tzdb 0.4.0

libgrpc 1.55.1 r-igraph 1.5.1 r-urlchecker 1.0.1

libiconv 1.17 r-infer 1.0.5 r-urltools 1.7.3

libjpeg-turbo 3.0.0 r-ini 0.3.1 r-usethis 2.2.2

liblapack 3.9.0 r-ipred 0.9_14 r-utf8 1.2.4

libnghttp2 1.55.1 r-isoband 0.2.7 r-uuid 1.1_1

libnuma 2.0.16 r-iterators 1.0.14 r-v8 4.4.0

libopenblas 0.3.24 r-jose 1.2.0 r-vctrs 0.6.4

libpng 1.6.39 r-jquerylib 0.1.4 r-viridislite 0.4.2

libprotobuf 4.23.2 r-jsonlite 1.8.7 r-vroom 1.6.4

libsanitizer 13.2.0 r-juicyjuice 0.1.0 r-waldo 0.5.1

libssh2 1.11.0 r-kernsmooth 2.23_22 r-warp 0.2.0

libstdcxx-devel_linux-64 13.2.0 r-knitr 1,45 r-whisker 0.4.1

libstdcxx-ng 13.2.0 r-labeling 0.4.3 r-withr 2.5.2

libthrift 0.18.1 r-labelled 2.12.0 r-workflows 1.1.3


Biblioteca Versão Biblioteca Versão Biblioteca Versão

libtiff 4.6.0 r-later 1.3.1 r-workflowsets 1.0.1

libutf8proc 2.8.0 r-lattice 0.22_5 r-xfun 0,41

libuuid 2.38.1 r-lava 1.7.2.1 r-xgboost 1.7.4

libuv 1.46.0 r-lazyeval 0.2.2 r-xml 3.99_0.14

libv8 8.9.83 r-lhs 1.1.6 r-xml2 1.3.5

libwebp-base 1.3.2 r-lifecycle 1.0.3 r-xopen 1.0.0

libxcb 1.15 r-lightgbm 3.3.5 r-xtable 1.8_4

libxgboost 1.7.4 r-listenv 0.9.0 r-xts 0.13.1

libxml2 2.11.5 r-lobstr 1.1.2 r-yaml 2.3.7

libzlib 1.2.13 r-lubridate 1.9.3 r-yardstick 1.2.0

lz4-c 1.9.4 r-magrittr 2.0.3 r-zip 2.3.0

make 4.3 r-maps 3.4.1 r-zoo 1.8_12

ncurses 6.4 r-markdown 1.11 rdma-core 28,9

openssl 3.1.4 r-mass 7.3_60 re2 2023.03.02

orc 1.8.4 r-matrix 1.6_1.1 readline 8.2

pandoc 2.19.2 r-memoise 2.0.1 rhash 1.4.4

pango 1.50.14 r-mgcv 1.9_0 s2n 1.3.46

pcre2 10.40 r-mime 0,12 sed 4.8

pixman 0.42.2 r-miniui 0.1.1.1 snappy 1.1.10

pthread-stubs 0,4 r-modeldata 1.2.0 sysroot_linux-64 2.12

r-arrow 12.0.0 r-modelenv 0.1.1 tk 8.6.13

r-askpass 1.2.0 r-modelmetrics 1.2.2.2 tktable 2,10

r-assertthat 0.2.1 r-modelr 0.1.11 ucx 1.14.1

r-backports 1.4.1 r-munsell 0.5.0 unixodbc 2.3.12

r-base 4.2.3 r-nlme 3.1_163 xorg-kbproto 1.0.7

r-base64enc 0.1_3 r-nnet 7.3_19 xorg-libice 1.1.1

r-bigd 0.2.0 r-numderiv 2016.8_1.1 xorg-libsm 1.2.4

r-bit 4.0.5 r-openssl 2.1.1 xorg-libx11 1.8.7

r-bit64 4.0.5 r-parallelly 1.36.0 xorg-libxau 1.0.11

r-bitops 1.0_7 r-parsnip 1.1.1 xorg-libxdmcp 1.1.3

r-blob 1.2.4 r-patchwork 1.1.3 xorg-libxext 1.3.4

r-brew 1.0_8 r-pillar 1.9.0 xorg-libxrender 0.9.11


Biblioteca Versão Biblioteca Versão Biblioteca Versão

r-brio 1.1.3 r-pkgbuild 1.4.2 xorg-libxt 1.3.0

r-broom 1.0.5 r-pkgconfig 2.0.3 xorg-renderproto 0.11.1

r-broom.helpers 1.14.0 r-pkgdown 2.0.7 xorg-xextproto 7.3.0

r-bslib 0.5.1 r-pkgload 1.3.3 xorg-xproto 7.0.31

r-cachem 1.0.8 r-plotly 4.10.2 xz 5.2.6

r-callr 3.7.3 r-plyr 1.8.9 zlib 1.2.13

zstd 1.5.5

Próximas etapas
Leia sobre os Runtimes do Apache Spark no Fabric – visão geral, controle de versão, suporte a vários
runtimes e atualização do protocolo Delta Lake

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Runtime 1.1
Artigo • 15/11/2023

O Microsoft Fabric Runtime é uma plataforma integrada ao Azure baseada no Apache Spark que
permite a execução e o gerenciamento de experiências de Engenharia de Dados e Ciência de Dados
no Fabric. Este documento aborda os componentes e versões do Fabric Runtime 1.1.

O Microsoft Fabric Runtime 1.1 é um dos runtimes oferecidos na plataforma Microsoft Fabric. Os
principais componentes do Runtime 1.1 são:

Apache Spark 3.3


Atualização do Sistema Operacional: Ubuntu 18.04
Java: 1.8.0_282
Scala: 2.12.15
Python: 3.10
Delta Lake: 2.2
R: 4.2.2

O Microsoft Fabric Runtime 1.1 vem com uma coleção de pacotes de nível padrão, incluindo uma
instalação completa do Anaconda e bibliotecas comumente usadas para Java/Scala, Python e R.
Essas bibliotecas são incluídas automaticamente ao usar notebooks ou trabalhos na plataforma do
Microsoft Fabric. Consulte a documentação para obter uma lista completa de bibliotecas.

O Microsoft Fabric lança periodicamente atualizações de manutenção para o Runtime 1.1,


fornecendo correções de bugs, aprimoramentos de desempenho e patches de segurança. Manter-se
atualizado com essas atualizações garante desempenho e confiabilidade ideais para suas tarefas de
processamento de dados. Se você estiver usando o Runtime 1.1 no momento, poderá atualizar para
o Runtime 1.2 navegando até Configurações > de Workspace Data Engineering/Science > Spark
Settings.

Novos recursos e melhorias – Apache Spark 3.3.1


O resumo ampliado a seguir descreve os principais novos recursos relacionados ao Apache Spark
versão 3.3.0 e 3.3.1:

Filtragem em nível de linha: melhore o desempenho das junções pré-filtrando um lado, desde
que não haja nenhum impacto de substituição ou regressão usando um filtro Bloom e um
predicado IN gerados a partir dos valores do outro lado da junção. (SPARK-32268 )
Melhorar a compatibilidade do Spark com o padrão do SQL: melhorias do ANSI. (SPARK-
38860 )

Melhorias nas mensagens de erro para identificar problemas mais rapidamente e executar as
etapas necessárias para resolvê-lo. (SPARK-38781 )

Suporte a tipos complexos para leitor vetorizado Parquet. Anteriormente, o leitor vetorizado
Parquet não suportava tipos de coluna aninhados, como struct, matriz e mapa. O Apache Spark
3.3 contém uma implementação de leitor vetorizado de coluna aninhada para FB-ORC em
nosso fork interno do Spark. Ela afeta a melhoria de desempenho em comparação com o leitor
não vetorizado ao ler colunas aninhadas. Além disso, essa implementação também pode ajudar
a melhorar o desempenho de coluna não aninhada ao ler colunas não aninhadas e aninhadas
em uma consulta. (SPARK-34863 )

Permite que os usuários consultem os metadados dos arquivos de entrada para todos os
formatos de arquivo, exponha-os como colunas ocultas internas, o que significa que os
usuários só podem vê-los quando os referenciam explicitamente. (por exemplo, caminho do
arquivo e nome do arquivo.) (SPARK-37273 )

Fornecimento de um criador de perfil para UDFs do Python/Pandas. (SPARK-37443 )

Anteriormente, transmitimos consultas com Trigger, que estava carregando todos os dados
disponíveis em um único lote. Por isso, a quantidade de dados que as consultas poderiam
processar era limitada ou o driver Spark estaria sem memória. Agora, utilizamos o
Trigger.AvailableNow para executar consultas como Trigger uma vez em vários lotes. (SPARK-
36533 )

Recursos de push down do DS V2 mais abrangentes. (SPARK-38788 )

Executor no ambiente Rolling in Kubernetes. (SPARK-37810 )

Suporte a agendadores Kubernetes Personalizados. ( SPARK-36057 )

Migração de log4j 1 para log4j 2 (SPARK-37814):

Desempenho: o Log4j 2 é mais rápido que o Log4j 1. O Log4j 2 usa o registro em log
assíncrono por padrão, o que pode melhorar significativamente o desempenho.

Flexibilidade: o Log4j 2 fornece mais flexibilidade em termos de configuração. Ele dá suporte


a vários formatos de configuração, incluindo XML, JSON e YAML.

Extensibilidade: o Log4j 2 foi projetado para ser extensível. Ele permite que os
desenvolvedores criem plug-ins personalizados e anexadores para estender a
funcionalidade da estrutura de registro em log.

Segurança: o Log4j 2 fornece melhores recursos de segurança do que o Log4j 1. Ele dá


suporte a camadas de criptografia e soquete seguro para comunicação segura entre
aplicativos.

Simplicidade: o Log4j 2 é mais simples de usar do que o Log4j 1. Ele tem uma API mais
intuitiva e um processo de configuração mais simples.
Introduzir o shuffle no SinglePartition para melhorar o paralelismo e corrigir a regressão de
desempenho para junções no Spark 3.3 vs Spark 3.2. (SPARK-40703 )

Otimizar a regra TransposeWindow para estender casos aplicáveis e otimizar a complexidade


do tempo. (SPARK-38034 )

Para ter uma paridade na execução do TimeTravel por meio da opção SQL e Dataframe, dê
suporte ao timestamp em segundos para o TimeTravel usando as opções do Dataframe.
(SPARK-39633] )

Otimize a Classificação global para RepartitionByExpression para salvar uma classificação


local. (SPARK-39911 )

Verifique se o particionamento de saída é especificado pelo usuário no AQE. (SPARK-39915 )

Atualize a verificação de coluna do Parquet V2 para campos aninhados. (SPARK-39951 )

Leitura em um arquivo parquet particionado no disco por uma coluna do tipo 'Byte'. (SPARK-
40212 )

Corrigir a remoção de coluna no CSV quando _corrupt_record estiver selecionado. (SPARK-


40468 )

Novos recursos e melhorias – Delta Lake 2.2


Os principais recursos dessa versão são os seguintes:

LIMIT pushdown para a verificação Delta. Melhore o desempenho das consultas que contêm
cláusulas LIMIT , empurrando para baixo a verificação delta LIMIT durante o planejamento da
consulta. A verificação delta usa o LIMIT e as contagens de linhas no nível do arquivo para
reduzir o número de arquivos verificados, o que ajuda as consultas a ler um número muito
menor de arquivos e pode tornar as consultas LIMIT de 10 a 100 vezes mais rápidas,
dependendo do tamanho da tabela.

Pushdown de agregação na verificação Delta para SELECT COUNT(*). Consultas de


agregação, como em tabelas Delta SELECT COUNT(*) , são atendidas usando contagens de linhas
no nível do arquivo em metadados de tabela Delta em vez de contar linhas nos arquivos de
dados subjacentes. Isso reduz significativamente o tempo de consulta, pois a consulta só
precisa ler os metadados da tabela e pode tornar as consultas de contagem de tabelas
completas de 10 a 100 vezes mais rápidas.

Suporte para coletar estatísticas de nível de arquivo como parte do comando CONVERT TO
DELTA. Essas estatísticas potencialmente ajudam a acelerar as consultas na tabela Delta. Por
padrão, as estatísticas são coletadas agora como parte do comando CONVERTER PARA DELTA.
Para desabilitar a coleta de estatísticas, especifique a cláusula NO STATISTICS no comando .
Exemplo: CONVERT TO DELTA table_name NO STATISTICS .

Melhore o desempenho do comando DELETE removendo as colunas para ler ao pesquisar


arquivos para reescrever.
Correção de um bug na configuração do modo multi cluster S3 baseado em DynamoDB. A
versão anterior escreveu um carimbo de data/hora incorreto, que foi usado pelo recurso TTL do
DynamoDB para limpar itens expirados. Esse valor de carimbo de data/hora foi corrigido e o
atributo de tabela renomeado de commitTime para expireTime . Se você já tiver o TTL habilitado,
siga as etapas de migração para Delta Lake 1.2.1, 2.0.0 ou 2.1.0 para Delta Lake 2.0.1, 2.1.1 ou
superior .

Corrija o comportamento não determinístico durante MERGE ao trabalhar com fontes não
determinísticas.

Remova as restrições para usar tabelas Delta com mapeamento de coluna em determinados
casos de Streaming + CDF. Anteriormente, costumávamos bloquear Streaming+CDF se a tabela
Delta tivesse o mapeamento de coluna habilitado, mesmo que não contenha nenhuma coluna
RENAME ou DROP.

Melhore o monitoramento das consultas de construção de estado Delta (outras consultas são
executadas como parte do planejamento) tornando-as visíveis na interface do usuário do Spark.

Suporte para várias chamadas where() na API Optimize scala/python.

Suporte para passar configurações do Hadoop por meio da API DeltaTable.

Dê suporte a nomes de coluna de partição começando com . ou _ no comando CONVERT


TO DELTA.

Melhorias nas métricas no histórico de tabelas:

Corrigir uma métrica no comando MERGE.

Métrica de tipo de origem para CONVERTER PARA DELTA.

Métricas para EXCLUIR em partições.

Mais estatísticas de vácuo.

Correção para downgrades de protocolo acidentais com o comando RESTORE . Até agora,
o RESTORE TABLE podia fazer downgrade da versão do protocolo da tabela, o que poderia ter
resultado em leituras inconsistentes com viagem no tempo. Com essa correção, a versão do
protocolo nunca é rebaixada da atual.

Corrija um bug em MERGE INTO quando houver várias cláusulas UPDATE e um dos UPDATEs
estiver com uma evolução de esquema.

Correção de um bug em que, às vezes, o objeto ativo SparkSession não era encontrado ao
usar APIs Delta.

Corrija um problema em que o esquema de partição não pôde ser definido durante a
confirmação inicial.

Capturar exceções quando o arquivo falha ao gravar last_checkpoint .


Corrija um problema ao reiniciar uma consulta de streaming com o gatilho AvailableNow em
uma tabela Delta.

Correção de um problema com CDF e Streaming em que o deslocamento não era atualizado
corretamente quando não havia alterações de dados.

Verifique a origem e as notas de versão completas no GitHub em delta-io/delta .

Pacotes de nível padrão para Java/Scala


A tabela a seguir lista todos os pacotes de nível padrão para Java/Scala e suas respectivas versões.

GroupId ArtifactId Versão

com.aliyun aliyun-java-sdk-core 4.5.10

com.aliyun aliyun-java-sdk-kms 2.11.0

com.aliyun aliyun-java-sdk-ram 3.1.0

com.aliyun aliyun-sdk-oss 3.13.0

com.amazonaws aws-java-sdk-bundle 1.11.1026

com.chuusai shapeless_2.12 2.3.7

com.esotericsoftware kryo-shaded 4.0.2

com.esotericsoftware minlog 1.3.0

com.fasterxml.jackson jackson-annotations-2.13.4.jar

com.fasterxml.jackson jackson-core 2.13.4

com.fasterxml.jackson jackson-core-asl 1.9.13

com.fasterxml.jackson jackson-databind 2.13.4.1

com.fasterxml.jackson jackson-dataformat-cbor 2.13.4

com.fasterxml.jackson jackson-mapper-asl 1.9.13

com.fasterxml.jackson jackson-module-scala_2.12 2.13.4

com.github.joshelser dropwizard-metrics-hadoop-metrics2- 0.1.2


reporter

com.github.wendykierp JTransforms 3.1

com.google.code.findbugs jsr305 3.0.0

com.google.code.gson gson 2.8.6

com.google.flatbuffers flatbuffers-java 1.12.0

com.google.guava guava 14.0.1


GroupId ArtifactId Versão

com.google.protobuf protobuf-java 2.5.0

com.googlecode.json-simple json-simple 1.1.1

com.jcraft jsch 0.1.54

com.jolbox bonecp 0.8.0.RELEASE

com.linkedin.isolation-forest isolation-forest_3.2.0_2.12 2.0.8

com.ning compress-lzf 1,1

com.qcloud cos_api-bundle 5.6.19

com.sun.istack istack-commons-runtime 3.0.8

com.tdunning json 1.8

com.thoughtworks.paranamer paranamer 2.8

com.twitter chill-java 0.10.0

com.twitter chill_2.12 0.10.0

com.typesafe config 1.3.4

com.zaxxer HikariCP 2.5.1

commons-cli commons-cli 1.5.0

commons-codec commons-codec 1.15

commons-collections commons-collections 3.2.2

commons-dbcp commons-dbcp 1.4

commons-io commons-io 2.11.0

commons-lang commons-lang 2.6

commons-logging commons-logging 1.1.3

commons-pool commons-pool 1.5.4.jar

dev.ludovic.netlib arpack 2.2.1

dev.ludovic.netlib blas 2.2.1

dev.ludovic.netlib lapack 2.2.1

io.airlift aircompressor 0,21

io.dropwizard.metrics metrics-core 4.2.7

io.dropwizard.metrics metrics-graphite 4.2.7

io.dropwizard.metrics metrics-jmx 4.2.7

io.dropwizard.metrics metrics-json 4.2.7


GroupId ArtifactId Versão

io.dropwizard.metrics metrics-jvm 4.2.7

io.netty netty-all 4.1.74.Final

io.netty netty-buffer 4.1.74.Final

io.netty netty-codec 4.1.74.Final

io.netty netty-common 4.1.74.Final

io.netty netty-handler 4.1.74.Final

io.netty netty-resolver 4.1.74.Final

io.netty netty-tcnative-classes 2.0.48.Final

io.netty netty-transport 4.1.74.Final

io.netty netty-transport-classes-epoll 4.1.74.Final

io.netty netty-transport-classes-kqueue 4.1.74.Final

io.netty netty-transport-native-epoll 4.1.74.Final-linux-


aarch_64

io.netty netty-transport-native-epoll 4.1.74.Final-linux-x86_64

io.netty netty-transport-native-kqueue 4.1.74.Final-osx-aarch_64

io.netty netty-transport-native-kqueue 4.1.74.Final-osx-x86_64

io.netty netty-transport-native-unix-common 4.1.74.Final

io.opentracing opentracing-api 0.33.0

io.opentracing opentracing-noop 0.33.0

io.opentracing opentracing-util 0.33.0

jakarta.annotation jakarta.annotation-api 1.3.5

jakarta.inject jakarta.inject 2.6.1

jakarta.servlet jakarta.servlet-api 4.0.3

jakarta.validation-api 2.0.2

jakarta.ws.rs jakarta.ws.rs-api 2.1.6

jakarta.xml.bind jakarta.xml.bind-api 2.3.2

javax.activation activation 1.1.1

javax.jdo jdo-api 3.0.1

javax.transaction jta 1,1

javax.xml.bind jaxb-api 2.2.11


GroupId ArtifactId Versão

javolution javolution 5.5.1

jline jline 2.14.6

joda-time joda-time 2.10.13

net.razorvine pickle 1,2

net.sf.jpam jpam 1,1

net.sf.opencsv opencsv 2.3

net.sf.py4j py4j 0.10.9.5

net.sourceforge.f2j arpack_combined_all 0,1

org.antlr ST4 4.0.4

org.antlr antlr-runtime 3.5.2

org.antlr antlr4-runtime 4.8

org.apache.arrow arrow-format 7.0.0

org.apache.arrow arrow-memory-core 7.0.0

org.apache.arrow arrow-memory-netty 7.0.0

org.apache.arrow arrow-vector 7.0.0

org.apache.avro avro 1.11.0

org.apache.avro avro-ipc 1.11.0

org.apache.avro avro-mapred 1.11.0

org.apache.commons commons-collections4 4.4

org.apache.commons commons-compress 1.21

org.apache.commons commons-crypto 1.1.0

org.apache.commons commons-lang3 3.12.0

org.apache.commons commons-math3 3.6.1

org.apache.commons commons-pool2 2.11.1

org.apache.commons commons-text 1.10.0

org.apache.curator curator-client 2.13.0

org.apache.curator curator-framework 2.13.0

org.apache.curator curator-recipes 2.13.0

org.apache.derby derby 10.14.2.0

org.apache.hadoop hadoop-aliyun $3.3.3.5.2-90111858


GroupId ArtifactId Versão

org.apache.hadoop hadoop-annotations $3.3.3.5.2-90111858

org.apache.hadoop hadoop-aws $3.3.3.5.2-90111858

org.apache.hadoop hadoop-azure $3.3.3.5.2-90111858

org.apache.hadoop hadoop-azure-datalake $3.3.3.5.2-90111858

org.apache.hadoop hadoop-client-api $3.3.3.5.2-90111858

org.apache.hadoop hadoop-client-runtime $3.3.3.5.2-90111858

org.apache.hadoop hadoop-cloud-storage $3.3.3.5.2-90111858

org.apache.hadoop hadoop-cos $3.3.3.5.2-90111858

org.apache.hadoop hadoop-openstack $3.3.3.5.2-90111858

org.apache.hadoop hadoop-shaded-guava 1.1.1

org.apache.hadoop hadoop-yarn-server-web-proxy $3.3.3.5.2-90111858

org.apache.hive hive-beeline 2.3.9

org.apache.hive hive-cli 2.3.9

org.apache.hive hive-common 2.3.9

org.apache.hive hive-exec 2.3.9

org.apache.hive hive-jdbc 2.3.9

org.apache.hive hive-llap-common 2.3.9

org.apache.hive hive-metastore 2.3.9

org.apache.hive hive-serde 2.3.9

org.apache.hive hive-service-rpc 3.1.2

org.apache.hive hive-shims-0.23 2.3.9

org.apache.hive hive-shims 2.3.9

org.apache.hive hive-shims-common 2.3.9

org.apache.hive hive-shims-scheduler 2.3.9

org.apache.hive hive-storage-api 2.7.2

org.apache.hive hive-vector-code-gen 2.3.9

org.apache.httpcomponents httpclient 4.5.13

org.apache.httpcomponents httpcore 4.4.14

org.apache.httpcomponents httpmime 4.5.13

org.apache.httpcomponents.client5 httpclient5 5.1.3


GroupId ArtifactId Versão

org.apache.ivy ivy 2.5.1

org.apache.kafka kafka-clients 2.8.1

org.apache.logging.log4j log4j-1.2-api 2.17.2

org.apache.logging.log4j log4j-api 2.17.2

org.apache.logging.log4j log4j-core 2.17.2

org.apache.logging.log4j log4j-slf4j-impl 2.17.2

org.apache.orc orc-core 1.7.6

org.apache.orc orc-mapreduce 1.7.6

org.apache.orc orc-shims 1.7.6

org.apache.parquet parquet-column 1.12.3

org.apache.parquet parquet-common 1.12.3

org.apache.parquet parquet-encoding 1.12.3

org.apache.parquet parquet-format-structures 1.12.3

org.apache.parquet parquet-hadoop 1.12.3

org.apache.parquet parquet-jackson 1.12.3

org.apache.qpid proton-j 0.33.8

org.apache.thrift libfb303 0.9.3

org.apache.thrift libthrift 0.12.0

org.apache.yetus audience-annotations 0.5.0

org.apiguardian apiguardian-api 1.1.0

org.codehaus.janino commons-compiler 3.0.16

org.codehaus.janino janino 3.0.16

org.codehaus.jettison jettison 1,1

org.datanucleus datanucleus-api-jdo 4.2.4

org.datanucleus datanucleus-core 4.1.17

org.datanucleus datanucleus-rdbms 4.1.19

org.datanucleusjavax.jdo 3.2.0-m3

org.eclipse.jdt core 1.1.2

org.eclipse.jetty jetty-util 9.4.48.v20220622

org.eclipse.jetty jetty-util-ajax 9.4.48.v20220622


GroupId ArtifactId Versão

org.fusesource.leveldbjni leveldbjni-all 1.8

org.glassfish.hk2 hk2-api 2.6.1

org.glassfish.hk2 hk2-locator 2.6.1

org.glassfish.hk2 hk2-utils 2.6.1

org.glassfish.hk2 osgi-resource-locator 1.0.3

org.glassfish.hk2.external aopalliance-repackaged 2.6.1

org.glassfish.jaxb jaxb-runtime 2.3.2

org.glassfish.jersey.containers jersey-container-servlet 2.36

org.glassfish.jersey.containers jersey-container-servlet-core 2.36

org.glassfish.jersey.core jersey-client 2.36

org.glassfish.jersey.core jersey-common 2.36

org.glassfish.jersey.core jersey-server 2.36

org.glassfish.jersey.inject jersey-hk2 2.36

org.ini4j ini4j 0.5.4

org.javassist javassist 3.25.0-GA

org.javatuples javatuples 1,2

org.jdom jdom2 2.0.6

org.jetbrains annotations 17.0.0

org.jodd jodd-core 3.5.2

org.json4s json4s-ast_2.12 3.7.0-M11

org.json4s json4s-core_2.12 3.7.0-M11

org.json4s json4s-jackson_2.12 3.7.0-M11

org.json4s json4s-scalap_2.12 3.7.0-M11

org.junit.júpiter junit-jupiter 5.5.2

org.junit.júpiter junit-jupiter-api 5.5.2

org.junit.júpiter junit-jupiter-engine 5.5.2

org.junit.júpiter junit-jupiter-params 5.5.2

org.junit.platform junit-platform-commons 1.5.2

org.junit.platform junit-platform-engine 1.5.2

org.lz4 lz4-java 1.8.0


GroupId ArtifactId Versão

org.objenesis objenesis 3.2

org.openpnp opencv 3.2.0-1

org.opentest4j opentest4j 1.2.0

org.postgresql postgresql 42.2.9

org.roaringbitmap RoaringBitmap 0.9.25

org.roaringbitmap shims 0.9.25

org.rocksdb rocksdbjni 6.20.3

org.scala-lang scala-compiler 2.12.15

org.scala-lang scala-library 2.12.15

org.scala-lang scala-reflect 2.12.15

org.scala-lang.modules scala-collection-compat_2.12 2.1.1

org.scala-lang.modules scala-java8-compat_2.12 0.9.0

org.scala-lang.modules scala-parser-combinators_2.12 1.1.2

org.scala-lang.modules scala-xml_2.12 1.2.0

org.scalactic scalactic_2.12 3.2.14

org.scalanlp breeze-macros_2.12 1,2

org.scalanlp breeze_2.12 1,2

org.slf4j jcl-over-slf4j 1.7.32

org.slf4j jul-to-slf4j 1.7.32

org.slf4j slf4j-api 1.7.32

org.typelevel algebra_2.12 2.0.1

org.typelevel cats-kernel_2.12 2.1.1

org.typelevel spire-macros_2.12 0.17.0

org.typelevel spire-platform_2.12 0.17.0

org.typelevel spire-util_2.12 0.17.0

org.xerial.snappy snappy-java 1.1.8.4

oro oro 2.0.8

pl.edu.icm JLargeArrays 1.5

Pacotes de nível padrão para Python


A tabela a seguir lista todos os pacotes de nível padrão para Python e suas respectivas versões.

Biblioteca Versão Biblioteca Versão Biblioteca Versão

_libgcc_mutex 0,1 ipykernel 6.22.0 pickleshare 0.7.5

_openmp_mutex 4.5 ipython 8.9.0 pillow 9.4.0

_py-xgboost-mutex 2,0 ipywidgets 8.0.4 pip 23.0.1

absl-py 1.4.0 isodate 0.6.1 pixman 0.40.0

adal 1.2.7 itsdangerous 2.1.2 pkginfo 1.9.6

adlfs 2023.1.0 jack 1.9.22 pkgutil-resolve- 1.3.10


name

aiohttp 3.8.4 jedi 0.18.2 platformdirs 3.2.0

aiosignal 1.3.1 jeepney 0.8.0 plotly 5.13.0

alsa-lib 1.2.8 jinja2 3.1.2 ply 3.11

anyio 3.6.2 jmespath 1.0.1 pooch 1.7.0

argcomplete 2.1.2 joblib 1.2.0 portalocker 2.7.0

argon2-cffi 21.3.0 jpeg 9e pox 0.3.2

argon2-cffi-bindings 21.2.0 jsonpickle 2.2.0 ppft 1.7.6.6

arrow-cpp 11.0.0 jsonschema 4.17.3 prettytable 3.6.0

asttokens 2.2.1 jupyter_client 8.1.0 prometheus_client 0.16.0

astunparse 1.6.3 jupyter_core 5.3.0 prompt-toolkit 3.0.38

async-timeout 4.0.2 jupyter_events 0.6.3 protobuf 4.21.12

atk-1.0 2.38.0 jupyter_server 2.2.1 psutil 5.9.4

attr 2.5.1 jupyter_server_terminals 0.4.4 pthread-stubs 0,4

attrs 22.2.0 jupyterlab_pygments 0.2.2 ptyprocess 0.7.0

aws-c-auth 0.6.24 jupyterlab_widgets 3.0.7 pulseaudio 16.1

aws-c-cal 0.5.20 keras 2.11.0 pulseaudio-client 16.1

aws-c-common 0.8.11 keras-preprocessing 1.1.2 pulseaudio- 16.1


daemon

aws-c-compression 0.2.16 keyutils 1.6.1 pure_eval 0.2.2

aws-c-event-stream 0.2.18 kiwisolver 1.4.4 py-xgboost 1.7.1

aws-c-http 0.7.4 knack 0.10.1 py4j 0.10.9.5

aws-c-io 0.13.17 krb5 1.20.1 pyarrow 11.0.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

aws-c-mqtt 0.8.6 lame 3,100 pyasn1 0.4.8

aws-c-s3 0.2.4 lcms2 2.15 pyasn1-modules 0.2.7

aws-c-sdkutils 0.1.7 ld_impl_linux-64 2,40 pycosat 0.6.4

aws-checksums 0.1.14 lerc 4.0.0 pycparser 2.21

aws-crt-cpp 0.19.7 liac-arff 2.5.0 pygments 2.14.0

aws-sdk-cpp 1.10.57 libabseil 20220623.0 pyjwt 2.6.0

azure-common 1.1.28 libaec 1.0.6 pynacl 1.5.0

azure-core 1.26.4 libarrow 11.0.0 pyodbc 4.0.35

azure-datalake-store 0.0.51 libblas 3.9.0 pyopenssl 23.1.1

azure-graphrbac 0.61.1 libbrotlicommon 1.0.9 pyparsing 3.0.9

azure-identity 1.12.0 libbrotlidec 1.0.9 pyperclip 1.8.2

azure-mgmt-authorization 3.0.0 libbrotlienc 1.0.9 pyqt 5.15.7

azure-mgmt- 10.1.0 libcap 2.67 pyqt5-sip 12.11.0


containerregistry

azure-mgmt-core 1.4.0 libcblas 3.9.0 pyrsistent 0.19.3

azure-mgmt-keyvault 10.2.1 libclang 15.0.7 pysocks 1.7.1

azure-mgmt-resource 21.2.1 libclang13 15.0.7 pyspark 3.3.1

azure-mgmt-storage 20.1.0 libcrc32c 1.1.2 python 3.10.10

azure-storage-blob 12.15.0 libcups 2.3.3 python_abi 3.10

azure-storage-file-datalake 12.9.1 libcurl 7.88.1 python-dateutil 2.8.2

azureml-core 1.49.0 libdb 6.2.32 python- 2.16.3


fastjsonschema

backcall 0.2.0 libdeflate 1.17 python-flatbuffers 23.1.21

backports 1.0 libebm 0.3.1 python-graphviz 0.20.1

backports-tempfile 1.0 libedit 3.1.20191231 python-json-logger 2.0.7

backports-weakref 1.0.post1 libev 4.33 pytorch 1.13.1

backports.functools_lru_cache 1.6.4 libevent 2.1.10 pytz 2022.7.1

bcrypt 3.2.2 libexpat 2.5.0 pyu2f 0.1.5

beautifulsoup4 4.11.2 libffi 3.4.2 pywin32-on- 0.1.0


windows

bleach 6.0.0 libflac 1.4.2 pyyaml 6,0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

blinker 1.6.1 libgcc-ng 12.2.0 pyzmq 25.0.2

brotli 1.0.9 libgcrypt 1.10.1 qt-main 5.15.8

brotli-bin 1.0.9 libgd 2.3.3 re2 2023.02.01

brotli-python 1.0.9 libgfortran-ng 12.2.0 readline 8.2

brotlipy 0.7.0 libgfortran5 12.2.0 regex 2022.10.31

bzip2 1.0.8 libglib 2.74.1 solicitações 2.28.2

c-ares 1.18.1 libgoogle-cloud 2.7.0 requests-oauthlib 1.3.1

ca-certificates 2022.12.7 libgpg-error 1.46 rfc3339-validator 0.1.4

cached_property 1.5.2 libgrpc 1.51.1 rfc3986-validator 0.1.1

cached-property 1.5.2 libhwloc 2.9.0 rsa 4.9

cachetools 5.3.0 libiconv 1.17 ruamel_yaml 0.15.80

cairo 1.16.0 liblapack 3.9.0 ruamel.yaml 0.17.21

certifi 2022.12.7 libllvm11 11.1.0 ruamel.yaml.clib 0.2.7

cffi 1.15.1 libllvm15 15.0.7 s2n 1.3.37

charset-normalizer 2.1.1 libnghttp2 1.52.0 salib 1.4.7

clique 8.1.3 libnsl 2.0.0 scikit-learn 1.2.0

cloudpickle 2.2.1 libogg 1.3.4 scipy 1.10.1

colorama 0.4.6 libopenblas 0.3.21 seaborn 0.12.2

comm 0.1.3 libopus 1.3.1 seaborn-base 0.12.2

conda-package-handling 2.0.2 libpng 1.6.39 secretstorage 3.3.3

conda-package-streaming 0.7.0 libpq 15.2 send2trash 1.8.0

configparser 5.3.0 libprotobuf 3.21.12 setuptools 67.6.1

contextlib2 21.6.0 librsvg 2.54.4 shap 0.41.0

contourpy 1.0.7 libsndfile 1.2.0 sip 6.7.7

criptografia 40.0.1 libsodium 1.0.18 six 1.16.0

cycler 0.11.0 libsqlite 3.40.0 sleef 3.5.1

traço 2.9.2 libssh2 1.10.0 slicer 0.0.7

dash_cytoscape 0.2.0 libstdcxx-ng 12.2.0 smmap 3.0.5

dash-core-components 2.0.0 libsystemd0 253 snappy 1.1.10

dash-html-components 2.0.0 libthrift 0.18.0 sniffio 1.3.0


Biblioteca Versão Biblioteca Versão Biblioteca Versão

dash-table 5.0.0 libtiff 4.5.0 soupsieve 2.3.2.post1

databricks-cli 0.17.6 libtool 2.4.7 sqlalchemy 2.0.9

dbus 1.13.6 libudev1 253 sqlparse 0.4.3

debugpy 1.6.7 libutf8proc 2.8.0 stack_data 0.6.2

decorator 5.1.1 libuuid 2.38.1 statsmodels 0.13.5

defusedxml 0.7.1 libuv 1.44.2 synapseml-mlflow 1.0.14

dill 0.3.6 libvorbis 1.3.7 synapseml-utils 1.0.7

distlib 0.3.6 libwebp 1.2.4 tabulate 0.9.0

docker-py 6.0.0 libwebp-base 1.2.4 tbb 2021.8.0

entrypoints 0,4 libxcb 1.13 tenacity 8.2.2

et_xmlfile 1.1.0 libxgboost 1.7.1 tensorboard 2.11.2

em execução 1.2.0 libxkbcommon 1.5.0 tensorboard-data- 0.6.1


server

expat 2.5.0 libxml2 2.10.3 tensorboard- 1.8.1


plugin-wit

fftw 3.3.10 libxslt 1.1.37 tensorflow 2.11.0

filelock 3.11.0 libzlib 1.2.13 tensorflow-base 2.11.0

flask 2.2.3 lightgbm 3.3.3 tensorflow- 2.11.0


estimator

flask-compress 1.13 lime 0.2.0.1 termcolor 2.2.0

flatbuffers 22.12.06 llvm-openmp 16.0.1 terminado 0.17.1

flit-core 3.8.0 llvmlite 0.39.1 threadpoolctl 3.1.0

fluent-logger 0.10.0 lxml 4.9.2 tinycss2 1.2.1

font-ttf-dejavu-sans-mono 2.37 lz4-c 1.9.4 tk 8.6.12

font-ttf-inconsolata 3.000 markdown 3.4.1 TOML 0.10.2

font-ttf-source-code-pro 2.038 markupsafe 2.1.2 toolz 0.12.0

font-ttf-ubuntu 0,83 matplotlib 3.6.3 tornado 6.2

fontconfig 2.14.2 matplotlib-base 3.6.3 tqdm 4.65.0

fonts-conda-ecosystem 1 matplotlib-inline 0.1.6 traitlets 5.9.0

fonts-conda-forge 1 mistune 2.0.5 treeinterpreter 0.2.2

fonttools 4.39.3 mkl 2022.2.1 typed-ast 1.4.3


Biblioteca Versão Biblioteca Versão Biblioteca Versão

freetype 2.12.1 mlflow-skinny 2.1.1 typing_extensions 4.5.0

fribidi 1.0.10 mpg123 1.31.3 typing-extensions 4.5.0

frozenlist 1.3.3 msal 1.21.0 tzdata 2023c

fsspec 2023.4.0 msal-extensions 1.0.0 unicodedata2 15.0.0

gast 0.4.0 msgpack 1.0.5 unixodbc 2.3.10

gdk-pixbuf 2.42.10 msrest 0.7.1 urllib3 1.26.14

geographiclib 1,52 msrestazure 0.6.4 virtualenv 20.19.0

geopy 2.3.0 multidict 6.0.4 wcwidth 0.2.6

gettext 0.21.1 multiprocess 0.70.14 webencodings 0.5.1

gevent 22.10.2 munkres 1.1.4 websocket-client 1.5.1

gflags 2.2.2 mypy 0.780 werkzeug 2.2.3

giflib 5.2.1 mypy-extensions 0.4.4 wheel 0.40.0

gitdb 4.0.10 mysql-common 8.0.32 widgetsnbextension 4.0.7

gitpython 3.1.31 mysql-libs 8.0.32 wrapt 1.15.0

glib 2.74.1 nbclient 0.7.3 xcb-util 0.4.0

glib-tools 2.74.1 nbconvert-core 7.3.0 xcb-util-image 0.4.0

glog 0.6.0 nbformat 5.8.0 xcb-util-keysyms 0.4.0

google-auth 2.17.2 ncurses 6.3 xcb-util-renderutil 0.3.9

google-auth-oauthlib 0.4.6 ndg-httpsclient 0.5.1 xcb-util-wm 0.4.1

google-pasta 0.2.0 nest-asyncio 1.5.6 xgboost 1.7.1

graphite2 1.3.13 nspr 4.35 xkeyboard-config 2.38

Graphviz 2.50.0 nss 3.89 xorg-kbproto 1.0.7

greenlet 2.0.2 numba 0.56.4 xorg-libice 1.0.10

grpcio 1.51.1 numpy 1.23.5 xorg-libsm 1.2.3

gson 0.0.3 oauthlib 3.2.2 xorg-libx11 1.8.4

gst-plugins-base 1.22.0 openjpeg 2.5.0 xorg-libxau 1.0.9

gstreamer 1.22.0 openpyxl 3.1.0 xorg-libxdmcp 1.1.3

gstreamer-orc 0.4.33 openssl 3.1.0 xorg-libxext 1.3.4

gtk2 2.24.33 opt_einsum 3.3.0 xorg-libxrender 0.9.10

gts 0.7.6 orc 1.8.2 xorg-renderproto 0.11.1


Biblioteca Versão Biblioteca Versão Biblioteca Versão

h5py 3.8.0 empacotando 21.3 xorg-xextproto 7.3.0

harfbuzz 6.0.0 pandas 1.5.3 xorg-xproto 7.0.31

hdf5 1.14.0 pandasql 0.7.3 xz 5.2.6

html5lib 1,1 pandocfilters 1.5.0 yaml 0.2.5

humanfriendly 10.0 pango 1.50.14 yarl 1.8.2

icu 70.1 paramiko 2.12.0 zeromq 4.3.4

idna 3.4 parquet-cpp 1.5.1 zipp 3.15.0

imageio 2.25.0 parso 0.8.3 zlib 1.2.13

importlib-metadata 5.2.0 pathos 0.3.0 zope.event 4.6

importlib_resources 5.12.0 pathspec 0.11.1 zope.interface 6,0

importlib-metadata 5.2.0 patsy 0.5.3 zstandard 0.19.0

interpretar 0.3.1 pcre2 10.40 zstd 1.5.2

interpret-core 0.3.1 pexpect 4.8.0

Pacotes de nível padrão para R


A tabela a seguir lista todos os pacotes de nível padrão para R e suas respectivas versões.

Biblioteca Versão Biblioteca Versão Biblioteca Versão

askpass 1,1 highcharter 0.9.4 readr 2.1.3

assertthat 0.2.1 highr 0,9 readxl 1.4.1

backports 1.4.1 hms 1.1.2 recipes 1.0.3

base64enc 0.1-3 htmltools 0.5.3 rematch 1.0.1

bit 4.0.5 htmlwidgets 1.5.4 rematch2 2.1.2

bit64 4.0.5 httpcode 0.3.0 remotes 2.4.2

blob 1.2.3 httpuv 1.6.6 reprex 2.0.2

brew 1.0-8 httr 1.4.4 reshape2 1.4.4

brio 1.1.3 ids 1.0.1 rjson 0.2.21

broom 1.0.1 igraph 1.3.5 rlang 1.0.6

bslib 0.4.1 infer 1.0.3 rlist 0.4.6.2

cachem 1.0.6 ini 0.3.1 rmarkdown 2.18


Biblioteca Versão Biblioteca Versão Biblioteca Versão

callr 3.7.3 ipred 0.9-13 RODBC 1.3-19

sinal de interpolação 6.0-93 isoband 0.2.6 roxygen2 7.2.2

cellranger 1.1.0 iterators 1.0.14 rprojroot 2.0.3

cli 3.4.1 jquerylib 0.1.4 rsample 1.1.0

clipr 0.8.0 jsonlite 1.8.3 rstudioapi 0,14

clock 0.6.1 knitr 1,41 rversions 2.1.2

colorspace 2.0-3 labeling 0.4.2 rvest 1.0.3

commonmark 1.8.1 later 1.3.0 sass 0.4.4

config 0.3.1 lava 1.7.0 scales 1.2.1

conflicted 1.1.0 lazyeval 0.2.2 selectr 0.4-2

coro 1.0.3 lhs 1.1.5 sessioninfo 1.2.2

cpp11 0.4.3 ciclo de vida 1.0.3 shiny 1.7.3

crayon 1.5.2 lightgbm 3.3.3 controle deslizante 0.3.0

credenciais 1.3.2 listenv 0.8.0 sourcetools 0.1.7

crosstalk 1.2.0 lobstr 1.1.2 sparklyr 1.7.8

crul 1,3 lubridate 1.9.0 SQUAREM 2021.1

curl 4.3.3 magrittr 2.0.3 stringi 1.7.8

data.table 1.14.6 maps 3.4.1 stringr 1.4.1

DBI 1.1.3 memoise 2.0.1 sys 3.4.1

dbplyr 2.2.1 mime 0,12 systemfonts 1.0.4

desc 1.4.2 miniUI 0.1.1.1 testthat 3.1.5

devtools 2.4.5 modeldata 1.0.1 textshaping 0.3.6

dials 1.1.0 modelenv 0.1.0 tibble 3.1.8

DiceDesign 1,9 ModelMetrics 1.2.2.2 tidymodels 1.0.0

diffobj 0.3.5 modelr 0.1.10 tidyr 1.2.1

digest 0.6.30 munsell 0.5.0 tidyselect 1.2.0

downlit 0.4.2 numDeriv 2016.8-1.1 tidyverse 1.3.2

dplyr 1.0.10 openssl 2.0.4 timechange 0.1.1

dtplyr 1.2.2 parallelly 1.32.1 timeDate 4021.106

e1071 1.7-12 parsnip 1.0.3 tinytex 0,42


Biblioteca Versão Biblioteca Versão Biblioteca Versão

ellipsis 0.3.2 patchwork 1.1.2 torch 0.9.0

evaluate 0,18 pillar 1.8.1 triebeard 0.3.0

fansi 1.0.3 pkgbuild 1.4.0 TTR 0.24.3

farver 2.1.1 pkgconfig 2.0.3 tune 1.0.1

fastmap 1.1.0 pkgdown 2.0.6 tzdb 0.3.0

fontawesome 0.4.0 pkgload 1.3.2 urlchecker 1.0.1

forcats 0.5.2 plotly 4.10.1 urltools 1.7.3

foreach 1.5.2 plyr 1.8.8 usethis 2.1.6

forge 0.2.0 praise 1.0.0 utf8 1.2.2

fs 1.5.2 prettyunits 1.1.1 uuid 1.1-0

furrr 0.3.1 pROC 1.18.0 vctrs 0.5.1

future 1.29.0 processx 3.8.0 viridisLite 0.4.1

future.apply 1.10.0 prodlim 2019.11.13 vroom 1.6.0

gargle 1.2.1 profvis 0.3.7 waldo 0.4.0

Genéricos 0.1.3 progress 1.2.2 warp 0.2.0

gert 1.9.1 progressr 0.11.0 whisker 0,4

ggplot2 3.4.0 promises 1.2.0.1 withr 2.5.0

gh 1.3.1 proxy 0.4-27 workflows 1.1.2

gistr 0.9.0 pryr 0.1.5 workflowsets 1.0.0

gitcreds 0.1.2 ps 1.7.2 xfun 0,35

globals 0.16.2 purrr 0.3.5 xgboost 1.6.0.1

glue 1.6.2 quantmod 0.4.20 XML 3.99-0.12

googledrive 2.0.0 r2d3 0.2.6 xml2 1.3.3

googlesheets4 1.0.1 R6 2.5.1 xopen 1.0.0

gower 1.0.0 ragg 1.2.4 xtable 1.8-4

GPfit 1.0-8 rappdirs 0.3.3 xts 0.12.2

gtable 0.3.1 rbokeh 0.5.2 yaml 2.3.6

hardhat 1.2.0 rcmdcheck 1.4.0 yardstick 1.1.0

haven 2.5.1 RColorBrewer 1.1-3 zip 2.2.2

hexbin 1.28.2 Rcpp 1.0.9 zoo 1.8-11


Migração entre diferentes versões do Apache Spark
Migrar suas cargas de trabalho para o Fabric Runtime 1.1 (Apache Spark 3.3) de uma versão mais
antiga do Apache Spark envolve uma série de etapas para garantir uma migração tranquila. Esse guia
descreve as etapas necessárias para ajudá-lo a migrar de forma eficiente e eficaz.

1. Examine as notas de versão do Fabric Runtime 1.1, incluindo a verificação dos componentes e
pacotes de nível padrão incluídos no runtime, para entender os novos recursos e melhorias.

2. Verifique a compatibilidade da configuração atual e de todas as bibliotecas relacionadas,


incluindo dependências e integrações. Examine os guias de migração para identificar possíveis
alterações interruptivas:

Revise o Guia de migração do Spark Core .


Revise o Guia de migração de SQL, Conjuntos de Dados e DataFrame .
Se sua solução estiver relacionada ao Streaming de Estrutura do Apache Spark, revise o
Guia de migração de Streaming Estruturado .
Se você usar o PySpark, revise o Guia de migração do Pyspark .
Se você migrar o código do Koalas para o PySpark, revise o Guia de migração do Koalas
para a API do Pandas no Spark .

3. Mova suas cargas de trabalho para o Fabric e verifique se você tem backups de seus dados e
arquivos de configuração caso precise reverter para a versão anterior.

4. Atualize as dependências que a nova versão do Apache Spark ou de outros componentes


relacionados ao Fabric Runtime 1.1 possa afetar, incluindo bibliotecas ou conectores de
terceiros. Certifique-se de testar as dependências atualizadas em um ambiente de preparo
antes de implantar na produção.

5. Atualize a Configuração do Apache Spark em sua carga de trabalho, incluindo a atualização das
definições de configuração, o ajuste das alocações de memória e a modificação de
configurações preteridas.

6. Modifique seus aplicativos Apache Spark (notebooks e definições de trabalhos do Apache


Spark) para usar as novas APIs e recursos introduzidos no Fabric Runtime 1.1 e no Apache
Spark 3.3. Você pode precisar da atualização do código para acomodar as APIs preteridas ou
removidas e a refatoração de seus aplicativos para aproveitar as melhorias de desempenho e as
novas funcionalidades.

7. Teste minuciosamente seus aplicativos atualizados em um ambiente de preparo para garantir a


compatibilidade e a estabilidade com o Apache Spark 3.3. Execute testes de desempenho,
testes funcionais e testes de regressão para identificar e resolver quaisquer problemas que
possam surgir durante o processo de migração.

8. Depois de validar seus aplicativos em um ambiente de preparo, implante os aplicativos


atualizados em seu ambiente de produção. Monitore o desempenho e a estabilidade de seus
aplicativos após a migração para identificar quaisquer problemas que precisem ser resolvidos.
9. Atualize a documentação interna e os materiais de treinamento para refletir as alterações
introduzidas no Fabric Runtime 1.1. Verifique se os membros da equipe estão familiarizados
com os novos recursos e melhorias para maximizar os benefícios da migração.

Próximas etapas
Leia sobre os Runtimes do Apache Spark no Fabric – visão geral, controle de versão, suporte a
vários runtimes e atualização do protocolo Delta Lake
Runtime 1.2 (Spark 3.4, Java 11, Python 3.10, Delta Lake 2.4)

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Modo de alta simultaneidade no Spark
do Fabric
Artigo • 15/11/2023

O modo de alta simultaneidade permite que os usuários compartilhem as mesmas


sessões do Spark no Spark do Fabric para cargas de trabalho de engenharia de dados e
ciência de dados. Um item como um notebook utiliza uma sessão padrão do Spark para
sua execução. No modo de alta simultaneidade, a sessão Spark pode dar suporte a
execução independente de vários itens dentro de núcleos individuais de loop de leitura-
avaliação-impressão (REPL) que existem dentro do aplicativo Spark. Esses núcleos REPL
fornecem isolamento para cada item e impedem que as variáveis locais do notebook
sejam substituídas por variáveis com o mesmo nome de outros notebooks que
compartilham a mesma sessão.

Como a sessão já está em execução, isso fornece aos usuários uma experiência de
execução instantânea ao reutilizar a sessão em vários notebooks.

7 Observação

No caso de pools personalizados com modo de alta simultaneidade, os usuários


obtêm uma experiência de início de sessão 36 vezes mais rápida em comparação
com uma sessão padrão do Spark.

) Importante

As condições de compartilhamento de sessão incluem:


As sessões devem estar dentro de um limite de usuário único.
As sessões devem ter a mesma configuração padrão de lakehouse.
As sessões devem ter as mesmas propriedades de computação do Spark.

Como parte da inicialização da sessão do Spark, um núcleo REPL é criado. Toda vez que
um novo item começa a compartilhar a mesma sessão e os executores são alocados de
maneira baseada em FAIR para esses notebooks em execução nesses núcleos REPL
dentro do aplicativo Spark, prevenindo cenários de inanição.

Próximas etapas
Para começar a usar o modo de alta simultaneidade em notebooks, confira
Configurar o modo de alta simultaneidade para notebooks do Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é o Autotune para configurações
do Apache Spark no Fabric?
Artigo • 09/04/2024

O Autotune ajusta automaticamente as configurações do Apache Spark para acelerar a


execução da carga de trabalho e otimizar o desempenho geral. O Autotune economiza
tempo e recursos em comparação com o ajuste manual, que requer muito esforço,
recursos, tempo e experimentação. O Autotune usa dados de execução históricos das
cargas de trabalho para descobrir e aplicar iterativamente as configurações mais efetivas
a uma carga de trabalho específica.

7 Observação

No momento, o recurso de ajuste de consulta do Autotune no Microsoft Fabric está


em preview.

Ajuste de consulta
O Autotune define três configurações do Spark para cada uma das consultas
separadamente:

spark.sql.shuffle.partitions – Define a contagem de partições para


embaralhamento de dados durante junções ou agregações. O valor padrão é 200.
spark.sql.autoBroadcastJoinThreshold – Define o tamanho máximo em bytes para

uma tabela que é transmitida para todos os nós de trabalho ao executar uma
operação de junção. O valor padrão é 10 MB.
spark.sql.files.maxPartitionBytes – Define o número máximo de bytes a serem
empacotados em uma única partição ao ler arquivos. Funciona para fontes
baseadas em arquivo Parquet, JSON e ORC. O padrão é 128 MB.

 Dica

O ajuste de consulta do Autotune examina consultas individuais e cria um modelo


de ML distinto para cada uma. Ele destina-se especificamente a:

Consultas repetitivas
Consultas de execução prolongada (aquelas com mais de 15 segundos de
execução)
Consultas SQL do Spark (excluindo aquelas escritas na API RDD, que são
muito raras)

Esse recurso é compatível com notebooks, definições de trabalho do Spark e


pipelines.

Intuição baseada em IA por trás do Autotune


O recurso de Autotune utiliza um processo iterativo para otimizar o desempenho da
consulta. Ele começa com uma configuração padrão e emprega um modelo de machine
learning para avaliar a efetividade. Quando um usuário envia uma consulta, o sistema
recupera os modelos armazenados com base nas interações anteriores. Ele gera
configurações potenciais em torno de uma configuração padrão chamada centroide.
Aplica-se o melhor candidato previsto pelo modelo. Após a execução da consulta, os
dados de desempenho são enviados de volta ao sistema para refinar o modelo.

O loop de feedback desloca gradualmente o centroide para as configurações ideais. Ele


refina o desempenho ao longo do tempo, minimizando o risco de regressão.
Atualizações contínuas baseadas em consultas do usuário permitem o refinamento dos
parâmetros de comparação do desempenho. Além disso, o processo atualiza as
configurações do centroide para garantir que o modelo se mova para configurações
mais eficientes de forma incremental. Isso é possível ao avaliar os desempenhos
passados e usando-os para guiar ajustes futuros. Ele usa todos os pontos de dados para
mitigar o impacto de anomalias.
Da perspectiva de uma IA responsável, o recurso de Autotune inclui mecanismos de
transparência projetados para informar você sobre uso de dados e benefícios. A
segurança e a privacidade estão alinhadas com os padrões da Microsoft. O
monitoramento contínuo mantém o desempenho e a integridade do sistema após o
início.

Habilitar o Autotune
O Autotune está disponível em todas as regiões, mas está desabilitado por padrão. Você
pode habilitá-lo conforme necessário nas definições de configuração do Apache Spark.
Você pode habilitar o Autotune em uma sessão executando o código a seguir em seu
notebook ou incluindo-o ao código de definição de trabalho ou do notebook do Spark.
Além disso, o Autotune tem mecanismo interno para monitoramento de desempenho e
detecção de regressões no desempenho. Por exemplo, se a consulta repentinamente se
comportar de forma anômala e processar mais dados do que o normal, o Autotune é
desligado automaticamente. O Autotune requer várias iterações para aprender e
identificar a configuração ideal. Normalmente, a configuração ideal é determinada após
20 a 25 iterações.

7 Observação

O Autotune é compatível com o Fabric Runtime 1.1 e o Runtime 1.2. O Autotune


não funciona quando o modo de alta simultaneidade ou o ponto de extremidade
privado estão habilitados. No entanto, o Autotune se integra perfeitamente ao
dimensionamento automático, independentemente de sua configuração.

Spark SQL

SQL

%%sql
SET spark.ms.autotune.enabled=TRUE

Para verificar e confirmar sua ativação, use os seguintes comandos:

Spark SQL

SQL
%%sql
GET spark.ms.autotune.enabled

Para desabilitar o Autotune, execute os seguintes comandos:

Spark SQL

SQL

%%sql
SET spark.ms.autotune.enabled=FALSE

Estudo de caso
Ao executar uma consulta do Spark, o Autotune cria um modelo de ML personalizado,
dedicado a otimizar a execução da consulta. Ele analisa padrões de consulta e
necessidades de recursos. Considere uma consulta inicial filtrando um conjunto de
dados com base em um atributo específico, como um país. Embora o exemplo use
filtragem geográfica, o princípio se aplica universalmente a qualquer atributo ou
operação na consulta:

Python

%%pyspark
df.filter(df.country == "country-A")

O Autotune aprende com essa consulta, otimizando as execuções subsequentes.


Quando a consulta é alterada, por exemplo, alterando o valor do filtro ou aplicando
uma transformação de dados diferente, a essência estrutural dela costuma permanecer
consistente:

Python

%%pyspark
df.filter(df.country == "country-B")

Apesar das alterações, o Autotune identifica a estrutura fundamental da nova consulta,


implementando otimizações aprendidas anteriormente. Esse recurso garante alta
eficiência sustentada, sem a necessidade de reconfiguração manual para cada nova
iteração de consulta.
Logs
Em cada uma das consultas, o Autotune determina as configurações mais ideais para
três configurações do Spark. Você pode exibir as configurações sugeridas navegando
até os logs. As configurações recomendadas pelo Autotune estão localizadas nos logs
do driver, especificamente nas entradas que começam com [Autotune].

Você encontra vários tipos de entradas nos logs. Estes são os principais:

ノ Expandir a tabela

Status Descrição

AUTOTUNE_DISABLED Ignorado. O Autotune está desabilitado, impedindo a


recuperação de dados telemétricos e a otimização de consulta.
Permita que o Autotune use plenamente seus recursos,
respeitando a privacidade do cliente".

QUERY_TUNING_DISABLED Ignorado. O ajuste de consulta do Autotune está desabilitado.


Habilite-o para ajustar as configurações das consultas SQL do
Spark.

QUERY_PATTERN_NOT_MATCH Ignorado. Não houve correspondência no padrão de consulta.


O Autotune é efetivo para consultas somente leitura.

QUERY_DURATION_TOO_SHORT Ignorado. A duração da consulta é muito curta para otimizar. O


Autotune requer consultas mais longas para um ajuste efetivo.
Status Descrição

As consultas devem ser executadas por pelo menos 15


segundos.

QUERY_TUNING_SUCCEED Êxito. Ajuste de consulta concluído. Configurações ideais do


Spark aplicadas.

Observação de transparência
Em conformidade com o padrão de IA Responsável, esta seção visa esclarecer os usos e
a validação do recurso de Autotune, promovendo a transparência e permitindo a
tomada de decisões informadas.

Finalidade do Autotune
O Autotune foi desenvolvido para aprimorar a eficiência da carga de trabalho do
Apache Spark, principalmente para profissionais de dados. Suas principais funções
incluem:

Automatizar o ajuste de configuração do Apache Spark para reduzir os tempos de


execução.
Minimizar os esforços de ajuste manual.
Utilizar dados históricos da carga de trabalho para refinar as configurações
iterativamente.

Validação do Autotune
O Autotune passou por inúmeros testes para garantir sua efetividade e segurança:

Testes rigorosos com diversas cargas de trabalho do Spark para verificar a eficácia
do algoritmo de ajuste.
Parâmetros de comparação em relação aos métodos de otimização padrão do
Spark para demonstrar os benefícios de desempenho.
Estudos de caso do mundo real destacando o valor prático do Autotune.
Conformidade com padrões rígidos de segurança e privacidade para proteger os
dados do usuário.

Os dados do usuário são usados exclusivamente para aprimorar o desempenho da


carga de trabalho, com proteções robustas que evitam o uso indevido ou a exposição
de informações confidenciais.
Conteúdo relacionado
Limites de simultaneidade e filas no Microsoft Fabric Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Limites de simultaneidade e
enfileiramento no Microsoft Fabric
Spark
Artigo • 24/04/2024

Aplica-se a: engenharia e ciência de dados no Microsoft Fabric

O Microsoft Fabric permite a alocação de unidades de computação por meio da


capacidade, que é um conjunto dedicado de recursos que está disponível em um
determinado momento para ser usado. A capacidade define a possibilidade de um
recurso executar uma atividade ou produzir uma saída. Itens diferentes consomem
capacidades diferentes em um determinado momento. O Microsoft Fabric oferece
capacidade por meio de SKUs e avaliações do Fabric. Para saber mais, confiraO que é
Capacidade?

Quando os usuários criam uma capacidade do Microsoft Fabric no Azure, eles podem
escolher um tamanho de capacidade com base no tamanho da carga de trabalho de
análise. No Spark, os usuários obtêm dois VCores do Spark para cada unidade de
capacidade que reservam como parte de sua SKU.

Uma unidade de capacidade = dois VCores do Spark

Depois que a capacidade é adquirida, os administradores podem criar workspaces


dentro da capacidade no Microsoft Fabric. Os VCores do Spark associados à capacidade
são compartilhados entre todos os itens baseados em Spark, como notebooks,
definições de trabalho do Spark e lakehouses criados nesses workspaces.

Limitação e enfileiramento de simultaneidade


O Fabric Spark impõe um mecanismo de limitação e enfileiramento baseado em
núcleos, em que os usuários poderão enviar trabalhos com base nos SKUs de
capacidade do Fabric adquiridos. O mecanismo de enfileiramento é uma fila simples
baseada em FIFO, que verifica se há slots de trabalho disponíveis e repete
automaticamente os trabalhos depois que a capacidade fica disponível. Quando os
usuários enviarem trabalhos de notebook ou lakehouse, como Carregar na Tabela,
quando a capacidade deles estiver em sua utilização máxima devido a trabalhos
simultâneos em execução usando todos os vCores Spark disponíveis para a SKU de
capacidade do Fabric adquirida, eles serão limitados com a mensagem Código de
resposta HTTP 430: não foi possível enviar esta solicitação porque toda a capacidade
disponível está sendo usada no momento. Cancele um trabalho em execução no
momento, aumente sua capacidade disponível ou tente novamente mais tarde.

Com o enfileiramento habilitado, os trabalhos de notebook acionados por pipelines e as


definições do agendador de trabalhos e de trabalho do Spark são adicionados à fila e
repetidos automaticamente quando a capacidade é liberada. A expiração da fila é
definida como 24 horas a partir do horário de envio do trabalho. Após esse período, os
trabalhos precisarão ser reenviados.

As capacidades do Fabric são habilitadas com bursting, o que permite que você
consuma núcleos de computação adicionais além dos que foram comprados para
acelerar a execução de uma carga de trabalho. Para o bursting de cargas de trabalho do
Spark, os usuários enviam trabalhos com um total de 3X dos VCores Spark comprados.

7 Observação

O fator de bursting só aumenta o número total de VCores Spark para ajudar com a
simultaneidade, mas não aumenta os núcleos máximos por trabalho. Os usuários
não podem enviar um trabalho que exija mais núcleos do que a capacidade
oferecida pelo Fabric.

A seção a seguir lista vários limites baseados em núcleos para cargas de trabalho do
Spark com base em SKUs de capacidade do Microsoft Fabric:

ノ Expandir a tabela

SKU de SKU equivalente VCores do Máx. de vCores Spark Limite


capacidade do do Power BI Spark com fator de disparo de fila
Fabric contínuo

F2 - 4 20 4

F4 - 8 24 4

F8 - 16 48 8

F16 - 32 96 16

F32 - 64 192 32

F64 P1 128 384 64

F128 P2 256 768 128

F256 P3 512 1536 256


SKU de SKU equivalente VCores do Máx. de vCores Spark Limite
capacidade do do Power BI Spark com fator de disparo de fila
Fabric contínuo

F512 P4 1024 3072 512

F1024 - 2.048 6144 1024

F2048 - 4096 12288 2.048

Capacidade de P1 128 128 NA


avaliação

Cálculo de exemplo: o SKU F64 oferece 128 Spark VCores. O fator de disparo contínuo
aplicado para uma SKU F64 é 3, o que dá um total de 384 vCores Spark. O fator de
disparo contínuo é aplicado apenas para ajudar com simultaneidade e não aumenta os
núcleos máximos disponíveis para um trabalho individual do Spark. Isso significa que
uma única definição de trabalho de Notebook ou Spark ou um trabalho de Lakehouse
pode usar uma configuração de pool de até 128 vCores e executar 3 trabalhos com a
mesma configuração simultaneamente. Se os notebooks estiverem usando uma
configuração de computação menor, eles poderão ser executados simultaneamente até
que a utilização máxima atinja o limite de 384 vCores Spark.

7 Observação

Os trabalhos têm um período de expiração na fila de 24 horas, após o qual são


cancelados e os usuários devem reenviá-los para execução.

A limitação do Fabric Spark não tem limites arbitrários baseados em trabalhos e tem
base apenas no número de núcleos permitidos para o SKU de capacidade do Fabric
adquirido. A admissão de trabalhos por padrão será um controle de admissão otimista,
onde os empregos são admitidos com base em seu requisito mínimo de núcleos. Saiba
mais sobre a otimista admissão de trabalhos Admissão e gerenciamento de trabalhos Se
a opção de pool padrão (Pool inicial) estiver selecionada para o espaço de trabalho, a
tabela a seguir listará os limites máximos de trabalho de simultaneidade.

Saiba mais sobre as configurações padrão do pool de inicialização com base no SKU de
Capacidade do Fabric em Configuração de pools de início.

Bursting em nível de trabalho


Os administradores podem configurar seus pools do Spark para utilizar máximo de
núcleos spark máxima com fator de burst disponível para toda a capacidade. Por
exemplo, um administrador de espaço de trabalho com seu espaço de trabalho anexado
a uma capacidade do Fabric F46 agora pode configurar seu pool do Spark (pool inicial
ou pool personalizado) para 364 Spark VCores, onde os nós máximos dos pools iniciais
podem ser definidos como 48 ou os administradores podem configurar um pool de
tamanho de nó XX grande com 6 nós máximos.

Conteúdo relacionado
Introdução às Configurações de administração do workspace do Spark no
Microsoft Fabric.
Saiba mais sobre a Computação do Spark para Fabric voltado à experiências de
engenharia e ciência de dados.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Admissão de trabalhos no Microsoft
Fabric Spark
Artigo • 22/04/2024

Aplica-se a: Engenharia e Ciência de Dados no Microsoft Fabric

O Fabric Spark emprega a técnica Admissão otimista de trabalhos, que determina o


número mínimo de núcleos necessários para um trabalho do Spark (trabalhos
interativos ou em lote do notebook ou lakehouse ou definições de trabalho do Spark
com base na configuração do nó mínimo do Pool do Spark escolhida como a opção de
computação na configuração do espaço de trabalho ou no ambiente anexado aos itens.
Trabalhos são aceitos e começam a ser executados desde que haja núcleos disponíveis
na capacidade de malha vinculada ao espaço de trabalho. Trabalhos, quando aceitos,
começam com sua configuração de nó mínimo e podem solicitar uma expansão dentro
de seus limites máximos de nós, dependendo dos estágios do trabalho. A camada de
admissão e limitação de trabalho no Fabric spark permite que o trabalho aumente se o
total de núcleos usados por todos os trabalhos atualmente em execução e usando a
capacidade de malha for menor do que o máximo de núcleos de intermitência
atribuídos para o SKU de capacidade de malha.

Saiba mais sobre os limites do Max SparkVCores para SKUs de capacidade de malha

Como funciona o Admissão otimista de


trabalhos?
No Microsoft Fabric, os pools iniciais (que é a opção de computação padrão para
qualquer espaço de trabalho) vêm pré-configurados com nó mínimo de 1 e os usuários
de pools personalizados podem definir os nós mínimos para um valor com base em
seus requisitos de carga de trabalho. Os trabalhos do Spark tendem a crescer e reduzir
os requisitos de computação, que são baseados em diferentes estágios de trabalho
durante sua execução dentro de seus nós min e max, se a opção de dimensionamento
automático estiver habilitada. Com base nisso, o Admissão otimista de trabalhos, usa os
núcleos mínimos para cada trabalho enviado para avaliar e admitir o trabalho para
execução com base nos núcleos disponíveis dos Núcleos máximos em uma capacidade
de malha. Depois que esses trabalhos são admitidos, cada um desses trabalhos tenta
crescer com base em seus nós máximos devido à demanda de computação de trabalhos
durante os estágios de sua execução, e durante os quais as solicitações de aumento de
escala de todos esses trabalhos são aprovadas se os núcleos gerais que estão sendo
usados pelo Spark ainda estiverem dentro dos limites de intermitência do total de
núcleos alocados para o SKU de capacidade de malha.

7 Observação

As solicitações de expansão de trabalho para aumentar o número de nós para o


trabalho serão negadas se a utilização tiver atingido o limite máximo e não houver
núcleos disponíveis dentro do limite total de núcleos para a Capacidade de Malha.
Os núcleos precisam ser liberados por outros trabalhos ativos em execução que
terminam ou são cancelados primeiro.

Como isso afeta a simultaneidade de trabalho


para o Fabric Spark?
Os requisitos mínimos de núcleos para cada trabalho determinarão se o trabalho pode
ser aceito ou não. Se a capacidade for totalmente utilizada e não houver núcleos
restantes que possam atender aos requisitos mínimos do trabalho, o trabalho será
rejeitado. Trabalhos de bloco de anotações interativos ou operações do Lakehouse
serão bloqueados com um código de resposta HTTP 430: não é possível enviar essa
solicitação porque toda a capacidade disponível está sendo usada no momento. Cancele
um trabalho em execução no momento, aumente a capacidade disponível ou tente
novamente mais tarde. Os trabalhos em lote serão colocados em uma fila e processados
automaticamente quando os núcleos forem liberados.

Vamos usar o cenário de exemplo em que um usuário está usando a SKU de capacidade
F32 da malha. Supondo que todos os trabalhos enviados estejam usando a
configuração padrão do Pool de Iniciantes, sem a Admissão otimista de trabalhos, a
capacidade permitiria uma simultaneidade máxima de 3 trabalhos, pois reservava todo o
número máximo de núcleos para cada trabalho com base na configuração de nós
máximos.

Com a Admissão otimista de trabalhos, como um exemplo com a mesma configuração,


a capacidade permitiria que 24 trabalhos fossem admitidos e começassem a ser
executados com sua configuração de nó mínimo durante um cenário de simultaneidade
máxima, pois os trabalhos são admitidos contabilizando 8 SparkVCores (1 configuração
de nó mínimo de tamanho Médio)

Dimensionamento de trabalho usando o Spark


Autoscale
Quando o Spark Autoscale está habilitado para os pools do Spark, os trabalhos
começam a ser executados com sua configuração mínima de nó e, durante o tempo de
execução, a escala de trabalho pode ser acionada e essas solicitações de aumento de
escala para nós adicionais. Essas solicitações de aumento de escala passarão pelo
controle de admissão de trabalho, que aprova o aumento de escala, permitindo que ele
seja dimensionado para seus limites máximos com base no total de núcleos disponíveis
no Spark. Quando as solicitações de dimensionamento automático são rejeitadas, os
trabalhos em execução ativos não são afetados e continuam a ser executados com sua
configuração atual até que os núcleos fiquem disponíveis.

7 Observação

Se quiser que o trabalho tenha o total de núcleos reservados para ele com base em
sua configuração de nós máximos, o que garantiria a escala, você pode desativar o
Autoscale e definir os nós máximos para o valor desejado dentro dos limites
permitidos com base no SKU de capacidade da malha. Nesse caso, como o
trabalho não tem um requisito mínimo de núcleo, esse trabalho seria aceito e
começaria a ser executado quando houver núcleos livres na capacidade de malha e
ter o total de núcleos reservados para ele, garantindo que o trabalho seja
dimensionado até o total de núcleos configurados. Se a capacidade for totalmente
usada, o trabalho será retardado se for um trabalho interativo do Bloco de
Anotações ou ficará na fila, o que será automaticamente repetido à medida que os
núcleos ficarem livres na Capacidade.

Conteúdo relacionado
Introdução às Configurações de administração do workspace do Spark no
Microsoft Fabric.
Saiba mais sobre a Computação do Spark para Fabric voltado à experiências de
engenharia e ciência de dados.
Saiba mais sobre os Limites de simultaneidade e enfileiramento do Fabric Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Enfileiramento de trabalhos no
Microsoft Fabric Spark
Artigo • 18/04/2024

Aplica-se a: Engenharia e Ciência de Dados no Microsoft Fabric

O Microsoft Fabric oferece suporte ao enfileiramento de trabalhos em segundo plano


quando você atinge os limites de computação do Spark para sua capacidade do Fabric.
O sistema de enfileiramento de trabalhos oferece novas tentativas automáticas para
trabalhos que são adicionados à fila até que eles atinjam a expiração da fila. Quando os
usuários criam uma capacidade do Microsoft Fabric no Azure, eles podem escolher um
tamanho de capacidade com base no tamanho da carga de trabalho de análise. Após
adquirirem a capacidade, os administradores podem criar workspaces dentro da
capacidade no Microsoft Fabric. Os trabalhos do Spark executados nesses espaços de
trabalho podem usar até o máximo de núcleos alocados para uma determinada
capacidade e, uma vez atingido o limite máximo, os trabalhos são limitados ou
enfileirados.

Saiba mais sobre Limites de simultaneidade do Spark no Microsoft Fabric

O enfileiramento de trabalhos pode ser usado com trabalhos do Notebook acionados


por pipelines ou por meio do agendador, bem como para definições de trabalho do
Spark. Não há suporte para enfileiramento em trabalhos de notebooks interativos e
trabalhos de notebooks acionados por meio da API pública de notebooks.

A fila opera de maneira FIFO (First-In-First-Out), onde os trabalhos são adicionados à fila
com base na hora de envio e são constantemente repetidos até começarem a ser
executados quando a capacidade é liberada.

7 Observação

Não há suporte para enfileiramento de trabalhos do Spark quando a capacidade do


Fabric está em estado limitado. Os novos trabalhos enviados serão rejeitados.
Depois que um trabalho é adicionado à fila, seu status é atualizado para Não iniciado
no hub de monitoramento. Definições de trabalhos de Notebooks e do Spark: quando
são selecionados da fila e começam a ser executados, seu status é atualizado de Não
iniciado para Em andamento.

7 Observação

A expiração da fila é de 24 horas para todos os trabalhos a partir do momento em


que foram admitidos na fila. Quando o tempo de expiração for atingido, os
trabalhos precisarão ser reenviados.

Tamanhos da fila
O Fabric Spark impõe os tamanhos das filas com base no tamanho do SKU de
capacidade associado a um espaço de trabalho, fornecendo um mecanismo de limitação
e enfileiramento em que os usuários podem enviar trabalhos com base nos SKUs de
capacidade do Fabric adquiridos.

A seção a seguir lista vários tamanhos de filas para cargas de trabalho do Spark
baseadas em SKUs de capacidade do Microsoft Fabric:

ノ Expandir a tabela
SKU de capacidade do Fabric SKU equivalente do Power BI Limite de fila

F2 - 4

F4 - 4

F8 - 8

F16 - 16

F32 - 32

F64 P1 64

F128 P2 128

F256 P3 256

F512 P4 512

F1024 - 1024

F2048 - 2.048

Capacidade de avaliação P1 NA

7 Observação

Não há suporte ao enfileiramento em recursos de avaliação do Fabric. Os usuários


teriam que alternar para uma SKU F ou P paga do Fabric a fim de usar
enfileiramento para trabalhos do Spark.

Depois que o limite máximo de fila for atingido para uma capacidade do Fabric, os
novos trabalhos enviados serão limitados com uma mensagem de erro
[TooManyRequestsForCapacity] Este trabalho do Spark não pode ser executado porque
você atingiu um limite de computação do Spark ou um limite de taxa de API. Para
executar esse trabalho do Spark, cancele um trabalho ativo do Spark por meio do Hub de
monitoramento, escolha uma SKU de maior capacidade ou tente novamente mais tarde.
Código de status HTTP: 430 {Saiba mais} Código de status HTTP: 430.

Conteúdo relacionado
Saiba mais sobre a Cobrança e a utilização do Spark no Microsoft Fabric.
Saiba mais sobre a Computação do Spark para Fabric voltado à experiências de
engenharia e ciência de dados.
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é uma definição de trabalho do
Apache Spark?
Artigo • 06/12/2023

Uma definição de trabalho do Apache Spark é um item de código do Microsoft Fabric


que permite que você envie trabalhos em lote/streaming para clusters do Spark. Ao
fazer upload dos arquivos binários da saída de compilação de diferentes linguagens
(por exemplo, .jar de Java), você deve aplicar diferentes lógicas de transformação aos
dados hospedados em um lakehouse. Além do arquivo binário, você pode personalizar
ainda mais o comportamento do trabalho fazendo upload de mais bibliotecas e
argumentos de linha de comando.

Para executar uma definição de trabalho do Spark, você deve ter pelo menos um
lakehouse associado a ela. Esse contexto padrão do lakehouse serve como o sistema de
arquivos padrão para o runtime do Spark. Para qualquer código do Spark que utilize um
caminho relativo para leitura/gravação de dados, os dados são fornecidos a partir do
lakehouse padrão.

 Dica

Para executar um item de definição de trabalho do Spark, você precisa ter um


arquivo de definição principal e um contexto padrão do lakehouse. Se você não
tem um lakehouse, crie um seguindo os passos em Criar um lakehouse.

Conteúdo relacionado
Como criar uma definição de trabalho do Apache Spark no Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como criar uma definição de trabalho
do Apache Spark no Fabric
Artigo • 31/10/2023

Neste tutorial, saiba como criar uma definição de trabalho do Spark no Microsoft Fabric.

) Importante

O Microsoft Fabric está em versão prévia.

Pré-requisitos
Antes de começar, você precisa do:

Uma conta de locatário do Fabric com uma assinatura ativa. Crie uma conta
gratuitamente.

 Dica

Para executar o item de definição de trabalho do Spark, você deve ter um arquivo
de definição principal e o contexto padrão do lakehouse. Se você não tiver um
lakehouse, poderá criar um seguindo as etapas em Criar um lakehouse.

Criar uma definição de trabalho do Spark


O processo de criação de definição de trabalho do Spark é rápido e simples; há várias
maneiras de começar.

Opções para criar uma definição de trabalho do Spark


Há algumas maneiras de iniciar o processo de criação:

Home page de engenharia de dados: você pode criar facilmente uma definição de
trabalho do Spark por meio do cartão Definição de trabalho do Spark na seção
Novo na home page.

Modo de exibição do workspace: você também pode criar uma definição de


trabalho do Spark por meio do modo de exibição Workspace quando estiver na
experiência de Engenharia de dados usando a lista suspensa Novo.

Criar Hub: outro ponto de entrada para criar uma definição de trabalho do Spark é
a página Criar Hub em Engenharia de dados.

Você precisa dar um nome à definição de trabalho do Spark ao criá-la. O nome deve ser
exclusivo no workspace atual. A nova definição de trabalho do Spark é criada em seu
workspace atual.
Criar uma definição de trabalho do Spark para PySpark
(Python)
Para criar uma definição de trabalho do Spark para o PySpark:

1. Crie uma nova definição de trabalho do Spark.

2. Selecione PySpark (Python) na lista suspensa Linguagem.

3. Carregue o arquivo de definição principal como um arquivo .py. O arquivo de


definição principal (job.Main) é o arquivo que contém a lógica do aplicativo e é
obrigatório para executar um trabalho do Spark. Para cada definição de trabalho
do Spark, você só pode carregar um arquivo de definição principal.

Você pode carregar o arquivo da área de trabalho local ou carregar de um Azure


Data Lake Storage (ADLS) Gen2 existente fornecendo o caminho ABFSS completo
do arquivo. Por exemplo, abfss://your-storage-account-
name.dfs.core.windows.net/your-file-path .

4. Carregue arquivos de referência como arquivos .py. Os arquivos de referência são


os módulos Python importados pelo arquivo de definição principal. Assim como o
arquivo de definição principal, você pode carregar da área de trabalho ou de um
ADLS Gen2 existente. Há suporte para vários arquivos de referência.

 Dica

Se você usar um caminho do ADLS Gen2, para garantir que o arquivo esteja
acessível, forneça à conta de usuário que executa o trabalho a permissão
adequada para a conta de armazenamento. Sugerimos duas maneiras
diferentes de fazer isso:

Atribua à conta de usuário uma função de Colaborador para a conta de


armazenamento.
Conceda permissão de leitura e execução à conta de usuário do arquivo
por meio da lista de controle de acesso (ACL) do ADLS Gen2.

Para uma execução manual, a conta do usuário de logon atual é usada para
executar o trabalho.

5. Forneça argumentos de linha de comando para o trabalho, se necessário. Use um


espaço como um divisor para separar os argumentos.
6. Adicione a referência de lakehouse ao trabalho. Você deve ter pelo menos uma
referência de lakehouse adicionada ao trabalho. Este lakehouse é o contexto
padrão do lakehouse para o trabalho.

Há suporte para várias referências de lakehouse. Localize o nome do lakehouse


não padrão e a URL completa do OneLake na página de configurações do Spark.

Criar uma definição de trabalho do Spark para Scala/Java


Para criar uma definição de trabalho do Spark para Scala/Java:

1. Crie uma nova definição de trabalho do Spark.

2. Selecione Spark(Scala/Java) na lista suspensa Linguagem.

3. Carregue o arquivo de definição principal como um arquivo .jar. O arquivo de


definição principal é o arquivo que contém a lógica do aplicativo desse trabalho e
é obrigatório para executar um trabalho do Spark. Para cada definição de trabalho
do Spark, você só pode carregar um arquivo de definição principal. Forneça o
nome de classe principal.
4. Carregue arquivos de referência como arquivos .jar. Os arquivos de referência são
os arquivos referenciados/importados pelo arquivo de definição principal.

5. Forneça argumentos de linha de comando para o trabalho, se necessário.

6. Adicione a referência de lakehouse ao trabalho. Você deve ter pelo menos uma
referência de lakehouse adicionada ao trabalho. Este lakehouse é o contexto
padrão do lakehouse para o trabalho.

Criar uma definição de trabalho do Spark para R


Para criar uma definição de trabalho do Spark para SparkR(R):

1. Crie uma nova definição de trabalho do Spark.

2. Selecione SparkR(R) na lista suspensa Linguagem.

3. Carregue o arquivo de definição principal como um arquivo .R. O arquivo de


definição principal é o arquivo que contém a lógica do aplicativo desse trabalho e
é obrigatório para executar um trabalho do Spark. Para cada definição de trabalho
do Spark, você só pode carregar um arquivo de definição principal.

4. Carregue arquivos de referência como arquivos .R. Os arquivos de referência são


os arquivos referenciados/importados pelo arquivo de definição principal.

5. Forneça argumentos de linha de comando para o trabalho, se necessário.

6. Adicione a referência de lakehouse ao trabalho. Você deve ter pelo menos uma
referência de lakehouse adicionada ao trabalho. Este lakehouse é o contexto
padrão do lakehouse para o trabalho.

7 Observação

A definição de trabalho do Spark será criada em seu workspace atual.

Opções para personalizar definições de trabalho do Spark


Há algumas opções para personalizar ainda mais a execução de definições de trabalho
do Spark.

Computação do Spark: na guia Computação do Spark, você pode ver a Versão do


Runtime, que é a versão do Spark usada para executar o trabalho. Você também
pode ver as configurações do Spark usadas para executar o trabalho. Você pode
personalizar as configurações do Spark selecionando o botão Adicionar.

Otimização: na guia Otimização, você pode habilitar e configurar a política de


repetição para o trabalho. Quando habilitado, o trabalho será repetido se falhar.
Você também pode definir o número máximo de repetições e o intervalo entre
elas. Para cada tentativa de repetição, o trabalho é reiniciado. Verifique se o
trabalho é idempotente.

Próximas etapas
Executar uma definição de trabalho do Apache Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Agendar e executar uma definição de
trabalho do Apache Spark
Artigo • 31/10/2023

Saiba como executar uma definição de trabalho do Apache Spark do Microsoft Fabric e
encontrar o status e os detalhes da definição do trabalho.

) Importante

O Microsoft Fabric está em versão prévia.

Pré-requisitos
Antes de começar, é necessário:

Uma conta de locatário do Microsoft Fabric com uma assinatura ativa. Crie uma
conta gratuitamente.
Entenda a definição de trabalho do Spark: O que é uma definição de trabalho do
Apache Spark?
Criar uma definição de trabalho do Spark: como criar uma definição de trabalho do
Apache Spark.

Como executar uma definição de trabalho do


Spark
Há duas maneiras de executar uma definição de trabalho do Spark:

Execute uma definição de trabalho do Spark manualmente selecionando Executar


no item de definição de trabalho do Spark na lista de trabalhos.

Agende uma definição de trabalho do Spark configurando um plano de


agendamento na guia Configurações. Selecione Configurações na barra de
ferramentas e selecione Agendar.

) Importante

Para executar uma definição de trabalho do Spark, ela deve ter o arquivo de
definição principal e o contexto padrão do lakehouse.

 Dica

Para uma execução manual, a conta do usuário conectado no momento é usada


para enviar o trabalho. Para uma execução disparada por um agendamento, a
conta do usuário que criou o plano de agendamento é usada para enviar o
trabalho.

Três a cinco segundos depois de enviar a execução, uma nova linha aparece na guia
Execuções. A linha mostra detalhes sobre sua nova execução. A coluna Status mostra o
status do trabalho, quase em tempo real, e a coluna Tipo de execução mostra se o
trabalho é manual ou agendado.


Para obter mais informações sobre como monitorar um trabalho, consulte Monitorar
sua definição de trabalho do Apache Spark.

Como cancelar um trabalho em execução


Depois que o trabalho for enviado, você poderá cancelar o trabalho selecionando
Cancelar a execução ativa do item de definição de trabalho do Spark na lista de
trabalhos.

Instantâneo de definição de trabalho do Spark


A definição de trabalho do Spark armazena seu estado mais recente. Para exibir o
instantâneo da execução do histórico, selecione Exibir Instantâneo no item de definição
de trabalho do Spark na lista de trabalhos. O instantâneo mostraria o estado da
definição de trabalho de quando o trabalho é enviado, incluindo o arquivo de definição
principal, o arquivo de referência, os argumentos de linha de comando, o lakehouse
referenciado e as propriedades do Spark.

Em um instantâneo, você pode executar três ações:

Salvar como uma definição de trabalho do Spark: salve o instantâneo como uma
nova definição de trabalho do Spark.
Abrir definição de trabalho do Spark: abra a definição de trabalho atual do Spark.
Restauração: restaure a definição de trabalho com o instantâneo. A definição do
trabalho é restaurada para o estado quando o trabalho foi enviado.

Próximas etapas
Microsoft Spark Utilities (MSSparkUtils) para Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como criar e atualizar uma definição de
trabalho do Spark com a API Rest do
Microsoft Fabric
Artigo • 15/11/2023

A API REST do Microsoft Fabric fornece um ponto de extremidade de serviço para


operações CRUD de itens do Fabric. Neste tutorial, examinamos um cenário de ponta a
ponta de como criar e atualizar um artefato de definição de trabalho do Spark. Três
etapas de alto nível estão envolvidas:

1. criar um item de definição de trabalho do Spark com algum estado inicial


2. carregar o arquivo de definição principal e outros arquivos de biblioteca
3. atualizar o item de definição de trabalho do Spark com a URL do OneLake do
arquivo de definição principal e outros arquivos de biblioteca

Pré-requisitos
1. Um token do Entra é necessário para acessar a API REST do Fabric. Recomenda-se
a biblioteca MSAL para obter o token. Para obter mais informações, consulte
Suporte ao fluxo de autenticação na MSAL.
2. Um token de armazenamento é necessário para acessar a API do OneLake. Para
obter mais informações, consulte MSAL para Python.

Criar um item de definição de trabalho do


Spark com o estado inicial
A API REST do Microsoft Fabric define um ponto de extremidade unificado para
operações CRUD de itens do Fabric. O ponto de extremidade é
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items .

O detalhe do item é especificado dentro do corpo da solicitação. Aqui está um exemplo


do corpo da solicitação para criar um item de definição de trabalho do Spark:

JSON

{
"displayName": "SJDHelloWorld",
"type": "SparkJobDefinition",
"definition": {
"format": "SparkJobDefinitionV1",
"parts": [
{
"path": "SparkJobDefinitionV1.json",

"payload":"eyJleGVjdXRhYmxlRmlsZSI6bnVsbCwiZGVmYXVsdExha2Vob3VzZUFydGlmYWN0S
WQiOiIiLCJtYWluQ2xhc3MiOiIiLCJhZGRpdGlvbmFsTGFrZWhvdXNlSWRzIjpbXSwicmV0cnlQb
2xpY3kiOm51bGwsImNvbW1hbmRMaW5lQXJndW1lbnRzIjoiIiwiYWRkaXRpb25hbExpYnJhcnlVc
mlzIjpbXSwibGFuZ3VhZ2UiOiIiLCJlbnZpcm9ubWVudEFydGlmYWN0SWQiOm51bGx9",
"payloadType": "InlineBase64"
}
]
}
}

Neste exemplo, o item de definição de trabalho do Spark é nomeado como


SJDHelloWorld . O campo payload é o conteúdo codificado em base64 da configuração

de detalhes; após a decodificação, o conteúdo é:

JSON

{
"executableFile":null,
"defaultLakehouseArtifactId":"",
"mainClass":"",
"additionalLakehouseIds":[],
"retryPolicy":null,
"commandLineArguments":"",
"additionalLibraryUris":[],
"language":"",
"environmentArtifactId":null
}

Veja duas funções auxiliares para codificar e decodificar a configuração detalhada:

Python

import base64

def json_to_base64(json_data):
# Serialize the JSON data to a string
json_string = json.dumps(json_data)

# Encode the JSON string as bytes


json_bytes = json_string.encode('utf-8')

# Encode the bytes as Base64


base64_encoded = base64.b64encode(json_bytes).decode('utf-8')

return base64_encoded
def base64_to_json(base64_data):
# Decode the Base64-encoded string to bytes
base64_bytes = base64_data.encode('utf-8')

# Decode the bytes to a JSON string


json_string = base64.b64decode(base64_bytes).decode('utf-8')

# Deserialize the JSON string to a Python dictionary


json_data = json.loads(json_string)

return json_data

Este é o snippet de código para criar um item de definição de trabalho do Spark:

Python

import requests

bearerToken = "breadcrumb"; # replace this token with the real AAD token

headers = {
"Authorization": f"Bearer {bearerToken}",
"Content-Type": "application/json" # Set the content type based on your
request
}

payload =
"eyJleGVjdXRhYmxlRmlsZSI6bnVsbCwiZGVmYXVsdExha2Vob3VzZUFydGlmYWN0SWQiOiIiLCJ
tYWluQ2xhc3MiOiIiLCJhZGRpdGlvbmFsTGFrZWhvdXNlSWRzIjpbXSwicmV0cnlQb2xpY3kiOm5
1bGwsImNvbW1hbmRMaW5lQXJndW1lbnRzIjoiIiwiYWRkaXRpb25hbExpYnJhcnlVcmlzIjpbXSw
ibGFuZ3VhZ2UiOiIiLCJlbnZpcm9ubWVudEFydGlmYWN0SWQiOm51bGx9"

# Define the payload data for the POST request


payload_data = {
"displayName": "SJDHelloWorld",
"Type": "SparkJobDefinition",
"definition": {
"format": "SparkJobDefinitionV1",
"parts": [
{
"path": "SparkJobDefinitionV1.json",
"payload": payload,
"payloadType": "InlineBase64"
}
]
}
}

# Make the POST request with Bearer authentication


response = requests.post(sjdCreateUrl, json=payload_data, headers=headers)
Carregar o arquivo de definição principal e
outros arquivos de biblioteca
Um token de armazenamento é necessário para carregar o arquivo no OneLake. Esta é
uma função auxiliar para obter o token de armazenamento:

Python

import msal

def getOnelakeStorageToken():
app = msal.PublicClientApplication(
"{client id}", # this filed should be the client id
authority="https://login.microsoftonline.com/microsoft.com")

result = app.acquire_token_interactive(scopes=
["https://storage.azure.com/.default"])

print(f"Successfully acquired AAD token with storage audience:


{result['access_token']}")

return result['access_token']

Agora que criamos um item de definição de trabalho do Spark, para torná-lo executável,
precisamos configurar o arquivo de definição principal e as propriedades necessárias. O
ponto de extremidade para carregar o arquivo para este item do SJD é
https://onelake.dfs.fabric.microsoft.com/{workspaceId}/{sjdartifactid} . A mesma

"workspaceId" da etapa anterior deve ser usada, o valor de "sjdartifactid" pode ser
encontrado no corpo da resposta da etapa anterior. Este é o snippet de código para
configurar o arquivo de definição principal:

Python

import requests

# three steps are required: create file, append file, flush file

onelakeEndPoint =
"https://onelake.dfs.fabric.microsoft.com/workspaceId/sjdartifactid"; #
replace the id of workspace and artifact with the right one
mainExecutableFile = "main.py"; # the name of the main executable file
mainSubFolder = "Main"; # the sub folder name of the main executable file.
Don't change this value

onelakeRequestMainFileCreateUrl = f"
{onelakeEndPoint}/{mainSubFolder}/{mainExecutableFile}?resource=file" # the
url for creating the main executable file via the 'file' resource type
onelakePutRequestHeaders = {
"Authorization": f"Bearer {onelakeStorageToken}", # the storage token
can be achieved from the helper function above
}

onelakeCreateMainFileResponse =
requests.put(onelakeRequestMainFileCreateUrl,
headers=onelakePutRequestHeaders)
if onelakeCreateMainFileResponse.status_code == 201:
# Request was successful
print(f"Main File '{mainExecutableFile}' was successfully created in
onelake.")

# with previous step, the main executable file is created in OneLake, now we
need to append the content of the main executable file

appendPosition = 0;
appendAction = "append";

### Main File Append.


mainExecutableFileSizeInBytes = 83; # the size of the main executable file
in bytes
onelakeRequestMainFileAppendUrl = f"
{onelakeEndPoint}/{mainSubFolder}/{mainExecutableFile}?position=
{appendPosition}&action={appendAction}";
mainFileContents = "filename = 'Files/' + Constant.filename; tablename =
'Tables/' + Constant.tablename"; # the content of the main executable file,
please replace this with the real content of the main executable file
mainExecutableFileSizeInBytes = 83; # the size of the main executable file
in bytes, this value should match the size of the mainFileContents

onelakePatchRequestHeaders = {
"Authorization": f"Bearer {onelakeStorageToken}",
"Content-Type" : "text/plain"
}

onelakeAppendMainFileResponse =
requests.patch(onelakeRequestMainFileAppendUrl, data = mainFileContents,
headers=onelakePatchRequestHeaders)
if onelakeAppendMainFileResponse.status_code == 202:
# Request was successful
print(f"Successfully Accepted Main File '{mainExecutableFile}' append
data.")

# with previous step, the content of the main executable file is appended to
the file in OneLake, now we need to flush the file

flushAction = "flush";

### Main File flush


onelakeRequestMainFileFlushUrl = f"
{onelakeEndPoint}/{mainSubFolder}/{mainExecutableFile}?position=
{mainExecutableFileSizeInBytes}&action={flushAction}"
print(onelakeRequestMainFileFlushUrl)
onelakeFlushMainFileResponse =
requests.patch(onelakeRequestMainFileFlushUrl,
headers=onelakePatchRequestHeaders)
if onelakeFlushMainFileResponse.status_code == 200:
print(f"Successfully Flushed Main File '{mainExecutableFile}'
contents.")
else:
print(onelakeFlushMainFileResponse.json())

Siga o mesmo processo para carregar os outros arquivos de biblioteca, se necessário.

Atualizar o item de definição de trabalho do


Spark com a URL do OneLake do arquivo de
definição principal e outros arquivos de
biblioteca
Até agora, criamos um item de definição de trabalho do Spark com algum estado inicial,
carregamos o arquivo de definição principal e outros arquivos de biblioteca. A última
etapa é atualizar o item de definição de trabalho do Spark para definir as propriedades
de URL do arquivo de definição principal e outros arquivos de biblioteca. O ponto de
extremidade para atualizar o item de definição de trabalho do Spark é
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{sjdartifactid} .

Os mesmos “workspaceId” e “sjdartifactid” das etapas anteriores devem ser usados. Este
é o snippet de código para atualizar o item de definição de trabalho do Spark:

Python

mainAbfssPath =
f"abfss://{workspaceId}@onelake.dfs.fabric.microsoft.com/{sjdartifactid}/Mai
n/{mainExecutableFile}" # the workspaceId and sjdartifactid are the same as
previous steps, the mainExecutableFile is the name of the main executable
file
libsAbfssPath =
f"abfss://{workspaceId}@onelake.dfs.fabric.microsoft.com/{sjdartifactid}/Lib
s/{libsFile}" # the workspaceId and sjdartifactid are the same as previous
steps, the libsFile is the name of the libs file
defaultLakehouseId = 'defaultLakehouseid'; # replace this with the real
default lakehouse id

updateRequestBodyJson = {
"executableFile":mainAbfssPath,
"defaultLakehouseArtifactId":defaultLakehouseId,
"mainClass":"",
"additionalLakehouseIds":[],
"retryPolicy":None,
"commandLineArguments":"",
"additionalLibraryUris":[libsAbfssPath],
"language":"Python",
"environmentArtifactId":None}

# Encode the bytes as a Base64-encoded string


base64EncodedUpdateSJDPayload = json_to_base64(updateRequestBodyJson)

# Print the Base64-encoded string


print("Base64-encoded JSON payload for SJD Update:")
print(base64EncodedUpdateSJDPayload)

# Define the API URL


updateSjdUrl =
f"https://api.fabric.microsoft.com//v1/workspaces/{workspaceId}/items/{sjdar
tifactid}/updateDefinition"

updatePayload = base64EncodedUpdateSJDPayload
payloadType = "InlineBase64"
path = "SparkJobDefinitionV1.json"
format = "SparkJobDefinitionV1"
Type = "SparkJobDefinition"

# Define the headers with Bearer authentication


bearerToken = "breadcrumb"; # replace this token with the real AAD token

headers = {
"Authorization": f"Bearer {bearerToken}",
"Content-Type": "application/json" # Set the content type based on your
request
}

# Define the payload data for the POST request


payload_data = {
"displayName": "sjdCreateTest11",
"Type": Type,
"definition": {
"format": format,
"parts": [
{
"path": path,
"payload": updatePayload,
"payloadType": payloadType
}
]
}
}

# Make the POST request with Bearer authentication


response = requests.post(updateSjdUrl, json=payload_data, headers=headers)
if response.status_code == 200:
print("Successfully updated SJD.")
else:
print(response.json())
print(response.status_code)

Para recapitular todo o processo, a API REST do Fabric e a API do OneLake são
necessárias para criar e atualizar um item de definição de trabalho do Spark. A API REST
do Fabric é usada para criar e atualizar o item de definição de trabalho do Spark e a API
do OneLake é usada para carregar o arquivo de definição principal e outros arquivos de
biblioteca. O arquivo de definição principal e outros arquivos de biblioteca são
carregados primeiro no OneLake. Em seguida, as propriedades da URL do arquivo de
definição principal e outros arquivos de biblioteca são definidos no item de definição de
trabalho do Spark.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Microsoft Spark Utilities (MSSparkUtils) para Fabric
Artigo • 07/03/2024

Os utilitários do Microsoft Spark (MSSparkUtils) são um pacote interno para ajudar você a executar tarefas comuns com facilidade. Você
pode usar o MSSparkUtils para trabalhar com sistemas de arquivos, obter variáveis de ambiente, encadear notebooks e trabalhar com
segredos. O pacote MSSparkUtils está disponível no PySpark (Python) Scala, notebooks do SparkR e pipelines do Microsoft Fabric.

Utilitários do sistema de arquivos


O mssparkutils.fs fornece utilitários para trabalhar com vários sistemas de arquivos, incluindo o ADLS (Azure Data Lake Storage) Gen2 e o
Armazenamento de Blobs do Azure. Configure o acesso ao Azure Data Lake Storage Gen2 e ao Armazenamento de Blobs do Azure
adequadamente.

Execute os seguintes comandos para obter uma visão geral dos métodos disponíveis:

Python

from notebookutils import mssparkutils


mssparkutils.fs.help()

Saída

Console

mssparkutils.fs provides utilities for working with various FileSystems.

Below is overview about the available methods:

cp(from: String, to: String, recurse: Boolean = false): Boolean -> Copies a file or directory, possibly across FileSystems
mv(from: String, to: String, recurse: Boolean = false): Boolean -> Moves a file or directory, possibly across FileSystems
ls(dir: String): Array -> Lists the contents of a directory
mkdirs(dir: String): Boolean -> Creates the given directory if it does not exist, also creating any necessary parent
directories
put(file: String, contents: String, overwrite: Boolean = false): Boolean -> Writes the given String out to a file, encoded
in UTF-8
head(file: String, maxBytes: int = 1024 * 100): String -> Returns up to the first 'maxBytes' bytes of the given file as a
String encoded in UTF-8
append(file: String, content: String, createFileIfNotExists: Boolean): Boolean -> Append the content to a file
rm(dir: String, recurse: Boolean = false): Boolean -> Removes a file or directory
exists(file: String): Boolean -> Check if a file or directory exists
mount(source: String, mountPoint: String, extraConfigs: Map[String, Any]): Boolean -> Mounts the given remote storage
directory at the given mount point
unmount(mountPoint: String): Boolean -> Deletes a mount point
mounts(): Array[MountPointInfo] -> Show information about what is mounted
getMountPath(mountPoint: String, scope: String = ""): String -> Gets the local path of the mount point

Use mssparkutils.fs.help("methodName") for more info about a method.

O MSSparkUtils funciona com o sistema de arquivos da mesma forma que as APIs do Spark. Veja o uso do mssparkuitls.fs.mkdirs() e do
Lakehouse do Fabric, por exemplo:

ノ Expandir a tabela

Usage Caminho relativo da raiz do HDFS Caminho absoluto para o sistema de arquivos do ABFS

Lakehouse Sem suporte mssparkutils.fs.mkdirs("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<new_dir>")


não
padrão

Lakehouse Diretório em "Arquivos" ou "Tabelas": mssparkutils.fs.mkdirs("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<new_dir>")


padrão mssparkutils.fs.mkdirs("Files/<new_dir>")

Listar arquivos
Para listar o conteúdo de um diretório, use mssparkutils.fs.ls("O caminho do seu diretório"). Por exemplo:

Python
mssparkutils.fs.ls("Files/tmp") # works with the default lakehouse files using relative path
mssparkutils.fs.ls("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<path>") # based on ABFS file
system
mssparkutils.fs.ls("file:/tmp") # based on local file system of driver node

Exibir propriedades de arquivo


Retorna as propriedades do arquivo, incluindo o nome, o caminho e o tamanho do arquivo e se ele é um diretório e um arquivo.

Python

files = mssparkutils.fs.ls('Your directory path')


for file in files:
print(file.name, file.isDir, file.isFile, file.path, file.size)

Criar um diretório
Cria o diretório especificado se ele não existir e todos os diretórios pai necessários.

Python

mssparkutils.fs.mkdirs('new directory name')


mssparkutils.fs. mkdirs("Files/<new_dir>") # works with the default lakehouse files using relative path
mssparkutils.fs.ls("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<new_dir>") # based on ABFS file
system
mssparkutils.fs.ls("file:/<new_dir>") # based on local file system of driver node

Copiar arquivo
Esse método copia um arquivo ou diretório e dá suporte à atividade de cópia em sistemas de arquivos.

Python

mssparkutils.fs.cp('source file or directory', 'destination file or directory', True)# Set the third parameter as True to
copy all files and directories recursively

Arquivo de cópia com desempenho


Esse método fornece uma maneira mais rápida de copiar ou mover arquivos, especialmente grandes volumes de dados.

Python

mssparkutils.fs.fastcp('source file or directory', 'destination file or directory', True)# Set the third parameter as True
to copy all files and directories recursively

Visualizar o conteúdo do arquivo


Retorna até os primeiros “maxBytes” bytes do arquivo fornecido como uma cadeia de caracteres codificada em UTF-8.

Python

mssparkutils.fs.head('file path', maxBytes to read)

Mover arquivo
Esse método move um arquivo ou diretório e dá suporte a movimentações entre sistemas de arquivos.

Python

mssparkutils.fs.mv('source file or directory', 'destination directory', True) # Set the last parameter as True to firstly
create the parent directory if it does not exist
Gravar arquivo
Esse método grava a cadeia de caracteres fornecida em um arquivo, codificada em UTF-8.

Python

mssparkutils.fs.put("file path", "content to write", True) # Set the last parameter as True to overwrite the file if it
existed already

Acrescentar conteúdo a um arquivo


Esse método acrescenta a cadeia de caracteres especificada a um arquivo, codificada em UTF-8.

Python

mssparkutils.fs.append("file path", "content to append", True) # Set the last parameter as True to create the file if it
does not exist

Excluir arquivo ou diretório


Esse método remove um arquivo ou diretório.

Python

mssparkutils.fs.rm('file path', True) # Set the last parameter as True to remove all files and directories recursively

Diretório de montagem/desmontagem
Obtenha mais informações sobre o uso detalhado em Montagem e desmontagem de arquivos.

Utilitários de notebook
Use os Utilitários de Notebook MSSparkUtils para executar ou sair de um notebook com um valor. Execute o seguinte comando para obter
uma visão geral dos métodos disponíveis:

Python

mssparkutils.notebook.help()

Saída:

Console

exit(value: String): void -> This method lets you exit a notebook with a value.
run(path: String, timeoutSeconds: int, arguments: Map): String -> This method runs a notebook and returns its exit value.

7 Observação

Os utilitários de notebook não são aplicáveis para definições de trabalho do Apache Spark (SJD).

Referenciar um notebook
Esse método faz referência a um notebook e retorna seu valor de saída. Você pode executar o aninhamento de chamadas de função em
um notebook interativamente ou em um pipeline. O notebook que está sendo referenciado é executado no pool do Spark em que o
notebook chama essa função.

Python

mssparkutils.notebook.run("notebook name", <timeoutSeconds>, <parameterMap>)

Por exemplo:
Python

mssparkutils.notebook.run("Sample1", 90, {"input": 20 })

Você pode abrir o link de instantâneo da execução de referência na saída da célula. O instantâneo captura os resultados da execução de
código e permite que você depure facilmente uma execução de referência.

7 Observação

Atualmente, o notebook do Fabric dá suporte apenas à referência de notebooks em um workspace.


Se você usar os arquivos em Recursos do Notebook, use mssparkutils.nbResPath no notebook referenciado para garantir que
ele aponte para a mesma pasta que a execução interativa.

A referência executa vários notebooks paralelamente


O método mssparkutils.notebook.runMultiple() permite executar vários notebooks paralelamente ou com uma estrutura topológica
predefinida. A API está usando um mecanismo de implementação de vários threads em uma sessão do Spark, o que significa que os
recursos de computação são compartilhados pelas execuções do notebook de referência.

Com mssparkutils.notebook.runMultiple() , você pode:

Execute vários notebooks simultaneamente, sem aguardar a conclusão de cada um.

Especifique as dependências e a ordem de execução para seus notebooks usando um formato JSON simples.

Otimize o uso de recursos de computação do Spark e reduza o custo dos seus projetos do Fabric.

Exiba os Instantâneos de cada registro de execução do notebook na saída e depure/monitore as tarefas do notebook
convenientemente.

Obtenha o valor de saída de cada atividade executiva e use-as em tarefas downstream.

Você também pode tentar executar o mssparkutils.notebook.help("runMultiple") para localizar o exemplo e o uso detalhado.

Este é um exemplo simples de como executar uma lista de notebooks paralelamente usando este método:

Python
mssparkutils.notebook.runMultiple(["NotebookSimple", "NotebookSimple2"])

O resultado da execução do notebook raiz é o seguinte:

Veja a seguir um exemplo de execução de notebooks com estrutura topológica usando mssparkutils.notebook.runMultiple() . Use esse
método para orquestrar facilmente notebooks por meio de uma experiência de código.

Python

# run multiple notebooks with parameters


DAG = {
"activities": [
{
"name": "NotebookSimple", # activity name, must be unique
"path": "NotebookSimple", # notebook path
"timeoutPerCellInSeconds": 90, # max timeout for each cell, default to 90 seconds
"args": {"p1": "changed value", "p2": 100}, # notebook parameters
},
{
"name": "NotebookSimple2",
"path": "NotebookSimple2",
"timeoutPerCellInSeconds": 120,
"args": {"p1": "changed value 2", "p2": 200}
},
{
"name": "NotebookSimple2.2",
"path": "NotebookSimple2",
"timeoutPerCellInSeconds": 120,
"args": {"p1": "changed value 3", "p2": 300},
"retry": 1,
"retryIntervalInSeconds": 10,
"dependencies": ["NotebookSimple"] # list of activity names that this activity depends on
}
]
}
mssparkutils.notebook.runMultiple(DAG)

7 Observação

O grau de paralelismo da execução de vários notebooks é restrito ao recurso de computação total disponível de uma sessão do Spark.

Sair de um notebook
Esse método sai de um notebook com um valor. Você pode executar o aninhamento de chamadas de função em um notebook
interativamente ou em um pipeline.

Quando você chama uma função exit() de um notebook interativamente, o notebook do Fabric gera uma exceção, ignora as células
subsequentes em execução e mantém a sessão do Spark ativa.

Quando você orquestra um notebook no pipeline que chama uma função exit(), a atividade do Notebook retorna com um valor de
saída, conclui a execução do pipeline e interrompe a sessão do Spark.

Quando você chamar uma função exit() em um notebook que está sendo referenciado, o Fabric Spark interrompe a execução do
notebook referenciado e continua a executar as próximas células no notebook principal que chama a função run(). Por exemplo:
Notebook1 tem três células e chama uma função exit() na segunda célula. O Notebook2 tem cinco células e chama run(notebook1) na
terceira célula. Quando você executa Notebook2, Notebook1 interrompe na segunda célula quando ocorre a função exit(). Notebook2
continua a executar a quarta célula e a quinta célula.
Python

mssparkutils.notebook.exit("value string")

Por exemplo:

Notebook Sample1 com as duas células seguintes:

A célula 1 define um parâmetro de entrada com valor padrão 10.

A célula 2 sai do notebook com entrada como valor de saída.

Você pode executar Sample1 em outro notebook com valores padrão:

Python

exitVal = mssparkutils.notebook.run("Sample1")
print (exitVal)

Saída:

Console

Notebook executed successfully with exit value 10

Você pode executar Sample1 em outro notebook e definir o valor de entrada como 20:

Python

exitVal = mssparkutils.notebook.run("Sample1", 90, {"input": 20 })


print (exitVal)

Saída:

Console

Notebook executed successfully with exit value 20

Utilitários de credenciais
Você pode usar os Utilitários de credenciais do MSSparkUtils para obter os tokens de acesso e gerenciar segredos em um Azure Key Vault.

Execute o seguinte comando para obter uma visão geral dos métodos disponíveis:

Python

mssparkutils.credentials.help()

Saída:

Console

getToken(audience, name): returns AAD token for a given audience, name (optional)
getSecret(keyvault_endpoint, secret_name): returns secret for a given Key Vault and secret name
Obter o token
getToken retorna um token do Microsoft Entra para um determinado público e nome (opcional). A lista a seguir mostra as chaves de
público disponíveis no momento:

Recurso de Audiência de Armazenamento: "armazenamento"


Recurso do Power BI: "pbi"
Recurso do Azure Key Vault: "keyvault"
Recurso de BD KQL do Synapse RTA: "kusto"

Execute o seguinte comando para obter o token:

Python

mssparkutils.credentials.getToken('audience Key')

Obter segredo usando as credenciais do usuário


O getSecret retorna um segredo do Azure Key Vault para um determinado ponto de extremidade e nome do segredo do Azure Key Vault
usando as credenciais do usuário.

Python

mssparkutils.credentials.getSecret('https://<name>.vault.azure.net/', 'secret name')

Montagem e desmontagem de arquivos


O Fabric dá suporte a cenários de montagem no pacote Microsoft Spark Utilities. Você pode usar as APIs mount, unmount, getMountPath()
e mounts() para anexar o armazenamento remoto (ADLS Gen2) a todos os nós em funcionamento (nó do driver e nós de trabalho). Depois
que o ponto de montagem do armazenamento estiver em vigor, use a API de arquivo local para acessar dados como se estivessem
armazenados no sistema de arquivos local.

Como montar uma conta do ADLS Gen2


O exemplo a seguir ilustra como montar o Azure Data Lake Storage Gen2. A montagem do Armazenamento de Blobs funciona da mesma
forma.

Esse exemplo pressupõe que você tenha uma conta do Data Lake Storage Gen2 chamada storegen2 e que a conta tenha um contêiner
chamado mycontainer que você deseja montar para /test em sua sessão do Notebook Spark.

Para montar o contêiner chamado mycontainer, mssparkutils primeiro precisa verificar se você tem a permissão para acessar o contêiner.
Atualmente, o Microsoft Fabric dá suporte a dois métodos de autenticação para a operação de montagem do gatilho: accountKey e
sastoken.

Montagem por meio de token de assinatura de acesso compartilhado ou chave de conta


O MSSparkUtils dá suporte a passagem explícita de uma chave de conta ou de um token de Assinatura de Acesso Compartilhado (SAS)
como um parâmetro para montar o destino.

Por motivos de segurança, recomendamos que você armazene chaves de conta ou tokens SAS no Azure Key Vault (como mostra a captura
de tela de exemplo a seguir). Você pode recupera-los usando a API mssparkutils.credentials.getSecret. Para obter mais informações, consulte
Sobre as chaves de conta de armazenamento gerenciadas do Azure Key Vault.

Código de exemplo para o método accountKey :

Python

from notebookutils import mssparkutils


# get access token for keyvault resource
# you can also use full audience here like https://vault.azure.net
accountKey = mssparkutils.credentials.getSecret("<vaultURI>", "<secretName>")
mssparkutils.fs.mount(
"abfss://mycontainer@<accountname>.dfs.core.windows.net",
"/test",
{"accountKey":accountKey}
)

Código de exemplo para sastoken:

Python

from notebookutils import mssparkutils


# get access token for keyvault resource
# you can also use full audience here like https://vault.azure.net
sasToken = mssparkutils.credentials.getSecret("<vaultURI>", "<secretName>")
mssparkutils.fs.mount(
"abfss://mycontainer@<accountname>.dfs.core.windows.net",
"/test",
{"sasToken":sasToken}
)

7 Observação

Talvez seja necessário importar mssparkutils se ele não estiver disponível:

Python

from notebookutils import mssparkutils

Parâmetros de montagem:

fileCacheTimeout: os blobs serão armazenados em cache na pasta temporária local por 120 segundos por padrão. Durante esse
tempo, blobfuse não verificará se o arquivo está atualizado. O parâmetro pode ser definido para alterar o tempo limite padrão.
Quando vários clientes modificam arquivos ao mesmo tempo, para evitar inconsistências entre arquivos locais e remotos,
recomendamos reduzir o tempo de cache ou até mesmo alterá-lo para 0 e sempre obter os arquivos mais recentes do servidor.
tempo limite: o tempo limite da operação de montagem é de 120 segundos por padrão. O parâmetro pode ser definido para
alterar o tempo limite padrão. Quando há muitos executores ou quando a montagem atinge o tempo limite, recomendamos
aumentar o valor.

Você pode usar esses parâmetros como este:

Python

mssparkutils.fs.mount(
"abfss://mycontainer@<accountname>.dfs.core.windows.net",
"/test",
{"fileCacheTimeout": 120, "timeout": 120}
)

Por motivos de segurança, recomendamos que você não armazene credenciais no código. Para proteger ainda mais suas credenciais,
redigiremos seu segredo na saída do notebook. Para mais informações, confira Remoção de segredos.

Como montar um lakehouse


Código de exemplo para montar uma lakehouse em /test:

Python

from notebookutils import mssparkutils


mssparkutils.fs.mount(
"abfss://<workspace_id>@msit-onelake.dfs.fabric.microsoft.com/<lakehouse_id>",
"/test"
)

Acessar arquivos no ponto de montagem usando a API mssparktuils fs


A principal finalidade da operação de montagem é permitir o acesso dos clientes aos dados armazenados em uma conta de
armazenamento remoto por meio da API do sistema de arquivos local. Você também pode acessar os dados usando a API mssparktuils fs
com um caminho montado como parâmetro. Esse formato de caminho é um pouco diferente.

Suponha que você tenha montado o contêiner mycontainer do Data Lake Storage Gen2 em /test usando a API de montagem. Quando você
acessa os dados usando a API do sistema de arquivos local, o formato do caminho tem a seguinte aparência:

Python

/synfs/notebook/{sessionId}/test/{filename}

Quando você deseja acessar os dados usando a API mssparkutils fs, recomendamos usar um getMountPath() para obter o caminho preciso:

Python

path = mssparkutils.fs.getMountPath("/test")

Listar diretórios:

Python

mssparkutils.fs.ls(f"file://{mssparkutils.fs.getMountPath('/test')}")

Ler conteúdo do arquivo:

Python

mssparkutils.fs.head(f"file://{mssparkutils.fs.getMountPath('/test')}/myFile.txt")

Criar um diretório:

Python

mssparkutils.fs.mkdirs(f"file://{mssparkutils.fs.getMountPath('/test')}/newdir")
Acessar arquivos no ponto de montagem por meio do caminho local
Você pode ler e gravar facilmente os arquivos no ponto de montagem usando o sistema de arquivos padrão. Aqui está um exemplo do
Python:

Python

#File read
with open(mssparkutils.fs.getMountPath('/test2') + "/myFile.txt", "r") as f:
print(f.read())
#File write
with open(mssparkutils.fs.getMountPath('/test2') + "/myFile.txt", "w") as f:
print(f.write("dummy data"))

Como verificar pontos de montagem existentes


Você pode usar a API mssparkutils.fs.mounts() para verificar todas as informações de ponto de montagem existentes:

Python

mssparkutils.fs.mounts()

Como desmontar o ponto de montagem


Use o código a seguir para desmontar o ponto de montagem (/test neste exemplo):

Python

mssparkutils.fs.unmount("/test")

Limitações conhecidas
A montagem atual é uma configuração de nível de trabalho, recomendamos usar a API mounts para verificar se o ponto de
montagem existe ou não está disponível.

O mecanismo de desmontagem não é automático. Quando a execução do aplicativo for concluída, para desmontar o ponto de
montagem para liberar o espaço em disco, você precisará chamar explicitamente uma API desmontada em seu código. Caso
contrário, o ponto de montagem ainda existirá no nó após a conclusão da execução do aplicativo.

Não há suporte para a montagem de uma conta de armazenamento do ADLS Gen1.

Utilitários do Lakehouse
mssparkutils.lakehouse fornece utilitários especificamente adaptados para o gerenciamento de artefatos do Lakehouse. Esses utilitários
permitem que os usuários criem, recuperem, atualizem e excluam artefatos do Lakehouse facilmente.

Visão geral dos métodos


Abaixo está uma visão geral dos métodos disponíveis fornecidos por mssparkutils.lakehouse :

Python

# Create a new Lakehouse artifact


create(name: String, description: String = "", workspaceId: String = ""): Artifact

# Retrieve a Lakehouse artifact


get(name: String, workspaceId: String = ""): Artifact

# Update an existing Lakehouse artifact


update(name: String, newName: String, description: String = "", workspaceId: String = ""): Artifact

# Delete a Lakehouse artifact


delete(name: String, workspaceId: String = ""): Boolean

# List all Lakehouse artifacts


list(workspaceId: String = ""): Array[Artifact]
Exemplos de uso
Para utilizar esses métodos de forma eficaz, considere os seguintes exemplos de uso:

Criar um artefato do Lakehouse

Python

artifact = mssparkutils.lakehouse.create("artifact_name", "Description of the artifact", "optional_workspace_id")

Recuperar um artefato do Lakehouse

Python

artifact = mssparkutils.lakehouse.get("artifact_name", "optional_workspace_id")

Atualizar um artefato do Lakehouse

Python

updated_artifact = mssparkutils.lakehouse.update("old_name", "new_name", "Updated description", "optional_workspace_id")

Excluir um artefato do Lakehouse

Python

is_deleted = mssparkutils.lakehouse.delete("artifact_name", "optional_workspace_id")

Listar artefatos do Lakehouse

Python

artifacts_list = mssparkutils.lakehouse.list("optional_workspace_id")

Informações adicionais
Para obter informações mais detalhadas sobre cada método e seus parâmetros, utilize a função
mssparkutils.lakehouse.help("methodName") .

Com os utilitários do Lakehouse do MSSparkUtils, o gerenciamento de seus artefatos do Lakehouse torna-se mais eficiente e integrado aos
pipelines do Fabric, aprimorando sua experiência geral de gerenciamento de dados.

Sinta-se à vontade para explorar esses utilitários e incorporá-los aos seus fluxos de trabalho do Fabric para um fácil gerenciamento de
artefatos do Lakehouse.

Conteúdo relacionado
Gerenciamento de biblioteca

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Gerenciar bibliotecas do Apache Spark
no Microsoft Fabric
Artigo • 22/04/2024

Uma biblioteca é uma coleção de códigos pré-escritos que os desenvolvedores podem


importar para fornecer funcionalidade. Ao usar bibliotecas, você pode economizar
tempo e esforço por não precisar escrever código do zero para realizar tarefas comuns.
Em vez disso, importe a biblioteca e use suas funções e classes para obter a
funcionalidade desejada. O Microsoft Fabric fornece vários mecanismos para ajudá-lo a
gerenciar e usar as bibliotecas.

Bibliotecas internas: cada runtime do Spark do Fabric fornece um conjunto


avançado de bibliotecas pré-instaladas populares. Você pode encontrar a lista
completa de bibliotecas internas no Runtime do Spark do Fabric.
Biblioteca pública: bibliotecas públicas são provenientes de repositórios como
PyPI e Conda, que têm suporte no momento.
Bibliotecas personalizadas: bibliotecas personalizadas referem-se ao código que
você ou sua organização criam. O Fabric oferece suporte a eles nos formatos .whl,
.jar e .tar.gz. O Fabric oferece suporte para .tar.gz somente para a linguagem R.
Para bibliotecas personalizadas do Python, use o formato .whl.

Gerenciamento de biblioteca na configuração


do workspace

) Importante

Não há mais suporte para o gerenciamento de bibliotecas na configuração do


workspace. Para migrar as bibliotecas do espaço de trabalho e as propriedades do
Spark para um ambiente padrão, consulte Migrar as bibliotecas do espaço de
trabalho e as propriedades do Spark.

Resumo do gerenciamento de bibliotecas e


melhores práticas
Os cenários a seguir descrevem as práticas recomendadas.
Cenário 1: o administrador define bibliotecas padrão para
o espaço de trabalho
Para definir bibliotecas padrão, você precisa ser o administrador do espaço de trabalho.
Como administrador, você pode executar estas tarefas:

1. Criar um novo ambiente


2. Instale as bibliotecas necessárias no ambiente
3. Anexe esse ambiente como o espaço de trabalho padrão

Os blocos de anotações e as definições de trabalho do Spark no espaço de trabalho são


anexados às Configurações do espaço de trabalho. Eles iniciam sessões com as
bibliotecas instaladas no ambiente padrão do espaço de trabalho.

Cenário 2: manter especificações de biblioteca para um


ou vários itens de código
Se quiser manter as especificações da biblioteca, instale as bibliotecas em um ambiente
e anexe-as aos itens de código.

Uma vantagem dessa abordagem é que ela economiza o esforço de executar o código
que requer bibliotecas comuns o tempo todo. Depois de instaladas com êxito no
ambiente, as bibliotecas serão eficazes em todas as sessões do Spark se o ambiente
estiver anexado.

Outra vantagem é que a abordagem oferece suporte à granularidade da configuração


da biblioteca inferior ao nível do espaço de trabalho. Um ambiente pode ser anexado a
vários artefatos de código. Se você tiver um subconjunto de notebooks ou definições de
trabalho do Spark em um workspace que exija as mesmas bibliotecas, anexe-as ao
mesmo ambiente. Um administrador, membro ou colaborador do espaço de trabalho
pode criar, editar e anexar o ambiente.

Cenário 3: instalação em linha em execução interativa


Se você estiver interessado no uso único, dentro de um bloco de anotações interativo,
de uma biblioteca que não está instalada, a instalação em linha é a opção mais
conveniente. Os comandos inline no Fabric permitem que você tenha a biblioteca em
vigor na sessão atual do Spark no notebook. A biblioteca não persiste em diferentes
sessões.

Os usuários que têm permissão para executar o notebook podem instalar outras
bibliotecas na sessão do Spark.
Resumo dos tipos de biblioteca com suporte
ノ Expandir a tabela

Tipo de biblioteca Gerenciamento de bibliotecas de Instalação


ambiente embutida

Python Public (PyPI e Com suporte Com suporte


Conda)

Python Personalizado (.whl) Com suporte Com suporte

R Public (CRAN) Sem suporte Com suporte

R personalizado (.tar.gz) Com suporte Com suporte

Jar Com suporte como biblioteca Sem suporte


personalizada

) Importante

Atualmente, há limitações na biblioteca .jar.

Para os usuários do Scala, o arquivo .jar pode ser instalado com êxito em um
ambiente, mas não é eficaz para as sessões do Spark/Scala. A instalação
substitui a biblioteca interna por uma biblioteca diferente. O novo .jar
funciona nas sessões.
Para usuários do Python, todos os arquivos .jar não são suportados
atualmente em um ambiente. Eles podem ser instalados com êxito em um
ambiente, mas não são eficazes nas sessões do PySpark.
Em vez disso, você pode instalar os arquivos .jar no nível da sessão do
notebook.

Instalação embutida
Os comandos embutidos dão suporte a bibliotecas Python e bibliotecas R.

Instalação embutida do Python


O interpretador do Python é reiniciado para aplicar a alteração das bibliotecas. Todas as
variáveis definidas antes de executar a célula de comando serão perdidas. É altamente
recomendável que você coloque todos os comandos para adicionar, excluir ou atualizar
pacotes do Python no início do notebook.

Recomendamos %pip em vez de !pip . !pip é um comando de shell interno do IPython


que tem as seguintes limitações:

!pip instala apenas um pacote no nó do driver, não nos nós do executor.

Os pacotes que são instalados por meio do !pip não afetam os conflitos com os
pacotes incorporados ou se os pacotes já estão importados em um notebook.

No entanto, o %pip lida com esses cenários. As bibliotecas instaladas por meio do %pip
estão disponíveis nos nós do driver e do executor e ainda são efetivas mesmo que a
biblioteca já tenha sido importada.

 Dica

O comando %conda install geralmente leva mais tempo do que o comando %pip
install para instalar novas bibliotecas do Python. Ele verifica as dependências

completas e resolve conflitos.

Talvez você queira usar %conda install para obter mais confiabilidade e
estabilidade. Você pode usar %pip install install se tiver certeza de que a
biblioteca que deseja instalar não está em conflito com as bibliotecas pré-
instaladas no ambiente de runtime.

Para obter todos os comandos em linha do Python disponíveis e esclarecimentos,


consulte comandos %pip e comandos %conda .

Gerenciar bibliotecas personalizadas do Python por meio da


instalação embutida

Neste exemplo, veja como usar comandos inline para gerenciar bibliotecas. Suponha
que você queira usar altair, uma poderosa biblioteca de visualização para Python, para
uma exploração de dados única. Suponha que a biblioteca não esteja instalada em seu
workspace. O exemplo a seguir usa comandos conda para ilustrar as etapas.

Você pode usar comandos em linha para habilitar o altair em sua sessão de notebook
sem afetar outras sessões do notebook ou outros itens.

1. Execute os seguintes comandos em uma célula de código do notebook. O


primeiro comando instala a biblioteca altair. Além disso, instale vega_datasets, que
contém um modelo semântico que você pode usar para visualizar.
Python

%conda install altair # install latest version through conda


command
%conda install vega_datasets # install latest version through conda
command

A saída da célula indica o resultado da instalação.

2. Importe o pacote e o modelo semântico executando os seguintes códigos em


outra célula do notebook:

Python

import altair as alt


from vega_datasets import data

3. Agora você pode brincar com a biblioteca altair com escopo de sessão:

Python

# load a simple dataset as a pandas DataFrame


cars = data.cars()
alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
).interactive()

Gerenciar bibliotecas personalizadas do Python por meio da


instalação embutida
Você pode carregar suas bibliotecas personalizadas do Python na pasta Arquivo do
lakehouse anexado ao bloco de anotações. Vá para o lakehouse, selecione o ícone ... na
pasta Arquivo e carregue a biblioteca personalizada.

Após o upload, use o seguinte comando para instalar a biblioteca personalizada na


sessão do notebook.

Python

# install the .whl through pip command


%pip install /lakehouse/default/Files/wheel_file_name.whl
Instalação embutida R
Para gerenciar bibliotecas do R, o Fabric oferece suporte a comandos
install.packages() , remove.packages() e devtools:: . Para obter todos os comandos

embutidos do R disponíveis e esclarecimentos, consulte o comando install.packages e


o comando remove.package .

Gerenciar bibliotecas públicas do R por meio da instalação


embutida
Siga este exemplo para percorrer as etapas de instalação de uma biblioteca pública do
R:

Para instalar uma biblioteca de feeds do R:

1. Alterne o idioma de trabalho para SparkR(R) na faixa de opções do notebook.

2. Instale a biblioteca caesar executando o seguinte comando em uma célula do


notebook.

Python

install.packages("caesar")

3. Agora você pode brincar com a biblioteca caesar no escopo da sessão com o
trabalho do Spark.

Python

library(SparkR)
sparkR.session()

hello <- function(x) {


library(caesar)
caesar(x)
}
spark.lapply(c("hello world", "good morning", "good evening"), hello)

Gerenciar bibliotecas Jar por meio da instalação


embutida
Os arquivos .jar são suportados em sessões de bloco de anotações com o seguinte
comando.
Scala

%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse
prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file
name>>.jar",
}
}

A célula de código está usando o armazenamento do Lakehouse como exemplo. No


explorador de blocos de anotações, você pode copiar o caminho ABFS completo do
arquivo e substituí-lo no código.

Conteúdo relacionado
Criar, configurar e usar um ambiente no Microsoft Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Configurações de administração de
capacidade para Engenharia de Dados e
Ciência de Dados
Artigo • 15/11/2023

Aplica-se a: Engenharia de Dados e Ciência de Dados no Microsoft Fabric

Os administradores compram as capacidades do Microsoft Fabric com base nos


requisitos de computação e escala das necessidades de análise da empresa. Os
administradores são responsáveis por gerenciar a capacidade e a governança. Eles
devem governar e gerenciar as propriedades de computação para aplicativos de
engenharia de dados e análise científica.

Os administradores de capacidade o Microsoft Fabric agora podem gerenciar e


controlar suas configurações de Engenharia de Dados e Ciência de Dados no portal de
configurações do administrador. Os administradores podem configurar o ambiente
Spark para seus usuários habilitando a computação no nível do espaço de trabalho,
escolher um runtime padrão e também criar ou gerenciar propriedades do Spark para
suas capacidades.

No portal de Administração, navegue até a seção Configurações de Engenharia/Ciência


de Dados e selecione uma capacidade específica, conforme mostrado na animação a
seguir:

Próximas etapas
Introdução às Configurações de Administração da Engenharia/Ciência de Dados
para a capacidade do Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Definir e gerenciar configurações de
engenharia e ciência de dados para
capacidades do Fabric
Artigo • 15/11/2023

Aplica-se a: Engenharia e Ciência de Dados no Microsoft Fabric

Quando você cria o Microsoft Fabric a partir do portal do Azure, ele é adicionado
automaticamente ao locatário do Fabric associado à assinatura usada para criar a
capacidade. Com a configuração simplificada no Microsoft Fabric, não é necessário
vincular a capacidade ao locatário do Fabric. Porque a capacidade recém-criada será
listada no painel de configurações do administrador. Essa configuração fornece uma
experiência mais rápida para os administradores começarem a configurar a capacidade
para suas equipes de análise corporativa.

Para fazer alterações nas configurações de Engenharia/Ciência de Dados em uma


capacidade, você deve ter uma função de administrador para essa capacidade. Para
saber mais sobre as funções que você pode atribuir aos usuários em uma capacidade,
consulte Funções em capacidades.

Use as seguintes etapas para gerenciar as configurações de Engenharia/Ciência de


Dados para a capacidade do Microsoft Fabric:

1. Selecione a opção Configurações para abrir o painel de configuração da sua conta


do Fabric. Selecione Portal do administrador na seção Governança e insights
2. Escolha a opção Configurações de capacidade para expandir o menu e selecione a
guia Capacidade do Fabric. Aqui você deve ver as capacidades que criou em seu
locatário. Escolha a capacidade que deseja configurar.

3. Você navega até o painel de detalhes de capacidades, onde pode visualizar o uso e
outros controles de administrador para sua capacidade. Navegue até a seção
Configurações de Engenharia/Ciência de Dados e selecione Abrir Computação
do Spark. Configure os seguintes parâmetros:

Pools de workspace personalizados: você pode restringir ou democratizar a


personalização da computação para administradores de workspace
habilitando ou desabilitando essa opção. Habilitar essa opção permite que os
administradores do workspace criem, atualizem ou excluam pools
personalizados do Spark no nível do workspace. Além disso, ela permite
redimensioná-los com base nos requisitos de computação dentro do limite
máximo de núcleos de uma capacidade.
4. Depois de configurar, selecione Aplicar

Próximas etapas
Introdução às Configurações do Administrador de Engenharia/Ciência de Dados
para o Workspace do Fabric

Saiba mais sobre a Computação do Spark para experiências de Engenharia/Ciência


de Dados do Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Configurações de administração do
workspace do Spark no Microsoft Fabric
Artigo • 15/11/2023

Aplica-se a: Engenharia e ciência de dados no Microsoft Fabric

Quando você cria um workspace no Microsoft Fabric, um pool inicial associado a esse
workspace é criado automaticamente. Com a configuração simplificada no Microsoft
Fabric, não há necessidade de escolher os tamanhos de nó ou máquina, pois essas
opções são processadas para você nos bastidores. Essa configuração fornece uma
experiência de início de sessão do Spark mais rápida (5 a 10 segundos) para que os
usuários comecem e executem seus trabalhos do Spark em muitos cenários comuns
sem ter que se preocupar em configurar a computação. Para cenários avançados com
requisitos de computação específicos, os usuários podem criar um Pool do Spark
personalizado e dimensionar os nós com base em suas necessidades de desempenho.

Para fazer alterações nas configurações do Spark em um workspace, você deve ter a
função de administrador desse workspace. Para saber mais, confira Funções em
workspaces.

Para gerenciar as configurações do Spark para o pool associado ao seu workspace:

1. Vá para as Configurações do workspace em seu workspace e escolha a opção


Ciência/Engenharia de Dados para expandir o menu:

2. Você verá a opção Computação do Spark no menu à esquerda:


7 Observação

Caso altere o pool padrão de Pool Inicial para um Pool do Spark personalizado,
poderá visualizar um início de sessão mais longo (cerca de 3 minutos).

pool

Pool padrão do espaço de trabalho


Use o pool inicial criado automaticamente ou criar pools personalizados para o espaço
de trabalho.

Pool Inicial: pools ao vivo pré-hidratados criados automaticamente para sua


experiência mais rápida. Esses clusters são de tamanho médio. O pool inicial é
definido como uma configuração padrão com base no SKU de capacidade do
Fabric comprado. Os administradores podem personalizar os nós e executores
máximos com base nos requisitos de escala de carga de trabalho do Spark. Para
saber mais, confira Configurar Pools Iniciais

Pool do Spark personalizado: você pode dimensionar os nós, dimensionar


automaticamente e alocar dinamicamente os executores com base nos requisitos
do trabalho do Spark. Para criar um Pool do Spark personalizado, o administrador
de capacidade deve habilitar a opção Pools do workspace personalizados na
seção Computação do Spark das configurações do Administrador de Capacidade.

7 Observação
O controle de nível de capacidade para pools de espaço de trabalho
personalizados é habilitado por padrão. Para saber mais, confira Configurações de
computação do Spark para recursos do Fabric.

Os administradores podem criar Pools do Spark personalizados com base em seus


requisitos de computação selecionando a opção Novo pool.

O Microsoft Fabric Spark dá suporte a clusters de nó único, o que permite que os


usuários selecionem uma configuração mínima de nó de 1, caso em que o driver e o
executor são executados em um único nó. Esses clusters de nó único oferecem alta
disponibilidade restaurável em caso de falhas de nó e melhor confiabilidade de trabalho
para cargas de trabalho com requisitos de computação menores. Você também pode
habilitar ou desabilitar a opção de dimensionamento automático para seus Pools do
Spark personalizados. Quando habilitado com dimensionamento automático, o pool
adquiriria novos nós dentro do limite máximo de nós especificado pelo usuário e os
retiraria após a execução do trabalho para melhor desempenho.

Você também pode selecionar a opção de alocar executores dinamicamente para


agrupar automaticamente o número ideal de executores dentro do limite máximo
especificado com base no volume de dados para melhor desempenho.

Saiba mais sobre a Computação do Spark para o Fabric.

Personalizar a configuração de computação para itens: como administrador do


espaço de trabalho, permita que os usuários ajustem as configurações de
computação (propriedades de nível de sessão que incluem Driver/Executor Core,
Driver/Memória do Executor) para itens individuais, como notebooks, definições
de trabalho do Spark usando o Ambiente.
Caso a configuração seja desativada pelo administrador do espaço de trabalho, o pool
padrão e suas configurações de computação serão usados para todos os ambientes no
espaço de trabalho.

Environment
O ambiente fornece configurações flexíveis para executar seus trabalhos do Spark
(notebooks, definições de trabalhos do Spark). Em um Ambiente, você poderá
configurar propriedades de computação, selecionar diferentes runtimes, configurar
dependências de pacote de biblioteca com base em seus requisitos de carga de
trabalho.

Na guia ambiente, você tem a opção de definir o ambiente padrão. Você pode escolher
qual versão do Spark deseja usar para o workspace.

Como administrador do espaço de trabalho do Fabric, selecione um Ambiente como


ambiente padrão de espaço de trabalho.
Também poderá criar um por meio da lista suspensa Ambiente.

Caso desabilite a opção de ter um ambiente padrão, terá a opção de selecionar a versão
de runtime do Fabric nas versões de runtime disponíveis listadas na seleção suspensa.

Saiba mais sobre runtimes do Spark

Alta simultaneidade
O modo de alta simultaneidade permite que os usuários compartilhem as mesmas
sessões do Spark no Spark do Fabric para cargas de trabalho de engenharia de dados e
ciência de dados. Um item como um notebook usa uma sessão do Spark para sua
execução e, quando habilitado, permite que os usuários compartilhem uma única sessão
do Spark em vários notebooks.

Saiba mais sobre Alta simultaneidade no Fabric Spark

Registrar em logo automático para modelos e


experimentos de machine learning
Os administradores agora podem habilitar o registro automático para seus modelos e
experimentos de machine learning. Essa opção captura automaticamente os valores dos
parâmetros de entrada, métricas de saída e itens de saída de um modelo de machine
learning conforme ele está sendo treinado. Saiba mais sobre registro automático

Próximas etapas
Leia sobre os Runtimes do Apache Spark no Fabric – visão geral, controle de
versão, suporte a vários runtimes e atualização do protocolo Delta Lake

Saiba mais na documentação pública do Spark do Apache.


Encontre respostas para perguntas frequentes: Perguntas frequentes sobre as
configurações de administração do workspace do Apache Spark.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Perguntas frequentes sobre as
configurações de administração
do workspace do Apache Spark
Perguntas frequentes

Este artigo lista as respostas às perguntas mais frequentes sobre as configurações de


administração do workspace do Apache Spark.

Como posso usar as funções RBAC para


definir as configurações do workspace
do Spark?
Use o menu Gerenciar Acesso para adicionar permissões de Administrador para
usuários específicos, grupos de distribuição ou grupos de segurança. Você também
pode usar esse menu para fazer alterações no workspace e conceder acesso para
adicionar, modificar ou excluir as configurações do workspace do Spark.

As alterações feitas nas propriedades do


Spark no nível do workspace se aplicam
às sessões ativas do notebook ou aos
trabalhos agendados do Spark?
Ao fazer uma alteração de configuração no nível do workspace, ela não é aplicada às
sessões ativas do Spark. Isso inclui sessões em lote ou baseadas em notebook. Você
deve iniciar um novo notebook ou uma sessão em lote depois de salvar as novas
configurações para que elas entrem em vigor.

Posso configurar a família de nós, o


runtime do Spark e as propriedades do
Spark em um nível de capacidade?
Sim, você pode alterar o runtime ou gerenciar as propriedades do Spark usando as
configurações de Engenharia/Ciência de Dados como parte da página de configurações
do administrador de capacidade. Você precisa ter acesso de administrador de
capacidade para exibir e modificar essas configurações de capacidade.

Posso escolher diferentes famílias de


nós para diferentes notebooks e
definições de trabalho do Spark em
meu workspace?
Atualmente, você só pode selecionar a família de nós baseada em Otimizado para
Memória para todo o workspace.

Quais versões do Spark têm suporte?


Atualmente, a versão 3.3 do Spark é a única versão com suporte. Versões adicionais
estarão disponíveis na próxima versão.

Posso definir essas configurações no


nível do notebook?
Atualmente, as configurações de administração do Spark estão disponíveis apenas no
nível do workspace e da capacidade

Posso configurar o número mínimo e


máximo de nós para a família de nós
selecionada?
Atualmente, a configuração do limite de nós não está disponível. Esse recurso será
habilitado em versões futuras.

Posso habilitar o dimensionamento


automático para os Pools do Spark em
uma família de nós baseada em GPU
otimizada para memória ou acelerada
por hardware?
O dimensionamento automático não está disponível no momento. Esse recurso será
habilitado em versões futuras.

O Cache Inteligente para os Pools do


Spark tem suporte ou está habilitado
por padrão em um workspace?
O Cache Inteligente é habilitado por padrão para os pools do Spark em todos os
workspaces.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Visão geral do monitoramento do
Apache Spark
Artigo • 04/10/2023

O monitoramento do Spark do Microsoft Fabric foi projetado para oferecer uma


experiência baseada na interface do usuário da Web com recursos avançados internos
para monitorar o progresso e status de aplicativos Spark em andamento, navegar por
atividades anteriores do Spark, analisar e otimizar o desempenho e facilitar a solução de
problemas de falhas. Vários pontos de entrada estão disponíveis para navegação,
monitoramento e exibição de detalhes do aplicativo Spark.

) Importante

O Microsoft Fabric está em versão prévia.

Hub de Monitoramento
O Hub de Monitoramento serve como um portal centralizado para navegar pelas
atividades do Spark entre itens. Em um relance, você pode exibir aplicativos Spark em
andamento disparados de Notebooks, Definições de Trabalho do Spark e Pipelines. Você
também pode pesquisar e filtrar aplicativos Spark com base em critérios diferentes e
fazer busca detalhada para exibir mais detalhes de execução do Spark de um aplicativo
do Spark.

Execuções recentes do item


Ao trabalhar em itens específicos, o recurso Execuções recentes do item permite que
você navegue pelas atividades atuais e recentes do item e obtenha insights sobre o
remetente, status, duração e outras informações para atividades enviadas por você ou
outras pessoas.

Monitoramento contextual do notebook


O Monitoramento Contextual do Notebook oferece a capacidade de criar, monitorar e
depurar trabalhos do Spark em um único local. Você pode monitorar o progresso do
trabalho do Spark, exibir tarefas e executores de execução do Spark e acessar logs do
Spark em um Notebook no nível da célula notebook. O orientador do Spark também é
integrado ao Notebook para oferecer conselhos em tempo real sobre a execução do
Spark de código e célula e executar a análise de erros.

Monitoramento em linha da definição de


trabalho do Spark
O recurso Monitoramento interno da definição de trabalho do Spark permite exibir o
envio de definição de trabalho do Spark e executar status em tempo real, bem como
exibir as execuções e configurações anteriores da definição de trabalho do Spark. Você
pode navegar até a página de detalhes do aplicativo Spark para exibir mais detalhes.

Monitoramento embutido da atividade do


Pipeline do Spark
Para o Monitoramento Embutido da Atividade do Spark do Pipeline, links profundos
foram incorporados às atividades de definição de trabalho do Notebook e do Spark no
Pipeline. Você pode exibir os detalhes de execução do aplicativo Spark, as respectivas
definições de trabalho do Notebook e do Spark instantâneo e acessar os logs do Spark
para solução de problemas. Se as atividades do Spark falharem, a mensagem de erro
embutida também estará disponível nas atividades do Pipeline Spark.

Próximas etapas
O assistente do Apache Spark para orientação sobre notebooks em tempo real
Navegue pelos aplicativos Apache Spark no hub de monitoramento do Fabric
Procurar as execuções recentes do item
Monitorar os trabalhos do Spark em um notebook
Monitorar a definição de trabalho do Apache Spark
Monitoramento de detalhes do aplicativo Apache Spark
Usar o servidor de histórico do Apache Spark estendido para depurar e
diagnosticar aplicativos Apache Spark
Monitorar o consumo de capacidade do Spark

Comentários
Esta página foi útil?  Yes  No
Fornecer comentários sobre o produto | Ask the community
O assistente do Apache Spark para
orientação em tempo real em
notebooks
Artigo • 22/03/2024

O assistente do Apache Spark analisa comandos e códigos executados pelo Apache


Spark e exibe orientações em tempo real para execuções do Notebook. O assistente do
Apache Spark tem padrões internos para ajudar os usuários a evitar erros comuns. Ele
oferece recomendações para otimização de código, realiza análise de erros e localiza a
causa raiz das falhas.

Recomendações internas
O assistente do Spark, uma ferramenta integrada ao Impulse, fornece padrões internos
para detectar e resolver problemas em aplicativos Apache Spark. Este artigo explica
alguns dos padrões incluídos na ferramenta.

Você pode abrir o painel Execuções recentes com base no tipo de orientação
necessária.

Pode retornar resultados inconsistentes ao usar


'randomSplit'
Resultados inconsistentes ou imprecisos podem ser retornados ao trabalhar com o
método randomSplit. Use o cache do Apache Spark (RDD) antes de usar o método
randomSplit().

O método randomSplit() é equivalente a executar sample() em seu quadro de dados


várias vezes. Onde cada exemplo refaz a busca, particiona e classifica seu quadro de
dados dentro das partições. A distribuição de dados entre partições e a ordem de
classificação é importante para randomSplit() e sample(). Se qualquer um deles for
alterado na busca de dados, poderá haver duplicatas ou valores ausentes nas divisões. E
o mesmo exemplo usando a mesma semente pode produzir resultados diferentes.

Essas inconsistências podem não ocorrer em todas as execuções, mas para eliminá-las
completamente, armazene seu quadro de dados, reparticione em uma coluna ou
aplique funções de agregação, como groupBy.
O nome da tabela/exibição já está em uso
Já existe uma exibição com o mesmo nome que a tabela criada ou já existe uma tabela
com o mesmo nome que o modo de exibição criado. Quando esse nome for usado em
consultas ou aplicativos, somente a exibição será retornada, independentemente de
qual deles tenha sido criado primeiro. Para evitar conflitos, renomeie a tabela ou a
exibição.

Não é possível reconhecer uma dica


Scala

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

Não foi possível encontrar os nomes de uma relação


especificada
Não é possível localizar as relações especificadas na dica. Verifique se as relações estão
escritas corretamente e acessíveis no escopo da dica.

Scala

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON


t1.str = t2.str")

Uma dica na consulta impede que outra dica seja


aplicada
A consulta selecionada contém uma dica que impede que outra dica seja aplicada.

Scala

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN


t2 ON t1.str = t2.str")

Habilite 'spark.advise.divisionExprConvertRule.enable'
para reduzir a propagação de erro de arredondamento
Essa consulta contém a expressão com o tipo Double. É recomendável habilitar a
configuração 'spark.advise.divisionExprConvertRule.enable', que pode ajudar a reduzir as
expressões de divisão e reduzir a propagação de erro de arredondamento.

Console

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Habilite 'spark.advise.nonEqJoinConvertRule.enable' para


melhorar o desempenho da consulta
Essa consulta contém junção demorada devido à condição “Ou” dentro da consulta.
Recomendamos que você habilite a configuração
'spark.advise.nonEqJoinConvertRule.enable', que pode ajudar a converter a junção
disparada pela condição “Ou” em SMJ ou BHJ para acelerar essa consulta.

Experiência do usuário
O assistente do Apache Spark exibe os orientações, incluindo informações, avisos e
erros, na saída da célula do Notebook em tempo real.

Informações
Aviso

Erro

Configuração do assistente do Spark


A configuração do assistente do Spark permite que você escolha se deseja mostrar ou
ocultar tipos específicos de conselhos do Spark de acordo com suas necessidades. Além
disso, você tem a flexibilidade de habilitar ou desabilitar o assistente do Spark para seus
notebooks em um espaço de trabalho, de acordo com suas preferências.

Você pode acessar as configurações do assistente do Spark no nível do notebook do


Fabric para aproveitar seus benefícios e garantir uma experiência produtiva de criação
de notebooks.

Conteúdo relacionado
Monitorar trabalhos do Apache Spark em notebooks
Monitorar a definição de trabalho do Apache Spark
Monitorar os detalhes do aplicativo Apache Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Navegue pelos aplicativos Apache Spark
no hub de monitoramento do Fabric
Artigo • 06/03/2024

O Hub de monitoramento serve como um portal centralizado para navegar pelas


atividades do Spark entre itens. Quando você estiver na experiência Engenharia de
Dados ou Ciência de Dados, poderá exibir aplicativos Apache Spark em andamento
disparados de Notebooks, definições de trabalho do Apache Spark e Pipelines. Você
também pode pesquisar e filtrar aplicativos Apache Spark com base em critérios
diferentes. Além disso, você pode cancelar seus aplicativos Apache Spark em
andamento e fazer drill down para exibir mais detalhes de execução de um aplicativo
Apache Spark.

Acessar o hub de monitoramento


Você pode acessar o Hub de monitoramento para exibir várias atividades do Apache
Spark selecionando Hub de monitoramento nos links de navegação do lado esquerdo.

Classificar, pesquisar e filtrar opções de coluna


nos aplicativos Apache Spark
Para melhorar a usabilidade e a capacidade de descoberta, você pode classificar os
aplicativos Apache Spark selecionando diferentes colunas na interface do usuário. Você
também pode filtrar os aplicativos com base em colunas diferentes e pesquisar
aplicativos específicos. Você também pode ajustar a exibição e classificar a ordem das
colunas de maneira independente por meio das opções de coluna.

Classificar aplicativos Apache Spark


Para classificar aplicativos Apache Spark, você pode selecionar em cada cabeçalho de
coluna, como Nome, Status, Tipo de item, Hora de início, Local e assim por diante.

Filtrar aplicativos Apache Spark


Você pode filtrar aplicativos Apache Spark por Status, Tipo de Item, Hora de Início,
Remetente e Local usando o painel Filtro no canto superior direito.

Pesquisar aplicativos Apache Spark


Para pesquisar aplicativos Apache Spark específicos, você pode inserir determinadas
palavras-chave na caixa de pesquisa localizada no canto superior direito.

Opções de coluna dos aplicativos Apache Spark


Você pode alterar a ordem na qual as listas são exibidas selecionando a lista que deseja
exibir e arrastando as opções de lista.

Habilitar a exibição upstream para pipelines


relacionados
Se você tiver agendado definições de trabalho de Notebook e Spark para execução em
pipelines, poderá exibir as atividades do Spark desses blocos de anotações e as
definições de trabalho do Spark no hub de monitoramento. Além disso, você poderá ver
o pipeline pai correspondente e todas as suas atividades no hub de monitoramento.

1. Selecione a opção de coluna Execução upstream.


2. Exiba a execução do pipeline pai relacionado na coluna Execução upstream e


clique na execução de pipeline para exibir todas as suas atividades.

Gerenciar um aplicativo Apache Spark


Ao passar o mouse sobre um aplicativo Apache Spark, você pode ver várias ações em
nível de linha que permitem gerenciar um aplicativo Apache Spark específico.

Exibir o painel de detalhes do aplicativo Apache Spark


Você pode passar o mouse sobre um aplicativo Apache Spark e clicar no ícone Exibir
detalhes para abrir o painel Detalhes e exibir mais detalhes sobre um aplicativo Apache
Spark.

Cancelar um aplicativo Apache Spark


Se você precisar cancelar um aplicativo Apache Spark em andamento, passe o mouse
sobre sua linha e clique no ícone Cancelar.

Navegue até a exibição de detalhes do


aplicativo Apache Spark
Se você precisar de mais informações sobre estatísticas de execução do Apache Spark,
acessar logs do Apache Spark ou verificar dados de entrada e saída, poderá clicar no
nome de um aplicativo Apache Spark para navegar até a página de detalhes do
aplicativo Apache Spark correspondente.

Conteúdo relacionado
Visão geral do monitoramento do Apache Spark
Procurar as execuções recentes do item
Monitorar trabalhos do Apache Spark em notebooks
Monitorar a definição de trabalho do Apache Spark
Monitorar os detalhes do aplicativo Apache Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Procurar as execuções recentes do item
Artigo • 06/12/2023

Com o Microsoft Fabric, você pode usar o Apache Spark para executar notebooks,
definições de trabalho do Apache Spark, trabalhos e outros tipos de aplicativos no
workspace. Este artigo explica como exibir seus aplicativos Apache Spark em execução,
facilitando o acompanhamento do status de execução mais recente.

Exibir o painel de execuções recentes


Podemos abrir o painel Execuções recentes com as seguintes etapas:

1. Abra a página inicial do Microsoft Fabric e selecione um workspace no qual você


deseja executar o trabalho.

2. Selecionar o menu Definição de trabalho do Spark \ contexto do item de


notebook \ contexto do item de pipeline mostra a opção de execução recente.

3. Selecione Execuções recentes.

Abra o painel de execução recente da Definição de trabalho do Spark \ contexto


do item de notebook.

Abra o painel de execução recente no contexto do item de pipeline.


Todas as execuções em um Notebook


Podemos abrir o painel Execuções recentes em um notebook seguindo as etapas:

1. Abra a página inicial do Microsoft Fabric e selecione um workspace no qual você


deseja executar o trabalho.

2. Abra um bloco notebook nesse workspace.

3. Selecionando Executar ->Todas as execuções


Detalhe do painel de execução recente


Se o notebook ou a definição de trabalho do Spark não tiver nenhuma operação de
execução, a página Execuções recentes mostrará Nenhum trabalho encontrado.

No painel Execuções recentes, você pode exibir uma lista de aplicativos, incluindo
Nome do aplicativo, Hora de envio, Remetente, Status, Duração total, Tipo de
execução e Id da Livy. Você pode filtrar os aplicativos por status e hora de envio, o que
facilita a exibição dos aplicativos.


A seleção do link do nome do aplicativo navega até os detalhes do aplicativo Spark,
onde podemos ver os registros, os dados e os detalhes de distorção da execução do
Spark.

Conteúdo relacionado
A próxima etapa após a exibição da lista de aplicativos Apache Spark em execução é
exibir os detalhes do aplicativo. Você pode consultar:

Monitoramento de detalhes do aplicativo Apache Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Monitorar os trabalhos do Spark em um
notebook
Artigo • 18/03/2024

O notebook do Microsoft Fabric é uma superfície interativa baseada na Web para


desenvolver trabalhos do Apache Spark e realizar experimentos de aprendizado de
máquina. Este artigo descreve como monitorar o progresso dos seus trabalhos do
Spark, acessar logs do Spark, receber conselhos no notebook e navegar até a exibição
de detalhes do aplicativo Spark ou a interface do usuário do Spark para obter
informações de monitoramento mais abrangentes para o notebook.

Monitorar o progresso do Trabalho do Spark


Um indicador de progresso do trabalho do Spark é fornecido com uma barra de
progresso em tempo real que o ajuda a monitorar o status de execução do trabalho de
cada célula do notebook. Você pode exibir o status e o progresso das tarefas nos seus
trabalhos e fases do Spark.

Monitorar o uso de recursos


O grafo de uso do executor exibe visualmente a alocação de executores de trabalho do
Spark e o uso de recursos. Atualmente, somente as informações de runtime do Spark
3.4 e superior exibirão esse recurso. Clique na guia Recursos, o gráfico de linhas para o
uso de recursos da célula de código será exibido.

Exibir as recomendações do Assistente do


Spark
Um assistente interno do Spark analisa o código do seu notebook e as execuções do
Spark em tempo real para ajudar a otimizar o desempenho em execução do seu
notebook e ajudar na depuração de falhas. Há três tipos de conselhos internos:
Informações, Aviso e Erro. Os ícones com números indicam a respectiva contagem de
conselhos em cada categoria (Informações, Aviso e Erro) gerada pelo assistente do
Spark para uma célula específica do notebook.

Para exibir o conselho, clique na seta no início para expandir e revelar os detalhes.

Depois de expandir a seção do assistente, um ou mais conselhos ficam visíveis.

Detecção de Distorção do Assistente do Spark


A distorção de dados é um problema comum que os usuários geralmente encontram. O
assistente do Spark dá suporte à detecção de distorção e, se a distorção for detectada,
uma análise correspondente será exibida abaixo.

Acessar os logs em Tempo Real do Spark


Os logs do Spark são essenciais para localizar exceções e diagnosticar desempenho ou
falhas. O recurso de monitoramento contextual no notebook apresenta os logs
diretamente a você na célula específica que você está executando. Você pode pesquisar
os logs ou filtrá-los por erros e avisos.

Navegue até os detalhes de monitoramento do


Spark e a IU do Spark
Se você quiser acessar informações adicionais sobre a execução do Spark no nível do
notebook, é possível navegar até a página de detalhes do aplicativo Spark ou a IU do
Spark pelas opções disponíveis no menu de contexto.

Conteúdo relacionado
Saiba mais sobre o Assistente do Spark
Monitoramento de detalhes do aplicativo Apache Spark
Usar o servidor de histórico do Spark estendido para depurar aplicativos

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Monitorar a definição de trabalho do
Apache Spark
Artigo • 06/12/2023

Ao usar o monitoramento em linha do item de definição de trabalho do Spark, você


pode acompanhar o seguinte:

Monitore o progresso e o status de uma definição de trabalho do Spark em


execução.
Exiba o status e a duração das execuções anteriores da definição de trabalho do
Spark.

Você pode obter essas informações no menu de contexto Execuções Recentes no


workspace ou navegando pelas atividades de definição de trabalho do Spark no hub de
monitoramento.

Monitoramento em linha da definição de


trabalho do Spark
O recurso de monitoramento em linha da definição de trabalho do Spark permite que
você exiba o status de envio e execução da definição de trabalho do Spark em tempo
real. Você também pode ver as execuções e configurações anteriores da definição de
trabalho do Spark e navegar até a página de detalhes do aplicativo Spark para ver mais
detalhes.


Exibição do item de definição de trabalho do
Spark no workspace
Você pode acessar as execuções de trabalho associadas a itens específicos de definição
de trabalho do Spark usando o menu de contexto Execução recente na página inicial do
workspace.

A definição do trabalho do Spark é executada


no Hub de monitoramento
Para exibir todos os aplicativos do Spark relacionados a uma definição de trabalho do
Spark, acesse o Hub de monitoramento. Classifique ou filtre a coluna Tipo de Item para
exibir todas as atividades de execução associadas às definições de trabalho do Spark.


Conteúdo relacionado
A próxima etapa após a exibição dos detalhes de um aplicativo Apache Spark é exibir o
progresso do trabalho do Spark abaixo da célula do Notebook. Você pode consultar

Monitoramento de detalhes do aplicativo Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Monitoramento de detalhes
do aplicativo Apache Spark
Artigo • 21/11/2023

Com o Microsoft Fabric, você pode utilizar o Apache Spark para executar notebooks,
trabalhos e outros tipos de aplicativos em seu espaço de trabalho. Este artigo explica
como monitorar seu aplicativo Apache Spark, permitindo que você fique de olho no
status de execução recente, nos problemas e no progresso de seus trabalhos.

Exibir aplicativos Apache Spark


É possível fazer a exibição de todos os aplicativos Apache Spark na definição de
trabalho do Spark ou no menu de contexto do item do notebook que mostra a opção
de execução recente ->Execuções recentes.

É possível selecionar o nome do aplicativo que deseja exibir na lista de aplicativos; na


página de detalhes do aplicativo, é possível exibir os detalhes do aplicativo.

Monitorar o status do aplicativo do Apache


Spark
Abra a página de Execuções recentes da definição de trabalho do Spark ou do
notebook para exibir o status do aplicativo Apache.
Sucesso

Em espera

Parado

Canceled

Com falha

Trabalhos
Abrir um trabalho do aplicativo Apache Spark no menu de contexto do item Definição
do trabalho do Spark ou notebook mostra a opção Execução recente ->Execução
recente -> selecionar um trabalho na página de execuções recentes.

Na página de detalhes do monitoramento do aplicativo Apache Spark, a lista de


execuções do trabalho é exibida na guia Trabalhos, e é possível exibir os detalhes de
cada trabalho aqui, incluindo ID do Trabalho, Descrição, Estado, Estágios, Tarefas,
Duração, Processado, Dados lidos, Dados gravados e Snippet de código.

Clicar na ID do trabalho pode expandir/colapsar o trabalho.


Clique na descrição do trabalho e você poderá ir para a página do trabalho ou do
estágio na interface do usuário do Spark.
Clique no snippet do código do trabalho para verificar e copiar o código
relacionado a esse trabalho.

Recursos (versão prévia)


O grafo de uso do executor exibe visualmente a alocação de executores de trabalho do
Spark e o uso de recursos. Atualmente, somente as informações de runtime do Spark
3.4 e superior exibirão esse recurso. Selecione Recursos (versão prévia) e, em seguida,
quatro tipos de curvas sobre o uso do executor são redigidos, incluindo Em execução,
Ocioso, Alocado, Máximo de instâncias.

Para Alocado, refere-se à situação principal alocada durante a execução do


aplicativo Spark.

Para Instâncias máximas, refere-se ao número máximo de núcleos alocados para o


aplicativo Spark.

Para Execução, refere-se ao número real de núcleos usados pelo aplicativo Spark
quando ele está em execução. Clique em um ponto no tempo enquanto o
aplicativo Spark está em execução. Você pode ver os detalhes de alocação do
núcleo do executor em execução na parte inferior do grafo.

Para Idled, é o número de núcleos não utilizados enquanto o aplicativo Spark está
em execução.

Em alguns casos, em algum momento, o número de tarefas pode exceder a capacidade


dos núcleos do executor (ou seja, números de tarefa > total de núcleos do executor /
spark.task.cpus). Isso é o esperado, pois há um intervalo de tempo entre uma tarefa ser
marcada como em execução e ela estar realmente em execução em um núcleo do
executor. Portanto, algumas tarefas podem ser mostradas como em execução, mas não
estar sendo executadas em nenhum núcleo.

Selecione o ícone de cor para selecionar ou desmarcar o conteúdo correspondente em


todo o grafo.

Painel do resumo
Na página de monitoramento do aplicativo Apache Spark, clique no botão
Propriedades para abrir/recolher o painel de resumo. Você pode exibir os detalhes
desse aplicativo em Detalhes.

Status desse aplicativo do Spark.


A ID desse aplicativo do Spark.
Duração total.
Duração da execução desse aplicativo do Spark.
Duração da fila para esse aplicativo do Spark.
ID do Livy
Remetente desse aplicativo do Spark.
Tempo de envio para este aplicativo do Spark.
Número de executores.

Logs
Na guia Logs, é possível exibir o registro completo de Livy, Prelaunch, Driver log com
diferentes opções selecionadas no painel esquerdo. E você pode recuperar diretamente
as informações de log exigidas pesquisando palavras-chave e exibir os logs filtrando o
status do log. Clique em Baixar Log para baixar as informações do log para o local.
Às vezes, não há logs disponíveis, como, por exemplo, o status do trabalho está na fila e
a criação do cluster falhou.

Os logs ao vivo só estão disponíveis quando o envio do aplicativo falha, e os registros


do driver também são fornecidos.

Dados
Na guia Dados, é possível copiar a lista de dados na área de transferência, fazer
download da lista de dados e dos dados individuais e verificar as propriedades de cada
dado.

O painel esquerdo pode ser expandido ou recolhido.


O nome, o formato da leitura, o tamanho, a origem e o caminho dos arquivos de
entrada e saída serão exibidos nessa lista.
É possível fazer download dos arquivos de entrada e saída, copiar o caminho e
exibir as propriedades.

Itens relacionados
A guia Itens relacionados permite navegar e exibir os itens associados ao aplicativo
Apache Spark, incluindo Notebooks, definição de trabalho do Spark e/ou Pipelines. A
página de itens relacionados exibe o instantâneo do código e os valores dos parâmetros
no tempo de execução dos notebooks. Ela também mostra o instantâneo de todas as
configurações e parâmetros no momento do envio para as definições de trabalho do
Spark. Se o aplicativo Apache Spark estiver associado a um pipeline, a página de itens
relacionados também apresentará o pipeline correspondente e a atividade do Spark.

Na tela Itens Relacionados, você pode:

Procurar e navegar pelos itens relacionados na árvore hierárquica.


Clique no ícone de elipse "Uma lista de mais ações" para cada item para realizar
ações diferentes.
Clicar no item do instantâneo para exibir seu conteúdo.
Exiba o Breadcrumb para conferir o caminho do item selecionado até a raiz.

Diagnósticos
O painel de diagnóstico fornece aos usuários recomendações em tempo real e análises
de erros, que são geradas pelo Assistente do Spark por meio de uma análise do código
do usuário. Com padrões internos, o Assistente do Apache Spark ajuda os usuários a
evitar erros comuns e analisa as falhas para identificar sua causa raiz.

Próximas etapas
A próxima etapa após a exibição dos detalhes de um aplicativo Apache Spark é
visualizar Progresso do trabalho do Spark abaixo da célula do Notebook. Você pode
consultar:

Monitoramento e depuração contextual do notebook

Comentários
Esta página foi útil?  Yes  No
Fornecer comentários sobre o produto | Pergunte à comunidade
Usar o servidor de histórico do Apache
Spark estendido para depurar e
diagnosticar aplicativos Apache Spark
Artigo • 13/03/2024

Este artigo fornece diretrizes de como usar o servidor de histórico do Apache Spark
estendido para depurar e diagnosticar aplicativos Spark concluídos e em execução.

Acesse o servidor de histórico do Apache Spark


O servidor de histórico do Apache Spark é a interface do usuário da Web para
aplicativos Spark concluídos e em execução. Você pode abrir a interface do usuário da
Web do Apache Spark no notebook do indicador de progresso ou na página de
detalhes do aplicativo Apache Spark.

Abrir a interface do usuário da Web do Spark no


notebook do indicador de progresso
Quando um trabalho do Apache Spark é disparado, o botão para abrir a Interface do
usuário da Web do Spark está dentro da opção Mais ações no indicador de progresso.
Selecione a Interface do usuário da Web do Spark e aguarde alguns segundos e, em
seguida, a página interface do usuário do Spark será exibida.

Como abrir a interface do usuário da Web do Spark na


página de detalhes do aplicativo Apache Spark
A interface do usuário da Web do Spark também pode ser aberta por meio da página
de detalhes do aplicativo Apache Spark. Selecione Hub de monitoramento no lado
esquerdo da página e, em seguida, selecione um aplicativo Apache Spark. A página de
detalhes do aplicativo é exibida.

Para um aplicativo Apache Spark cujo status está como em execução, o botão mostra a
interface do usuário do Spark. Selecione Interface do Usuário do Spark e a página
interface do usuário do Spark é exibida.

Para um aplicativo Apache Spark cuja status foi encerrada, o status de encerramento
pode ser Interrompido, Com Falha, Cancelado ou Concluído. O botão mostra o
Servidor de histórico do Spark. Selecione Servidor de histórico do Spark e a página
interface do usuário do Spark é exibida.

Guia Grafo no servidor de histórico do Apache


Spark
Selecione a ID do trabalho que deseja ver. Em seguida, selecione Grafo no menu de
ferramentas para acessar a exibição de grafo do trabalho.

Visão geral
Você pode ter uma visão geral do trabalho no grafo do trabalho gerado. Por padrão, o
grafo mostra todos os trabalhos. Você pode filtrar a exibição por ID do Trabalho.

Monitor
Por padrão, a exibição de Progresso é selecionada. Você pode verificar o fluxo de dados
selecionando Lido ou Gravado na lista suspensa Exibir.

O nó do grafo exibe as cores mostradas na legenda do mapa de calor.


Reprodução
Para reproduzir o trabalho, selecione Reprodução. Selecione Parar a qualquer momento
para parar. As cores da tarefa mostram status diferentes durante a reprodução:

ノ Expandir a tabela

Cor Significado

Verde Bem-sucedido: o trabalho foi concluído com êxito.

Laranja Repetido: instâncias de tarefas que falharam, mas não afetam o resultado final do
trabalho. Essas tarefas tiveram instâncias duplicadas ou repetidas que poderão ser
bem-sucedidas mais tarde.

Azul Em execução: a tarefa está em execução.

Branca Aguardando ou ignorado: a tarefa está esperando para ser executada ou a fase foi
ignorada.

Vermelho Falha: a tarefa falhou.

A imagem a seguir mostra as cores de status verde, laranja e azul.


A imagem a seguir mostra as cores de status verde e branco.

A imagem a seguir mostra as cores de status vermelho e verde.

7 Observação

O servidor de histórico do Apache Spark permite a reprodução de cada trabalho


concluído (mas não permite a reprodução para trabalhos incompletos).

Zoom
Use a rolagem do mouse para ampliar e reduzir o grafo do trabalho ou selecione
Aplicar Zoom para Ajustar para fazer com que ele se ajuste à tela.

Dicas de ferramenta
Focalize o nó do grafo para ver a dica de ferramenta quando houver tarefas com falha e
selecione uma fase para abrir a página referente a ela.

Na guia do grafo do trabalho, as fases têm uma dica de ferramenta e um pequeno ícone
exibido se houver tarefas que atendam às seguintes condições:

ノ Expandir a tabela

Condição Descrição

Distorção de Tamanho de leitura de dados > tamanho médio de leitura de dados de todas as
dados tarefas dentro deste estágio * 2 e tamanho de leitura de dados > 10 MB.

Distorção de tempo de execução > tempo médio de execução de todas as tarefas dentro
tempo desta fase * 2 e tempo de execução > 2 minutos.

Descrição do nó do grafo
O nó do grafo do trabalho exibe as seguintes informações de cada fase:

ID
Nome ou descrição
Número total de tarefas
Leitura de dados: a soma do tamanho de entrada e o tamanho de leitura em
ordem aleatória
Gravação de dados: a soma do tamanho de saída e do tamanho das gravações em
ordem aleatória
Tempo de execução: o tempo entre a hora de início da primeira tentativa e a hora
de conclusão da última tentativa
Contagem de linhas: a soma dos registros de entrada, registros de saída, registros
de leitura aleatória e registros de gravação aleatória
Progresso

7 Observação

Por padrão, o nó do grafo do trabalho exibe informações da última tentativa de


cada fase (exceto pelo tempo de execução da fase). No entanto, durante a
reprodução, o nó do grafo mostra informações sobre cada tentativa.

O tamanho dos dados de leitura e gravação é de 1 MB = 1000 KB = 1000 * 1000


bytes.

Fornecer comentários
Envie comentários sobre problemas selecionando Fornecer comentários.

Explorar a guia Diagnóstico no servidor de


histórico do Apache Spark
Para acessar a guia Diagnóstico, selecione uma ID de trabalho. Em seguida, selecione
Diagnóstico no menu de ferramentas para acessar a exibição de Diagnóstico do
trabalho. A guia de diagnóstico inclui Distorção de dados, Distorção de tempo e
Análise de uso do executor.

Confira as informações de Distorção de dados, Distorção de tempo e Análise de uso


do executor selecionando as respectivas guias.

Distorção de dados
Quando você seleciona a guia Distorção de Dados, as tarefas distorcidas
correspondentes são exibidas com base nos parâmetros especificados.

Especificar Parâmetros – a primeira seção exibe os parâmetros, que são usados


para detectar a Distorção de dados. A regra padrão é: a leitura de dados da tarefa
é maior que três vezes a média da leitura de dados da tarefa e a leitura de dados
da tarefa é maior do que 10 MB. Se quiser definir sua regra para tarefas com
distorção, você poderá escolher seus parâmetros. As seções de Fase Distorcida e
Gráfico de Distorção são atualizadas de acordo.

Estágio Distorcido: a segunda seção exibe as fases que têm tarefas distorcidas que
atendem aos critérios especificados acima. Se houver mais de uma tarefa
distorcida em uma fase, a tabela de fase distorcida exibirá apenas a tarefa mais
distorcida (por exemplo, com os maiores dados para distorção de dados).

Gráfico de Distorção: quando uma linha na tabela da fase com distorção é


selecionada, o gráfico de distorção exibe mais detalhes de distribuições da tarefa
com base na leitura de dados e no tempo de execução. As tarefas distorcidas são
marcadas em vermelho e as normais são marcadas em azul. O gráfico exibe até
100 tarefas de exemplo e os detalhes da tarefa são exibidos no painel inferior
direito.

Distorção de tempo
A guia Distorção de Tempo exibe tarefas distorcidas com base no tempo de execução
da tarefa.
Especificar Parâmetros: a primeira seção exibe os parâmetros, que são usados
para detectar a distorção de tempo. Os critérios padrão para detectar a distorção
de tempo são: o tempo de execução da tarefa é maior do que três vezes o tempo
médio de execução e o tempo de execução da tarefa é maior que 30 segundos.
Você pode alterar os parâmetros com base em suas necessidades. O Estágio
Distorcido e o Gráfico de Distorção exibem as informações sobre as fases e as
tarefas correspondentes, assim como a guia Distorção de Dados acima.

Selecione Distorção de Tempo e o resultado filtrado será exibido na seção Fase


Distorcida de acordo com os parâmetros definidos na seção Especificar
Parâmetros. Ao selecionar um item na seção Estágio Distorcido, o gráfico
correspondente será exibido na seção 3 e os detalhes da tarefa serão exibidos no
painel inferior direito.

Análise de uso do executor


Esse recurso foi preterido no Fabric. Se você ainda quiser usar como solução alternativa,
acesse a página adicionando expressamente "/executorusage" atrás do caminho
"/diagnostic" na URL, dessa forma:

Conteúdo relacionado
Visão geral do monitoramento do Apache Spark
Procurar as execuções recentes do item
Monitorar trabalhos do Apache Spark em notebooks
Monitorar a definição de trabalho do Apache Spark
Monitorar os detalhes do aplicativo Apache Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Monitorar o consumo de capacidade do
Spark
Artigo • 15/11/2023

A finalidade deste artigo é oferecer diretrizes para administradores que desejam


monitorar atividades nas capacidades que gerenciam. Usando os relatórios de consumo
de capacidade do Spark disponíveis no aplicativo Uso e Métricas do Microsoft Fabric, os
administradores podem obter insights do consumo da capacidade faturável do Spark
para itens, incluindo Lakehouse, Notebook e definições de trabalho do Spark. Algumas
atividades de consumo de capacidade do Spark não são relatadas no aplicativo.

Consumo de capacidade do Spark relatado


As operações a seguir de lakehouses, notebooks e definições de trabalho do Spark são
tratadas como atividades faturáveis.

Nome da operação Item Comentários

Operações do Lakehouse Os usuários visualizam a tabela no Lakehouse


Lakehouse Explorer.

Carga da tabela do Lakehouse Os usuários carregam a tabela delta no


Lakehouse Lakehouse Explorer.

Execução do notebook Notebook do O Notebook do Synapse é executado


Synapse manualmente pelos usuários.

Execução do HC do Notebook do O Notebook do Synapse é executado na sessão


notebook Synapse do Spark de alta simultaneidade.

Execução agendada do Notebook do O Notebook do Synapse é executado disparado


notebook Synapse por eventos agendados do notebook.

Execução de pipeline do Notebook do O Notebook do Synapse é executado disparado


notebook Synapse pelo pipeline.

Execução do VS Code Notebook do O Notebook do Synapse é executado no VS


do notebook Synapse Code.

Execução de trabalho Definição de Execuções de trabalho em lotes do Spark


do Spark Trabalho do Spark iniciadas pelo envio do usuário.

Execução agendada do Definição de O trabalho em lote do Synapse é executado


trabalho do Spark Trabalho do Spark disparado por eventos agendados do notebook.
Nome da operação Item Comentários

Execução do pipeline de Definição de O trabalho em lote do Synapse é executado


trabalho do Spark Trabalho do Spark disparado pelo pipeline.

Execução do VS Code Definição de Definição de trabalho do Spark do Synapse


do trabalho do Spark Trabalho do Spark enviada do VS Code.

O consumo de capacidade do Spark que não é


relatado
Há algumas atividades de consumo de capacidade do Spark que não são relatadas no
aplicativo de métricas. Essas atividades incluem trabalhos do Spark do sistema para
gerenciamento de bibliotecas e determinados trabalhos do Spark do sistema para pool
do Spark Dinâmico ou sessões ao vivo.

Gerenciamento de biblioteca – o consumo de capacidade associado ao


gerenciamento de bibliotecas no nível do espaço de trabalho não é relatado no
aplicativo de métricas.

Trabalhos do Spark do sistema – o consumo de capacidade do Spark que não está


associado a um notebook, uma definição de trabalho do Spark ou um lakehouse,
não está incluído no relatório de capacidade.

Relatórios de consumo de capacidade


Todas as operações relacionadas ao Spark são classificadas como operações em
segundo plano. O consumo de capacidade do Spark é exibido em um notebook, uma
definição de trabalho do Spark ou um lakehouse e é agregado pelo nome e item da
operação.


Relatório de operações em segundo plano
As operações em segundo plano são exibidas para um ponto de tempo específico. Na
tabela do relatório, cada linha se refere a uma operação de usuário. Examine a coluna
Usuário para identificar quem executou uma operação específica. Se precisar de mais
informações sobre uma operação específica, você poderá usar sua ID de Operação para
pesquisá-la no hub de monitoramento do Microsoft Fabric.

Próximas etapas
Instalar o aplicativo de métricas do Premium
Usar o aplicativo de métricas Premium

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Cache inteligente no Microsoft Fabric
Artigo • 15/11/2023

O recurso de cache inteligente funciona perfeitamente nos bastidores e armazena dados


em cache para ajudar a acelerar a execução de trabalhos do Apache Spark no Microsoft
Fabric conforme ele lê do armazenamento do OneLake ou do ADLS (Azure Data Lake
Storage) Gen2 por meio de atalhos. Ele também detecta automaticamente as alterações
nos arquivos subjacentes e atualiza automaticamente os arquivos no cache, fornecendo
os dados mais recentes. Quando o tamanho do cache atinge seu limite, o cache libera
automaticamente os dados menos lidos a fim de abrir espaço para dados mais recentes.
Esse recurso reduz o custo total de propriedade porque melhora em até 60% o
desempenho das leituras subsequentes dos arquivos que são armazenados no cache
disponível.

Quando o mecanismo do Apache Spark no Microsoft Fabric consulta um arquivo ou


tabela do Lakehouse, ele faz uma chamada ao armazenamento remoto para ler os
arquivos subjacentes. Com cada solicitação de consulta para ler os mesmos dados, o
mecanismo do Spark deve fazer uma chamada ao armazenamento remoto toda vez.
Esse processo redundante adiciona latência ao tempo total de processamento. O Spark
tem um requisito de cache que você deve definir e liberar manualmente o cache para
minimizar a latência e melhorar o desempenho geral. No entanto, esse requisito pode
resultar em dados obsoletos se os dados subjacentes forem alterados.

O Cache inteligente simplifica esse processo armazenando em cache automaticamente


cada leitura dentro do espaço de armazenamento em cache alocado em cada nó do
Spark, onde os arquivos de dados são armazenados em cache no SSD. Cada solicitação
de arquivo verifica se o arquivo existe no cache do nó local e compara a marca do
armazenamento remoto para determinar se o arquivo está obsoleto. Se o arquivo não
existe ou está obsoleto, o Spark lerá o arquivo e o armazenará no cache. Quando o
cache fica cheio, o arquivo com o último tempo de acesso mais antigo é removido do
cache para permitir arquivos mais recentes.

O cache inteligente é um único cache por nó. Se você estiver usando um nó de tamanho
médio e executar com dois pequenos executores nesse único nó, os dois executores
compartilharão o mesmo cache. Além disso, esse cache no nível do arquivo de dados
possibilita que várias consultas usem o mesmo cache se estiverem acessando os
mesmos dados ou arquivos de dados.

Como ele funciona


No Microsoft Fabric (Runtime 1.1 e 1.2), o cache inteligente é habilitado por padrão para
todos os pools do Spark para todos os workspaces com tamanho de cache com 50%. O
tamanho real do armazenamento disponível e o tamanho do cache de cada nó depende
da família de nós e do tamanho deles.

Quando usar o cache inteligente


Esse recurso beneficiará você se:

Sua carga de trabalho requerer a leitura do mesmo arquivo várias vezes, e o


tamanho do arquivo cabe no cache.

Sua carga de trabalho usa tabelas Delta Lake, Parquet ou formatos de arquivo CSV.

Você não verá o benefício do cache inteligente se:

Você estiver lendo um arquivo que excede o tamanho do cache. Nesse caso, o
início dos arquivos poderá ser removido e as consultas subsequentes precisarão
buscar novamente os dados do armazenamento remoto. Nesse caso, você não
perceberá os benefícios do cache inteligente e talvez queira aumentar o tamanho
do cache e/ou do nó.

Sua carga de trabalho requer grandes quantidades de ordem aleatória. Desabilitar


o cache inteligente libera espaço disponível para evitar que seu trabalho falhe
devido a espaço de armazenamento insuficiente.

Habilitar e desabilitar o cache inteligente


Você pode desabilitar ou habilitar o cache inteligente em uma sessão executando o
código a seguir no notebook ou definindo essa configuração no nível do item do
ambiente ou workspace.

Scala

spark.conf.set("spark.synapse.vegas.useCache", "false/true")

Próximas etapas
O que é a computação do Spark no Microsoft Fabric?
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Tabelas do Lakehouse e Delta Lake
Artigo • 15/11/2023

O Lakehouse do Microsoft Fabric é uma plataforma de arquitetura de dados para


armazenar, gerenciar e analisar dados estruturados e não estruturados em um único
local. Para obter acesso contínuo aos dados em todos os mecanismos de computação
no Microsoft Fabric, o Delta Lake é escolhido como o formato de tabela unificado.

Salvando dados no Lakehouse usando recursos como Carregar para Tabelas ou os


métodos descritos em Opções para obter dados no Lakehouse do Fabric, todos os
dados são salvos no formato Delta.

Para obter uma introdução mais abrangente ao formato de tabela do Delta Lake, siga os
links na seção Próximas etapas.

Big Data, Apache Spark e formatos de tabela


herdados
O Microsoft Fabric Runtime para Apache Spark usa a mesma base que o Azure Synapse
Analytics Runtime para Apache Spark, mas contém as principais diferenças para fornecer
um comportamento mais simplificado em todos os mecanismos no serviço do Microsoft
Fabric. No Microsoft Fabric, os principais recursos de desempenho são ativados por
padrão. Os usuários avançados do Apache Spark podem reverter configurações a
valores anteriores para se alinharem melhor a cenários específicos.

O Lakehouse do Microsoft Fabric e o mecanismo do Apache Spark dão suporte a todos


os tipos de tabela, gerenciados e não gerenciados; isso inclui exibições e formatos
regulares de tabela do Hive não Delta. Tabelas definidas por meio de PARQUET, CSV,
AVRO, JSON e qualquer formato de arquivo compatível com Apache Hive funcionam
conforme o esperado.

A experiência de interface do usuário do Lakehouse Explorer varia dependendo do tipo


de tabela. Atualmente, o Lakehouse Explorer renderiza apenas objetos de tabela.

Diferenças de configuração com o Azure Synapse


Analytics
A tabela a seguir contém as diferenças de configuração entre o Azure Synapse Analytics
e o Microsoft Fabric Runtime para Apache Spark.
Configuração do Apache Spark Valor do Valor do Observações
Microsoft Azure
Fabric Synapse
Analytics

spark.sql.sources.default delta parquet Formato de tabela


padrão

spark.sql.parquet.vorder.enabled true N/D Gravador de Ordem


V

spark.sql.parquet.vorder.dictionaryPageSize 2 GB N/D Limite de tamanho


da página do
dicionário para
Ordem V

spark.microsoft.delta.optimizeWrite.enabled true unset (false) Otimizar gravação

Descoberta automática de tabelas


O Lakehouse explorer fornece uma exibição semelhante a uma árvore dos objetos no
item do Microsoft Fabric Lakehouse. Ele tem uma capacidade fundamental de descobrir
e exibir tabelas descritas no repositório de metadados e no armazenamento do
OneLake. As referências de tabela são exibidas na seção Tables da interface do usuário
do Lakehouse Explorer. A descoberta automática também se aplica a tabelas definidas
em atalhos do OneLake.

Tabelas em atalhos
O Lakehouse do Microsoft Fabric é compatível com tabelas definidas em atalhos do
OneLake para fornecer a maior compatibilidade e nenhuma movimentação de dados. A
tabela a seguir contém as práticas recomendadas de cenário para cada tipo de item ao
usá-la em atalhos.

Destino de Onde Prática recomendada


atalho criar o
atalho

Tabela do Tables Se várias tabelas estiverem presentes no destino, crie um atalho por
Delta Lake section tabela.

Pastas com Files Use o Apache Spark para usar o destino diretamente usando
arquivos section caminhos relativos. Carregue os dados em tabelas Delta nativas do
Lakehouse para obter o desempenho máximo.
Destino de Onde Prática recomendada
atalho criar o
atalho

Tabelas Files Use o Apache Spark para usar o destino diretamente usando
herdadas do section caminhos relativos ou crie uma referência de catálogo de
Apache Hive metadados usando a sintaxe CREATE EXTERNAL TABLE . Carregue os
dados em tabelas Delta nativas do Lakehouse para obter o
desempenho máximo.

Carregar para as Tabelas


O Lakehouse do Microsoft Fabric fornece uma interface de usuário conveniente e
produtiva para simplificar o carregamento de dados em tabelas Delta. O recurso
Carregar para as Tabelas permite que uma experiência visual carregue formatos de
arquivo comuns no Delta para aumentar a produtividade analítica para todas as
personas. Para saber mais sobre o recurso Carregar em Tabelas em detalhes, leia a
documentação de referência do recurso Carregar para Tabelas do Lakehouse Load .

Otimização de tabela do Delta Lake


Manter tabelas em forma para o escopo amplo de cenários de análise não é um feito
menor. O Lakehouse do Microsoft Fabric permite proativamente os parâmetros
importantes para minimizar problemas comuns associados a tabelas de Big Data, como
compactação e tamanhos de arquivos pequenos, e maximizar o desempenho da
consulta. Ainda assim, há muitos cenários em que esses parâmetros precisam de
alterações. O artigo Otimização de tabela e Ordem V do Delta Lake aborda alguns
cenários importantes e fornece um guia detalhado sobre como manter tabelas Delta
com eficiência para o desempenho máximo.

Próximas etapas
O que é o Delta Lake?
Visão geral do Delta Lake
Atalhos
Carregar para Tabelas
Configurações de administração do workspace do Apache Spark
O que é um Runtime no Fabric?
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Carregar na tabela do Delta Lake
Artigo • 15/11/2023

O Lakehouse no Microsoft Fabric fornece um recurso para carregar com eficiência os


tipos de arquivos comuns em uma tabela Delta otimizada pronta para análise. O recurso
Carregar na Tabela permite que os usuários carreguem um único arquivo ou uma pasta
de arquivos em uma tabela. Esse recurso aumenta a produtividade dos engenheiros de
dados, permitindo que eles usem rapidamente uma ação de clique com o botão direito
do mouse para habilitar o carregamento de tabela em arquivos e pastas. Carregar na
tabela também é uma experiência sem código, que reduz a barra de entrada para todas
as personas.

Visão geral dos recursos de Carregamento na


Tabela
Aqui está uma lista de recursos que habilitamos na experiência de Carregar na Tabela
integrada para fornecer flexibilidade aos nossos usuários, aumentando sua
produtividade:

Tipos de arquivo com suporte: atualmente, esse recurso só dá suporte ao


carregamento de tipos de arquivo PARQUET ou CSV. O caso de extensão de
arquivo não importa.

Carga de arquivo único: os usuários podem carregar um único arquivo de sua


escolha em um dos formatos com suporte selecionando "Carregar na Tabela Delta"
na ação de menu de contexto do arquivo.

Carga no nível da pasta: você pode carregar todos os arquivos em uma pasta e
suas subpastas ao mesmo tempo selecionando "Carregar na Tabela Delta" depois
de clicar em uma pasta. Esse recurso percorre automaticamente todos os arquivos
e os carrega em uma Tabela Delta. É importante observar que somente arquivos
do mesmo tipo podem ser carregados ao mesmo tempo em uma tabela.

Carregar para uma tabela nova e existente: o usuário pode optar por carregar
seus arquivos e pastas em uma nova tabela ou em uma tabela existente à sua
escolha. Se decidirem carregar em uma tabela existente, eles terão a opção de
acrescentar ou substituir os dados na tabela.

Opção de arquivo de origem CSV: para arquivos CSV, permitimos que o usuário
especifique se o arquivo de origem inclui cabeçalhos que deseja aproveitar como
nomes de coluna. Os usuários também podem especificar um separador de sua
escolha para substituir o separador de vírgula padrão em vigor.

Carregadas como Tabelas Delta: as tabelas são sempre carregadas usando o


formato de tabela Delta Lake com a otimização de V-Order habilitada.

Diretrizes e regras de validação


O seguinte padrão se aplica à experiência Carregar na tabela:

O nome pode conter somente caracteres alfanuméricos e sublinhados. Ela também


permite qualquer letra em inglês, maiúsculas ou minúsculas e sublinhado ( _ ), com
um comprimento máximo de 256 caracteres. Não permitidos traço ( - ) ou
caracteres de espaço.

Os arquivos de texto sem cabeçalhos de coluna são substituídos pela notação


padrão col# como os nomes das colunas de tabela.

Os nomes de coluna permitem qualquer letra em inglês, maiúscula ou minúscula,


sublinhado ( _ ) e caracteres em outro idioma, como chinês em UTF, tamanho de
até 32 caracteres. Os nomes de coluna são validados durante a ação de
carregamento. O algoritmo Carregar no Delta substitui os valores proibidos pela
barra inferior ( _ ). Se nenhum nome de coluna apropriado for obtido durante a
validação, a ação de carga falhará.

Para arquivos CSV, o separador não pode estar vazio, ter mais de 8 caracteres nem
usar qualquer um dos seguintes caracteres: ( , ) , [ , ] , { , } , aspas simples ( ' ),
aspas duplas ( " ) e espaço em branco.
Próximas etapas
O que é o Delta Lake?
Upload do arquivo CSV no Delta para relatórios do Power BI

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Usar o recurso de manutenção de
tabelas para gerenciar tabelas Delta no
Fabric
Artigo • 15/11/2023

O Lakehouse no Microsoft Fabric fornece o recurso Manutenção de tabelas para


gerenciar tabelas Delta com eficiência e mantê-las sempre prontas para análise. Este
guia descreve o recurso de manutenção de tabelas no Lakehouse e suas
funcionalidades.

Principais funcionalidades do recurso de manutenção da tabelas do Lakehouse:

Execute a manutenção de tabelas ad hoc usando ações contextuais de clique com


o botão direito do mouse em uma tabela Delta dentro do Lakehouse Explorer.
Aplique compactação de bin, V-Order e limpeza de arquivos antigos não
referenciados.

7 Observação

Para tarefas de manutenção avançada, como agrupar vários comandos de


manutenção de tabelas, orquestrá-los com base em um agendamento, uma
abordagem centrada em código é a opção recomendada. Para saber mais, confira
Otimização da tabela Delta Lake e artigo V-Order. Também é possível usar a API
do Lakehouse para automatizar operações de manutenção de tabelas. Para saber
mais consulte Gerenciar o Lakehouse com a API REST do Microsoft Fabric.

Tipos de arquivo com suporte


A manutenção da tabelas do Lakehouse se aplica apenas às tabelas Delta Lake. Não há
suporte para as tabelas herdadas do Hive que usam PARQUET, ORC, AVRO, CSV e outros
formatos.

Operações de manutenção de tabelas


O recurso de manutenção de tabelas oferece três operações.

Optimize: consolida vários arquivos Parquet pequenos em um arquivo grande. Os


mecanismos de processamento de Big Data e todos os mecanismos do Fabric se
beneficiam de ter tamanhos maiores de arquivos. Ter arquivos de tamanho acima
de 128 MB e, de modo ideal, perto de 1 GB, melhora a compactação e a
distribuição de dados nos nós de cluster. Isso reduz a necessidade de verificar
vários arquivos pequenos em busca de operações de leitura eficientes. É uma
prática recomendada geral executar estratégias de otimização depois de carregar
tabelas grandes.
V-Order: aplica classificação otimizada, codificação e compactação a arquivos
Delta Parquet para habilitar operações de leitura rápida entre todos os
mecanismos do Fabric. O V-Order ocorre durante o comando otimizar e é
apresentado como uma opção para o grupo de comandos na experiência do
usuário. Para saber mais sobre o V-Order, consulte Otimização da tabela Delta
Lake e V-Order.
Vacuum: remove arquivos antigos que não são mais referenciados por um log da
tabela Delta. Os arquivos precisam ser mais antigos que o limite de retenção e o
limite de retenção de arquivos padrão é de sete dias. Essa manutenção é
importante para otimizar o custo de armazenamento. A configuração de um
período de retenção mais curto afeta os recursos de viagem no tempo da Delta. É
uma melhor prática geral definir um intervalo de retenção para, pelo menos, sete
dias, pois instantâneos antigos e arquivos não confirmados ainda podem estar em
uso pelos leitores e gravadores de tabela simultâneos. Limpar arquivos ativos com
o comando VACUUM pode levar a falhas de leitor ou, até mesmo, corrupção de
tabela se os arquivos não confirmados forem removidos.

Executar a manutenção de tabelas ad hoc em


uma tabela Delta usando o Lakehouse
Como usar o recurso:

1. Na sua conta do Microsoft Fabric, navegue até o Lakehouse desejado.

2. Na seção Tabelas do gerenciador do Lakehouse, clique com o botão direito do


mouse na tabela ou use as reticências para acessar o menu de contexto.

3. Selecione a entrada do menu Optimize.

4. Verifique as opções de manutenção na caixa de diálogo de acordo com os seus


requisitos. Para obter mais informações, consulte a seção Operações de
manutenção de tabelas deste artigo.

5. Selecione Executar agora para executar o trabalho de manutenção da tabelas.


6. Acompanhe a execução do trabalho de manutenção pelo painel de notificações ou
pela experiência do hub de monitoramento.

Como funciona a manutenção de tabelas?


Depois que Executar agora estiver selecionado, um trabalho de manutenção do Spark
será enviado para execução.

1. O trabalho do Spark é enviado usando a identidade do usuário e os privilégios de


tabela.
2. O trabalho do Spark consome a capacidade do Fabric do workspace/usuário que
enviou o trabalho.
3. Se houver outro trabalho de manutenção em execução em uma tabela, um novo
trabalho será rejeitado.
4. Trabalhos em tabelas diferentes podem ser executados em paralelo.
5. Trabalhos de manutenção de tabelas podem ser facilmente acompanhados no hub
de monitoramento. Procure o texto "TableMaintenance" na coluna do nome da
atividade na página principal do hub de monitoramento.

Próximas etapas
Otimização de tabela do Delta Lake e V-Order
Gerenciar o Lakehouse com a API REST do Microsoft Fabric
Upload do arquivo CSV no Delta para relatórios do Power BI
O que é o Delta Lake?

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Otimização de tabela do Delta Lake e V-
Order
Artigo • 22/01/2024

Os formatos de tabela Lakehouse e Delta Lake são fundamentais para o Microsoft Fabric
– garantir que as tabelas sejam otimizadas para análise é um requisito fundamental. Este
guia aborda conceitos e configurações de otimização de tabelas do Delta Lake e como
aplicá-las aos padrões de uso de Big Data mais comuns.

O que é V-Order?
O V-Order é uma otimização de tempo de gravação para o formato de arquivo
parquet que permite leituras rápidas nos mecanismos de computação do Microsoft
Fabric, como Power BI, SQL, Spark e outros.

Os mecanismos do Power BI e do SQL usam a tecnologia Verti-Scan da Microsoft e


arquivos parquet ordenados por V para obter tempos de acesso a dados como na
memória. O Spark e outros mecanismos de computação que não sejam Verti-Scan
também se beneficiam dos arquivos ordenados por V com uma média de tempos de
leitura 10% mais rápidos, com alguns cenários de até 50%.

O V-Order funciona aplicando classificação especial, distribuição de grupo de linhas,


codificação de dicionário e compactação em arquivos parquet, exigindo menos recursos
de rede, disco e CPU em mecanismos de computação para lê-los, fornecendo eficiência
e desempenho de custo. A classificação por V-Order tem um impacto de 15% em
tempos médios de gravação, mas fornece até 50% mais compactação.

Seu formato parquet de software livre 100% compatível, todos os mecanismos parquet
podem lê-lo como arquivos parquet regulares. As tabelas Delta estão mais eficientes do
que nunca; recursos como o Z-Order são compatíveis com o V-Order. As propriedades
da tabela e os comandos de otimização podem ser usados no controle V-Order em suas
partições.

O V-Order é aplicado no nível do arquivo parquet. Tabelas Delta e seus recursos, como
Z-Order, compactação, vácuo, viagem no tempo, etc., são ortogonais em relação ao V-
Order e, como tal, são compatíveis e podem ser usados juntos para fornecer benefícios
extras.

Controlando gravações de V-Order


O V-Order é habilitado por padrão no Microsoft Fabric e, no Apache Spark, é
controlado pelas configurações a seguir.

ノ Expandir a tabela

Configuração Valor Descrição


padrão

spark.sql.parquet.vorder.enabled true Controla a gravação V-Order


no nível da sessão.

TBLPROPERTIES(“delta.parquet.vorder.enabled”) falso Modo de V-Order padrão


em tabelas

Opção de gravador de dataframe: remover Controlar gravações V-Order


parquet.vorder.enabled definição usando o gravador de
dataframe

Use os comandos a seguir para controlar o uso de gravações V-Order.

Verificar a configuração do V-Order na sessão do Apache


Spark

Spark SQL

SQL

%%sql
SET spark.sql.parquet.vorder.enabled

Desabilitar gravações V-Order na sessão do Apache Spark

Spark SQL

SQL

%%sql
SET spark.sql.parquet.vorder.enabled=FALSE

Habilitar gravações V-Order na sessão do Apache Spark


) Importante

Quando habilitado no nível da sessão. Todas as gravações parquet são feitas com o
V-Order habilitado. Isso inclui tabelas parquet não Delta e tabelas Delta com a
propriedade de tabela parquet.vorder.enabled definida como true ou false .

Spark SQL

SQL

%%sql
SET spark.sql.parquet.vorder.enabled=TRUE

Controlar o V-Order usando as propriedades da tabela


Delta
Habilite a propriedade da tabela V-Order durante a criação da tabela:

SQL

%%sql
CREATE TABLE person (id INT, name STRING, age INT) USING parquet
TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");

) Importante

Quando a propriedade table é definida como true; Os comandos INSERT, UPDATE e


MERGE se comportarão conforme o esperado e desempenharão a otimização do
tempo de gravação. Se a configuração da sessão V-Order estiver definida como
true ou o spark.write a habilitar, as gravações serão V-Order mesmo se
TBLPROPERTIES estiver definida como false.

Habilite ou desabilite o V-Order alterando a propriedade table:

SQL

%%sql
ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" =
"true");

ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" =


"false");

ALTER TABLE person UNSET TBLPROPERTIES("delta.parquet.vorder.enabled");

Depois de habilitar ou desabilitar o V-Order usando as propriedades da tabela, somente


gravações futuras na tabela serão afetadas. Os arquivos parquet mantêm a ordenação
usada quando ela foi criada. Para alterar a estrutura física atual para aplicar ou remover
a V-Order, leia a seção "Controlar V-Order ao otimizar uma tabela".

Controlando a V-Order diretamente em operações de


gravação
Todos os comandos de gravação do Apache Spark herdam a configuração da sessão se
não forem explícitos. Todos os comandos a seguir são gravados usando o V-Order
herdando implicitamente a configuração da sessão.

Python

df_source.write\
.format("delta")\
.mode("append")\
.saveAsTable("myschema.mytable")

DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.location("Files/people")\
.execute()

df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2017-01-01' AND end_date <= '2017-
01-31'")\
.saveAsTable("myschema.mytable")

) Importante

O V-Order se aplica apenas para arquivos afetados pelo predicado.

Em uma sessão em que spark.sql.parquet.vorder.enabled não está definido ou está


definido como false, os seguintes comandos gravariam usando A V-Order:
Python

df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2017-01-01' AND end_date <= '2017-
01-31'")\
.option("parquet.vorder.enabled ","true")\
.saveAsTable("myschema.mytable")

DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.option("parquet.vorder.enabled","true")\
.location("Files/people")\
.execute()

O que é Otimizar Gravação?


As cargas de trabalho analíticas em mecanismos de processamento de Big Data, como o
Apache Spark, têm um desempenho mais eficiente ao usar tamanhos de arquivo
maiores padronizados. A relação entre o tamanho do arquivo, o número de arquivos, o
número de trabalhos do Spark e suas configurações, executa uma função crítica no
desempenho. A ingestão de dados em tabelas de data lake pode ter a característica
herdada de gravar constantemente muitos arquivos pequenos. Esse cenário é
comumente conhecido como o “problema dos arquivos pequenos”.

Optimize Write é um recurso Delta Lake no Microsoft Fabric e Azure Synapse Analytics
no mecanismo Apache Spark que reduz o número de arquivos gravados e visa aumentar
o tamanho do arquivo individual dos dados gravados. O tamanho do arquivo de destino
pode ser alterado por requisitos de carga de trabalho usando as configurações.

O recurso é habilitado por padrão no Microsoft Fabric Runtime para Apache Spark. Para
saber mais sobre otimizar cenários de uso de gravação, leia o artigo A necessidade de
otimizar a gravação no Apache Spark.

Otimização de mesclagem
O comando MESCLAR do Delta Lake permite que os usuários atualizem uma tabela
delta com condições avançadas. Você pode fazer atualização de dados de uma tabela
de origem, exibição ou DataFrame em uma tabela de destino usando o comando
MESCLAR. No entanto, o algoritmo atual na distribuição código aberto do Delta Lake
não é totalmente otimizado para lidar com linhas não modificadas. A equipe do Delta
do Microsoft Spark implementou uma otimização de Mesclagem em ordem aleatória
baixa personalizada, as linhas não modificadas são excluídas de uma operação de
embaralhamento dispendiosa necessária para atualizar linhas correspondentes.

A implementação é controlada pela configuração


spark.microsoft.delta.merge.lowShuffle.enabled , habilitada por padrão no runtime.

Ele não requer alterações de código e é totalmente compatível com a distribuição de


software livre do Delta Lake. Para saber mais sobre cenários de uso de Mesclagem em
ordem aleatória baixa, leia o artigo Otimização de mesclagem em ordem aleatória baixa
em tabelas Delta.

Manutenção de tabela Delta


À medida que as tabelas Delta mudam, o desempenho e a eficiência do custo de
armazenamento tendem a se degradar pelos seguintes motivos:

Novos dados adicionados à tabela podem distorcer dados.


As taxas de ingestão de dados em lote e streaming podem trazer muitos arquivos
pequenos.
As operações de atualização e exclusão podem criar sobrecarga de leitura; os
arquivos parquet são imutáveis por design, portanto, as tabelas Delta adicionam
novos arquivos parquet com o conjunto de alterações, ampliando ainda mais os
problemas impostos pelos dois primeiros itens.
Não são mais necessários arquivos de dados e arquivos de log disponíveis no
armazenamento.

Para manter as tabelas no melhor estado para melhor desempenho, execute operações
de compactação de compartimento e de vácuo nas tabelas Delta. A compactação de bin
é obtida pelo comando OPTIMIZE ; ele mescla todas as alterações em arquivos
parquet maiores e consolidados. A limpeza de armazenamento desreferenciado é
obtida pelo comando VACUUM .

Os comandos de manutenção da tabela OPTIMIZE e VACUUM, podem ser usados em


notebooks e definições de trabalho do Spark e, em seguida, orquestrados usando
recursos de plataforma. O Lakehouse no Fabric oferece uma funcionalidade para usar a
interface do usuário para executar a manutenção de tabela ad hoc, conforme explicado
no artigo Manutenção da Tabela do Delta Lake.

) Importante
Projetar corretamente a estrutura física da tabela com base na frequência de
ingestão e nos padrões de leitura esperados, provavelmente é mais importante do
que executar os comandos de otimização descritos nesta seção.

Controlar a V-Order ao otimizar uma tabela


Os seguintes comandos estruturam bin-compact e reescrevem todos os arquivos
afetados usando o V-Order, independentemente da configuração de TBLPROPERTIES ou
da configuração de sessão:

SQL

%%sql
OPTIMIZE <table|fileOrFolderPath> VORDER;

OPTIMIZE <table|fileOrFolderPath> WHERE <predicate> VORDER;

OPTIMIZE <table|fileOrFolderPath> WHERE <predicate> [ZORDER BY (col_name1,


col_name2, ...)] VORDER;

Quando ZORDER e VORDER são usados juntos, o Apache Spark executa bin-
compaction, ZORDER, VORDER sequencialmente.

Os comandos a seguir compactam e reescrevem todos os arquivos afetados usando a


configuração TBLPROPERTIES. Se TBLPROPERTIES for definida como V-Order, todos os
arquivos afetados serão gravados como V-Order. Se TBLPROPERTIES for não definida ou
for definida como false para V-Order, ela herdará a configuração da sessão; portanto,
para remover o V-Order da tabela, defina a configuração da sessão como false.

SQL

%%sql
OPTIMIZE <table|fileOrFolderPath>;

OPTIMIZE <table|fileOrFolderPath> WHERE predicate;

OPTIMIZE <table|fileOrFolderPath> WHERE predicate [ZORDER BY (col_name1,


col_name2, ...)];

Conteúdo relacionado
O que é o Delta Lake?
Lakehouse e Delta Lake
A necessidade de otimizar a gravação no Apache Spark
Otimização de Mesclagem em ordem aleatória baixa em tabelas Delta

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como usar notebooks do Microsoft
Fabric
Artigo • 15/11/2023

O notebook do Microsoft Fabric é o item de código principal para o desenvolvimento


de trabalhos do Apache Spark e para experimentos de aprendizado de máquina. É uma
superfície interativa baseada na Web utilizada por cientistas de dados e engenheiros de
dados para escrever códigos que se beneficiam de visualizações avançadas e texto
Markdown. Os engenheiros de dados gravam código para ingestão de dados,
preparação de dados e transformação de dados. Os cientistas de dados também usam
notebooks para criar soluções de aprendizado de máquina, incluindo a criação de
experimentos e modelos, acompanhamento de modelos e implantação.

Com um notebook do Fabric, você pode:

Começar a trabalhar com um mínimo de configuração.


Explorar e processar facilmente dados com uma experiência intuitiva de baixo
código.
Manter os dados protegidos com recursos internos de segurança corporativa.
Analisar dados em formatos brutos (CSV, txt, JSON etc.), formatos de arquivo
processados (parquet, Delta Lake, etc.), usando as funcionalidades avançadas do
Spark.
Seja produtivo com recursos de criação aprimorados e visualização de dados
interna.

Este artigo descreve como usar notebooks em experiências de ciência de dados e


engenharia de dados.

Criar notebooks
Você pode criar um notebook ou importar um notebook existente.

Criar um novo notebook


Semelhante a outros processos de criação de item padrão do Fabric, você pode criar
facilmente um notebook na página inicial de Engenharia de Dados do Fabric, na opção
Novo do workspace ou em Criar Hub.

Importar notebooks existentes


Você pode importar um ou mais notebooks existentes do computador local para um
workspace do Fabric da página inicial de Engenharia de Dados ou Ciência de Dados. Os
notebooks do Fabric reconhecem os arquivos .ipynb padrão Jupyter Notebook e
arquivos de origem, como .py, .scala e .sql, e criam itens de notebook adequadamente.

Exportar um notebook
Você pode exportar seu notebook para outros formatos padrão. O notebook do
Synapse pode ser exportado para:

O arquivo padrão de notebook (.ipynb) usado nos notebooks Jupyter.


Um arquivo HTML (.html) que pode ser aberto diretamente no navegador.
Um arquivo Python (.py).
Um arquivo Latex (.tex).

Salvar um notebook
No Fabric, por padrão, um notebook será salvo automaticamente depois de aberto e
editado. Você não precisa se preocupar com a perda de alterações de código. Você
também pode usar Salvar uma cópia para clonar outra cópia no workspace atual ou em
outro workspace.
Se preferir salvar o notebook manualmente, mude para a opção de salvamento Manual
para ter um branch local do seu item de notebook e use a opção Salvar ou CTRL+s para
salvar suas alterações.

Você também pode alternar para o modo de salvamento manual selecionando Editar –
>Opções de salvamento – >Manual. Para ativar um branch local do notebook e salvá-lo
manualmente selecione Salvar ou use o atalho de teclado Ctrl+s.

Conectar lakehouses e notebooks


Os notebooks do Fabric agora dão suporte à interação com lakehouses. Você pode
adicionar facilmente um lakehouse novo ou existente pelo Lakehouse Explorer.

Você pode acessar diversos lakehouses no Lakehouse Explorer e definir um deles como
padrão fixando-o. Seu padrão será montado no diretório de trabalho de runtime e você
poderá ler ou gravar no lakehouse padrão usando um caminho local.
7 Observação

Você precisa reiniciar a sessão depois de fixar um novo lakehouse ou de renomear


o lakehouse padrão.

Adicionar ou remover um lakehouse


Selecionar o ícone X ao lado de um nome de lakehouse o remove da guia do notebook,
mas o item lakehouse ainda existe no workspace.

Selecione Adicionar lakehouse para adicionar mais lakehouses ao notebook,


adicionando um existente ou criando um lakehouse.

Explorar um arquivo lakehouse


A subpasta e os arquivos na seção Tabelas e Arquivos do modo de exibição Lake
aparecem em uma área de conteúdo entre a lista lakehouse e o conteúdo do notebook.
Selecione pastas diferentes na seção Tabelas e Arquivos para atualizar a área de
conteúdo.

Operações de pasta e arquivo


Se você selecionar um arquivo (.csv, .parquet, .txt, .jpg, .png etc.) clicando com o botão
direito do mouse, poderá usar a API do Spark ou do Pandas para carregar os dados.
Uma nova célula de código será gerada e inserida abaixo da célula de foco.

Você pode copiar facilmente o caminho com um formato diferente do arquivo ou pasta
selecionado e usar o caminho correspondente no seu código.
Recursos do Notebook
O gerenciador de recursos do notebook fornece um sistema de arquivos semelhante ao
Unix para ajudá-lo a gerenciar suas pastas e arquivos. Ele oferece um espaço gravável
do sistema de arquivos em que você pode armazenar arquivos de tamanho pequeno,
como módulos de código, modelos semânticos e imagens. Você pode acessá-los
facilmente com código no notebook como se estivesse trabalhando com seu sistema de
arquivos local.
Essa pasta interna é uma pasta predefinida do sistema para cada instância do notebook.
Ela preserva até 500 MB de armazenamento para armazenar as dependências do
notebook atual. Estes são os principais recursos do notebook:

Você pode usar operações comuns, como criar/excluir, carregar/baixar,


arrastar/soltar, renomear, duplicar e pesquisar pela interface do usuário.
Você pode usar caminhos relativos como builtin/YourData.txt para uma
exploração rápida. O método mssparkutils.nbResPath ajuda você a compor o
caminho completo.
Você pode mover facilmente seus dados validados para um lakehouse por meio da
opção Gravar no lakehouse. O Fabric tem snippets de código avançados
incorporados dos tipos de arquivo comuns para ajudar você a começar a usar
rapidamente.
Esses recursos também estão disponíveis para uso no caso de Execução do
notebook de referência por meio do mssparkutils.notebook.run() .

7 Observação

Atualmente, o Fabric dá suporte ao carregamento de determinados tipos de


arquivo por meio da interface do usuário, incluindo arquivos .py, .whl, .jar, .txt,
.json, .yml, .xml, .csv, .html, .png, .jpg e .xlsx. Você pode gravar na pasta interna
com tipos de arquivo que não estão na lista por meio de código. Contudo, os
notebooks do Fabric não dão suporte à geração de snippet de código em
tipos de arquivo sem suporte.
Cada arquivo precisa ter até 50 MB de tamanho e a pasta interna permite até
100 instâncias de arquivo/pasta no total.
Ao usar mssparkutils.notebook.run() , utilize o comando
mssparkutils.nbResPath para acessar o recurso do notebook de destino. O

caminho relativo “builtin/” sempre apontará para a pasta interna do notebook


raiz.

Colaborar em um notebook
O notebook do Fabric é um item colaborativo que dá suporte à edição de vários
usuários no mesmo notebook.

Ao abrir um notebook, você entra no modo de coedição por padrão e cada edição do
notebook é salva automaticamente. Se os seus colegas abrirem o mesmo notebook
simultaneamente, você verá o perfil, a saída da execução, o indicador de cursor, o
indicador de seleção e o rastreamento da edição. Ao usar os recursos de colaboração,
você pode facilmente realizar programação em par, depuração remota e cenários de
explicações.

Compartilhar um notebook
Compartilhar um notebook é uma maneira conveniente de colaborar com os membros
da equipe. Por padrão, as funções autorizadas do espaço de trabalho podem exibir ou
editar/executar notebooks. Você pode compartilhar um notebook com a concessão de
permissões específicas.

1. Selecione Compartilhar na barra de ferramentas do notebook.

2. Selecione a categoria correspondente de pessoas que podem exibir este


notebook. Você pode escolher Compartilhar, Editar ou Executar permissões para
os destinatários.

3. Depois de selecionar Aplicar, você pode enviar o notebook diretamente ou copiar


o link para outras pessoas. Em seguida, os destinatários podem abrir o notebook
com a exibição correspondente concedida pelo nível de permissão.
4. Para gerenciar ainda mais as permissões do notebook, selecione Lista de itens do
Workspace>Mais opções e selecione Gerenciar permissões. Nessa tela, você pode
atualizar o acesso e as permissões existentes do notebook.
Comentar uma célula de código
O comentário é outro recurso útil em cenários colaborativos. Atualmente, o Fabric dá
suporte à adição de comentários no nível da célula.

1. Selecione o botão Comentários na barra de ferramentas do notebook ou no


indicador de comentário da célula para abrir o painel Comentários.

2. Selecione o código na célula de código, selecione Novo no painel Comentários,


adicione comentários e selecione Postar comentário para salvar.
3. Se precisar deles, localize as opções Editar comentário, Resolver thread e Excluir
thread, selecionando a opção Mais ao lado do comentário.

Alternar modo do notebook


O notebook do Fabric dá suporte a dois modos que você escolhe facilmente: modo de
Edição e modo de Exibição.

Modo de edição: você pode editar e executar as células e colaborar com outras
pessoas no notebook.
Modo de exibição: você só pode exibir o conteúdo da célula, a saída e os
comentários do notebook. Todas as operações que fazem alterações no notebook
estão desabilitadas.

Próximas etapas
Criar e executar notebooks

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Desenvolver, executar e gerenciar
notebooks do Microsoft Fabric
Artigo • 18/04/2024

Um notebook do Microsoft Fabric é um item de código principal para o desenvolvimento de


trabalhos do Apache Spark e experimentos de aprendizado de máquina. É uma superfície
interativa baseada na Web utilizada por cientistas de dados e engenheiros de dados para
escrever códigos que se beneficiam de visualizações avançadas e texto Markdown. Este artigo
explica como desenvolver notebooks com operações de célula de código e executá-los.

Desenvolver notebooks
Os notebooks consistem em células, que são blocos individuais de código ou texto que podem
ser executados de forma independente ou em grupo.

Fornecemos operações avançadas para desenvolver notebooks:

Adicionar uma célula


Definir uma linguagem principal
Usar vários idiomas
IntelliSense de estilo IDE
Snippets de código
Arrastar e soltar para inserir snippets
Arrastar e soltar para inserir imagens
Formatar célula de texto com botões da barra de ferramentas
Desfazer ou refazer a operação da célula
Mover uma célula
Excluir uma célula
Recolher uma entrada de célula
Recolher uma saída de célula
Segurança da saída da célula
Bloquear ou congelar uma célula
Conteúdos do Notebook
Dobramento de Markdown
Encontrar e substituir

Adicionar uma célula


Há várias maneiras de adicionar uma nova célula ao notebook.

1. Passe o mouse sobre o espaço entre duas células e selecione Código ou Markdown.
2. Use teclas de atalho no modo de comando. Pressione A para inserir uma célula acima da
célula atual. Pressione B para inserir uma célula abaixo da célula atual.

Definir uma linguagem principal


Os notebooks do Fabric suportam atualmente quatro linguagens do Apache Spark:

PySpark (Python)
Spark (Scala)
Spark SQL
SparkR

Defina a linguagem principal para novas células adicionadas na lista suspensa na barra de
comandos superior.

Usar vários idiomas


Use várias linguagens em um notebook especificando o comando magic da linguagem no início
de uma célula. Também poderá alternar o idioma da célula do seletor de idioma. A tabela a
seguir lista os comandos magic para alternar as linguagens de célula.

ノ Expandir a tabela

Comando magic Idioma Descrição

%%pyspark Python Execute uma consulta Python no contexto do Spark.

%%spark Scala Execute uma consulta Scala no contexto do Spark.

%%sql SparkSQL Execute uma consulta SparkSQL no contexto do Spark.

%%html Html Executar uma consulta HTML no Contexto do Spark.

%%sparkr R Execute uma consulta R no contexto do Spark.

IntelliSense de estilo IDE


Os notebooks do Fabric são integrados ao editor Monaco para colocar o IntelliSense de estilo
IDE ao editor de célula. O realce de sintaxe, o marcador de erros e os preenchimentos de código
automáticos ajudam você a codificar rapidamente e identificar problemas.
Os recursos do IntelliSense estão em níveis diferentes de maturidade para linguagens diferentes.
A tabela a seguir mostra o suporte do Fabric:

ノ Expandir a tabela

Languages Realce Marcador Conclusão Conclusão Conclusão Conclusão Recuo Dobramento


da de erro de código de código de código do código Inteligente de código
sintaxe de de sintaxe de de função de função
sintaxe variável do do
sistema usuário

PySpark Sim Sim Sim Sim Sim Sim Sim Sim


(Python)

Spark Sim Sim Sim Sim Sim Sim Sim Sim


(Scala)

SparkSQL Sim Sim Sim Sim Sim Não Sim Yes

SparkR Sim Sim Sim Sim Sim Sim Sim Sim

7 Observação

Você deve ter uma sessão ativa do Spark para usar a conclusão de código do IntelliSense.

Snippets de código
Os notebooks do Fabric fornecem trechos de código que ajudam você a gravar facilmente os
padrões de código utilizados com frequência, como:

Fazer a leitura de dados como um DataFrame do Spark


Desenhar gráficos com o Matplotlib

Os trechos aparecem em Teclas de atalho do IntelliSense de estilo IDE misturados com outras
sugestões. O conteúdo do snippet de código é alinhado com a linguagem de célula de código.
Visualize os snippets disponíveis digitando Snippet. Também poderá digitar qualquer palavra-
chave para visualizar uma lista de snippets relevantes. Por exemplo, se você digitar leitura, verá a
lista de snippets para fazer a leitura dos dados de várias fontes de dados.
Arrastar e soltar para inserir snippets
Use o recurso de arrastar e soltar para fazer a leitura de dados do Lakehouse Explorer de forma
conveniente. Vários tipos de arquivos são suportados aqui, podendo operar em arquivos de
texto, tabelas, imagens, etc. É possível soltar em uma célula existente ou em uma nova célula. O
notebook gera o snippet de código de acordo com a prévia dos dados.

Arrastar e soltar para inserir imagens


Use o recurso de arrastar e soltar para inserir facilmente imagens do navegador ou do
computador local em uma célula de markdown.
Formatar célula de texto com botões da barra de ferramentas
Para concluir ações Markdown comuns, use os botões de formatação na barra de ferramentas da
célula de texto.

Desfazer ou refazer as operações das células


Selecione Desfazer ou Refazer ou pressione Z ou Shift+Z para revogar as operações de célula
mais recentes. É possível desfazer ou refazer até 10 das últimas operações de células históricas.

Operações de desfazer célula com suporte:

Inserir ou excluir célula. É possível revogar as operações de exclusão selecionando Desfazer


(o conteúdo do texto será mantido junto com a célula).
Reordene a célula.
Alternar parâmetro.
Converter entre célula de código e de Markdown.

7 Observação

As operações de texto na célula e as operações de comentários na célula do código não


podem ser desfeitas. É possível desfazer ou refazer até 10 das últimas operações de células
históricas.

Mover uma célula


Você pode arrastar da parte vazia de uma célula e soltá-la na posição desejada.

Também é possível utilizar Mover para cima e Mover para baixo na faixa de opções para mover
a célula selecionada.

Excluir uma célula


Para excluir uma célula, selecione o botão excluir à direita da célula.

Também poderá usar teclas de atalho no modo de comando. Pressione Shift + D para excluir a
célula atual.

Recolher uma entrada de célula


Selecione as elipses Mais comandos (...) na barra de ferramentas da célula e Ocultar entrada
para recolher a entrada da célula atual. Para expandi-la novamente, selecione Mostrar entrada
enquanto a célula estiver recolhida.

Recolher uma saída de célula


Selecione as elipses Mais comandos (...) na barra de ferramentas da célula e Ocultar entrada
para recolher a saída da célula atual. Para expandi-la novamente, selecione Mostrar saída
enquanto a saída da célula estiver recolhida.

Segurança da saída da célula


Usando as funções de acesso a dados OneLake (Preview), os usuários podem configurar o
acesso a apenas pastas específicas em um lakehouse durante consultas de notebook. Os
usuários sem acesso a uma pasta ou tabela verão um erro de autorização negada durante a
execução da consulta.

) Importante

A segurança só se aplica durante a execução da consulta, e todas as células do notebook


que contêm resultados da consulta podem ser exibidas por usuários que não estão
autorizados a executar consultas diretamente nos dados.

Bloquear ou congelar uma célula


As operações de bloqueio e congelamento de células permitem fazer com que as células sejam
somente leitura ou impedir que as células de código sejam executadas em uma pessoa.
Mesclar e dividir células
Use a Mesclagem com células anteriores ou Mesclagem com a próxima célula para mesclar
células relacionadas convenientemente.

Selecionar Dividir célula ajuda você a dividir instruções irrelevantes para várias células. A
operação divide o código de acordo com a posição de linha do cursor.

Conteúdos do Notebook
Selecionar Estruturas do Código ou Sumário apresenta o primeiro cabeçalho de markdown de
qualquer célula de markdown em uma janela de barra lateral para navegação rápida. A barra
lateral de Estruturas do Códigos é redimensionável e recolhível para se ajustar à tela da melhor
maneira possível. Selecione o botão Conteúdos na barra de comandos do notebook para abrir
ou ocultar a barra lateral.

Dobramento de markdown
A opção de dobramento do markdown permite ocultar células sob uma célula de markdown que
contenha um título. A célula de markdown e suas células ocultas são tratadas da mesma forma
que um conjunto de células contíguas multisselecionadas ao realizar operações de célula.
Localizar e substituir
A opção localizar e substituir pode ajudá-lo a corresponder e localizar as palavras-chave ou
expressão no conteúdo do notebook. Também poderá substituir facilmente a cadeia de
caracteres de destino por uma nova cadeia de caracteres.

Executar notebooks
Você pode executar as células de código em seu notebook individualmente ou todas de uma
vez. O status e o progresso de cada célula são exibidos no notebook.

Executar uma célula


Há várias maneiras de executar o código em uma célula.
Passe o mouse sobre a célula a ser executada e selecione o botão Executar célula ou
pressione Ctrl+Enter.

Use teclas de atalho no modo de comando. Pressione Shift+Enter para executar a célula
atual e selecionar a próxima célula. Pressione Alt+Enter para executar a célula atual e
inserir uma nova célula.

Executar todas as células


Selecione o botão Executar tudo para executar todas as células do notebook atual em
sequência.

Executar todas as células acima ou abaixo


Expanda a lista suspensa do Executar tudo e selecione Executar células acima para executar
todas as células acima da atual em sequência. Selecione Executar células abaixo para executar a
célula atual e todas as células abaixo da atual em sequência.

Cancelar todas as células em execução


Selecione Cancelar tudo para cancelar as células em execução ou as células aguardando na fila.

Interromper a sessão
Interromper sessão cancela as células em execução e em espera e interrompe a sessão atual. É
possível reiniciar uma nova sessão selecionando a opção de Executar novamente.

Execução de referência
Execução de referência de um notebook
Além da API de execução de referência mssparkutils, também é possível utilizar o comando
magic %run <notebook name> para fazer referência a outro notebook no contexto do notebook
atual. Todas as variáveis definidas no bloco de anotações de referência estão disponíveis no
notebook atual. O comando magic %run dá suporte a chamadas aninhadas, mas não dá suporte
a chamadas recursivas. Você receberá uma exceção se a profundidade da declaração for maior
que cinco.

Exemplo: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true,


"parameterString": "abc" } .

A referência do Notebook funciona tanto no modo interativo quanto no pipeline.

7 Observação

Atualmente, o comando %run suporta apenas notebooks de referência no mesmo


espaço de trabalho com o notebook atual.
O comando %run atualmente só dá suporte a até quatro tipos de valor de parâmetro:
int , float , bool e string . Não há suporte para a operação de substituição de

variável.
O comando %run não dá suporte às referências aninhadas com um profundidade seja
maior que cinco.

Execução de referência de um script


O comando %run também permite executar arquivos Python ou SQL que são armazenados nos
recursos internos do notebook, para que você possa executar seus arquivos de código-fonte
nesse notebook convenientemente.

%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]

Para opções:

-b/--builtin: essa opção indica que o comando localizará e executará o arquivo de script
especificado a partir dos recursos internos do bloco de anotações.
-c/--current: Essa opção garante que o comando sempre use os recursos internos do
notebook atual, mesmo que este seja referenciado por outros notebooks.

Exemplos:

Para executar script_file.py a partir dos recursos internos: %run -b script_file.py

Para executar script_file.sql a partir dos recursos internos: %run -b script_file.sql


Para executar script_file.py a partir dos recursos internos com variáveis específicas: %run -b
script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true,

"parameterString": "abc" }

7 Observação

Se o comando não contiver -b/--builtin, ele tentará localizar e executar o item do notebook
dentro do mesmo espaço de trabalho, em vez dos recursos internos.

Exemplo de uso para caso de execução aninhado:

Vamos supor que existam dois notebooks.


Notebook1: contém script_file1.py em seus recursos internos
Notebook2: contém script_file2.py em seus recursos internos
Vamos usar o trabalho em Notebook1 como um notebook raiz com o conteúdo: %run
Notebook2 .

Em Notebook2, a instrução de uso é:


Para executar script_file1.py em Notebook1 (o notebook raiz), o código seria: %run -b
script_file1.py

Para executar script_file2.py em Notebook2 (o notebook atual), o código seria: %run -b -


c script_file2.py

Gerenciador de variáveis
Os notebooks do Fabric fornecem um gerenciador de variáveis incorporado que exibe a lista de
nomes de variáveis, tipo, comprimento e valor na atual sessão Spark para células (Python)
PySpark. Mais variáveis são mostradas automaticamente à medida que são definidas nas células
de código. Clicar em cada cabeçalho de coluna classifica as variáveis na tabela.

Para abrir ou ocultar o gerenciador de variáveis, selecione Variáveis na faixa de opções do


notebook Exibir.

7 Observação

O gerenciador de variáveis dá suporte apenas ao Python.

Indicador de status de célula


Um status de execução de célula passo a passo é exibido abaixo da célula para ajudá-lo a ver
seu progresso atual. Após a conclusão da execução da célula, um resumo da execução com a
duração total e a hora de término é exibido e armazenado para referência futura.

Indicador de trabalho do Spark embutido


O notebook do Fabric é baseado no Spark. As células de código são executadas remotamente
no Cluster do Spark. Um indicador de progresso do trabalho do Spark é fornecido com uma
barra de progresso em tempo real que aparece para ajudá-lo a entender o status de execução
do trabalho. O número de tarefas por cada trabalho ou estágio ajuda a identificar o nível
paralelo do seu trabalho do Spark. Você também pode analisar mais detalhadamente a interface
do usuário do Spark de um trabalho (ou estágio) específico por meio da seleção do link no
nome do trabalho (ou estágio).
Também é possível encontrar o Registo em tempo real do nível da célula junto ao indicador de
progresso, e o Diagnóstico pode fornecer sugestões úteis para ajudar a refinar e depurar o
código.

Em Mais ações, você pode navegar facilmente para a página Detalhes do aplicativo do Spark e
para a página Interface do usuário do Spark na Web.

Redação de segredo
Para evitar que as credenciais vazem acidentalmente durante a execução de notebooks, os
notebooks do Fabric dão suporte à Redação secreta para substituir os valores secretos exibidos
na saída da célula por [REDACTED] . A redação secreta é aplicável para Python, Scala, e R.

Comandos magic em um notebook

Comandos magic internos


É possível utilizar os comandos magic conhecidos do Ipython nos notebooks do Fabric. Confira a
lista a seguir de comandos magic disponíveis no momento.
7 Observação

Estes são os únicos comandos magic com suporte no pipeline do Fabric: %%pyspark,
%%spark, %%csharp, %%sql, %%configure.

Comandos magics de linha disponíveis: %lsmagic , %time , %timeit , %history , %run,


%load , %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors,
%dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %logstart, %logstate,
%logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd,
%pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx,
%reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who,
%who_ls, %whos, %xdel, %xmode.

O notebook do Fabric também dá suporte aos comandos de gerenciamento de biblioteca


aprimorados %pip e %conda. Para obter mais informações sobre o uso, consulte Gerenciar
bibliotecas do Apache Spark no Microsoft Fabric.

Comandos magic de célula disponíveis: %%time , %%timeit , %%capture , %%writefile ,


%%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html , %%bash , %%markdown ,
%%perl , %%script , %%sh .

Comandos magic personalizados


Também é possível criar mais comandos magic personalizados para atender às suas
necessidades específicas. Veja um exemplo:

1. Criar um notebook com o nome "MyLakehouseModule".

2. Em outro notebook, faça referência à “MyLakehouseModule” e seus comandos magic. Esse


processo é como você poderá organizar convenientemente seu projeto com notebooks
que usam idiomas diferentes.

Widgets de IPython
Os widgets do IPython são objetos do Python com eventos que têm uma representação no
navegador. É possível utilizar os Widgets IPython como controles de baixo código (por exemplo,
controle deslizante ou caixa de texto) no seu notebook tal como o notebook Jupyter.
Atualmente, ele só funciona em um contexto do Python.

Para usar o Widgets de IPython


1. Importe o módulo ipywidgets primeiro para utilizar a estrutura do Jupyter Widget.

Python

import ipywidgets as widgets

2. Use a função exibir de nível superior para renderizar um widget ou deixar uma expressão
do tipo widget na última linha da célula de código.

Python

slider = widgets.IntSlider()
display(slider)

3. Execute a célula. O widget será exibido na área de saída.

Python

slider = widgets.IntSlider()
display(slider)

4. Use várias chamadas display() para renderizar a mesma instância de widget várias vezes.
Eles permanecem em sincronia uns com os outros.

Python

slider = widgets.IntSlider()
display(slider)
display(slider)

5. Para renderizar dois widgets independentes, crie duas instâncias de widget:

Python

slider1 = widgets.IntSlider()
slider2 = widgets.IntSlider()
display(slider1)
display(slider2)

Widgets com suporte

ノ Expandir a tabela

Tipo de widgets Widgets

Widgets numéricos IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress,


FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText

Widgets boolianas ToggleButton, Checkbox, Valid

Widgets de seleção Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider,


ToggleButtons, SelectMultiple
Tipo de widgets Widgets

Widgets de cadeia de Texto, Área de texto, Combobox, Senha, Rótulo, HTML, HTML Math, Imagem,
caracteres Botão

Widgets de Seletor de data, Seletor de cor, Controlador


reprodução
(animação)

Widgets de contêiner Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked


ou de layout

Limitações conhecidas
Ainda não há suporte para as seguintes ofertas. As seguintes soluções alternativas estão
disponíveis:

ノ Expandir a tabela

Funcionalidade Solução alternativa

Widget Saída Em vez disso, é possível utilizar a função print() para escrever texto no stdout.

widgets.jslink() É possível utilizar a função widgets.link() para vincular dois widgets semelhantes.

Widget FileUpload Ainda não há suporte.

A função de exibição de global do Fabric não dá suporte à exibição de vários widgets em


uma chamada (por exemplo, display(a, b)). Esse comportamento é diferente da função de
exibição do IPython.

Caso feche um notebook que contenha um widget IPython, não poderá conferir ou
interagir com ele até executar a célula correspondente novamente.

Integrar um notebook

Designar uma célula de parâmetros


Para parametrizar o notebook, selecione as elipses (...) para acessar os comandos Mais na barra
de ferramentas da célula. Em seguida, selecione Alternar célula de parâmetro para designar a
célula como a célula de parâmetros.

A célula de parâmetros é utilizada para integrar um notebook em um pipeline. A atividade do


pipeline procura a célula de parâmetros e trata essa célula como padrão para os parâmetros
passados no tempo de execução. O mecanismo de execução adiciona uma nova célula abaixo da
célula de parâmetros com parâmetros de entrada para substituir os valores padrão.

Atribuir valores de parâmetros de um pipeline


Após criar um notebook com parâmetros, você poderá executá-lo a partir de um pipeline com a
atividade do notebook do Fabric. Após adicionar a atividade à tela do pipeline, você poderá
definir os valores dos parâmetros na seção Parâmetros de base da guia Configurações.

Ao atribuir valores de parâmetro, use a linguagem de expressão de pipeline ou funções e


variáveis.

Comando magic de configuração de sessão do


Spark
Personalize sua sessão do Spark com o comando magic %%configure. O notebook do Fabric dá
suporte a vCores personalizados, Memória do Driver e Executor, propriedades do Spark, pontos
de montagem, pool e o lakehouse padrão da sessão de notebook. Eles podem ser usados em
atividades interativas de notebook e notebook de pipeline. É recomendável que você execute o
comando %%configure no início do notebook ou reinicie a sessão do Spark para que as
configurações entrem em vigor.

JSON
%%configure
{
// You can get a list of valid parameters to config the session from
https://github.com/cloudera/livy#request-body.
"driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g",
"400g", "472g"]
"driverCores": 4, // Recommended values: [4, 8, 16, 32, 64, 80]
"executorMemory": "28g",
"executorCores": 4,
"jars": ["abfs[s]:
//<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]:
//<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
"conf": {
// Example of customized property, you can specify count of lines that Spark
SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows": "3000",
"spark.log.level": "ALL"
}
"defaultLakehouse": { // This overwrites the default lakehouse for current
session
"name": "<lakehouse-name>",
"id": "<lakehouse-id>",
"workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" //
Add workspace ID if it's from another workspace
},
"mountPoints": [
{
"mountPoint": "/myMountPoint",
"source":
"abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
},
{
"mountPoint": "/myMountPoint1",
"source":
"abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
},
],
"useStarterPool": false, // Set to true to force using starter pool
"useWorkspacePool": "<workspace-pool-name>"
}

7 Observação

É recomendável que você defina o mesmo valor para “DriverMemory” e


“ExecutorMemory” em %%configure. Os valores de “driverCores” e “executorCores”
também devem ser os mesmos.
O “defaultLakehouse” substituirá sua lakehouse fixada no gerenciador de Lakehouse,
mas isso só funciona em sua sessão de notebook atual.
Use %%configure em pipelines do Fabric, mas se ele não estiver definido na primeira
célula de código, a execução de pipeline falhará porque não é possível reiniciar a
sessão.
O %%configure usado em mssparkutils.notebook.run será ignorado, mas se ele for
usado em %run, o notebook continuará em execução.
As propriedades de configuração padrão do Spark precisam ser usadas no corpo de
"conf". O Fabric não dá suporte para a referência de primeiro nível nas propriedades
de configuração do Spark.
Algumas propriedades especiais do Spark, incluindo “spark.driver.cores”,
“spark.executor.cores”, “spark.driver.memory”, “spark.executor.memory” e
“spark.executor.instances” não entrarão em vigor no corpo de “conf”.

Configuração de sessão parametrizada de um


pipeline
A configuração de sessão parametrizada permite substituir o valor do magic %%configure pelos
parâmetros de atividade de notebook de execução de pipeline Ao preparar a célula de código
%%configure, você pode substituir os valores padrão (também configuráveis, 4 e "2000" no
exemplo abaixo) por um objeto como este:

{
"parameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}

Python

%%configure

{
"driverCores":
{
"parameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"parameterName": "rows",
"defaultValue": "2000"
}
}
}

Um notebook usa o valor padrão se você executar um notebook diretamente no modo


interativo ou se a atividade do notebook do pipeline não fornecer nenhum parâmetro que
corresponder a “activityParameterName”.
Durante uma execução de pipeline, defina as configurações de atividade do notebook de
pipeline da seguinte maneira:

Caso deseje alterar a configuração da sessão, o nome dos parâmetros da atividade de notebook
do pipeline deve ser o mesmo que parameterName no notebook. Neste exemplo de execução de
um pipeline, driverCores em %%configure são substituídos por 8 e livy.rsc.sql.num-rows são
substituídos por 4000.

7 Observação

Se uma execução de pipeline falhar porque você usou o comando magic


%%configure, encontre mais informações de erro executando a célula do magic
%%configure no modo interativo do notebook.
As execuções agendadas do notebook não dão suporte à configuração de sessão
parametrizada.

Registro em log do Python em um notebook


É possível encontrar os logs do Python e definir diferentes níveis e formatos de log, como o
código de exemplo mostrado aqui:

Python

import logging

# Customize the logging format for all loggers


FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
handler.setFormatter(formatter)

# Customize log level for all loggers


logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger


customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level


defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level


customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Teclas de atalho
Semelhante aos notebooks Jupyter, os notebooks Fabric têm uma interface de usuário modal. O
teclado faz coisas diferentes, dependendo de em qual modo a célula do notebook está. Os
notebooks do Fabric suportam os dois modos a seguir para uma determinada célula de código:
modo de comando e modo de edição.

Uma célula está no modo Comando quando não existe um cursor de texto solicitando que
você digite. Quando uma célula está no modo de comando, você pode editar o notebook
como um todo, mas não pode digitar em células individuais. Insira o modo Comando
pressionando ESC ou utilizando o mouse para selecionar fora da área do editor de uma
célula.

O modo de edição pode ser indicado por um cursor de texto solicitando que você digite na
área do editor. Quando uma célula está no modo Editar, você pode digitar na célula. Insira
o modo Edição pressionando Enter ou utilizando o mouse para selecionar a área do editor
de uma célula.


Teclas de atalho no modo de comando

ノ Expandir a tabela

Ação Atalhos do Notebook

Executar a célula atual e selecionar abaixo Shift+Enter

Executar a célula atual e inserir abaixo Alt+Enter

Executar a célula atual Ctrl+Enter

Selecionar célula acima Para cima

Selecionar célula abaixo Para baixo

Selecionar célula anterior K

Selecionar próxima célula J

Inserir célula acima Um

Inserir célula abaixo B

Excluir células selecionadas Shift + D

Mudar para o modo de edição Enter

Teclas de atalho no modo de edição


Utilizando os seguintes atalhos de teclas, é possível navegar e executar facilmente o código nos
notebooks do Fabric quando estiver no modo de edição.

ノ Expandir a tabela

Ação Atalhos do Notebook

Mover cursor para cima Para cima

Mover cursor para baixo Para baixo

Desfazer CTRL+Z

Refaz Ctrl+Y

Comentar ou Remover marca de comentário Ctrl+/


Comentar: Ctrl + K + C
Remover marca de comentário: Ctrl + K + U

Excluir palavra anterior Ctrl+Backspace

Excluir palavra seguinte Ctrl+Delete

Ir para o início da célula Ctrl+Home


Ação Atalhos do Notebook

Ir para o final da célula Ctrl+End

Ir uma palavra para a esquerda CTRL+Seta para a esquerda

Ir uma palavra para a direita CTRL+Seta para a direita

Selecionar tudo CTRL+A

Recuar Ctrl +]

Desfazer recuo Ctrl+[

Alternar para o modo de comando Esc

Para localizar todas as teclas de atalho, selecione Exibir na faixa de opções do notebook e
selecione Associação de teclas.

Conteúdo relacionado
Visualização do Notebook
Introdução do MSSparkUtils do Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Formatar código nos notebooks do
Microsoft Fabric
Artigo • 09/02/2024

Existem muitos benefícios em adotar um bom estilo e convenções ao escrever um


notebook Python ou definir um trabalho no Spark. Ao formatar seu código de forma
consistente, você pode:

Facilitar a leitura do código.


Aumenta a capacidade de manutenção do código.
Conduzir revisões de código mais rápidas.
Execute diferenças mais precisas, que detectam alterações entre as versões.

Especificamente, este artigo descreve como você pode estender um notebook do Fabric
para usar um formatador de código em conformidade com PEP 8 .

7 Observação

PEP é o acrônimo de Propostas de Aprimoramento do Python. PEP 8 é um guia de


estilo que descreve as convenções de codificação para o código Python.

Ampliar os notebooks do Fabric


Você pode estender um notebook do Fabric usando uma extensão de notebook. Uma
extensão de notebook é um componente de software que adiciona novas
funcionalidades à interface do notebook. Você instala uma extensão como uma
biblioteca e, em seguida, a configura para atender às suas necessidades específicas.

Este artigo considera duas extensões que você pode usar para formatar o código
Python em um notebook do Fabric. Ambas as extensões estão disponíveis
gratuitamente no GitHub.

A extensão black do formatador de código Python.


A extensão do formatador jupyter-black , que você também pode usar para
formatar automaticamente o código em um Jupyter Notebook ou Jupyter Lab.

Configurar uma extensão de formatador de código


Existem dois métodos para configurar uma extensão de formatador de código em um
notebook do Fabric. O primeiro método envolve configurações do espaço de trabalho,
enquanto o segundo método envolve a instalação em linha. Habilite a formatação de
código após instalar a extensão.

Configurações do workspace

Use as configurações do espaço de trabalho para configurar o ambiente de trabalho


para um Workspace do Fabric. Para disponibilizar suas bibliotecas para uso em
quaisquer notebooks e definições de trabalho do Spark no espaço de trabalho, você
pode criar o ambiente, instalar as bibliotecas nele e, em seguida, o administrador do
espaço de trabalho pode anexar o ambiente como padrão para o espaço de trabalho.
Portanto, quando uma extensão de formatador de código é instalada no ambiente
padrão do espaço de trabalho, todos os notebooks dentro do espaço de trabalho
podem se beneficiar dela.

Para obter mais informações sobre ambientes, confira Criar, configurar e usar um
ambiente no Microsoft Fabric .

Instalação em linha
Use o método de instalação em linha quando desejar instalar uma biblioteca para um
notebook específico, ao invés de todos os notebooks em um espaço de trabalho. Essa
abordagem é conveniente quando você deseja uma solução temporária ou rápida que
não deve afetar outros notebooks no espaço de trabalho.

Para saber como realizar uma instalação em linha, confira Instalação em linha.

No exemplo a seguir, o comando %pip é usado para instalar a versão mais recente da
extensão Jupyter-black nos nós do driver e do executor.

Python

# Install the latest version by using %pip command


# It will be available on both driver and executor nodes
%pip install jupyter-black

Habilitar a formatação de código

Após instalar a extensão de formatação de código, você deve habilitar a formatação de


código para o notebook. Você faz isso carregando a extensão, o que pode ser feito de
duas maneiras.
Use o comando magic %load_ext .

Python

# Load the jupyter-black extension


%load_ext jupyter-black

Ou use a extensão de carga usando a API de programação.

Python

import jupyter-black
jupyter-black.load()

 Dica

Para garantir que todos os notebooks habilitem a formatação de código, o que


pode ser útil em cenários de desenvolvimento empresarial, habilite a formatação
em um notebook modelo.

Código de formatação
Para formatar o código, selecione as linhas de código que deseja formatar e pressione
Shift+Enter.

As 11 linhas de código a seguir ainda não estão formatadas corretamente.

Python

def unique(list_input):
list_set = set(list_input
)
unique_list = (list(
list_set
)
)
for x in unique_list:
print(
x
)

Após a formatação ter sido aplicada, a extensão reduziu o script para apenas cinco
linhas. O código agora adota um bom estilo e convenções.
Python

def unique(list_input):
list_set = set(list_input)
unique_list = list(list_set)
for x in unique_list:
print(x)

Conteúdo relacionado
Para obter mais informações sobre os notebooks do Fabric, confira os artigos a seguir.

Gerenciar bibliotecas do Apache Spark no Microsoft Fabric


Alguma dúvida? Experimente perguntar à Comunidade do Fabric .
Sugestões? Dê ideias para melhorar o Fabric .

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Configurar o modo de alta
simultaneidade para notebooks do
Fabric
Artigo • 23/08/2023

Quando você executa um notebook no Microsoft Fabric, uma sessão do Apache Spark é
iniciada e é usada para executar as consultas enviadas como parte das execuções da
célula do notebook. Com o Modo de Alta Simultaneidade habilitado, não é necessário
iniciar novas sessões do Spark toda as vezes para executar um notebook.

) Importante

O Microsoft Fabric está em versão prévia.

Se você já tiver uma sessão de Alta Simultaneidade em execução, poderá anexar


notebooks à sessão de alta simultaneidade obtendo uma sessão do Spark
instantaneamente para executar as consultas e obter uma taxa de utilização de sessão
maior.

7 Observação

O compartilhamento de sessão baseado em modo de alta simultaneidade está


sempre dentro de um único limite de usuário. Os notebooks precisam ter
configurações do Spark correspondentes, devem fazer parte do mesmo workspace,
compartilhar o mesmo lakehouse e bibliotecas padrão para compartilhar uma única
sessão do Spark.

Configurar o modo de alta simultaneidade


Por padrão, todos os workspaces do Fabric são habilitados com modo de alta
simultaneidade. Use as seguintes etapas para configurar o recurso de alta
simultaneidade:

1. Clique na opção Configurações do Workspace no workspace do Fabric

2. Navegue até a seção SynapseSpark>Computação Spark>Alta Simultaneidade

3. Na seção Alta Simultaneidade, você pode optar por habilitar ou desabilitar a


configuração.

4. Habilitar a opção de alta simultaneidade permite que os usuários iniciem uma


sessão de alta simultaneidade em seus notebooks ou anexem-se à sessão de alta
simultaneidade existente.

5. Desabilitar o modo de alta simultaneidade oculta a seção para configurar o


período de inatividade e também oculta a opção de iniciar uma nova sessão de
alta simultaneidade no menu do notebook.

Execute notebooks em sessão de alta


simultaneidade
1. Abra o espaço de trabalho do Fabric

2. Crie um Notebook ou abrir um Notebook existente

3. Navegue até a guia Executar na faixa de opções do menu e selecione na lista


suspensa tipo de sessão que tem Standard selecionado como a opção padrão.

4. Selecione Nova sessão de alta simultaneidade.

5. Você poderá adicionar até 10 notebooks na sessão de alta simultaneidade depois


que ela for iniciada.

6. Crie um novo notebook e navegando até o menu Executar, conforme mencionado


nas etapas acima. No menu suspenso, você verá a sessão de alta simultaneidade
recém-criada listada.

7. Selecionar a sessão de alta simultaneidade existente anexa o segundo bloco de


anotações à sessão.

8. Depois que o bloco de anotações tiver sido anexado, você poderá executar as
etapas do notebook instantaneamente.

9. O status da sessão de alta simultaneidade também mostra o número de blocos de


anotações anexados a uma determinada sessão a qualquer momento.

10. A qualquer momento, se você sentir que o notebook anexado a uma sessão de
alta simultaneidade requer mais computação dedicada, você pode alternar o
notebook para uma sessão padrão selecionando a opção de desanexar o
notebook da Alta Simultaneidade na guia de menu Executar.

11. Você pode exibir o status de sessão, o tipo e a ID da sessão navegando até a
barrastatus. Selecione a ID da Sessão para explorar os trabalhos executados nessa
sessão de alta simultaneidade e exibir os logs da sessão do Spark na página de
detalhes de monitoramento.

Monitoramento e depuração de notebooks em


execução na sessão de alta simultaneidade
O monitoramento e a depuração geralmente são tarefas não triviais quando você está
executando vários notebooks em uma sessão compartilhada. No modo de alta
simultaneidade no Fabric, a separação de logs é oferecida. Isso permite aos usuários
rastrear os logs emitidos por eventos do Spark de notebooks diferentes.

1. Quando a sessão estiver em andamento ou em estado concluído, você poderá


exibir o status da sessão navegando até o menu Executar e selecionando a opção
Todas as Execuções

2. Isso abriria o histórico de execuções do notebook mostrando a lista de sessões


ativas e históricas atuais do Spark

3. Os usuários selecionando uma sessão podem acessar a exibição de detalhes de


monitoramento, que mostra a lista de todos os trabalhos do Spark que foram
executados na sessão.
4. No caso da sessão de alta simultaneidade, os usuários podem identificar os
trabalhos e seus logs associados de blocos de anotações diferentes usando a guia
Notebook relacionado, que mostra o notebook no qual esse trabalho foi
executado.

Próximas etapas
Nesse documento, você obtém uma compreensão básica de um compartilhamento de
sessão por meio do modo de alta simultaneidade em notebooks. Avance para os
próximos artigos para saber como criar e começar a usar suas próprias experiências de
Engenharia de Dados usando o Lakehouse e notebooks:

Para começar a usar a lakehouse, confira Criando um Lakehouse.


Para começar a usar notebooks, confira Como usar um Notebook
Visualização do notebook no Microsoft
Fabric
Artigo • 03/01/2024

O Microsoft Fabric é um serviço de análise integrada que acelera o tempo de


descoberta de insights entre data warehouses e sistemas de análise de Big Data. A
visualização de dados em notebooks é um componente chave que permite obter
insights sobre seus dados. Ele ajuda a facilitar o entendimento para pessoas de dados
grandes e pequenos. Ele também facilita a detecção de padrões, tendências e exceções
em grupos de dados.

Quando você usa o Apache Spark no Fabric, há várias opções internas para ajudá-lo a
visualizar seus dados, incluindo opções de gráfico de notebook do Fabric e acesso a
bibliotecas populares de código aberto.

Ao usar um notebook do Fabric, transforme sua exibição de resultados tabulares em um


gráfico personalizado usando opções de gráfico. Aqui, você pode visualizar seus dados
sem precisar escrever nenhum código.

Comando de visualização integrado - função


display()
A função de exibição integrada do Fabric permite transformar DataFrames do Apache
Spark, Dataframes do Pandas e resultados de consultas SQL em visualizações de dados
avançadas.

Você pode usar a função display em dataframes criados no PySpark e no Scala em


DataFrames do Spark ou funções de RDD (Conjuntos de Dados Distribuídos Resilientes)
para produzir os modos de exibição em tabela e gráfico avançados de dataframes.

A saída da instrução SQL aparece na exibição de tabela renderizada por padrão.

Modo de exibição de tabela de dataframe avançado


1. O modo de exibição de tabela é renderizado por padrão com o comando display().
2. Você pode criar o perfil do seu dataframe clicando no botão Inspecionar. Ele
fornece a distribuição de dados resumida e mostra estatísticas de cada coluna.
3. Cada cartão no painel lateral "Inspecionar" mapeia para uma coluna do dataframe,
e você pode exibir mais detalhes clicando no cartão ou selecionando uma coluna
na tabela.
4. Você pode exibir os detalhes da célula clicando na célula da tabela. Isso é útil
quando o dataframe contém um tipo de conteúdo de sequência longa.
5. Você pode especificar a contagem de linhas do modo de exibição de tabela, o
valor padrão é 1000, suporte do Notebook para exibir e criar o perfil de 10000
linhas de um quadro de dados no máximo.

Modo de exibição de gráfico de dataframe avançado


1. Quando você tiver uma exibição de tabela renderizada, alterne para a exibição em
Gráfico.

2. O Notebook do Fabric recomendará automaticamente um par "Chave" "Valor" com


base no dataframe de destino para tornar o gráfico padrão significativo com
insights de dados.

3. Agora você pode personalizar sua visualização especificando os seguintes valores:

ノ Expandir a tabela

Configuration Descrição

Tipo de A função "display" dá suporte a uma ampla variedade de tipos de gráfico,


gráfico incluindo gráficos de barras, gráficos de dispersão, gráficos de linhas e
muito mais.

Chave Especificar o intervalo de valores para o eixo x.

Valor Especificar o intervalo de valores para os valores do eixo y.

Grupo de Use esta configuração para determinar os grupos para a agregação.


séries

Agregação Use este método para agregar dados em sua visualização.

As configurações serão salvas automaticamente no conteúdo de saída do


Notebook.

7 Observação

Por padrão, a função display(df) usará apenas as primeiras 1000 linhas dos
dados para renderizar os gráficos. Selecione a Agregação em todos os
resultados e selecione Aplicar para aplicar a geração de gráfico do modelo
semântico inteiro. Um trabalho do Spark será acionado quando a
configuração do gráfico for alterada. Observe que pode levar vários minutos
para concluir o cálculo e renderizar o gráfico.

4. Ao concluir o trabalho, você poderá exibir e interagir com sua visualização final.

Exibição resumida do display(df)


Use display(df, summary = true) para verificar o resumo de estatísticas de um
determinado de DataFrame do Apache Spark. O resumo inclui o nome da coluna, o tipo
de coluna, os valores exclusivos e os valores ausentes para cada coluna. Você também
pode selecionar uma coluna específica para ver seu valor mínimo, valor máximo, valor
médio e desvio padrão.

opção displayHTML()
Os notebooks do Fabric dão suporte a elementos gráficos HTML usando a função de
displayHTML.

A imagem a seguir é um exemplo de criação de visualizações usando D3.js .

Para criar essa visualização, execute o código a seguir.


Python

displayHTML("""<!DOCTYPE html>
<meta charset="utf-8">

<!-- Load d3.js -->


<script src="https://d3js.org/d3.v4.js"></script>

<!-- Create a div where the graph will take place -->
<div id="my_dataviz"></div>
<script>

// set the dimensions and margins of the graph


var margin = {top: 10, right: 30, bottom: 30, left: 40},
width = 400 - margin.left - margin.right,
height = 400 - margin.top - margin.bottom;

// append the svg object to the body of the page


var svg = d3.select("#my_dataviz")
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");

// Create Data
var data = [12,19,11,13,12,22,13,4,15,16,18,19,20,12,11,9]

// Compute summary statistics used for the box:


var data_sorted = data.sort(d3.ascending)
var q1 = d3.quantile(data_sorted, .25)
var median = d3.quantile(data_sorted, .5)
var q3 = d3.quantile(data_sorted, .75)
var interQuantileRange = q3 - q1
var min = q1 - 1.5 * interQuantileRange
var max = q1 + 1.5 * interQuantileRange

// Show the Y scale


var y = d3.scaleLinear()
.domain([0,24])
.range([height, 0]);
svg.call(d3.axisLeft(y))

// a few features for the box


var center = 200
var width = 100

// Show the main vertical line


svg
.append("line")
.attr("x1", center)
.attr("x2", center)
.attr("y1", y(min) )
.attr("y2", y(max) )
.attr("stroke", "black")

// Show the box


svg
.append("rect")
.attr("x", center - width/2)
.attr("y", y(q3) )
.attr("height", (y(q1)-y(q3)) )
.attr("width", width )
.attr("stroke", "black")
.style("fill", "#69b3a2")

// show median, min and max horizontal lines


svg
.selectAll("toto")
.data([min, median, max])
.enter()
.append("line")
.attr("x1", center-width/2)
.attr("x2", center+width/2)
.attr("y1", function(d){ return(y(d))} )
.attr("y2", function(d){ return(y(d))} )
.attr("stroke", "black")
</script>

"""
)

Inserir um relatório do Power BI em um


notebook

) Importante

Esse recurso está em VERSÃO PRÉVIA no momento. Estas informações estão


relacionadas a um produto de pré-lançamento, que pode ser bastante modificado
antes de ser lançado. A Microsoft não faz nenhuma garantia, expressa ou implícita,
com relação às informações fornecidas aqui.

O pacote Powerbiclient do Python agora tem suporte nativo em notebooks do Fabric.


Não é necessário fazer nenhuma configuração extra (como o processo de autenticação)
no runtime do Spark do Notebook Fabric 3.4. Basta importar powerbiclient e continuar
sua exploração. Para saber mais sobre como usar o pacote powerbiclient, consulte a
documentação powerbiclient .

O powerbiclient dá suporte aos seguintes principais recursos.


Renderizar um relatório existente do Power BI
É possível inserir e interagir facilmente com relatórios do Power BI nos notebooks com
apenas algumas linhas de código.

A imagem a seguir é um exemplo de renderização do relatório existente do Power BI.

Execute o código a seguir para renderizar um relatório existente do Power BI.

Python

from powerbiclient import Report

report_id="Your report id"


report = Report(group_id=None, report_id=report_id)

report

Criar visuais de relatório a partir de um DataFrame do


Spark
Use um DataFrame do Spark em seu notebook para gerar visualizações perspicazes
rapidamente. Também poderá selecionar Salvar no relatório inserido para criar um item
de relatório em um espaço de trabalho de destino.

A imagem a seguir é um exemplo de um QuickVisualize() a partir de um DataFrame


do Spark.

Execute o código a seguir para renderizar um relatório de um DataFrame do Spark.

Python

# Create a spark dataframe from a Lakehouse parquet table


sdf = spark.sql("SELECT * FROM testlakehouse.table LIMIT 1000")

# Create a Power BI report object from spark data frame


from powerbiclient import QuickVisualize, get_dataset_config
PBI_visualize = QuickVisualize(get_dataset_config(sdf))

# Render new report


PBI_visualize

Criar visuais de relatório a partir de um DataFrame do


pandas
Também poderá criar relatórios com base em um DataFrame do pandas no notebook.

A imagem a seguir é um exemplo de um QuickVisualize() a partir de um DataFrame


do pandas.

Execute o código a seguir para renderizar um relatório de um DataFrame do Spark.

Python

import pandas as pd

# Create a pandas dataframe from a URL


df =
pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-
unemp-16.csv")

# Create a pandas dataframe from a Lakehouse csv file


from powerbiclient import QuickVisualize, get_dataset_config

# Create a Power BI report object from your data


PBI_visualize = QuickVisualize(get_dataset_config(df))

# Render new report


PBI_visualize

Bibliotecas populares
Quando se trata de visualização de dados, o Python oferece várias bibliotecas de
gráficos que vêm incluídas com muitos recursos diferentes. Por padrão, cada pool do
Apache Spark no Fabric contém um conjunto de bibliotecas de código aberto populares
e selecionadas.
Matplotlib
Você pode renderizar bibliotecas de plotagem padrão, como Matplotlib, usando as
funções de renderização internas para cada biblioteca.

A imagem a seguir é um exemplo de criação de um gráfico de barras usando


Matplotlib.

Execute o código de exemplo a seguir para desenhar esse gráfico de barras.

Python

# Bar chart

import matplotlib.pyplot as plt


x1 = [1, 3, 4, 5, 6, 7, 9]
y1 = [4, 7, 2, 4, 7, 8, 3]

x2 = [2, 4, 6, 8, 10]
y2 = [5, 6, 2, 6, 2]

plt.bar(x1, y1, label="Blue Bar", color='b')


plt.bar(x2, y2, label="Green Bar", color='g')
plt.plot()

plt.xlabel("bar number")
plt.ylabel("bar height")
plt.title("Bar Chart Example")
plt.legend()
plt.show()

Bokeh
Você pode renderizar bibliotecas HTML ou interativas, como a bokeh, usando
displayHTML(df).

A imagem a seguir é um exemplo de como plotar glifos em um mapa usando bokeh.

Para desenhar esta imagem, execute o código de exemplo a seguir.


Python

from bokeh.plotting import figure, output_file


from bokeh.tile_providers import get_provider, Vendors
from bokeh.embed import file_html
from bokeh.resources import CDN
from bokeh.models import ColumnDataSource

tile_provider = get_provider(Vendors.CARTODBPOSITRON)

# range bounds supplied in web mercator coordinates


p = figure(x_range=(-9000000,-8000000), y_range=(4000000,5000000),
x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(tile_provider)

# plot datapoints on the map


source = ColumnDataSource(
data=dict(x=[ -8800000, -8500000 , -8800000],
y=[4200000, 4500000, 4900000])
)

p.circle(x="x", y="y", size=15, fill_color="blue", fill_alpha=0.8,


source=source)

# create an html document that embeds the Bokeh plot


html = file_html(p, CDN, "my plot1")

# display this html


displayHTML(html)

Plotly
Você pode renderizar bibliotecas HTML ou interativas, como a Plotly, usando
displayHTML() .

Para desenhar esta imagem, execute o código de exemplo a seguir.


Python

from urllib.request import urlopen


import json
with
urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-
counties-fips.json') as response:
counties = json.load(response)

import pandas as pd
df =
pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-
unemp-16.csv",
dtype={"fips": str})

import plotly
import plotly.express as px

fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',


color_continuous_scale="Viridis",
range_color=(0, 12),
scope="usa",
labels={'unemp':'unemployment rate'}
)
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

# create an html document that embeds the Plotly plot


h = plotly.offline.plot(fig, output_type='div')

# display this html


displayHTML(h)

Pandas
Exibia a saída HTML de DataFrames do pandas como a saída padrão. Os notebooks do
Fabric mostram automaticamente o conteúdo HTML com estilo.

Python
import pandas as pd
import numpy as np

df = pd.DataFrame([[38.0, 2.0, 18.0, 22.0, 21, np.nan],[19, 439, 6, 452,


226,232]],

index=pd.Index(['Tumour (Positive)', 'Non-Tumour


(Negative)'], name='Actual Label:'),

columns=pd.MultiIndex.from_product([['Decision Tree',
'Regression', 'Random'],['Tumour', 'Non-Tumour']], names=['Model:',
'Predicted:']))

df

Conteúdo relacionado
Explorar os dados em seu lakehouse com um notebook

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Explorar os dados em seu lakehouse
com um notebook
Artigo • 15/11/2023

Nesse tutorial você vai aprender a explorar os dados em seu lakehouse com um
notebook.

Pré-requisitos
Para começar, você precisa dos seguintes recursos:

Uma conta de locatário do Microsoft Fabric com uma assinatura ativa. Crie uma
conta gratuitamente.
Leia a visão geral do Lakehouse.

Abrir ou criar um bloco de anotações a partir


de um lakehouse
Para explorar seus dados do Lakehouse, você pode adicionar o lakehouse a um
notebook existente ou criar um novo notebook do lakehouse.

Abrir um lakehouse de um bloco de anotações existente


Selecione o bloco de anotações na lista de blocos de anotações e selecione Adicionar.
O bloco de anotações é aberto com o lakehouse atual adicionado ao bloco de
anotações.

Abrir um lakehouse de um novo bloco de anotações


Você pode criar um novo notebook no mesmo workspace e o lakehouse atual aparece
nesse notebook.
Alternar lakehouses e definir um padrão
Você pode adicionar vários lakehouses ao mesmo notebook. Ao alternar o lakehouse
disponível no painel esquerdo, você pode explorar a estrutura e os dados de diferentes
lakehouses.

Na lista do lakehouses, o ícone de fixar ao lado do nome de um lakehouse indica que


ele é o lakehouse padrão em seu bloco de anotações atual. No código do notebook, se
apenas um caminho relativo for fornecido para acessar os dados do OneLake do
Microsoft Fabric, o lakehouse padrão servirá como a pasta raiz em tempo de execução.

Para alternar para um lakehouse padrão diferente, mova o ícone de fixar.

7 Observação

O lakehouse padrão decide qual metastore do Hive usar ao executar o notebook


com o Spark SQL. Se vários lakehouses forem adicionados ao notebook, verifique
se quando o Spark SQL é usado, o lakehouse de destino e o lakehouse padrão
atual são do mesmo workspace.

Adicionar ou remover um lakehouse


Selecionar o ícone X ao lado de um nome de lakehouse o remove-o do notebook, mas
o item lakehouse ainda existe no workspace.

Para remover todas as casas do lakehouse do notebook, clique em "Remover todas as


Lakehouses" na lista de lakehouses.
Selecione Adicionar lakehouse para adicionar mais lakehouses ao bloco de anotações.
Você pode selecionar um já existente ou criar um novo.

Explorar os dados do Lakehouse


A estrutura do Lakehouse mostrada no notebook é a mesma do modo de exibição
Lakehouse. Para obter detalhes, verifique visão geral do Lakehouse. Quando você
seleciona um arquivo ou pasta, a área de conteúdo mostra os detalhes do item
selecionado.
7 Observação

O notebook será criado no workspace atual.

Próximas etapas
Como usar um notebook para carregar dados em seu lakehouse

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Use um notebook para carregar dados
em seu Lakehouse
Artigo • 06/12/2023

Neste tutorial, saiba como ler/gravar dados em seu Lakehouse com um notebook. A API
do Spark e a API do Pandas são compatíveis para atingir esse objetivo.

Carregar dados com uma API do Apache Spark


Na célula de código do notebook, use o exemplo de código a seguir para ler os dados
da origem e carregá-los em Arquivos, Tabelas ou em ambas as seções do seu
Lakehouse.

Para especificar o local de onde ler, você pode usar o caminho relativo se os dados
forem do Lakehouse padrão do notebook atual, ou pode usar o caminho ABFS absoluto
se os dados forem de outro Lakehouse. você pode copiar esse caminho no menu de
contexto dos dados

Copiar caminho ABFS : isso retorna o caminho absoluto do arquivo


Copiar caminho relativo para o Spark : isso retorna o caminho relativo do arquivo no
Lakehouse padrão

Python

df = spark.read.parquet("location to read from")

# Keep it if you want to save dataframe as CSV files to Files section of the
default Lakehouse

df.write.mode("overwrite").format("csv").save("Files/ " + csv_table_name)

# Keep it if you want to save dataframe as Parquet files to Files section of


the default Lakehouse

df.write.mode("overwrite").format("parquet").save("Files/" +
parquet_table_name)

# Keep it if you want to save dataframe as a delta lake, parquet table to


Tables section of the default Lakehouse

df.write.mode("overwrite").format("delta").saveAsTable(delta_table_name)

# Keep it if you want to save the dataframe as a delta lake, appending the
data to an existing table

df.write.mode("append").format("delta").saveAsTable(delta_table_name)

Carregue dados com uma API do Pandas


Para dar suporte à API do Pandas, o Lakehouse padrão será montado automaticamente
no notebook. O ponto de montagem é "/lakehouse/default/". Você pode usar esse
ponto de montagem para ler/gravar dados de/para o Lakehouse padrão. A opção
"Copiar Caminho da API de Arquivo" do menu de contexto retornará o caminho da API
de Arquivo desse ponto de montagem. O caminho retornado da opção Copiar caminho
ABFS também funciona para a API do Pandas.
Copiar Caminho da API de Arquivo :Isso retorna o caminho sob o ponto de montagem
do Lakehouse padrão

Python

# Keep it if you want to read parquet file with Pandas from the default
lakehouse mount point

import pandas as pd
df = pd.read_parquet("/lakehouse/default/Files/sample.parquet")

# Keep it if you want to read parquet file with Pandas from the absolute
abfss path

import pandas as pd
df = pd.read_parquet("abfss://DevExpBuildDemo@msit-
onelake.dfs.fabric.microsoft.com/Marketing_LH.Lakehouse/Files/sample.parquet
")

 Dica

Para a API do Spark, use a opção Copiar caminho ABFS ou Copiar caminho
relativo para o Spark para obter o caminho do arquivo. Para a API do Pandas, use a
opção Copiar caminho ABFS ou Copiar caminho da API de Arquivo para obter o
caminho do arquivo.

A maneira mais rápida de fazer com que o código funcione com a API do Spark ou a API
do Pandas é usar a opção Carregar dados e selecionar a API que você deseja usar. O
código será gerado automaticamente em uma nova célula de código do notebook.

Conteúdo relacionado
Explorar os dados em seu lakehouse com um notebook

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Controle do código-fonte e implantação
do notebook
Artigo • 15/11/2023

Este artigo explica como os pipelines de integração e implantação do Git funcionam


para notebooks no Microsoft Fabric. Saiba como configurar uma conexão com seu
repositório, gerenciar seus notebooks e implantá-los em diferentes ambientes.

Integração do Git do notebook


Os notebooks do Fabric oferecem integração do Git para controle do código-fonte com
o Azure DevOps. Com a integração do Git, você pode fazer backup e versão do seu
notebook, reverter para fases anteriores conforme necessário, colaborar ou trabalhar
sozinho usando Git branches e gerenciar totalmente o ciclo de vida de conteúdo do
notebook no Fabric.

) Importante

Esse recurso está em versão prévia.

Configurar uma conexão


Nas configurações do workspace, você pode configurar facilmente uma conexão com
seu repositório a fim de confirmar e sincronizar alterações. Para configurar a conexão,
consulte Introdução à integração do Git. Uma vez conectados, seus itens, incluindo
blocos de notebooks, aparecem no painel de Controle do código-fonte.

Depois de confirmar com êxito as instâncias do notebook no repositório Git, você verá a
estrutura de pastas do notebook no repositório.

Agora você pode executar operações futuras, como Criar solicitação de pull.

Representação do notebook no Git


A imagem a seguir é um exemplo da estrutura de arquivos de cada item do notebook
no repositório:

Quando você confirma o item do notebook no repositório Git, o código do notebook é


convertido em um formato de código-fonte, em vez de um arquivo .ipynb padrão. Por
exemplo, um notebook PySpark é convertido em um arquivo notebook-content.py. Essa
abordagem permite revisões de código mais fáceis usando recursos de diferenciação
internos.

No arquivo de origem do conteúdo do item, os metadados (incluindo o Lakehouse


padrão e o ambiente anexado), as células markdown e as células de código são
preservados e diferenciados. Essa abordagem dá suporte a uma recuperação precisa
quando você sincroniza novamente com um workspace do Fabric.

A saída da célula do notebook não está incluída ao sincronizar com o Git.


7 Observação

Atualmente, os arquivos nos Recursos do notebook não são confirmados no


repositório. Há suporte para a confirmação desses arquivos em uma versão
futura.
O ambiente anexado persiste em um notebook quando você sincroniza do
repositório com um workspace do Fabric. Atualmente, não há suporte para
ambientes de referência entre workspaces. Você deve anexar manualmente a
um novo ambiente ou configurações padrão de workspace para executar o
notebook.
A ID padrão do Lakehouse persiste no notebook quando você sincroniza do
repositório com um workspace do Fabric. Se confirmar um notebook com o
Lakehouse padrão, você deverá consultar manualmente um item do
Lakehouse recém-criado. Para obter mais informações, consulte a integração
do Git do Lakehouse.

Notebook em pipelines de implantação


Você também pode usar o pipeline de implantação para implantar o código do
notebook em diferentes ambientes, como desenvolvimento, teste e produção. Esse
recurso pode permitir que você simplifique seu processo de desenvolvimento, garanta a
qualidade e a consistência e reduza erros manuais com operações leves de baixo
código. Você também pode usar regras de implantação para personalizar o
comportamento dos notebooks quando eles são implantados, como alterar o
Lakehouse padrão de um notebook.

) Importante

Esse recurso está em versão prévia.

Use as etapas a seguir para concluir a implantação do notebook usando o pipeline de


implantação.

1. Crie um pipeline de implantação ou abra um pipeline de implantação existente.


(Para obter mais informações, consulte Introdução aos pipelines de implantação.)

2. Atribua workspaces a diferentes fases de acordo com suas metas de implantação.

3. Selecione, exiba e compare itens, incluindo notebooks entre diferentes fase,


conforme mostrado no exemplo a seguir.

4. Selecione Implantar para implantar seus notebooks nas fases de Desenvolvimento,


Teste e Produção.

5. (Opcional). Você pode selecionar Regras de implantação para criar regras de


implantação para um processo de implantação. A entrada de regras de
implantação está na fase de destino para um processo de implantação.

O Fabric dá suporte à parametrização do Lakehouse padrão para cada instância de


notebook ao implantar com regras de implantação. Três opções estão disponíveis
para especificar o Lakehouse padrão de destino: o mesmo com Lakehouse de
origem, N/Ae outro Lakehouse.

Você pode obter o isolamento de dados protegido configurando essa regra. O


Lakehouse padrão do notebook é substituído pelo que você especificou como
destino durante a implantação.
7 Observação

Quando você opta por adotar outros Lakehouses no ambiente de destino, a


ID do Lakehouse indispensável. Você pode encontrar a ID de um Lakehouse
no link da URL do Lakehouse.

6. Monitore o status da implantação do Histórico de implantação.

Próximas etapas
Gerenciar e executar notebooks do Fabric com APIs públicas
Introdução à integração do Git
Introdução aos pipelines de implantação

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Gerenciar e executar notebooks no
Fabric com APIs
Artigo • 19/01/2024

A API REST do Microsoft Fabric fornece um ponto de extremidade de serviço para


operações de criação, leitura, atualização e exclusão (CRUD) de um item do Fabric. Este
artigo descreve as APIs REST de notebook disponíveis e o uso delas.

) Importante

Esse recurso está em versão prévia.

7 Observação

Por enquanto, não há suporte para a autenticação de entidades de serviço.

Com as APIs de notebook, engenheiros de dados e cientistas de dados podem


automatizar os próprios pipelines e estabelecer CI/CD de forma conveniente e eficiente.
Essas APIs também facilitam o gerenciamento e a manipulação de itens de notebook do
Fabric e integram os notebooks a outras ferramentas e sistemas.

Estas ações de Gerenciamento de item estão disponíveis para notebooks:

ノ Expandir a tabela

Ação Descrição

Criar item Cria um notebook em um workspace.

Atualizar item Atualiza os metadados de um notebook.

Atualiza a definição do item Atualiza o conteúdo de um notebook.

Excluir item Exclui um notebook.

Obter item Obtém os metadados de um notebook.

Obtém a definição do item Obtém o conteúdo de um notebook.

Item de lista Lista todos os itens em um workspace.

Para obter mais informações, confira Itens – API REST.


As seguintes ações do Agendador de trabalho estão disponíveis para notebooks:

ノ Expandir a tabela

Ação Descrição

Executar trabalho do item sob demanda Executar notebook com parametrização.

Cancelar instância de trabalho do item Cancelar execução do trabalho do notebook.

Obter instância de trabalho do item Obter status da execução do notebook.

Para obter mais informações, confira Agendador de trabalho.

Exemplos de uso da API REST do notebook


Use as instruções a seguir para testar exemplos de uso de APIs públicas específicas de
notebook e verificar os resultados.

7 Observação

Esses cenários abrangem apenas exemplos de uso exclusivos de notebook.


Exemplos comuns de API de item do Fabric não são abordados aqui.

Pré-requisitos
A API Rest do Fabric define um ponto de extremidade unificado para operações.
Substitua os espaços reservados {WORKSPACE_ID} e {ARTIFACT_ID} por valores
apropriados ao seguir os exemplos neste artigo.

Criar um notebook com uma definição


Crie um item de notebook com um arquivo .ipynb existente:

Solicitação

HTTP

POST https://api.fabric.microsoft.com/v1/workspaces/{{WORKSPACE_ID}}/items

{
"displayName":"Notebook1",
"type":"Notebook",
"definition" : {
"format": "ipynb",
"parts": [
{
"path": "artifact.content.ipynb",
"payload":
"eyJuYmZvcm1hdCI6NCwibmJmb3JtYXRfbWlub3IiOjUsImNlbGxzIjpbeyJjZWxsX3R5cGUiOiJ
jb2RlIiwic291cmNlIjpbIiMgV2VsY29tZSB0byB5b3VyIG5ldyBub3RlYm9va1xuIyBUeXBlIGh
lcmUgaW4gdGhlIGNlbGwgZWRpdG9yIHRvIGFkZCBjb2RlIVxuIl0sImV4ZWN1dGlvbl9jb3VudCI
6bnVsbCwib3V0cHV0cyI6W10sIm1ldGFkYXRhIjp7fX1dLCJtZXRhZGF0YSI6eyJsYW5ndWFnZV9
pbmZvIjp7Im5hbWUiOiJweXRob24ifX19",
"payloadType": "InlineBase64"
}
]
}
}

A carga na solicitação é uma cadeia de caracteres base64 convertida do notebook de


exemplo a seguir.

JSON

{
"nbformat": 4,
"nbformat_minor": 5,
"cells": [
{
"cell_type": "code",
"source": [
"# Welcome to your new notebook\n# Type here in the cell
editor to add code!\n"
],
"execution_count": null,
"outputs": [],
"metadata": {}
}
],
"metadata": {
"language_info": {
"name": "python"
},
"trident": {
"environment": {
"environmentId": "6524967a-18dc-44ae-86d1-0ec903e7ca05",
"workspaceId": "c31eddd2-26e6-4aa3-9abb-c223d3017004"
},
"lakehouse": {
"default_lakehouse": "5b7cb89a-81fa-4d8f-87c9-3c5b30083bee",
"default_lakehouse_name": "lakehouse_name",
"default_lakehouse_workspace_id": "c31eddd2-26e6-4aa3-9abb-
c223d3017004"
}
}
}
}

7 Observação

Você pode alterar o lakehouse padrão ou o ambiente anexado do notebook


alterando metadata.trident.lakehouse ou metadata.trident.environment do
conteúdo dele.

Obter um notebook com uma definição


Use a API a seguir para obter o conteúdo do notebook. O Fabric dá suporte à
configuração do formato como .ipynb na cadeia de caracteres de consulta para obter
um notebook .ipynb.

Solicitação

HTTP

POST
https://api.fabric.microsoft.com/v1/workspaces/{{WORKSPACE_ID}}/items/{{ARTI
FACT_ID}}/GetDefinition?format=ipynb

Response

Código de status: 200

JSON

{
"definition": {
"parts": [
{
"path": "notebook-content.ipynb",
"payload":
"eyJuYmZvcm1hdCI6NCwibmJmb3JtYXRfbWlub3IiOjUsImNlbGxzIjpbeyJjZWxsX3R5cGUiOiJ
jb2RlIiwic291cmNlIjpbIiMgV2VsY29tZSB0byB5b3VyIG5ldyBub3RlYm9va1xuIyBUeXBlIGh
lcmUgaW4gdGhlIGNlbGwgZWRpdG9yIHRvIGFkZCBjb2RlIVxuIl0sImV4ZWN1dGlvbl9jb3VudCI
6bnVsbCwib3V0cHV0cyI6W10sIm1ldGFkYXRhIjp7fX1dLCJtZXRhZGF0YSI6eyJsYW5ndWFnZV9
pbmZvIjp7Im5hbWUiOiJweXRob24ifX19",
"payloadType": "InlineBase64"
}
]
}
}
Executar um notebook sob demanda
Agende a execução do notebook com a API a seguir. O trabalho do Spark começa a ser
executado após uma solicitação bem-sucedida.

O Fabric dá suporte à passagem de parameters no corpo da solicitação para


parametrizar a execução do notebook. Os valores são consumidos pela célula de
parâmetro do notebook.

Você também pode usar configuration para personalizar a sessão do Spark da


execução do notebook. configuration compartilha o mesmo contrato com o comando
magic de configuração de sessão do Spark.

Solicitação

HTTP

POST
https://api.fabric.microsoft.com/v1/workspaces/{{WORKSPACE_ID}}/items/{{ARTI
FACT_ID}}/jobs/instances?jobType=RunNotebook

{
"executionData": {
"parameters": {
"parameterName": {
"value": "new value",
"type": "string"
}
},
"configuration": {
"conf": {
"spark.conf1": "value"
},
"defaultLakehouse": {
"name": "<lakehouse-name>",
"id": "<(optional) lakehouse-id>",
"workspaceId": "<(optional) workspace-id-that-contains-the-
lakehouse>"
},
"useStarterPool": false,
"useWorkspacePool": "<workspace-pool-name>"
}
}
}

Response

Código de status: 202


HTTP

Location: https://api.fabric.microsoft.com/v1/workspaces/4b218778-e7a5-4d73-
8187-f10824047715/items/431e8d7b-4a95-4c02-8ccd-
6faef5ba1bd7/jobs/instances/f2d65699-dd22-4889-980c-15226deb0e1b
Retry-After: 60

Com location , você pode usar Obter instância de trabalho do item para exibir o status
do trabalho ou usar Cancelar instância de trabalho do item para cancelar a execução
atual do notebook.

Conteúdo relacionado
Desenvolver, executar e gerenciar notebooks do Microsoft Fabric
Controle e implantação do código-fonte do notebook
Microsoft Spark Utilities (MSSparkUtils) para Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Criar, configurar e usar um ambiente no
Microsoft Fabric
Artigo • 16/11/2023

Os ambientes do Microsoft Fabric fornecem configurações flexíveis para executar seus


trabalhos do Spark. Em um ambiente, você pode selecionar diferentes runtimes do
Spark, configurar seus recursos de computação e instalar bibliotecas de repositórios
públicos ou carregar bibliotecas locais personalizadas. Você pode anexar facilmente
ambientes aos seus notebooks e definições de trabalho do Spark.

Este tutorial fornece uma visão geral da criação, configuração e uso de um ambiente.

) Importante

O item de ambiente no Microsoft Fabric está atualmente em VERSÃO PRÉVIA.

Criar um ambiente
Há vários pontos de entrada para criar um ambiente.

Criar um ambiente a partir da página inicial, do modo de


exibição do workspace ou do hub de criação
Página inicial da Engenharia de Dados

Na página inicial da Engenharia de Dados, selecione Novo e selecione o cartão


Ambiente para engradar um ambiente.

Home page da Ciência de Dados

Na página inicial da Ciência de Dados, selecione Novo e selecione o cartão


Ambiente para criar um novo ambiente.
Exibição do workspace

No workspace, selecione Novo e, em seguida, selecione Ambiente (Versão Prévia).

Hub de criação

No hub de criação, você pode selecionar o cartão Ambiente nas seções


Engenharia de Dados ou Ciência de Dados.

Criar um ambiente nos menus de anexo


Você também pode criar um novo ambiente a partir do local em que anexa um
ambiente. Para obter mais informações, consulte Anexar um ambiente.
Menu anexo do Notebook

Na guia Página Inicial da faixa de opções do bloco de anotações, há um menu


para anexar um ambiente. Selecione padrão do Workspace e, em seguida,
selecione Novo ambiente para criar um novo.

Menu de anexo de definição de trabalho do Spark

Você pode anexar um ambiente na guia Página Inicial da faixa de opções de


definição de trabalho do Spark e também criar um novo ambiente no mesmo
menu. Na faixa de opções, selecione padrão do Workspace e, em seguida,
selecione Novo Ambiente.

Menu de anexo de configuração do workspace

Na seção Engenharia de Dados/Ciência da tela de configurações do workspace,


um administrador do workspace pode anexar um ambiente como o padrão do
workspace. Para obter mais informações, consulte Anexar um ambiente como o
workspace padrão. Você também pode criar um novo na guia Ambiente.
Configurar um ambiente
Há três componentes principais que você pode configurar para um ambiente: runtime
do Spark, bibliotecas e computação do Spark.

Escolher um runtime do Spark


Para um ambiente, você pode escolher entre vários runtimes do Spark, cada um com
suas próprias configurações padrão e pacotes pré-instalados. Para exibir os runtimes
disponíveis, navegue até a guia Página Inicial do ambiente e selecione Runtime.
Selecione o runtime que melhor atende às suas necessidades.
) Importante

Se você estiver atualizando o runtime de um ambiente com configurações ou


bibliotecas existentes, será necessário republicar o conteúdo com base na
versão de runtime atualizada.
Se as configurações ou bibliotecas existentes não forem compatíveis com a
versão de runtime atualizada recentemente, a publicação falhará. Você deve
remover as configurações ou bibliotecas incompatíveis e publicar o ambiente
novamente.

Configurar a computação do Spark


A computação do Microsoft Fabric Spark fornece velocidade e eficiência incomparáveis
em execução no Spark e experiências personalizadas por requisitos. Em seu ambiente,
você pode escolher entre vários pools criados por administradores de workspace e
administradores de capacidade. Você pode ajustar ainda mais as configurações e
gerenciar as propriedades do Spark para ser eficaz nas sessões do Spark. Para obter
mais informações, consulte definições de configuração de computação do Spark em
ambientes do Fabric.

Gerenciar bibliotecas
Com exceção das bibliotecas internas fornecidas por cada runtime do Spark, o ambiente
do Fabric permite que você instale bibliotecas de fontes públicas ou carregue
bibliotecas personalizadas criadas por você ou sua organização. Depois de instalar as
bibliotecas com êxito, elas estarão disponíveis em suas sessões do Spark. Para obter
mais informações, consulte gerenciamento de bibliotecas em ambientes do Fabric.

Salvar e publicar alterações


Para salvar ou publicar alterações em um ambiente do Fabric, selecione a opção
desejada na faixa de opções na guia Página Inicial.
A opção salvar está ativa quando você tem alterações que não são salvas. Se você
atualizar a página sem salvar, todas as alterações pendentes serão perdidas. Se
qualquer seção contiver entrada inválida, a opção salvar será desabilitada. A ação
salvar se aplica a todas as alterações não salvas em bibliotecas e seções de
computação do Spark.
A opção Publicar está ativa quando você tem alterações que não são publicadas.
Você não precisa salvar antes de publicar as alterações. Quando você seleciona
Publicar, a página Alterações pendentes é exibida, onde você pode examinar
todas as alterações antes da publicação. Depois de selecionar Publicar tudo, o
ambiente do Fabric executará trabalhos no back-end para preparar as
configurações para uso. Esse processo leva vários minutos, especialmente se as
alterações na biblioteca forem incluídas.

7 Observação

Durante o processo de publicação, se as alterações envolverem bibliotecas, o


sistema ajudará a baixar dependências e resolver possíveis conflitos.

Uma faixa solicitando que você Salve ou Publique aparece quando você tiver alterações
pendentes.

Você pode selecionar Salvar ou Publicar; essas ações são as mesmas que Salvar e
Publicar na guia Página Inicial.
Durante o processo de publicação, selecionar Exibir progresso na faixa abrirá a
página Alterações pendentes novamente. Para interromper o processo de
publicação, selecione Cancelar na página Alterações pendentes.
Uma notificação é exibida quando a publicação é feita ou se o processo encontra
erros.

Anexar um ambiente
O ambiente do Microsoft Fabric pode ser anexado aos workspaces Engenharia de
Dados/Ciência ou seus notebooks e definições de trabalho do Spark.

Anexar um ambiente como padrão do workspace


Localize a guia Ambiente selecionando configuração do Workspace ->Engenharia de
Dados/Ciência ->configurações do Spark.

Novos workspaces

Quando você estiver trabalhando em um workspace que seja novo ou não tenha a
biblioteca e as configurações do Spark configuradas, a tela de configurações do Spark a
seguir será exibida.

Os administradores do workspace podem definir a experiência padrão para workspaces


inteiros. Os valores configurados aqui são eficazes para notebooks e definições de
trabalho do Spark que se anexam às configurações do Workspace.

A alternância de Definir ambiente padrão pode aprimorar a experiência do usuário. Por


padrão, essa alternância é definida como Desativada. Se não houver nenhuma
propriedade ou biblioteca padrão do Spark necessária como o padrão do workspace, os
administradores poderão definir o runtime do Spark nesta circunstância. No entanto, se
um administrador quiser preparar uma computação e bibliotecas padrão do Spark para
o workspace, ele poderá alternar a alternância para Ativado e anexar facilmente um
ambiente como o padrão do workspace. Essa opção torna todas as configurações no
ambiente eficazes como as Configurações do Workspace.
Workspaces com biblioteca ou propriedades do Spark existentes
O recurso de ambiente é uma grande atualização para a seção Engenharia de
Dados/Ciência de Dados nas Configurações do Workspace. Como parte dessa
atualização, o Fabric não dá mais suporte ao gerenciamento de bibliotecas e à adição de
novas propriedades do Spark no nível do workspace. Você pode migrar suas bibliotecas
existentes e propriedades do Spark para um ambiente e anexá-las como o padrão do
workspace. Para obter mais informações, consulte Migrar bibliotecas de workspace e
propriedades do Spark para um ambientepadrão.
Anexar um ambiente a um notebook ou a uma definição
de trabalho do Spark
O menu Ambiente aparece nas guias Página Inicial da definição de trabalho do
Notebook e do Spark. Os ambientes disponíveis estão listados no menu. Se você
selecionar um ambiente, a computação do Spark e as bibliotecas configuradas nele
entrarão em vigor depois que você iniciar uma sessão do Spark.

7 Observação

Se você alternar para um ambiente diferente durante uma sessão ativa, o ambiente
recém-selecionado não entrará em vigor até a próxima sessão.

Próximas etapas
Configurações de computação do Spark em ambientes do Fabric
Gerenciamento de biblioteca em ambientes do Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Configurações de computação do Spark
em ambientes do Fabric
Artigo • 06/12/2023

As experiências de Engenharia de Dados e Ciência de Dados do Microsoft Fabric operam


em uma plataforma de computação do Spark totalmente gerenciada. Essa plataforma
foi projetada para fornecer velocidade e eficiência incomparáveis. Ele inclui pools de
início e pools personalizados.

Um ambiente do Fabric contém uma coleção de configurações, incluindo propriedades


de computação do Spark que permitem que os usuários configurem a sessão do Spark
depois de serem anexados a notebooks e trabalhos do Spark. Com um ambiente, você
tem uma maneira flexível de personalizar as configurações de computação para
executar seus trabalhos do Spark. Em um ambiente, a seção de computação permite
que você configure as propriedades de nível de sessão do Spark para personalizar a
memória e os núcleos dos executores com base nos requisitos de carga de trabalho.

) Importante

O recurso de ambiente do Fabric está atualmente em VERSÃO PRÉVIA.

Os administradores do workspace podem habilitar ou desabilitar personalizações de


computação com a opção Personalizar configurações de computação para itens na
guia Pool da seção Engenharia/Ciência de Dados na tela de configurações do
Workspace.

Os administradores do workspace podem delegar os membros e colaboradores para


alterar as configurações de computação de nível de sessão padrão no ambiente do S
Fabric, habilitando essa configuração.
Se o administrador do workspace desabilitar essa opção nas configurações do
workspace, a seção de computação do ambiente será desabilitada e as configurações de
computação do pool padrão para o workspace serão usadas para executar trabalhos do
Spark.

Personalizar propriedades de computação em


nível de sessão em um ambiente
Como usuário, você pode selecionar um pool para o ambiente na lista de pools
disponíveis no workspace do Fabric. O administrador do workspace do Fabric cria o pool
inicial padrão e os pools personalizados.

Depois de selecionar um pool na seção Computação, você poderá ajustar os núcleos e a


memória para os executores dentro dos limites dos tamanhos e limites do pool
selecionado.
Por exemplo: você seleciona um pool personalizado com tamanho de nó grande, que é
16 vCores do Spark, como o pool de ambientes. Em seguida, você pode escolher que o
núcleo de driver/executor seja 4, 8 ou 16, de acordo com seus requisitos de nível de
trabalho. Para a memória alocada para driver e executores, você pode escolher 28 g, 56
g ou 112 g, todos dentro dos limites de um limite de memória de nó grande.

Para obter mais informações sobre os tamanhos de computação do Spark e seus


núcleos ou opções de memória, confira O que é a computação do Spark no Microsoft
Fabric?.

Conteúdo relacionado
Crie, configure e use um ambiente no Microsoft Fabric.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Gerenciamento de biblioteca em
ambientes do Fabric
Artigo • 28/03/2024

Os ambientes do Microsoft Fabric fornecem configurações flexíveis para executar seus


trabalhos do Spark. As bibliotecas fornecem código reutilizável que os desenvolvedores
desejam incluir em seu trabalho. Com exceção das bibliotecas internas que vêm com
cada runtime do Spark, você pode instalar bibliotecas públicas e personalizadas em seus
ambientes do Fabric. E você pode anexar facilmente ambientes aos seus notebooks e
definições de trabalho do Spark.

) Importante

O item de ambiente no Microsoft Fabric está atualmente em VERSÃO PRÉVIA.

Bibliotecas públicas
Bibliotecas públicas são provenientes de repositórios como PyPI e Conda, que o Fabric
dá suporte no momento.

Adicionar uma nova biblioteca pública


Para adicionar uma nova biblioteca pública, selecione uma origem e especifique o nome
e a versão da biblioteca. Como alternativa, você pode carregar um arquivo .yml de
especificação de ambiente do Conda para especificar as bibliotecas públicas. O
conteúdo do arquivo .yml carregado é extraído e acrescentado à lista.

7 Observação

O recurso de preenchimento automático para nomes de biblioteca durante a


adição é limitado às bibliotecas mais populares. Se a biblioteca que você deseja
instalar não estiver nessa lista, você não receberá um prompt de preenchimento
automático. Em vez disso, pesquise a biblioteca diretamente no PyPI ou no Conda
inserindo seu nome completo. Se o nome da biblioteca for válido, você verá as
versões disponíveis. Se o nome da biblioteca não for válido, você receberá um
aviso de que a biblioteca não existe.

Adicionar bibliotecas públicas em um lote


Os ambientes oferecem suporte ao carregamento do arquivo YAML para gerenciar
várias bibliotecas públicas em um lote. O conteúdo do YAML é extraído e anexado na
lista de bibliotecas públicas.

7 Observação

Os canais conda personalizados no arquivo YAML não são suportados no


momento. Apenas as bibliotecas do PyPI e do Conda são reconhecidas.

Filtrar bibliotecas públicas


Insira palavras-chave na caixa de pesquisa na página Bibliotecas Públicas, para filtrar a
lista de bibliotecas públicas e encontrar a que você precisa.

Excluir bibliotecas públicas


A opção de lixo para cada biblioteca é exibida quando você passa o mouse sobre a linha
correspondente. Como alternativa, você pode excluir várias bibliotecas públicas
selecionando-as e selecionando Excluir na faixa de opções.

Exibir dependência
Cada biblioteca pública tem várias dependências. A opção de dependência de exibição é
exibida quando você passa o mouse sobre a linha correspondente.
Exportar para yaml
O Fabric fornece a opção de exportar a lista de bibliotecas públicas completa para um
arquivo YAML e baixá-la para o diretório local.

Bibliotecas personalizadas
Bibliotecas personalizadas referem-se ao código criado por você ou sua organização. O
Fabric dá suporte a arquivos de biblioteca personalizados nos formatos .whl, .jar e
.tar.gz.

7 Observação

O Fabric só dá suporte a arquivos .tar.gz para a linguagem R. Use o formato de


arquivo .whl para a linguagem Python.

Carregar a biblioteca personalizada


Você pode carregar bibliotecas personalizadas do diretório local para o ambiente do
Fabric.

Excluir a biblioteca personalizada


A opção de lixo para cada biblioteca é exibida quando você passa o mouse na linha
correspondente. Como alternativa, você pode excluir várias bibliotecas personalizadas
selecionando-as e selecionando Excluir na faixa de opções.
Baixar todas as bibliotecas personalizadas
Se clicadas, as bibliotecas personalizadas baixam uma a uma no diretório de download
padrão local.

Conteúdo relacionado
Criar, configurar e usar um ambiente no Microsoft Fabric
Gerenciar bibliotecas do Apache Spark no Microsoft Fabric

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar bibliotecas de workspace e
propriedades do Spark para um
ambiente padrão
Artigo • 16/11/2023

Os ambientes do Microsoft Fabric fornecem configurações flexíveis para executar seus


trabalhos do Spark. Em um ambiente, você pode selecionar diferentes runtimes do
Spark, configurar seus recursos de computação e instalar bibliotecas de repositórios
públicos ou carregar bibliotecas locais personalizadas. Você pode anexar facilmente
ambientes aos seus notebooks e definições de trabalho do Spark.

As configurações de workspace de Engenharia de Dados e Ciência de Dados são


atualizadas para incluir ambientes do Fabric. Como parte dessa atualização, o Fabric não
dá mais suporte à adição de novas bibliotecas e propriedades do Spark nas
configurações do workspace. Em vez disso, você pode criar um ambiente do Fabric,
configurar a biblioteca e a propriedade nela e anexá-la como o ambiente padrão do
workspace. Depois de criar um ambiente e defini-lo como o padrão, você pode migrar
as bibliotecas existentes e as propriedades do Spark para esse ambiente padrão.

Neste tutorial, saiba como migrar as bibliotecas de workspace e as propriedades do


Spark existentes para um ambiente.

) Importante

As configurações do workspace são restritas aos administradores.


Suas configurações de workspace existentes permanecerão efetivas para seus
notebooks ou definições de trabalho do Spark se nenhum ambiente estiver
anexado a eles. No entanto, você não pode fazer mais alterações nessas
configurações. RECOMENDAMOS FORTEMENTE que você migre suas
configurações existentes para um ambiente.
O processo de migração inclui uma etapa que remove permanentemente
todas as configurações existentes. Siga cuidadosamente estas instruções.
Não há como trazer arquivos de volta se eles forem excluídos acidentalmente.

Preparar os arquivos para migração


Nas configurações do Workspace, examine as configurações existentes.

1. Anote a versão atual do Runtime.

2. Baixe as configurações existentes selecionando Baixar todos os arquivos.

O conteúdo é baixado como arquivos diferentes. Sparkproperties.yml contém


todos os pares de valor de chave de propriedades do Spark. O arquivo
Publiclibrary.yml contém todas as definições da biblioteca pública. Todos os
pacotes personalizados carregados por você ou sua organização são baixados
como arquivos um a um.

Depois que os arquivos forem baixados, você poderá migrar.

Criar e configurar um ambiente


1. Crie um ambiente no hub de criação/lista de workspaces. Depois de criar um novo
ambiente, a página Ambiente será exibida.

2. Na guia Página Inicial do ambiente, certifique-se de que a versão do Runtime é


igual ao runtime do workspace existente.

3. Ignore esta etapa se você não tiver bibliotecas públicas nas configurações do
workspace. Navegue até a seção Bibliotecas Públicas e selecione Adicionar de
.yml na faixa de opções. Carregue Publiclibrary.yml, que você baixou das
configurações de workspace existentes.
4. Ignore esta etapa se você não tiver bibliotecas personalizadas em suas configurações
de workspace. Navegue até a seção Bibliotecas Personalizadas e selecione
Carregar na faixa de opções. Carregue os arquivos de biblioteca personalizados,
que você baixou das configurações de workspace existentes.

5. Ignore esta etapa se você não tiver nenhuma propriedade do Spark nas
configurações do workspace. Navegue até a seção propriedades do Spark e
selecione Carregar na faixa de opções. Carregue o arquivo Sparkproperties.yml,
que você baixou das configurações de workspace existentes.

6. Selecione Publicar e examine cuidadosamente as alterações novamente. Se tudo


estiver correto, publique as alterações. A publicação leva vários minutos para ser
concluída.

Após a conclusão da publicação, você configurou seu ambiente com êxito.


Habilitar e selecionar um ambiente padrão nas
configurações do workspace

) Importante

Todas as configurações existentes serão descartadas quando você selecionar


Habilitar ambiente. Certifique-se de baixar todas as configurações existentes e
instalá-las com êxito em um ambiente antes de continuar.

1. Navegue até as configurações do Workspace –>Engenharia/Ciência de Dados –


>Ambiente e selecione Habilitar ambiente. Essa ação remove as configurações
existentes e inicia sua experiência de ambiente no nível do workspace.

A tela a seguir é exibida quando você exclui com êxito as configurações existentes.
2. Mova o botão de alternância Personalizar ambiente para a posição Ativado. Essa
opção permite que você anexe um ambiente como um padrão de workspace.
3. Selecione o ambiente configurado nas etapas anteriores como o padrão do
workspace e selecione Salvar.
4. Confirme se seu novo ambiente agora aparece no Ambiente padrão do
workspace na página de configurações do Spark.
Próximas etapas
Crie, configure e use um ambiente no Microsoft Fabric.
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


O que é a extensão de Visual Studio
Code do Synapse?
Artigo • 01/02/2024

A extensão do Visual Studio Code do Synapse dá suporte a uma experiência pró-


desenvolvedor para explorar o Microsoft Fabric Lakehouses e criar notebooks Fabric e
definições de trabalho do Spark. Saiba mais sobre a extensão, incluindo como começar
a usar os pré-requisitos necessários.

O VS (Visual Studio) Code é um dos editores de código-fonte leve mais populares; ele é
executado na área de trabalho e está disponível para Windows, macOS e Linux. Ao
instalar a extensão do VS Code do Synapse, você pode criar, executar e depurar o
notebook e a definição de trabalho do Spark localmente no VS Code. Você também
pode postar o código na computação remota do Spark no workspace do Fabric para
executar ou depurar. A extensão também permite que você navegue pelos dados do
Lakehouse, incluindo tabelas e arquivos brutos, no VS Code.

Pré-requisitos
Pré-requisitos para a extensão do VS Code do Synapse:

Instale o Java Runtime Environment do site do OpenJDK8 .


Instale o Conda .
Instalar a extensão do Jupyter para VS Code

Depois de instalar o software necessário, você deve atualizar as propriedades do sistema


operacional.

Windows
1. Adicione JAVA_HOME às variáveis de ambiente e aponte-a para o diretório em
que o java 1.8 está instalado. Por exemplo, se você instalar o JRE nesse caminho
C:\Program Files\Eclipse Adoptium\jre-8.0.402.6-hotspot , defina o valor da

variável JAVA_HOME para esse caminho.

2. Adicione %JAVA_HOME%/bin e a subpasta condabin da instalação do Conda ao


diretório caminho do sistema. A pasta condabin pode estar na pasta onde você
instalou e neste formato \miniconda3\condsbin . Abra as variáveis de ambiente e
adicione %JAVA_HOME%/bin e caminhos condabin à variável Caminho.
macOS
Execute o conda.sh no terminal:

1. Abra a janela do terminal, altere o diretório para a pasta em que o Conda está
instalado e altere para o subdiretório etc/profile.d. O subdiretório deve conter um
arquivo chamado conda.sh.

2. Execute source conda.sh .

3. Na mesma janela do terminal, execute sudo conda init .

4. Digite Java --version . A versão deve ser Java 1.8.

Instalar a extensão e preparar seu ambiente


1. Pesquise o VS Code do Synapse no marketplace de extensão do VS Code e instale
a extensão.

2. Depois que a instalação da extensão for concluída, reinicie o VS Code. O ícone da


extensão está listado na barra de atividades do VS Code.

Diretório de trabalho local


Para editar um bloco de anotações, você deve ter uma cópia local do conteúdo do
notebook. O diretório de trabalho local da extensão serve como a pasta raiz local para
todos os notebooks baixados, até mesmo notebooks de diferentes workspaces. Ao
invocar o comando Synapse:Set Local Work Folder , você pode especificar uma pasta
como o diretório de trabalho local para a extensão.

Para validar a configuração, abra as configurações de extensão e marcar os detalhes:


Entrar e sair da sua conta
1. Na paleta de comandos do VS Code, insira o Synapse:Sign in comando para
entrar na extensão. Uma página de entrada separada do navegador é exibida.

2. Digite o nome de usuário e a senha.

3. Depois que você entrar com êxito, seu nome de usuário será exibido na barra de
status do VS Code para indicar que você está conectado.

4. Para sair da extensão, insira o comando Synapse: Sign off .

Escolher um workspace com o qual trabalhar


Para selecionar um workspace do Fabric, você deve ter um workspace criado. Caso não
tenha um, pode criá-lo no portal do Fabric. Para obter mais informações, consulte Criar
um workspace.

Depois de ter um workspace, escolha-o selecionando a opção Selecionar Workspace.


Uma lista é exibida de todos os workspaces aos quais você tem acesso; selecione o que
você deseja na lista.

Limitações atuais
A extensão no modo de área de trabalho ainda não dá suporte ao Utilitários do
Microsoft Spark
Não há suporte para o comando Shell iniciar com “!”.
Conteúdo relacionado
Nesta visão geral, você obtém uma compreensão básica de como instalar e configurar a
extensão do VS Code do Synapse. Os próximos artigos explicam como desenvolver seus
notebooks e definições de trabalho do Spark localmente no VS Code.

Para começar a usar notebooks, consulte Experiência de notebook do Microsoft


Fabric no VS Code.
Para começar a usar as definições de trabalho do Spark, consulte Experiência de
definição de trabalho do Spark no VS Code.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Como criar e gerenciar notebooks do
Microsoft Fabric no Visual Studio Code
Artigo • 13/10/2023

A extensão do Visual Studio (VS) Code do Synapse dá suporte total à experiência de


notebook CRUD (criar, ler, atualizar e excluir) no Fabric. A extensão também dá suporte
à sincronização entre workspaces locais e remotos; ao sincronizar alterações, você pode
resolver quaisquer conflitos ou diferenças entre seu workspace local e remoto.

Com essa extensão, você também pode executar notebooks na computação remota do
Fabric Spark.

) Importante

O Microsoft Fabric está em versão prévia.

Abrir um notebook com a extensão do Synapse


Ao clicar no botão Abrir no VS Code na página de criação do bloco de anotações no
portal do Fabric, você pode abrir diretamente o mesmo bloco de anotações com a
extensão do VS Code do Synapse para Fabric. Depois de ativar a extensão no VS Code e
abrir o bloco de anotações uma vez, o workspace deverá se conectar automaticamente
ao bloco de anotações.

 Dica

Se você não instalou a extensão do Synapse para VS Code, instale-a primeiro. Para
obter mais informações, consulte Instalar a extensão do Synapse. Depois que a
extensão é lançada publicamente, a instalação é automatizada.
Exibir a lista de notebooks
O nó da árvore de notebook lista os nomes de todos os itens do notebook no
workspace atual. Com base nas alterações no VS Code, a lista exibe diferentes cores e
caracteres para indicar o estado mais recente, conforme mostrado na imagem a seguir.

Padrão: texto em branco e nenhum caractere à direita do nome do bloco de


anotações indica o estado padrão ou inicializado. O notebook existe no workspace
remoto e você não o baixou localmente.
Modificado: o caractere M à direita do nome e do texto amarelo indica que o
notebook foi baixado e editado localmente no VS Code, e essas alterações
pendentes ainda não foram publicadas no workspace remoto.
Local: o caractere L e o texto verde indicam que o notebook foi baixado e o
conteúdo é o mesmo que o workspace remoto.
Conflito: o caractere C e o texto vermelho indicam que existem conflitos entre a
versão local e a versão do workspace remoto.

Criar um notebook
1. No VS Code Explorer, passe o mouse sobre a barra de ferramentas do notebook. A
opção Criar Notebook será exibida.
2. Selecione Criar Notebook e insira um nome e uma descrição. Um novo notebook
é criado no workspace remoto e aparece na lista de notebooks no estado padrão.

Baixar um notebook
Antes de editar o conteúdo do notebook, você deve baixar o notebook para o VS Code.

1. Na lista de blocos de anotações no VS Code, passe o mouse sobre o nome do


notebook. A opção Baixar aparece ao lado do nome do bloco de anotações.

2. Selecione Baixar e salve o bloco de anotações no diretório de trabalho local.

Abrir um notebook
1. No VS Code Explorer, passe o mouse sobre o nome de um notebook baixado.
Várias opções aparecem ao lado do notebook, incluindo a opção Abrir Pasta do
Notebook .
2. Selecione Abrir Pasta do Notebook e o notebook é aberto na tela editor do VS
Code.

Excluir um notebook

 Dica

Para evitar falhas, feche a pasta notebook no modo de exibição Explorer e feche o
bloco de anotações no modo de exibição do editor antes de excluir o notebook.

Para excluir um notebook:

1. No VS Code Explorer, passe o mouse sobre o nome do bloco de anotações que


você deseja excluir; as opções aparecem à direita do nome, incluindo a opção
Excluir Notebook.

2. Selecione o opção Excluir Notebook. Quando solicitado, escolha excluir apenas a


cópia local ou as cópias locais e remotas do workspace.

Publicar alterações locais no workspace remoto


Para enviar suas alterações locais por push para o workspace remoto:

1. No VS Code Explorer, passe o mouse sobre o nome do bloco de anotações que


você deseja excluir; as opções aparecem à direita do nome, incluindo a opção
Excluir Notebook.
2. Selecione Publicar. A versão do workspace remoto é atualizada com as alterações
locais do VS Code.

Se a atualização local criar conflitos de mesclagem, você será solicitado a


resolvê-los antes que a mesclagem passe.

3. Se outra pessoa tiver o mesmo bloco de anotações aberto no portal do Fabric, ela
será notificada para aceitar ou rejeitar as alterações locais do VS Code, conforme
mostrado na imagem a seguir.

Aceitar: sua alteração do VS Code é salva com êxito no workspace.


Rejeitar: sua alteração do VS Code é ignorada.

Efetuar pull de alterações do workspace


remoto
Para atualizar sua versão local com a versão mais recente do workspace, você efetua pull
da versão remota:

1. No VS Code Explorer, passe o mouse sobre o nome do bloco de anotações que


você deseja excluir; as opções aparecem à direita do nome, incluindo a opção
Excluir Notebook.
2. Selecione a opção Atualizar Notebook. O VS Code extrai a versão mais recente do
workspace remoto e abre o editor de comparação do VS Code para comparar os
dois arquivos de notebook. A tela do lado esquerdo é do workspace, a tela do lado
direito é da versão local:

3. Atualize a célula de código/markdown no lado esquerdo para resolver o problema.

4. Quando todos os conflitos forem resolvidos, selecione a opção Mesclarno canto


superior direito do editor de comparação para confirmar se a mesclagem foi
concluída. (Até que você selecione Mesclar, o notebook permanecerá no modo
Conflito.)
) Importante

Depois que o editor de comparação for aberto uma vez, a extensão NÃO atualizará
automaticamente o lado esquerdo do modo de exibição diff para buscar a
atualização mais recente do workspace remoto.

Executar ou depurar um notebook na


computação remota do Spark
Ao selecionar o kernel synapse-spark-kernel fornecido com essa extensão, você pode
executar a célula de código na parte superior da computação remota do Fabric Spark.
Depois que esse kernel é selecionado, durante o runtime, a extensão intercepta todas as
chamadas à API do PySpark e as converte para a chamada http correspondente para a
computação remota do Spark. Para código Python puro, ele ainda é executado no
ambiente local.

Próximas etapas
Experiência de definição de trabalho do Spark no VS Code
Explorar o lakehouse do VS Code

Comentários
Esta página foi útil?  Yes  No
Fornecer comentários sobre o produto | Ask the community
Acessar e gerenciar recursos de
notebook do Microsoft Fabric no Visual
Studio Code
Artigo • 15/11/2023

Os notebooks do Microsoft Fabric agora dão suporte a um recurso chamado recursos de


notebook. Com este recurso, é possível armazenar módulos de código no formato .py e
outros arquivos de dados como .csv ou arquivos de imagem em uma pasta de recursos.
Você pode acessar todos esses arquivos de recursos do notebook como um sistema de
arquivos local. Este artigo mostra como usar esse recurso no Visual Studio (VS) Code
com a extensão VS Code para Synapse.

Para obter informações sobre a extensão, incluindo como instalá-la, consulte O que é a
extensão de Visual Studio Code do Synapse?

Abrir a pasta de recursos do notebook


1. Depois de instalar a extensão e baixar o conteúdo do notebook localmente, abra o
VS Code.

2. Selecione o botão Abrir Pasta do Notebook para abrir a pasta do notebook no


Explorer do VS Code. A pasta do notebook contém o arquivo de notebook e a
pasta de recursos, na qual você encontra todos os arquivos de recurso que
carregou nos recursos do notebook.

3. Agora você pode editar o arquivo de notebook e os arquivos de recursos. Os


arquivos de recursos aparecem na pasta builtin predefinida. Se você precisar criar
um novo arquivo ou subpasta, deverá criá-los na pasta builtin. (Quaisquer arquivos
ou pastas criados fora da pasta builtin não serão carregados no recurso
notebook.)

A captura de tela anterior mostra uma pasta localLib criada na pasta builtin. Esta pasta
contém um arquivo util.py. É possível importar esse arquivo no arquivo de notebook
como um módulo local, conforme mostra o exemplo de código a seguir. Depois de
importado, você pode chamar as funções definidas no arquivo util.py de dentro do
arquivo de notebook.

Python

import builtin.localLib.util as util


util.func1()

Carregar arquivos de recursos do notebook


Depois de editar o arquivo de notebook e os arquivos de recursos, você pode carregar
os recursos de notebook no workspace remoto selecionando a opção Publicar Pasta de
Recursos. O processo de upload carrega todos os arquivos e subpastas na pasta builtin
para o recurso de bloco de anotações. O processo de upload substitui a versão dos
arquivos de recursos no workspace remoto, incluindo a exclusão dos arquivos de
recursos que você excluiu localmente.
Baixar arquivos de recursos do notebook
Para baixar os recursos de notebook do workspace remoto, selecione a opção Atualizar
pasta de recursos. O processo de download baixa todos os arquivos e subpastas na
pasta builtin para a pasta local do bloco de anotações. O processo de download
substitui a versão local dos arquivos de recursos. Para arquivos que não existem mais no
workspace remoto, o processo de download os move para uma subpasta _backup em
sua pasta pai original.

A captura de tela a seguir mostra o arquivo util.pymovido para a subpasta _backup na


pasta localLib porque alguém o excluiu no workspace remoto.

Próximas etapas
Experiência de notebook do Microsoft Fabric no VS Code
Experiência de definição de trabalho do Spark no VS Code
Explorar os lakehouses do Microsoft Fabric no Visual Studio Code

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Criar e gerenciar definições de trabalho
do Apache Spark no Visual Studio Code
Artigo • 11/10/2023

A extensão do Visual Studio (VS) Code para Synapse dá suporte completo à experiência
de definição de trabalhos Spark CRUD (criar, atualizar, ler e excluir) no Fabric. Depois de
criar uma definição de trabalho do Spark, você pode carregar mais bibliotecas
referenciadas, enviar uma solicitação para executar a definição de trabalho do Spark e
verificar o histórico de execuções.

) Importante

O Microsoft Fabric está em versão prévia.

Criar uma definição de trabalho do Spark


Para criar uma nova definição de trabalho do Spark:

1. No Explorer do VS Code, selecione a opção Criar definição de trabalho do Spark.

2. Insira os campos iniciais necessários: nome, lakehouse referenciado e lakehouse


padrão.

3. A solicitação é processada e o nome da definição de trabalho do Spark recém-


criada aparece no nó raiz Definição de trabalho do Spark no Explorer do VS Code.
No nó Nome da definição de trabalho do Spark, é possível ver três subnós:

Arquivos: lista do arquivo de definição principal e outras bibliotecas


referenciadas. Você pode carregar novos arquivos nessa lista.
Lakehouse: lista de todas as lakehouses referenciadas por esta definição de
trabalho do Spark. O lakehouse padrão é marcado na lista e você pode
acessá-lo por meio do caminho relativo Files/…, Tables/… .
Executar: lista do histórico de execuções dessa definição de trabalho do
Spark e do status de trabalho de cada execução.
Carregar um arquivo de definição de principal
em uma biblioteca referenciada
Para carregar ou substituir o arquivo de definição principal, selecione a opção Adicionar
arquivo principal.

Para carregar o arquivo de biblioteca referenciado no arquivo de definição principal,


selecione a opção Adicionar arquivo de biblioteca.

Depois de ter carregado um arquivo, você pode substituí-lo clicando na opção Atualizar
arquivo e carregando um novo arquivo ou excluí-lo por meio da opção Excluir.

Enviar uma solicitação de execução


Para enviar uma solicitação para executar a definição de trabalho do Spark no VS Code:

1. Nas opções à direita do nome da definição de trabalho do Spark que você deseja
executar, selecione a opção Executar trabalho do Spark.
2. Depois de enviar a solicitação, um novo aplicativo do Spark aparece no nó
Execuções na lista do Explorer. Você pode cancelar o trabalho em execução
selecionando a opção Cancelar trabalho do Spark.

Abrir uma definição de trabalho do Spark no


portal do Fabric
Você pode abrir a página de criação de definição de trabalho do Spark no portal do
Fabric selecionando a opção Abrir no navegador.

Você também pode selecionar Abrir no navegador ao lado de uma execução concluída
para ver a página de monitor de detalhes dessa execução.

Depurar o código-fonte da definição de


trabalho do Spark (Python)
Se a definição de trabalho do Spark for criada com o PySpark (Python), você poderá
baixar o script .py do arquivo de definição de main e o arquivo referenciado e depurar o
script de origem no VS Code.

1. Para baixar o código-fonte, selecione a opção Depurar definição de trabalho do


Spark à direita da definição de trabalho do Spark.
2. Depois que o download for concluído, a pasta do código-fonte será aberta
automaticamente.

3. Selecione a opção Confiar nos autores quando solicitado. (Essa opção aparece
apenas na primeira vez que você abre a pasta. Se você não selecionar essa opção,
não poderá depurar nem executar o script de origem. Para obter mais
informações, consulte A segurança da confiança no workspace do Visual Studio
Code .)

4. Se você já baixou o código-fonte antes, será solicitado que confirme se você quer
substituir a versão local pelo novo download.

7 Observação

Na pasta raiz do script de origem, o sistema cria uma subpasta chamada conf.
Dentro dessa pasta, um arquivo chamado lighter-config.json contém alguns
metadados do sistema necessários para a execução remota. NÃO faça
nenhuma alteração nele.

5. O arquivo chamado sparkconf.py contém um snippet de código que você precisa


adicionar para configurar o objeto SparkConf. Para habilitar a depuração remota,
verifique se o objeto SparkConf está configurado corretamente. A imagem a
seguir mostra a versão original do código-fonte.
A próxima imagem é o código-fonte atualizado depois que você copia e cola o
snippet.

6. Depois de atualizar o código-fonte com a configuração necessária, você deve


escolher o Interpretador do Python correto. Certifique-se de selecionar o instalado
do ambiente do Conda synapse-spark-kernel.

Editar propriedades de definição de trabalho


do Spark
Você pode editar as propriedades detalhadas das definições de trabalho do Spark, como
argumentos de linha de comando.
1. Selecione a opção Atualizar configuração do SJD para abrir um arquivo
settings.yml. As propriedades existentes preenchem o conteúdo desse arquivo.

2. Atualize e salve o arquivo .yml.

3. Selecione a opção Publicar propriedade SJD no canto superior direito para


sincronizar a alteração de volta para o workspace remoto.

Próximas etapas
Explorar lakehouse no VS Code
Experiência do notebook no VS Code

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Ask the community


Explorar os lakehouses do Microsoft
Fabric no Visual Studio Code
Artigo • 06/12/2023

Você pode usar a extensão Synapse VS Code para explorar a estrutura do seu Lakehouse
em um espaço de trabalho.

Com a extensão instalada, o Visual Studio (VS) Code exibe a estrutura do lakehouse no
modo de exibição de árvore que inclui as seções Arquivos e Tabelas. Todos os
lakehouses do workspace que você selecionou aparecem no nó da árvore raiz do
lakehouse.

Explorar um Lakehouse e visualize os dados de


tabela
Expanda o nó Tabelas para encontrar as entidades de tabela do Lakehouse. Para
examinar as primeiras 100 linhas de uma tabela específica, selecione a opção Visualizar
Tabela à direita da tabela.

Expanda o nó Arquivos para localizar a pasta e os arquivos que estão salvos no


Lakehouse. Selecione a opção Download à direita do nome de um arquivo para fazer o
download desse arquivo.
Copiar o caminho do Lakehouse
Para facilitar a referência a uma tabela, pasta ou arquivo no código, você pode copiar o
caminho relevante. Clique com o botão direito do mouse no nó de destino e encontre
as opções para Copiar caminho do ABFS, Copiar Caminho Relativo ou Copiar URL.

Conteúdo relacionado
O que é o ponto de extremidade de análise do SQL para um lakehouse?
O que é um Lakehouse?
Navegar pelo Lakehouse?
Obter dados para o Fabric Lakehouse

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Criar e gerenciar notebooks do
Microsoft Fabric dentro do Visual Studio
Code para a Web
Artigo • 15/11/2023

O Visual Studio Code para a Web fornece uma experiência gratuita e de instalação zero
do Microsoft Visual Studio Code em execução total no navegador, permitindo que você
navegue rapidamente e com segurança nos repositórios de código-fonte e faça
alterações leves de código. Para começar, acesse https://vscode.dev no navegador.

A extensão do VS Code do Synapse também pode ser usada na experiência do VS Code


para Web. A extensão dá suporte à experiência de notebook CRUD (criar, ler, atualizar e
excluir) no Fabric. As alterações do VS Code para a experiência da Web são aplicadas ao
espaço de trabalho imediatamente. A extensão também dá suporte à execução de
notebooks no VS Code para a experiência da Web.

) Importante

A extensão remota do VS Code do Synapse está atualmente em versão prévia.

Instalar a extensão do VS Code do Synapse


para a Web
1. Acesse https://insider.vscode.dev no navegador.
2. Selecione o ícone Extensões na barra de navegação esquerda.
3. Pesquise Synapse e selecione a extensão VS Code do Synapse – Remotes
4. Clique em Instalar.
Abra um notebook com a extensão do VS Code
do Synapse para a Web
Você pode abrir um notebook na experiência do VS Code para a Web clicando no botão
Abrir no VS Code(Web) na página de criação de notebook no portal do Fabric. Depois
de selecionar o botão, uma guia do navegador separada será aberta com o VS Code
para a experiência da Web. Se você ainda não instalou a extensão, ela será instalada e
ativada automaticamente e o notebook será aberto.

Gerenciar notebooks e o sistema de arquivos


de notebook
O nó da árvore de notebook lista os nomes de todos os itens do notebook no
workspace atual. Para cada item de notebook, você pode executar as seguintes ações:

Abrir um notebook
Excluir um notebook
Adicionar novo arquivo de recurso
Adicionar nova pasta de recurso

Você também pode excluir qualquer arquivo/pasta existente no sistema de arquivos do


notebook.

Executar notebooks na experiência do VS Code


para Web
Você pode executar um notebook no VS Code para a experiência da Web selecionando
o botão Executar no editor do notebook. Antes de executar o notebook, selecione o VS
Code do Synapse -Remote como o kernel. O kernel é selecionado no canto superior
direito do editor do notebook.

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrando do Spark do Azure Synapse
para o Fabric
Artigo • 16/11/2023

Antes de começar a migração, você deve verificar se a Engenharia de Dados do Fabric é


a melhor solução para sua carga de trabalho. A Engenharia de Dados do Fabric dá
suporte a lakehouse, notebook, ambiente, SJD (definição de trabalho do Spark) e itens
de pipeline de dados, incluindo diferentes recursos de runtime e do Spark.

Considerações-chave
A etapa inicial na criação de uma estratégia de migração é avaliar a adequação. Vale a
pena observar que determinados recursos do Fabric relacionados ao Spark estão
atualmente em desenvolvimento ou planejamento. Para obter mais detalhes e
atualizações, visite o roteiro do Fabric.

Para o Spark, consulte uma comparação detalhada diferenças entre o Spark do Azure
Synapse e o Fabric.

Cenários de migração
Caso determine que a Engenharia de Dados do Fabric é a escolha certa para migrar suas
cargas de trabalho do Spark existentes, o processo de migração pode envolver vários
cenários e fases:

Itens: a migração de itens envolve a transferência de um ou vários itens do espaço


de trabalho existente do Azure Synapse para o Fabric. Saiba mais sobre como
migrar pools do Spark, configurações do Spark, bibliotecas do Spark, notebooks e
definição de trabalho do Spark.
dados e pipelines: usando atalhos do OneLake, você poderá disponibilizar dados
do ADLS Gen2 (vinculados a um espaço de trabalho do Azure Synapse) no Fabric
Lakehouse. A migração de pipeline envolve a movimentação de pipelines de dados
existentes para o Fabric, incluindo atividades de pipeline de definição de trabalho
do Notebook e do Spark. Saiba mais sobre migração de dados e pipelines.
metadados: a migração de metadados envolve a movimentação de metadados do
catálogo do Spark (bancos de dados, tabelas e partições) de um HMS (MetaStore
do Hive) existente no Azure Synapse para o Lakehouse do Fabric. Saiba mais sobre
a Migração de metadados do HMS.
Espaço de trabalho: os usuários podem migrar um espaço de trabalho existente
do Azure Synapse criando um novo espaço de trabalho no Microsoft Fabric,
incluindo metadados. A migração do espaço de trabalho e não é abordada nessa
orientação, o pressuposto é que os usuários precisam criar um novo espaço de
trabalho ou ter um espaço de trabalho existente do Fabric. Saiba mais sobre
funções do workspace no Fabric.

A transição do Spark do Azure Synapse para o Spark do Fabric requer uma


compreensão profunda da arquitetura atual e das diferenças entre o Spark do Azure
Synapse e o Fabric. A primeira etapa crucial é uma avaliação, seguida pela criação de um
plano de migração detalhado. Esse plano pode ser personalizado para corresponder às
características exclusivas do sistema, às dependências de fase e às complexidades da
carga de trabalho.

Próximas etapas
Fabric x Spark do Azure Synapse
Saiba mais sobre as opções de migração para os pools do Spark, configurações,
bibliotecas, notebooks e definição de trabalho do Spark
Migrar dados e pipelines
Migrar metadados do Metastore do Hive

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar pools do Spark do Azure
Synapse para o Fabric
Artigo • 15/11/2023

Enquanto o Azure Synapse fornece pools do Spark, o Fabric oferece Pools iniciais e
Pools personalizados. O pool inicial pode ser uma boa opção se você tiver um único
pool sem configurações ou bibliotecas personalizadas no Azure Synapse e se o tamanho
do nó médio atender às suas necessidades. No entanto, se você busca mais flexibilidade
nas configurações do pool do Spark, recomendamos usar pools personalizados. Há duas
opções:

Opção 1: mover o pool do Spark para o pool padrão de um workspace.


Opção 2: mover o pool do Spark para um ambiente personalizado no Fabric.

Se você tiver mais de um pool do Spark e planeja movê-los para o mesmo workspace
do Fabric, recomendamos usar a opção 2, criando vários ambientes e pools
personalizados.

Para considerações sobre pool do Spark, confira diferenças entre o Spark do Azure
Synapse e o Fabric.

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric em seu locatário.

Opção 1: do pool do Spark para o pool padrão


do workspace
Você pode criar um pool do Spark personalizado do workspace do Fabric e usá-lo como
o pool padrão no workspace. O pool padrão é usado por todos os notebooks e
definições de trabalho do Spark no mesmo workspace.

Para mover de um pool do Spark existente no Azure Synapse para um pool padrão do
workspace:

1. Acesse o workspace do Azure Synapse: entre no Azure . Navegue até o


workspace do Azure Synapse, acesse Pools de Análise e selecione Pools do
Apache Spark.
2. Localize o pool do Spark: em Pools do Apache Spark, localize o pool do Spark
que você deseja mover para o Fabric e verifique as Propriedades do pool.
3. Obtenha propriedades: obtenha as propriedades do pool do Spark, como a versão
do Apache Spark, a família de tamanho do nó, o tamanho do nó ou o
dimensionamento automático. Confira Considerações do pool do Spark para ver as
diferenças.
4. Crie um pool personalizado do Spark no Fabric:

Acesse seu workspace do Fabric e selecione Configurações do workspace.


Acesse Engenharia/Ciência de Dados e selecione Configurações do Spark.
Na guia Pool e na seção Pool padrão do workspace, expanda o menu
suspenso e selecione Novo pool.
Crie seu pool personalizado com os valores de destino correspondentes.
Preencha o nome, a família de nós, o tamanho do nó, o dimensionamento
automático e as opções de alocação de executor dinâmico.

5. Selecione a versão do runtime:

Acesse a guia Ambiente e selecione a Versão do Runtime necessária. Confira


os runtimes disponíveis aqui.
Desabilite a opção Definir ambiente padrão.

7 Observação
Nessa opção, não há suporte para bibliotecas ou configurações no nível de pool.
No entanto, você pode ajustar a configuração de computação de itens individuais,
como notebooks e definições de trabalho do Spark, e adicionar bibliotecas
embutidas. Se você precisar adicionar bibliotecas e configurações personalizadas a
um ambiente, considere um ambiente personalizado.

Opção 2: do pool do Spark ao ambiente


personalizado
Com ambientes personalizados, você pode configurar propriedades e bibliotecas
personalizadas do Spark. Para criar um ambiente personalizado:

1. Acesse o workspace do Azure Synapse: entre no Azure . Navegue até o


workspace do Azure Synapse, acesse Pools de Análise e selecione Pools do
Apache Spark.
2. Localize o pool do Spark: em Pools do Apache Spark, localize o pool do Spark
que você deseja mover para o Fabric e verifique as Propriedades do pool.
3. Obtenha propriedades: obtenha as propriedades do pool do Spark, como a versão
do Apache Spark, a família de tamanho do nó, o tamanho do nó ou o
dimensionamento automático. Confira Considerações do pool do Spark para ver as
diferenças.
4. Crie um pool personalizado do Spark:

Acesse seu workspace do Fabric e selecione Configurações do workspace.


Acesse Engenharia/Ciência de Dados e selecione Configurações do Spark.
Na guia Pool e na seção Pool padrão do workspace, expanda o menu
suspenso e selecione Novo pool.
Crie seu pool personalizado com os valores de destino correspondentes.
Preencha o nome, a família de nós, o tamanho do nó, o dimensionamento
automático e as opções de alocação de executor dinâmico.

5. Crie um item de ambiente se não tiver um.


6. Configure a computação do Spark:

No Ambiente, acesse Computação do Spark>Computação.


Selecione o pool recém-criado para o novo ambiente.
Você pode configurar núcleos e memória de driver e executores.

7. Selecione uma versão de runtime para o ambiente. Confira os runtimes


disponíveis aqui.
8. Clique em Salvar e Publicar alterações.
Saiba mais sobre como criar e usar um ambiente.

Próximas etapas
Migrar configurações do Spark
Migrar bibliotecas do Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar configurações do Spark do Azure
Synapse para o Fabric
Artigo • 06/12/2023

O Apache Spark fornece inúmeras configurações que podem ser personalizadas para
aprimorar a experiência em vários cenários. No Spark do Azure Synapse e na Engenharia
de Dados do Fabric, você tem a flexibilidade de incorporar essas configurações ou
propriedades para adaptar sua experiência. No Fabric, você pode adicionar
configurações do Spark a um ambiente e usar propriedades embutidas do Spark
diretamente nos trabalhos do Spark. Para mover configurações do Spark do Azure
Synapse para o Fabric, use um ambiente.

Para considerações sobre a configuração do Spark, consulte as diferenças entre o Fabric


e o Spark do Azure Synapse e o .

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric no seu locatário.
Se você ainda não tiver um, crie um ambiente em seu espaço de trabalho.

Opção 1: adicionar configurações do Spark ao


ambiente personalizado
Em um ambiente, você pode definir as propriedades do Spark e essas configurações são
aplicadas ao pool de ambientes selecionado.

1. Abra o Synapse Studio: entre no Azure . Navegue até o workspace do Azure


Synapse e abra o Synapse Studio.
2. Localizar configurações do Spark:

Acesse a área Gerenciar e selecione em pools do Apache Spark.


Localize o pool do Apache Spark, selecione configuração do Apache Spark e
localize o nome de configuração do Spark para o pool.

3. Obter configurações do Spark: você pode obter essas propriedades selecionando


Exibir configurações ou exportando a configuração (formato .txt/.conf/.json) em
Configurações + bibliotecas>Configurações do Apache Spark.
4. Depois que você tiver as configurações do Spark, adicione as propriedades
personalizadas do Spark ao Ambiente no Fabric :
No Ambiente, vá para Computação do Spark>Propriedades do Spark.
Adicione as configurações do Spark. Você pode adicionar cada uma
manualmente ou importar do .yml.
5. Clique nas alterações Salvar e Publicar.

Saiba mais sobre como adicionar configurações do Spark a um Ambiente.

Conteúdo relacionado
Migrar pools do Spark
Migrar bibliotecas do Spark
Migrar notebooks do Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar as bibliotecas do Spark do Azure
Synapse para o Fabric
Artigo • 16/11/2023

O pool do Spark do Azure Synapse oferece diferentes opções de feed e biblioteca


personalizada. No Fabric, cada runtime vem com um conjunto pré-instalado de
bibliotecas (bibliotecas internas). No entanto, com base em seus cenários e
necessidades específicas, você também pode incluir outras bibliotecas usando
bibliotecas de ambiente e bibliotecas embutidas. Para mover bibliotecas de pool do
Spark do Azure Synapse para o Fabric, use bibliotecas de ambiente.

Para considerações sobre a biblioteca do Spark, confira as diferenças entre o Spark do


Azure Synapse e o Fabric.

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric no seu locatário.
Se você ainda não tiver um, crie um Ambiente em seu espaço de trabalho.

Opção 1: adicionar bibliotecas do Spark ao


ambiente personalizado
Você pode mover bibliotecas de pool do Spark para um ambiente da seguinte maneira:

1. Abra o Synapse Studio: entre no Azure . Navegue até o espaço de trabalho do


Azure Synapse e abra o Synapse Studio.
2. Localize bibliotecas do Spark:

Acesse a área Gerenciar e selecione em pools do Apache Spark.


Localize o pool do Apache Spark, selecione Pacotes e localize as bibliotecas
do Spark para o pool.

3. Obter bibliotecas do Spark: localize os pacotes requirements.txt, environment.yml


ou espaço de trabalho instalados no pool. Obtenha a lista de bibliotecas instaladas
no pool.
4. Assim que você tiver bibliotecas do Spark, adicione bibliotecas personalizadas do
Spark a um ambiente no Fabric . Em seu Ambiente, acesse Bibliotecas e adicione
bibliotecas:
Nas Bibliotecas Públicas, você pode carregar um arquivo .yml. Você também
pode instalar bibliotecas usando PyPI and Conda.
Nas Bibliotecas Personalizadas, você pode instalar bibliotecas usando
arquivos .jar/.whl/.tar.gz.
5. Clique em Salvar e Publicar alterações.

Saiba mais sobre como adicionar bibliotecas Spark a um Ambiente.

7 Observação

Note que a instalação da biblioteca pode levar algum tempo.

Próximas etapas
Migrar configurações do Spark
Migrar notebooks do Spark
Migrar definição de trabalho do Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar notebooks do Spark do Azure
Synapse para o Fabric
Artigo • 15/11/2023

O Azure Synapse e o Fabric dão suporte a notebooks. A migração de um notebook do


Azure Synapse para o Fabric pode ser feita de duas maneiras:

Opção 1: você pode exportar notebooks do Azure Synapse (.ipynb) e importá-los


para o Fabric (manualmente).
Opção 2: você pode usar um script para exportar notebooks do Azure Synapse e
importá-los no Fabric usando a API.

Para considerações sobre notebook, confira diferenças entre o Spark do Azure Synapse
e o Fabric.

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric em seu locatário.

Opção 1: exportar e importar o notebook


manualmente
Para exportar um notebook do Azure Synapse:

1. Abra o Synapse Studio: entre no Azure . Navegue até o workspace do Azure


Synapse e abra o Synapse Studio.
2. Localize o notebook: no Synapse Studio, localize o notebook que deseja exportar
na seção Notebooks do seu workspace.
3. Exportar notebook:

Clique com o botão direito do mouse no notebook que deseja exportar.


Selecione Exportar>Notebook (.ipynb).
Escolha uma pasta de destino e forneça um nome para o arquivo de
notebook exportado.

4. Quando a exportação for concluída, você terá o arquivo de notebook disponível


para upload.
Para importar o notebook exportado no Fabric:

1. Acesse o workspace do Fabric: entre no Fabric e acesse seu workspace.


2. Navegue até a página inicial de Engenharia de Dados: no workspace do Fabric,
acesse a página inicial de Engenharia de Dados.
3. Importar notebook:

Selecione Importar notebook. Você pode importar um ou mais notebooks


existentes do computador local para um workspace do Fabric.
Procure os arquivos de notebook .ipynb que você baixou do Azure Synapse.
Selecione os arquivos de notebook e clique em Carregar.

4. Abrir e usar o Notebook: após a importação, você poderá abrir e usar o notebook
no workspace do Fabric.

Após a importação do notebook, valide as dependências dele:

Confirme se está usando a mesma versão do Spark.


Se você estiver usando notebooks referenciados, poderá usar msparkutils também
no Fabric. No entanto, se você importar um notebook que faça referência a outro,
também precisará importá-lo. O workspace do Fabric não dá suporte a pastas por
enquanto. Portanto, todas as referências a notebooks em outras pastas devem ser
atualizadas. Você pode usar os recursos do notebook se necessário.
Se um notebook estiver usando bibliotecas e configurações específicas do pool,
você também precisará importar essas bibliotecas e/ou configurações.
Serviços vinculados, conexões de fonte de dados e pontos de montagem.

Opção 2: usar a API do Fabric


Siga estas etapas importantes para migração:

Pré-requisitos.
Etapa 1: exportar notebooks do Azure Synapse para o OneLake (.ipynb).
Etapa 2: importar notebooks automaticamente para o Fabric usando a API do
Fabric.

Pré-requisitos
Os pré-requisitos incluem ações que você precisa considerar antes de iniciar a migração
do notebook para o Fabric.

Um workspace do Fabric.
Se você ainda não tiver um, crie um lakehouse do Fabric no seu workspace.

Etapa 1: exportar notebooks do workspace do Azure


Synapse
O foco da Etapa 1 é exportar os notebooks do workspace do Azure Synapse para o
OneLake no formato .ipynb. Esse processo é o seguinte:

1.1) Importar o notebook de migração para o workspace do Fabric . Esse


notebook exporta todos os notebooks de um determinado workspace do Azure
Synapse para um diretório intermediário no OneLake. A API do Synapse é usada
para exportar notebooks.
1.2) Configure os parâmetros no primeiro comando para exportar notebooks para
um armazenamento intermediário (OneLake). O snippet a seguir é usado para
configurar os parâmetros de origem e destino. Substitua-os por seus próprios
valores.

Python

# Azure config
azure_client_id = "<client_id>"
azure_tenant_id = "<tenant_id>"
azure_client_secret = "<client_secret>"

# Azure Synapse workspace config


synapse_workspace_name = "<synapse_workspace_name>"

# Fabric config
workspace_id = "<workspace_id>"
lakehouse_id = "<lakehouse_id>"
export_folder_name = f"export/{synapse_workspace_name}"
prefix = "" # this prefix is used during import {prefix}{notebook_name}
output_folder =
f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}/Fil
es/{export_folder_name}"

1.3) Execute as duas primeiras células do notebook de exportação/importação


para exportar notebooks para o OneLake. Depois que as células forem
preenchidas, essa estrutura de pastas no diretório de saída intermediário será
criada.

Etapa 2: importar notebooks para o Fabric


A etapa 2 acontece quando notebooks são importadas do armazenamento
intermediário para o workspace do Fabric. Esse processo é o seguinte:

2.1) Valide as configurações da etapa 1.2 para garantir que o workspace e os


valores de prefixo certos sejam indicados para importar os notebooks.
2.2) Execute a terceira célula do notebook de exportação/importação para
importar todos os notebooks da localização intermediária.

Próximas etapas
Migrar pools do Spark
Migrar definição de trabalho do Spark
Migrar dados e pipelines

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar a definição de trabalho do Spark
do Azure Synapse para o Fabric
Artigo • 15/11/2023

Para mover as definições de trabalho do Spark (SJD) do Azure Synapse para o Fabric,
você tem duas opções diferentes:

Opção 1: criar a definição de trabalho do Spark manualmente no Fabric.


Opção 2: você pode usar um script para exportar definições de trabalho do Spark
do Azure Synapse e importá-las no Fabric usando a API.

Para considerações sobre a definição de trabalho do Spark, consulte as diferenças entre


o Fabric e o Spark do Azure Synapse e o .

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric no seu locatário.

Opção 1: criar definição de trabalho do Spark


manualmente
Para exportar uma definição de trabalho do Spark do Azure Synapse:

1. Abra o Synapse Studio: entre no Azure . Navegue até o workspace do Azure


Synapse e abra o Synapse Studio.
2. Localize o trabalho do Python/Scala/R Spark: localize e identifique a definição de
trabalho do Python/Scala/R Spark que você deseja migrar.
3. Exportar a configuração de definição de trabalho:

No Synapse Studio, abra a definição de trabalho do Spark.


Exporte ou anote as configurações, incluindo localização do arquivo de script,
dependências, parâmetros e quaisquer outros detalhes relevantes.

Para criar uma nova definição de trabalho do Spark (SJD) com base nas informações da
SJD exportadas no Fabric:

1. Acesse o workspace do Fabric: entre no Fabric e acesse seu workspace.


2. Crie uma nova definição de trabalho do Spark no Fabric:

No Fabric, acesse a página inicial de Engenharia de Dados.


Selecione Definição de trabalho do Spark.
Configure o trabalho usando as informações exportadas do Synapse,
incluindo localização do script, dependências, parâmetros e configurações de
cluster.
3. Adaptar e testar: faça qualquer adaptação necessária ao script ou à configuração
para adequar o ambiente do Fabric. Teste o trabalho no Fabric para garantir que
ele seja executado corretamente.

Depois que a definição de trabalho do Spark for criada, valide as dependências:

Certifique-se de usar a mesma versão do Spark.


Valide a existência do arquivo de definição principal.
Valide a existência dos arquivos, dependências e recursos referenciados.
Serviços vinculados, conexões de fonte de dados e pontos de montagem.

Como criar uma definição de trabalho do Apache Spark no Fabric.

Opção 2: usar a API do Fabric


Siga estas etapas importantes para migração:

Pré-requisitos.
Etapa 1: exportar a definição de trabalho do Spark do Azure Synapse para o
OneLake (.json).
Etapa 2: importar a definição de trabalho do Spark automaticamente para o Fabric
usando a API do Fabric.

Pré-requisitos
Os pré-requisitos incluem ações que você precisa considerar antes de iniciar a migração
da definição de trabalho do Spark para o Fabric.

Um workspace do Fabric.
Se você ainda não tiver um, crie uma Lakehouse do Fabric no seu workspace.

Etapa 1: exportar a definição de trabalho do Spark do


workspace do Azure Synapse
O foco da Etapa 1 é exportar a definição de trabalho do Spark do workspace do Azure
Synapse para o OneLake no formato json. Esse processo é o seguinte:

1.1) Importar o notebook de migração da SJD para o workspace do Fabric . Esse


notebook exporta todas as definições de trabalho do Spark de um determinado
workspace do Azure Synapse para um diretório intermediário no OneLake. A API
do Synapse é usada para exportar a SJD.
1.2) Configure os parâmetros no primeiro comando para exportar a definição de
trabalho do Spark para um armazenamento intermediário (OneLake). Isso exporta
apenas o arquivo de metadados json. O snippet a seguir é usado para configurar
os parâmetros de origem e destino. Certifique-se de substituí-los por seus
próprios valores.

Python

# Azure config
azure_client_id = "<client_id>"
azure_tenant_id = "<tenant_id>"
azure_client_secret = "<client_secret>"

# Azure Synapse workspace config


synapse_workspace_name = "<synapse_workspace_name>"

# Fabric config
workspace_id = "<workspace_id>"
lakehouse_id = "<lakehouse_id>"
export_folder_name = f"export/{synapse_workspace_name}"
prefix = "" # this prefix is used during import {prefix}{sjd_name}

output_folder =
f"abfss://{workspace_id}@onelake.dfs.fabric.microsoft.com/{lakehouse_id}/Fil
es/{export_folder_name}"

1.3) Execute as duas primeiras células do notebook de exportação/importação


para exportar metadados de definição de trabalho do Spark para o OneLake.
Depois que as células são concluídas, essa estrutura de pastas no diretório de
saída intermediário é criada.

Etapa 2: importar a definição de trabalho do Spark para o


Fabric
A etapa 2 acontece quando as definições de trabalho do Spark são importadas do
armazenamento intermediário para o workspace do Fabric. Esse processo é o seguinte:

2.1) Valide as configurações em 1.2 para garantir que o workspace e o prefixo


certos sejam indicados para importar as definições de trabalho do Spark.
2.2) Execute a terceira célula do notebook de exportação/importação para
importar todas as definições de trabalho do Spark da localização intermediária.

7 Observação

A opção de exportação gera um arquivo de metadados json. Verifique se os


arquivos executáveis de definição de trabalho do Spark, os arquivos de referência e
os argumentos estão acessíveis no Fabric.

Próximas etapas
Migrar notebooks
Migrar dados e pipelines
Migrar metadados do Metastore do Hive

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar dados e pipelines do Azure
Synapse para o Microsoft Fabric
Artigo • 16/11/2023

A primeira etapa na migração de dados e pipelines é identificar os dados que você


deseja disponibilizar no OneLake e os pipelines que você pretende mover.

Você tem duas opções para migração de dados:

Opção 1: Azure Data Lake Storage (ADLS) Gen2 como armazenamento padrão. Se
você estiver usando o ADLS Gen2 no momento e quiser evitar a cópia de dados,
considere usar atalhos do OneLake.
Opção 2: OneLake como armazenamento padrão. Se você quiser mudar do ADLS
Gen2 para o OneLake como uma camada de armazenamento, considere ler/gravar
de/para o OneLake de seus notebooks e definições de trabalho do Spark.

Migração de dados

Opção 1: ADLS Gen2 como armazenamento (atalhos)


Se estiver interagindo com o ADLS Gen2 e quiser evitar duplicação de dados, você
poderá criar um atalho para o caminho de origem do ADLS Gen2 no OneLake. Você
pode criar atalhos nas seções Arquivos e Tabelas do Lakehouse no Fabric com as
seguintes considerações:

A seção Arquivos é a área não gerenciada do lake. Se os dados estiverem no


formato CSV, JSON ou Parquet, recomendamos criar um atalho para essa área.
A seção Tabelas é a área gerenciada do lake. Todas as tabelas, tanto gerenciadas
pelo Spark quanto não gerenciadas, são registradas aqui. Se os dados estiverem
no formato Delta, você poderá criar um atalho nessa área e o processo de
descoberta automática registrará automaticamente essas tabelas Delta no
metastore do Lakehouse.

Saiba mais sobre como criar um atalho do ADLS Gen2.

Opção 2: OneLake como armazenamento


Para usar o OneLake como uma camada de armazenamento e mover dados do ADLS
Gen2, inicialmente, você deve apontar os itens relacionados ao Spark do Azure Synapse
para o OneLake e transferir os dados existentes para o OneLake. Para o primeiro,
consulte integrar o OneLake ao Spark do Azure Synapse.

Para mover os dados existentes para o OneLake, você tem várias opções:

mssparkutils fastcp: a biblioteca mssparkutils fornece uma API fastcp que permite
copiar dados entre o ADLS Gen2 e o OneLake.
AzCopy: você pode usar o utilitário de linha de comando do AzCopy para copiar
dados do ADLS Gen2 para o OneLake.
Azure Data Factory, Azure Synapse e Data Factory no Fabric: use a atividade Copy
para copiar dados para o lakehouse.
Use atalhos: você pode habilitar dados históricos do ADLS Gen2 no OneLake
usando atalhos. Nenhuma cópia de dados é necessária.
Gerenciador de Armazenamento do Microsoft Azure: você pode mover arquivos
do local do ADLS Gen2 para o OneLake usando o Gerenciador de Armazenamento
do Azure. Consulte Como integrar o OneLake com o Gerenciador de
Armazenamento do Microsoft Azure.

Migração de pipelines (atividades relacionadas


ao Spark)
Se os pipelines de dados do Azure Synapse incluírem atividades de definição de
trabalho do Spark e/ou do notebook, você precisará mover esses pipelines do Azure
Synapse para pipelines de dados do Data Factory no Fabric e fazer referência aos
notebooks de destino. A atividade do notebook está disponível em pipelines de dados
do Data Factory. Veja todas as atividades de pipeline de dados com suporte no Fabric
aqui.

Para considerações sobre a atividade do pipeline de dados relacionada ao Spark,


consulte as diferenças entre o Spark do Azure Synapse e o Fabric.
Para a migração do notebook, consulte a migração de notebooks do Azure
Synapse para o Fabric.
Para a migração do pipeline de dados, consulte migrar para o Data Factory no
Fabric.

Próximas etapas
Migrar notebooks do Spark
Migrar definição de trabalho do Spark
Migrar metadados do metastore do Hive
Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade


Migrar metadados do metastore do
Hive do Azure Synapse para o Fabric
Artigo • 16/11/2023

A etapa inicial na migração do metastore do Hive (HMS) envolve determinar os bancos


de dados, tabelas e partições que você deseja transferir. Não é necessário migrar tudo;
você pode selecionar bancos de dados específicos. Depois de identificar os bancos de
dados para migração, verifique se há tabelas do Spark gerenciadas ou externas.

Para considerações sobre HMS, confira diferenças entre o Spark do Azure Synapse e o
Fabric.

7 Observação

Como alternativa, se o ADLS Gen2 contiver tabelas Delta, você poderá criar um
atalho do OneLake para uma tabela Delta no ADLS Gen2.

Pré-requisitos
Se você ainda não tiver um, crie um workspace do Fabric em seu locatário.
Se você ainda não tiver um, crie um lakehouse do Fabric no seu workspace.

Opção 1: exportar e importar o HMS para o


metastore do lakehouse
Siga estas etapas importantes para migração:

Etapa 1: exportar metadados do HMS de origem


Etapa 2: importar metadados para o lakehouse do Fabric
Etapas pós-migração: validar o conteúdo

7 Observação

Os scripts copiam apenas objetos do catálogo do Spark para o lakehouse do Fabric.


A suposição é que os dados já foram copiados (por exemplo, do local do
warehouse para o ADLS Gen2) ou estão disponíveis para tabelas gerenciadas e
externas (por exemplo, por meio de atalhos – preferenciais) no lakehouse do Fabric.
Etapa 1: exportar metadados do HMS de origem
O foco da Etapa 1 é exportar os metadados do HMS de origem para a seção Arquivos
do lakehouse do Fabric. Esse processo é o seguinte:

1.1) Importe o notebook de exportação de metadados HMS para o workspace do


Azure Synapse. Esse notebook consulta e exporta metadados HMS de bancos de
dados, tabelas e partições para um diretório intermediário no OneLake (funções
ainda não incluídas). A API do catálogo interno do Spark é usada nesse script para
ler objetos do catálogo.

1.2) Configure os parâmetros no primeiro comando para exportar informações de


metadados para um armazenamento intermediário (OneLake). O snippet a seguir é
usado para configurar os parâmetros de origem e destino. Substitua-os por seus
próprios valores.

Scala

// Azure Synapse workspace config


var SynapseWorkspaceName = "<synapse_workspace_name>"

var DatabaseNames = "<db1_name>;<db2_name>"


var SkipExportTablesWithUnrecognizedType:Boolean = false

// Fabric config
var WorkspaceId = "<workspace_id>"
var LakehouseId = "<lakehouse_id>"
var ExportFolderName =
f"export/${SynapseWorkspaceName}/sparkCatalogMetadata"

var OutputFolder =
f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId
}/Files/${ExportFolderName}/"

1.3) Execute todos os comandos do notebook para exportar objetos do catálogo


para o OneLake. Depois que as células forem preenchidas, essa estrutura de pastas
no diretório de saída intermediário será criada.
Etapa 2: importar metadados para o lakehouse do Fabric
A etapa 2 é quando os metadados reais são importados do armazenamento
intermediário para o lakehouse do Fabric. A saída dessa etapa é a migração de todos os
metadados HMS (bancos de dados, tabelas e partições). Esse processo é o seguinte:

2.1) Crie um atalho na seção “Arquivos” do lakehouse. Esse atalho precisa apontar
para o diretório de origem do warehouse do Spark e será usado posteriormente
substituir as tabelas gerenciadas do Spark. Veja exemplos de atalho apontando
para o diretório do warehouse do Spark:
Caminho de atalho para o diretório do warehouse do Spark do Azure Synapse:
abfss://<container>@<storage_name>.dfs.core.windows.net/synapse/workspaces/

<workspace_name>/warehouse

Caminho de atalho para o diretório do warehouse do Azure Databricks:


dbfs:/mnt/<warehouse_dir>

Caminho de atalho para o diretório do warehouse do Spark do HDInsight:


abfss://<container>@<storage_name>.dfs.core.windows.net/apps/spark/warehous

2.2) Importe o notebook de importação de metadados HMS para o workspace


do Fabric. Importe este notebook para importar objetos de banco de dados,
tabela e partição do armazenamento intermediário. A API do catálogo interno do
Spark é usada nesse script para criar’ objetos do catálogo no Fabric.

2.3) Configure os parâmetros no primeiro comando. No Apache Spark, quando


você cria uma tabela gerenciada, os dados dela são armazenados em um local
gerenciado pelo próprio Spark, normalmente no diretório do warehouse do Spark.
O local exato é determinado pelo Spark. Já nas tabelas externas, você especifica o
local e gerencia os dados subjacentes. Quando você migra os metadados de uma
tabela gerenciada (sem mover os dados reais), os metadados mantêm as
informações de localização originais que apontam para o antigo diretório do
warehouse do Spark. Portanto, para tabelas gerenciadas, WarehouseMappings é
usado para fazer a substituição usando o atalho criado na Etapa 2.1. Todas as
tabelas gerenciadas de origem são convertidas como tabelas externas usando esse
script. LakehouseId refere-se ao lakehouse criado na Etapa 2.1 que contém atalhos.

Scala

// Azure Synapse workspace config


var ContainerName = "<container_name>"
var StorageName = "<storage_name>"
var SynapseWorkspaceName = "<synapse_workspace_name>"

// Fabric config
var WorkspaceId = "<workspace_id>"
var LakehouseId = "<lakehouse_id>"
var ExportFolderName =
f"export/${SynapseWorkspaceName}/sparkCatalogMetadata"
var ShortcutName = "<warehouse_dir_shortcut_name>"

var WarehouseMappings:Map[String, String] = Map(

f"abfss://${ContainerName}@${StorageName}.dfs.core.windows.net/synapse/
workspaces/${SynapseWorkspaceName}/warehouse"->
f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId
}/Files/${ShortcutName}"
)

var OutputFolder =
f"abfss://${WorkspaceId}@onelake.dfs.fabric.microsoft.com/${LakehouseId
}/Files/${ExportFolderName}/"

var DatabasePrefix = ""


var TablePrefix = ""
var IgnoreIfExists = true

2.4) Execute todos os comandos do notebook para importar objetos do catálogo


do caminho intermediário.

7 Observação

Ao importar vários bancos de dados, você pode (i) criar um lakehouse por banco
de dados (a abordagem usada aqui) ou (ii) mover todas as tabelas de bancos de
dados diferentes para um único lakehouse. Para a segunda opção, todas as tabelas
migradas podem ser <lakehouse>.<db_name>_<table_name> , e você precisará ajustar
o notebook de importação adequadamente.

Etapa 3: validar conteúdo


A etapa 3 é onde você valida a migração dos metadados. Veja diversos exemplos.

Você pode ver os bancos de dados importados em execução:

Python

%%sql
SHOW DATABASES

Você pode verificar todas as tabelas em um lakehouse (banco de dados) executando:

Python

%%sql
SHOW TABLES IN <lakehouse_name>

Você pode ver os detalhes de uma tabela específica executando:

Python

%%sql
DESCRIBE EXTENDED <lakehouse_name>.<table_name>

Como alternativa, todas as tabelas importadas de cada lakehouse podem ser vistas na
seção Tabelas da interface do usuário do Lakehouse Explorer.
Outras considerações
Escalabilidade: a solução aqui está usando a API interna do catálogo do Spark para
fazer importação/exportação, mas não está se conectando diretamente ao HMS
para obter objetos do catálogo. Portanto, a solução não terá uma boa
escalabilidade se o catálogo for grande. Você precisaria alterar a lógica de
exportação usando o BD do HMS.
Precisão dos dados: não há garantia de isolamento. Ou seja, se o mecanismo de
computação do Spark estiver fazendo modificações simultâneas no metastore
durante a migração no notebook, dados inconsistentes poderão ser introduzidos
no lakehouse do Fabric.

Próximas etapas
Fabric x Spark do Azure Synapse
Saiba mais sobre as opções de migração para os pools do Spark, configurações,
bibliotecas, notebooks e definição de trabalho do Spark

Comentários
Esta página foi útil?  Yes  No

Fornecer comentários sobre o produto | Pergunte à comunidade

Você também pode gostar