AnalyticDB for MySQL permet de soumettre des tâches XIHE BSP SQL via l'éditeur de développement SQL ou JDBC. Cette rubrique décrit les cas d'utilisation, les méthodes de soumission, les paramètres de configuration et la foire aux questions (FAQ) relatives au développement de tâches XIHE BSP SQL.
Prérequis
Créez un groupe de ressources de tâche pour le cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Créez un compte de base de données pour le cluster AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Cas d'utilisation
Le moteur XIHE BSP exécute des tâches XIHE BSP SQL, adaptées aux scénarios ETL, aux requêtes volumineuses et aux requêtes à faible priorité soumises par pics. Pour plus d'informations sur le moteur XIHE BSP, consultez la section moteur de calcul.
Scénarios ETL
La figure suivante illustre un processus ETL typique.
Les opérations de nettoyage et de transformation des données sur de grands ensembles, entre une source de données et la couche ADS, prennent souvent beaucoup de temps. Pour ces tâches, le temps de réponse n'est pas prioritaire. En revanche, une fiabilité élevée est indispensable pour garantir l'achèvement du processus ELT avant une échéance donnée. Le système doit également prendre en charge des fonctionnalités telles que les nouvelles tentatives automatiques. Exécutez ces requêtes avec le moteur XIHE BSP pour tirer parti de son débit élevé, de sa fiabilité et de son faible coût.
Les requêtes sur la couche ADS sont généralement plus sensibles aux temps de réponse, qui doivent souvent se compter en secondes, voire en millisecondes. Exécutez ces requêtes avec le moteur XIHE MPP pour bénéficier de sa vitesse supérieure.
Requêtes volumineuses pour le moteur BSP
En raison des limites de XIHE MPP, certaines requêtes volumineuses peuvent provoquer des erreurs de mémoire insuffisante (OOM) ou d'autres exceptions. Pour exécuter ces requêtes sur le moteur XIHE MPP, vous devez augmenter la capacité de votre cluster en ajoutant des ressources, ce qui n'est pas rentable. Dans ce cas, utilisez le moteur XIHE BSP. Les requêtes s'exécutent dans un groupe de ressources de tâche spécifié et déversent les données sur disque, ce qui convient mieux aux requêtes volumineuses. De plus, les ressources d'un groupe de ressources de tâche sont provisionnées et facturées à la demande, ce qui réduit les coûts.
Requêtes à faible priorité soumises par pics
Les requêtes à faible priorité ne sont généralement pas sensibles aux temps de réponse. Toutefois, si un grand nombre de ces requêtes sont soumises simultanément, elles peuvent consommer des ressources système et affecter l'exécution d'autres requêtes. Pour résoudre ce problème, exécutez ces requêtes à faible priorité dans un groupe de ressources de tâche à l'aide du moteur XIHE BSP. Cette approche isole les ressources, atténue la pression sur le système et empêche les requêtes de s'affecter mutuellement.
Limitations
Le moteur XIHE BSP ne prend pas en charge l'écriture dans les tables Hudi.
Le moteur XIHE BSP ne prend pas en charge la lecture ou l'écriture dans les tables Delta.
Développement de tâches XIHE BSP
Développez une tâche XIHE BSP en utilisant l'une des méthodes suivantes.
Éditeur de développement SQL
Soumission synchrone
Soumission asynchrone
Configuration des tâches XIHE BSP
Configurez les ressources, le délai d'expiration par défaut et la priorité d'une tâche XIHE BSP.
Méthodes de configuration
Appliquez des paramètres de configuration à une seule tâche BSP, à toutes les tâches d'un groupe de ressources de tâche spécifique ou à toutes les tâches d'un cluster.
Pour une seule tâche
Pour qu'une configuration ne s'applique qu'à une seule tâche, ajoutez l'indice /*+ resource_group=<resource_group_name>,<config_name>*/ à l'instruction SQL.
Dans l'indice, resource_group_name correspond au nom du groupe de ressources et config_name est un paramètre issu de la liste des Paramètres de configuration.
Exemple : Pour limiter une tâche du groupe de ressources de tâche nommé bsptest à un maximum de 20 ACU :
/*+ resource_group=bsptest,elastic_job_max_acu=20*/SELECT count(*) from test_db.ods_hudi;
Pour un groupe de ressources
Pour qu'une configuration s'applique à toutes les tâches exécutées dans un groupe de ressources de tâche, exécutez l'instruction SET adb_config <resource_group_name>.<config_name>.
Dans l'indice, resource_group_name correspond au nom du groupe de ressources et config_name est un paramètre issu de la liste des Paramètres de configuration.
Exemple : Cette commande limite chaque tâche exécutée dans le groupe de ressources de tâche nommé bsptest à un maximum de 20 ACU.
SET adb_config bsptest.elastic_job_max_acu=20;
Vérifier la configuration
Pour vérifier que la configuration est appliquée au groupe de ressources, exécutez l'instruction SHOW ADB_CONFIG KEY=<resource_group_name>.<config_name>.
Pour un cluster
Pour qu'une configuration s'applique à toutes les tâches exécutées dans un cluster, exécutez l'instruction SET adb_config <config_name>. config_name est un paramètre issu de la liste des Paramètres de configuration.
Exemple : Cette commande limite chaque tâche exécutée dans le cluster à un maximum de 20 ACU.
SET adb_config elastic_job_max_acu=20;
Vérifier la configuration
Pour vérifier que la configuration est appliquée au cluster, exécutez l'instruction SHOW ADB_CONFIG KEY=<config_name>.
Paramètres
Le tableau suivant décrit les paramètres configurables pour les tâches XIHE BSP.
|
Catégorie |
Paramètre |
Description |
Valeur par défaut |
|
Ressource |
|
Nombre maximal d'ACU qu'une seule tâche XIHE BSP peut utiliser. Cela inclut à la fois l'AppMaster et les nœuds de calcul. La valeur ne peut pas dépasser le nombre maximal d'ACU alloués au groupe de ressources. Remarque
L'AppMaster est un nœud qui analyse les requêtes, planifie et exécute les tâches. |
9 |
|
Délai d'expiration |
|
Délai d'expiration d'une tâche BSP, en millisecondes (ms). Si une tâche s'exécute au-delà de cette valeur, le système l'annule automatiquement. |
7200000 |
|
Priorité |
|
Priorité de la tâche BSP. Valeurs valides : HIGH, NORMAL, LOW et LOWEST. Pour plus d'informations sur la file d'attente de priorité, consultez File d'attente de priorité d'un groupe de ressources de tâche. |
NORMAL |
FAQ
Afficher l'état des tâches BSP
Si vous avez soumis la tâche BSP depuis l'éditeur de développement SQL, accédez à la page et consultez l'état de la tâche dans l'onglet Execution Records.
-
Si vous avez soumis la tâche BSP via d'autres méthodes, interrogez son état dans la table
information_schema.kepler_meta_elastic_job_listen exécutant l'instruction suivante :SELECT status FROM information_schema.kepler_meta_elastic_job_list WHERE process_id='<job_id>';RemarqueLa table
information_schema.kepler_meta_elastic_job_liststocke jusqu'à 1 000 tâches BSP soumises au cours des 30 derniers jours. Vous pouvez effectuer d'autres analyses statistiques, telles que l'agrégation, sur cette table. L'exemple suivant montre comment compter le nombre de tâches BSP par état :SELECT status,count(*) FROM information_schema.kepler_meta_elastic_job_list GROUP BY status;
Soumission synchrone vs asynchrone
La soumission synchrone et la soumission asynchrone offrent les mêmes fonctionnalités. La seule différence réside dans l'attente ou non de la fin de la requête par le client.
La soumission asynchrone présente les limitations suivantes :
Un ensemble de résultats peut contenir au maximum 10 000 lignes.
Un maximum de 1 000 ensembles de résultats, y compris leurs liens de téléchargement de fichiers CSV, sont conservés pendant une durée maximale de 30 jours.
La soumission asynchrone est recommandée pour les requêtes longues et intensives en calcul qui renvoient de petits ensembles de résultats, telles que INSERT INTO SELECT, INSERT OVERWRITE SELECT et CREATE TABLE AS SELECT.