Vous pouvez migrer des données de StarRocks vers ApsaraDB for SelectDB en utilisant la fonctionnalité de migration de données d'ApsaraDB for SelectDB, Catalog ou X2Doris. Choisissez la méthode adaptée en fonction du volume de données et de votre scénario métier. Cette rubrique décrit les méthodes disponibles pour migrer des données hors ligne de StarRocks vers ApsaraDB for SelectDB ainsi que les critères de sélection. Vous pouvez migrer des données de StarRocks vers ApsaraDB for SelectDB en utilisant la fonctionnalité de migration de données d'ApsaraDB for SelectDB ou Catalog. Choisissez la méthode adaptée en fonction du volume de données et de votre scénario métier. Cette rubrique explique comment utiliser Catalog pour migrer des données hors ligne de StarRocks vers ApsaraDB for SelectDB.
Vous pouvez migrer des données de StarRocks vers
ApsaraDB for SelectDB
en utilisant la
fonctionnalité de migration de données d'
ApsaraDB for SelectDB
,
Catalog ou X2Doris
. Choisissez la méthode adaptée en fonction du volume de données et de votre scénario métier. Cette rubrique décrit les méthodes disponibles pour migrer des données hors ligne de StarRocks vers
ApsaraDB for SelectDB
ainsi que les critères de sélection.
Choisir une méthode de migration
Utilisez le tableau suivant pour choisir la meilleure méthode de migration pour votre scénario métier.
|
Méthode |
Cas d'utilisation |
Avantages |
Procédure |
|
Utiliser la ApsaraDB for SelectDB fonctionnalité de migration de données (recommandée) |
Applicable à tous les scénarios. |
|
|
|
catalog |
Pour les données déjà hébergées sur Alibaba Cloud. Remarque
Cela inclut les scénarios impliquant des clusters Alibaba Cloud E-MapReduce. |
|
Cette rubrique utilise un catalog comme exemple pour décrire comment migrer des données hors ligne de StarRocks vers SelectDB.
Migrer des données à l'aide d'un catalog
Prérequis
-
Assurez la connectivité réseau entre votre instance StarRocks et votre instance ApsaraDB for SelectDB.
Tous les nœuds du cluster SelectDB et l'instance ApsaraDB for SelectDB se trouvent dans le même VPC. S'ils résident dans des VPC différents, vous devez d'abord établir la connectivité réseau. Pour plus d'informations, consultez Comment établir la connectivité réseau entre une instance ApsaraDB for SelectDB et une source de données ?
Ajoutez l'adresse IP de l'instance StarRocks à la liste blanche SelectDB de l'instance ApsaraDB for SelectDB. Pour plus d'informations, consultez Configurer une liste blanche.
-
Si votre instance StarRocks utilise une liste blanche, ajoutez le bloc CIDR du VPC où réside votre instance SelectDB à la liste blanche de StarRocks.
Pour obtenir la plage d'adresses IP du VPC où réside votre instance SelectDB, consultez Comment trouver le bloc CIDR IP du VPC où se trouve mon instance ApsaraDB for SelectDB ?
Pour obtenir l'adresse IP publique de votre instance SelectDB, utilisez la commande
pingsur son endpoint public SelectDB.
Familiarisez-vous avec les catalogs et leurs opérations de base. Pour plus d'informations, consultez Traitement des données Lakehouse.
Environnement d'exemple
Cet exemple montre comment migrer des données de la table SR_t de la base de données starRocks_db de StarRocks vers la table test_SR2SelectDB de la base de données test_db de SelectDB. Lors de la migration, modifiez les paramètres selon vos besoins. L'environnement d'exemple est le suivant :
Base de données de destination : test_db
Table de destination : test_SR2SelectDB
Base de données source : starRocks_db
Table source : SR_t
Exemple : Préparer les données source
Connectez-vous à votre instance StarRocks source et effectuez les étapes suivantes.
-
Créez une base de données.
CREATE DATABASE starRocks_db; -
Créez une table.
CREATE TABLE SR_t ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1"); -
Insérez des données.
INSERT INTO SR_t VALUES (1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 35), (4, 'David', 40), (5, 'Eve', 45);
Procédure
-
Connectez-vous à l'instance SelectDB. Pour plus d'informations, consultez Se connecter à une instance.
RemarqueLa commande
SWITCHne fonctionne pas lorsque vous vous connectez via Data Management Service (DMS). Connectez-vous à l'aide d'un client MySQL. -
Créez un catalog JDBC StarRocks. Pour plus d'informations, consultez Source de données JDBC.
CREATE CATALOG starrocks_catalog PROPERTIES ( "type"="jdbc", "user"="root", "password"="123456", "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo", "driver_url" = "mysql-connector-java-8.0.25.jar", "driver_class" = "com.mysql.cj.jdbc.Driver", "checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a" )Paramètres
Paramètre
Obligatoire
Valeur par défaut
Description
user
Oui
Aucune
Compte de la base de données StarRocks.
password
Oui
Aucune
Mot de passe de la base de données StarRocks.
jdbc_url
Oui
Aucune
Chaîne de connexion JDBC. Elle doit contenir l'adresse de connexion de la base de données StarRocks.
driver_url
Oui
Aucune
Nom du package JAR du pilote JDBC.
Remarque-
Utilisez
mysql-connector-java-8.0.25.jar. -
Pour utiliser un autre package JAR, soumettez un ticket au support.
driver_class
Oui
Aucune
Nom de classe du pilote JDBC.
Définissez ce paramètre sur
com.mysql.cj.jdbc.Driver.lower_case_table_names
(Renommé en lower_case_meta_names dans la version 4.0)
Non
« false »
Indique s'il faut synchroniser les noms de bases de données et de tables de la source de données JDBC externe en minuscules.
true : Permet d'interroger des bases de données et des tables dont les noms ne sont pas en minuscules en maintenant une correspondance entre les noms en minuscules et les noms réels dans le système distant. Dans ce cas, les noms des bases de données, des tables et des colonnes sont tous convertis en minuscules.
false : Vous ne pouvez pas interroger des bases de données et des tables dont les noms ne sont pas en minuscules.
Important-
Pour SelectDB 3.0 :
-
Si le paramètre
lower_case_table_namesdu FE est défini sur1ou2, vous devez définir le paramètrelower_case_table_namesdu catalog surtrue. -
Si le paramètre
lower_case_table_namesdu FE est défini sur0, le paramètre du catalog peut être défini surtrueoufalse.
-
-
Pour SelectDB 4.0 :
-
Si le paramètre
lower_case_table_namesdu FE est défini sur0ou2, les noms des bases de données, des tables et des colonnes ne sont pas convertis. -
Si le paramètre
lower_case_table_namesdu FE est défini sur1, les noms des tables sont convertis en minuscules, mais pas les noms des bases de données et des colonnes.
-
only_specified_database
Non
« false »
Indique s'il faut synchroniser uniquement la base de données spécifiée.
true : Synchronise uniquement la base de données spécifiée dans l'URL JDBC.
false : Synchronise toutes les bases de données de l'URL JDBC.
include_database_list
Non
« »
Lorsque
only_specified_database=true, spécifie les bases de données à synchroniser. Séparez plusieurs bases de données par des virgules (,). Les noms de bases de données sont sensibles à la casse.exclude_database_list
Non
« »
Lorsque
only_specified_database=true, spécifie les bases de données à exclure de la synchronisation. Séparez plusieurs bases de données par des virgules (,). Les noms de bases de données sont sensibles à la casse.meta_names_mapping
Non
« »
Si la source de données externe contient des noms qui ne diffèrent que par la casse, tels que DORIS et doris, l'interrogation du catalog peut provoquer une erreur due à une ambiguïté. Dans ce cas, configurez le paramètre
meta_names_mappingpour résoudre le conflit.Pour plus d'informations, consultez Paramètres de sensibilité à la casse.
ImportantCe paramètre s'applique uniquement à SelectDB 4,0.
-
-
Consultez le catalog.
SHOW CATALOGS; -- Check if the catalog was created successfully.Le résultat suivant s'affiche.
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ | CatalogId | CatalogName | Type | IsCurrent | CreateTime | LastUpdateTime | Comment | +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ | 436009309195 | SR_catalog | jdbc | | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 | | | 0 | internal | internal | yes | UNRECORDED | NULL | Doris internal catalog | +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ -
(Facultatif) Basculez vers le catalog externe SR_catalog.
Vous pouvez afficher et accéder aux données du catalog externe SR_catalog de la même manière qu'un catalog interne.
RemarqueActuellement, Alibaba Cloud SelectDB prend uniquement en charge les opérations de lecture sur les données des catalogs externes.
SWITCH SR_catalog; -
(Facultatif) Basculez vers le catalog interne.
Si vous n'avez pas effectué l'étape 4, ignorez cette étape.
SWITCH internal; -
(Facultatif) Créez une base de données.
Si vous avez déjà créé la base de données de destination, ignorez cette étape.
CREATE database test_db; -
Basculez vers la base de données de destination.
USE test_db; -
Créez une table.
Si vous disposez déjà d'une table de destination, vérifiez que les types de colonnes de la table de destination correspondent aux types de colonnes des données source StarRocks.
Si vous ne disposez pas de table de destination, assurez-vous que les types de colonnes correspondent aux types de colonnes des données source StarRocks lors de la création de la table.
Pour plus d'informations sur le mappage des colonnes, consultez Mappage des types.
CREATE TABLE test_SR2SelectDB ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1"); -
Migrez les données.
INSERT INTO test_SR2SelectDB SELECT * FROM doris_catalog.SR_db.SR_t; -
Vérifiez l'état de l'importation des données.
SELECT * FROM test_SR2SelectDB;
Migrer des données incrémentielles
Les données StarRocks dans un environnement de production incluent à la fois des données hors ligne et incrémentielles. Un cas d'utilisation courant pour la migration des données de StarRocks vers SelectDB consiste à copier les données vers un entrepôt de données pour accélérer les requêtes. Pour migrer des données incrémentielles, envisagez l'une des méthodes suivantes :
Lors de la production de données pour SelectDB, vous pouvez écrire simultanément une copie des données vers SelectDB.
Lisez périodiquement les données partitionnées depuis StarRocks et écrivez-les dans SelectDB.