Tous les produits
Search
Centre de documentation

Tablestore:Configurer les points de fractionnement lors de l'utilisation de Tablestore Reader pour synchroniser des données complètes

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment configurer les points de fractionnement dans le script afin de résoudre les problèmes de lenteur rencontrés lors de la synchronisation complète des données avec Tablestore Reader.

Description du problème

Lorsque vous utilisez Tablestore Reader pour synchroniser l'intégralité des données, la vitesse de synchronisation est faible. L'extrait de code suivant illustre la configuration de la synchronisation complète des données :

"reader": {
  "plugin": "ots",
  "parameter": {
    "datasource": "",
    "table": "",
    "column": [],
    "range": {
      "begin": [
        {
          "type": "INF_MIN"
        }
      ],
      "end": [
        {
          "type": "INF_MAX"
        }
      ]
    }
  }
}

Cause

Un volume important de données est synchronisé, aucun point de fractionnement n'est configuré dans le script et un seul thread est créé pour récupérer les données. Dans ce cas, la vitesse de synchronisation des données s'en trouve affectée.

Solution

Si vous souhaitez synchroniser un volume important de données à l'aide de Tablestore Reader, configurez des points de fractionnement dans le script. Pour ce faire, suivez les étapes ci-dessous :

  1. Récupérez les informations relatives aux points de fractionnement requis en utilisant l'une des méthodes suivantes :

    • Utilisez le SDK Tablestore pour Java afin d'appeler l'opération ComputeSplitPointsBySize. Pour plus d'informations, consultez la rubrique Fractionner les données en shards d'une taille spécifique.

      Exemple de réponse :

      LowerBound:pkname1:INF_MIN, pkname2:INF_MIN
      UpperBound:pkname1:cbcf23c8cdf831261f5b3c052db3479e, pkname2:INF_MIN
      LowerBound:pkname1:cbcf23c8cdf831261f5b3c052db3479e, pkname2:INF_MIN
      UpperBound:pkname1:INF_MAX, pkname2:INF_MAX
    • Téléchargez l'interface CLI Tablestore. Ensuite, exécutez la commande points -s splitSize -t tablename. Pour plus d'informations, consultez la rubrique Démarrer l'interface CLI Tablestore et configurer les informations d'accès.

      Remarque

      L'unité de la valeur splitSize est de 100 Mo. Si le volume de données à synchroniser est faible, il n'est pas nécessaire de configurer des points de fractionnement. Si le volume de données est important, nous vous recommandons de spécifier une valeur pour le paramètre splitSize en fonction du nombre maximal de threads simultanés pris en charge par votre environnement.

      Exemple de réponse :

      [
      
        {
      
          "LowerBound": {
      
            "PrimaryKeys": [
      
              {
      
                "ColumnName": "pkname1",
      
                "Value": null,
      
                "PrimaryKeyOption": 2
      
              },
      
              {
      
                "ColumnName": "pkname2",
      
                "Value": null,
      
                "PrimaryKeyOption": 2
      
              }
      
            ]
      
          },
      
          "UpperBound": {
      
            "PrimaryKeys": [
      
              {
      
                "ColumnName": "pkname1",
      
                "Value": "cbcf23c8cdf831261f5b3c052db3479e\u0000",
      
                "PrimaryKeyOption": 0
      
              },
      
              {
      
                "ColumnName": "pkname2",
      
                "Value": null,
      
                "PrimaryKeyOption": 2
      
              }
      
            ]
      
          },
      
          "Location": "80310717938EDF503FB1E26F70710391"
      
        },
      
        {
      
          "LowerBound": {
      
            "PrimaryKeys": [
      
              {
      
                "ColumnName": "pkname1",
      
                "Value": "cbcf23c8cdf831261f5b3c052db3479e\u0000",
      
                "PrimaryKeyOption": 0
      
              },
      
              {
      
                "ColumnName": "pkname2",
      
                "Value": null,
      
                "PrimaryKeyOption": 2
      
              }
      
            ]
      
          },
      
          "UpperBound": {
      
            "PrimaryKeys": [
      
              {
      
                "ColumnName": "pkname1",
      
                "Value": null,
      
                "PrimaryKeyOption": 3
      
              },
      
              {
      
                "ColumnName": "pkname2",
      
                "Value": null,
      
                "PrimaryKeyOption": 3
      
              }
      
            ]
      
          },
      
          "Location": "80310717938EDF503FB1E26F70710391"
      
        }
      
      ]

      Identifiez les valeurs des premières colonnes de clé primaire. Par exemple, la valeur du paramètre pkname1 de la première LowerBound est null, la valeur du paramètre pkname1 de la première UpperBound est « cbcf23c8cdf831261f5b3c052db3479e\u0000 », la valeur du paramètre pkname1 de la deuxième LowerBound est « cbcf23c8cdf831261f5b3c052db3479e\u0000 » et la valeur du paramètre pkname1 de la deuxième UpperBound est null. Pour synchroniser l'intégralité des données, configurez les paramètres suivants dans le script :

      "split" : [
      
       {
      
         "type":"STRING",
      
         "value":"cbcf23c8cdf831261f5b3c052db3479e\u0000"
      
       }
      
      ]

      Lorsque vous exécutez le script précédent, Tablestore divise l'intégralité des données en deux parties et récupère les données simultanément selon les plages (INF_MIN,cbcf23c8cdf831261f5b3c052db3479e\u0000) et [cbcf23c8cdf831261f5b3c052db3479e\u0000,INF_MAX). Cette approche accélère la synchronisation des données.

  2. Configurez les points de fractionnement dans le script utilisé pour la synchronisation des données. L'extrait de code suivant montre comment configurer ces points :

    "range": {
          "begin": [
            {
              "type": "INF_MIN"
            }
          ],
          "end": [
            {
              "type": "INF_MAX"
            }
          ],
          "split": [
            {
              "type": "STRING",
              "value": "splitPoint1"
            },
            {
              "type": "STRING",
              "value": "splitPoint2"
            },
            {
              "type": "STRING",
              "value": "splitPoint3"
            }
          ]
    }

Si la synchronisation reste lente après la configuration des points de fractionnement, soumettez un ticket pour contacter le support technique.