sql >> Database >  >> RDS >> Mysql

Perl:Hoe kopieer/mirror ik externe MYSQL-tabel(len) naar een andere database? Eventueel ook andere opbouw?

De twee termen die u zoekt zijn ofwel "replicatie " of "ETL".

Ten eerste, replicatiebenadering.

Laten we aannemen dat uw beheerdersserver tabellen T1, T2, T3 heeft en uw openbare server tabellen TP1, TP2 heeft.

Dus wat je wilt doen (omdat je verschillende tabelstructuren hebt zoals je zei) is:

  1. Neem de tabellen van de openbare server en maak exacte kopieën van die tabellen op de beheerdersserver (TP1 en TP2).

  2. Maak een trigger op de originele tabellen van de beheerdersserver om de gegevens van T1/T2/T3 in de kopie van de beheerdersserver van TP1/TP2 te vullen.

  3. U moet ook de initiële gegevenspopulatie uitvoeren van T1/T2/T3 naar de kopie van de beheerdersserver van TP1/TP2. Duh.

  4. Stel de "replicatie in " van TP1/TP2 van de beheerdersserver naar TP1/TP2 van de openbare server

Een andere benadering is het schrijven van een programma (dergelijke programma's worden ETL - Extract-Transform-Load genoemd) dat de gegevens van T1/T2/T3 op de admin-server (het "E"-gedeelte van "ETL") zal extraheren, de gegevens masseert in een formaat dat geschikt is om in TP1/TP2-tabellen te worden geladen (het "T"-gedeelte van "ETL"), breng (via ftp/scp/whatnot) die bestanden over naar de openbare server en de tweede helft van het programma (de "L") part zal de bestanden in de tabellen TP1/TP2 op de openbare server laden. Beide helften van het programma worden gestart door cron of uw planner naar keuze.

Er is een artikel met een heel goed voorbeeld van hoe te beginnen met het bouwen van Perl/MySQL ETL:http://oreilly.com/pub/a/databases/2007/04/12/building-a-data-warehouse -with-mysql-and-perl.html?page=2

Als u liever niet uw eigen ETL-systemen bouwt, vindt u hier een lijst met open source ETL-systemen, die nooit zijn gebruikt, dus geen meningen over hun bruikbaarheid/kwaliteit:http://www.manageability.org/blog/stuff/open-source-etl



  1. Hoe maak je een Datetime Format in SQLite

  2. Hoe dynamische SQL opschonen (voorkomen van SQL-injectie) in SQL Server?

  3. Hoe voeg je gewichten toe aan een MySQL-tabel en selecteer je willekeurige waarden volgens deze?

  4. Verbinding maken met AWS MySQL / MariaDB RDS of EC2-database vanuit MySQL WorkBench