La función Notebook de AnalyticDB for MySQL es una interactive platform for data analytics and development, offering features like job editing, data analysis, and data visualization. This topic explains how to use the Notebook feature in Data Management (DMS) to develop Spark SQL jobs.
Requisitos previos
Se creó un clúster de AnalyticDB for MySQL Enterprise Edition, Basic Edition o Data Lakehouse Edition.
A job resource group is created para el clúster de AnalyticDB for MySQL.
-
Se creó una cuenta de base de datos para el clúster de AnalyticDB for MySQL.
Si utiliza una cuenta de Alibaba Cloud, solo necesita create a privileged account.
Si utiliza un usuario de Resource Access Management (RAM), debe create a privileged account and a standard account y associate the standard account with the RAM user.
Se autorizó a AnalyticDB for MySQL para assume the AliyunADBSparkProcessingDataRole role to access other cloud resources.
-
Se configuró la ruta de almacenamiento de registros de las aplicaciones Spark para el clúster de AnalyticDB for MySQL.
NotaInicie sesión en la consola de AnalyticDB for MySQL. Busque el clúster que desea gestionar y haga clic en su ID. En el panel de navegación izquierdo, seleccione . Haga clic en Log Settings. En el cuadro de diálogo que aparece, seleccione la ruta predeterminada o especifique una ruta de almacenamiento personalizada. No puede establecer la ruta de almacenamiento personalizada en el directorio raíz de OSS. Asegúrese de que la ruta de almacenamiento personalizada contenga como mínimo un nivel de carpetas.
Se creó un bucket de Object Storage Service (OSS) en la misma región que el clúster de AnalyticDB for MySQL.
Limitaciones
La función Notebook solo está disponible en las siguientes regiones: .
Procedimiento
-
Cree un proyecto y vaya al espacio de trabajo.
Inicie sesión en DMS 5.0.
-
Pase el puntero sobre el icono
en la esquina superior izquierda y seleccione .NotaSi utiliza la consola de DMS en modo normal, seleccione en la barra de navegación superior.
Haga clic en Create Workspace. En el cuadro de diálogo que aparece, introduzca un Workspace Name, seleccione una Region y haga clic en OK.
En la columna Actions del espacio de trabajo deseado, haga clic en Go to Workspace.
(Optional) Add project members. Si varios usuarios trabajan en el espacio de trabajo, debe completar este paso para asignarles distintos roles.
-
Configure el espacio de almacenamiento de código.
En la pestaña Project Settings
, haga clic en Storage Management .Configure la ruta de OSS para Code Storage.
-
Agregue un recurso.
En la pestaña Project Settings
, haga clic en Resource Settings.-
Haga clic en Add Resource y configure los parámetros del recurso.
Parámetro
Obligatorio
Descripción
Resource Name
Sí
Nombre del recurso. Puede especificar un nombre personalizado.
Resource Introduction
Sí
Descripción del uso previsto del recurso. Este valor es personalizable.
Image
Sí
Solo se admite la imagen Spark3.5+Python3.9.
AnalyticDB Instance
Sí
ID del clúster de AnalyticDB for MySQL.
NotaSi el clúster que desea gestionar no se muestra, compruebe si el clúster está added to DMS.
AnalyticDB Resource Group
Sí
Seleccione el resource group de destino para el trabajo.
Executor Specifications
Sí
Especificación de recursos para los ejecutores de Spark. Este ejemplo utiliza el valor predeterminado: medium.
Para obtener más información sobre las especificaciones correspondientes a cada modelo, consulte la columna Model en Spark application configuration parameters.
Max Executors
Min Executors
Sí
Número de ejecutores de Spark.
Al seleccionar la imagen Spark3.5+Python3.9, Min Executors se establece en 2 y Max Executors en 8 de forma predeterminada.
Notebook Spec
Sí
Seleccione una especificación de Notebook. Este ejemplo utiliza General_Tiny_v1 (1 núcleo y 4 GB de memoria).
VPC ID
Sí
Seleccione la Virtual Private Cloud (VPC) donde reside el clúster de AnalyticDB for MySQL para garantizar que el Notebook pueda comunicarse con el clúster.
ImportanteSi posteriormente cambia el clúster de AnalyticDB for MySQL a una nueva Virtual Private Cloud (VPC) y vSwitch, debe actualizar el VPC ID y el vSwitch ID del recurso. De lo contrario, los envíos de trabajos fallarán.
Zone ID
Sí
Seleccione la zona donde reside el clúster de AnalyticDB for MySQL.
vSwitch ID
Sí
Seleccione el vSwitch al que pertenece el clúster de AnalyticDB for MySQL.
Security group ID
Sí
Seleccione un security group disponible para garantizar que el Notebook pueda comunicarse con el clúster de AnalyticDB for MySQL.
Release resource
Sí
El recurso se libera automáticamente tras un periodo de inactividad especificado.
Dependent Jars
No
Ruta de almacenamiento en OSS del paquete JAR. Este parámetro solo es necesario para trabajos Python que utilizan un paquete JAR.
SparkConf
No
Los elementos de configuración son mayormente iguales a los de Spark de código abierto. Los parámetros siguen el formato
key: value. Para obtener más información sobre los parámetros de configuración que difieren de Spark de código abierto y los parámetros exclusivos de AnalyticDB for MySQL, consulte Spark application configuration parameters. Haga clic en Save.
En la columna Actions del recurso, haga clic en Enable.
-
Inicialice los datos.
En la esquina superior izquierda de la consola, haga clic en el icono
y seleccione .-
Haga clic en +New. En el cuadro de diálogo Add Instance, configure los siguientes parámetros:
Parámetro
Descripción
Data Source
En la pestaña Alibaba Cloud, seleccione OSS.
Basic Information
Files and logs
Seleccione OSS.
Instance Region
Seleccione la región donde reside el clúster de AnalyticDB for MySQL.
Import Method
Seleccione Connection String.
Connection String
Introduzca oss-cn-hangzhou.aliyuncs.com.
Bucket
Seleccione el nombre del bucket.
Access Mode
Modo de acceso. Este ejemplo utiliza Security Hosting - Manual.
AccessKey ID
AccessKey ID de la cuenta de Alibaba Cloud o de un usuario RAM con permisos para acceder a OSS.
Para obtener más información sobre cómo conseguir un AccessKey ID y un AccessKey Secret, consulte Accounts and permissions.
AccessKey Secret
AccessKey Secret de la cuenta de Alibaba Cloud o de un usuario RAM con permisos para acceder a OSS.
Para obtener más información sobre cómo conseguir un AccessKey ID y un AccessKey Secret, consulte Accounts and permissions.
Advanced Information
Parámetros opcionales. Para obtener más información, consulte Advanced Information.
-
Después de configurar los parámetros, haga clic en Test Connection en la esquina inferior izquierda.
NotaSi la prueba de conectividad falla, revise la información de la instancia que introdujo según el mensaje de error.
Cuando aparezca el mensaje Successful connection, haga clic en Submit.
Vaya al espacio de trabajo y haga clic en la pestaña
.En la pestaña Data Lake Data, haga clic en Add OSS y seleccione el bucket que agregó en el subpaso b.
-
Cree un Notebook.
En la pestaña Files
, haga clic en
y seleccione Notebook. -
Desarrolle un trabajo Spark SQL en la página del Notebook.
NotaPara obtener más información sobre los botones de la página del Notebook, consulte Notebook interface.
-
Ejecute el siguiente comando para descargar las dependencias de Python:
pip install delta -
Cambie el tipo de celda a SQL y ejecute la siguiente sentencia para crear una base de datos.
NotaLa base de datos db_delta creada en este paso y la tabla externa
sample_datacreada en el siguiente paso se muestran automáticamente en AnalyticDB for MySQL. Posteriormente, podrá analizar la tablasample_dataen la consola de AnalyticDB for MySQL.CREATE DATABASE db_delta LOCATION 'oss://testBucketName/db_delta/'; -- Specify the storage path for data in the db_delta database. -
Cambie el tipo de celda a Code, ejecute el siguiente código para crear la tabla externa
sample_datae inserte datos en ella. Esta acción almacena los datos de la tabla externasample_dataen la ruta de OSS especificada en el paso 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") -
Cambie el tipo de celda a SQL y ejecute la siguiente sentencia para consultar los datos de la tabla
sample_data.SELECT * FROM db_delta.sample_data;
-
-
Para analizar la tabla
sample_datacon Spark SQL en la consola de AnalyticDB for MySQL, siga estos pasos.Inicie sesión en la consola de AnalyticDB for MySQL. En la esquina superior izquierda de la consola, seleccione una región. En el panel de navegación izquierdo, haga clic en Clusters. Busque el clúster que desea gestionar y haga clic en su ID.
En el panel de navegación izquierdo, seleccione . Seleccione el motor Spark y un resource group interactivo.
-
Consulte la tabla
sample_data.SELECT * FROM db_delta.sample_data LIMIT 1000;
Documentación relacionada
Notebook (legacy): Obtenga más información sobre la función Notebook.