Utilisez la méthode getRange du SDK Tablestore pour Node.js afin de lire les données comprises dans une plage de clés primaires spécifiée.
Prérequis
Méthode
getRange: function getRange(params, callback)
Exemples
L'exemple suivant lit les données de la table test_table dont la valeur de clé primaire est supérieure à row1.
var params = {
tableName: 'test_table',
// Set the start primary key for the query.
inclusiveStartPrimaryKey: [{ 'id': 'row1' }],
// Set the end primary key for the query. The end primary key is not included in the result.
exclusiveEndPrimaryKey: [{ 'id': TableStore.INF_MAX }]
};
// Call the getRange method to query data.
client.getRange(params, function (err, data) {
if (err) {
console.log('Get range failed with error: ', err);
return;
}
console.log('* RequestId: ', data.RequestId);
console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
console.log('* Rows Data: ');
data.rows.forEach(function (row) {
console.log(row);
});
});
Une analyse de plage unique renvoie au maximum 5 000 lignes ou 4 Mo de données. Si cette limite est dépassée, la réponse inclut la clé primaire de début pour la lecture suivante. Utilisez le code ci-dessous pour effectuer des requêtes itératives.
async function getRangeSample() {
try {
while (true) {
// Call the getRange method to query data.
const data = await client.getRange(params);
// Process the returned result.
console.log('* RequestId: ', data.RequestId);
console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
console.log('* Rows Data: ');
data.rows.forEach(function (row) {
console.log(row);
});
// Set the start primary key for the next read.
if (data.nextStartPrimaryKey) {
params.inclusiveStartPrimaryKey = data.nextStartPrimaryKey.map(item => {
return {
[item.name]: item.value
};
});
} else {
break;
}
}
} catch (err) {
console.log('Range get failed with error: ', err);
}
}
getRangeSample();
Vous pouvez également configurer les paramètres suivants lors de l'interrogation des données.
-
Définissez le sens de lecture des données.
var params = { tableName: 'test_table', // Set the start primary key for the query. When you read data in reverse order, the start primary key must be greater than the end primary key. inclusiveStartPrimaryKey: [{ 'id': TableStore.INF_MAX }], // Set the end primary key for the query. The end primary key is not included in the result. exclusiveEndPrimaryKey: [{ 'id': 'row1' }], // Set the read direction to reverse. direction: TableStore.Direction.BACKWARD }; -
Définissez une plage de versions. Seules les données comprises dans la plage spécifiée sont renvoyées.
// Set the version range for the query to the last 24 hours. params.timeRange = { startTime: (Date.now() - 86400 * 1000).toString(), endTime: Date.now().toString() } -
Spécifiez les colonnes d'attribut à lire.
params.columnsToGet = ['col2'] -
Définissez le nombre maximal de lignes à renvoyer en une seule requête.
params.limit = 10