AnalyticDB for MySQL propose la fonctionnalité zero-ETL qui vous permet de créer des tâches de synchronisation de données depuis ApsaraDB for MongoDB vers AnalyticDB for MySQL. Cette fonctionnalité facilite la synchronisation et la gestion des données de bout en bout, tout en intégrant le traitement transactionnel à l'analyse des données.
Présentation
À l'ère du big data, les données métier des entreprises sont dispersées sur différents systèmes et plateformes. Pour gérer et exploiter efficacement ces données, les entreprises s'appuient souvent sur des outils ETL afin de centraliser leur gestion.
Le processus ETL consiste à extraire, transformer (nettoyer) et charger les données provenant des systèmes métier amont vers un entrepôt de données. L'objectif est d'intégrer les données fragmentées issues des sources amont dans l'entrepôt de données cible pour permettre des calculs et des analyses approfondis, soutenant ainsi la prise de décision métier.
Les processus ETL traditionnels se heurtent généralement aux défis suivants :
Augmentation des coûts liés aux ressources : Les différentes sources de données peuvent nécessiter des outils ETL distincts, et la mise en place de pipelines ETL engendre des coûts supplémentaires en ressources.
Complexité accrue du système : Les utilisateurs doivent maintenir eux-mêmes les outils ETL, ce qui alourdit la charge opérationnelle et les empêche de se concentrer sur le développement des applications métier.
Réduction de l'actualité des données : Certains processus ETL impliquent des mises à jour par lots périodiques, incapables de fournir rapidement des résultats d'analyse dans les scénarios applicatifs en quasi-temps réel.
Pour répondre à ces problématiques, Alibaba Cloud Database met à disposition la fonctionnalité zero-ETL. Celle-ci permet de construire rapidement des pipelines de synchronisation de données entre les systèmes métier (OLTP) et les entrepôts de données (OLAP). Les données issues des systèmes métier (OLTP) sont automatiquement extraites, transformées, nettoyées et chargées dans les entrepôts de données (OLAP). Ainsi, vous pouvez réaliser la synchronisation et la gestion des données via une solution unique, intégrer le traitement transactionnel à l'analyse des données et permettre à vos clients de se concentrer sur leurs activités d'analyse.
Avantages
Facilité d'utilisation : Inutile de créer et de maintenir des pipelines de données complexes effectuant des opérations ETL (extraction, transformation et chargement). Il vous suffit de sélectionner la source de données et l'instance de destination pour créer automatiquement des pipelines de synchronisation de données en temps réel. Cela réduit les difficultés liées à la construction et à la gestion des pipelines de données et vous permet de vous concentrer sur le développement des applications de niveau supérieur.
Coût nul : Les pipelines Zero-ETL n'engendrent aucun frais supplémentaire. Vous pouvez analyser gratuitement les données amont dans AnalyticDB for MySQL.
Convergence multisource : Vous pouvez utiliser les pipelines Zero-ETL pour synchroniser en temps réel les données de plusieurs instances vers un cluster AnalyticDB for MySQL afin de bâtir une perspective d'analyse globale.
Tâches de synchronisation de données prises en charge
Chemins de synchronisation depuis RDS for MySQL vers AnalyticDB for MySQL. Pour plus d'informations, consultez Utiliser zero-ETL pour synchroniser les données.
Chemin de synchronisation depuis DTS vers AnalyticDB for MySQL.
Tâches de synchronisation de données depuis ApsaraDB for MongoDB vers AnalyticDB for MySQL.
Prérequis
Un cluster AnalyticDB for MySQL et une instance ApsaraDB for MongoDB ont été créés dans la même région.
Des comptes de base de données ont été créés pour le cluster AnalyticDB for MySQL et l'instance ApsaraDB for MongoDB.
Notes d'utilisation
La fonctionnalité zero-ETL est disponible uniquement dans les régions suivantes : Chine (Pékin), Chine (Hangzhou), Chine (Shanghai), Chine (Shenzhen), Chine (Zhangjiakou), Chine (Qingdao), Chine (Guangzhou), Chine (Hong Kong), Singapour, États-Unis (Silicon Valley) et États-Unis (Virginie).
-
Lorsque le nombre de pipelines Zero-ETL pour un cluster AnalyticDB for MySQL dépasse la limite, vous ne pouvez pas créer de nouveaux pipelines Zero-ETL. Vous pouvez utiliser DTS pour créer de nouveaux pipelines de synchronisation, ou supprimer les pipelines Zero-ETL inutilisés afin d'en créer de nouveaux. Les limites des pipelines Zero-ETL sont les suivantes :
Si le nombre total d'ACU pour les ressources réservées dans le cluster est inférieur à 24 ACU, vous pouvez créer 1 pipeline Zero-ETL.
-
Si le nombre total d'ACU pour les ressources réservées dans le cluster est supérieur ou égal à 24 ACU, vous pouvez créer 3+3*[(Total ACU-24)/50] pipelines Zero-ETL.
Le résultat de [(Total ACU-24)/50] est arrondi à l'entier inférieur. Par exemple, si le nombre total d'ACU est de 48, le résultat est 0,48, ce qui donne 0 après arrondi. Dans ce cas, vous pouvez créer 3 pipelines Zero-ETL.
RemarquePour l'édition Lakehouse, le nombre total d'ACU pour les ressources réservées correspond à la somme des ACU pour les ressources de calcul réservées et les ressources de stockage réservées.
Pour l'édition Data Warehouse, 1 cœur équivaut à 1 ACU. En mode élastique, le nombre total d'ACU pour les ressources réservées correspond à la somme des cœurs pour les ressources de calcul et les ressources d'E/S élastiques. En mode réservé, le nombre total d'ACU pour les ressources réservées correspond au nombre de cœurs pour les ressources de calcul.
Préparations
**Créer le rôle lié au service AnalyticDB for MySQL**
Accédez à la liste des Roles dans la console RAM.
Vérifiez si le rôle lié au service AliyunServiceRoleForAnalyticDBForMySQL existe déjà dans la liste des rôles. Si ce n'est pas le cas, créez le rôle.
Cliquez sur Create Role.
Dans la boîte de dialogue Create Role, sélectionnez Alibaba Cloud Service et cliquez sur Next.
Définissez le type de rôle sur Alibaba Cloud Service et sélectionnez AnalyticDB for MySQL.
Cliquez sur Complete. Revenez à la liste des rôles et vérifiez que le rôle lié au service a bien été créé.
Accorder des autorisations de gestion à un utilisateur RAM
Les utilisateurs RAM ont besoin des deux types d'autorisations suivants pour créer et gérer des pipelines Zero-ETL.
Un utilisateur RAM doit disposer des autorisations de gestion (AliyunADBFullAccess) sur AnalyticDB for MySQL pour créer et gérer des pipelines Zero-ETL. Pour plus d'informations, consultez Accorder des autorisations à un utilisateur RAM.
La section suivante décrit les scripts des stratégies personnalisées :
Accorder des autorisations sur toutes les instances ApsaraDB for MongoDB et tous les clusters AnalyticDB for MySQL
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:*",
"acs:dds:*:*:*"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}
Accorder des autorisations sur une instance ApsaraDB for MongoDB spécifique et un cluster AnalyticDB for MySQL spécifique
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:dds:*:*:dbinstance/dds-t4n8aaa4dcdb****"
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}
Procédure
Connectez-vous à la console AnalyticDB for MySQL. Dans le coin supérieur gauche, sélectionnez la région où réside le cluster. Dans le volet de navigation de gauche, cliquez sur Clusters, puis cliquez sur l'ID du cluster cible.
Dans le volet de navigation de gauche, accédez à .
-
Cliquez sur Create Zero-ETL Task. À l'étape Configure Source and Destination Databases de la page Create Zero-ETL Task, configurez les paramètres de l'instance source et du cluster de destination.
-
Le tableau suivant décrit les paramètres de l'instance source.
Parameter
Description
Task Name
Le nom de la tâche zero-ETL.
Database Type
Le moteur de base de données de l'instance source. Sélectionnez MongoDB.
Access Method
La méthode d'accès de l'instance source. La valeur est automatiquement définie sur Alibaba Cloud Instance.
Instance Region
La région dans laquelle réside l'instance ApsaraDB for MongoDB.
Architecture
L'architecture de l'instance ApsaraDB for MongoDB. Seule l'option ReplicaSet est prise en charge.
Migration Method
La méthode que vous souhaitez utiliser pour effectuer la synchronisation incrémentielle des données. Valeurs possibles :
-
Oplog (recommandé) :
Cette option est disponible si la fonctionnalité oplog est activée pour l'instance source.
RemarqueOplog est activé par défaut pour les bases de données MongoDB gérées par l'utilisateur et les instances ApsaraDB for MongoDB. Si vous utilisez cette méthode pour synchroniser les données incrémentielles, la latence des tâches de synchronisation incrémentielle est faible car les journaux sont extraits à haute vitesse. Par conséquent, nous vous recommandons de sélectionner Oplog.
-
ChangeStream :
Cette option est disponible si les flux de modifications sont activés pour l'instance source.
RemarqueSi l'instance source est Amazon DocumentDB (cluster non élastique), vous ne pouvez sélectionner que ChangeStream.
Instance ID
L'ID de l'instance ApsaraDB for MongoDB.
Authentication Database
Le nom de la base de données à laquelle appartient le compte de base de données de l'instance ApsaraDB for MongoDB. Si vous n'avez pas modifié la base de données, admin est utilisé.
Database Account
Le nom du compte de base de données de l'instance ApsaraDB for MongoDB.
Database Password
Le mot de passe du compte de base de données de l'instance ApsaraDB for MongoDB.
Encryption
La méthode de chiffrement utilisée pour se connecter à l'instance ApsaraDB for MongoDB. Sélectionnez Non-encrypted ou SSL-encrypted.
RemarqueSi vous sélectionnez SSL-encrypted, vous devez d'abord activer la fonctionnalité chiffrement SSL pour l'instance ApsaraDB for MongoDB.
-
-
Configurez la base de données de destination :
Destination Database
Description
Database Type
La base de données de destination prend uniquement en charge AnalyticDB MySQL 3.0.
Access Method
Seule l'option Alibaba Cloud Instance est prise en charge.
Instance Region
La région où réside le cluster AnalyticDB for MySQL.
Instance ID
L'ID du cluster AnalyticDB for MySQL.
Database Account
Le compte de base de données du cluster AnalyticDB for MySQL.
Database Password
Le mot de passe du compte de base de données du cluster AnalyticDB for MySQL.
-
-
Après avoir configuré les paramètres précédents, cliquez sur Test Connectivity and Proceed. À l'étape Configure Zero-ETL, configurez les paramètres décrits dans le tableau suivant.
Parameter
Description
DDL and DML Operations to Be Synchronized
Les opérations DML (INSERT, UPDATE et DELETE) que vous souhaitez synchroniser. Par défaut, toutes les opérations sont sélectionnées.
Source Objects and Selected Objects
Les objets source et les objets que vous souhaitez synchroniser.
Advanced Settings (Optional)
Le délai de nouvelle tentative en cas d'échec de connexion entre les instances et clusters source et de destination, ainsi que le délai de nouvelle tentative pour d'autres problèmes survenant sur ces instances et clusters.
Une fois tous les paramètres précédents configurés, cliquez sur Next: Save Task and Precheck.
-
Une fois la vérification préalable réussie, cliquez sur Start pour démarrer la tâche Zero-ETL.
Sur la page Free Data Sync, vous pouvez consulter le Name, la Source/Target, le Status et d'autres informations relatives à la tâche Zero-ETL cible.
Surveillance et alertes des tâches Zero-ETL
Après avoir créé et démarré une tâche Zero-ETL, vous pouvez définir des règles d'alerte pour celle-ci dans la console CloudMonitor afin de surveiller son état d'exécution en temps réel. Suivez les étapes ci-dessous :
Connectez-vous à la console CloudMonitor.
-
Consultez les informations de surveillance.
Dans le volet de navigation de gauche, accédez à .
Placez le pointeur sur la carte AnalyticDB for MySQL et cliquez sur AnalyticDB for MySQL 3.0 - ZeroETL Latency.
Sur la page Clusters, cliquez sur un ID de cluster pour afficher les informations de surveillance des tâches Zero-ETL associées au cluster.
-
Créez une règle d'alerte.
Dans le volet de navigation de gauche, accédez à .
-
Cliquez sur Create Alert Rule. Dans le panneau Create Alert Rule, configurez la règle d'alerte pour la tâche Zero-ETL. Pour plus d'informations, consultez Créer une règle d'alerte déclenchée par seuil.
RemarqueDéfinissez Product sur AnalyticDB for MySQL 3.0 - ZeroETL Latency.
-
Créez un abonnement.
Dans le volet de navigation de gauche, accédez à .
-
Cliquez sur Create Subscription. Sur la page Create Subscription, configurez l'abonnement pour la tâche Zero-ETL. Pour plus d'informations, consultez Créer des abonnements aux événements.
RemarqueProduct : Sélectionnez AnalyticDB for MySQL 3.0.
Event Type : Sélectionnez Exception ou Restore.
Event Name : Sélectionnez ZeroETL Task Exception ou ZeroETL Task Recovery.