All streams
Search
Write a publication
Pull to refresh
4
0
Виктор Езерский @Mapar

User

Send message

Инструкция рабочая, по ней собрать получилось. Спасибо.

Не хватает шага: pacman -S git

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

А так ребенка при наличии современных игр заставить программировать тяжело. Попробуйте что то игровое, типа упомянутого в статье lego mindstorm.

Школа номер 66. Там в 1984 году появилась ЭВМ Искра 226 (https://ru.wikipedia.org/wiki/Искра_226). Потом появилась одна ДВК-2, а в конце 80х класс MSX.

Информатики как таковой не было, ЭВМ появилась в качестве эксперимента для планирования расписания, ну и был кружок. Преподаватели были замечательные, вплоть до того что когда мы готовились к олимпиаде по программированию, нам завуч просто давал ключи от кабинета с ЭВМ без взрослого контроля. Ну и тусовка была странная от 5 класников до 10 класников, человек 5.

Насколько я помню по гордским школьным олипиадам по программированию (да они проводились в Омске регулярно в 80х), что-то типа СМ 1420 было в 64 матшколе в те же времена. Ну и был с 1986 года кружок программирования в пединституте, там были Ямахи (MSX) и Агат (что на на 6502)

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

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

Еще детальнее:

  1. готовим a_tmp

  2. старую партицию a1 отключаем/удаляем

  3. новую подключаем с ТЕМ ЖЕ FOR VALUES

  4. переименовываем a_tmp в a1, на пользователей не влияет, они работают с A

  5. Ключ партиционирования можно взять любую колонку в таблице, например id, а лучше дату операции (тогда сможем выделить несколько партиций и ускорится), ступора у оптимизатора не будет, даже если нет ключа партиционирования в запросе, не придумывайте

    Attach partition именно способ для быстрой замены данных, а не пополнения.

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

Придут люди вам на замену и будут разбираться с экзотическим кодом.

Извините, но вы видимо не поняли:

Есть таблица A, она партиционирована, скажем партиции A1 и A2 (можно и одну партицию A1, что бы был ваш случай). Все приложения работают с A и про партиции ничего не знают, оптимизатор сам решает какие партиции брать для запроса.

Теперь готовим отдельно таблицу A3, индексируем ее, далее отключаем/удаляем скажем A1 и подключаем A3. Пользователи как работали с A, так и работают, никаких кастомных скриптов, штатные DETACH PARTITION и ATTACH PARTITION.

Зачем представление и дополнительная таблица мне не понятно.

Партиционирование и подключение/отключение партиций это стандартный паттерн для DWH, зачем изобретать велосипед с переименованием таблиц мне не понятно.

А собственно почему нельзя просто партиционировать таблицу, и удалять а затем подключать новые партиции рассчитаные заранее?

Мы же говорим про DWH, как же там без партиционирования?!

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

Для приложения ничего не меняется, все блокировки PostgreSQL сам сделает

Ну я в DIS не работаю, как я понял, с их слов, они официально лицензировали ядро включая исходники, так что Информатика в курсе.

Если убрать эмоции, то я с Вами согласен:

  1. DV имеет проблемы в MPP и на очень больших хранилищах (нужно прорабатывать партиционирование/шардирование, хотя есть реализации на том же GP, Яндекс регулярно докладывает)

  2. DV требует материализации в плоские витрины (ну так это же не все хранилище а просто слой из которого собираются витрины)

  3. DV пихают везде, не понимая его преимуществ и недостатков.

Итого, мое мнение: DV всем не нужен. Применяя DV, Вы должны понимать, что вы теряете, и что от этого получите. Самое смешное, но DV в последнее время требуют заказчики (им не нужно просто хранилище им подавай фреймворк), и их зачастую приходится отговаривать.

НО, там где он подходит, и заказчик готов платить за разработку фреймворка и за лишние вычислительные ресурсы, DV существенно сокращает time2market.

Тут все сложнее. Все же Informatica шла в правильном направлении там и оффлоад появлялся. Но конечно ODI на голову выше продукт, 2 года назад я бы однозначно рекомендовал его.

Вы абсолютно правильно подметили, что DIY не дает Data Lineage.

В FormIT Plus7 от DIS Group именно лицезированное ядро Informatica, так что это именно информатика под другим названием.

Полностью с Вами согласен по поводу особенностей и недостатков Data Vault. Все грамотно описано.

Но надо четко понимать, для чего нужен Data Vault:

  1. Полное версионирование хранилища (отсюда выделение SAT как SCD машина). Т.е. возможность увидеть данные как они были N дней назад.

  2. Динамическое развитие/изменение хранилища, добавление новых связей, работа по agile (представьте что вам надо в звезде Кимбала добавить измерение) (отсюда выделение связи в LINK)

И Data Vault используют если Вы готовы пожертвовать местом/удобством и скоростью работы хранилища ради двух вышеуказанных преимуществ.

И да, Data Vault ТРЕБУЕТ автоматического фреймворка, делать Data Vault руками - бред и самоубийство, я про это уже писал (https://habr.com/ru/companies/jetinfosystems/articles/721950/)

На нашем опыте, СТРОГО при наличии фреймворка, Data Vault дает преимущество по скорости развития хранилища (time2market) в 1.5-2 раза, с учетом наличии требования по версионированию данных.

Не делайте Data Vault если у Вас нет требования по версионированию и нет (не планируете создавать) автоматического фреймворка.

Порядок букв важен ELT - это труба и трансформация на отдельном сервере, ET-L - нет. Архитектурно это разные паттерны.

Ну собственно говоря вендоры ушли (кроме Informatica), об этом в статье прямо говорится. Так что выбора особо то и нет.

При этом я по прежнему считаю, что архитектурно подход ODI на порядок лучше, чем все что я видел в области ETL/ELT-T. Если кто из росийских разработчиков повторит идею - будет крайне интересно. Там сумасшедшая скорость разработки, DYI рядом не валялся.

Преимущество или недостаток работы с вендорам можно отнести к холиварной теме и не хочу спорить.

Что касается DV прокомментировал ниже Ваш пост.

P.S. Я автор статьи.

Тоже лет 5 как перешел на Sql Developer.
Проблему зависания как решать описал выше.


К плюсам могу отнести:


  • отличная работа с планами запросов (можно например сравнить планы и увидеть чем отличаются, различия выделяются красным)
  • аналог set autotrace on также с возможностью сравнения статистки разных версий запросов
  • встроенные data modeler (ER диаграммы, генерация Oracle кода для конкртеной версии, реверс инжениринг)
  • куча утилит по экспорту импорту, захвату DDL и прочее
  • нормальный монитор сессий
  • sql monitor (мониторинг запроса в стадии выполнения)
  • отличный отладчик
  • наличие плагина для unwrap
  • интеграция с git (нужна не для коммитов, а что бы посмотреть различия от предыдущих версий)

Отдельными фишками выделю не профильные для разработчика вещи:


  • нормальный DBA раздел с мониторингом а ля Quest Software, AWR и ASH
  • встроенный мини репортинг модуль, можно сделать простенькие отчеты и использовать их для типовых запросов

Это не проблема sql developer, это проблема Oracle JDBC Thin Driver. Он не умеет cancel запросов до того как он верну хотя бы одну запись. Как лечить: поставить Oracle сlient и использовать thick JDBC драйвер/OCI. После настройки — запросы прерываются в любой момент, ничего не подвисает.


Как настроить можно почитать например здесь: https://www.thatjeffsmith.com/archive/2019/04/sql-developer-19-1-connections-thick-or-thin/

Было бы не плохо, подсветить, что из этого появилось именно в 12 версии.
Я, на вскидку, вижу только FK на партиционированную таблицу.
Мне кажется, тут еще важным аспект, что раньше была иерархия: локальная популярность в городе, затем популярность в стране, а потом в мире.
Эта иерархия фильтровала, и на весь мир совсем мусор не вылазил.
А теперь, все доступно всем, фильтров нет, в результате в потоке льется куча откровенно вторичного и слабого.

Information

Rating
Does not participate
Location
Россия
Registered
Activity