Более того, в некоторых интерпретаторах \w отлично мэтчит кириллицу и остальные наборы буквенных символов, что в условиях того языка, на котором мы тут общаемся, очень удобно. Городить аналог для юникода как раз испортит читаемость
Для обращений к API и обработки данных довольно давно существует встроенный PowerQuery, неплохо документированный и не громоздкий, намного более читаемый в сравнении с VBA, т.к. функциональный подход в обработке данных позволяет проследить логику. Решение с добавлением питона в таком костыльном виде непонятно для кого: энтерпрайз должен вырезать из соображений безопасности, для себя можно самому поставить локальный питон и делать в нем что надо. Создание каких-то формочек в экселе? Это скорее для контор, где "программист", системный администратор, сетевик и электрик - одно лицо, умеющее пользоваться VBA, чтобы собрать что-нибудь на коленке, и питон ему ни к чему, ну только чтобы быть в тренде и похвастаться знакомым.
При обмене производится переназнаение на уровне сегментов: сегмент, относящийся к таблице, заменяется сегментом, относящимся к партиции. В связи с этим все характеристики сегмента для подмененного наследуются с таблицы. Если, например, в имени тейблспейса есть какая-то логика, то нужно аккуратно создавать промежуточную таблицу.
Начиная с версии 12.2 можно подготовить таблицу с нужной структурой используя инструкцию `for exchange with table` команды `create table`.
После операции `exchange [sub]partition` данные никуда физически не удаляются (см. пункт 2): они начинают относиться к промежуточной таблице: https://dbfiddle.uk/sGnmqhB1
You should avoid writing the top level code which is not necessary to create Operators and build DAG relations between them. This is because of the design decision for the scheduler of Airflow and the impact the top-level code parsing speed on both performance and scalability of Airflow.
Specifically you should not run any database access, heavy computations and networking operations.
Как альтернатива - хранить код as is в Git и считывать его при выполнении таска
не требуется никакого дополнительного UI
проверенная и 100% рабочая версионность
управление жизненным циклом и весь сопутствующий воркфлоу по внесению изменений
при добавлении нового KPI вместо инсерта в табличку добавляется скрипт и ID метрики в генератор дагов - то, что Вы получаете селектом можно заимпортить как нативный Python-объект/dict из файла настроек метрики
Для управления всем из одной точки с версии 2.3.0 можно использовать dynamic task mapping. В смепленные таски передавать нужные sql-запросы и идентификаторы, а управление поручить запускаемому каждые N минут DAGу. Для определения, какие метрики считать в конкретном запуске, а какие нет, можно использовать поставляемый из коробки croniter.
Запрос в эксперименте 2 вернёт не то: если Петров и Коршун вообще ничего не покупали, то запрос вернёт пустое множество, а необходимо получить все товары. Предикат `NOT EXISTS`, можно сказать, является "дословным переводом" условия и решает задачу, а попытки собрать это же из джоина как минимум запутают. А по теме: если при обучении SQL заранее не закладывать в голову условность про равенство, а сразу использовать термины "предикат" или "условие" (которое может быть любым, лишь бы давало в результате True/False), как это делается в документации к большинству СУБД, то и проблема решается сама собой.
Договор на оказание услуг заключается же не с владельцем домена, а с юрлицом. В договоре на сайте указан исполнитель: "ООО ОБЛАЧНЫЕ ТЕХНОЛОГИИ". Уставный капитал - 5.6 млрд рублей. Но вопросики по поводу размещения данных на ресурсах за этим доменом, конечно, возникнут.
Parent/child это только частный случай графа. Как правило, для графовых задач узлы (ребра) могут быть объектами разного класса и иметь разные наборы свойств. Это, конечно, можно уложить в реляционную модель, но это будет нецелевое использование реляционной СУБД. Для таких вещей есть более подходящие модели хранения (и свои QL).
Как-то тема отказа от Docker/Airflow/K8s не раскрыта. Если поднимаем локальный Postgres, то почему бы не инсталлировать точно так же Docker и далее по мануалу на странице официального образа? До уровня "оно работает" как правило референсной страницы достаточно. Поскольку наш условный аналитик умеет в Python для написания пусть и не сложного управляющего процесса, у него не должно составить большого труда подключить это же в самый простой DAG в AirFlow (который может быть запущен также в контейнере) по Quick Start Guide. Но он получает гораздо больше вариантов мониторинга, перезапуска, управления датами из расписания, а не от today (а ведь 100% что-то будет падать периодически), визуализации зависимостей. При числе объектов больше 20 это будет несколько проще, чем просто голый код. Для T части в ETL на SQL как начальный вариант - dbt. Он имеет возможность строить модель, запускать обновление данных по зависимостям, визуализировать их из коробки.
А сериализация/десереализация данных в JSON бесплатная? Был простой и понятный запрос, стало что-то, в чем необходимо разбираться. Сколько выиграли? Про now(), вызванный 10 млн раз, тоже не показано, насколько сократится время.
Поскольку для третьего варианта не указано, сколько записей лога может быть между Quantity и Pick_something, один regex на "все сразу" вызовет необходимость считывать все содержимое целиком, хотя задача явно потоковая, надо просто хранить стейт.
Находим значение Quantity простой регуляркой и всегда перезаписываем текущим значением.
Находим Pick_something как и раньше и выдаём на выход Quantity и аргументы (тут же можно встроить проверки данных при необходимости).
Обнуляем Quantity и найденные аргументы и наяинаем с пункта 1 со следующей строки лога, пока не дойдем до конца.
В моменте в программе достаточно обрабатывать одну строку лога и не писать монструозные регексы с опциями
Потому что есть некоторые стандартные бизнес-процессы, которые нужно настроить и дописать свои костыли, а не реализовывать с нуля. И аудиторы +- понимают, куда надо смотреть и чему доверять (если, конечно, SAP использовать по назначению, а не как платформу для написания велосипедов своего учёта рядом). Для публичных компаний это не менее важно, чем TCO, и уж тем более, чем комфорт конкретного разработчика.
Более того, в некоторых интерпретаторах \w отлично мэтчит кириллицу и остальные наборы буквенных символов, что в условиях того языка, на котором мы тут общаемся, очень удобно. Городить аналог для юникода как раз испортит читаемость
Для обращений к API и обработки данных довольно давно существует встроенный PowerQuery, неплохо документированный и не громоздкий, намного более читаемый в сравнении с VBA, т.к. функциональный подход в обработке данных позволяет проследить логику. Решение с добавлением питона в таком костыльном виде непонятно для кого: энтерпрайз должен вырезать из соображений безопасности, для себя можно самому поставить локальный питон и делать в нем что надо. Создание каких-то формочек в экселе? Это скорее для контор, где "программист", системный администратор, сетевик и электрик - одно лицо, умеющее пользоваться VBA, чтобы собрать что-нибудь на коленке, и питон ему ни к чему, ну только чтобы быть в тренде и похвастаться знакомым.
Несколько замечаний по тексту про Oracle:
Все же документация находится по адресу docs.oracle.com.
При обмене производится переназнаение на уровне сегментов: сегмент, относящийся к таблице, заменяется сегментом, относящимся к партиции. В связи с этим все характеристики сегмента для подмененного наследуются с таблицы. Если, например, в имени тейблспейса есть какая-то логика, то нужно аккуратно создавать промежуточную таблицу.
Начиная с версии 12.2 можно подготовить таблицу с нужной структурой используя инструкцию `for exchange with table` команды `create table`.
После операции `exchange [sub]partition` данные никуда физически не удаляются (см. пункт 2): они начинают относиться к промежуточной таблице: https://dbfiddle.uk/sGnmqhB1
Такой дизайн плохо масштабируем. На основании документации:
Как альтернатива - хранить код as is в Git и считывать его при выполнении таска
не требуется никакого дополнительного UI
проверенная и 100% рабочая версионность
управление жизненным циклом и весь сопутствующий воркфлоу по внесению изменений
при добавлении нового KPI вместо инсерта в табличку добавляется скрипт и ID метрики в генератор дагов - то, что Вы получаете селектом можно заимпортить как нативный Python-объект/dict из файла настроек метрики
Для управления всем из одной точки с версии 2.3.0 можно использовать dynamic task mapping. В смепленные таски передавать нужные sql-запросы и идентификаторы, а управление поручить запускаемому каждые N минут DAGу. Для определения, какие метрики считать в конкретном запуске, а какие нет, можно использовать поставляемый из коробки croniter.
Запрос в эксперименте 2 вернёт не то: если Петров и Коршун вообще ничего не покупали, то запрос вернёт пустое множество, а необходимо получить все товары. Предикат `NOT EXISTS`, можно сказать, является "дословным переводом" условия и решает задачу, а попытки собрать это же из джоина как минимум запутают. А по теме: если при обучении SQL заранее не закладывать в голову условность про равенство, а сразу использовать термины "предикат" или "условие" (которое может быть любым, лишь бы давало в результате True/False), как это делается в документации к большинству СУБД, то и проблема решается сама собой.
Договор на оказание услуг заключается же не с владельцем домена, а с юрлицом. В договоре на сайте указан исполнитель: "ООО ОБЛАЧНЫЕ ТЕХНОЛОГИИ". Уставный капитал - 5.6 млрд рублей. Но вопросики по поводу размещения данных на ресурсах за этим доменом, конечно, возникнут.
В Windows есть WSL и есть дотнет с объектами в PowerShell. Так что да, сдвинулись. Но обычный cmd, конечно, "несколько хуже", мягко говоря
Parent/child это только частный случай графа. Как правило, для графовых задач узлы (ребра) могут быть объектами разного класса и иметь разные наборы свойств. Это, конечно, можно уложить в реляционную модель, но это будет нецелевое использование реляционной СУБД. Для таких вещей есть более подходящие модели хранения (и свои QL).
Как-то тема отказа от Docker/Airflow/K8s не раскрыта. Если поднимаем локальный Postgres, то почему бы не инсталлировать точно так же Docker и далее по мануалу на странице официального образа? До уровня "оно работает" как правило референсной страницы достаточно. Поскольку наш условный аналитик умеет в Python для написания пусть и не сложного управляющего процесса, у него не должно составить большого труда подключить это же в самый простой DAG в AirFlow (который может быть запущен также в контейнере) по Quick Start Guide. Но он получает гораздо больше вариантов мониторинга, перезапуска, управления датами из расписания, а не от today (а ведь 100% что-то будет падать периодически), визуализации зависимостей. При числе объектов больше 20 это будет несколько проще, чем просто голый код. Для T части в ETL на SQL как начальный вариант - dbt. Он имеет возможность строить модель, запускать обновление данных по зависимостям, визуализировать их из коробки.
А сериализация/десереализация данных в JSON бесплатная? Был простой и понятный запрос, стало что-то, в чем необходимо разбираться. Сколько выиграли? Про now(), вызванный 10 млн раз, тоже не показано, насколько сократится время.
Поскольку для третьего варианта не указано, сколько записей лога может быть между Quantity и Pick_something, один regex на "все сразу" вызовет необходимость считывать все содержимое целиком, хотя задача явно потоковая, надо просто хранить стейт.
Находим значение Quantity простой регуляркой и всегда перезаписываем текущим значением.
Находим Pick_something как и раньше и выдаём на выход Quantity и аргументы (тут же можно встроить проверки данных при необходимости).
Обнуляем Quantity и найденные аргументы и наяинаем с пункта 1 со следующей строки лога, пока не дойдем до конца.
В моменте в программе достаточно обрабатывать одну строку лога и не писать монструозные регексы с опциями
Потому что есть некоторые стандартные бизнес-процессы, которые нужно настроить и дописать свои костыли, а не реализовывать с нуля. И аудиторы +- понимают, куда надо смотреть и чему доверять (если, конечно, SAP использовать по назначению, а не как платформу для написания
велосипедовсвоего учёта рядом). Для публичных компаний это не менее важно, чем TCO, и уж тем более, чем комфорт конкретного разработчика.