The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступны IvorySQL 4.0 и SynchDB 1.0, надстройки к PostgreSQL для взаимодействия с другими СУБД

29.12.2024 10:57

Опубликован выпуск проекта IvorySQL 4.0, развивающего редакцию СУБД PostgreSQL, обеспечивающую совместимость с приложениями, рассчитанными на работу с СУБД Oracle. В IvorySQL заявлена возможность работы в качестве прозрачной замены последней версии PostgreSQL, отличие от которой сводится к появлению настройки "compatible_db", включающей режим совместимости с Oracle. Код написан на языке Си и распространяется под лицензией Apache 2.0.

IvorySQL реализует процедурный язык PL/iSQL, повторяющий синтаксис PL/SQL в Oracle, поддерживает пакеты в стиле Oracle и операции с пакетами, такие как "CREATE PACKAGE". Предоставляется совместимый с Oracle набор функций и типов, а также поддерживается специфичный для Oracle синтаксис операций, выражений и операторов, таких как ALTER TABLE, DELETE, UPDATE, CONNECT BY (иерархические запросы), GROUP BY, UNION и MINUS.

В новой версии:

  • Выполнен переход на кодовую базу PostgreSQL 17.
  • Добавлена поддержка невидимых столбцов, позволяющих скрыть определённые столбцы для упрощения миграции на новые приложения (невидимые столбцы показываются только при явном указании их имени и не отображаются в общих запросах вида "SELECT * FROM").
  • Добавлены возможности для управления пакетами PL/SQL, позволяющие создавать пакеты, менять их параметры и прикреплять описание. В psql для операции с пакетами добавлена новая команда "\dk".
  • Повышена производительность работы с пакетами PL/SQL и добавлена поддержка кэширования пакетов.
  • Предложены новые функции ACL для управления привилегиями в привязке к пакетам PL/SQL.
  • Добавлена поддержка расширения pg_get_functiondef с реализацией функций pg_get_functiondef(), pg_get_functiondef(OID, VARIADIC OID[]) и pg_get_functiondef(VARIADIC TEXT[]), позволяющих получить определения функций на основе указанного списка имён функций.
  • Добавлены установочные пакеты для Ubuntu.



Дополнительно можно отметить релиз расширения SynchDB 1.0, предназначенного для репликации в PostgreSQL данных из одной или нескольких сторонних СУБД, таких как MySQL, MS SQLServer и Oracle. Подобные внешние СУБД выступают источниками данных, которые напрямую переносятся в одну целевую БД на базе PostgreSQL, без использования дополнительных прослоек для оркестровки процесса синхронизации данных (все операции синхронизации обрабатываются расширением SynchDB). Код проекта написан на языках Си и Java, и распространяется под лицензией Apache 2.0. SynchDB 1.0 отмечен как первый стабильный релиз проекта.

Система включает в себя шесть компонентов:

  • Debezium Runner Engine - движок на Java, предоставляющий модули для обработки потоков изменений данных из различных СУБД (MySQL, MS SQLServer и Oracle) и трансляции полученных данных в универсальном формате JSON.
  • SynchDB Worker - запускает экземпляры Debezium Runner Engine для репликации данных из конкретных СУБД, принимает от них изменения в формате JSON и передаёт в модуль Format Converter.
  • SynchDB Launcher - создаёт и завершает работу обработчиков SynchDB, используя API PostgreSQL для запуска фоновых процессов.
  • Format Converter - разбирает поток изменений в формате JSON, преобразует сторонние типы данных и DDL-запросы в типы и запросы, совместимые с PostgreSQL.
  • Replication Agent - обрабатывает вывод в формате HeapTupleData из Format Converter и запускает методы для подстановки данных в PostgreSQL.
  • Table Synch Agent (в разработке) - предоставляет эффективный метод начальной синхронизации таблиц.


  1. Главная ссылка к новости (https://www.postgresql.org/abo...)
  2. OpenNews: Релиз СУБД PostgreSQL 17
  3. OpenNews: Уязвимость в PostgreSQL, позволяющая выполнить код с правами рабочего процесса
  4. OpenNews: Выпуск pg_ivm 1.6, реализации инкрементального обновления представлений для PostgreSQL
  5. OpenNews: В CVE опубликованы отчёты о ложных уязвимостях в curl, PostgreSQL и других проектах
  6. OpenNews: Первый стабильный выпуск FerretDB, реализации MongoDB на базе СУБД PostgreSQL
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62483-ivorysql
Ключевые слова: ivorysql, synchdb, postgresql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Аноним (6), 13:02, 29/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    А не бояздно, что орки скажут, что синтаксис и семантика PL/SQL есть их "интеллектуальная собственность" как результат их креативности?
     
     
  • 2.8, Аноним (8), 13:13, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Их подобный выпад в сторону Java потерпел фиаско.
     
     
  • 3.12, Аноним (6), 13:55, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Именно что "подобный". За Dalvik стоял не менее сильный игрок. Тут же мелкая конторка. Вы же понимаете, что lawsuitы - это не более чем война на истощение. Кто больше связей потянет и бабла завезёт - тот и выигрывает. С Гуглом не фартануло - это не значит, что против мелкой конторки не фартанёт. Вон, у Take Two и Nintendo фартануло не смотря на полную нелепость их исков.
     
     
  • 4.23, Аноним (23), 15:13, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы сабж извлекал какую-то прибыль то можно было бы пободаться, а тут какой-то опенсорс с платой за поддержку. Ну такое.
     
     
  • 5.31, Аноним (31), 17:28, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > с платой за поддержку

    это и есть прибыль, лол

     

  • 1.7, ptr (ok), 13:11, 29/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в универсальном формате JSON

    При обилии числовой информации - не лучший вариант. Тот же Protobuf очень заметно выигрывает у JSON. В случае Kafka у нас получилось, что в разы. При этом proto предоставляет возможности расширения, где через option можно указывать SQL типы данных для полей. Например, для DECIMAL это может быть очень важно.

     
     
  • 2.9, нах. (?), 13:15, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если ты присмотришься повнимательней - там в самом конце - "format converter"

    потому что постгрезу нужен ни разу вот не json (и protobuf он тоже парсить не умеет)

    Поэтому есть ровно одна причина его использования - они нашли готовую библиотечку. А готовую библиотечку для готового формата pgsql - не нашли.

     
     
  • 3.14, ptr (ok), 14:09, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > если ты присмотришься повнимательней - там в самом конце - "format converter"

    И к чему лишние конвертации?

    > потому что постгрезу нужен ни разу вот не json (и protobuf он
    > тоже парсить не умеет)

    А это и не нужно PostgreSQL. Главное, что Protobuf умеет из коробки парсить Debezium.

    > Поэтому есть ровно одна причина его использования - они нашли готовую библиотечку.
    > А готовую библиотечку для готового формата pgsql - не нашли.

    Про то и речь, что вместо того, чтобы пойти наболее эффективным путем, пошли путем наименьшего сопростивления.

     
     
  • 4.15, нах. (?), 14:23, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так у них на входе в хранилище - ТОЖЕ json - который эти воркеры затем старательно конвертят в постгрезный sql. Я йаво слепила - из того что было, короче.

     
  • 2.10, Аноним (8), 13:18, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://ru.wikipedia.org/wiki/EBML
     
  • 2.11, User (??), 13:20, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А смысл не использовать с кафкой avro?
     
     
  • 3.13, ptr (ok), 14:06, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Во-первых, Protobuf более универсален. Собственно говоря именно поэтому Confluent добавил его поддержку. Такие стандартные(!) конструкции Protobuf, как package, option, extend, service и т.п. существенно расширяют его область применения.
    Во-вторых, когда кроме Kafka используется gRPC, это нередко позволяет избежать лишних десериализации и сериализации. Запихивать же Avro в потоковый gRPC - так себе идея.
     
     
  • 4.18, User (??), 14:54, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, grpc пожалуй, аргумент па в остальном ну, такое. И avro-тулинг вокруг именно кафки развесистый, и со schema-based сериализацией работать прям сильно более удобно/гибко чем персборкой proto на каждый чих страдать...
     
     
  • 5.32, ptr (ok), 17:55, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И avro-тулинг вокруг именно кафки развесистый

    Вот только он какой-то сильно Java ориентированный. Указать разные классы обработки кастомных типов для Java, Go, C#, Rust и C++ стандартными средствами невозможно. А когда это указывается не стандартными средствами, то через какое-то время получается Фарнкенштейн.

    > и со schema-based сериализацией работать прям сильно более
    > удобно/гибко чем персборкой proto на каждый чих страдать...

    Protobuf не обязан компилироваться. Да, рефлексия иногда удобна и повышает производительность. Но совсем не обязательна к применению.
    Посмотрите на тот же Confluent/Debezium. Всё замечательно работает из коробки без пересборок. Достаточно публикации очередной версии схемы protobuf в schema registry.

     
  • 4.21, Аноним (23), 15:09, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Велосипедостроение на ровном месте. И велосипед ради велосипеда.
     
     
  • 5.33, ptr (ok), 17:59, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Велосипедостроение на ровном месте. И велосипед ради велосипеда.

    Согласен. Можно взять готовые коннекторы (Debezium connect + Sink) и гнать всё через Kafka. Дополнительно требовалось лишь добавить свои конверторы там, где это необходимо. Ну или воспользоваться потоками kSQLDB.

     

  • 1.16, Аноним (16), 14:23, 29/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А зачем вообще нужна эта совместимость? Oracle - это же легаси, от которого все стараются избавиться. Или это решение для тех, кто застрял в прошлом веке и не хочет переписывать свои PL/SQL-портянки?

     
     
  • 2.17, CICI (?), 14:29, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    НЕ ВСЕ И НЕ ВЕЗДЕ.
     
  • 2.19, Аноним (23), 15:05, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Новости из параллельной реальности.
     
  • 2.20, Прохожий (??), 15:07, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Oracle - это же легаси, от которого все стараются избавиться

    Самая популярная реляционная СУБД в мире с самой богатой функциональностью - легаси?

     
     
  • 3.22, Аноним (23), 15:10, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не обращайте внимания у нас там в комментариях ненормальный. Проходим мимо, здесь не на что смотреть.
     
  • 3.26, Аноним (26), 15:57, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    винда тоже самая популярная ОС на десктопе. как это противоречит тому, что все от неё пытаются избавиться, даже сами мс?
     
     
  • 4.40, Прохожий (??), 03:04, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Речь шла не о том, кто от чего пытается избавиться. Речь шла о том, что считать легаси. А так, чем бы энтузиасты не тешились, абы не плакали.
     
  • 3.27, freebzzZZZzzd (ok), 16:23, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Самая популярная реляционная СУБД

    а на втором месте небось мускуль? и вообще это места в каких-то рунических магических квадрантах в головах эффективных распильщиков?

     
     
  • 4.29, Аноним (23), 17:16, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты как всегда прав, мой юный друг.
    1. Oracle
    2. MySQL
    3. Microsoft SQL Server
    4. PostgreSQL
    5. MongoDB
     
  • 3.28, Andrey (??), 16:26, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    По какому рейтингу? По количеству бабла, вытягиваемого с клиентов?
     
     
  • 4.41, Прохожий (??), 03:05, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не завидуйте.
     
  • 3.37, ss (??), 21:12, 29/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Оракл не ведет деятельности на территории РФ. Если дял вас это что-то говорит. Так что не просто легаси от которого хотят избавится- а опасное дно, которое тянет и не дает развиваться.
     
     
  • 4.42, Прохожий (??), 03:08, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Если дял вас это что-то говорит

    Мне на это плевать. Речь не об этом шла.

    > Так что не просто легаси

    Вы понимаете, что такое легаси вообще? Это морально устаревший софт. Даже при очень большом желании СУБД от Оракл нельзя назвать морально устаревшей.

     
  • 3.44, Аноним (44), 23:20, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще-то legacy - это не "устаревшая" система, а унаследованная система, которая может быть и не устаревшей, но требующей замены.

    Да, Oracle DB - самая удобная и безотказная OLTP база данных в Мире, но пути Oracle (развивавшейся под крылом гос. структур США) и России разошлись теперь навсегда. Это факт, с которым трудно спорить. В России Oracle DB больше не будет, а тем где она есть ее заменят на другие СУБД.

     
     
  • 4.45, Аноним (45), 21:46, 31/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >навсегда

    ничего себе апломб, вы часом не сотрудник постгрипро?

     

  • 1.25, Аноним (25), 15:42, 29/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Когда же добавят совместимость с SQLite?
     
  • 1.38, chdlb (?), 22:53, 29/12/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нахуа и зачем это все? это король костылей, хотя SSIS тоже так появился
     
     
  • 2.39, Аноним (25), 01:34, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, вдруг у тебя твоя приложуха крутилась на Оракуле, а ВНЕЗАПНО ты решил всю свою инфраструктуру перенести на ПГ.
    Что бы не переписывать все сразу на соединения с ПГ, ты можешь переписать на подобие ораклового синтаксиса крутящегося на ПГ.
    Вроде как и совместимость  с легаси оракловыми запросами сохранил,
    заодно и стал бета-тестером, для отлавливания непонятных ошибок в этой прослойке.
     
     
  • 3.43, chdlb (?), 08:45, 30/12/2024 [^] [^^] [^^^] [ответить]  
  • +/
    если тебе надо чтобы оно было онлайн постоянно, то правильнее на какое-то время прикрутить XA Transactions и тригера, иначе не факт что получишь конситентное состояние в целовой БД, а если не надо то перенести можно чем хочешь
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру