RU2683690C1 - Method and system for automatic generation of a program code for an enterprise data warehouse - Google Patents
Method and system for automatic generation of a program code for an enterprise data warehouse Download PDFInfo
- Publication number
- RU2683690C1 RU2683690C1 RU2017146232A RU2017146232A RU2683690C1 RU 2683690 C1 RU2683690 C1 RU 2683690C1 RU 2017146232 A RU2017146232 A RU 2017146232A RU 2017146232 A RU2017146232 A RU 2017146232A RU 2683690 C1 RU2683690 C1 RU 2683690C1
- Authority
- RU
- Russia
- Prior art keywords
- data
- metadata
- update
- program code
- warehouse
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY
[1] Данное техническое решение, в общем, относится к области вычислительной техники, а в частности к системам и способам автоматической генерации программного кода для корпоративного хранилища данных.[1] This technical solution, in General, relates to the field of computer technology, and in particular to systems and methods for automatically generating program code for a corporate data warehouse.
УРОВЕНЬ ТЕХНИКИBACKGROUND
[2] Аналитические хранилища данных в настоящее время становятся необходимым атрибутом для корпораций, работающих с большими объемами данных, и служат для выявления и создания новых финансовых инструментов, сопровождения имеющихся, контроля и выявлений проблем учета, создания новых и коррекции работающих финансовых стратегий.[2] Analytical data warehouses are now becoming a necessary attribute for corporations working with large volumes of data and are used to identify and create new financial instruments, maintain existing ones, control and identify accounting problems, create new and correct working financial strategies.
[3] Источником данных для таких систем практически всегда являются разнородные системы, обслуживающие как фронт-офисные системы, представляющие лицо корпорации перед клиентами, так и бэк-офисные приложения, осуществляющие финансовый учет. Кроме того очень часто хранилища также хранят и мидл-офисные данные для анализа своей работы. Таким образом, источником данных для корпоративного хранилища являются сотни систем, постоянно меняющиеся в соответствии с требованиями развития бизнеса.[3] The data source for such systems is almost always heterogeneous systems serving both front-office systems that represent the corporation's face to customers and back-office applications that carry out financial accounting. In addition, very often storages also store middle office data to analyze their work. Thus, the data source for corporate storage is hundreds of systems that are constantly changing in accordance with the requirements of business development.
[4] В таких условиях создание четкой однотипной системы для сбора данных в единой модели является необходимым требованием для получений актуальных и достоверных данных, поступающих из исходных систем.[4] Under such conditions, the creation of a clear uniform system for collecting data in a single model is a necessary requirement for obtaining relevant and reliable data coming from the source systems.
[5] Из уровня техники известен патент № US 6604110 B1 «Automated software code generation from a metadata-based repository», патентообладатель: International Business Machines Corp, дата публикации: 31.10.2000. В данном техническом решении раскрывается способ предоставления исполняемого программного кода для использования в приложении управления модели данных предприятия (EDM), который передает данные из одного или нескольких источников данных в базу данных приложений EDM, для использования в них в ответ на пользовательские команды.[5] Patent No. 6604110 B1, “Automated software code generation from a metadata-based repository”, patent holder: International Business Machines Corp, publication date: 10/31/2000 is known from the prior art. This technical solution discloses a method for providing executable program code for use in an enterprise data model (EDM) management application that transfers data from one or more data sources to an EDM application database for use in response to user commands.
[6] Данное изобретение работает только в интерактивном режиме в ответ на команды пользователя, что требует определенных трудозатрат и влияет на скорость работы. Более того, данное изобретение предоставляет только исполняемый код, что значительно сужает возможности технического решения и не предоставляет сценарии или метаданные, на основании которых в режиме исполнения эти метаданные будут определять сценарий выполнения.[6] This invention only works interactively in response to user commands, which requires a certain amount of labor and affects the speed of work. Moreover, this invention provides only executable code, which significantly reduces the possibilities of a technical solution and does not provide scripts or metadata, based on which in execution mode these metadata will determine the execution script.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[7] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.[7] This technical solution is aimed at eliminating the disadvantages inherent in existing solutions known from the prior art.
[8] Технической проблемой (или технической задачей) в данном техническом решении является осуществление автоматической генерации программного кода для корпоративного хранилища данных.[8] The technical problem (or technical problem) in this technical solution is the implementation of automatic generation of program code for a corporate data warehouse.
[9] Техническим результатом, проявляющимся при решении вышеуказанной технической проблемы, является повышение стабильности работы алгоритмов детального слоя и витрин данных, а также уменьшение количества инцидентов в хранилище данных.[9] The technical result manifested in solving the above technical problem is to increase the stability of the algorithms of the detailed layer and data marts, as well as to reduce the number of incidents in the data warehouse.
[10] Дополнительным техническим результатом является повышение эффективности работы хранилища данных и сокращение времени на выполнение типовых операций для аналитиков за счет использования метаданных и шаблонов обновления данных.[10] An additional technical result is to increase the efficiency of the data warehouse and reduce the time it takes to perform standard operations for analysts through the use of metadata and data update templates.
[11] Дополнительно повышается скорость мигрирования данных на другую платформу за счет переиспользования метаданных и шаблонов данных.[11] Additionally, the speed of data migration to another platform is increased due to the reuse of metadata and data templates.
[12] Указанный технический результат достигается благодаря осуществлению способа автоматической генерации программного кода для корпоративного хранилища данных, в котором получают метаданные, описывающие настройку механизмов трансформации данных для их загрузки на уровень детального слоя и расчета витрин хранилища данных; формируют по меньшей мере один шаблон обновления данных детального слоя и витрины данных хранилища данных; осуществляют генерацию программного кода для загрузки данных в детальный слой хранилища и расчета витрин данных на основе полученных метаданных и сформированного шаблона обновления данных; устанавливают сгенерированный на предыдущем шаге программный код на среду хранилища данных для выполнения загрузок; осуществляют переиспользование метаданных обновления детального слоя и витрин данных.[12] The specified technical result is achieved through the implementation of a method for automatically generating program code for a corporate data warehouse, in which metadata is obtained that describes the configuration of data transformation mechanisms for loading them to the level of the detailed layer and calculation of data warehouse windows; forming at least one data update pattern for the detail layer and data store data storefronts; generating code for loading data into a detailed storage layer and calculating data marts based on the obtained metadata and the generated data update template; install the code generated in the previous step on the data warehouse environment to perform downloads; reuse metadata updates of the detailed layer and data marts.
[13] В некоторых вариантах осуществления метаданные хранятся в таблицах реляционной базы данных.[13] In some embodiments, metadata is stored in tables in a relational database.
[14] В некоторых вариантах осуществления метаданными являются описание структур таблиц, взаимосвязей между ними, правил секционирования, описание витрин данных.[14] In some embodiments, metadata is a description of table structures, relationships between them, partition rules, description of data marts.
[15] В некоторых вариантах осуществления метаданные являются константными и расчетными.[15] In some embodiments, the metadata is constant and calculated.
[16] В некоторых вариантах осуществления метаданные размещаются в форме поколоночной структуры объектов и их первичных ключей в базе данных.[16] In some embodiments, the metadata is placed in the form of a string-like structure of objects and their primary keys in a database.
[17] В некоторых вариантах осуществления шаблон обновления данных описан в S2T-файле.[17] In some embodiments, a data update pattern is described in an S2T file.
[18] В некоторых вариантах осуществления дополнительно при осуществлении генерации программного кода получают лог работы, который включает все входные макропеременные, а также трассировочный файл.[18] In some embodiments, additionally, when generating program code, a work log is received that includes all macro input variables as well as a trace file.
[19] В некоторых вариантах осуществления осуществляют пере использование метаданных обновления детального слоя и витрин данных за счет внесения дельты изменений в S2T файл.[19] In some embodiments, reuse of the update metadata of the detail layer and data marts is performed by making delta changes to the S2T file.
[20] В некоторых вариантах осуществления переиспользование метаданных обновления детального слоя и витрин данных осуществляют путем переключения базовых шаблонов обновления.[20] In some embodiments, reuse of the update metadata of the detail layer and data marts is accomplished by switching basic update patterns.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[21] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:[21] The features and advantages of the present invention will become apparent from the following detailed description of the invention and the accompanying drawings, in which:
[22] На Фиг. 1 показан пример осуществления способа автоматической генерации программного кода для корпоративного хранилища данных;[22] In FIG. 1 shows an example implementation of a method for automatically generating program code for an enterprise data warehouse;
[23] На Фиг. 2 показана архитектура области хранения данных базы данных корпоративного хранилища;[23] In FIG. 2 shows the architecture of a corporate storage database storage area;
[24] На Фиг. 3 схематично показана логическая структура и ETL-процессы построения единого семантического слоя;[24] In FIG. Figure 3 schematically shows the logical structure and ETL processes of constructing a single semantic layer;
[25] На Фиг. 4 показана схема вычисления суррогатных ключей;[25] In FIG. 4 shows a circuit for calculating surrogate keys;
[26] На Фиг. 5 показан полный путь автоматической генерации программного кода.[26] In FIG. Figure 5 shows the full path for automatic code generation.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
[27] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной системы (АС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[27] This technical solution can be implemented on a computer, in the form of an automated system (AS) or a machine-readable medium containing instructions for performing the above method.
[28] Техническое решение может быть реализовано в виде распределенной компьютерной системы.[28] The technical solution can be implemented as a distributed computer system.
[29] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[29] In this solution, a system means a computer system, a computer (electronic computer), CNC (numerical control), PLC (programmable logic controller), computerized control systems, and any other devices that can perform a given, well-defined sequence of computing operations (actions, instructions).
[30] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[30] A command processing device is understood to mean an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
[31] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[31] An instruction processing device reads and executes machine instructions (programs) from one or more data storage devices. Data storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs), and optical drives.
[32] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[32] A program is a sequence of instructions for execution by a computer control device or an instruction processing device.
[33] Ниже будут описаны термины и понятия, необходимые для осуществления настоящего технического решения.[33] The terms and concepts necessary for the implementation of this technical solution will be described below.
[34] ETL (от англ. Extract, Transform, Load - «извлечение, преобразование, загрузка») - один из основных процессов в управлении хранилищами данных, который включает в себя: извлечение данных из внешних источников; их трансформация и очистка, чтобы они соответствовали потребностям бизнес-модели; и загрузка их в хранилище данных.[34] ETL (from Eng. Extract, Transform, Load - “extraction, transformation, loading”) is one of the main processes in managing data warehouses, which includes: extracting data from external sources; transforming and refining them to fit the needs of the business model; and loading them into the data warehouse.
[35] S2T - файл формата Excel, содержащий информацию обо всех преобразованиях данных предметной области, которая подлежит ETL разработке.[35] S2T is an Excel file containing information about all data transformations of the subject area, which is subject to ETL development.
[36] Суррогатные ключи - набор метаданных, определяющих правила создания первичных ключей хранилища данных, а также правила преобразования от естественных ключей исходных данных к первичным ключам хранилища.[36] Surrogate keys - a set of metadata that defines the rules for creating primary keys of a data warehouse, as well as the rules for converting from natural keys of source data to primary keys of a warehouse.
[37] Естественный ключ - набор атрибутов описываемой записью сущности, уникально ее идентифицирующий (например, номер паспорта для человека).[37] A natural key is a set of attributes of an entity described by a record that uniquely identifies it (for example, a passport number for a person).
[38] Детальный слой - набор таблиц определенной физической области хранилища данных, который является финальным слоем для ETL процессов и которые содержат все бизнес данные хранилища предметной области.[38] A detailed layer is a set of tables of a specific physical area of a data warehouse, which is the final layer for ETL processes and which contain all the business data of the data warehouse.
[39] Метаданные - служебная информация решения, описывающая настройки механизмов и результаты работы подсистем интеграции данных, хранилища данных и аналитического приложения (например, информация о загруженных файлах).[39] Metadata - service information of the solution that describes the settings of the mechanisms and the results of the operation of the data integration subsystems, data warehouse and analytical application (for example, information about downloaded files).
[40] Фреймворк ETL - программное обеспечение в серверном исполнении, управляющее и загружающее данные из внешних систем в хранилище данных.[40] The ETL framework is server-based software that manages and downloads data from external systems to a data warehouse.
[41] Семантический слой - набор физических и виртуальных витрин данных, предоставляющих данные модели FSLDM в преобразованном виде в соответствии с назначением конкретной витрины.[41] The semantic layer is a set of physical and virtual data marts that provide FSLDM model data in a transformed form in accordance with the purpose of a particular storefront.
[42] Витрина данных (англ. Data Mart; другие варианты перевода: хранилище данных специализированное, киоск данных, рынок данных) - срез хранилища данных, представляющий собой массив тематической, узконаправленной информации, ориентированный, например, на пользователей одной рабочей группы или департамента.[42] Data showcase (Data Mart; other translation options: specialized data warehouse, data kiosk, data market) - a data warehouse slice, which is an array of thematic, narrowly focused information, oriented, for example, to users of one working group or department.
[43] OLAP - технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу. Реализации технологии OLAP являются компонентами программных решений класса Business Intelligence.[43] OLAP is a data processing technology consisting in the preparation of summary (aggregated) information based on large data arrays structured according to a multidimensional principle. Implementations of OLAP technology are components of business intelligence class software solutions.
[44] Патч (англ. patch // - заплатка) - информация, предназначенная для автоматизированного внесения определенных изменений в компьютерные файлы и базы данных.[44] Patch / - patch) - information intended for the automated introduction of certain changes to computer files and databases.
[45] Способ автоматической генерации программного кода для корпоративного хранилища данных, показанный на Фиг. 1, осуществляют следующим образом.[45] The method for automatically generating program code for an enterprise data warehouse, shown in FIG. 1 is carried out as follows.
[46] Шаг 101: получают метаданные, описывающие настройку механизмов трансформации данных для их загрузки на уровень детального слоя и расчета витрин хранилища данных;[46] Step 101: obtain metadata describing the setup of data transformation mechanisms for loading them onto the level of the detailed layer and calculation of data store windows;
[47] В корпоративном хранилище данных 200, показанном на Фиг. 2, зафиксирована четкая система этапов загрузки и преобразования данных из внешних автоматизированных систем, сопровождающаяся единым протоколированием выполнения всех этапов, динамическим и статическим распараллеливанием и возможностью восстановления в случае сбоя с любого места загрузки.[47] In the
[48] Метаданные являются важной частью архитектуры хранилища данных 200. Метаданные - это данные, описывающие правила, по которым функционирует хранилище. Например, с точки зрения базы данных хранилища, метаданными является описание структур таблиц, взаимосвязей между ними, правил секционирования, описание витрин данных и т.п. С точки зрения ETL, метаданными являются описания правил извлечения и преобразования данных, периодичность выполнения ETL-процессов и т.п.[48] Metadata is an important part of the
[49] В некоторых вариантах осуществления метаданные корпоративного хранилища 200 включают:[49] In some embodiments,
- информацию о данных, находящихся в хранилище, их бизнес-описание и структуру хранения;- information about the data in the storage, their business description and storage structure;
- описание структур источников данных, как внешних, так и внутренних, их доступности;- a description of the structures of data sources, both external and internal, their availability;
- информацию о структуре процессов ETL, периодичности их выполнения, применяемых правил очистки и преобразования данных;- information on the structure of ETL processes, the frequency of their implementation, the applicable rules for cleaning and transforming data;
- описание представления данных, помогающее пользователю работать с В1-приложением;- a description of the data presentation that helps the user to work with the B1 application;
- информацию о настройках безопасности, правил аутентификации и назначенных прав доступа;- information about security settings, authentication rules and assigned access rights;
- статистику утилизации ресурсов, обращений к данным и др., которая помогает администратору оптимизировать работу базы данных хранилища.- statistics on the utilization of resources, data access, etc., which helps the administrator optimize the operation of the warehouse database.
[50] В некоторых вариантах осуществления управление метаданными осуществляется отдельными инструментами для каждого из компонентов хранилища. Например, для базы данных Oracle, метаданные которой хранятся в системных таблицах и настроечных файлах, данным инструментом является Oracle Enterprise Manager.[50] In some embodiments, metadata management is performed by separate tools for each of the storage components. For example, for an Oracle database whose metadata is stored in system tables and configuration files, this tool is Oracle Enterprise Manager.
[51] В некоторых вариантах осуществления метаданные могут храниться в специальных таблицах PostgreSQL.[51] In some embodiments, metadata may be stored in special PostgreSQL tables.
[52] В качестве метаданных могут использоваться атрибуты, которые являются параметрами, позволяющими управлять ETL-процессом. В некоторых вариантах осуществления метаданные, и соответственно атрибуты могут быть константными и расчетными. Значения константных атрибутов не зависят от результатов предыдущих загрузок данных в хранилище. Расчетные атрибуты, являются переменными значениями, зависящими от результатов предыдущих ETL-загрузок. Значения атрибутов могут заноситься в структуры ETL через веб-интерфейс. Такими атрибутами могут быть режим загрузки (например, архивный, инкрементальный), версия спецификации загрузки, порядковый номер инкрементальной загрузки, нижняя граница выгрузки для каждой загружаемой сущности и т.п.[52] Attributes can be used as metadata, which are parameters that allow managing the ETL process. In some embodiments, metadata, and therefore attributes, can be constant and calculated. The values of constant attributes do not depend on the results of previous data loads into the storage. The calculated attributes are variable values that depend on the results of previous ETL downloads. Attribute values can be entered into ETL structures via the web interface. Such attributes can be the loading mode (for example, archived, incremental), the version of the loading specification, the serial number of the incremental loading, the lower unloading limit for each loaded entity, etc.
[53] В качестве метаданных могут использоваться статистики, которые являются сохраняемыми во время ETL-процесса значениями, которые можно использовать для вычисления расчетных атрибутов в последующих процессах. Значения статистик могут сохраняться в таблицах средствами хранимых процедур реляционной базы данных. В качестве реляционной СУБД может использоваться такая как MySQL, PostgreSQL или Oracle, не ограничиваясь.[53] Statistics can be used as metadata, which are values stored during the ETL process that can be used to calculate calculated attributes in subsequent processes. Statistics values can be stored in tables using the stored procedures of a relational database. As a relational DBMS can be used such as MySQL, PostgreSQL or Oracle, but not limited to.
[54] В некоторых вариантах осуществления изобретения метаданные размещаются в форме поколоночной структуры объектов и их первичных ключей в базе данных. Эти данные могут быть представлены либо в виде табличного представления и/или в виде электронных таблиц Excel, и/или в любой реляционной БД.[54] In some embodiments of the invention, the metadata is placed in the form of a string structure of objects and their primary keys in a database. This data can be presented either in the form of a tabular presentation and / or in the form of Excel spreadsheets, and / or in any relational database.
[55] Метаданные получают из первичных внешних систем 230 данных и загружают в область 210 временного хранения данных (Фиг. 2).[55] Metadata is obtained from the primary
[56] Область 210 временного хранения данных является промежуточным слоем между внешними источниками данных и областью постоянного хранения, в которой находится детальный слой и витрины данных. В данной области сохраняются извлеченные из внешних источников данных (СУБД, csv, dbf, xml файлов, web-сервисов и т.д.) данные, производится их очистка, трансформация, обогащение, подготовка к загрузке в область 220 постоянного хранения. Зачастую очередной цикл обработки и загрузки данных в хранилище не может быть начат пока не будут извлечены все необходимые данные из различных внешних источников данных, а в силу ряда причин (географической распределенности, разных циклов функционирования систем и т.п.) данные в источниках могут быть доступны в разные моменты по времени. Область 210 временного хранения служит для сбора всех необходимых данных перед началом трансформации.[56] The
[57] Шаг 102: формируют, по меньшей мере, один шаблон обновления данных детального слоя и витрины данных хранилища данных;[57] Step 102: generating at least one data update template for the detail layer and data store data storefront;
[58] Детальный слой является основной корпоративного хранилища данных. В этой области хранятся преобразованные и очищенные детальные данные, полученные из внешних систем 230 и источников данных, и основные классификаторы. Данная область содержит следующие типы сущностей: справочники и классификаторы; сущности, содержащие фактические значения; сущности, описывающие связи.[58] The detail layer is the primary corporate data warehouse. In this area, transformed and cleared detailed data obtained from
[59] Справочники и классификаторы могут определять следующую информацию:[59] Directories and classifiers may define the following information:
- участников основных бизнес-процессов - клиентов, поставщиков, филиалы, услуги, продукты и т.п.;- participants in the main business processes - customers, suppliers, branches, services, products, etc .;
- базовые справочники - дата и время, валюта, страны и т.п.;- basic directories - date and time, currency, countries, etc .;
- прочие справочники - отражающие потребности бизнеса в необходимой аналитике данных, определяющие в разрезе каких справочников необходимо анализировать фактические данные.- other directories - reflecting the needs of the business in the necessary data analytics, determining in the context of which directories it is necessary to analyze the actual data.
[60] Сущности, содержащие фактические значения, - транзакционные данные из внешних систем 230 и источников данных. Например, информация о совершенных платежах клиентов, выставленных счетах, проводках и т.п.[60] Entities containing actual values are transactional data from
[61] Сущности, содержащие связи, определяют взаимосвязи между всеми остальными сущностями. Например, связь может быть следующей: клиент-услуга-банк.[61] Entities containing relationships define relationships between all other entities. For example, the connection may be as follows: client-service-bank.
[62] Витрины данных являются объектами хранения аналитической информации, нацеленными на поддержку конкретных бизнес-функций, конкретных подразделений компании. На уровне базы данных витрины обычно реализуются по схеме «звезда» или «снежинка» и содержат данные из области детального слоя. Также витрины данных могут быть реализованы в виде многомерного OLAP-куба. Витрины данных являются основой, обеспечивающей возможность проведения многомерного анализа (OLAP) данных. В корпоративном хранилище данных 200 детальный слой и витрины данных располагаются в области 220 постоянного хранения данных (Фиг. 2).[62] Data marts are objects of storage of analytical information aimed at supporting specific business functions, specific departments of the company. At the database level, storefronts are usually implemented according to the “star” or “snowflake” scheme and contain data from the area of the detailed layer. Also, data marts can be implemented as a multidimensional OLAP cube. Data marts are the foundation for multi-dimensional data analysis (OLAP). In the
[63] Осуществление преобразований метаданных и обрамление их в хранимые процедуры, реализуется с помощью шаблонов обновления данных, работающих по типу java run-time подстановок, аналогично Apache Jakarta Project, где такая техника использовалась как основа шаблона Model-View Controller для web-приложений. Правила преобразования могут храниться в поколоночном представлении. Эти данные могут быть представлены в виде табличного представления и/или в виде электронных таблиц Excel, и/или в любой реляционной БД.[63] Implementation of metadata transformations and their framing into stored procedures is implemented using data update templates that work like java run-time substitutions, similar to the Apache Jakarta Project, where this technique was used as the basis for the Model-View Controller template for web applications. Conversion rules can be stored in a layout view. This data can be presented in the form of a table view and / or in the form of Excel spreadsheets, and / or in any relational database.
[64] В некоторых вариантах осуществления шаблоном обновления данных является шаблон SQL-процедуры.[64] In some embodiments, the data update pattern is an SQL procedure pattern.
[65] В данном техническом решении используется стратегия обновления данных детального слоя и витрин данных, которая представляет собой способ записи исходного набора данных в формате таблицы детального слоя в таблицу детального слоя, в результате чего решается задача выстраивания истории.[65] This technical solution uses the strategy of updating the data of the detailed layer and data marts, which is a way of writing the original data set in the format of the detailed layer table to the detailed layer table, as a result of which the problem of building the history is solved.
[66] В отличие от способов форматирования исходных данных в формат детального слоя (слой В → слой N), шаблон обновления данных (слой N → слой Т) полностью стандартен, и может быть описан в S2T-файле посредством указания названия стратегии обновления и ее параметров в виде шаблона обновления данных.[66] In contrast to the methods of formatting the source data in the format of the detailed layer (layer B → layer N), the data update template (layer N → layer T) is completely standard, and can be described in the S2T file by specifying the name of the update strategy and its parameters in the form of a data update template.
[67] В данном техническом решении могут использоваться, например, следующие шаблоны обновления данных «снимок данных - снимок данных», «снимок данных - история данных», «история данных - история данных». Данные стратегии реализуются в зависимости от вида исходных данных и требований к конечным данным.[67] In this technical solution, for example, the following data update patterns “data snapshot - data snapshot”, “data snapshot - data history”, “data history - data history” can be used. These strategies are implemented depending on the type of source data and requirements for the final data.
[68] Стратегия обновления данных «снимок данных - снимок данных» работает следующим образом. Неисторичные данные из источника данных перекладываются в неисторичные таблицы в детальный слой хранилища данных. Данный шаблон обновления данных может применяться для контейнеров суррогатных ключей (договора, клиенты и пр.), а также для транзакционных данных (финансовых операций, проводок и пр.). Если поля источника, использующиеся для расчета первичного ключа детального слоя, могут перезаписываться на источнике, то поддерживают эмуляцию режима репликации. Репликация - это процесс, под которым понимается копирование данных из одного источника на другой (или на множество других) и наоборот. Причем данный шаблон обновления данных может работать с накоплением данных и без накопления данных.[68] The data refresh strategy “data snapshot - data snapshot” works as follows. Non-historical data from a data source is transferred to non-historical tables in a detailed layer of the data warehouse. This data update template can be used for surrogate key containers (contracts, customers, etc.), as well as for transactional data (financial transactions, transactions, etc.). If the source fields used to calculate the primary key of the detailed layer can be overwritten on the source, then emulation of the replication mode is supported. Replication is a process that refers to copying data from one source to another (or to many others) and vice versa. Moreover, this data update pattern can work with data accumulation and without data accumulation.
[69] Стратегия обновления данных «снимок данных - история данных» работает следующим образом. Данные, для которых на источнике не ведется история изменения, сохраняются в детальный слой постоянного хранилища данных с созданием истории. При этом из детального слоя удаляется история за более поздние периоды, чем тот, что пришел в текущем пакете обновления. Если поля источника, использующиеся для расчета первичного ключа детального слоя, могут перезаписываться на источнике, то поддерживают эмуляцию режима репликации.[69] The data refresh strategy “data snapshot - data history” works as follows. Data for which the change history is not kept at the source is stored in the detailed layer of the permanent data warehouse with the creation of a history. In this case, history is deleted from the detailed layer for later periods than the one that came in the current service pack. If the source fields used to calculate the primary key of the detailed layer can be overwritten on the source, then emulation of the replication mode is supported.
[70] Стратегия обновления данных «история данных - история данных» работает следующим образом. Выполняется полная репликация истории данных, ведущейся на источнике с привязкой к дате / времени изменения значения атрибута (или с привязкой к периодам дат - датам / времени начала и окончания действия), в детальный слой хранилища данных. При этом, для исключения проблемы с обновлением поля «дата актуальности» на источнике, поддерживают эмуляцию режима репликации. При загрузке исходных наборов данных с историей на дату, разрывы в истории детального слоя не допускаются. Пересечений в истории детального слоя не допускается; усечению подлежит более ранний период из двух пересекающихся. История за определенный период может быть также загружена шаблоном «снимок - снимок», если нет необходимости в устранении пересечения периодов истории. Для этого необходимо обеспечивать эмуляцию режима репликации, причем в состав ключа должны входить как поля, на основе которых рассчитывается первичный ключ в детальном слое, так и поля, содержащие начало и окончание периода актуальности.[70] The data updating strategy “data history - data history” works as follows. A complete replication of the data history maintained on the source with reference to the date / time of changing the attribute value (or with reference to date periods - dates / times of the beginning and end of the action) is performed to the detailed data warehouse layer. At the same time, to eliminate the problem of updating the "date of relevance" field on the source, emulation of the replication mode is supported. When loading source datasets with history on a date, gaps in the history of the detail layer are not allowed. Intersections in the history of the detailed layer are not allowed; truncation is subject to an earlier period of two intersecting. A story for a certain period can also be loaded with a “snapshot - snapshot” template, if there is no need to eliminate the intersection of periods of history. To do this, it is necessary to emulate the replication mode, and the key should include both the fields on the basis of which the primary key is calculated in the detailed layer, and the fields containing the beginning and end of the relevance period.
[71] Формирование суррогатного ключа может осуществляться путем ведения и мапирования исходных наборов натуральныхх ключей на последовательность целочисленных значений или, как показано на Фиг. 4, может определяться на основании значения уникального ключа сущности по следующей формуле:[71] The generation of a surrogate key can be carried out by maintaining and mapping the original sets of natural keys into a sequence of integer values or, as shown in FIG. 4 can be determined based on the value of the unique key of the entity according to the following formula:
[72] Для сущностей с уникальным ключом, состоящим из одного атрибута.[72] For entities with a unique key consisting of a single attribute.
[73] Для сущностей с составным уникальным ключом:[73] For entities with a composite unique key:
[74] где[74] where
[75] NNN - 3-х символьный код исходной системы;[75] NNN - 3-character code of the source system;
[76] SHA1 - функция получения значения хеша по алгоритму SHA1;[76] SHA1 - function to obtain the hash value by the SHA1 algorithm;
[77] - колонки, входящие в уникальный ключ таблицы из исходной системы, если уникальный ключ представлен более чем одним полем, то используется конкатенированное значение всех полей входящих в ключ с разделителем ;[77] - columns included in the unique key of the table from the source system, if the unique key is represented by more than one field, then the concatenated value of all fields included in the key with a separator is used ;
[78] - операция конкатенации.[78] - concatenation operation.
[79] Суррогатные ключи, полученные по данной схеме, могут иметь вид 160 битного 16-ричного кода. В дальнейшем такие ключи удобно использовать для связывания не унифицированных сущностей.[79] Surrogate keys obtained according to this scheme can be in the form of a 160 bit hexadecimal code. In the future, such keys are conveniently used to bind non-unified entities.
[80] В некоторых вариантах осуществления используют представление Apache Hive для расчета значений суррогатных ключей. Hive представляет из себя движок, который превращает SQL-запросы в цепочки map-reduce задач. Движок включает в себя такие компоненты, как Parser (разбирает входящие SQL-запросы), Optimizer (оптимизирует запрос для достижения большей эффективности), Planner (планирует задачи на выполнение), Executor (запускает задачи на фреймворке MapReduce.[80] In some embodiments, the implementation uses the Apache Hive representation to calculate surrogate key values. Hive is an engine that turns SQL queries into chains of map-reduce tasks. The engine includes components such as Parser (parses incoming SQL queries), Optimizer (optimizes the query for greater efficiency), Planner (schedules tasks for execution), Executor (runs tasks on the MapReduce framework.
[81] Для работы Hive также необходимо хранилище метаданных. SQL предполагает работу с такими объектами как база данных, таблица, колонки, строчки, ячейки и т.д. Поскольку сами данные, которые использует Hive хранятся просто в виде файлов на hdfs - необходимо где-то хранить соответствие между объектами Hive и реальными файлами.[81] Hive also requires a metadata repository. SQL involves working with objects such as a database, table, columns, rows, cells, etc. Since the data itself that Hive uses is stored simply in the form of files on hdfs, it is necessary somewhere to store the correspondence between Hive objects and real files.
[82] Шаг 103: осуществляют генерацию программного кода для загрузки данных в детальный слой хранилища и расчета витрин данных на основе полученных метаданных и сформированного шаблона обновления данных;[82] Step 103: generating code for loading data into a detailed storage layer and calculating data marts based on the obtained metadata and the generated data update template;
[83] На Фиг. 5 показан процесс автоматический генерации программного кода, который состоит из следующих этапов.[83] In FIG. 5 shows the process of automatically generating program code, which consists of the following steps.
[84] 1) Получение SQL-кода на основе шаблона обновления данных, представляющих собой по меньшей мере одну хранимую процедуру, из S2T-файла;[84] 1) Obtaining SQL code based on a data update template representing at least one stored procedure from an S2T file;
[85] S2T файл может выглядеть следующим образом:[85] The S2T file may look like this:
[86] 2) инкапсуляция этого программного кода в исполнимый модуль (процедуру), со стандартными входными и выходными параметрами, системой логирования и обработки ошибок и способами восстановления процесса загрузки в случае технологического падения;[86] 2) encapsulation of this program code in an executable module (procedure), with standard input and output parameters, a system for logging and error handling and ways to restore the boot process in the event of a technological failure;
[87] 3) вставка вызова этой процедуры в сценарий метаданных, который читается фреймворком в run-time режиме и последовательно и/или параллельно исполняет инструкции из шаблона.[87] 3) inserting a call to this procedure into a metadata script that is read by the framework in run-time mode and sequentially and / or simultaneously executes instructions from the template.
[88] Внутри шаблонов процедур (Фиг. 5) реализуются различные «case» или «if else» ветви реализации, зависящие от флагов запуска. В свою очередь флаги запуска задаются общими флагами проекта, флагами этапа преобразования, конкретными флагами преобразования и т.п.[88] Inside the procedure templates (Fig. 5), various “case” or “if else” implementation branches are implemented, depending on the launch flags. In turn, the launch flags are set by the general project flags, conversion stage flags, specific conversion flags, etc.
[89] Результатом обработки каждого шаблона является непосредственно сгенерированный рабочий код программы. Дополнительно в результате работы шаблона получают лог работы, который включает все входные макропеременные, а также трассировочный файл (trace-файл), в котором могут содержаться все значения переменных, используемых структур данных и массивов (коллекций).[89] The result of processing each template is the directly generated program working code. Additionally, as a result of the work of the template, a work log is received, which includes all input macro variables, as well as a trace file (trace file), which can contain all the values of variables, data structures and arrays (collections) used.
[90] Каждое преобразование может содержать или имя, или условное обозначение используемых шаблонов.[90] Each transformation may contain either a name or a symbol for the patterns used.
[91] Входными данными для шаблона процедуры могут служить: скалярные переменные, векторные элементы (массивы, списки, хэш-таблицы), а также многомерные элементы (вектора векторов). В качестве элементов могут выступать как простейшие элементы, так комплексные объекты (объекты на основе разработанных Java-классов).[91] The input data for the procedure template can be: scalar variables, vector elements (arrays, lists, hash tables), as well as multidimensional elements (vector vectors). Elements can be either simple elements or complex objects (objects based on developed Java classes).
[92] Шаг 104: автоматически устанавливают сгенерированный на предыдущем шаге программный код на среду хранилища данных для выполнения загрузок;[92] Step 104: automatically install the program code generated in the previous step on the data warehouse environment to perform downloads;
[93] На данном шаге создается патч, который содержит сгенерированный программный код, в формате и структуре соответствующей стандартам релизно-конфигурационного управления, который в режиме run-time устанавливается на среду разработку. В патч также может быть включен сценарий установки патча с инструкциями для консоли администратора. Патч, готовый для установки на среду разработки корпоративного хранилища данных, является совместимым с системой автоматического распространения патчей по стендам.[93] At this step, a patch is created that contains the generated program code in the format and structure of the release-configuration management standards that is installed in run-time mode on the development environment. A patch installation script with instructions for the administrator console may also be included in the patch. The patch, which is ready to be installed on the development environment of the corporate data warehouse, is compatible with the system for automatically distributing patches to stands.
[94] Объекты, базы данных, которые входят в патч, в том же порядке устанавливаются на среду разработки. Если возникают ошибки, они присутствуют в журнале событий и видны пользователю. Набор журналов событий содержит подробный разбор возможных ошибок и предупреждений. Однотипные объекты сгруппированы в директории по типам данных и находятся внутри суффиксов имен баз данных, их последующего размещения.[94] The objects and databases included in the patch are installed in the same order on the development environment. If errors occur, they are present in the event log and are visible to the user. The set of event logs contains a detailed analysis of possible errors and warnings. Objects of the same type are grouped in a directory by data type and are located inside the suffixes of the database names and their subsequent placement.
[95] Ниже в Таблице 1 показана типовая структура патча. Особо следует обратить внимание на SetupManual_000000.txt, в котором автоматически создается последовательность шагов для установки патча (дистрибутива) на все среды.[95] Table 1 below shows a typical patch structure. Particular attention should be paid to SetupManual_000000.txt, which automatically creates a sequence of steps for installing a patch (distribution) on all environments.
[96] В режиме "Compile"="true" все объекты патча создаются на среде разработки. То есть в режиме выполнения кодогенерации все объекты, которые войдут в патч, создаются на среде разработки.[96] In the "Compile" = "true" mode, all patch objects are created on the development environment. That is, in the code generation execution mode, all objects that will be included in the patch are created on the development environment.
[97] Шаг 105: осуществляют переиспользование метаданных обновления детального слоя и витрин данных.[97] Step 105: reuse the update metadata of the detail layer and data marts.
[98] При внесении изменений в постановку задачи осуществляют пере использование метаданных обновления детального слоя и витрин данных за счет внесения дельты изменений в вышеуказанную S2T форму.[98] When making changes to the statement of the problem, reuse the metadata of updating the detailed layer and data marts by introducing a delta of changes into the above S2T form.
[99] При смене типа реляционной базы данных осуществляют переиспользование метаданных обновления детального слоя и витрин данных для формирования сценария наполнения путем переключения базовых шаблонов обновления.[99] When changing the type of relational database, the metadata of the update of the detailed layer and data marts are reused to form a content scenario by switching the basic update patterns.
[100] Затем осуществляют переиспользование сгенерированного программного кода и метаданных. После реализации первой версии патча (дистрибутива) по какой-то задаче практически всегда следуют изменения к этой задаче, вызванные как новыми требованиями бизнеса, так и изменениями, вызванными исправлениями первой версии. Результатом этих изменений могут быть создание новых объектов, удаление старых объектов, изменение процедур, изменение сценариев.[100] Then reuse the generated program code and metadata. After implementing the first version of a patch (distribution) for a task, changes to this task almost always follow, caused by both new business requirements and changes caused by corrections of the first version. The result of these changes can be the creation of new objects, the removal of old objects, changing procedures, changing scripts.
[101] Для реализации этих изменений могут использовать два подхода.[101] Two approaches can be used to implement these changes.
[102] Первым подходом является внесение изменений в имеющийся файл (структуру) S2T и пересоздание всего патча, то есть реализация нового патча (кумулятивного патча). После этого изменения могут быть выделены системой управления версиями (git), используемой для ведения кода.[102] The first approach is to make changes to the existing S2T file (structure) and recreate the entire patch, that is, implement a new patch (cumulative patch). After that, changes can be highlighted by the version control system (git) used to maintain the code.
[103] Вторым вариантом является выполнение автоматических пометок в закладках S2T измененных преобразований и тогда только они войдут в патч. В интерфейс патч должет быть помечен, как инкрементальный.[103] The second option is to make automatic markings in S2T bookmarks of the modified transformations, and only then they will be included in the patch. In the interface, the patch must be marked as incremental.
[104] Возникают изменения, вызванные потребностями работы процесса. Данные изменения вносятся в имеющиеся метаданные, описанные в S2T и при генерации осуществляется переиспользование ранее введенных метаданных.[104] Changes occur due to the needs of the process. These changes are made to the available metadata described in S2T and during generation, reuse of previously entered metadata is performed.
[105] Аспекты настоящего изобретения могут быть также реализованы с помощью устройства обработки данных, являющимся вычислительной машиной или системой (или таких средств, как центральный/графический процессор или микропроцессор), которая считывает и исполняет программу, записанную на запоминающее устройство, чтобы выполнять функции вышеописанного варианта(ов) осуществления, и способа, показанного на Фиг. 1, этапы которого выполняются вычислительной машиной или устройством путем, например, считывания и исполнения программы, записанной на запоминающем устройстве, чтобы исполнять функции вышеописанного варианта(ов) осуществления. С этой целью программа записывается на вычислительную машину, например, через сеть или со среды для записи различных типов, служащей в качестве запоминающего устройства (например, машиночитаемой среды).[105] Aspects of the present invention can also be implemented using a data processing device that is a computer or system (or tools such as a central / graphics processor or microprocessor) that reads and executes a program recorded on a storage device to perform the functions of the above Embodiment (s) and the method shown in FIG. 1, the steps of which are performed by a computer or device by, for example, reading and executing a program recorded on a memory device to perform the functions of the above-described embodiment (s) of implementation. To this end, the program is recorded on a computer, for example, through a network or from a recording medium of various types, serving as a storage device (for example, a computer-readable medium).
[106] Устройство обработки данных может иметь дополнительные особенности или функциональные возможности. Например, устройство обработки данных может также включать в себя дополнительные устройства хранения данных (съемные и несъемные), такие как, например, магнитные диски, оптические диски или лента. Устройства хранения данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или при помощи любой технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Устройство хранения данных, съемное хранилище и несъемное хранилище являются примерами компьютерных носителей данных. Компьютерные носители данных включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память, выполненную по другой технологии, ПЗУ на компакт-диске (CD-ROM), универсальные цифровые диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитные ленты, хранилища на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для хранения желаемой информации и к которой может получить доступ устройство обработки данных. Устройство обработки данных может также включать в себя устройство(а) ввода, такие как клавиатура, мышь, перо, устройство с речевым вводом, устройство сенсорного ввода, и так далее. Устройство (а) вывода, такие как дисплей, динамики, принтер и тому подобное, также могут быть включены в состав системы.[106] The data processing device may have additional features or functionality. For example, the data processing device may also include additional data storage devices (removable and non-removable), such as, for example, magnetic disks, optical disks or tape. Storage devices may include volatile and non-volatile, removable and non-removable media implemented in any way or using any technology for storing information, such as machine-readable instructions, data structures, program modules or other data. A storage device, removable storage, and non-removable storage are examples of computer storage media. Computer storage media includes, but is not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact ROM a disc (CD-ROM), universal digital disks (DVDs) or other optical storage devices, magnetic tapes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information and to which the data processing device can access. The data processing device may also include an input device (s), such as a keyboard, mouse, pen, voice input device, touch input device, and so on. An output device (a), such as a display, speakers, printer, and the like, may also be included in the system.
[107] Устройство обработки данных содержит коммуникационные соединения, которые позволяют устройству связываться с другими вычислительными устройствами, например по сети. Сети включают в себя локальные сети и глобальные сети наряду с другими большими масштабируемыми сетями, включая, но не в ограничительном смысле, корпоративные сети и экстрасети. Коммуникационное соединение является примером коммуникационной среды. Как правило, коммуникационная среда может быть реализована при помощи машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном информационном сигнале, таком как несущая волна, или в другом транспортном механизме, и включает в себя любую среду доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более из его характеристик изменены или установлены таким образом, чтобы закодировать информацию в этом сигнале. Для примера, но без ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Термин «машиночитаемый носитель», как употребляется в этом документе, включает в себя как носители данных, так и коммуникационные среды. Последовательности процессов, описанных в этом документе, могут выполняться с использованием аппаратных средств, программных средств или их комбинации. Когда процессы выполняются с помощью программных средств, программа, в которой записана последовательность процессов, может быть установлена и может выполняться в памяти компьютера, встроенного в специализированное аппаратное средство, или программа может быть установлена и может выполняться на компьютер общего назначения, который может выполнять различные процессы.[107] The data processing device comprises communication connections that allow the device to communicate with other computing devices, for example over a network. Networks include local area networks and wide area networks along with other large, scalable networks, including, but not limited to, corporate networks and extranets. Communication connection is an example of a communication environment. Typically, a communication medium can be implemented using computer-readable instructions, data structures, program modules or other data in a modulated information signal, such as a carrier wave, or in another transport mechanism, and includes any information delivery medium. The term "modulated information signal" means a signal, one or more of its characteristics are changed or set in such a way as to encode information in this signal. By way of example, but without limitation, communication media include wired media such as a wired network or a direct wired connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. The term “machine-readable medium”, as used herein, includes both storage media and communication media. The process sequences described in this document may be performed using hardware, software, or a combination thereof. When processes are performed using software, the program in which the sequence of processes is recorded can be installed and can be executed in the memory of a computer built into specialized hardware, or the program can be installed and can be run on a general-purpose computer that can perform various processes .
[108] Например, программа может быть заранее записана на носитель записи, такой как жесткий диск, или ПЗУ (постоянное запоминающее устройство). В качестве альтернативы, программа может быть временно или постоянно сохранена (записана) на съемном носителе записи, таком как гибкий диск, CD-ROM (компакт-диск, предназначенный только для воспроизведения), МО (магнитооптический) диск, DVD (цифровой универсальный диск), магнитный диск или полупроводниковая память. Съемный носитель записи может распространяться в виде так называемого, продаваемого через розничную сеть программного средства.[108] For example, a program may be pre-recorded on a recording medium such as a hard disk or ROM (read only memory). Alternatively, the program can be temporarily or permanently saved (recorded) on a removable recording medium such as a floppy disk, CD-ROM (compact disc, designed for playback only), MO (magneto-optical) disc, DVD (digital universal disc) , magnetic disk or semiconductor memory. Removable recording media may be distributed as so-called software sold through a retail network.
[109] Программа может быть установлена со съемного носителя записи, описанного выше, на компьютер, или может быть передана по кабелю с сайта загрузки в компьютер или может быть передана в компьютер по сетевым каналам передачи данных, таким как ЛВС (локальная вычислительная сеть) или Интернет. Компьютер может принимать переданную, таким образом, программу и может устанавливать ее на носитель записи, такой как встроенный жесткий диск.[109] The program may be installed from the removable recording medium described above to a computer, or may be transmitted by cable from the download site to a computer, or may be transferred to a computer via network data channels such as a LAN (local area network) or The Internet. The computer can receive the program transmitted in this way and can install it on a recording medium such as an internal hard drive.
[110] Процессы, описанные в этом документе, могут выполняться последовательно по времени, в соответствии с описанием, или могут выполняться параллельно или отдельно, в зависимости от характеристик обработки устройства, выполняющего процессы, или в соответствии с необходимостью. Система, описанная в этом документе, представляет собой логический набор множества устройств и не ограничивается структурой, в которой эти устройства установлены в одном корпусе.[110] The processes described herein may be performed sequentially in time, as described, or may be performed in parallel or separately, depending on the processing characteristics of the device performing the processes, or as necessary. The system described in this document is a logical set of multiple devices and is not limited to the structure in which these devices are installed in one enclosure.
Claims (23)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2017/000981 WO2019132689A1 (en) | 2017-12-27 | 2017-12-27 | Automated software code generation for a corporate data warehouse |
RU2017146232A RU2683690C1 (en) | 2017-12-27 | 2017-12-27 | Method and system for automatic generation of a program code for an enterprise data warehouse |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017146232A RU2683690C1 (en) | 2017-12-27 | 2017-12-27 | Method and system for automatic generation of a program code for an enterprise data warehouse |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2683690C1 true RU2683690C1 (en) | 2019-04-01 |
Family
ID=66089746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017146232A RU2683690C1 (en) | 2017-12-27 | 2017-12-27 | Method and system for automatic generation of a program code for an enterprise data warehouse |
Country Status (2)
Country | Link |
---|---|
RU (1) | RU2683690C1 (en) |
WO (1) | WO2019132689A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2795902C1 (en) * | 2022-04-20 | 2023-05-15 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for automated generation and filling of data marts using declaration description |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212524B1 (en) * | 1998-05-06 | 2001-04-03 | E.Piphany, Inc. | Method and apparatus for creating and populating a datamart |
US7840607B2 (en) * | 2004-08-06 | 2010-11-23 | Siemens Aktiengesellschaft | Data mart generation and use in association with an operations intelligence platform |
RU2408061C2 (en) * | 2005-02-28 | 2010-12-27 | Майкрософт Корпорейшн | Storage application program interface for common data platform |
RU2417420C2 (en) * | 2005-09-09 | 2011-04-27 | Майкрософт Корпорейшн | Programmability for xml data store for documents |
US8504513B2 (en) * | 2009-11-25 | 2013-08-06 | Microsoft Corporation | Auto-generation of code for performing a transform in an extract, transform, and load process |
US20150100542A1 (en) * | 2013-10-03 | 2015-04-09 | International Business Machines Corporation | Automatic generation of an extract, transform, load (etl) job |
US9519695B2 (en) * | 2013-04-16 | 2016-12-13 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
US20170220654A1 (en) * | 2016-02-03 | 2017-08-03 | Wipro Limited | Method for automatically generating extract transform load (etl) codes using a code generation device |
-
2017
- 2017-12-27 RU RU2017146232A patent/RU2683690C1/en active
- 2017-12-27 WO PCT/RU2017/000981 patent/WO2019132689A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212524B1 (en) * | 1998-05-06 | 2001-04-03 | E.Piphany, Inc. | Method and apparatus for creating and populating a datamart |
US7840607B2 (en) * | 2004-08-06 | 2010-11-23 | Siemens Aktiengesellschaft | Data mart generation and use in association with an operations intelligence platform |
RU2408061C2 (en) * | 2005-02-28 | 2010-12-27 | Майкрософт Корпорейшн | Storage application program interface for common data platform |
RU2417420C2 (en) * | 2005-09-09 | 2011-04-27 | Майкрософт Корпорейшн | Programmability for xml data store for documents |
US8504513B2 (en) * | 2009-11-25 | 2013-08-06 | Microsoft Corporation | Auto-generation of code for performing a transform in an extract, transform, and load process |
US9519695B2 (en) * | 2013-04-16 | 2016-12-13 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
US20150100542A1 (en) * | 2013-10-03 | 2015-04-09 | International Business Machines Corporation | Automatic generation of an extract, transform, load (etl) job |
US20170220654A1 (en) * | 2016-02-03 | 2017-08-03 | Wipro Limited | Method for automatically generating extract transform load (etl) codes using a code generation device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2795902C1 (en) * | 2022-04-20 | 2023-05-15 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for automated generation and filling of data marts using declaration description |
RU2811359C1 (en) * | 2023-06-29 | 2024-01-11 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation |
Also Published As
Publication number | Publication date |
---|---|
WO2019132689A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461294B2 (en) | System for importing data into a data repository | |
US11360950B2 (en) | System for analysing data relationships to support data query execution | |
US11593369B2 (en) | Managing data queries | |
US20180095952A1 (en) | System for data management in a large scale data repository | |
US7480643B2 (en) | System and method for migrating databases | |
RU2599538C2 (en) | Methods and systems for loading data into temporal data warehouse | |
US7418453B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
CN106611046A (en) | Big data technology-based space data storage processing middleware framework | |
Huang et al. | Orpheusdb: Bolt-on versioning for relational databases | |
CN106708993A (en) | Spatial data storage processing middleware framework realization method based on big data technology | |
Hobbs et al. | Oracle 10g data warehousing | |
WO2006089092A2 (en) | Hierarchal data management | |
US20210303537A1 (en) | Log record identification using aggregated log indexes | |
CN114329096A (en) | Method and system for processing native map database | |
CN115552390A (en) | Server-free data lake indexing subsystem and application programming interface | |
CN106780157B (en) | Ceph-based power grid multi-temporal model storage and management system and method | |
Brahmia et al. | Schema versioning in conventional and emerging databases | |
Sreemathy et al. | Data validation in ETL using TALEND | |
RU2683690C1 (en) | Method and system for automatic generation of a program code for an enterprise data warehouse | |
WO2023111765A1 (en) | System and method for handling data consolidation from an edge device to a target database | |
Wang et al. | QMapper for smart grid: Migrating SQL-based application to Hive | |
Reniers et al. | Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF | |
Prasath et al. | A new approach for cloud data migration technique using talend ETL tool | |
Zeller et al. | Experience report: Exploiting advanced database optimization features for large-scale sap r/3 installations | |
EA034680B1 (en) | Method and system for automated software code generation for a corporate data warehouse |