Configure the source and target hosts following the prerequisites outlined in Appendix B, Prerequisites then follow the appropriate steps for the required extractor topology outlined in Chapter 3, Deploying MySQL Extractors.
During the replication process, data is exchanged from the MySQL database/table/row structure into corresponding MongoDB structures, as follows
In general, it is easier to understand that a row within the MySQL table is converted into a single document on the MongoDB side, and automatically added to a collection matching the table name.
For example, the following row within MySQL:
mysql> select * from recipe where recipeid = 1085 \G
*************************** 1. row ***************************
recipeid: 1085
title: Creamy egg and leek special
subtitle:
servings: 4
active: 1
parid: 0
userid: 0
rating: 0.0
cumrating: 0.0
createdate: 0
1 row in set (0.00 sec)
Is replicated into the MongoDB document:
{ "_id" : ObjectId("5212233584ae46ce07e427c3"), "recipeid" : "1085", "title" : "Creamy egg and leek special", "subtitle" : "", "servings" : "4", "active" : "1", "parid" : "0", "userid" : "0", "rating" : "0.0", "cumrating" : "0.0", "createdate" : "0" }
When preparing the hosts you must be aware of this translation of the different structures, as it will have an effect on the way the information is replicated from MySQL to MongoDB.
MySQL Host
The data replicated from MySQL can be any data, although there are some known limitations and assumptions made on the way the information is transferred.
When configuring the extractor database and host, ensure heterogenous specific prerequisities have been included, see Section B.4.4, “MySQL Configuration for Heterogeneous Deployments”
For the best results when replicating, be aware of the following issues and limitations:
Use primary keys on all tables. The use of primary keys will improve the lookup of information within MongoDB when rows are updated. Without a primary key on a table a full table scan is performed, which can affect performance.
MySQL TEXT
columns are
correctly replicated, but cannot be used as keys.
MySQL BLOB
columns are
converted to text using the configured character type. Depending on
the data that is being stored within the
BLOB
, the data may need to be
custom converted. A filter can be written to convert and reformat the
content as required.
MongoDB Host
Enable networking; by default MongoDB is configured to listen only on
the localhost
(127.0.0.1) IP
address. The address should be changed to the IP address off your
host, or 0.0.0.0
, which
indicates all interfaces on the current host.
Ensure that network port 27017, or the port you want to use for MongoDB is configured as the listening port.