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. Version
par 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 deRejectedRecords
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 :