O recurso de Notebook AnalyticDB for MySQL é uma plataforma interativa para análise e desenvolvimento de dados que oferece funcionalidades como edição de jobs, análise de dados e visualização. Este tópico explica como usar o recurso Notebook no Data Management (DMS) para desenvolver jobs Spark SQL.
Pré-requisitos
Você criou um cluster do AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Um grupo de recursos de job foi criado para o cluster AnalyticDB for MySQL.
-
Você criou uma conta de banco de dados para o cluster AnalyticDB for MySQL.
Se você utiliza uma conta Alibaba Cloud, basta criar uma conta privilegiada.
Caso utilize um usuário do Resource Access Management (RAM), crie uma conta privilegiada e uma conta padrão e associe a conta padrão ao usuário RAM.
O AnalyticDB for MySQL tem autorização para assumir a função AliyunADBSparkProcessingDataRole e acessar outros recursos da nuvem.
-
Você configurou o caminho de armazenamento de logs dos aplicativos Spark para o cluster AnalyticDB for MySQL.
NotaAcesse o console do AnalyticDB for MySQL. Localize o cluster desejado e clique em seu ID. No painel de navegação à esquerda, escolha . Clique em Log Settings. Na caixa de diálogo exibida, selecione o caminho padrão ou especifique um caminho de armazenamento personalizado. Não defina o caminho personalizado como o diretório raiz do OSS. O caminho personalizado deve conter pelo menos um nível de pastas.
Você criou um bucket do Object Storage Service (OSS) na mesma região do cluster AnalyticDB for MySQL.
Limitações
O recurso Notebook está disponível apenas nas seguintes regiões: .
Procedimento
-
Crie um projeto e acesse o workspace.
Acesse o DMS 5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
Clique em Create Workspace. Na caixa de diálogo exibida, insira um Workspace Name, selecione uma Region e clique em OK.
Na coluna Actions do workspace desejado, clique em Go to Workspace.
(Opcional) Adicione membros ao projeto. Se vários usuários trabalharem no workspace, esta etapa é obrigatória para atribuir diferentes funções a eles.
-
Configure o espaço de armazenamento de código.
Na aba Project Settings
, clique em
Storage Management
.Configure o caminho do OSS para Code Storage.
-
Adicione um recurso.
Na aba Project Settings
, clique em Resource Settings.-
Clique em Add Resource e configure os parâmetros do recurso.
Parâmetro
Obrigatório
Descrição
Resource Name
Sim
Nome do recurso. Especifique um nome personalizado.
Resource Introduction
Sim
Descrição da finalidade do recurso. Valor personalizável.
Image
Sim
Apenas a imagem Spark3.5+Python3.9 é compatível.
AnalyticDB Instance
Sim
ID do cluster AnalyticDB for MySQL.
NotaSe o cluster desejado não aparecer, verifique se ele foi adicionado ao DMS.
AnalyticDB Resource Group
Sim
Selecione o grupo de recursos de job de destino.
Executor Specifications
Sim
Especificação de recursos para executores Spark. Este exemplo usa o valor padrão medium.
Para mais informações sobre as especificações correspondentes a diferentes modelos, consulte a coluna Model em Parâmetros de configuração de aplicativo Spark.
Max Executors
Min Executors
Sim
Quantidade de executores Spark.
Ao selecionar a imagem Spark3.5+Python3.9, o sistema define Min Executors como 2 e Max Executors como 8 por padrão.
Notebook Spec
Sim
Selecione uma especificação de Notebook. Este exemplo utiliza General_Tiny_v1 (1 núcleo e 4 GB de memória).
VPC ID
Sim
Selecione a Virtual Private Cloud (VPC) onde reside o cluster AnalyticDB for MySQL para garantir a comunicação entre o Notebook e o cluster.
ImportanteSe posteriormente você alterar o cluster AnalyticDB for MySQL para uma nova Virtual Private Cloud (VPC) e vSwitch, atualize o VPC ID e o vSwitch ID do recurso. Caso contrário, os envios de jobs falharão.
Zone ID
Sim
Selecione a zona onde reside o cluster AnalyticDB for MySQL.
vSwitch ID
Sim
Selecione o vSwitch ao qual pertence o cluster AnalyticDB for MySQL.
Security group ID
Sim
Selecione um grupo de segurança disponível para garantir a comunicação entre o Notebook e o cluster AnalyticDB for MySQL.
Release resource
Sim
Libera o recurso automaticamente após um período de inatividade especificado.
Dependent Jars
Não
Caminho de armazenamento do pacote JAR no OSS. Necessário apenas para jobs Python que utilizam um pacote JAR.
SparkConf
Não
Os itens de configuração são praticamente os mesmos do Spark open source. Os parâmetros seguem o formato
key: value. Para mais detalhes sobre parâmetros diferentes do Spark open source e exclusivos do AnalyticDB for MySQL, consulte Parâmetros de configuração de aplicativo Spark. Clique em Save.
Na coluna Actions do recurso, clique em Enable.
-
Inicialize os dados.
No canto superior esquerdo do console, clique em seu ícone
e escolha .-
Clique em +New. Na caixa de diálogo Add Instance, configure os seguintes parâmetros:
Parâmetro
Descrição
Data Source
Na aba Alibaba Cloud, selecione OSS.
Basic Information
Files and logs
Selecione OSS.
Instance Region
Selecione a região onde reside o cluster AnalyticDB for MySQL.
Import Method
Selecione Connection String.
Connection String
Insira oss-cn-hangzhou.aliyuncs.com.
Bucket
Selecione o nome do bucket.
Access Mode
Modo de acesso. Este exemplo utiliza Security Hosting - Manual.
AccessKey ID
AccessKey ID da conta Alibaba Cloud ou de um usuário RAM com permissões para acessar o OSS.
Para mais informações sobre como obter um AccessKey ID e um AccessKey Secret, consulte Contas e permissões.
AccessKey Secret
AccessKey Secret da conta Alibaba Cloud ou de um usuário RAM com permissões para acessar o OSS.
Para mais informações sobre como obter um AccessKey ID e um AccessKey Secret, consulte Contas e permissões.
Advanced Information
Parâmetros opcionais. Para mais informações, consulte Advanced Information.
-
Após configurar os parâmetros, clique em Test Connection no canto inferior esquerdo.
NotaSe o teste de conectividade falhar, verifique as informações da instância inseridas com base na mensagem de erro.
Quando a mensagem Successful connection aparecer, clique em Submit.
Acesse o workspace e clique em sua aba
.Na aba Data Lake Data, clique em Add OSS e selecione o bucket adicionado na subetapa b.
-
Crie um Notebook.
Na aba Files
, clique em
e selecione Notebook. -
Desenvolva um job Spark SQL na página do Notebook.
NotaPara mais informações sobre os botões da página do Notebook, consulte Interface do Notebook.
-
Execute o seguinte comando para baixar as dependências Python:
pip install delta -
Altere o tipo da célula para SQL e execute a seguinte instrução para criar um banco de dados.
NotaO banco de dados db_delta criado nesta etapa e a tabela externa
sample_datacriada na próxima etapa serão exibidos automaticamente no AnalyticDB for MySQL. Em seguida, analise a tabelasample_datano console do AnalyticDB for MySQL.CREATE DATABASE db_delta LOCATION 'oss://testBucketName/db_delta/'; -- Specify the storage path for data in the db_delta database. -
Mude o tipo da célula para Code, execute o código abaixo para criar a tabela externa
sample_datae insira dados nela. Essa ação armazena os dados da tabela externasample_datano caminho do OSS especificado na etapa anterior.# -*- coding: utf-8 -*- import pyspark from delta import * from pyspark.sql.types import * from pyspark.sql.functions import * print("Starting Delta table creation") data = [ ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29), ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29), ("Robert", "Baratheon", "Baratheon", "Storms End", 48), ("Eddard", "Stark", "Stark", "Winterfell", 46), ("Jamie", "Lannister", "Lannister", "Casterly Rock", 29) ] schema = StructType([ StructField("firstname", StringType(), True), StructField("lastname", StringType(), True), StructField("house", StringType(), True), StructField("location", StringType(), True), StructField("age", IntegerType(), True) ]) sample_dataframe = spark.createDataFrame(data=data, schema=schema) sample_dataframe.write.format('delta').mode("overwrite").option('mergeSchema','true').saveAsTable("db_delta.sample_data") -
Altere o tipo da célula para SQL e execute a seguinte instrução para consultar os dados na tabela
sample_data.SELECT * FROM db_delta.sample_data;
-
-
Para analisar a tabela
sample_datacom Spark SQL no console do AnalyticDB for MySQL, siga estas etapas.Acesse o console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster desejado e clique em seu ID.
No painel de navegação à esquerda, escolha . Selecione o mecanismo Spark e um grupo de recursos Interactive.
-
Consulte a tabela
sample_data.SELECT * FROM db_delta.sample_data LIMIT 1000;
Documentação relacionada
Notebook (legado): Saiba mais sobre o recurso Notebook.