4. • Automatic migration process (Start, Stop, Restart Migration flow).
• High performance and scalability:
• Data Distribution
• Pipeline Process Execution
• Parallel Processing.
• Deadlock Prevention.
• Low Data Contention.
• High quality process log.
• Hierarchy structures processing (E.g. Large Account Corporation, Corporate Discount, ..)
• Error Handling and Tracking of migration execution results.
• Automatic Recovery and Rollback.
• Migration Execution Statistics, Performance and Execution Reports.
• Configuration Checks.
• Configuration Versioning and Deploy.
EMT – Main Features
Thanks to EMT parallel processing:
Migration performances are ruled only by the
migration process with lower performance rate.
7. 1. EMT Cassandra Adapter is executed by EIM tasks based on the EIM Process
configuration.
2. Retrieve the Default Target Configuration or specific Process Configuration (Override
Default Configuration) to build Cassandra Cluster interface:
• Connection Configuration Policy
• Authentication
• Target Keyspace
• Load Balance Policies
• Pooling Options
• Session Options
• Consistency Level
• Synchronous/Asynchronous execution
• Skip Null Values (Evict Tombstones)
• Time To Live
• Protocol and Socket
• SSL
• Compression
• Timeouts
3. Build Cassandra Cluster Interface and establish connection.
4. Read Source EIM records.
5. Prepare statement and execute Cassandra operation in Synchronous or
Asynchronous mode (Insert, Update, Upsert, Delete, Reconcile).
6. Update Execution Results on EIM Table.
EMT Cassandra Adapter – Architecture & Flow
8. • Translation consists in defining an ORACLE Base Table with 1:1 Cassandra Column Mapping and converting Cassandra Datatypes into ORACLE
Datatypes. Primary Key must be the same for both tables.
• EMT Cassandra Adapter uses pre-built implicit datatype Cast solving (whenever possible) the conversion between ORACLE Datatypes and
Cassandra Datatypes.
• In most of the cases, the implicit EMT datatype Cast do not require additional mapping configuration activity.
• Using EMT procedures, EIM table or Multiple EIM tables are generated to define the mapping between EMT and Cassandra.
• EIM mapping Tables are created into a dedicated Schema. Base tables are used only for EIM table creation.
EMT Cassandra Adapter – Data Mapping
Data Mapping is implemented translating Cassandra Tables into ORACLE tables.
9. EMT Cassandra Adapter uses additional Data Mapping Configuration to manage the following scenarios:
• Cassandra Long Names and Oracle Keywords
• Cassandra Target Tables Name or Column Identifier can exceed 35 characters or conflicts with Oracle keywords (E.g. Column Name “ID” ).
In those cases and additional configuration must be used:
• Table Long Name Mapping (Oracle Table Name Cassandra Table Name)
• Column Long Name Mapping (Oracle Column Name Cassandra Column Name)
• Cassandra Functions
• Target Columns updated with Cassandra functions are configured using the Cassandra column name and the Cassandra function.
Those columns are not mapped into EIM table columns.
• E.g. 1: CassandraTable.timestamp_column toUnixTimestamp(now())
• E.g. 2: CassandraTable.counter_likes counter_likes + 1
• EMT Cast Functions
• EMT Datatype Cast functions are used to define the datatype mapping for Columns overriding the implicit mapping:
• E.g.1 : EIMTable1.duration_column EMT_DUR_SEC() - Cast Duration from nanoseconds (Default) to seconds.
• EMT_CQL()
• EMT_CQL() function enables CQL parse to process target columns having data types:
• Collection (List, Map, Set)
• User Defined Types
E.g.1 : EIMTable1.column_map EMT_CQL()
EIM_TABLE1.COLUMN_MAP - Type VARCHAR2 or (N)CLOB CASSANADRA_TABLE1.COLUMN_MAP - Type map<int, text>
-------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------
{ 1000: 'Element Map N.1', 1001: 'Element Map N.2‘ } { 1000: 'Element Map N.1', 1001: 'Element Map N.2‘ }
EMT Cassandra Adapter – Data Mapping