Wpis z mikrobloga

  • 1
Problem:
Automatyczne kopiowanie nowych wpisów z jednej tabeli MS SQL do tabeli mySQL.

Rozwiązanie:
Mirki pięknie proszę o pomysły

#programowanie #bazydanych
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Android
  • 0
@Crisu właśnie linked server i openquery. Tabela jest ogromna ale mi zależy na WHERE TimeStamp > cośtam (czyli maksymalnie 200 wierszy). Nie umiem tego użyć
  • Odpowiedz
@novaq: Napisałeś odwrotnie, napisałeś że kopiujesz z MSSQL do mysql (co wydało się trochę bez sensu, no ale co tam:). Linkedserver + opernquery to najlepsze rozwiązanie - w tabeli mysql masz timestampa, tak?

SELECT *
FROM OPENQUERY(, 'SELECT FROM MyTable where timestamp > x')
  • Odpowiedz
via Android
  • 0
@RomantycznyRoman to musiałem nieźle namieszać. Potrzebuję mieć bazę mySQL w której będzie jedna jedyna tabela. Będzie ona kopią jednej tabeli z MS SQL. Ma się synchronizować automatycznie co 5 sekund.
  • Odpowiedz
a się synchronizować automatycznie co 5 sekund.


@novaq: a dane sa tylko przyrostowe ? Jak tak to rob

INSERT INTO openquery(DEVMYSQL,
'SELECT event_id, people_id, role_id, rank, last_updated FROM tabel)

Jesli beda inne operacje (update,delete) to moze byc problem. Pierw jakos bedziesz musial te tabele porownac a linked server siada przy duzych ilosciach (przynajmniej ten w 2008)
  • Odpowiedz
@Crisu: To może pomóc. Będzie tylko przyrostowanie. Już opracowałem linked server i sterownik. Nie mogłem tego dzisiaj pchnąć bo ze względów proceduralnych muszę zrobić ghosta całej stacji w okienku serwisowym. Jutro powinno ruszyć.
Sprawdzałem jak wykonuje się SELECT na takiej dużej tabeli, ale wychodzi, że ograniczając go przez TimeStamp do 3 miesięcy wstecz trwa to 6 sekund. Przy jednej dobie wstecz poniżej 1 sekundy a ja potrzebuję 5 sekund wstecz.
  • Odpowiedz
@novaq: git. pamietam ze jak bawilem sie db2--mssql i trzeba bylo pchac jakies duze ilosci danych (w dziesiatki mln) to trwalo mega dlugo. Nawet przy mniejszych ilosciach join stanowil problem.
  • Odpowiedz