|
|
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Доброе время суток форумчане, Интересует такой вопрос: Каким образом можно сделать перенос данных таблицы одной БД (РБД) из другой БД (РБД) с промежуточным их преобразованием. Существует распределенка, в ней есть БД1 с таблица1 (с полями «поле1», «поле2», «поле3»), а также БД2 с таблица2 (с полями «поле1», «поле2»). Нужно данные из таблица1 перенести в таблица2, с объединением данных (при переносе): «поле1» (таблица1), в «поле1» (таблица2) и «поле2» + «поле3» (таблица1) в «поле2» (таблица2) СУБД - MySQL Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2015, 23:17:31 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Если под словом "БД" подразумевается схема, то примерно так: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 00:08:17 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
под абривиатурой БД, подразумевается база данных (которые находится на разных машинах) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 00:21:46 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Kos-2010под абривиатурой БД, подразумевается база данных (которые находится на разных машинах)А, т.е. разные инстансы. Тогда движок FEDERATED + мой запрос выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 00:27:20 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
miksoftА, т.е. разные инстансы. Тогда движок FEDERATED + мой запрос выше. Т.е. если я вас правильно понял, просто нужно включить FEDERATED (через "my.cnf"). - Я его включил (т.е. по запросу "mysql > SHOW STORAGE ENGINES;" в таблице напротив "FEDERATED", появилось "YES") А вот далее..., В своем клиент-приложении, я использую для данных, компонент TADOQuery, и мне просто в этом компоненте нужно написать (ну конечно запрос будет выглядеть немного поиному) Код: pascal 1. 2. 3. 4. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 19:56:52 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Kos-2010, Почти так. Только между этими действиями еще нужно создать таблицы-линки на удаленные таблицы. См. How to Create FEDERATED Tables . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 20:01:32 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
перед проработкой данной ссылки я хочу более или менее представлять картину. т.е. у меня в результате будет база+таблица (источник (у меня уже есть)), база+таблица (приемник (у меня уже есть)), и связывающая таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 20:17:49 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
В целом да. Kos-2010и связывающая таблица?Ну технически это не таблица. Это просто некое оглавление таблицы с указанием, что брать данные "там". Но с точки зрения SQL-запросов это будет выглядеть как обычная таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 20:23:50 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
У меня пока все 3 БД распределенной базы данных, на одной машине. Я все проделал, т.е. взял структуру таблицы-источника (в sql), в PhpMyAdmin открыл БД таблицу-приемника, провел скрипт, и о чудо, у меня в БД-приемнике оказалась таблица-источник с данными :-) Вопрос: - зачем мне тогда проводить запрос (см. выше), если я могу на клиент-приложении с помощью ADOQuery, просто выводить данные промежуточной таблицы (созданной с помощью FEDERATED)? Или я чего то непонимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 21:49:59 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
А я для чего-то специально на серверном приложении кнопку делал ("Обновить данные") называется :-) Теперь все это оказалось не нужным :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 21:52:30 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Kos-2010, Не все так просто. У FEDERATED тоже есть свои недостатки. Например, он требует постоянного наличия связи. Не помню, что там насчет индексов - в худшем случае можно нарваться на полное копирование всех данных таблицы при каждом выполнении SQL-запроса. Ну и задержки/пропускная полоса канала тоже могут играть роль ограничивающих факторов. Как вариант, посмотрите на репликации. Это примерно ваша же синхронизация данных, только с помощью встроенных механизмов в MySQL. Окончательный выбор зависит от всей архитектуры системы, ее задач и целей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 22:37:14 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Даже не знаю, у меня выбрана стратегия расчленения. Т.е. предполагается что связь между отдельными БД (РБД), будет не постоянной, т.е. была закладывалась такая мысля, что связь будет временная, только на время обновления данных и все (чтоб не грузить сеть). Т.е. на одном сервере (БД1) внесли или отредактировали данные, нажали кнопку и эти данные ушли в другие две БД (БД2 и БД3) и все. Отсюда, я не совсем понимаю (исходя из технологии FEDERATED), как оператор работая с БД1 (клиент1) (при этом не работая с данными БД2 и БД3), сможет обновить данные на БД2 (клиент2) и БД3 (клиент3). Ведь запускать скрипт обновления (см. выше), у меня получается только находясь на клинт2 и клиент3? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 01:08:36 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
т.е. уточню оператор1 клиента1 обновил данные в БД1, эти данные, через связывающую таблицу, сразу обновились в БД2 и БД3 в FEDERATED-таблицах. Чтоб не загружать сеть, команда оператора1 каким-то образом, должна выполнить скрип (см. выше), по обновлению физической таблицы в БД2 и БД3 (используя FEDERATED-таблицу), и прервать связь между серверами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 02:11:56 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Наверно техника " репликации " мне больше подойдет под мою задачу. Только мне не очень понятно: все процессы репликации например , запускаются с командной строки. А я хочу это сделать с помощью кнопки в приложении. Хотя каким-то образом можно при нажатии кнопки, передавать команды в комадную строку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 22:24:55 |
|
||
|
Перенос данных из одной БД (РБД) в другую БД с промежуточным преобразованием
|
|||
|---|---|---|---|
|
#18+
Kos-2010, Все те же самые команды можно отправлять и через TQuery (или как он там в ваших компонентах называется). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2015, 23:34:20 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38952189&tid=1833236]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 403ms |

| 0 / 0 |
