La función de almacenamiento de lago de AnalyticDB for MySQL simplifica la construcción del data lake y la gestión del almacenamiento. Admite almacenar datos estructurados de tablas en formatos como Iceberg y Paimon, así como objetos de archivo no estructurados. Por lo tanto, resulta ideal para escenarios que requieren procesamiento por lotes sin conexión y análisis en tiempo real. En este tema se describen los modos de almacenamiento, los tipos de almacenamiento y las operaciones de gestión de recursos del almacenamiento de lago.
Requisitos previos
Se creó un clúster de AnalyticDB for MySQL Enterprise Edition, Basic Edition o Data Lakehouse Edition.
Habilitar el almacenamiento de lago
La función de almacenamiento de lago se encuentra en vista previa por invitación. Para habilitarla, envíe un ticket para comunicarse con el soporte técnico.
Modos de almacenamiento
Antes de crear una tabla de data lake, debe decidir dónde almacenar sus datos. AnalyticDB for MySQL ofrece dos modos de almacenamiento. El modo se determina al momento de crear la tabla y no se puede modificar después.
|
Dimensión |
Almacenamiento de lago administrado (lago interno) |
OSS propiedad del usuario (lago externo) |
|
Gestión del almacenamiento |
AnalyticDB for MySQL gestiona por completo los buckets de almacenamiento subyacentes y los administra automáticamente |
Los usuarios gestionan sus propios buckets de OSS |
|
Parámetros clave para crear la tabla |
|
|
|
Habilitación |
Requiere habilitar primero el almacenamiento de lago |
No se necesita configuración adicional para el acceso desde la misma cuenta |
|
Casos de uso |
Proyectos nuevos que necesitan operaciones simplificadas |
Datos existentes en OSS o requisitos de almacenamiento autogestionado |
Almacenamiento de lago administrado: los datos se guardan en buckets subyacentes que AnalyticDB for MySQL gestiona automáticamente. Puede leer y escribir en las tablas de lago mediante SQL estándar, sin administrar sistemas de archivos, configuraciones de permisos ni políticas de ciclo de vida. Para obtener más información, consulte Create a lake storage.
OSS propiedad del usuario: los datos se almacenan por completo en un bucket de OSS que usted especifique dentro de la misma región. La ruta de OSS se indica con el parámetro
LOCATIONal crear la tabla.
La sintaxis para crear tablas varía según el motor. Para obtener más información, consulte la documentación de lectura y escritura del motor correspondiente en Next steps.
Tipos de almacenamiento
El almacenamiento de lago administrado de AnalyticDB for MySQL ofrece dos tipos de almacenamiento. Elija la solución adecuada según los requisitos de su negocio.
|
Dimensión |
Basic |
Standard |
|
Almacenamiento subyacente |
Object storage de OSS |
AFS (AnalyticDB Filesystem), almacenamiento de objetos de alto rendimiento |
|
Protocolo de acceso |
API de OSS |
Protocolo compatible con S3, con soporte adicional para la interfaz POSIX (en vista previa por invitación) |
|
Casos de uso |
Análisis de datos de propósito general y procesamiento por lotes sin conexión |
Entrenamiento e inference de IA/ML, computación de alto rendimiento y procesamiento de datos multimodales |
|
Características de rendimiento |
Rendimiento y latencia estándar |
Alto rendimiento, baja latencia y caché multinivel integrado |
|
Niveles de datos frecuentes e infrecuentes |
No compatible |
Compatible: los datos frecuentes se almacenan en AFS y los infrecuentes se trasladan automáticamente a OSS |
|
Habilitación |
Envíe un ticket |
Envíe un ticket |
Basic (almacenamiento de lago estándar de OSS)
El almacenamiento de lago Basic se basa en el object storage de Alibaba Cloud OSS. Por ello, es adecuado para la mayoría de los escenarios de análisis de datos de propósito general y procesamiento por lotes sin conexión. Una vez creado, el sistema genera automáticamente un bucket en OSS bajo la cuenta de servicio. Este bucket se ubica en la misma región que su clúster y tiene el mismo nombre que el almacenamiento de lago.
Standard (almacenamiento de lago de alto rendimiento AFS)
AFS (AnalyticDB Filesystem) es un almacenamiento de objetos de alto rendimiento compatible con S3. Proporciona capacidades de ingesta y persistencia de datos de alto rendimiento para el almacenamiento de lago de AnalyticDB for MySQL. Está diseñado para escenarios que exigen un mayor rendimiento de almacenamiento, como el entrenamiento y la inference de IA/ML, y el procesamiento de datos multimodales a gran escala.
Capacidades principales:
Compatibilidad con el protocolo S3: puede utilizar directamente cadenas de herramientas estándar, como AWS SDK y Spark/Flink S3A, para acceder a AFS sin modificar sus herramientas actuales.
Interfaz POSIX (en vista previa por invitación): los mismos datos se pueden consultar tanto mediante las API de S3 como a través de montajes POSIX. Esto abarca escenarios de entrenamiento e inference que dependen de rutas de archivo.
Niveles de datos frecuentes e infrecuentes: los datos frecuentes se almacenan en AFS para garantizar un acceso de alto rendimiento, mientras que los infrecuentes se trasladan automáticamente a OSS. El espacio de nombres unificado es transparente para las aplicaciones de capas superiores, lo que logra un equilibrio entre costo y rendimiento.
Seguridad y permisos: AFS admite un modelo de permisos detallado basado en políticas de S3. Esto permite otorgar autorización con privilegios mínimos por bucket, ruta y tipo de operación. También es compatible con el sistema de usuarios y accesskey para aislar equipos múltiples.
Interfaz POSIX
Las canalizaciones de entrenamiento e inference de IA/ML suelen depender de rutas de archivo POSIX en lugar de claves de S3. AFS proporciona una interfaz POSIX sobre la API de S3, lo cual ofrece las siguientes ventajas clave:
Entrenamiento e inference sin modificaciones: los operadores de Ray y los puntos de control de modelos pueden leer y escribir directamente en los puntos de montaje, sin necesidad de cambiar al SDK de S3.
Acceso dual a los mismos datos: las canalizaciones de producción ascendentes escriben mediante S3, mientras que el entrenamiento o la recuperación descendente lee a través de la interfaz POSIX. Así se evitan las copias y los movimientos de datos.
La interfaz POSIX se encuentra actualmente en vista previa por invitación. Para usar esta función, envíe un ticket.
Facturación
Después de crear un almacenamiento de lago, AnalyticDB for MySQL le cobra el volumen de datos y la duración de uso bajo el modelo pay-as-you-go. Para conocer los detalles de precios, consulte Enterprise Edition and Basic Edition pricing y Data Lakehouse Edition pricing.
Leer datos de un almacenamiento de lago o escribir en él genera tarifas de solicitud. Estas tarifas incluyen cargos por solicitudes PUT y GET. Para conocer los detalles de precios, consulte Enterprise Edition and Basic Edition pricing y Data Lakehouse Edition pricing.
Notas de uso
Una cuenta de Alibaba Cloud puede crear hasta cinco almacenamientos de lago en la misma región.
Existe un retraso en la actualización del uso de almacenamiento que se muestra para el almacenamiento de lago. Por lo tanto, es posible que no vea el volumen de datos actualizado inmediatamente después de escribirlos.
Antes de eliminar un almacenamiento de lago, debe borrar todos los datos que contiene. De lo contrario, la eliminación fallará.
-
Cuando se crea un almacenamiento de lago, AnalyticDB for MySQL genera automáticamente un bucket en OSS bajo su cuenta de servicio. Este bucket se ubica en la misma región que su clúster de AnalyticDB for MySQL y tiene el mismo nombre que el almacenamiento de lago. Puede consultar este bucket en la consola de OSS, con su cuenta de Alibaba Cloud, si agrega una ruta favorita.
La función de copia de seguridad y recuperación de AnalyticDB for MySQL no admite los datos del almacenamiento de lago.
Crear un almacenamiento de lago
Standard
El almacenamiento de lago Standard se basa en el almacenamiento de objetos de alto rendimiento AFS. Para crearlo, primero debe generar un clúster de almacenamiento y luego un bucket.
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 identificador.
Haga clic en la pestaña Storage Cluster Management.
Haga clic en Create Cluster.
-
En el cuadro de diálogo Create Cluster, el campo Storage Class está fijado en Standard. Establezca el Reserved Resource Size, introduzca de manera opcional una Cluster Description y luego haga clic en OK.
NotaLa creación de un clúster de almacenamiento toma cierto tiempo. Espere a que finalice antes de continuar con el siguiente paso.
Haga clic en la pestaña Bucket Management.
Haga clic en Create Bucket.
-
En el cuadro de diálogo Create Bucket, configure los siguientes parámetros y haga clic en OK.
Type: seleccione Standard.
Cluster: seleccione el clúster de almacenamiento creado en el paso anterior.
Bucket Name: introduzca un nombre de bucket. Debe ser único a nivel global y no se puede modificar después de la creación.
Data Redundancy Type: seleccione Zone-Redundant Storage o Locally Redundant Storage.
Bucket Description: (opcional) introduzca una descripción para distinguir entre distintos escenarios de negocio.
Basic
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 identificador.
En el panel de navegación izquierdo, elija .
En la pestaña Bucket Management, haga clic en Create Bucket.
-
En el cuadro de diálogo Create Bucket, configure los siguientes parámetros y haga clic en OK.
Type: seleccione Basic.
Bucket Name: el sistema lo genera automáticamente. No es necesario introducir un nombre.
Bucket Description: (opcional) introduzca una descripción para distinguir entre distintos escenarios de negocio.
Data Redundancy Type: seleccione Zone-Redundant Storage o Locally Redundant Storage.
ImportanteEl nombre del bucket se genera automáticamente con el formato
adb-lake-<Region ID>-<Random String>. Es único a nivel global y no se puede modificar después de la creación. -
(Opcional) Modifique la descripción del bucket.
El nombre del bucket se genera automáticamente y no se puede modificar. Se recomienda editar la descripción del bucket para distinguirlo de otros utilizados en diferentes escenarios de negocio.
En la columna Bucket Description del bucket de destino, haga clic en el icono
.En el cuadro de diálogo Edit Bucket Description, introduzca una descripción y haga clic en OK.
-
(Opcional) Agregue una autorización.
En la columna Actions, haga clic en Add Authorization y elija si desea autorizar a un usuario de RAM o a un rol de RAM.
NotaRead-only: permite a los usuarios consultar los datos del almacenamiento de lago, pero no modificarlos ni eliminarlos.
Read/write: permite a los usuarios leer, escribir y modificar datos.
Solo una cuenta de Alibaba Cloud o un usuario de RAM con los permisos obligatorios puede otorgar permisos.
Los cambios de permisos surten efecto de inmediato. Confirme el alcance de la autorización antes de continuar.
Consultar el endpoint de conexión
Después de crear un almacenamiento de lago Standard, puede consultar su endpoint de conexión S3 en la consola. Utilice este endpoint para configurar herramientas compatibles con S3, como AWS SDK y Spark/Flink S3A, y acceder así al almacenamiento de lago AFS.
En la pestaña Bucket Management, localice el bucket Standard de destino y consulte su endpoint de conexión S3 en la columna Endpoint.
Este endpoint solo es accesible dentro de la misma VPC. Asegúrese de que sus herramientas o aplicaciones estén desplegadas en la misma VPC.
El almacenamiento de lago Basic no admite el protocolo S3. En los buckets Basic, la columna Endpoint muestra un guion (-).
Consultar el volumen de datos del almacenamiento de lago
En el panel de navegación izquierdo, elija .
-
Consulte el volumen de datos en la columna Storage Usage del almacenamiento de lago de destino.
ImportanteExiste un retraso en la actualización del uso de almacenamiento que se muestra para el almacenamiento de lago. Por lo tanto, es posible que no vea el volumen de datos actualizado inmediatamente después de escribirlos.
Eliminar un almacenamiento de lago
En el panel de navegación izquierdo, elija .
En la columna Actions del almacenamiento de lago de destino, haga clic en Delete.
-
En el cuadro de diálogo Delete que aparece, haga clic en OK.
ImportanteAntes de eliminar un almacenamiento de lago, debe borrar todos los datos que contiene. De lo contrario, la eliminación fallará.
Pasos siguientes
Establecer el formato de tabla predeterminado (solo Spark SQL)
Esta función aplica únicamente al motor Spark SQL.
Puede establecer un formato de tabla predeterminado a nivel de base de datos. Así, las nuevas tablas creadas en ella utilizarán automáticamente el formato especificado, sin necesidad de declararlo por cada tabla.
-
En el resource group de trabajos de Spark, el resource group interactivo o el trabajo enviado, establezca el siguiente parámetro:
spark.sql.adb.sources.extractProviderFromDBProperties.enabled true -
Al crear una base de datos, especifique
DBPROPERTIEScon'storage.format'definido en uno de los siguientes formatos:delta,iceberg,parquetoorc. Ejemplo:CREATE DATABASE IF NOT EXISTS db_storage_format LOCATION 'oss://path/to/db/' WITH DBPROPERTIES ('storage.format'='delta');Después de ejecutar esta instrucción, las tablas creadas en la base de datos
db_storage_formatutilizarán de forma predeterminada el formatodelta. Si especifica explícitamente un formato de tabla medianteusing ${tableFormat}al crearla, el formato indicado de manera explícita tendrá prioridad.
Operaciones con tablas de data lake
Según el motor y el formato de lago que haya elegido, consulte la documentación correspondiente para crear tablas y ejecutar operaciones de lectura y escritura:
Tablas de data lake: para consultar la documentación de lectura y escritura por formato de lago y motor, consulte Data lake tables.
Gestión del ciclo de vida: para gestionar versiones de tablas, instantáneas y datos expirados, consulte Data lake lifecycle management.
Optimización del rendimiento: para mejorar el rendimiento de las consultas en tablas de lago, consulte Lake storage optimization y Lake cache.
-
Ingesta de datos: