Elastic Tables in Dataverse introduce NoSQL capabilities to Dataverse, Power Platform, and Dynamics 365, allowing you to manage large volumes of data by expanding capabilities of traditional Dataverse API. This feature is especially beneficial for industries like financial services, retail, and transportation that often handle “Big Data”.
Business Case
For companies needing to process large datasets, such as displaying IoT metrics or raw data in Power Apps, Elastic Tables offer a solution without requiring complex infrastructure. This can help field workers or colleagues access real-time data while using familiar Power Platform tools.
Functional Perspective
Handling Big Data within Power Platform/Dynamics 365 can be challenging. Elastic Tables simplify this by allowing large datasets to be stored in Dataverse, making them easily accessible for queries. This minimizes the technical effort typically needed for infrastructure setup.
When to Use Elastic Tables:
- You lack a Big Data infrastructure (e.g., Azure, AWS, GCP).
- Existing Big Data infrastructure struggles with Virtual Tables due to technical issues.
- The data is primarily forward-moving (CREATE/DELETE), though updates are supported.
- The data is semi-structured (JSON format) with unpredictable attributes.
- You need to store millions of records with expected growth.
Cautions:
- Choose the right Partition Key as it dictates how data is organized and affects performance.
- Elastic Tables do not support relational queries, complex querying can be limited.
- Avoid frequent updates, as changes may not reflect immediately for all users.
- Consider using Time to Live (TTL) for automatic record removal, useful for GDPR compliance.
- Elastic Tables are still subject to some Dataverse API limitations.
- Calculated, rollup, and formula columns are not supported; JSON columns can be queried with SQL statements.
For more information, refer to Microsoft’s documentation on Considerations when you use elastic tables
--- title: Campaign Results Elastic Table Partitioned by Campaign Id --- flowchart TB A[(Campaign Results Table)] --Campaign 123--o B( ⦃⦙⦄ Target Audience ⦃⦙⦄ Bookings) A --Campaign 456--o C( ⦃⦙⦄ Target Audience ⦃⦙⦄ Impressions ⦃⦙⦄ Bookings) A --Campaign 789--o D( ⦃⦙⦄ Target Audience ⦃⦙⦄ Impressions ⦃⦙⦄ Partners ⦃⦙⦄ Bookings) A --Campaign 010--o E( ⦃⦙⦄ Target Audience ⦃⦙⦄ Surveys)
Technical Considerations
Elastic Tables are suitable if you lack a Big Data setup or face challenges with Virtual Tables due to limitations in data source compatibility (e.g., lack of LINQ support).
- Elastic Tables are still under Dataverse API limits; bulk create/read operations are recommended over updates.
- No direct access to Cosmos DB (e.g., Data Explorer).
- Elastic Tables differ from the Power Platform Cosmos DB solution.
- Properly plan your partition key by analyzing source data as detailed in the partitioning overview.
In essence, Elastic Tables provide a managed Cosmos DB collection within Dataverse, carrying many of the benefits and characteristics of Cosmos DB, managed directly by Microsoft.
--- title: Table structure in Dataverse --- classDiagram class et["Elastic Table"] class st["Standard Table"] class vt["Virtual Table"] class dv["Dataverse"] class cdb["Managed Azure Cosmos DB"] et --|> cdb : Is built on dv --* et dv --* st dv --* vt