Créer et modifier des tables élastiques

Une table élastique est une table gérée par Microsoft Dataverse. Les tables élastiques sont livrées avec la même expérience utilisateur familière et la même API que celles proposées avec les tables standard. Elles partagent de nombreux aspects et options avec les tables standard, mais sont livrées avec leurs propres fonctionnalités et capacités uniques qui sont optimisées par Azure Cosmos DB.

Comme pour les tables standard, les tables élastiques sont incluses avec votre utilisation de la capacité de la base de données Dataverse.

Regardez cette vidéo pour en savoir plus sur les tables élastiques.

Quand envisager les tables élastiques Dataverse ?

Les tables élastiques sont conçues pour gérer de gros volumes de données en temps réel. Avec les tables élastiques, vous pouvez importer, stocker et analyser de gros volumes de données sans problèmes d’évolutivité, de latence ou de performances.

Les tables élastiques ont des capacités uniques pour un schéma flexible, une mise à l’échelle horizontale et la suppression automatique des données après une période de temps.

Les tables élastiques évoluent automatiquement pour ingérer des dizaines de millions de lignes chaque heure. Les processus en arrière-plan peuvent rassembler les signaux IoT, prévoir les besoins de maintenance et planifier de manière proactive les techniciens.

Considérez un scénario où Contoso est un détaillant avec des millions de clients existants. Contoso dispose d’une importante base de données de clients et cherche à augmenter ses ventes tout en fidélisant ses clients. Sur la base de l’historique des clients, ils cherchent à organiser des événements de vente flash 24 heures sur 24 avec différents coupons ciblant leurs clients et leurs produits. Ils ont estimé que le nombre de coupons requis sera de plus de 100 millions par campagne de vente flash. Le marketing prévoit de lancer plusieurs campagnes de 24 heures ciblant différents segments de clientèle.

L’exigence pour l’application marketing de Contoso est qu’elle doit être capable d’ingérer jusqu’à 100 millions de détails de coupons ou plus en quelques heures, de lire des millions de coupons par heure et d’envoyer des coupons aux clients.

Les tables élastiques évolueront automatiquement pour ce scénario à haut débit.

Par exemple, dans le scénario ci-dessus, une table élastique nommée Coupon avec des millions d’enregistrements peut être associée à des tables standard Dataverse comme Contact (informations client) et Offre (une table standard personnalisée). Étant donné que les tables élastiques sont isolées des tables standard, les performances de l’application marketing globale ne seront pas affectées négativement. De plus, la capacité de durée de vie avec table élastique (Coupon dans ce scénario) permet la suppression automatique des données après des périodes fixes et assure l’optimisation de la capacité de stockage.

Utilisez des tables élastiques quand :

  • vos données peuvent être non structurées ou semi-structurées, ou si votre modèle de données peut changer constamment ;
  • vous avez besoin d’une mise à l’échelle horizontale automatique ;
  • vous devez gérer un volume élevé de demandes de lecture et d’écriture.

Utilisez des tables standard quand :

  • votre application nécessite une forte cohérence ;
  • votre application exige une modélisation relationnelle et une capacité transactionnelle entre les tables et pendant les étapes d’exécution du plug-in ;
  • votre application nécessite des jointures complexes.

Le choix de la table doit être basé sur les besoins spécifiques de votre application. Une combinaison des deux types de tables peut être appropriée.

Mise à l’échelle horizontale et performances

Au fur et à mesure que vos données commerciales augmentent, les tables élastiques offrent une évolutivité automatique illimitée en fonction de la charge de travail de votre application, à la fois pour la taille de stockage et le débit, comme le nombre d’enregistrements créés, mis à jour ou supprimés dans un délai donné.

Si votre scénario d’entreprise nécessite un très grand volume d’écritures de données, les créateurs d’applications peuvent utiliser les API de requête multiple Dataverse, telles que CreateMultiple, UpdateMultiple et DeleteMultiple, pour obtenir un meilleur débit dans les limites de requêtes Dataverse. Pour plus d’informations : Guide du développeur : Messages d’opérations en bloc et Optimiser les performances pour les opérations en bloc

Suppression automatique des données

Les politiques de durée de vie (TTL) garantissent que vous travaillez toujours avec les informations les plus récentes et les plus précises, tout en optimisant les ressources et en réduisant les risques. La valeur en direct TTL est définie en secondes sur un enregistrement et est interprétée comme un delta à partir du moment où un enregistrement a été modifié pour la dernière fois.

Schéma flexible avec colonnes JSON

Les tables élastiques vous permettent de stocker et d’interroger des données avec différentes structures, sans avoir besoin de schémas ou de migrations prédéfinis. Il n’est pas nécessaire d’écrire du code personnalisé pour mapper les données importées dans un schéma fixe. Plus d’information : Guide du développeur : Interroger des colonnes JSON dans des tables élastiques Les tables élastiques vous permettent de stocker et d’interroger des données avec différentes structures, sans avoir besoin de schémas ou de migrations prédéfinis. Il n’est pas nécessaire d’écrire du code personnalisé pour mapper les données importées dans un schéma fixe. En savoir plus : Guide des développeurs : Interroger les colonnes JSON dans les tables élastiques

Éléments à prendre en compte lors de l’utilisation de tables élastiques

Bien que les tables élastiques soient idéales pour gérer un grand volume de demandes à grande échelle, les avantages s’accompagnent de quelques compromis, qu’il convient de garder à l’esprit :

  • Les tables élastiques ne prennent pas en charge les transactions multi-enregistrements. Cela signifie que plusieurs opérations d’écriture se produisant dans le cadre d’une seule exécution de requête ne sont pas transactionnelles les unes avec les autres. Par exemple, si vous avez une étape de plug-in synchrone enregistrée sur la phase PostOperation pour Create message sur une table élastique, toute erreur dans votre plug-in n’annule pas l’enregistrement créé dans Dataverse. Les validations dans les préplug-ins fonctionneront toujours comme prévu puisqu’elles s’exécutent avant l’étape principale.
  • Les tables élastiques prennent en charge la cohérence forte uniquement au sein d’une session logique. En dehors du contexte de la session, il se peut que vous ne voyiez pas immédiatement les modifications apportées à une ligne. Pour plus d’information : Guide des développeurs : Niveau de cohérence
  • Les tables élastiques ne prennent pas en charge les filtres sur les tables associées lors de la création de vues, de la recherche avancée ou de toute requête en général à l’aide de l’API. Si vous avez fréquemment besoin de filtrer sur les colonnes de table associées, nous vous recommandons de dénormaliser les colonnes des tables associées, qui doivent être filtrées dans la table principale elle-même. Considérez un détaillant avec deux tables élastiques : client et adresse. Un client a plusieurs adresses. Vous souhaitez renvoyer les résultats de la requête pour tous les clients de la table des clients dont la valeur de la ville dans la table des adresses est New York. Dans cet exemple, lors de l’interrogation de la table client, vous souhaitez appliquer un filtre sur la colonne ville de la table d’adresse associée. Cette table n’est pas prise en charge pour les tables élastiques. Une façon de faire fonctionner cela consiste à dénormaliser la colonne Ville dans la table Client afin que toutes les valeurs de ville des clients soient présentes dans la table client elle-même.

Prise en charge des fonctionnalités des tables élastiques

  • Créez, récupérez, mettez à jour, supprimez (CRUD) les opérations, y compris les opérations multiples de l’API (pour un débit élevé), la suppression en masse et les demandes des plug-ins.
  • Relations :
    • Un-à-plusieurs
    • Relations plusieurs à un lorsque la table N est une table standard
  • Enregistrement de la propriété, suivi des modifications, audit, mobile hors ligne et recherche Dataverse.
  • Colonne de fichier avec attribut de type de fichier

Prise en charge des fonctionnalités de sécurité

Les tables élastiques répondent au modèle de sécurité Dataverse.

Lors de la création d’une table élastique, vous pouvez définir :

  • Appartenant à l’utilisateur ou à l’organisation
  • Sécurité au niveau du champ

Fonctionnalités actuellement non prises en charge avec les tables élastiques

Fonctionnalités de table actuellement non prises en charge avec les tables élastiques :

  • Règles d’entreprise
  • Graphiques
  • Flux des processus d’entreprise
  • Un connecteur Dataverse pour Power BI
  • Relations plusieurs à plusieurs (N:N) à tables standard
  • Clé secondaire
  • Détection des doublons
  • Colonnes calculées et cumulatives
  • Colonnes de devise
  • Comparaison de colonnes dans les requêtes
  • Partage de table
  • Indices composites
  • Opérations en cascade : Supprimer, Redéfinir la parenté, Attribuer, Partager, Annuler le partage
  • Classement sur les colonnes de recherche
  • Requêtes agrégées :
    • Valeur distincte de attribute1 tandis que tri défini sur la valeur attribute2
    • Pagination lorsqu’il y a plusieurs produits distincts
    • Distinct avec commande multiple par
    • Trier par et regrouper par ensemble
    • Regrouper par sur l’entité de lien (jointure externe gauche)
    • Distinct sur les tables appartenant à l’utilisateur 
  • Connexions de table
  • Équipes d’accès
  • Files d’attente
  • Attachment

Types de données de colonne actuellement non disponibles avec les tables élastiques :

  • Devise
  • Formula
  • Format de nombre entier autre que Aucun (Durée, Code de langue et Fuseau horaire)
  • Recherche basée sur l’option Client

Créer une table élastique

Vous créez une table élastique comme n’importe quelle autre nouvelle table dans Dataverse.

  1. Connectez-vous à Power Apps et sélectionnez Tables dans le volet de navigation de gauche. Si l’élément ne se trouve pas dans le volet latéral, sélectionnez …Plus, puis sélectionnez l’élément souhaité.
  2. Sélectionnez Nouvelle table > Définir les propriétés avancées dans la barre de commandes.
  3. Dans le volet des propriétés de droite, saisissez un Nom complet et un Nom au pluriel.
  4. Développez Options avancées, puis sélectionnez Élastique comme Type de table. Sélectionnez Elastic en tant que type de table
  5. Sélectionnez les propriétés de votre choix, puis sélectionnez Enregistrer.

La colonne Durée de vie est automatiquement créée pour une table élastique. Vous pouvez ajouter la valeur de la période en secondes, selon vos besoins. Les données sont automatiquement supprimées après la période spécifiée.

Informations supplémentaires sur les tables : Options avancées

Problèmes connus

  • Lorsque la durée de vie (TTL) est utilisée sur une ligne, la ligne est supprimée de la table élastique lorsque la TTL a expiré. Si elle est synchronisée avec un lac de données à l’aide de Azure Synapse Link for Dataverse avant l’expiration de la TTL, elle ne sera pas supprimée du lac de données.
  • La restauration à un moment donné ne restaure pas les enregistrements « mis à jour » car les mises à jour ne sont pas sauvegardées. Seuls les enregistrements créés et supprimés sont restaurés.
  • Si une colonne spécifique d’une table élastique est supprimée, la valeur de la colonne n’est pas supprimée des lignes de la table si elle contient des données. Avant de supprimer une colonne spécifique, supprimez les données de toutes les lignes de la colonne.

Tables Elastic à volume élevé et gestion des Dataverse limites de limitation des API

Utiliser les messages d’opération en bloc. Cela vous permet d’atteindre un débit 10 fois supérieur avec les mêmes Dataverse limites de limitation de l’API. Les développeurs peuvent référencer davantage de liens fournis dans la section ci-dessous.

Pour les développeurs

Les tables élastiques ont des comportements et des capacités différents des tables standard lorsque les développeurs les utilisent avec des API Dataverse. Les articles suivants pour les développeurs décrivent ces différences :

Voir aussi

Créer et modifier des tables virtuelles à l’aide de Power Apps