![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hello, I'm searching for a tool to help translate databases or keep two databases in sync. I'd like for this to be an existing tool that can be bought off the shelf. I can create something like this, but I have need for a solution today. The primary use of this tool will be to interface a customer's database system to our product's database. Besides database connectivity (ODBC may be sufficient for most customers) the customer database will likely have little resemblance to the data that my product requires. An intermediate set of data would be needed to perform the translation. I'd also like this tool to have the hooks or ability to notify the user when the sync step fails. For example, consider a product that needs the name and address information extracted from a customers system. There are any number of ways to split up the name and address fields in both databases. One-to-one, one-to-many, many-to-one, and many-to-many relationships should be supported. Some translations might be simple string operations. My side of the product database will likely stay fairly fixed over the long term. Each customers database may have totally unique relationships for storing the data that we'd like to have. Consider the following customer data: First Name Last Name Address line 1 Address line 2 City State ZIP Code Consider the following desired product data: Name House Number Street Name Location Code I would like to "teach" the tool that the desired Name can be created by appending the First and Last Names. The Address lines would be looked at and split apart to get a general address format. The city, state, and ZIP Code would be translated to a location code. Once the desired mapping relationships were established, there would likely be some intermediate tables built that had the expected-desired relationships. From there the tool would start the translation and an error report or API would allow a human to be asked for the desired relationships. As the system learns all the rules the data is translated automatically. Once a full set of data is successfully mapped, successive translations are likely to be satisfied by the current data. As new relationships develop when a customer enters new or unexpected data, the tool would again query for the correct output. In theory this process could run in both directions, though I don't expect that need for a couple years. My presumption, of course, is that this problem has been solved by other database tool makers and I've just not run across a good one yet. The translation will be run once a day or more but need not be near real time. I expect less than a million records to translate for a large customer. The amount of mapping data will likely stabilize quickly and could be built into our cost of setting up such a system. After that the customer would be responsible for new data. This would hopefully be presented as part of our product. The overall translation and integration of the tool with all databases should be very reliable. Price is an issue, but I'm not looking to spend a fortune for each customer. Obviously there are many trade offs to consider. Have you used or seen such a product? What would you recommend for a problem like this? Thank you, David |
#3
| |||
| |||
|
|
For example, consider a product that needs the name and address information extracted from a customers system. [cut] Have you used or seen such a product? What would you recommend for a problem like this? |
#4
| ||||||||||
| ||||||||||
|
|
I know of no such OTS tool. your address example is a good example of why. Any such tool would have to handle the mapping and data translations. Configuring such a tool is going to be very close to programming your own interface, especially for things like "spliting" Address_line_1 into House_Number and Street_Name. Other issues include: how "realtime" this interface must be. |
|
how failures are handled. |
|
what triggers the sync process. |
|
what happens of the customer system crashes and must be restored from backup? |
|
is the interface one-way or bydirectional? |
|
What customer data are you allowed to change and what data must you not change? |
|
what of your data is the customer allowed to change and what data must they not change? |
|
You might "sync" the databases by creating an intermediate "standard" format for the data. XML or EDI file transfers might be safer. |
|
Finally a word about your address example. Hopefully you were just posing two different datamodels to show your desired feature. However it is a bad idea to split postal information into separate fields like House_Number and Street_Name. Why? because addresses don't work that way. |
|
just consider: house numbers are not always numbers (128B Taylor Road) address is a post office box (e.g. PO Box41) address is a roural route (e.g. RR 5 Box 27) address is an apartment building (e.g. Gaudy Towers Suite 201) And we haven't left the USA yet! |
#5
| |||
| |||
|
|
David wrote: For example, consider a product that needs the name and address information extracted from a customers system. [cut] Have you used or seen such a product? What would you recommend for a problem like this? The issues related to merging addresses are so vast that you will require a product dedicated to do that alone. Besides the many different available formats, the fact that addresses can be written very differently but still be pointing to the same place as well as spellings errors, leaves a very complicated problem to solve. I believe that Experian has some sort of online data washing solution for enterprise use. Take a look here: http://www.experian.com/direct_marke...integrity.html Bu I am not sure if they will actually be able to provide what you need. Maybe it is just all hot air. I think that a data merge between two customer databases should be done in two steps: (1) each database is washed and to each customer (record), some global identifier is attached and (2) the two databases are merged using the global identifiers. Trying to do direct matching (of inconsistent databases) leaves too many open ends. Regards, Michael. |
#6
| |||
| |||
|
|
I'm searching for a tool to help translate databases or keep two databases in sync. I'd like for this to be an existing tool that can be bought off the shelf. I can create something like this, but I have need for a solution today. Some years ago I was involved with an application that used |
#7
| |||
| |||
|
|
"David" <FlyLikeAnEagle (AT) United (DOT) Com> wrote: I'm searching for a tool to help translate databases or keep two databases in sync. I'd like for this to be an existing tool that can be bought off the shelf. I can create something like this, but I have need for a solution today. Some years ago I was involved with an application that used Silverstream for this purpose. That product is now Novell exteNd http://www.novell.com/products/extend/>. It is a crippling price but that has the advantage, in your circumstances, that you will have a salesman on your doorstep within minutes of your phone call. |
![]() |
| Thread Tools | |
| Display Modes | |
| |