La source de données StarRocks offre des canaux de lecture et d'écriture bidirectionnels pour synchroniser les données avec StarRocks via DataWorks.
Versions prises en charge
Toutes les versions d'EMR Serverless StarRocks sont prises en charge.
EMR on ECS est pris en charge : StarRocks version 2.1.
-
StarRocks Community Edition est pris en charge.
RemarqueDataWorks se connecte à StarRocks uniquement via un VPC. Vous devez donc déployer StarRocks Community Edition sur un cluster EMR on ECS.
StarRocks Community Edition est une plateforme ouverte. En cas de problèmes de compatibilité, soumettez un ticket au support technique.
Limitations
Pour la synchronisation en temps réel de base de données complète de MySQL vers StarRocks, la table StarRocks de destination doit utiliser un modèle de clé primaire.
La synchronisation en temps réel de base de données complète de MySQL vers StarRocks ne prend pas en charge les opérations DDL (Data Definition Language), à l'exception de TRUNCATE. Pour les autres opérations DDL, choisissez de les ignorer ou configurez la tâche pour signaler une erreur.
Types de données pris en charge
Seuls les champs numériques, de type chaîne et de type date sont pris en charge.
Connectivité réseau
EMR Serverless StarRocks
Pour garantir la connectivité réseau, ajoutez les adresses IP de votre groupe de ressources DataWorks à la liste d'autorisation d'adresses IP internes de l'instance EMR Serverless StarRocks.
Pour obtenir l'adresse IP du groupe de ressources DataWorks, consultez la rubrique Common configurations: Add a whitelist.
-
Pour configurer les listes d'autorisation de l'instance EMR Serverless StarRocks :
Sur la page des détails de l'instance, dans la section Basic Information, cliquez sur le lien internal IP address whitelist situé à côté de security group ID pour configurer la liste d'autorisation d'adresses IP internes. Dans la section FE Details, cliquez sur le lien public whitelist situé à côté de Public Endpoint pour configurer la liste d'autorisation publique.
Self-managed StarRocks
Assurez-vous que le groupe de ressources DataWorks peut accéder au query port, au FE port et au BE port de votre instance StarRocks. Il s'agit généralement des ports 9030, 8030 et 8040.
Ajouter une source de données
Avant de développer une tâche de synchronisation dans DataWorks, ajoutez la source de données requise à DataWorks en suivant les instructions de la rubrique Data source configuration. Consultez les descriptions des paramètres dans la console DataWorks pour comprendre leur signification lors de l'ajout d'une source de données.
Sélectionnez un mode de connexion pour StarRocks en fonction de votre environnement réseau :
Scénario 1 : Connexion VPC
Une connexion VPC offre une faible latence et une sécurité élevée, sans nécessiter d'accès au réseau public.
Cas d'utilisation : Votre instance StarRocks et le groupe de ressources serverless se trouvent dans le même VPC.
-
Modes pris en charge : Mode instance Alibaba Cloud et mode chaîne de connexion :
Sélectionnez ApsaraDB for RDS : Choisissez directement l'instance StarRocks dans le même VPC. Le système récupère automatiquement les informations de connexion ; aucune configuration manuelle n'est requise.
Sélectionnez User-created Data Store with Public IP Addresses : Saisissez manuellement le point de terminaison intranet, l'adresse IP, le port et l'URL de chargement (Load URL) de l'instance.
Scénario 2 : Connexion Internet
La transmission de données via Internet présente des risques de sécurité. Utilisez des contrôles de sécurité tels que les listes d'autorisation et le contrôle d'accès basé sur l'IP.
Cas d'utilisation : Vous devez accéder à une instance StarRocks via Internet, par exemple entre différentes régions ou depuis un environnement local.
-
Mode pris en charge : Mode chaîne de connexion (assurez-vous que l'accès au réseau public est activé pour l'instance StarRocks) :
Sélectionnez User-created Data Store with Public IP Addresses : Saisissez manuellement le point de terminaison public, l'adresse IP, le port et l'URL de chargement (Load URL) de l'instance.
Par défaut, les groupes de ressources serverless ne peuvent pas accéder à Internet. Pour vous connecter à une instance StarRocks via un point de terminaison public, configurez une passerelle NAT et une EIP pour le VPC associé. Assurez-vous également que le groupe de ressources peut accéder au query port, au FE port et au BE port de l'instance StarRocks, qui sont généralement les ports 9030, 8030 et 8040.
Si vous utilisez EMR Serverless StarRocks, définissez Host Address/IP Address sur Internal Endpoint ou Public network address, et utilisez le query port pour le port.
-
FE : Ces informations figurent sur la page des détails de l'instance.
Dans la section FE Details, recherchez le public endpoint et le query port (la valeur par défaut est
9030). -
Database : Après vous être connecté à l'instance à l'aide du gestionnaire EMR StarRocks Manager, vous pouvez trouver la base de données dans la vue SQL Editor ou Metadata Management.
RemarquePour créer une base de données, exécutez directement des instructions SQL dans l'éditeur SQL.
Tâches de synchronisation des données
Pour plus d'informations sur le point d'entrée et la procédure de configuration d'une tâche de synchronisation, consultez les guides de configuration suivants.
Synchronisation par lots de table unique
Sources prises en charge : Toutes les sources de données prises en charge par Data Integration.
Pour plus d'informations, consultez les rubriques Codeless UI et Code Editor.
Pour obtenir la liste complète des paramètres et des exemples de scripts pour l'éditeur de code, consultez la rubrique Annexe : Exemples de scripts et descriptions des paramètres.
Synchronisation en temps réel de table unique
Source prise en charge : Kafka
Guide de configuration : Configure a real-time data synchronization task
Synchronisation par lots de base de données complète
Source prise en charge : MySQL
Guide de configuration : Configure a batch data synchronization task
Synchronisation en temps réel de base de données complète
Sources prises en charge : MySQL, Oracle et PolarDB
Guide de configuration : Configure a real-time data synchronization task
Exemples de scripts et paramètres
Configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code
Pour configurer une tâche de synchronisation par lots à l'aide de l'éditeur de code, définissez les paramètres associés dans le script selon les exigences de format de script unifié. Pour plus d'informations, consultez la rubrique Script mode configuration. Les informations suivantes décrivent les paramètres à configurer pour les sources de données lors de la configuration d'une tâche de synchronisation par lots à l'aide de l'éditeur de code.
Exemple de script Reader
{
"stepType": "starrocks",
"parameter": {
"selectedDatabase": "didb1",
"datasource": "starrocks_datasource",
"column": [
"id",
"name"
],
"where": "id>100",
"table": "table1",
"splitPk": "id"
},
"name": "Reader",
"category": "reader"
}
Paramètres du script Reader
|
Parameter |
Description |
Required |
Default |
|
datasource |
Le nom de la source de données StarRocks. |
Oui |
Aucun |
|
selectedDatabase |
Le nom de la base de données StarRocks. |
Non |
Le nom de la base de données configuré pour la source de données StarRocks. |
|
column |
Les colonnes de la table source à synchroniser. Pour ajouter une indication SET_VAR lors de la lecture des données depuis StarRocks, ajoutez l'indication avant le premier nom de colonne dans le tableau column. Par exemple, pour synchroniser la colonne |
Oui |
Aucun |
|
where |
La condition de filtre. Par exemple, pour synchroniser uniquement les données générées le jour actuel, définissez la condition where sur
|
Non |
Aucun |
|
table |
La table source à partir de laquelle vous souhaitez synchroniser les données. |
Oui |
Aucun |
|
splitPk |
La colonne utilisée pour le partitionnement parallèle des données pendant la synchronisation. La spécification de ce paramètre améliore les performances. Pour de meilleurs résultats, utilisez la clé primaire de la table, car une clé uniformément distribuée aide à prévenir les points chauds de données. |
Non |
Aucun |
Exemple de script Writer
{
"stepType": "starrocks",
"parameter": {
"selectedDatabase": "didb1",
"loadProps": {
"row_delimiter": "\\x02",
"column_separator": "\\x01"
},
"datasource": "starrocks_public",
"column": [
"id",
"name"
],
"loadUrl": [
"1.1.X.X:8030"
],
"table": "table1",
"preSql": [
"truncate table table1"
],
"postSql": [
],
"maxBatchRows": 500000,
"maxBatchSize": 5242880,
"strategyOnError": "exit"
},
"name": "Writer",
"category": "writer"
}
Paramètres du script Writer
|
Parameter |
Description |
Required |
Default |
|
datasource |
Le nom de la source de données StarRocks. |
Oui |
Aucun |
|
selectedDatabase |
Le nom de la base de données StarRocks. |
Non |
Le nom de la base de données configuré pour la source de données StarRocks. |
|
loadProps |
Remarque
Lors de l'écriture dans StarRocks avec Stream Load, la politique d'écriture (Upsert ou Append) est déterminée par le modèle de la table de destination et ne nécessite aucune configuration. Les tables avec un modèle de clé primaire utilisent une politique Upsert, tandis que les autres modèles utilisent par défaut une politique Append. Les paramètres de requête pour StarRocks Stream Load. Lors de l'importation de données CSV, vous pouvez configurer les paramètres suivants. Si aucune configuration spéciale n'est requise, utilisez {} :
Stream Load prend également en charge l'importation de données JSON. Pour ce faire, configurez le paramètre suivant :
Les paramètres suivants sont disponibles pour le format JSON :
|
Oui |
Aucun |
|
column |
Les colonnes de destination vers lesquelles vous souhaitez synchroniser les données. |
Oui |
Aucun |
|
loadUrl |
L'adresse IP et le port HTTP du nœud frontal (FE) StarRocks. Le port est par défaut |
Oui |
Aucun |
|
table |
La table de destination vers laquelle vous souhaitez synchroniser les données. |
Oui |
Aucun |
|
preSql |
Instructions SQL à exécuter avant le démarrage de la tâche de synchronisation. Par exemple, exécutez |
Non |
Aucun |
|
postSql |
Instructions SQL à exécuter après la fin de la tâche de synchronisation. |
Non |
Aucun |
|
maxBatchRows |
Le nombre maximal de lignes à écrire par lot. |
Non |
500000 |
|
maxBatchSize |
La taille maximale des données à écrire par lot, en octets. |
Non |
5242880 |
|
strategyOnError |
La politique de gestion des erreurs survenant lors des écritures par lots. Valeurs valides :
Valeur par défaut : |
Non |
exit |