Présentation du modèle de données du service de TableUnderstanding the Table service data model

Le service de Table offre un stockage structuré sous forme de tables.The Table service offers structured storage in the form of tables. Les sections suivantes décrivent le modèle de données du service de Table.The following sections outline the Table service data model.

Compte de stockageStorage Account

Un compte de stockage est une entité globale unique au sein du système de stockage.A storage account is a globally unique entity within the storage system. Le compte de stockage est l’espace de noms parent pour le service de table et constitue la base de l’autorisation.The storage account is the parent namespace for the Table service, and is the basis for authorization. Vous pouvez créer plusieurs tables dans un compte de stockage donné, mais chaque table doit avoir un nom unique.You can create any number of tables within a given storage account, as long as each table is uniquely named.

Le compte de stockage doit toujours être spécifié dans l'URI de la demande.The storage account must always be specified in the request URI. L'URI de base pour accéder au service de Table est de ce type :The base URI for accessing the Table service is as follows:

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

Tables, entités et propriétésTables, Entities, and Properties

Les tables stockent les données sous forme de collections d'entités.Tables store data as collections of entities. Les entités sont similaires aux lignes.Entities are similar to rows. Une entité possède une clé primaire et un ensemble de propriétés.An entity has a primary key and a set of properties. Une propriété est un nom, une paire de valeur typée, semblable à une colonne.A property is a name, typed-value pair, similar to a column.

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.The Table service does not enforce any schema for tables, so two entities in the same table may have different sets of properties. Les développeurs peuvent choisir d'appliquer un schéma côté client.Developers may choose to enforce a schema on the client side. Une table peut contenir plusieurs entités.A table may contain any number of entities.

Noms de tablesTable Names

Les noms de table doivent respecter les règles suivantes :Table names must conform to these rules:

  • ils doivent être uniques dans un compte ;Table names must be unique within an account.

  • ils ne doivent contenir que des caractères alphanumériques ;Table names may contain only alphanumeric characters.

  • ils ne peuvent pas commencer par un caractère numérique ;Table names cannot begin with a numeric character.

  • ils ne respectent pas la casse ;Table names are case-insensitive.

  • ils doivent comprendre entre 3 et 63 caractères.Table names must be from 3 to 63 characters long.

  • Certains noms de table sont réservés, y compris le nom « tables ».Some table names are reserved, including "tables". Si vous essayez de créer une table avec un nom réservé, vous obtenez le code d'erreur 404 (Requête incorrecte).Attempting to create a table with a reserved table name returns error code 404 (Bad Request).

Ces règles sont également décrites par l’expression régulière « ^ [A-Za-z] [A-Za-z0-9] {2,62} $ ».These rules are also described by the regular expression "^[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.Table names preserve the case with which they were created, but are case-insensitive when used.

Noms de propriétéProperty Names

Les noms de propriété sont des chaînes sensibles à la casse comprenant jusqu'à 255 caractères.Property names are case-sensitive strings up to 255 characters in size. Les noms de propriété doivent suivre les règles d’affectation de noms pour les identificateurs C#.Property names should follow naming rules for C# identifiers.

Notes

Certains identificateurs C# ne sont pas valides conformément à la spécification XML.Some C# identifiers are not valid according to the XML specification. 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.These identifiers may not be used in property names, because property names are sent via an XML payload in a request against the Table service.

Important

Les noms de propriété sont transmis au service de Table dans une URL.Property names are passed to the Table service within a 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.Certain characters must be percent-encoded to appear in a URL, using UTF-8 (preferred) or MBCS. Cet encodage se produit automatiquement lorsque vous utilisez les bibliothèques clientes de stockage Azure.This encoding occurs automatically when you use the Azure Storage client libraries. Toutefois, il existe certains caractères non valides dans les chemins d'accès des URL même quand ils sont encodés.However, there are certain characters that are not valid in URL paths even when encoded. Ces caractères ne peuvent pas apparaître dans les noms de propriété.These characters cannot appear in property names. 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.Code points like \uE000, while valid in NTFS filenames, are not valid Unicode characters, so they cannot be used. En outre, certains caractères ASCII ou Unicode, comme les caractères de contrôle (0x00 à 0x1F, \u0081, etc.), ne sont pas autorisés.In addition, some ASCII or Unicode characters, like control characters (0x00 to 0x1F, \u0081, etc.), are also not allowed. Pour les règles régissant les chaînes Unicode dans HTTP/1.1, voir :For rules governing Unicode strings in HTTP/1.1 see:

Notes

Depuis la version du 14/04/2009, le service de Table ne prend plus en charge le tiret (-) dans les noms de propriété.Beginning with version 2009-04-14, the Table service no longer supports including the dash (-) character in property names.

Limitations de propriétéProperty Limitations

Une entité peut comprendre jusqu'à 255 propriétés, y compris 3 propriétés système décrites dans la section suivante.An entity can have up to 255 properties, including 3 system properties described in the following section. Par conséquent, l'utilisateur peut inclure jusqu'à 252 propriétés personnalisées, en plus des 3 propriétés système.Therefore, the user may include up to 252 custom properties, in addition to the 3 system properties. La taille combinée de toutes les données dans les propriétés d’une entité ne peut pas dépasser 1 MiB.The combined size of all data in an entity's properties cannot exceed 1 MiB.

Propriétés systèmeSystem Properties

Une entité contient toujours les propriétés système suivantes :An entity always has the following system properties:

  • PropriétéPartitionKeyPartitionKey property

  • PropriétéRowKeyRowKey property

  • PropriétéTimestampTimestamp property

Ces propriétés système sont automatiquement incluses pour chaque entité d'une table.These system properties are automatically included for every entity in a table. Les noms de ces propriétés sont réservés et ne peuvent pas être modifiés.The names of these properties are reserved and cannot be changed. Le développeur est chargé d'insérer et de mettre à jour les valeurs de PartitionKey et RowKey.The developer is responsible for inserting and updating the values of PartitionKey and RowKey. Le serveur gère la valeur de Timestamp, qui ne peut pas être modifiée.The server manages the value of Timestamp, which cannot be modified.

Caractères non autorisés dans les champs de cléCharacters Disallowed in Key Fields

Les caractères suivants ne sont pas autorisés dans les valeurs des propriétés PartitionKey et RowKey :The following characters are not allowed in values for the PartitionKey and RowKey properties:

  • la barre oblique (/) ;The forward slash (/) character

  • Caractère barre oblique inverse ( \ )The backslash (\) character

  • le signe dièse (#) ;The number sign (#) character

  • le point d'interrogation (?).The question mark (?) character

  • les caractères de commande U+0000 à U+001F, notamment :Control characters from U+0000 to U+001F, including:

    • le caractère de tabulation horizontale (\t) ;The horizontal tab (\t) character
    • le caractère de nouvelle ligne (\n) ;The linefeed (\n) character
    • le caractère de retour chariot (\r) ;The carriage return (\r) character
  • les caractères de commande U+007F à U+009F.Control characters from U+007F to U+009F

Propriété PartitionKeyPartitionKey Property

Les tables sont partitionnées pour prendre en charge l'équilibrage de charge entre les nœuds de stockage.Tables are partitioned to support load balancing across storage nodes. Les entités d'une table sont organisées en partitions.A table's entities are organized by partition. Une partition est une plage consécutive d'entités possédant la même valeur de clé de partition.A partition is a consecutive range of entities possessing the same partition key value. La clé de partition est l'identificateur unique de la partition dans une table donnée, spécifié par la propriété PartitionKey.The partition key is a unique identifier for the partition within a given table, specified by the PartitionKey property. La clé de partition constitue la première partie de la clé primaire d'une entité.The partition key forms the first part of an entity's primary key. La clé de partition peut être une valeur de chaîne d’une taille maximale de 1 Kio.The partition key may be a string value up to 1 KiB in size.

Vous devez inclure la propriété PartitionKey dans chaque opération d'insertion, de mise à jour et de suppression.You must include the PartitionKey property in every insert, update, and delete operation.

Propriété RowKeyRowKey Property

La deuxième partie de la clé primaire est la clé de ligne, spécifiée par la propriété RowKey.The second part of the primary key is the row key, specified by the RowKey property. La clé de ligne est un identificateur unique pour une entité dans une partition donnée.The row key is a unique identifier for an entity within a given partition. Les propriétés PartitionKey et RowKey identifient de manière unique chaque entité d'une table.Together the PartitionKey and RowKey uniquely identify every entity within a table.

La clé de ligne est une valeur de chaîne dont la taille peut atteindre 1 Kio.The row key is a string value that may be up to 1 KiB in size.

Vous devez inclure la propriété RowKey dans chaque opération d'insertion, de mise à jour et de suppression.You must include the RowKey property in every insert, update, and delete operation.

Propriété TimestampTimestamp Property

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é.The Timestamp property is a DateTime value that is maintained on the server side to record the time an entity was last modified. Le service de Table utilise la propriété Timestamp en interne pour fournir un accès concurrentiel optimiste.The Table service uses the Timestamp property internally to provide optimistic concurrency. La valeur de la Timestamp propriété pour une entité avance chaque fois que l’entité est modifiée.The value of the Timestamp property for an entity advances each time the entity is modified. Cette propriété ne doit pas être utilisée pour les opérations d'insertion ou de mise à jour (la valeur sera ignorée).This property should not be set on insert or update operations (the value will be ignored).

La Timestamp propriété doit être exprimée dans l’un des formats ISO 8601 UTC acceptés.The Timestamp property must be expressed in one of the accepted ISO 8601 UTC formats. Pour plus d’informations sur les formats UTC acceptés, consultez mise en forme des valeurs DateTime.For more information about accepted UTC formats, see Formatting DateTime values.

Types de propriétésProperty Types

Le service de table prend en charge un sous-ensemble de types de données définis par la spécification du protocole OData.The Table service supports a subset of data types defined by the OData Protocol Specification. Le tableau suivant indique les types de propriété pris en charge pour le service de Table :The following table shows the supported property types for the Table service:

Type de données ODataOData Data Type Type CLR (Common Language Runtime)Common Language Runtime type DétailsDetails
Edm.Binary byte[] Tableau d’octets d’une taille allant jusqu’à 64 Kio.An array of bytes up to 64 KiB in size.
Edm.Boolean bool Valeur booléenne.A Boolean value.
Edm.DateTime DateTime Valeur de 64 bits exprimée en temps universel coordonné (UTC).A 64-bit value expressed as Coordinated Universal Time (UTC). La période DateTime prise en charge commence à partir de 00 h 00 (minuit) le 1er janvier 1601 après J.-C.The supported DateTime range begins from 12:00 midnight, January 1, 1601 A.D. (NOTRE ÈRE), UTC.(C.E.), UTC. La plage se termine le 31 décembre 9999.The range ends at December 31, 9999. Pour plus d’informations, consultez mise en forme des valeurs DateTime.For more information, see Formatting DateTime values.
Edm.Double double Valeur à virgule flottante de 64 bits.A 64-bit floating point value.
Edm.Guid Guid Identificateur global unique de 128 bits.A 128-bit globally unique identifier.
Edm.Int32 Int32 ou intInt32 or int Nombre entier 32 bits.A 32-bit integer.
Edm.Int64 Int64 ou longInt64 or long Nombre entier 64 bits.A 64-bit integer.
Edm.String String Valeur encodée en UTF-16.A UTF-16-encoded value. La taille des valeurs de chaîne peut atteindre 64 Kio.String values may be up to 64 KiB in size. Notez que le nombre maximal de caractères pris en charge est d’environ 32 Ko.Note that the maximum number of characters supported is about 32 K or less.

Par défaut une propriété est créée en tant que String, sauf si vous spécifiez un type différent.By default a property is created as type String, unless you specify a different type. Pour taper explicitement une propriété, spécifiez son type de données à l’aide du type de données OData approprié pour une opération d' insertion d’entité ou de mise à jour d’entité .To explicitly type a property, specify its data type by using the appropriate OData data type for an Insert Entity or Update Entity operation. Pour plus d’informations, consultez insertion et mise à jour des entités.For more information, see Inserting and Updating Entities.

Le service de table ne conserve pas les null valeurs des propriétés.The Table service does not persist null values for properties. Lors de l’interrogation d’entités, les types de propriétés ci-dessus ne peuvent pas être null.When querying entities, the above property types are all non-nullable. Lors de l’écriture d’entités, les types de propriétés ci-dessus sont tous Nullable et toute propriété avec une null valeur est gérée comme si la charge utile ne contenait pas cette propriété.When writing entities, the above property types are all nullable, and any property with a null value is handled as if the payload did not contain that property.

Pour obtenir des exemples qui montrent comment filtrer sur les différents types de propriété dans un URI de demande de requête, consultez interrogation de tables et d’entités.For examples that show how to filter on the various property types in a query request URI, see Querying Tables and Entities.

Voir aussiSee Also