sql >> Database teknologi >  >> RDS >> Mysql

Perl:Hvordan kopierer/spejler man eksterne MYSQL-tabeller til en anden database? Måske også en anden struktur?

De to udtryk, du leder efter, er enten "replikering " eller "ETL".

For det første replikeringstilgang.

Lad os antage, at din admin-server har tabellerne T1, T2, T3, og din offentlige server har tabellerne TP1, TP2.

Så hvad du vil gøre (da du har forskellige tabelstrukturer som du sagde) er:

  1. Tag tabellerne fra den offentlige server, og opret nøjagtige kopier af disse tabeller på admin-serveren (TP1 og TP2).

  2. Opret en trigger på adminserverens originale tabeller for at udfylde dataene fra T1/T2/T3 i adminserverens kopi af TP1/TP2.

  3. Du skal også lave indledende datapopulation fra T1/T2/T3 til admin-serverens kopi af TP1/TP2. Åh.

  4. Konfigurer "replikeringen " fra admin-serverens TP1/TP2 til den offentlige servers TP1/TP2

En anden tilgang er at skrive et program (sådanne programmer kaldes ETL - Extract-Transform-Load), som vil udtrække dataene fra T1/T2/T3 på admin-serveren ("E"-delen af ​​"ETL"), massere dataene i format, der er egnet til indlæsning i TP1/TP2-tabeller ("T"-delen af ​​"ETL"), overføre (via ftp/scp/whatnot) disse filer til en offentlig server, og anden halvdel af programmet ("L") del vil indlæse filerne i tabellerne TP1/TP2 på den offentlige server. Begge halvdele af programmet ville blive lanceret af cron eller din valgte skemalægger.

Der er en artikel med et meget godt eksempel på, hvordan man begynder at bygge Perl/MySQL ETL:http://oreilly.com/pub/a/databases/2007/04/12/building-a-data-warehouse -with-mysql-and-perl.html?page=2

Hvis du foretrækker ikke at bygge din egen, er her en liste over open source ETL-systemer, aldrig brugt nogen af ​​dem, så ingen meninger om deres anvendelighed/kvalitet:http://www.manageability.org/blog/stuff/open-source-etl



  1. INSTR() Svarende til SQL Server

  2. Sådan importeres en database ved hjælp af phpMyAdmin

  3. MYSQL Vælg fra tabeller baseret på flere rækker

  4. En guide til databaseautomatisering med Severalnines ClusterControl