WriteRecords - Amazon Timestream

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

WriteRecords

Vous permet d'écrire les données de vos séries chronologiques dans Timestream. Vous pouvez spécifier un point de données unique ou un lot de points de données à insérer dans le système. Timestream vous propose un schéma flexible qui détecte automatiquement les noms de colonnes et les types de données de vos tables Timestream en fonction des noms de dimension et des types de données des points de données que vous spécifiez lorsque vous appelez des écritures dans la base de données.

Timestream prend en charge la cohérence éventuelle de la sémantique de lecture. Cela signifie que lorsque vous interrogez des données immédiatement après avoir écrit un lot de données dans Timestream, les résultats de la requête peuvent ne pas refléter les résultats d'une opération d'écriture récemment terminée. Les résultats peuvent également inclure des données périmées. Si vous répétez la requête après un court laps de temps, les résultats devraient renvoyer les données les plus récentes. Des quotas de service s'appliquent.

Voir l'exemple de code pour plus de détails.

Upserts

Vous pouvez utiliser le Version paramètre dans une WriteRecords demande pour mettre à jour des points de données. Timestream enregistre un numéro de version pour chaque enregistrement. Versionpar défaut, c'est 1 quand il n'est pas spécifié pour l'enregistrement dans la demande. Timestream met à jour la valeur de mesure d'un enregistrement existant ainsi que sa valeur Version lorsqu'il reçoit une demande d'écriture avec un Version nombre plus élevé pour cet enregistrement. Lorsqu'il reçoit une demande de mise à jour dont la valeur de mesure est identique à celle de l'enregistrement existant, Timestream est toujours mis à jourVersion, si elle est supérieure à la valeur existante de. Version Vous pouvez mettre à jour un point de données autant de fois que vous le souhaitez, à condition que la valeur de augmente Version continuellement.

Supposons, par exemple, que vous écriviez un nouvel enregistrement sans l'indiquer Version dans la demande. Timestream enregistre cet enregistrement et le définit surVersion. 1 Supposons maintenant que vous essayiez de mettre à jour cet enregistrement avec une WriteRecords demande du même enregistrement avec une valeur de mesure différente mais que, comme auparavant, vous ne la fournissez pasVersion. Dans ce cas, Timestream rejettera cette mise à jour avec un RejectedRecordsException car la version de l'enregistrement mis à jour n'est pas supérieure à la valeur existante de Version.

Toutefois, si vous renvoyez la demande de mise à jour avec Version défini sur2, Timestream réussira alors à mettre à jour la valeur de l'enregistrement, qui Version sera définie sur. 2 Supposons ensuite que vous ayez envoyé une WriteRecords demande avec le même enregistrement et une valeur de mesure identique, mais avec la valeur Version définie sur3. Dans ce cas, Timestream sera uniquement mis à jour Version vers. 3 Toute mise à jour ultérieure devra envoyer un numéro de version supérieur à3, sinon les demandes de mise à jour recevront unRejectedRecordsException.

Syntaxe de la requête

{ "CommonAttributes": { "Dimensions": [ { "DimensionValueType": "string", "Name": "string", "Value": "string" } ], "MeasureName": "string", "MeasureValue": "string", "MeasureValues": [ { "Name": "string", "Type": "string", "Value": "string" } ], "MeasureValueType": "string", "Time": "string", "TimeUnit": "string", "Version": number }, "DatabaseName": "string", "Records": [ { "Dimensions": [ { "DimensionValueType": "string", "Name": "string", "Value": "string" } ], "MeasureName": "string", "MeasureValue": "string", "MeasureValues": [ { "Name": "string", "Type": "string", "Value": "string" } ], "MeasureValueType": "string", "Time": "string", "TimeUnit": "string", "Version": number } ], "TableName": "string" }

Paramètres de demande

Pour plus d'informations sur les paramètres courants pour toutes les actions, consultez Paramètres courants.

La demande accepte les données suivantes au JSON format suivant.

CommonAttributes

Un enregistrement qui contient les attributs communs de mesure, de dimension, de temps et de version partagés entre tous les enregistrements de la demande. Les attributs de mesure et de dimension spécifiés seront fusionnés avec les attributs de mesure et de dimension dans l'objet records lorsque les données seront écrites dans Timestream. Les dimensions peuvent ne pas se chevaucher, sinon un ValidationException sera projeté. En d'autres termes, un enregistrement doit contenir des dimensions portant des noms uniques.

Type : objet Record

Obligatoire : non

DatabaseName

Nom de la base de données Timestream.

Type : String

Contraintes de longueur : Longueur minimum de 3. Longueur maximale de 256.

Obligatoire : oui

Records

Tableau d'enregistrements contenant les attributs uniques de mesure, de dimension, de temps et de version pour chaque point de données de série chronologique.

Type : tableau d’objets Record

Membres du tableau : Nombre minimum de 1 élément. Nombre maximal de 100 éléments.

Obligatoire : oui

TableName

Nom de la table Timestream.

Type : String

Contraintes de longueur : Longueur minimum de 3. Longueur maximale de 256.

Obligatoire : oui

Syntaxe de la réponse

{ "RecordsIngested": { "MagneticStore": number, "MemoryStore": number, "Total": number } }

Eléments de réponse

Si l'action aboutit, le service renvoie une réponse HTTP 200.

Les données suivantes sont renvoyées sous JSON forme formatée par le service.

RecordsIngested

Informations sur les enregistrements ingérés par cette demande.

Type : objet RecordsIngested

Erreurs

Pour plus d'informations sur les erreurs courantes pour toutes les actions, consultez Erreurs courantes.

AccessDeniedException

Vous n'êtes pas autorisé à effectuer cette action.

HTTPCode de statut : 400

InternalServerException

Timestream n'a pas pu traiter complètement cette demande en raison d'une erreur interne du serveur.

HTTPCode de statut : 500

InvalidEndpointException

Le point de terminaison demandé n'était pas valide.

HTTPCode de statut : 400

RejectedRecordsException

WriteRecords déclencherait cette exception dans les cas suivants :

  • Enregistrements contenant des données dupliquées contenant plusieurs enregistrements ayant les mêmes dimensions, horodatages et noms de mesures, mais :

    • Les valeurs de mesure sont différentes

    • La version n'est pas présente dans la demande ou la valeur de la version dans le nouvel enregistrement est égale ou inférieure à la valeur existante

    Dans ce cas, si Timestream rejette les données, le ExistingVersion champ de RejectedRecords réponse indiquera la version de l'enregistrement en cours. Pour forcer une mise à jour, vous pouvez renvoyer la demande avec une version de l'enregistrement définie sur une valeur supérieure à. ExistingVersion

  • Enregistrements dont l'horodatage se situe en dehors de la durée de conservation de la mémoire.

  • Enregistrements dont les dimensions ou les mesures dépassent les limites définies par Timestream.

Pour plus d'informations, consultez la section Quotas dans le guide du développeur Amazon Timestream.

HTTPCode de statut : 400

ResourceNotFoundException

L'opération a tenté d'accéder à une ressource inexistante. La ressource n'est peut-être pas spécifiée correctement ou son statut ne l'est peut-être pasACTIVE.

HTTPCode de statut : 400

ThrottlingException

Trop de demandes ont été effectuées par un utilisateur et elles ont dépassé les quotas de service. La demande a été limitée.

HTTPCode de statut : 400

ValidationException

Une demande non valide ou mal formée.

HTTPCode de statut : 400

consultez aussi

Pour plus d'informations sur son utilisation API dans l'une des langues spécifiques AWS SDKs, consultez ce qui suit :