DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Integration Zone»Intégration de SCTL dans le RAL de DistSQL
    Integration Zone

    Intégration de SCTL dans le RAL de DistSQL

    novembre 28, 2021
    Intégration de SCTL dans le RAL de DistSQL
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Maintenant, analysons ces commandes une par une :

    • show variable transaction_type

    Recherchez le type de transaction actuel.

    Commande d’entrée

    mysql> show variable transaction_type;

    Sortir

    +------------------+
    | TRANSACTION_TYPE |
    +------------------+
    | LOCAL            |
    +------------------+
    • set variable transaction_type

    Modifiez le type de transaction actuel (LOCAL, XA ou BASE ; insensible à la casse).

    Commande d’entrée

    mysql> set variable transaction_type=XA;

    Sortir

    une. En cas de succès, affichez « Requête OK, 0 lignes affectées »;

    b. Exécuter show variable transaction_type à nouveau et le type est XA maintenant.

    • show variable cached_connection

    Interrogez le nombre de connexions physiques mises en cache par la base de données.

    Commande d’entrée

    mysql> show variable cached_connections;

    Sortir

    +--------------------+
    | CACHED_CONNECTIONS |
    +--------------------+
    | 0                  |
    +--------------------+

    Prévisualisez le SQL réel. Ici, nous donnons un exemple de scénario de division en lecture-écriture. ShardingSphere prend en charge la prévisualisation de toutes les commandes SQL.

    Commande d’entrée

    mysql> preview select * from t_order;

    Sortir

    +-----------------+----------------------------------------------+
    | datasource_name | sql                                          |
    +-----------------+----------------------------------------------+
    | read_ds_0       | select * from t_order ORDER BY order_id ASC  |
    | read_ds_1       | select * from t_order ORDER BY order_id ASC  |
    +-----------------+----------------------------------------------+

    Remarque : Il s’agit d’un exemple d’indice dans un scénario de fractionnement en lecture-écriture. Nous configurons deux règles : le fractionnement en lecture-écriture et le sharding. La config est la suivante :

    rules:
    - !READWRITE_SPLITTING
    dataSources:
    ds_0:
      writeDataSourceName: write_ds_0
      readDataSourceNames: 
        - read_ds_0
    ds_1:
      writeDataSourceName: write_ds_1
      readDataSourceNames: 
        - read_ds_1
    - !SHARDING
    tables:
    t_order:
      actualDataNodes: ds_${0..1}.t_order
    defaultDatabaseStrategy:
    standard:
      shardingColumn: user_id
      shardingAlgorithmName: database_inline
    defaultTableStrategy:
    none:
    shardingAlgorithms:
    database_inline:
      type: INLINE
      props:
        algorithm-expression: ds_${user_id % 2}
    • show readwrite_splitting hint status

    Pour la connexion actuelle uniquement. État de l’indicateur de requête de readwrite_splitting.

    Commande d’entrée

    mysql> show readwrite_splitting hint status;

    Sortir

    +--------+
    | source |
    +--------+
    | auto   |
    +--------+
    • set readwrite_splitting hint source

    Pour la connexion actuelle uniquement. Définir la stratégie de conseil de fractionnement en lecture-écriture (AUTO ou WRITE). Les types de sources pris en charge incluent:AUTO et WRITE(insensibles à la casse). — AUTO: conseil de fractionnement en lecture-écriture automatisé — WRITE: conseil obligatoire dans la bibliothèque principale

    Commande d’entrée

    mysql> set readwrite_splitting hint source=write;

    Sortir

    une. En cas de succès,afficher « Requête OK, 0 lignes affectées »;

    b. Réexécuter show readwrite_splitting hint status; montrer que l’ource est changé en Write;

    c. Exécuter preview select * from t_orderet voir que le SQL interrogé ira à la base de données principale.

    mysql> preview select * from t_order;
    +-----------------+----------------------------------------------+
    | datasource_name | sql                                          |
    +-----------------+----------------------------------------------+
    | write_ds_0      | select * from t_order ORDER BY order_id ASC  |
    | write_ds_1      | select * from t_order ORDER BY order_id ASC  |
    +-----------------+----------------------------------------------+
    • clear readwrite_splitting hint

    Pour la connexion actuelle uniquement. Effacez le paramètre d’indice de fractionnement en lecture-écriture.

    Commande d’entrée

    mysql> clear readwrite_splitting hint;

    Sortir

    une. En cas de succès, affichez « Requête OK, 0 lignes affectées » ;

    b. Récupérer l’indice readwrite_splitting par défaut ; utilisation show readwrite_splitting hint status commande pour voir le résultat.

    Remarque:Voici un autre exemple de partitionnement pour Hint. L’algorithme d’indice est utilisé à la fois pour le partitionnement de base de données et le partitionnement de table. Les règles de configuration de partitionnement sont indiquées ci-dessous :

    rules:
    - !SHARDING
    tables:
    t_order_item:
      actualDataNodes: ds_${0..1}.t_order_item_${0..1}
      databaseStrategy:
        hint:
          shardingAlgorithmName: database_inline
      tableStrategy:
        hint:
          shardingAlgorithmName: table_inline
    shardingAlgorithms:
    database_inline:
      type: HINT_INLINE
      props:
        algorithm-expression: ds_${Integer.valueOf(value) % 2}
    table_inline:
      type: HINT_INLINE
      props:
        algorithm-expression: t_order_item_${Integer.valueOf(value) % 2}

    show sharding hint status

    Pour la connexion actuelle uniquement. État de l’indice de partitionnement de la requête.

    Commande d’entrée

    mysql> show sharding hint status;

    Sortir

    La sortie d’état initial est :

    Vérifiez l’astuce et saisissez la commande :

    preview select * from t_order_item;

    Sortie Aucune valeur d’indice maintenant. La requête dépend entièrement de l’indice.

    -set sharding hint database_value;

    Pour la connexion actuelle uniquement. Définissez l’indice comme pour le partitionnement de base de données uniquement et ajoutez la valeur de base de données=1.

    Commande d’entrée

    mysql> set sharding hint database_value = 1;

    Sortir

    une. En cas de succès, affichez « Requête OK, 0 lignes affectées »;

    b. Exécuter show sharding hint status; spectacle t_order_item‘s database_sharding_values comme 1. Mettre à jour sharding_type value comme databases_only.

    c. Exécuter preview select * from t_order_item; SQL tout fait allusion à ds_1:

    *Remarque : selon les règles de partitionnement de la configuration YAML, lorsque la valeur de la base de données est un nombre impair, faites allusion à ds1 ; lorsque databasevalue est un nombre pair, faites allusion à ds0.

    -add sharding hint database_value;

    Pour la connexion actuelle uniquement. Ajouter t_order_itemla valeur de partitionnement de la base de données.

    Commande d’entrée

    mysql> add sharding hint database_value t_order_item = 5;

    Sortir

    une. En cas de succès,afficher « Requête OK, 0 lignes affectées »;

    b. Exécuter show sharding hint status; Spectacle t_order_item‘s database_sharding_values comme 5 ; mettre à jour sharding_type value comme databases_tables??

    c. Exécuter preview select * from t_order_item; Les commandes SQL sont toutes suggérées à ds_1:

    Entrez à nouveau la commande add pour ajouter une valeur paire.

    mysql> add sharding hint database_value t_order_item = 10;

    Sortir:

    une. En cas de succès,afficher « Requête OK, 0 lignes affectées »;

    b. Exécuter show sharding hint status; spectacle t_order_item‘s database_sharding_values = ‘5,10’:

    c. Exécuter preview select * from t_order_item; L’indice SQL contient ds0 et ds1:( Parce que les valeurs d’indice incluent à la fois un nombre pair et impair, il contient donc toutes les sources de données cibles)

    -add sharding hint table_value;

    Pour la connexion actuelle uniquement. Ajouter une valeur de partitionnement de base de données pour t_order_item.

    Commande d’entrée

    mysql> add sharding hint table_value t_order_item = 0;

    Sortir

    une. En cas de succès,afficher « Requête OK, 0 lignes affectées »;

    b. Exécuter show sharding hint status; spectacle t_order_item‘s database_sharding_values comme ‘5,10’ tandis que table_sharding_values est ‘0’:

    c. Exécuter preview select * from t_order_item; la condition Hint est illustrée dans la figure ci-dessous ; Chaque base de données interroge uniquement t_order_item_0:

    Remarque : Selon les règles de partitionnement de la configuration YAML, lorsque table_value est un nombre impair, indice t_order_item_1; lorsque database_value est un nombre pair, indice t_order_item_0. C’est assez similaire à add sharding hint database_value; vous pouvez définir plus d’une valeur d’indice dans add sharding hint database_value, pour couvrir plus de fragments.

    clear sharding hint

    Pour la connexion actuelle uniquement. Effacer le paramètre d’indice de partitionnement.

    Commande d’entrée

    mysql> clear sharding hint;

    Sortir

    une. En cas de succès, affichez « Requête OK, 0 lignes affectées » ;

    b. Effacer l’indice de partitionnement et récupérer la valeur par défaut ; utilisation show sharding hint status; pour voir le résultat. Le statut initial est :

    clear hint

    C’est une commande spéciale car elle contient les fonctionnalités de clear readwrite_splitting hint et clear sharding hint. Il peut effacer toutes les valeurs d’indice de fractionnement et de partitionnement en lecture-écriture. Utilisez la commande et vous obtiendrez le statut initial.

    Définissez la valeur de l’indice, puis exécutez la commande ;

    mysql> clear hint;

    Sortir

    une. En cas de succès, affichez « Requête OK, 0 lignes affectées » ;

    b. Obtenez readwrite_splitting conseil par défaut et conseil de partitionnement par défaut ; utilisation show readwrite_splitting hint status ; ou show sharding hint status;commande pour voir le résultat.

    Remarque : N’oubliez pas : si vous devez utiliser DistSQL Hint, vous devez activer la configurationproxy-hint-enabledde ShardingSphere-Proxy. Pour plus d’informations, veuillez lire : https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-proxy/props/

    Commandes RAL utiles supplémentaires

    RAL contient non seulement toutes les fonctions SCTL, mais fournit également d’autres fonctionnalités d’administration utiles, notamment la mise à l’échelle élastique, le disjoncteur d’instance, la désactivation de la base de données en lecture pour le fractionnement en lecture-écriture, etc.

    Pour plus de détails sur RAL, veuillez consulter la documentation pertinente : https://shardingsphere.apache.org/document/current/cn/user-manual/shardingsphere-proxy/distsql/syntax/ral/

    Conclusion

    C’est tout les gens. Si vous avez des questions ou des suggestions, n’hésitez pas à commenter nos sections Problèmes ou Discussions sur GitHub. Vous pouvez également soumettre votre pull request et commencer à contribuer à la communauté open source. Nous avons également mis en place une chaîne Slack, où vous pouvez vous connecter avec d’autres membres de notre communauté et discuter de technologie avec nous.

    Liens de projet Open Source

    ShardingSphere Github : https://github.com/apache/shardingsphere

    Twitter de ShardingSphere : https://twitter.com/ShardingSphere

    Chaîne Slack ShardingSphere : https://join.slack.com/t/apacheshardingsphere/shared_invite/zt-sbdde7ie-SjDqo9~I4rYcR18bq0SYTg

    Problèmes GitHub : https://github.com/apache/shardingsphere/issues

    Guide du contributeur : https://shardingsphere.apache.org/community/cn/contribute/

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.