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 PDF

Info

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
Application number
RU2017146232A
Other languages
Russian (ru)
Inventor
Владимир Борисович Горский
Максим Витальевич Веселов
Игорь Владимирович Бутин
Павел Сергеевич Чиликин
Станислав Петрович Целовальников
Борис Ильич Рабинович
Original Assignee
Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) filed Critical Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to PCT/RU2017/000981 priority Critical patent/WO2019132689A1/en
Priority to RU2017146232A priority patent/RU2683690C1/en
Application granted granted Critical
Publication of RU2683690C1 publication Critical patent/RU2683690C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation 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

FIELD: information technology.SUBSTANCE: invention relates to a method and system for automatic generating of a program code for an enterprise data warehouse. In the method, metadata are obtained that describe the configuration of data transformation mechanisms for loading them to the level of a detailed data storage layer and calculating data mart storefronts, data update template of the detailed data storage layer and data marts of the data storage are obtained, a program code for loading data into the detailed data storage layer is generated and for calculation the data marts based on the received metadata and the generated data update template, program code generated in the previous step is installed on the data storage medium to perform the downloads, metadata are reused to update the detailed data storage layer and data marts by making delta changes to the mentioned data update template in case of making changes to the problem statement or by switching data update templates in case of changing the relational database type to use the received data update template during the subsequent generation of the program code.EFFECT: technical result is to manage the update of a data warehouse.10 cl, 5 dwg, 1 tbl

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 /

Figure 00000001
/ - заплатка) - информация, предназначенная для автоматизированного внесения определенных изменений в компьютерные файлы и базы данных.[44] Patch
Figure 00000001
/ - 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 corporate data warehouse 200 shown in FIG. 2, a clear system of stages of loading and converting data from external automated systems is fixed, accompanied by a unified logging of all stages, dynamic and static parallelization, and the possibility of recovery in the event of a failure from any download location.

[48] Метаданные являются важной частью архитектуры хранилища данных 200. Метаданные - это данные, описывающие правила, по которым функционирует хранилище. Например, с точки зрения базы данных хранилища, метаданными является описание структур таблиц, взаимосвязей между ними, правил секционирования, описание витрин данных и т.п. С точки зрения ETL, метаданными являются описания правил извлечения и преобразования данных, периодичность выполнения ETL-процессов и т.п.[48] Metadata is an important part of the data warehouse architecture 200. Metadata is data describing the rules by which the warehouse operates. For example, from the point of view of the warehouse database, metadata is a description of table structures, relationships between them, partition rules, description of data marts, etc. From the point of view of ETL, metadata is a description of the rules for extracting and transforming data, the frequency of execution of ETL processes, etc.

[49] В некоторых вариантах осуществления метаданные корпоративного хранилища 200 включают:[49] In some embodiments, corporate storage 200 metadata includes:

- информацию о данных, находящихся в хранилище, их бизнес-описание и структуру хранения;- 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 external data systems 230 and loaded into the data temporary storage area 210 (FIG. 2).

[56] Область 210 временного хранения данных является промежуточным слоем между внешними источниками данных и областью постоянного хранения, в которой находится детальный слой и витрины данных. В данной области сохраняются извлеченные из внешних источников данных (СУБД, csv, dbf, xml файлов, web-сервисов и т.д.) данные, производится их очистка, трансформация, обогащение, подготовка к загрузке в область 220 постоянного хранения. Зачастую очередной цикл обработки и загрузки данных в хранилище не может быть начат пока не будут извлечены все необходимые данные из различных внешних источников данных, а в силу ряда причин (географической распределенности, разных циклов функционирования систем и т.п.) данные в источниках могут быть доступны в разные моменты по времени. Область 210 временного хранения служит для сбора всех необходимых данных перед началом трансформации.[56] The temporary storage area 210 is an intermediate layer between external data sources and a permanent storage area in which the detailed layer and data marts are located. The data extracted from external data sources (DBMS, csv, dbf, xml files, web services, etc.) are stored in this area, they are cleaned, transformed, enriched, and prepared for loading into the area 220 for permanent storage. Often, the next cycle of processing and loading data into the storage cannot be started until all the necessary data has been extracted from various external data sources, and for a number of reasons (geographic distribution, different cycles of system functioning, etc.), the data in the sources can be available at different times. The temporary storage area 210 serves to collect all the necessary data before starting the transformation.

[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 external systems 230 and data sources, and basic classifiers are stored. This area contains the following types of entities: directories and classifiers; Entities containing actual values entities describing relationships.

[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 external systems 230 and data sources. For example, information about customer payments made, invoices, transactions, etc.

[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 corporate data warehouse 200, a detailed layer and data marts are located in the area 220 for permanent data storage (Fig. 2).

[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.

Figure 00000002
Figure 00000002

[73] Для сущностей с составным уникальным ключом:[73] For entities with a composite unique key:

Figure 00000003
Figure 00000003

[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]

Figure 00000004
- колонки, входящие в уникальный ключ таблицы из исходной системы, если уникальный ключ представлен более чем одним полем, то используется конкатенированное значение всех полей входящих в ключ с разделителем
Figure 00000005
;[77]
Figure 00000004
- 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
Figure 00000005
;

[78]

Figure 00000006
- операция конкатенации.[78]
Figure 00000006
- 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:

Figure 00000007
Figure 00000007

Figure 00000008
Figure 00000008

[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.

Figure 00000009
Figure 00000009

Figure 00000010
Figure 00000010

[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)

1. Способ автоматической генерации программного кода для корпоративного хранилища данных, реализуемый с помощью процессора, включающий следующие шаги:1. A method for automatically generating program code for a corporate data warehouse, implemented using a processor, including the following steps: - получают метаданные, описывающие настройку механизмов трансформации данных для их загрузки на уровень детального слоя хранилища данных и расчета витрин хранилища данных;- receive metadata that describes the configuration of data transformation mechanisms for loading them onto the level of the detailed layer of the data warehouse and calculation of data store windows; - формируют по меньшей мере один шаблон обновления данных детального слоя хранилища данных и витрины данных хранилища данных;- form at least one data update pattern of a detailed data warehouse layer and data store data storefront; - осуществляют генерацию программного кода для загрузки данных в детальный слой хранилища данных и расчета витрин данных на основе полученных метаданных и сформированного шаблона обновления данных;- carry out the generation of program code for loading data into a detailed layer of the data warehouse and calculating data marts based on the received metadata and the generated data update template; - устанавливают сгенерированный на предыдущем шаге программный код на среду хранилища данных для выполнения загрузок;- install the program code generated in the previous step on the data warehouse environment to perform downloads; - осуществляют переиспользование метаданных для обновления детального слоя хранилища данных и витрин данных посредством внесения дельты изменений в вышеуказанный шаблон обновления данных в случае внесения изменений в постановку задачи или посредством переключения шаблонов обновления данных в случае смены типа реляционной базы данных для использования полученного шаблона обновления данных при последующей генерации программного кода.- reuse metadata to update the detailed layer of the data warehouse and data marts by making delta changes to the above data update template in case of changes in the statement of the problem or by switching data update templates in case of changing the type of relational database to use the received data update template for subsequent code generation. 2. Способ по п. 1, характеризующийся тем, что метаданные хранятся в таблицах реляционной базы данных.2. The method according to claim 1, characterized in that the metadata is stored in the tables of the relational database. 3. Способ по п. 1, характеризующийся тем, что метаданными являются описание структур таблиц, взаимосвязей между ними, правил секционирования, описание витрин данных.3. The method according to p. 1, characterized in that the metadata is a description of the structures of the tables, the relationships between them, the rules of sectioning, the description of the data marts. 4. Способ по п. 1, характеризующийся тем, что метаданные являются константными и расчетными.4. The method according to p. 1, characterized in that the metadata is constant and calculated. 5. Способ по п. 1, характеризующийся тем, что метаданные размещаются в форме поколоночной структуры объектов и их первичных ключей в базе данных.5. The method according to p. 1, characterized in that the metadata is placed in the form of a structure of objects and their primary keys in the database. 6. Способ по п. 1, характеризующийся тем, что шаблон обновления данных описан в S2Т-файле.6. The method according to claim 1, characterized in that the data update pattern is described in the S2T file. 7. Способ по п. 1, характеризующийся тем, что дополнительно при осуществлении генерации программного кода получают лог работы, который включает все входные макропеременные, а также трассировочный файл.7. The method according to claim 1, characterized in that, additionally, when generating the program code, a work log is received that includes all input macro variables, as well as a trace file. 8. Способ по п. 1, характеризующийся тем, что осуществляют переиспользование метаданных обновления детального слоя и витрин данных за счет внесения дельты изменений в S2T-файл.8. The method according to claim 1, characterized in that the metadata of the update of the detailed layer and data marts is reused by making delta changes to the S2T file. 9. Способ по п. 1, характеризующийся тем, что переиспользование метаданных обновления детального слоя и витрин данных осуществляют путем переключения базовых шаблонов обновления.9. The method according to claim 1, characterized in that the reuse of the update metadata of the detailed layer and data marts is carried out by switching the basic update templates. 10. Система автоматической генерации программного кода для корпоративного хранилища данных, содержащая:10. A system for automatically generating program code for a corporate data warehouse, comprising: - по меньшей мере одно устройство обработки данных;- at least one data processing device; - по меньшей мере одно устройство хранения данных;- at least one data storage device; - по меньшей мере одну программу, где одна или более программ хранятся на одном или более устройствах хранения данных и исполняются на одном и более устройствах обработки данных, причем одна или более программ включают следующие шаги:at least one program, where one or more programs are stored on one or more data storage devices and executed on one or more data processing devices, and one or more programs include the following steps: i. получают метаданные, описывающие настройку механизмов трансформации данных для их загрузки на уровень детального слоя хранилища данных и расчета витрин хранилища данных;i. receive metadata describing the configuration of data transformation mechanisms for loading them onto the level of the detailed data warehouse layer and calculation of data store windows; ii. формируют по меньшей мере один шаблон обновления данных детального слоя хранилища данных и витрины данных хранилища данных;ii. forming at least one data update pattern of the detailed data warehouse layer and data store data storefronts; iii. осуществляют генерацию программного кода для загрузки данных в детальный слой хранилища данных и расчета витрин данных на основе полученных метаданных и сформированного шаблона обновления данных;iii. generating code for loading data into a detailed layer of the data warehouse and calculating data marts based on the received metadata and the generated data update template; iv. устанавливают сгенерированный на предыдущем шаге программный код на среду хранилища данных для выполнения загрузок;iv. install the code generated in the previous step on the data warehouse environment to perform downloads; v. осуществляют переиспользование метаданных для обновления детального слоя хранилища данных и витрин данных посредством внесения дельты изменений в вышеуказанный шаблон обновления данных в случае внесения изменений в постановку задачи или посредством переключения шаблонов обновления данных в случае смены типа реляционной базы данных для использования полученного шаблона обновления данных при последующей генерации программного кода.v. reuse metadata to update the detailed layer of the data warehouse and data marts by making delta changes to the above data update template in case of changes in the statement of the problem or by switching data update templates in case of changing the type of relational database to use the received data update template for subsequent generation program code.
RU2017146232A 2017-12-27 2017-12-27 Method and system for automatic generation of a program code for an enterprise data warehouse RU2683690C1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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