Data Model 2 (DM2) - The Next Evolution
Important
As of version 3.0, the MyGeotab API Adapter solution has begun its evolution to using a new data model. It is expected to take several months from the initial version 3.0 release to port-over the various Geotab entity types that are currently supported. Once complete, the existing data model and the Data Optimizer will be deprecated after a reasonable period to provide integrators time to modify any integrations that they need to migrate to the new data model.
For more information:
Notes
- Self-contained deployments are packaged in zip files - the names of which are prefixed with "MyGeotabAPIAdapter_SCD_" (for the MyGeotab API Adapter) or "MyGeotabAPIAdapter.DataOptimizer_SCD_" (for the MyGeotab API Adapter Data Optimizer) followed by the target Runtime Identifier (e.g. "win-x64").
- If using SQL Server or Azure SQL for the adapter database, the SQLServer.zip file contains the scripts associated with this release.
- If using PostgreSQL for the adapter database, the PostgreSQL.zip file contains the scripts associated with this release.
- If using Oracle for the adapter database, the Oracle.zip file contains the scripts associated with this release.
- For the Data Optimizer database, the SQLServer_DataOptimizer.zip file contains the scripts associated with this release.
The following resources are available for further information:
- MyGeotab API Adapter - Solution and Implementation Guide (guide)
- MyGeotab API Adapter DM2 — Solution and Implementation Guide (guide) 🆕
- MyGeotab API Adapter - Data Optimizer - Solution and Implementation Guide (guide)
- MyGeotab API Adapter (presentation)
- MyGeotab API Adapter and Data Optimizer (presentation)
- MyGeotab API Adapter - Guide for Deploying to Microsoft Azure (guide)
- MyGeotab API Adapter - Developer Overview (presentation)
- MyGeotab API Adapter — How to Add a Data Feed (guide)
- MyGeotab API Adapter - Expanding on the Data Optimizer (presentation)
Changes This Release
Changes to the API Adapter and Data Optimizer are listed in the sections below. NOTE: This build includes changes to the schema of the adapter database and appsettings.json file.
- To upgrade an existing installation of the MyGeotab API Adapter solution from version 2.2.0 or greater to version 3.0.0:
- If using the original data model, see the MyGeotab API Adapter — Upgrade Guide — from v2.2.0+ to v3.0.0 [PUBLIC].
- If using Data Model 2 (DM2), see “We are Already Using the API Adapter. What is the Process to Upgrade to DM2?”.
API Adapter
- NOTE: This build includes changes to the schema of the adapter database and appsettings.json file.
Data Model 2 (DM2)
Important
Version 3.0.0 represents the next evolution of the MyGeotab API Adapter solution. See the IMPORTANT: Version 3.x - Data Model 2 (DM2) section for more information. Key points are as follows:
- A new data model – Data Model 2 (DM2) – has been added:
- DM2 is normalized and designed for greater performance and scalability.
- Database is partitioned (monthly, weekly, or daily).
- Includes Automated Database Maintenance.
- Support both SQL Server and PostgreSQL.
- Starting with version 3.0.0, the MyGeotab API Adapter will support SQL Server and PostgreSQL. Oracle database will not be supported moving forward due to very low usage combined with a high cost to develop and maintain.
- Data Optimizer deprecated – location interpolation capabilities moved directly into the adapter database with exponentially faster performance.
- MyGeotab API Adapter supports both the original data model and DM2:
- Initial version 3.0.0 release of DM2 includes support for a subset of the Geotab entities currently supported with the original data model.
- Additional entities will be ported over to DM2 in the coming months.
- Once DM2 supports all of the original data model entities, the original data model will be deprecated with a grace period of 6-12 months to allow integrators to migrate to DM2 if necessary.
- Refer to FAQ section.
Other Updates
- Added Groups table (to original data model only for this release) and related columns to Devices, Rules, Users and Zones tables. *SQL Server and PostgreSQL only.
- Updated CleanDatabaseScripts (both SQL Server and Postgres) to more efficiently clear data and use system tables/catalog to obtain approximate counts with no concurrency impact during operation of the API Adapter application.
- Updated DatabaseResilienceHelper to use ExceptionHelper to include StackTrace in exception logs. Also enhanced internal exception handling logic to include retry for PK constraint violation exceptions (that are due to TX issues and not actually duplicate PKs).
- Modified BaseRepository - added QueryAsync method for executing parameterized queries (including MSSQL stored procedures and Postgres functions) that return data.
- Added DatabaseValidator to validate adapter database version on application startup (DM2 only).
- Modified BaseRepository and GenericEntityPersister to allow for the optional use of “standalone” database connections (with no transactions and outside of units of work).
- Added capability for BackgroundServices to pause for database maintenance (DM2 only).
- Added BackgroundServiceAwaiter to consolidate wait logic on behalf of individual BackgroundServices and simplified those services (DM2 versions only) accordingly.
- Removed unnecessary trace method entry/exit logging from all BackgroundServices and various other classes.
- Modified DatabaseResilienceHelper - added retry for "current transaction aborted" exceptions.
- Modified StringHelper.IsValidIdentifierForDatabaseObject method to allow for dashes (as used in weekly partition names).
- Updated PrerequisiteServiceChecker and ServiceTracker classes with better logging logic for pauses related to waiting for other services (one pause message and one resumption message per paused service).
- Modified GenericGeotabObjectCacher to use AddOrUpdate instead of TryAdd to avoid throwing unnecessary exceptions if entities happen to be updated during the process of cache loading via GetFeed.
- Updated Geotab.Checkmate.ObjectModel from version 11.7.179 to 11.62.237.
- Updated all other NuGet packages to the latest stable release.
- Updated version to 3.0.0.0.
For information on changes introduced in earlier releases, please refer to the Change Log section in the MyGeotab API Adapter - Solution and Implementation Guide.
Data Optimizer
Important
Data Optimizer is being deprecated. See notes at the top of this page for further information.
- NOTE: There are no code or database changes in this release. Updates other than those noted below are restricted to the API Adapter.
- Updated NuGet packages to the latest stable release.
- Updated version to 3.0.0.0.
For information on changes introduced in earlier releases, please refer to the Change Log section in the MyGeotab API Adapter - Data Optimizer - Solution and Implementation Guide.