Exporter (0) Imprimer
Développer tout

Présentation du modèle de données du service de Table

Mis à jour: février 2014

Le service de Table offre un stockage structuré sous forme de tables. Les sections suivantes décrivent le modèle de données du service de Table.

Un compte de stockage est une entité globale unique au sein du système de stockage. Le compte de stockage est l'espace de noms parent du service de Table et sert de base pour l'authentification. Vous pouvez créer plusieurs tables dans un compte de stockage donné, mais chaque table doit avoir un nom unique.

Le compte de stockage doit toujours être spécifié dans l'URI de la demande. L'URI de base pour accéder au service de Table est de ce type :

https://myaccount.table.core.windows.net

Les tables stockent les données sous forme de collections d'entités. Les entités sont similaires aux lignes. Une entité possède une clé primaire et un ensemble de propriétés. Une propriété est un nom, une paire de valeur typée, semblable à une colonne.

Le service de Table n'applique pas de schéma de table, deux entités de la même table peuvent donc avoir différents ensembles de propriétés. Les développeurs peuvent choisir d'appliquer un schéma côté client. Une table peut contenir plusieurs entités.

Les noms de table doivent respecter les règles suivantes :

  • ils doivent être uniques dans un compte ;

  • ils ne doivent contenir que des caractères alphanumériques ;

  • ils ne peuvent pas commencer par un caractère numérique ;

  • ils ne respectent pas la casse ;

  • ils doivent comprendre entre 3 et 63 caractères.

  • Certains noms de table sont réservés, y compris le nom « tables ». Si vous essayez de créer une table avec un nom réservé, vous obtenez le code d'erreur 404 (Requête incorrecte).

Ces règles sont également décrites par l'expression régulière « ^[A-Za-z][A-Za-z0-9]{2,62}$ ».

Les noms de table conservent la casse avec laquelle ils ont été créés, mais ne la respectent plus une fois qu'ils sont utilisés.

Les noms de propriété sont des chaînes sensibles à la casse comprenant jusqu'à 255 caractères. Les noms de propriété doivent suivre les règles d'affectation de noms des identificateurs C#.

noteRemarque
Certains identificateurs C# ne sont pas conformes à la spécification XML. Ces identificateurs ne peuvent pas être utilisés dans les noms de propriété, car ces derniers sont envoyés via une charge utile XML dans une requête sur le service de Table.

ImportantImportant
Les noms de propriété sont transmis au service de Table dans une URL. Certains caractères doivent être encodés en pourcentage pour apparaître dans une URL, via UTF-8 (de préférence) ou MBCS. Ce codage se produit automatiquement quand vous utilisez les bibliothèques .NET Azure ou que vous construisez un objet Uri comprenant un nom de propriété. Toutefois, il existe certains caractères non valides dans les chemins d'accès des URL même quand ils sont encodés. Ces caractères ne peuvent pas apparaître dans les noms de propriété. Les points de code tels que \uE000 sont valides dans les noms de fichier NTFS, mais ils constituent des caractères Unicode non valides et ne peuvent pas être utilisés. En outre, certains caractères ASCII ou Unicode, comme les caractères de contrôle (0x00 à 0x1F, \u0081, etc.), ne sont pas autorisés. Pour les règles régissant les chaînes Unicode dans HTTP/1.1, voir :

noteRemarque
Depuis la version du 14/04/2009, le service de Table ne prend plus en charge le tiret (-) dans les noms de propriété.

Une entité peut comprendre jusqu'à 255 propriétés, y compris 3 propriétés système décrites dans la section suivante. Par conséquent, l'utilisateur peut inclure jusqu'à 252 propriétés personnalisées, en plus des 3 propriétés système. La taille combinée de toutes les données dans les propriétés d'une entité ne peut pas dépasser 1 Mo.

Une entité contient toujours les propriétés système suivantes :

  • Propriété PartitionKey

  • Propriété RowKey

  • Propriété Timestamp

Ces propriétés système sont automatiquement incluses pour chaque entité d'une table. Les noms de ces propriétés sont réservés et ne peuvent pas être modifiés. Le développeur est chargé d'insérer et de mettre à jour les valeurs de PartitionKey et RowKey. Le serveur gère la valeur de Timestamp, qui ne peut pas être modifiée.

Les caractères suivants ne sont pas autorisés dans les valeurs des propriétés PartitionKey et RowKey :

  • la barre oblique (/) ;

  • la barre oblique inverse (\) ;

  • le signe dièse (#) ;

  • le point d'interrogation (?).

  • les caractères de commande U+0000 à U+001F, notamment :

    • le caractère de tabulation horizontale (\t) ;

    • le caractère de nouvelle ligne (\n) ;

    • le caractère de retour chariot (\r) ;

  • les caractères de commande U+007F à U+009F.

Les tables sont partitionnées pour prendre en charge l'équilibrage de charge entre les nœuds de stockage. Les entités d'une table sont organisées en partitions. Une partition est une plage consécutive d'entités possédant la même valeur de clé de partition. La clé de partition est l'identificateur unique de la partition dans une table donnée, spécifié par la propriété PartitionKey. La clé de partition constitue la première partie de la clé primaire d'une entité. La clé de partition peut être une valeur de chaîne d'une taille maximale de 1 Ko.

Vous devez inclure la propriété PartitionKey dans chaque opération d'insertion, de mise à jour et de suppression.

La deuxième partie de la clé primaire est la clé de ligne, spécifiée par la propriété RowKey. La clé de ligne est l'identificateur unique d'une entité dans une partition donnée. Les propriétés PartitionKey et RowKey identifient de manière unique chaque entité d'une table.

La clé de ligne est une valeur de chaîne d'une taille maximale de 1 Ko.

Vous devez inclure la propriété RowKey dans chaque opération d'insertion, de mise à jour et de suppression.

La propriété Timestamp est une valeur DateTime gérée côté serveur pour enregistrer l'heure de dernière modification d'une entité. Le service de Table utilise la propriété Timestamp en interne pour fournir un accès concurrentiel optimiste. La valeur Timestamp est une valeur à croissance monotone, ce qui signifie que chaque fois que l'entité est modifiée, la valeur Timestamp augmente de cette entité. Cette propriété ne doit pas être utilisée pour les opérations d'insertion ou de mise à jour (la valeur sera ignorée).

Le service de Table prend en charge un sous-ensemble de types de données défini par la Spécification du protocole OData. Le tableau suivant indique les types de propriété pris en charge pour le service de Table :

 

Type de données OData Type CLR (Common Language Runtime) Détails

Edm.Binary

byte[]

Tableau d'octets d'une taille maximale de 64 Ko.

Edm.Boolean

bool

Valeur booléenne.

Edm.DateTime

DateTime

Valeur 64 bits exprimée en heure UTC (Universal Time Coordinate). La période DateTime prise en charge commence à partir de 00 h 00 (minuit) le 1er janvier 1601 après J.-C. (C.E.), UTC. La période se termine le 31 décembre 9999.

Edm.Double

double

Valeur en virgule flottante 64 bits.

Edm.Guid

Guid

Identificateur global unique (GUID) 128 bits.

Edm.Int32

Int32 - ou - int

Entier 32 bits.

Edm.Int64

Int64 - ou - long

Entier 64 bits.

Edm.String

String

Valeur encodée UTF-16. Les valeurs de chaîne peuvent avoir une taille maximale de 64 Ko.

Par défaut une propriété est créée en tant que String, sauf si vous spécifiez un type différent. Pour taper explicitement une propriété, spécifiez son type de données OData approprié pour une opération Insert Entity ou Update Entity. Pour plus d'informations, consultez Insertion et mise à jour d'entités.

Pour obtenir des exemples expliquant comment filtrer selon plusieurs types de propriété dans un URI de demande d'interrogation, voir Interrogation de tables et d'entités.

Voir aussi

Afficher:
© 2014 Microsoft