2017-10-11 5 views
0

Tableau: Client Hashkey: email Autres caractéristiques: nom, adresse, purchasedamount, dateCreated Exemple de données:comment interroger des données basées sur datetime de DynamoDB

  1. "xxx1.xxx.com", "XXXXX1", "no1.street", 2500, "10-01-2017 01:02:03"
  2. "xxx2.xxx.com", "XXXXX2", "no2.street", 2000, "11- 01-2017 04:05:06 "
  3. " xxx3.xxx.com "," XXXXX3 "," no3.street ", 4050," 10-02-2017 07:08:09 "
  4. "xxx4.xxx.com", "XXXXX4", "no4.street", 2800, "02/11/2017 10:11:12"

Comment récupérer les clients, dont la date d'achat de " 11-01-2017 00:00:00 "à" 10-02-2017 00:00:00 ".

Répondre

0

En regardant vos données d'échantillon, je ne vois pas un moyen facile de le faire malheureusement. Je dirais que vous devez le faire dans le code (balayer tous les éléments et filtrer au niveau de l'application).

Si la modification du modèle de données est une option:

et approche recommandée Easiest avec la date/fois dans DynamoDB est de stocker est au format ISO 8601, en utilisant le type de données String. ISO8601: Les valeurs de date et d'heure sont classées de la plus grande à la plus petite unité de temps: année, mois (ou semaine), jour, heure, minute, seconde et fraction de seconde. L'ordre lexicographique de la représentation correspond donc à l'ordre chronologique, sauf pour les représentations de date impliquant des années négatives. Cela permet de trier naturellement les dates, par exemple, DynamoDB. Si vous utilisez votre attribut Date comme clé de tri/LSI, il vous permet de demander à DynamoDB de faire le gros du travail pour interroger entre deux dates (dans une clé de partition), en utilisant l'opérateur de comparaison BETWEEN.

+0

4 option 1: type de données au format ISO8601 Chaîne ou Nombre, quel est le meilleur? il y a une possibilité d'ajouter LSI pour la table existante. – samson

+0

Si vous utilisez Epoch Time (c'est aussi le mode de fonctionnement de la fonction TTL), utilisez Number. Si vous utilisez le format ISO8601, utilisez String. Malheureusement, créer une LSI n'est pas possible sur une table existante, c'est une activité de création de table uniquement. Bien que la création d'un GSI est possible. Vous pouvez utiliser les déclencheurs pour migrer vers une nouvelle table avec le LSI en suivant les étapes indiquées ici: https://www.abhayachauhan.com/?p=136. –