Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
Дано:
Есть несколько баз данных на разных СБУД(Postgres, Mysql, Oracle, Firebird)
Базы cходны лишь частично - некторые общие поля(идентификаторы, имена сущностей)

Задача:
Получить результат SQL запроса к таблицам в разных базах.

Вопрос:
Есть ли способ организовать подобное?
Выкачать частично или полностью локальные результаты запросов в некий единый обработчик для обобщения?

Идеи, ключевые слова?

Спасибо.
6 окт 12, 23:38    [13279009]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
если в MSSQL - то просто, ключевое слово OPENQUERY
7 окт 12, 00:08    [13279110]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
у всех приличных субд есть возможность линковаться к объектам других субд как к локальным и выполнять по ним запросы. Запросы эти будут роутится соответсвенно к ужаленным субд. Из вышеприведенных вами субд у оракла точно есть такой механизм, про остальные не знаю.
7 окт 12, 00:45    [13279204]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
SergSuper
если в MSSQL - то просто, ключевое слово OPENQUERY

О это полезно, спасибо.

Ggg_old
у всех приличных субд есть возможность линковаться к объектам других субд как к локальным и выполнять по ним запросы. Запросы эти будут роутится соответсвенно к ужаленным субд. Из вышеприведенных вами субд у оракла точно есть такой механизм, про остальные не знаю

Я имел в виду независимое приложение не имеющее собственного хранилища, но способное оперировать SQL(pl/SQL) запросами и перенаправлять запросы к базам данных.
7 окт 12, 09:46    [13279658]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
тогда не понятно, в чем именно у вас пролема. Ну сделайте сколько нужно соединений к разным субд, выполните запросы к ним и в клиентской части обработайте как надо. Если обработка так-же подразумевает выполнение некого результируещего sql по верх результатов, то можно сливать данные по мере их получения с удаленной субд в локальную (sqllite) а потом в локальной дорихтовать окончательно.
7 окт 12, 10:14    [13279674]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54849

korisk
Я имел в виду независимое приложение не имеющее собственного хранилища

То есть не имеющее никакой информации об индексах, их селективности и прочих данных,
которые обычно оптимизатор использует для построения плана запроса. Ню-ню...

Posted via ActualForum NNTP Server 1.5

7 окт 12, 11:42    [13279763]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
Ggg_old
тогда не понятно, в чем именно у вас пролема. Ну сделайте сколько нужно соединений к разным субд, выполните запросы к ним и в клиентской части обработайте как надо. Если обработка так-же подразумевает выполнение некого результируещего sql по верх результатов, то можно сливать данные по мере их получения с удаленной субд в локальную (sqllite) а потом в локальной дорихтовать окончательно.


Конечно так можно, но это уже костыли. Я предположил, что существует готовое решение, возможно и не существует. Проблема в том что я не знаю ключевых слов, аналогов итп.


Dimitry Sibiryakov
То есть не имеющее никакой информации об индексах, их селективности и прочих данных,
которые обычно оптимизатор использует для построения плана запроса. Ню-ню...


Оптимизаторы на каждой из баз могут быть отдельными. Объединять результаты запросов можно и без индексов.
7 окт 12, 11:52    [13279779]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54849

korisk
Оптимизаторы на каждой из баз могут быть отдельными. Объединять результаты
запросов можно и без индексов.

То бишь голимый merge или hash join и никогда - inner loop. С последующей сортировкой если
задан order by. Ню-ню...

Posted via ActualForum NNTP Server 1.5

7 окт 12, 14:03    [13280054]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
Dimitry Sibiryakov,

т.е. вы уверены, что описываемая конструкция врядли может быть реализована. Спасибо за мнение.
7 окт 12, 16:38    [13280461]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
korisk
Dimitry Sibiryakov,

т.е. вы уверены, что описываемая конструкция врядли может быть реализована. Спасибо за мнение.


Она 100% может быть реализована. только придется попотеть реализовывая.
7 окт 12, 19:05    [13280768]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
korisk
SergSuper
если в MSSQL - то просто, ключевое слово OPENQUERY

О это полезно, спасибо.

Ggg_old
у всех приличных субд есть возможность линковаться к объектам других субд как к локальным и выполнять по ним запросы. Запросы эти будут роутится соответсвенно к ужаленным субд. Из вышеприведенных вами субд у оракла точно есть такой механизм, про остальные не знаю

Я имел в виду независимое приложение не имеющее собственного хранилища, но способное оперировать SQL(pl/SQL) запросами и перенаправлять запросы к базам данных.


Например, virtuoso это умеет, и достаточно хорош. Но она небесплатная.

Из бесплатных не знаю, кто это может.
7 окт 12, 19:09    [13280783]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
MasterZiv, а ведь есть ещё BDE? помните?! :)
8 окт 12, 10:13    [13282566]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
korisk,
не поверишь, ключевые слова "google heterogenous query".
А в принципе:
1) нужен абсолютно независимый инструмент или есть всё таки какая-то среда разработки/сопровождения, в которую неплохо бы вписаться? например, а не подойдёт ли решения а-ля Delphi + набор компонент, поддерживающий гетерогенные запросы (AnyDAC, к примеру, чтобы не тыкать в закаменевшего идола BDE...)?
3) насколько сложные запросы (у разных инструментов разные возможности по оптимизации)?
4) запросы нужно выполнять "онлайн" или подойдёт промежуточная загрузка данных (например, ETL)?
5) есть ограничения по стоимости решения?
8 окт 12, 10:32    [13282661]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
korisk
<...>Идеи, ключевые слова?<...>
Федеративные системы или мультибазы, например.
8 окт 12, 11:11    [13282916]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
SergSuper
если в MSSQL - то просто, ключевое слово OPENQUERY

В MSSQL еще лучше использовать ключевые слова "linked server"...
8 окт 12, 12:11    [13283396]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
АнатоЛой, по стоимости ограничения есть - желательно бесплатно :)
С параметрами пока не определилось - просто прощупываю почву, можно ли такое реализовать.
Пока остановился на dblink (Postgres) и (ODBC)

BDE это уж слишком :D.

servit, про мультибазы не слышал, спасибо.
8 окт 12, 19:05    [13286811]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
korisk
АнатоЛой, по стоимости ограничения есть - желательно бесплатно :)
С параметрами пока не определилось - просто прощупываю почву, можно ли такое реализовать.
Пока остановился на dblink (Postgres) и (ODBC)

BDE это уж слишком :D.

servit, про мультибазы не слышал, спасибо.

А если бы не "закаменолость" BDE во времени, он бы вас устроил по своим "давно стабилизироваавшимся" возможностям?

И нет ничего постоянного в мире, это относится и к цене, а особенно к её форме:
Инфо 1) "Local SQL" в AnyDAC появился не так давно (v.6.0.1, лето 2012);
Инфо 2) насколько я понимаю, реализация под ваши нужды потребует программирования с использованием Delphi, C++Builder или FreePascal - или написания утилит в этих же средах;
Вариант: предложите автору взамен за стоимость лицензий утилиту, которую вы напишите - вдруг это вариант ему подходит? :)
8 окт 12, 19:53    [13286951]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
korisk
Member

Откуда:
Сообщений: 52
АнатоЛой,
мм я не знаком с возможностями BDE, просто прочел что она windows-based. Такое решение меня не интересует. Но за информацию спасибо.
Паскалем я тоже не пользуюсь :).

В целом решение найдено, тему можно закрыть.
Всем большое спасибо за советы, идеи и ключевые слова :)
8 окт 12, 21:24    [13287282]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Gallagher
Member

Откуда: ( ͡°◞ʖ◟ ͡°)
Сообщений: 542
Первое решение, которое приходит на ум - поставить в центре какую-нибудь express версию коммерческой субд, в которой есть database link, завести в нее все линки и гонять запросы оттуда. С джойнами таблиц из разных источников конечно беда будет, равно как и с прочими ограничениями, которые будут накладывать гетерогенные линки.

Второе решение - посмотреть в сторону ETL / DI систем, мне даже кажется что я видел что-то наподобии информатики в опенсорсе, которая даже SQL интерфейс предоставляла
12 окт 12, 00:19    [13305610]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Gallagher
Member

Откуда: ( ͡°◞ʖ◟ ͡°)
Сообщений: 542
Вспомнил, Talend! Еще был Pentaho Kettle
Вот ссылки - http://en.wikipedia.org/wiki/Enterprise_application_integration (внизу есть список из коммерческого и опенсоурс ПО)
Ну и вот как основная мысль - http://en.wikipedia.org/wiki/Data_integration


автор
голимый merge или hash join и никогда - inner loop

уж больно вы сурово все по полкам раскидали :) в жизни нужны и те, и другие
в конечном итоге, обращение к удаленным табличкам можно интерпретировать как row source generator, а выбор варианта джойна оставить приложению в центре.
12 окт 12, 00:37    [13305661]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
Gallagher
Еще был Pentaho Kettle

Gallagher, спасибо, мне тоже напомнил про приличную вещь.
korisk, +1 к Pentaho Kettle. И инструмент пошире, чем просто требуемый SQL по задаче - так что может пригодиться ещё где-нибудь :).
12 окт 12, 09:44    [13306294]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
milton
Member

Откуда:
Сообщений: 126
Gallagher,

Если разработка на Java, то можно попробовать Teiid
12 окт 12, 11:10    [13306914]     Ответить | Цитировать Сообщить модератору
 Re: Гетерогенный SQL шардинг  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4919
Блог
Есть еще у Oracle вот такая штука Oracle Data Service Integrator - не путать с Oracle Data Integrator. Oracle Data Service Integrato - это в девичестве BEA AquaLogic Data Services Platform. Вот только скорость всех этих танцев будет ужасная, если источники данных используются совместно. Все же базы умеют делать всякие Join гораздо быстрее.
12 окт 12, 23:18    [13311946]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить