Obter dados de streaming no lakehouse e acessar com o ponto de extremidade de análise do SQL

Este quickstart explica como criar uma definição de trabalho no Spark que contenha código Python com Spark Structured Streaming para colocar dados em uma casa de lago e então servi-los por meio de um endpoint de análise SQL. Após concluir esse quickstart, você terá uma definição de trabalho no Spark que roda continuamente e o endpoint de análise SQL poderá visualizar os dados recebidos.

Executar um script do Python

Use o script Python seguinte para criar uma tabela Delta de streaming em um lakehouse usando o Apache Spark. O script lê um fluxo de dados gerados (uma linha por segundo) e grava-o no modo de acréscimo em uma tabela Delta chamada streamingtable. Ele armazena os dados e as informações de ponto de verificação no lakehouse especificado.

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

    from pyspark.sql import SparkSession
    
    if __name__ == "__main__":
     # Start Spark session
     spark = SparkSession.builder \
         .appName("RateStreamToDelta") \
         .getOrCreate()
    
     # Table name used for logging
     tableName = "streamingtable"
    
     # Define Delta Lake storage path
     deltaTablePath = f"Tables/{tableName}"
    
     # Create a streaming DataFrame using the rate source
     df = spark.readStream \
         .format("rate") \
         .option("rowsPerSecond", 1) \
         .load()
    
     # Write the streaming data to Delta
     query = df.writeStream \
         .format("delta") \
         .outputMode("append") \
         .option("path", deltaTablePath) \
         .option("checkpointLocation", f"{deltaTablePath}/_checkpoint") \
         .start()
    
     # Keep the stream running
     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. Conectar-se ao Portal Fabric.

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

  3. Para criar uma lakehouse, selecione Novo item no workspace e selecione Lakehouse no painel aberto.

    Captura de tela que mostra o novo diálogo do Lakehouse.

  4. Insira o nome do lakehouse e selecione Criar.

Criar uma definição de trabalho do Spark

Use os seguintes passos para criar uma definição de trabalho Spark:

  1. No mesmo workspace em que você criou uma lakehouse, selecione Novo item.

  2. No painel que é aberto, em Obter dados, selecione Definição de Trabalho do Spark.

  3. Digite o nome da definição do seu trabalho no 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 Retentativas para definição de trabalho 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 .

    Captura de tela mostrando o ícone de configurações de Definição de Trabalho do Spark.

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

    Captura de tela mostrando a guia Otimização de Definição de Trabalho do Spark.

  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.

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.

    Captura de tela mostrando o ícone de execução da Definição de Trabalho do Spark.

  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

Após a execução do script, uma tabela chamada streamingtable com colunas timestamp e valor é criada no lakehouse. Você pode exibir os dados usando o endpoint SQL Analytics:

  1. Do espaço de trabalho, abra sua casa no lago.

  2. Alterne para o endpoint de análise SQL no canto superior direito.

  3. No painel de navegação à esquerda, expanda Esquemas > dbo >Tabelas e selecione streamingtable para visualizar os dados.