The OpenNET Project / Index page

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

СУБД Dolt, позволяющая манипулировать данными в стиле Git

07.03.2021 11:32

Проект Dolt развивает СУБД, сочетающую поддержку SQL со средствами версионирования данных в стиле Git. Dolt позволяет клонировать таблицы, создавать форки и выполнять слияния таблиц, а также выполнять операции push и pull по аналогии с действиями в git-репозитории. При этом СУБД поддерживает SQL-запросы и совместима с MySQL на уровне клиентских интерфейсов. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0.

Возможности по версионированию данных в БД позволяют отслеживать происхождение данных - привязка к коммитам даёт возможность фиксировать состояние для получения идентичных результатов, которые независимо от текущего состояния в любое время могут быть повторены на других системах. Кроме того, пользователи могут перемещаться по истории, отслеживать изменения в таблицах при помощи SQL без необходимости сверки резервных копий, проводить аудит изменений, а также формировать запросы, охватывающие данные в определённый момент.

СУБД предоставляет два режима работы - Offline и Online. После перевода в offline содержимое БД становится доступно как репозиторий, с которым можно выполнять действия с использованием git-подобной утилиты командной строки. Работа во многом напоминает git и отличается главным образом тем, что изменения отслеживаются не для файлов, а для содержимого таблиц. Через предлагаемый CLI-интерфейс можно импортировать данные из файлов в формате CSV или JSON, добавлять коммиты с изменениями, выводить различия между версиями, создавать ветки, устанавливать теги, выполнять push-запросы к внешним серверам и выполнять слияния изменений, предложенных другими участниками.

При желании данные могут размещаться в каталоге DoltHub, который можно рассматривать как аналог GitHub для размещения данных и совместной работы с данными. Пользователи могут создавать форки репозиториев данными, предлагать свои изменения и осуществлять слияния со своими данными. Например, в DoltHub можно найти различные БД со статистикой о коронавирусе, коллекциями аннотированных данных для систем машинного обучения, языковыми лексическими базами, коллекциями изображений, наборами для классификации объектов и информацией о принадлежности IP-адресов.

В режиме "online" запускается Dolt SQL Server, который позволяет манипулировать с данными при помощи языка SQL. Предоставляемый интерфейс близок к MySQL и может использоваться через подключение совместимых с MySQL клиентов или при помощи CLI-интерфейса. При этом Dolt скорее является инструментом для манипулирования данными, чем системой обработки запросов. Например, по умолчанию SQL-сервер может обрабатывать только одно активное соединение пользователя к репозиторию, размещённому в текущей директории (через настройки данное поведение можно изменить). Возможен перевод сервера в режим только для чтения. Многие действия, связанные с управлением версиями, также можно выполнять через SQL, например, совершать коммиты или переключаться между ветками.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Представлена децентрализованная СУБД Noms, основанная на идеях Git
  3. OpenNews: Представлен dgit 1.0, инструмент для работы с архивом Debian в стиле Git
  4. OpenNews: Доступна СУБД EuclidesDB, использующая элементы машинного обучения
  5. OpenNews: Открыт код СУБД MapD Core, использующей GPU для хранения и обработки данных
  6. OpenNews: Релиз СУБД SQLite 3.32. Проект DuckDB развивает вариант SQLite для аналитических запросов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54716-dolt
Ключевые слова: dolt, database, git, sql, mysql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (122) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Msk20 (?), 12:36, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Круто. По крайней мере задумка (хотя бы она).
    Что-то инновационное!
     
     
  • 2.36, Урри (ok), 16:01, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не сказал бы, что это что-то инновационное. Если вам нужна версионность, ее легко реализовать в любой БД просто добавив еще один индекс-столбец "версия" к каждой таблице.

     
     
  • 3.43, tim2k (ok), 17:27, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А если приложение не поддерживает  дополнительный столбец? Очень много систем с закрытым кодом, к сожалению, есть на свете.
     
     
  • 4.46, Annoynymous (ok), 18:40, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так пусть не поддерживает. Мы ему напишем внешнюю нашлёпку, которая по нашему запросу уже будет откатывать данные на нужное нам состояние. А приложение по-прежнему будет считывать те поля, на которые оно запрограммировано.
     
  • 4.50, adolfus (ok), 20:28, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Значит оно не поддерживает и СУБД Dolt. О чем вообще разговор?
     
     
  • 5.108, Аноним (108), 10:34, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Dolt ~= MySQL на уровне протокола
     
     
  • 6.110, ыы (?), 11:18, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И где там вон тот "AS OF" ?
     
  • 3.47, Msk20 (?), 18:42, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Что-то добавлять. к КАЖДОЙ. А таблиц в БД десятки. Менять много. Так что не так уж и легко.
     
     
  • 4.62, ыы (?), 23:42, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А вы думаете как партицирование делается? Не только на каждую таблицу.. а каждую строку...
     
  • 3.51, минона (?), 20:36, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не совсем. Подобный подход позволяет версионифицировать данные в одной таблице.
    Но, как правило, таблиц много, и данные в них связаны. Соответственно, для организации _среза_ данных приходится городить заметно более сложную структуру. Для этого, конечно, новый движок не требуется, достаточно обычного Постгреса. И, конечно, требуется инструмент для конструирования многоэтажных запросов (по опыту, там одних CVE-шек не меньше трех).
     
     
  • 4.63, ыы (?), 23:45, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > для организации _среза_ данных

    мы строим sql  запрос... Зачем перед этим  организовывать физическое присутствие определенных данных?
    Почему нельзя просто делать это тем же sql запросом? Почему надо для этого запроса каждый раз поднимать базу из бэкапа на какоето число или scn??

     
     
  • 5.72, минона (?), 01:00, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возможно, я не совсем понял вопрос, но в системах, для которых нужно манипулиров... большой текст свёрнут, показать
     
     
  • 6.86, ыы (?), 09:08, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это все понятно. И точки зрения академического интереса - можно извернуться... Приведите пример осмысленной задачи решаемой таким образом?
     
     
  • 7.127, B (?), 23:11, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Приведите пример осмысленной задачи решаемой таким образом?

    а это уже троллинг на уровне детсада.

     
  • 3.83, Ordu (ok), 04:16, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эта штука позволяет немного иначе разделить задачи Это не значит, что в ней мож... большой текст свёрнут, показать
     
     
  • 4.106, ыы (?), 09:59, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    прикрутить к git- обертку для запросов на sql?
     
     
  • 5.107, ыы (?), 10:05, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя это конечно чисто извернуться :)

    Штука когда есть набор данных которые надо вот так вот кидать туда сюда- называется коллекция. И необходимость привлечения  git для манипуляций с нею -это как раз пример дурно спроектированной системы с чудовищным оверхедом из за непродуманности.

     
     
  • 6.111, Ordu (ok), 11:36, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет никакой системы, чтобы говорить о проектировании её Это процесс разработки ... большой текст свёрнут, показать
     
  • 3.139, Аноним (139), 12:51, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Чем-то напоминает: если вам нужны версии, просто делайте архивы.
     
  • 2.76, Аноньимъ (ok), 01:33, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да что-то ничего крутого ни в гит ни в "стиле гит" нет. Последние откровенным маразмом попахивает.
    БД на жаваскрипте надеюсь написана?
     

  • 1.4, Kusb (?), 12:40, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вроде не такая сложная идея, но прямо историческая крутость.
     
     
  • 2.13, Gogi (??), 13:59, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Про крутость пока неизвестно Просто сказать у нас версии данных мало, нужно... большой текст свёрнут, показать
     
     
  • 3.70, Синдарин (?), 00:30, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Мы засунули вам абстракцию в абстракцию, чтобы пока вы используете абстракцию, могли получить абстракцию.
     

  • 1.9, Онаним (?), 13:34, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Название настораживает.
    Хотя Go...
     
  • 1.11, Gogi (??), 13:52, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > версионирования данных в стиле Git

    Что за чушь?? Причём тут git вообще? Или вы больше не знаете DVCS? Почему не "в стиле Mercurial"? В чём сходство именно с git? Более того - в чём вообще сходство с DVCS? Может, такая СУБД вообще сродни SVN! Аффтар, не бросайся терминами зазря - сначала выясни вопрос. Это обычная "версионная СУБД", хотя с большим количеством вопросов, "как оно работает". В том смысле, будет ли полезна реализация этой версионности в применении уже к реальным приложениям.

     
     
  • 2.22, RNZ (ok), 14:09, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    https://github.com/dolthub/dolt/blob/master/README.md

    "Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate's changes.

    All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables. It's like Git and MySQL had a baby!"

    Вполне соответствует утверждению "в стиле Git".

     
     
  • 3.45, Аноним (45), 18:31, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >It's like Git and MySQL had a baby!

    Фанфики, которые мы заслужили.

    А по сабжу - если взлетит, то будет интересно послушать трустори про джунов, которые запушили в мастер или щелнули reset --hard где не надо.

     
     
  • 4.49, Аноним (49), 20:18, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем нам сын Git x MySQL, если можно внука (Git x Bitcoin) x MongoDB = OrbitDB?
     
     
  • 5.54, YetAnotherOnanym (ok), 21:39, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мичурин, залогиньтесь.
     
  • 5.77, Аноньимъ (ok), 01:36, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Откуда берутся все эти уроды?
     
     
  • 6.104, ыы (?), 09:48, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сон разума рождает чудовищ (с)
     
  • 2.28, имятакое (?), 14:41, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    стул в пепел?)))
     

  • 1.12, Аноним (49), 13:56, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Без биндингов к питону a-la  SQLite (без клиент-серверного говна, чтобы всё было в одном процессе и потоке) - не нужно.
     
     
  • 2.17, Аноним (17), 14:05, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вообще-то игогошечка был сделан для того чтобы твой бидон прихлопнуть нафиг. И собственно в вебне это и происходит везде, особенно в гугеле.
     
     
  • 3.26, Аноним (49), 14:21, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Совершенно разные вещи. Одна из главных фич всех скриптовых языков - это REPL. А Go - компилируемый, эффективного REPLа там нет и не будет.
     
     
  • 4.29, Аноним (-), 14:51, 07/03/2021 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 4.32, Аноним (32), 15:04, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >А Go - компилируемый, эффективного REPLа там нет и не будет.

    Как это связано? Для Haskell есть REPL, хотя он компилируемый по самое небалуй. Даже для C/C++ этот ваш REPL был на базе LLVM.

     
     
  • 5.40, Аноним (49), 16:38, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я сказал "эффективного". Ты наверное этим REPLом для C++, основанном на устаревшей LLVM (5, когда мой код компилируется Clang 13), не пользовался. Оно и к лучшему, он почти бесполезен, единственный толк от него - когда нужно шаблоны отладить, ибо компилятор такую простыню в сообщениях об ошибках выдаёт (после задержки компиляции), что пожалеешь, что вообще с этими шаблонами и вообще с C++ связался. Repl же отладить шаблоны немного помогает, но крашится часто и память жрёт. Для кода он императивного себя не оправдывает.
     
     
  • 6.60, Аноним (-), 23:15, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Я сказал "эффективного".

    Ну, понимаешь, твоя "эффективность" продакшну очень дорого обходится, сервера бабок стоят. Вот они питонистов и начали уходить. Вплоть до того что вот, крупный продакшн в виде гугла даже свой ЯП расперся сделать. А остальным уже так напрягаться не надо, достаточно програмеров сменить, на игогохе уже изрядо вебманки шпрехает, это не проблема совершенно.

     
     
  • 7.68, ыы (?), 00:13, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая что серверов у гугла как грязи, и сама архитектура построена на идее дешевого сервера но зато быстро заменяемого - сентенция о проблеме несколько странной выглядит...
     
     
  • 8.81, Аноним (81), 03:01, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сервер может быть дешёвым, но датацентры стоят дорого, особенно когда жрут много... текст свёрнут, показать
     
     
  • 9.90, ыы (?), 09:21, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю упрощение труда программиста будет и дальше превалировать над ценой обор... текст свёрнут, показать
     
  • 8.88, Аноним (-), 09:20, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Гонять на том же парке серверов в разы большую нагрузку без докупки дешевых се... текст свёрнут, показать
     
     
  • 9.92, ыы (?), 09:25, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А вы знаете разницу в производительности дешевого сервера и дорогого В пересче... текст свёрнут, показать
     
     
  • 10.128, B (?), 23:17, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    мы знаем, а вам гуглить придется ... текст свёрнут, показать
     
  • 10.129, Аноним (-), 23:43, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В пересчете на ватт еще не забудьте Когда некто оперирует целыми датацентрами, ... текст свёрнут, показать
     
  • 7.85, Аноним (49), 08:37, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это в веб-сервисах. Я же программер на питоне и плюсах программ для десктопа и дейта-саентист. Какие там у Гугла проблемы на хайлоад-серверах, обслуживающих клиентов, меня не очень волнует - мои приложения не обслуживают клиентов и не должны держать тысячи запросов в секунду, главный bottleneck у меня - это диск (потому что я жлоб и SSD брать не буду) и память. Они должны делать свое дело локально.
     
     
  • 8.91, Аноним (-), 09:22, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, питон - таки да, для сайентистов с одноразовыми макетами А для остального ... текст свёрнут, показать
     
  • 4.59, Аноним (-), 23:10, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Совершенно разные вещи. Одна из главных фич всех скриптовых языков - это
    > REPL. А Go - компилируемый, эффективного REPLа там нет и не будет.

    В продакшне видите ли скорость приоритетнее. И черт с ним, с REPLом... нахрен он вебне и микросервисам, по большому счету?

     
     
  • 5.84, CrazyAlex (?), 07:35, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да нахрена он вообще? Та же беда, что и с экспериментами в командной строке шелла - замучаешься контролировать состояние окружения. Поэтому я уже много лет всё мало-мальски сложное шелловское сразу пихаю в файлы, а просто командная строка - это для ps | grep какого-нибудь. И точно так же - никакого REPL, только нормальный файл с исходниками и Makefile рядом по возможности, чтобы повторяемо было, и желательно - не только мной
     
     
  • 6.95, Аноним (-), 09:28, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вон какой-то дата-саентолог вылез Ему может что-то такое и пригодится А ... большой текст свёрнут, показать
     
  • 4.117, RNZ (ok), 14:30, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Совершенно разные вещи. Одна из главных фич всех скриптовых языков - это
    > REPL. А Go - компилируемый, эффективного REPLа там нет и не
    > будет.

    go run ?

    Что значит "эффективный REPL"?
    Вот такой что-ли:
    https://github.com/motemen/gore/raw/master/doc/screencast.gif


     
  • 2.34, Ted (?), 15:35, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А они есть.
    https://github.com/dolthub/doltpy
     
     
  • 3.39, Аноним (49), 16:29, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Он стартует серверный процесс и подключается к нему по сети. Значит будет оверхед на переключение контекста, оверхед на сокет, оверхед на сериализацию, никакого прямого доступа к отображениям в памяти, да ещё и без гарантий завершения сервера, если клиентский процесс упадёт. Поэтому я мультипроцессинг так и не люблю.
     
     
  • 4.61, Аноним (-), 23:18, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Он стартует серверный процесс и подключается к нему по сети. Значит будет
    > оверхед на переключение контекста, оверхед на сокет, оверхед на сериализацию, никакого
    > прямого доступа к отображениям в памяти

    Питон сам тормозной как трактор, так что смысла то все это оптимизировать? Чтобы знатно попахать с результатом близким к нулю?

     
     
  • 5.75, kai3341 (ok), 01:21, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Питон сам тормозной как трактор, так что смысла то все это оптимизировать? Чтобы знатно попахать с результатом близким к нулю?

    Тоже узко. Питон позволяет подключать сишные библиотеки для числодробилок. Если вынести на python логику контроллера (которой овердохера и она часто меняется, но при этом сложной не является), то оверхед будет минимальным (см. профайлер). Если при этом ещё не тупить и использовать asyncio, то процессорное время на python-код будет минимальным

    Я к чему. Не надо забивать гвозди микроскопом

     
     
  • 6.96, Аноним (-), 09:30, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Тоже узко. Питон позволяет подключать сишные библиотеки для числодробилок.

    База данных, наверное, не числодробилка?

    > Я к чему. Не надо забивать гвозди микроскопом

    Да, и используя базу на го логично и бэк на нем же делать, чтоли. А профайлить питон пусть будет кто-нибудь другой. Сами эти фекалии профайльте.

     
  • 4.73, kai3341 (ok), 01:02, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мне даже возразить нечего -- слишком узко мыслите, не поймёте-сс Что делать, ес... большой текст свёрнут, показать
     
     
  • 5.78, Аноньимъ (ok), 01:50, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Смузихлебы способны и не на такое. Это вы тут узко мыслите!
    Нужно все разделить на микросервисы с персональными кешами и кеширующими микросервисами. И тогда взлетит!
     
     
  • 6.80, kai3341 (ok), 02:00, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Смузихлебы способны и не на такое. Это вы тут узко мыслите!
    > Нужно все разделить на микросервисы с персональными кешами и кеширующими микросервисами. И тогда взлетит!

    К -- Конструктивность. Сразу видно -- Инженерище!
    /thread

     
  • 5.87, Аноним (49), 09:16, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Перезапустить Многопроцессность не нужна, у нас bottleneck при импорте - случай... большой текст свёрнут, показать
     
     
  • 6.126, kai3341 (ok), 22:13, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Отлично Опыта работы с БД у вас нет -- иначе вы бы знали, что такой фокус закон... большой текст свёрнут, показать
     
     
  • 7.146, Аноним (146), 10:01, 10/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это только если отключён журнал Отключение журнала повысит производительность, ... большой текст свёрнут, показать
     
     
  • 8.149, kai3341 (ok), 15:03, 11/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это забавный тонкий момент Журнал как раз позволяет восстановить структуру в ав... большой текст свёрнут, показать
     
  • 5.97, Аноним (-), 09:32, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что делать, если пользовательский процесс упадёт с сегфолтом посреди транзакции?

    Актуальная проблема для питонистов, только обычно падает с трехэтажным стектрейсом сам кусок питона, потому что при его кодинге гнали как на пожар и на всякие там отклонения от идеаа клали болт. А если там сеть упала, памяти не хватило или там что еще - УПС.

    И в свете этого - ну не питонистам с их "обработкой ошибок" такими мелочами париться вообще. Понимаю если б сишники какие так зудели еще.

     
     
  • 6.125, kai3341 (ok), 21:18, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Актуальная проблема для питонистов, только обычно падает с трехэтажным стектрейсом сам кусок питона, потому что при его кодинге гнали как на пожар и на всякие там отклонения от идеаа клали болт. А если там сеть упала, памяти не хватило или там что еще - УПС.

    Оказывается, проблема питона в стэктрейсах. Вы их боитесь? Они вас обидели?

    > И в свете этого - ну не питонистам с их "обработкой ошибок" такими мелочами париться вообще. Понимаю если б сишники какие так зудели еще.

    Ярлыки.

     
     
  • 7.130, Аноним (-), 23:47, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Оказывается, проблема питона в стэктрейсах. Вы их боитесь? Они вас обидели?

    Когда все резко и внезапно обламывается с адским стэктрейсом - это неприятно, да. И таки было достаточно неприятного опыта такого плана.

    > Ярлыки.

    Статистические наблюдения.

     

  • 1.14, Аноним (17), 14:03, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего тогда не Golt? :P
     
     
  • 2.133, B (?), 00:44, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    go it != do it
     

  • 1.15, Gogi (??), 14:04, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Сейчас чуть дотошнее прочёл и прям взрыв мозга:

    Клонировать таблицы? Ну, допустим! И ЧТО ДАЛЬШЕ? Как писать запрос?

    SELECT * FROM T(версия 1)
    LEFT JOIN T2(версия 17)

    так шт0ле??
    А если в оригинальную таблицу внесли данные, а в клоне вообще добавили NON-NULL поле - как делать merge? Ведь non-null надо чем-то заполнять! (и молись, если это не FK!)
    Короче, есть серьёзное подозрение, что "версионирование" там настолько убогое, что хватит максимум на "снэпшот" состояния в один момент времени - ну так это и обычный backup делает!

     
     
  • 2.42, Аноним (42), 17:14, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот тоже интересно что-нибудь серьезней обычного bcp они сделали....
     
  • 2.55, YetAnotherOnanym (ok), 21:46, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если идеи, заложенные в эту СУБД, настолько ортогональны всему, что ты когда-то усвоил - скорее всего, это просто не твоё. Не насилуй себя, пройди мимо.
     
     
  • 3.57, ыы (?), 22:44, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скажите пожалуйста, а зачем версионировать таблицы БД "со статистикой о коронавирусе"?
    Мне казалось что версионировать надо данные а не таблицы... Кроме службы безопасности кому это надо? А для службы безопасности есть такая штука как аудит...

    Например есть отчет о состоянии ковид на 1 января... и есть такой же отчет за 5 января. Это разные версии отчета, которые хранятся в виде связанных записей в одной и той же таблице и извлекаются по признаку даты отчета.
    Зачем нужна версия самой таблицы? То есть традиционным способом, мы, чтобы получить отчет за 1 января- должны будем восстановить базу из бэкапа за 2 число? Вместо того чтобы просто сделать выборку по данным по признаку?
    В чем смысл?

     
     
  • 4.64, Аноним (42), 23:55, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это похоже попытка сделать темпоральную БД. Компании разные пыжились но как я погляжу это не взлетело.
     
     
  • 5.66, ыы (?), 00:07, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    InfluxDB называется... Вон работает как лошадь - метрики мониторинга пишет..
     
     
  • 6.74, Аноним (42), 01:19, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Больше имело в виду полностью скуль база. На которой можно делать всё тоже самое, но ещё и выбирать в какой момент времени делать запрос. Инфлюкс с этим как-то не очень.
     
     
  • 7.94, ыы (?), 09:28, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >выбирать в какой момент времени делать запрос

    зачем?

     
     
  • 8.113, Аноним (42), 11:39, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Затем же зачем и всё остальное - упростить работу Всё в одной таблице а заморач... текст свёрнут, показать
     
  • 4.71, YetAnotherOnanym (ok), 00:44, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А почему нельзя при изменении одной ячейки считать всю таблицу со старым значени... большой текст свёрнут, показать
     
     
  • 5.98, ыы (?), 09:33, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это все элементарно делается уже имеющимися технологиями.
     
     
  • 6.116, YetAnotherOnanym (ok), 14:30, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Доски тоже можно прикреплять деревянными штырьками, забивая их булыжником. Но гвозди и молоток лучше.
     
     
  • 7.143, Аноним (-), 16:25, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Но гвозди и молоток лучше.

    Именно так, всякие dolt и прочие булыжники не нужны.

     

  • 1.18, Аноним (18), 14:05, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Интересно, что у БД есть история с 2016 года. И до 2018 года ей занимались абсолютно другие люди https://github.com/dolthub/dolt/graphs/contributors, которые сейчас не состоят в команде https://www.dolthub.com/team
    А текущая команда появилась в конце 2018 и продолжила работу над уже существующим проектом и судя по всему тогда и появился бренд DoltDB (2018-11-30 дата регистрации домена).
     
  • 1.35, Иваня (?), 15:45, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    О, что-то интересное, да ещё и на Golang. Спасибо большое!
     
  • 1.41, DIO (?), 16:42, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    с одной стороны инт. , а с другой стороны "аназачем"? ну вот реально а на зачем?! ради интереса или профита то да но вот где это использовать и реальное практическое применение какое? при разработке софта есть миграции и откаты и т.д. работает (касательно структуры), касательно данных никто бекапы не отменял. Смешение технологий конечно оригинально но сильно непонятен смысл т.е. с какой проблемой столкнулись что натолкнуло на создание сего , чего не хватало. т.е. вариантов аналогичного решения типа SQL + что-то (тут варианты в зависимости от задачи и нужного результата) есть. Всунутое в один стакан навевает на большую нестабильность системы в целом. Пожуем увидим...
     
     
  • 2.48, Kusb (?), 19:49, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Распределённый Интернет, не нужно быть постоянно связанным всеми со всем миром.

     

  • 1.52, anonimous (?), 20:37, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    dictionary.cambridge.org › dictionary › english › dolt

    dolt definition: 1. a stupid person 2. a stupid person.

     
     
  • 2.79, Аноньимъ (ok), 01:56, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я понял, это шутку к 1му апреля готовят.
     
     
  • 3.131, Аноним (-), 23:48, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Я понял, это шутку к 1му апреля готовят.

    Не, ну а чего? Разработчики честны относительно аудитории. У го и на логотипе, видите ли, хомячок.

     

  • 1.53, Аноним (53), 21:26, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Here we go again
     
  • 1.56, Аноним (56), 22:24, 07/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сначала я подумал "о, круто, какая свежая идея", а потом подумал ещё и понял, что фигня. И вот почему.

    Откат в любой базе данных подразумевает откат на некое консистентное состояние, в котором бизнес (именно бизнес!) транзакции завершены и подтверждены. Ну там платежка например ушла в банк и есть подтверждение, что она принята в работу. Или платежка точно не ушла и не уйдёт автоматически, если случится откат на предыдущий бэкап.

    Чтобы решить эту задачу, не нужно городить никаких (псевдо) гитов, это делается логикой самого приложения.

     
     
  • 2.58, ыы (?), 22:54, 07/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне вот тоже непонятно  чем выборка по актуальному признаку при физическом отсутствии лишних данных (состояние базы в некий момент времени) лучше выборки тем же данным при наличии еще других данных в таблице?

    Ну кроме размера области поиска конечно :)

     
     
  • 3.93, Crazy Alex (ok), 09:26, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Допустим, у вас датасет плюс-минус один, но может пополняться. А состояний, в которых он используется - много, и часть из них можно обновить, часть - нет. В приложении это реализовать можно, но здесь это уже сделали за вас, ещё и внешние инстурменты управления дали.

    Для всяких исследований со статистикой мне это сходу нравится, выше про датасеты для нейронок вон упоминали... вот что-то подобное.

     
     
  • 4.101, ыы (?), 09:35, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А состояний, ... - много,

    Это просто дурно спроектированная база данных и ветер в консерватории программиста написавшего систему.

     
  • 2.82, Ordu (ok), 03:53, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Сначала я подумал "о, круто, какая свежая идея", а потом подумал ещё и понял, что фигня. И вот почему.

    Угу, и git не нужен, потому что бизнесу он бесполезен.

     
     
  • 3.100, Аноним (-), 09:35, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Угу, и git не нужен, потому что бизнесу он бесполезен.

    После того как я увидел ТОПА ТРАНСНАЦИОНАЛЬНОЙ КОРПОРАЦИИ сцуко регающегося на гитхабе с аргументом "там тусуется много кастомеров и они используют это!" - я в этом почему-то совсем не уверен.

     
  • 3.120, Аноним (56), 16:29, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы уж сами придумали Тут проблема не в конкретном гите, а в том, что будет ... большой текст свёрнут, показать
     
     
  • 4.121, Ordu (ok), 17:11, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Узкой области применений Data science растёт как на дрожжах, и я бы не назва... большой текст свёрнут, показать
     
     
  • 5.134, Аноним (56), 01:26, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > С форком вообще я не вижу никаких проблем даже потенциально

    Сообщение набрано и отправлено, квиток от внешней системы ещё не получен, и тут, опачки, форк. Квиток приходит в другую ветку. Восстановили предыдущее состояния, а там квитка нет, и сообщение уехало второй раз. А на той стороне муфлоны его провели дважды, и списали, например вместо двух миллионов денег четыре. Ахрененно.

    Я ж говорю, всё это хорошая вещь, но для специфических применений. Ну вот накидали в базу картинок и вертим туда сюда. Испортить довольно сложно, когда это вещь в себе. Но чтоит подвязать внешние взаимодействия...

     
     
  • 6.136, Ordu (ok), 04:07, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> С форком вообще я не вижу никаких проблем даже потенциально
    > Сообщение набрано и отправлено, квиток от внешней системы ещё не получен, и
    > тут, опачки, форк. Квиток приходит в другую ветку. Восстановили предыдущее состояния,
    > а там квитка нет, и сообщение уехало второй раз. А на
    > той стороне муфлоны его провели дважды, и списали, например вместо двух
    > миллионов денег четыре. Ахрененно.

    То же самое будет и с сорцами в git, ежели ты, проводя серию связанных изменений, форкнешь сорцы посередине серии, и продолжишь серию в одной из веток. В другой будут скорее всего некомпилируемые сорцы. Это фича, а не баг.

     
     
  • 7.137, Аноним (56), 09:06, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    От форков сорцов в гит ни горячо, ни холодно, потому что это никак не влияет на реальность.
     
     
  • 8.138, Ordu (ok), 09:15, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты про реальность, с точки зрения бизнеса Когда программист потратил рабочий де... текст свёрнут, показать
     
     
  • 9.144, Аноним (56), 17:30, 09/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    От того, что у программиста не компилируется, реальности пофигу ... текст свёрнут, показать
     
     
  • 10.145, Ordu (ok), 00:03, 10/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    От того, что проводки не проводятся реальности тоже пофигу ... текст свёрнут, показать
     
     
  • 11.147, Аноним (56), 09:04, 11/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, интересно, как будет брызгать слюною конкретный Ordu, когда его платежи ... текст свёрнут, показать
     
     
  • 12.148, Ordu (ok), 11:03, 11/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Всегда меня озадачивало, как люди могут жить в своём информационном пузырьке и н... текст свёрнут, показать
     
  • 2.89, Crazy Alex (ok), 09:21, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Речь не об однократном откате, а о том, что для разных ситуаций "правильное" (консистентное, конечно) состояние - разное.

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

    Вот идея в том, чтобы эту логику (видать относительно чатсо используемую в каких-то контекстах)  вытащить вовне, а не делать каждый раз в приложении. А заодно - дать возможность нормально это администрировать извне - приложение может вообще не знать, что там за форки (благо, оно ещё и mysql-совместимое).

     
     
  • 3.103, ыы (?), 09:38, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > особого криминала не вижу
    > проводим какие-то статистические исследования или там психологию - батареи тестов, тупящие респонденты,

    При исследовании -  подмена данных ради хорошего результата- это все таки криминал :)

     
     
  • 4.112, Ordu (ok), 11:39, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Без этой подмены ничего не работает. В сыром датасете всегда куча мусора. И его надо вычищать. Другое дело, что, если по-хорошему, это всё должно документироваться и описываться, чтобы читающие результаты исследования могли бы сами судить, насколько эта чистка повлияла на результат.
     
     
  • 5.132, Аноним (-), 23:52, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Без этой подмены ничего не работает. В сыром датасете всегда куча мусора.

    "Если факты не подтверждают теорию, от них нужно избавиться!" (cледствие из законов мерфи)

     
  • 4.124, CrazyAlex (?), 19:53, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, всегда есть первичная обработка - выкинуть сильные выбросы, явный мусор в ответах и подобное.

    Во-вторых речь не о подгонке, а о том, что ты, допустим, собрал какой-то набор, стал обрабатывать, отдал кому-то результаты на посмотреть, тут тебе тормоза анкеты приволокли, ты их в датасет добавил - хочется иметь удобные средства переключения между тем, что уже обработано и обновлённым набором. Потом следующая пачка пачка пришла - ты их добавил в базу, смержил - и легко переключаешься между отдельными наборами и общим. И так далее. В общем, простота манипуляций - это хорошо.

     

  • 1.65, Аноним (65), 00:01, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идея интересная, но чем в данном случае будет merge OK, допустим это слияние дв... большой текст свёрнут, показать
     
  • 1.67, ыы (?), 00:11, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне кажется, что база данных, в которой определенный scn или момент времени имеет значение большее чем точка отката на бэкап - это дурно спроектированная база данных.
     
     
  • 2.99, Crazy Alex (ok), 09:33, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это если вы там бахгалтерию или регистрантов на сайте храните. А для исследований разных - отличная идея.

    Для навороченных многоголовых коллекций (фотографии те же) - то же - то, что доктор прописал. Ну там - взял в базе фото теги для конкретной съёмки, добавил другие, пару-тройку выкинул и назвал это "выставка Х" - и у тебя осталась последовательность того, что делал чтобы этот наборчик получить. А потом когда захотел сделать "лучшее с выставок" - можешь проследить когда и как ты на эти выставки работы отбирал.

     
     
  • 3.102, ыы (?), 09:36, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/

    По моему это придумывание задач под забавную игрушку попавшую в руки...
     

  • 1.69, ыы (?), 00:16, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >При этом Dolt скорее является инструментом для манипулирования данными, чем системой обработки запросов

    У приличных баз данных есть такая штука как флэшбек... И от шо я скажу- если вам часто надо делать флэшбек- вы чтото в принципе делаете неправильно...

     
  • 1.105, ыы (?), 09:50, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати, а почему они не написали с точностью до наоборот - прикрутить к git- обертку для запросов на sql?
     
     
  • 2.109, ыы (?), 10:49, 08/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да именно так:
    берем обычный немодифицированный git (любой)
    берем обычный немодифицированный postgresql (mssql, oracle)
    берем драйвер к git
    и линкуем нашу базу на postgresql к сырым данным на git.
    вот собственно и все... обычная связка для интеграции. Если очень хочется...
     

  • 1.114, Прохожий (??), 12:54, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Написано на Go. Как это чудо будет вести себя под высокими нагрузками с большим количеством пользователей, интересно. Там же GC всё тормозить будет нещадно, как это случилось у дискорда, например.


    И ещё. Как уже заметили, у приличных СУБД есть flashback - та же версионность по большому счёту. Так в чём, собственно, новшество?

     
  • 1.118, msgod (ok), 14:49, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему не на блохчлене?
    Даешь гит овер блохчлен субд.
     
  • 1.119, Аноним (119), 15:43, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Манипулировать данными... это всегда хорошо.
     
  • 1.122, Аноним (122), 18:47, 08/03/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я помню, что хотел такую штуку написать, но уже не помню зачем.
     

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



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

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