manish singh wrote:
> hi
> iam new to mysql and i have a question regarding
> porting/moving data from
> oracle database/s to my sql database.
> the scenario is likethis:
> we have 3 oracle databases and we have proposed
> a unified reporting environment
> where data from all these databases will be moved
> in one mysql db and then reports
> will be generated.
> now what are the things to keep in mind while
> pushing data from
> oracle to mysql and what are the different ways in
> which this can achieved efficiently?
If you are using a generic database API like JDBC or DBI, this is easy to create your own custom ETL process, but there are tool vendors like Embarcadero DT/Studio (
http://www.embarcadero.com ) that can also help with this. If you write your own program, consider either using multi-row insert statements of the form
insert into TABLE (col1, col2) values (row1, row1), (row2, row2), ..., (rowN, rowN)
to insert say 5000 rows in just one insert statement. Or build a text tab delimited file for use with LOAD DATA INFILE command.
Also consider the important decision between using InnoDB and MyISAM storage engine types for your tables. MyISAM can be very good for reporting where you do not need ACID transactional integrity whereas InnoDB gives you this, but at a cost of some per row overhead which can be substantial for long & narrow fact tables. Also MyISAM supports MERGE tables which can be used to give you a form of table partitioning if you are building a data warehouse.
BTW, if you do end up picking MyISAM + MERGE for partitioning and reporting, I think you will have a near ideal reporting environment, and a very good application of MySQL in your database infrastructure.
Regards,
Josh
Josh Chamas
Director, Professional Services
MySQL Inc., www.mysql.com
Get More with MySQL!
http://www.mysql.com/consulting