Соединение таблиц с Envision
Когда речь идет об оптимизации цепей поставок, важно учитывать возникающие проблемы, сводя к минимуму искажения реальности, которые могут возникнуть в процессе. Инструменты должны воспринимать задачу такой, какая она есть, а не искажать её, чтобы она соответствовала возможностям инструментов.
Два года назад мы представили Envision — специализированный язык, созданный специально для работы с невероятно разнообразными ситуациями в цепях поставок. С первого дня Envision предлагал программную выразительность, что было значительным шагом вперед по сравнению с традиционными инструментами для цепей поставок. Однако эта гибкость всё же была ограничена исходной точкой зрения самого Envision на данные о цепях поставок.
Несколько месяцев назад мы представили универсальный механизм JOIN в Envision. Теперь Envision больше не ограничен натуральными объединениями, как было изначально, и предоставляет возможность обрабатывать гораздо более широкий спектр табличных данных. В цепях поставок произвольное объединение таблиц особенно полезно для решения сложных сценариев, таких как мультиисточниковость, односторонние совместимости, мультиканальность и т.д.
Для тех, кто уже знаком с SQL, объединение таблиц кажется довольно элементарной операцией; однако в SQL сочетание сложных числовых вычислений с объединением таблиц быстро приводит к появлению исходного кода, который выглядит запутанным и многословным. Более того, объединение больших таблиц также вызывает ряд проблем с производительностью, которые необходимо тщательно решать либо путем корректировки самих SQL-запросов, либо путем настройки самой базы данных через введение табличных индексов.
Одна из ключевых целей разработки Envision заключалась в отказе от некоторых возможностей SQL в обмен на гораздо меньшие затраты на кодирование при решении задач оптимизации цепей поставок. В результате первоначальный Envision был основан исключительно на натуральных объединениях, что практически устранило накладные расходы на кодирование, связанные с операциями JOIN, как это обычно делается в SQL.
Однако у натуральных объединений есть ограничения, и мы преодолели их, внедрив синтаксис left-by в Envision. С помощью выражений left-by становится возможным объединять произвольные таблицы внутри Envision. Внутренне Envision заботится о создании оптимизированных индексов, чтобы вычисления оставались быстрыми даже при работе с гигантскими файлами данных.
С чисто синтаксической точки зрения, left-by является незначительным дополнением к языку Envision, однако с точки зрения цепей поставок эта функция значительно повысила возможности Lokad по работе с самыми сложными ситуациями.
_Если у вас нет в штате специалиста по данным, который также является экспертом по цепям поставок, у нас он есть. Lokad предоставляет комплексное обслуживание, где мы берем на себя реализацию вашего решения для цепей поставок.