Question

Je suis à la recherche en utilisant le tableau de stockage pour stocker des données transactionnelles, cependant, je dois soutenir un certain niveau très élevé de rapports sur elle, totalise essentiellement par jour / mois.

Couple d'options J'ai bien de:

  • Utilisation d'une partition / rangée structure de clé et effectuer dynamiquement somme
    par exemple. 20101101_ITEMID_XXXXXXXX (x = guid ou de temps pour rendre unique) alors je demander une requête de données de mois en utilisant une partie de la clé de ligne (ITEMID_201011), et à un total sur la propriété « coût » dans le type.

    Comment la limite de requête de 1000 dossiers gérés par ce bien? (À savoir s'il y a plus de 1000 transactions pour la journée, pour un total serait difficile)

  • Utilisez un autre enregistrement pour stocker le total pour la journée, et mettre à jour ce que les nouveaux enregistrements sont ajoutés
    par exemple. clé de ligne « 20101101_ITEMID_TOTAL » puis requête de cela pour les totaux des jours, voire des mois, ou totaux années.

Quelle est la meilleure façon de le faire? Y at-il une « meilleures pratiques » pour ce type d'exigence en utilisant le stockage de table?

Était-ce utile?

La solution

Je ne sais pas quelle est la meilleure pratique mais je peux dire que nous avons une situation similaire avec AzureWatch et utilisent certainement des valeurs pré-agrégées dans les tableaux.

La plupart du temps pour des raisons de performance - stockage de table n'est pas instantanée, même si vous requête par seule partition clé et une plage dans la ligne clé en main. Le temps qu'il faut pour télécharger les dossiers est un peu important et en fonction des dossiers pourrait pic de la CPU, parce qu'il doit désérialiser les données en objets. Si vous obtenez de Voyage au stockage de la table à plusieurs reprises en raison de la 1000 limite d'enregistrement, vous devrez payer plus aussi bien.

D'autres pensées à considérer:

Est-ce que vos totaux agrégés changer? Si non, le ceci est un autre coup de coude vers préagrégation

Aurez-vous besoin de garder les valeurs agrégées après des données brutes est révolu ou vous jamais besoin de purger les données brutes? Si oui, alors il est un autre coup de coude vers préagrégation

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top