AnalyticDB for MySQL met à disposition AnalyticDB Pipeline Service (APS) pour la synchronisation des données en temps réel. Créez une tâche de synchronisation pour ingérer les données d'un Logstore AnalyticDB for MySQL vers un cluster AnalyticDB for MySQL, en démarrant à partir d'un offset spécifique. APS prend en charge l'analyse quasi temps réel, l'archivage complet des données historiques et l'analyse élastique.
Prérequis
Un cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition est créé.
Un groupe de ressources de tâches est créé pour le cluster AnalyticDB for MySQL.
-
Un compte de base de données est créé pour le cluster AnalyticDB for MySQL.
Si vous utilisez un compte Alibaba Cloud, il vous suffit de créer un compte privilégié.
Si vous utilisez un utilisateur Resource Access Management (RAM), vous devez créer un compte privilégié et un compte standard puis associer le compte standard à l'utilisateur RAM.
Le service Simple Log Service (SLS) est activé. Un projet et un Logstore sont créés dans la même région que votre cluster AnalyticDB for MySQL. Pour plus d'informations, consultez la rubrique Utiliser LoongCollector pour collecter et analyser les journaux textuels des instances ECS.
Remarques relatives à l'utilisation
Chaque table d'un cluster AnalyticDB for MySQL ne peut être synchronisée qu'avec un seul Logstore SLS.
Après l'ingestion des données, une opération de validation (commit) est nécessaire pour rendre les données visibles. Afin de garantir la stabilité de la tâche et des performances optimales en lecture/écriture, la fonctionnalité de synchronisation des données AnalyticDB for MySQL utilise un intervalle de validation par défaut de 5 minutes. Par conséquent, après avoir créé et démarré une tâche de synchronisation des données, vous devez attendre au moins 5 minutes avant de voir le premier lot de données.
Facturation
La synchronisation des données via AnalyticDB for MySQL entraîne les frais suivants :
Frais de ressources élastiques pour les ACU de AnalyticDB for MySQL. Pour plus d'informations, consultez les rubriques Facturation de l'édition Data Lakehouse et Facturation des éditions Enterprise et Basic.
Frais liés à OSS, y compris les frais de stockage et les frais pour les requêtes GET, PUT et autres. Pour plus d'informations, consultez la rubrique Présentation de la facturation.
Procédure
Étape 1 (facultative) : Configurer l'autorisation Resource Access Management (RAM).
Étape 2 : Créer une source de données.
Étape 3 : Créer une tâche de synchronisation.
Étape 4 : Démarrer la tâche de synchronisation.
Étape 5 : Analyser les données.
Étape 6 (facultative) : Gérer les sources de données.
Configurer l'autorisation Resource Access Management (RAM)
Pour synchroniser les données SLS vers AnalyticDB for MySQL entre différents comptes Alibaba Cloud, créez un rôle RAM dans le compte source, accordez les autorisations requises et modifiez la stratégie d'approbation. Si vous synchronisez les données SLS au sein du même compte, ignorez cette étape et passez directement à Créer une source de données.
-
Créez un rôle RAM. Pour plus d'informations, consultez la rubrique Créer un rôle RAM pour un compte Alibaba Cloud approuvé.
RemarqueLors de la configuration du paramètre Select Trusted Alibaba Cloud Account, sélectionnez Another Alibaba Cloud Account et saisissez l'ID du compte Alibaba Cloud auquel appartient le cluster AnalyticDB for MySQL. Accédez au Centre de compte et consultez l'Account ID sur la page Overview.
Accordez l'autorisation AliyunAnalyticDBAccessingLogRolePolicy au rôle RAM. Pour plus d'informations, consultez la rubrique Accorder des autorisations à un rôle RAM.
-
Modifiez la stratégie d'approbation du rôle RAM. Pour plus d'informations, consultez la rubrique Modifier la stratégie d'approbation d'un rôle RAM.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud Account ID>:root" ], "Service": [ "<Alibaba Cloud Account ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }RemarqueL'ID du compte Alibaba Cloud correspond à celui que vous avez saisi à l'étape 1. N'incluez pas les chevrons (<>) lors de la configuration du paramètre.
Créer une source de données
Si vous disposez déjà d'une source de données, ignorez cette étape et passez directement à Créer une tâche de synchronisation.
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche de la console, sélectionnez une région. Dans le volet de navigation de gauche, cliquez sur Clusters. Localisez le cluster à gérer et cliquez sur son ID.
Dans le volet de navigation de gauche, choisissez Data Ingestion>Data Sources.
Dans le coin supérieur gauche, cliquez sur Create Data Source.
-
Sur la page Create Data Source, configurez les paramètres suivants.
Paramètre
Description
Data Source Type
Sélectionnez SLS.
Data Source Name
Généré automatiquement en fonction du type de source de données et de l'heure actuelle. Vous pouvez modifier le nom selon vos besoins.
Data Source Description
Description de la source de données (scénario d'application, contraintes métier, etc.).
Deployment Mode
Seule l'option Alibaba Cloud Instance est prise en charge.
Region of Simple Log Service Project
Région où réside le projet SLS.
Across Alibaba Cloud Accounts
Indique s'il faut synchroniser les données depuis une source de données SLS située dans un autre compte Alibaba Cloud.
-
Même compte : synchronisez les données SLS du compte actuel vers AnalyticDB for MySQL.
-
Compte croisé : synchronisez les données SLS d'un autre compte vers AnalyticDB for MySQL. Lorsque vous choisissez de synchroniser les données entre comptes, vous devez saisir les champs Alibaba Cloud Account et RAM Role.
Remarque-
Alibaba Cloud Account : ID du compte Alibaba Cloud propriétaire des données source.
-
RAM Role : nom du rôle RAM créé dans le compte source. Il s'agit du rôle RAM créé à l'étape 1 de la section « Configurer l'autorisation RAM ».
-
Simple Log Service Project
Projet SLS source.
ImportantLa liste des projets SLS affiche tous les projets appartenant au compte Alibaba Cloud et à ses utilisateurs RAM. Si vous sélectionnez un projet du compte Alibaba Cloud, assurez-vous que l'utilisateur RAM dispose des autorisations nécessaires sur ce projet. Sinon, les données ne pourront pas être synchronisées vers AnalyticDB for MySQL.
Simple Log Service Logstore
Logstore SLS source.
-
Une fois les paramètres configurés, cliquez sur Create.
Créer une tâche de synchronisation
Dans le volet de navigation de gauche, cliquez sur Simple Log Service/Kafka Data Synchronization.
Dans le coin supérieur gauche, cliquez sur Create Synchronization Job.
-
Sur la page Create Synchronization Job, configurez les paramètres dans les étapes Source and Destination Settings, Destination Database and Table Settings et Synchronization Settings.
-
Le tableau suivant décrit les paramètres pour Source and Destination.
Paramètre
Description
Job Name
Nom de la tâche de synchronisation. Généré automatiquement en fonction du type de source de données et de l'heure actuelle. Vous pouvez modifier le nom selon vos besoins.
Data Source
Sélectionnez une source de données SLS existante ou créez-en une nouvelle.
Destination Type
Options prises en charge :
-
Data Lake - User OSS.
-
Data Lake - AnalyticDB Lake Storage (recommandé).
ImportantSi vous sélectionnez Data Lake - AnalyticDB Lake Storage, vous devez d'abord activer le stockage lacustre.
ADB Lake Storage
Nom du stockage lacustre où résident les données AnalyticDB for MySQL.
Sélectionnez le stockage lacustre de destination dans la liste déroulante. Si aucun stockage lacustre n'existe, cliquez sur Automatically Created dans la liste déroulante pour en créer un.
ImportantCe paramètre est requis uniquement lorsque vous définissez le champ Destination Type sur Data Lake - AnalyticDB Lake Storage.
OSS Path
Chemin de stockage dans OSS pour les données lakehouse AnalyticDB for MySQL.
Important-
Ce paramètre est requis uniquement lorsque le champ Destination Type est défini sur Data Lake - User OSS.
-
La liste déroulante affiche tous les buckets situés dans la même région que le cluster AnalyticDB for MySQL. Vous pouvez sélectionner n'importe lequel d'entre eux. Planifiez soigneusement le chemin de stockage. Vous ne pourrez pas modifier ce chemin une fois la tâche créée.
-
Nous vous recommandons de sélectionner un répertoire vide. Le chemin OSS ne doit pas être un préfixe du chemin OSS d'une autre tâche de synchronisation, ni vice versa. Cela permet d'éviter l'écrasement des données. Par exemple, si deux tâches de synchronisation ont les chemins OSS
oss://testBucketName/test/sls1/etoss://testBucketName/test/, les chemins ont une relation de préfixe et les données risquent d'être écrasées pendant la synchronisation.
Storage Format
Format de stockage des données. Options prises en charge :
-
PAIMON.
ImportantCe format est pris en charge uniquement lorsque le champ Destination Type est défini sur Data Lake - User OSS.
-
ICEBERG.
-
-
Le tableau suivant décrit les paramètres pour Destination Database and Table Settings.
Paramètre
Description
Database Name
Nom de la base de données de destination dans AnalyticDB for MySQL. Si une base de données portant le nom spécifié n'existe pas, une nouvelle base de données est créée. Si une base de données portant le nom spécifié existe déjà, les données sont synchronisées vers celle-ci. Pour plus d'informations sur les conventions de nommage, consultez la rubrique Limites.
ImportantDans la section Source and Destination Settings, si le champ Storage Format est défini sur PAIMON, une base de données existante doit répondre aux conditions suivantes. Sinon, la tâche de synchronisation échouera :
-
La base de données doit être externe. L'instruction
CREATE DATABASEdoit êtreCREATE EXTERNAL DATABASE <database_name>. -
La clause
DBPROPERTIESde l'instructionCREATE DATABASEdoit inclure la propriétécatalog, et la valeur decatalogdoit êtrepaimon. -
La clause
DBPROPERTIESdoit inclure la propriétéadb.paimon.warehouse. Exemple :adb.paimon.warehouse=oss://testBucketName/aps/data. -
La clause
DBPROPERTIESdoit inclure la propriétéLOCATION, et vous devez ajouter.dbau nom de la base de données dans le chemin. Sinon, les requêtes XIHE échoueront. Exemple :LOCATION='oss://testBucketName/aps/data/kafka_paimon_external_db.db/'.Pour le chemin OSS spécifié par
LOCATION, le bucket et le répertoire doivent exister. Sinon, la création de la base de données échouera.
Table Name
Nom de la table de destination dans AnalyticDB for MySQL. Si une table portant le nom spécifié n'existe pas dans la base de données, une nouvelle table est créée. Si une table portant le nom spécifié existe déjà dans la base de données, la synchronisation des données échouera. Pour plus d'informations sur les conventions de nommage, consultez la rubrique Limites.
Schema Field Mapping
Par défaut, les champs sont récupérés à partir de la configuration de la tâche d'expédition (shipping job) de SLS. Si aucune tâche d'expédition n'est configurée pour le Logstore, les champs sont récupérés à partir des dernières données de journal.
-
Types de données pris en charge : BOOLEAN, INT, BIGINT, FLOAT, DOUBLE et STRING.
-
Les champs réservés SLS peuvent également être synchronisés. Pour plus d'informations, consultez la rubrique Champs réservés.
Important-
Vous ne pouvez pas modifier les noms des champs de destination.
-
Si la tâche a déjà été exécutée (y compris les tâches en cours d'exécution ou terminées), vous ne pouvez pas modifier les informations de colonne existantes, mais vous pouvez ajouter de nouvelles colonnes. Si la tâche est créée mais n'a pas encore été démarrée, vous pouvez la modifier selon vos besoins.
Partition Key Settings
Définissez une clé de partition pour la table de destination. Nous vous recommandons de partitionner par heure de journal ou par logique métier afin d'améliorer les performances d'ingestion et de requête. Si vous ne définissez pas ce paramètre, la table de destination n'est pas partitionnée par défaut.
Vous pouvez formater la clé de partition de destination par heure ou par un champ de partition spécifié.
-
Pour partitionner les données par date et heure, sélectionnez un champ de type date/heure comme champ de clé de partition. Pour la méthode de formatage, sélectionnez le formatage temporel, puis spécifiez le format du champ source et le format de la partition de destination. AnalyticDB for MySQL utilise le format du champ source pour identifier la valeur du champ, puis la convertit au format de partition de destination. Par exemple, si le champ source est
gmt_createdavec une valeur de1711358834, le format du champ source est un horodatage avec une précision à la seconde, et le format de partition de destination estyyyyMMdd, les données seront partitionnées par20240325. -
Pour partitionner les données par valeur de champ, sélectionnez Specify partition field comme méthode de formatage.
-
-
Le tableau suivant décrit les paramètres pour Synchronization Settings.
Paramètre
Description
Starting Consumer Offset for Incremental Synchronization
Offset à partir duquel la tâche de synchronisation commence à consommer les données SLS. Options :
-
Earliest offset (begin_cursor) : consomme les données à partir de l'offset le plus ancien disponible dans le Logstore.
-
Latest offset (end_cursor) : consomme les données à partir du dernier offset dans le Logstore.
-
Custom : vous pouvez sélectionner n'importe quel point dans le temps. Le système commence à consommer les données à partir du premier enregistrement dans SLS qui se situe à cet instant ou après.
Job Resource Group
Groupe de ressources qui exécute la tâche de synchronisation.
ACUs for Incremental Synchronization
Spécifiez le nombre d'unités de calcul AnalyticDB (ACU) dans le groupe de ressources de tâches pour la tâche. La valeur minimale est 2. La valeur maximale correspond au nombre de ressources de calcul disponibles dans le groupe de ressources de tâches. Nous vous recommandons d'allouer davantage d'ACU pour améliorer les performances d'ingestion et la stabilité de la tâche.
RemarqueLorsque vous créez une tâche de synchronisation des données, celle-ci utilise des ressources élastiques du groupe de ressources de tâches. Les tâches de synchronisation des données occupent des ressources pendant une longue période, de sorte que le système déduit les ressources utilisées par la tâche du groupe de ressources de tâches. Par exemple, si un groupe de ressources de tâches dispose d'un maximum de 48 ACU et qu'une tâche de synchronisation existante utilise 8 ACU, le nombre maximal d'ACU disponibles pour une autre tâche dans le même groupe de ressources de tâches est de 40.
Advanced Settings
Paramètres avancés permettant de personnaliser la tâche de synchronisation. Contactez le support technique si vous devez effectuer des configurations personnalisées.
-
-
Une fois les paramètres configurés, cliquez sur Submit.
Démarrer la tâche de synchronisation des données
Sur la page Simple Log Service/Kafka Data Synchronization, sélectionnez la tâche de synchronisation des données et cliquez sur Start dans la colonne Actions.
Cliquez sur Search dans le coin supérieur gauche. La tâche a démarré avec succès lorsque son statut passe à Running.
Analyse des données
Une fois la tâche de synchronisation terminée avec succès, vous pouvez utiliser le développement Spark Jar pour analyser les données dans AnalyticDB for MySQL. Pour plus d'informations sur le développement Spark, consultez les rubriques Éditeur de développement Spark et Développement d'applications Spark hors ligne.
Dans le volet de navigation de gauche, cliquez sur .
-
Dans le modèle par défaut, saisissez les exemples d'instructions et cliquez sur Run Now.
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest; Facultatif : Dans l'onglet Applications, cliquez sur Logs dans la colonne Actions pour afficher le journal d'exécution de la tâche Spark SQL.
Gérer les sources de données
Dans le volet de navigation de gauche, cliquez sur Data Ingestion>Data Sources. Vous pouvez effectuer les actions suivantes dans la colonne Actions.
|
Actions |
Description |
|
Create Job |
Crée une tâche de synchronisation ou de migration des données pour la source de données. |
|
View |
Affiche la configuration détaillée de la source de données. |
|
Edit |
Permet de modifier les propriétés de la source de données, telles que son nom et sa description. |
|
Delete |
Supprime la source de données. Remarque
Vous ne pouvez pas supprimer une source de données associée à une tâche de synchronisation ou de migration des données. Vous devez d'abord supprimer la tâche sur la page Simple Log Service/Kafka Data Synchronization. Pour ce faire, localisez la tâche cible et, dans la colonne Actions, cliquez sur Delete. |