Question

Je cherche à stocker des tableaux dans des entités Tableau Azure. À l'heure actuelle, le seul type de réseau pris en charge est en mode natif octet réseau, limité à 64k longueur. La taille est assez, mais je voudrais stocker des tableaux de double et désire ardemment, horodatages dans une entité.

Je ne peux évidemment lancer plusieurs octets à moi-même type demandé, mais je me demandais s'il y a une meilleure pratique pour y parvenir.

Pour clarifier, ces réseaux sont de longueur fixe (par exemple 1000 cellules) associées à une seule touche.

Était-ce utile?

La solution

J'ai essayé de penser à une façon agréable de faire autre que la méthode que vous avez déjà mentionné, et je suis à une perte. La solution la plus simple que je peux trouver est de prendre le tableau, serialize binaire et stocker dans une propriété de tableau binaire.

D'autres options que je suis venu avec, mais rejeté:

  1. Si le stockage est nativement importante, vous pouvez conserver ces informations dans une autre table des enfants (je sais que les tableaux Azure ne sont pas techniquement des relations, mais cela ne signifie pas que vous ne pouvez pas représenter ce genre de chose). L'inconvénient de cet être que ce sera beaucoup plus lent que l'original.
  2. Prenez le tableau, XML serialize et le stocker dans une propriété de chaîne. Cela signifie que vous pouvez voir le contenu de votre tableau lors de l'utilisation des outils de l'explorateur de données 3ème partie et vous pourriez courir (inefficace) requêtes qui cherchent une correspondance exacte sur le contenu du tableau.
  3. Lokad entités de graisse nuage pour stocker vos données. Ce essentiellement vous prend tout objet êtes la, sérialisés binaire et il divise les résultats en blocs de 64kb à travers les propriétés de l'entité de table. Cela ne résout des problèmes comme celui que vous rencontrez, mais vous ne pourrez accéder à vos données à l'aide des outils qui prennent en charge ce cadre.

Autres conseils

J'ai écrit un client de stockage de table Azure, appelée Lucifure Stash, qui prend en charge les tableaux, les énumérations, les grandes données, sérialisation, propriétés publiques et privées et les champs et plus.

Vous pouvez l'obtenir à http://www.lucifure.com ou de NuGet.

Si vous avez juste une collection de valeur clé pour stocker, vous pouvez également consultez Azure BLOBs . Ils peuvent plutôt stocker efficacement des réseaux jusqu'à des points-valeur de temps 25M par blob unique (avec un accès aléatoire dans l'ensemble de données).

Si vous choisissez de stocker votre objet dans le stockage de blob et ont besoin de plus d'une « clé » pour l'obtenir, il vous suffit de créer une table d'azur ou deux ou n où vous stockez la clé que vous voulez regarder et la référence à l'élément exact blob.

Pourquoi ne pas stocker les valeurs chaînes csv?

Vous pourriez sérialiser votre tableau comme une chaîne JSON en utilisant le JavaScript .NET sérialiseur: http://msdn.microsoft.com/en -nous / bibliothèque / system.web.script.serialization.javascriptserializer.aspx

Cette classe a une propriété « MaxJsonLength » vous pouvez utiliser pour vous assurer que vos tableaux ne dépasse pas 64K lorsque vous les sérialisation. Et vous pouvez utiliser la même classe pour désérialiser vos objets stockés.

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