RU2811359C1 - Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation - Google Patents

Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation Download PDF

Info

Publication number
RU2811359C1
RU2811359C1 RU2023117213A RU2023117213A RU2811359C1 RU 2811359 C1 RU2811359 C1 RU 2811359C1 RU 2023117213 A RU2023117213 A RU 2023117213A RU 2023117213 A RU2023117213 A RU 2023117213A RU 2811359 C1 RU2811359 C1 RU 2811359C1
Authority
RU
Russia
Prior art keywords
data
geodata
tiles
marts
scale
Prior art date
Application number
RU2023117213A
Other languages
Russian (ru)
Inventor
Андрей Александрович Оберемок
Надежда Леонидовна Оберемок
Денис Михайлович Козицкий
Георгий Гурамович Димитриади
Сергей Сергеевич Астафуров
Дмитрий Евгеньевич Захаров
Владас Прано Маставичус
Дмитрий Сергеевич Приходченко
Никита Алексеевич Царев
Людмила Андреевна Шамсудинова
Вера Александровна Аксенова
Original Assignee
Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" filed Critical Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации"
Application granted granted Critical
Publication of RU2811359C1 publication Critical patent/RU2811359C1/en

Links

Abstract

FIELD: information technologies.
SUBSTANCE: invention relates to a method and system for generating partitioned data marts containing geodata. The method contains stages at which data is received as input, including: geodata, a list of numerical values from the minimum to the maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart. The received geodata and dataset are combined. Based on the result of the merger carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows: for the current level of scale, in a cycle using tile identifiers, all data available for this tile in the combined dataset is obtained; the tiles are converted into a format for processing by the data mart and stored in the memory of the data storage device. The resulting tiles are used during the operation of the data warehouse to form partitioned data marts containing geodata in the following way: selecting the required level of scale; automatically detecting all tile IDs at the current zoom level; requesting tiles according to certain identifiers, creating and visualizing corresponding data marts.
EFFECT: increasing the efficiency of tile identification.
8 cl, 5 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[1] Настоящее техническое решение, в общем, относится к способам обработки данных и подготовки структур данных для просмотра и визуализации, а именно к способу формирования партиционированных витрин данных, содержащих геоданные, и их использования в процессе эксплуатации хранилища данных.[1] This technical solution generally relates to methods for processing data and preparing data structures for viewing and visualization, namely, a method for creating partitioned data marts containing geodata and using them during the operation of a data warehouse.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART

[2] В настоящее время известен способ обработки данных в хранилищах данных, при котором логически выделяются три стандартных слоя данных:[2] Currently, there is a known method of processing data in data warehouses, in which three standard data layers are logically distinguished:

• Исходный (stage);• Initial (stage);

• Нормализованный (детальный);• Normalized (detailed);

• Адаптированный для просмотра (витрины).• Adapted for viewing (showcases).

[3] Как правило для обработки каждого из слоев применяются отдельные технические решения. Витрины часто партиционируются (шардируются, например, на различных инстансах баз данных) по каким-то признакам, например, периоду, id клиента, и в общем, по любому другому атрибуту.[3] As a rule, separate technical solutions are used to process each layer. Storefronts are often partitioned (sharded, for example, on various database instances) according to some criteria, for example, period, client id, and in general, according to any other attribute.

[4] В любых витринах данных, когда речь идет о больших данных, как правило применяется партиционирование. В частности, в геовитринах партиционируются данные путем отнесения данных к одному или другому географическому объекту.[4] In any data marts, when it comes to big data, partitioning is usually used. In particular, geovitrines partition data by assigning data to one or another geographical object.

[5] Из уровня техники известно техническое решение, описанное в RU 2681361 «СИСТЕМА ФОРМИРОВАНИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ ВВОДА, ОТОБРАЖЕНИЯ И МОДИФИКАЦИИ ВЕКТОРНЫХ ПРОСТРАНСТВЕННЫХ ДАННЫХ», 18.04.2018, Федеральное государственное казенное военное образовательное учреэкдение высшего образования Академия Федеральной службы охраны Российской Федерации (RU): «система формирования пользовательского интерфейса для ввода, отображения и модификации векторных пространственных данных дополнительно содержит блок управления обработкой набора исходных векторных пространственных данных, блок генерации программного кода функциональных частей пользовательского интерфейса, блок хранения метаданных об исходных векторных пространственных данных, блок хранения промежуточных данных, блок хранения метаданных о выходных векторных пространственных данных».[5] The technical solution described in RU 2681361 “SYSTEM FOR DEVELOPING A USER INTERFACE FOR INPUT, DISPLAY AND MODIFICATION OF VECTOR SPATIAL DATA” is known from the prior art, 04/18/2018, Federal State Treasury Military Educational Institution of Higher Education Academy of the Federal Security Service of the Russian Federation (RU ): “the system for generating a user interface for entering, displaying and modifying vector spatial data additionally contains a control unit for processing a set of initial vector spatial data, a unit for generating program code for functional parts of the user interface, a unit for storing metadata about the original vector spatial data, a unit for storing intermediate data, a block for storing metadata about the output vector spatial data.”

[6] Из уровня техники известно техническое решение, описанное в US11036752B2 «Optimizing incremental loading of warehouse data», 08.08.2016, Oracle International Corp. (US): представлена оптимизация инкрементальной загрузки данных в базу данных путем выявления затрагиваемых партиций и отключения на время загрузки данных только этих партиций, также описана загрузкуа и хранение данных».[6] The technical solution described in US11036752B2 “Optimizing incremental loading of warehouse data”, 08.08.2016, Oracle International Corp. is known from the prior art. (US): optimization of incremental data loading into the database is presented by identifying affected partitions and disabling only these partitions while data is being loaded, and data loading and storage is also described.”

[7] Недостатками известных решений являются то обстоятельство, что при обработке данных и их партиционировании, каждая партиция имеет формат, с которой может работать только конкретная система управления базами данных, в которой был проведен процесс партиционирования, что налагает существенные ограничения при их использовании.[7] The disadvantages of the known solutions are the fact that when processing data and partitioning it, each partition has a format that can only be worked with by the specific database management system in which the partitioning process was carried out, which imposes significant restrictions on their use.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯDISCLOSURE OF INVENTION

[8] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.[8] This technical solution is aimed at eliminating the disadvantages inherent in existing solutions known from the prior art.

[9] Решаемой технической проблемой в данном техническом решении является то, что при обработке данных и их партиционировании, каждая партиция имеет формат, с которой может работать только конкретная система управления базами данных, в которой был проведен процесс партиционирования, что налагает существенные ограничения при их использовании.[9] The technical problem solved in this technical solution is that when processing data and partitioning it, each partition has a format that can only be worked with by a specific database management system in which the partitioning process was carried out, which imposes significant restrictions on their use.

[10] Основным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является расширение арсенала технических средств путем обеспечения возможности создавать и использовать партиционированные данные в виде статичных и готовых к передаче файлов.[10] The main technical result that appears when solving the above problem is the expansion of the arsenal of technical means by providing the ability to create and use partitioned data in the form of static and ready-to-transfer files.

[11] Дополнительными техническими результатами, проявляющимся при решении вышеуказанной проблемы, являются ускорение обработки данных, ускорение интеграции модулей хранилищ данных и ускорение кэширования данных на различных уровнях их обработки при работе с партиционированными данными.[11] Additional technical results that appear when solving the above problem are acceleration of data processing, acceleration of integration of data storage modules and acceleration of data caching at various levels of processing when working with partitioned data.

[12] Указанные технические результаты достигаются благодаря осуществлению способа формирования партиционированных витрин данных, содержащих геоданные, и их использования в процессе эксплуатации хранилища данных, реализуемого с помощью процессора и устройства хранения данных, включающего следующие шаги:[12] The specified technical results are achieved thanks to the implementation of a method for forming partitioned data marts containing geodata and their use during the operation of a data warehouse, implemented using a processor and a data storage device, including the following steps:

• получают на вход данные, включающие в себя: геоданные, список числовых значений от минимального до максимального значения уровня масштаба формируемых витрин данных и датасет с произвольными атрибутами, для формирования витрины данных;• receive data as input, including: geodata, a list of numerical values from the minimum to the maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart;

• проводят объединение полученных геоданных и датасета;• combine the received geodata and dataset;

• на основе результата проведенного на предыдущем шаге объединения формируют тайлы и их идентификаторы для всех уровней масштаба формируемых витрин данных следующим образом:• based on the result of the combination carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows:

для текущего уровня масштаба в цикле по идентификаторам тайлов получают все имеющиеся для этого тайла данные в объединенном датасете; for the current zoom level, in a cycle using tile identifiers, all data available for this tile in the combined dataset is obtained;

преобразуют тайлы в формат для обработки витриной данных и сохраняют в памяти устройства хранения данных. convert the tiles into a format for processing by the data mart and store them in the memory of the data storage device.

• используют полученные тайлы в процессе эксплуатации хранилища данных для формирования партиционированных витрин данных, содержащих геоданные, следующим способом:• use the received tiles during the operation of the data warehouse to form partitioned data marts containing geodata in the following way:

выбирают необходимый уровень масштаба; select the required zoom level;

автоматически определяют все идентификаторы тайлов на текущем уровне масштаба; automatically detect all tile IDs at the current zoom level;

запрашивают тайлы согласно определенным идентификаторам, создают и визуализируют соответствующие витрины данных. request tiles according to certain identifiers, create and visualize corresponding data marts.

[13] В одном из частных примеров осуществления способа при формировании тайлов и их идентификаторов производят дополнительные вычисления над данными, позволяющие изменять атрибуты.[13] In one of the particular examples of the implementation of the method, when generating tiles and their identifiers, additional calculations are performed on the data, allowing the attributes to be changed.

[14] В другом частном примере осуществления способа выбор уровня масштаба осуществляется через предустановленные значения.[14] In another particular example of the method, the selection of the scale level is carried out through preset values.

[15] В другом частном примере осуществления способа выбор уровня масштаба осуществляется динамически.[15] In another particular example of the method, the selection of the scale level is carried out dynamically.

[16] Кроме того, заявленный технический результат достигается за счет системы формирования партиционированных витрин данных, содержащих геоданные, и их использования в процессе эксплуатации хранилища данных, содержащей:[16] In addition, the stated technical result is achieved through a system for generating partitioned data marts containing geodata and their use during the operation of the data warehouse, containing:

по меньшей мере одно устройство обработки данных; at least one data processing device;

по меньшей мере одно устройство хранения данных; at least one data storage device;

по меньшей мере одну программу, где одна или более программ хранятся на одном или более устройствах хранения данных и исполняются на одном и более устройствах обработки данных, причем одна или более программ обеспечивает выполнение следующих шагов: at least one program, wherein the one or more programs are stored on one or more storage devices and executed on one or more processing devices, wherein the one or more programs perform the following steps:

• получают на вход данные, включающие в себя: геоданные, список числовых значений от минимального до максимального значения уровня масштаба формируемых витрин данных и датасет с произвольными атрибутами, для формирования витрины данных;• receive data as input, including: geodata, a list of numerical values from the minimum to the maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart;

• проводят объединение полученных геоданных и датасета;• combine the received geodata and dataset;

• на основе результата проведенного на предыдущем шаге объединения формируют тайлы и их идентификаторы для всех уровней масштаба формируемых витрин данных следующим образом:• based on the result of the combination carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows:

для текущего уровня масштаба в цикле по идентификаторам тайлов получают все имеющиеся для этого тайла данные в объединенном датасете; for the current zoom level, in a cycle using tile identifiers, all data available for this tile in the combined dataset is obtained;

преобразуют тайлы в формат для обработки витриной данных и сохраняют в памяти устройства хранения данных. convert the tiles into a format for processing by the data mart and store them in the memory of the data storage device.

• используют полученные тайлы в процессе эксплуатации хранилища данных для формирования партиционированных витрин данных, содержащих геоданные, следующим способом:• use the received tiles during the operation of the data warehouse to form partitioned data marts containing geodata in the following way:

выбирают необходимый уровень масштаба; select the required zoom level;

автоматически определяют все идентификаторы тайлов на текущем уровне масштаба; automatically detect all tile IDs at the current zoom level;

запрашивают тайлы согласно определенным идентификаторам, создают и визуализируют соответствующие витрины данных. request tiles according to certain identifiers, create and visualize corresponding data marts.

[17] В одном из частных примеров осуществления способа при формировании тайлов и их идентификаторов производят дополнительные вычисления над данными, позволяющие изменять атрибуты.[17] In one of the particular examples of the implementation of the method, when generating tiles and their identifiers, additional calculations are performed on the data, allowing the attributes to be changed.

[18] В другом частном примере осуществления способа выбор уровня масштаба осуществляется через предустановленные значения.[18] In another particular example of the method, the selection of the scale level is carried out through preset values.

[19] В другом частном примере осуществления способа выбор уровня масштаба осуществляется динамически.[19] In another particular example of the method, the selection of the scale level is carried out dynamically.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[20] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которых:[20] The features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which:

[21] Фиг. 1 иллюстрирует блок-схему выполнения заявленного способа.[21] FIG. 1 illustrates a block diagram of the claimed method.

[22] Фиг. 2 иллюстрирует пример работы описываемого технического решения при уровне масштаба от 0 до 1.[22] FIG. Figure 2 illustrates an example of the operation of the described technical solution at a scale level from 0 to 1.

[23] Фиг. 3 иллюстрирует пример работы описываемого технического решения при уровне масштаба 2.[23] FIG. Figure 3 illustrates an example of the operation of the described technical solution at scale level 2.

[24] Фиг. 4 иллюстрирует пример работы описываемого технического решения при уровне масштаба 13.[24] FIG. 4 illustrates an example of the operation of the described technical solution at scale level 13.

[25] Фиг. 5 иллюстрирует систему для реализации заявленного способа.[25] FIG. 5 illustrates a system for implementing the claimed method.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION

[26] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.[26] The terms and concepts necessary for the implementation of this technical solution will be described below.

[27] Партиционирование или секционирование (англ. partitioning) - разделение хранимых объектов баз данных (таких как таблиц, индексов, материализованных представлений) на отдельные части с раздельными параметрами физического хранения. Используется в целях повышения управляемости, производительности и доступности для больших баз данных. Возможные критерии разделения данных, используемые при секционировании - по предопределенным диапазонам значений, по спискам значений, при помощи значений хеш-функций; в некоторых случаях используются другие варианты. Под композитными (составными) критериями разделения понимают последовательно примененные критерии разных типов. В отличие от сегментирования, где каждый сегмент управляется отдельным экземпляром СУБД, и используются средства координации между ними (что позволяет распределить базу данных на несколько вычислительных узлов), при секционировании доступ ко всем секциям осуществляется из единого экземпляра СУБД (или симметрично из любого экземпляра кластерной СУБД, такого, как Oracle RAC).[27] Partitioning or partitioning is the division of stored database objects (such as tables, indexes, materialized views) into separate parts with separate physical storage parameters. Used to improve manageability, performance, and availability for large databases. Possible criteria for dividing data used during partitioning are by predefined ranges of values, by lists of values, using hash function values; in some cases other options are used. Composite separation criteria are understood as sequentially applied criteria of different types. Unlike partitioning, where each segment is managed by a separate DBMS instance, and means of coordination between them are used (which allows you to distribute the database across several computing nodes), with partitioning, access to all sections is carried out from a single DBMS instance (or symmetrically from any instance of a cluster DBMS , such as Oracle RAC).

[28] Тайловая, плиточная или знакоместная графика (от англ. tile - плитка) - метод создания больших изображений (как правило, уровней в компьютерных играх) из маленьких фрагментов одинаковых размеров. Тайлы - небольшие изображения одинаковых размеров, служащие фрагментами большой картины. Количество тайлов на один «мир» может достигать нескольких сотен. Матрица клеток при этом хранит только номера тайлов, за счет чего достигается экономия памяти при построении огромных двухмерных пространств.[28] Tiled, tiled or familiar graphics (from the English tile - tile) - a method of creating large images (usually levels in computer games) from small fragments of the same size. Tiles are small images of the same size that serve as fragments of a larger picture. The number of tiles per “world” can reach several hundred. In this case, the matrix of cells stores only the numbers of tiles, due to which memory savings are achieved when constructing huge two-dimensional spaces.

[29] Датасет или набор данных (data set или dataset) - это коллекция данных. В случае с табличными данными, набор данных соответствует одной или нескольким таблицам баз данных, где каждый столбец таблицы соответствует отдельной переменной, и каждая строка соответствует записи в наборе данных. Наборы данных хранят значения для каждой переменной, например высота и вес объекта, для каждого члена набора данных. Наборы данных могут также состоять из коллекции документов или файлов.[29] A data set or dataset is a collection of data. In the case of tabular data, a data set corresponds to one or more database tables, where each column of the table corresponds to a different variable, and each row corresponds to a record in the data set. Datasets store values for each variable, such as the height and weight of an object, for each member of the dataset. Datasets can also consist of a collection of documents or files.

[30] Уровень масштаба - согласованный заранее между конечным пользователем и системой формирования геовитрин список числовых значений от минимального до максимального значения. Просмотр данных витрин возможен только на одном из уровней масштаба, определенных в этом списке. Способ подходит для различных геодезических проекций, но используемая в конкретной реализации способа проекция геообъектов на плоскость также должна быть согласована заранее.[30] Scale level - a list of numerical values from a minimum to a maximum value agreed in advance between the end user and the geovitrine system. Viewing these storefronts is possible only at one of the zoom levels defined in this list. The method is suitable for various geodetic projections, but the projection of geoobjects onto the plane used in a specific implementation of the method must also be agreed upon in advance.

[31] Заявленное техническое решение может выполняться, например системой, машиночитаемым носителем, сервером и т.д. В данном техническом решении под системой подразумевается, в том числе компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).[31] The claimed technical solution can be implemented, for example, by a system, machine-readable medium, server, etc. In this technical solution, a system means, including a computer system, a computer (electronic computer), CNC (computer numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, clearly defined sequence of operations (actions, instructions).

[32] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[32] A command processing device means an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).

[33] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.[33] An instruction processing device reads and executes machine instructions (programs) from one or more storage devices, such as devices such as random access memory (RAM) and/or read only memory (ROM). ROM can be, but is not limited to, hard drives (HDD), flash memory, solid-state drives (SSD), optical storage media (CD, DVD, BD, MD, etc.), etc.

[34] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[34] Program - a sequence of instructions intended for execution by a computer control device or a command processing device.

[35] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к программным инструкциям или программным командам, которые написаны на заданном языке программирования для осуществления конкретной функции, такой как, например, получение и обработка данных, формирование профиля пользователя, прием и передача сигналов, анализ принятых данных, идентификация пользователя и т.п. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, Python, различных библиотек (например, Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным каналам передачи данных, например, Wi-Fi, Bluetooth, USB, WLAN, LAN и т.п.[35] The term "instructions" as used in this application may refer generally to software instructions or software commands that are written in a given programming language to perform a specific function, such as, for example, retrieving and processing data, generating a user profile , reception and transmission of signals, analysis of received data, user identification, etc. Instructions can be implemented in a variety of ways, including, for example, object-oriented methods. For example, instructions can be implemented using the programming language C++, Java, Python, various libraries (for example, Microsoft Foundation Classes), etc. Instructions that carry out the processes described in this solution can be transmitted over both wired and wireless data channels, for example, Wi-Fi, Bluetooth, USB, WLAN, LAN, etc.

[36] Представленный способ формирования партиционированных витрин данных, содержащих геоданные, и их использования в процессе эксплуатации хранилища данных (на Фиг. 1 представлена схема способа) решает задачи обеспечения возможности создавать и использовать партиционированные данные в виде статичных и готовых к передаче файлов, а также ускорения обработки данных, ускорения интеграции модулей хранилищ данных и ускорения кэширования данных на различных уровнях их обработки при работе с партиционированными данными за счет последовательного выполнения следующих шагов:[36] The presented method for creating partitioned data marts containing geodata and their use during the operation of a data warehouse (Fig. 1 shows a diagram of the method) solves the problem of providing the ability to create and use partitioned data in the form of static and ready-to-transfer files, as well as accelerating data processing, accelerating the integration of data storage modules and accelerating data caching at various levels of data processing when working with partitioned data by sequentially performing the following steps:

• получают на вход данные, включающие в себя: геоданные, список числовых значений от минимального до максимального значения уровня масштаба формируемых витрин данных и датасет с произвольными атрибутами, для формирования витрины данных;• receive data as input, including: geodata, a list of numerical values from the minimum to the maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart;

• проводят объединение полученных геоданных и датасета;• combine the received geodata and dataset;

• на основе результата проведенного на предыдущем шаге объединения формируют тайлы и их идентификаторы для всех уровней масштаба формируемых витрин данных следующим образом:• based on the result of the combination carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows:

для текущего уровня масштаба в цикле по идентификаторам тайлов получают все имеющиеся для этого тайла данные в объединенном датасете; for the current zoom level, in a cycle using tile identifiers, all data available for this tile in the combined dataset is obtained;

преобразуют тайлы в формат для обработки витриной данных и сохраняют в памяти устройства хранения данных. convert the tiles into a format for processing by the data mart and store them in the memory of the data storage device.

• используют полученные тайлы в процессе эксплуатации хранилища данных для формирования партиционированных витрин данных, содержащих геоданные, следующим способом:• use the received tiles during the operation of the data warehouse to form partitioned data marts containing geodata in the following way:

выбирают необходимый уровень масштаба; select the required zoom level;

автоматически определяют все идентификаторы тайлов на текущем уровне масштаба; automatically detect all tile IDs at the current zoom level;

запрашивают тайлы согласно определенным идентификаторам, создают и визуализируют соответствующие витрины данных. request tiles according to certain identifiers, create and visualize corresponding data marts.

[37] В примере реализации способа ниже (функции на языке JS с указанием инструментария и примерами исходных и результирующих данных) в качестве геоданных использовалась GeoJSON с системой координат wgs84. Но возможно использовать любой формат (kml, csv, avro, parquet, …) с любой системой координат.[37] In the example of implementing the method below (functions in the JS language indicating the tools and examples of source and resulting data), GeoJSON with the wgs84 coordinate system was used as geodata. But it is possible to use any format (kml, csv, avro, parquet, ...) with any coordinate system.

И т.д. с дальнейшими гео-координатами.Etc. with further geo-coordinates.

И т.д. с дальнейшими партицированными данными (тайлами) в виде отдельных файлов.Etc. with further partitioned data (tiles) in the form of separate files.

[38] В описываемом техническом решении предлагается хранить и использовать партиционированные данные в виде статичных и готовых к передаче пользователю файлов.[38] The described technical solution proposes to store and use partitioned data in the form of static files ready to be transferred to the user.

Преимущества использования файлов:Advantages of using files:

1. Обработка файлов является одним из базовых инструментов большинства ОС, и поддерживается ядром. Не требуется разработка дополнительных инструментов1. File processing is one of the basic tools of most OSes, and is supported by the kernel. No additional tool development required

2. Легко осуществляется кэширование данных на различных уровнях (сервер, CDN-сеть, прокси-сервер, клиентское устройство)2. Data caching is easy at various levels (server, CDN network, proxy server, client device)

3. Легко интегрировать различные модули хранилища данных, так как осуществляется простое перемещение файлов, и существует широкий спектр базовых инструментов для этого.3. It is easy to integrate various data storage modules as file transfer is easy and there is a wide range of basic tools for this.

[39] В отличие от известных в уровне техники решений, где каждая партиция имеет формат, понятный только конкретной СУБД, в данном решении каждая партиция хранится в виде отдельного файла. Также в этом решении предлагается объединять в каждом файле по выбранной географической области как сами меры, которые интересуют пользователя, так и вспомогательную информацию (контуры областей, точки, другие картографические слои).[39] Unlike solutions known in the prior art, where each partition has a format understandable only to a specific DBMS, in this solution each partition is stored as a separate file. Also in this solution it is proposed to combine in each file for the selected geographical area both the measures themselves that are of interest to the user, and auxiliary information (contours of areas, points, other cartographic layers).

[40] Рассмотрим традиционный способ хранения партиционированных данных, например, в СУБД PostgreSQL: традиционно файлы конфигурации и файлы данных, используемые кластером базы данных, хранятся вместе в каталоге данных кластера, обычно называемом PGDATA (по имени переменной среды, которая может использоваться для ее определения). Обычное место для PGDATA - /var/lib/pgsql/data. На одном компьютере может существовать несколько кластеров, управляемых разными экземплярами сервера. Каталог PGDATA содержит несколько подкаталогов и управляющих файлов, как показано в списке ниже. В дополнение к этим обязательным элементам файлы конфигурации кластера postgresql.conf, pg_hba.conf и pg_ident.conf традиционно хранятся в PGDATA, хотя их можно разместить в другом месте.[40] Consider the traditional way of storing partitioned data, for example in a PostgreSQL DBMS: traditionally, the configuration files and data files used by the database cluster are stored together in the cluster data directory, usually called PGDATA (after the name of the environment variable that can be used to define it ). The usual location for PGDATA is /var/lib/pgsql/data. There can be several clusters on one computer, managed by different server instances. The PGDATA directory contains several subdirectories and control files, as shown in the list below. In addition to these required elements, the cluster configuration files postgresql.conf, pg_hba.conf, and pg_ident.conf are traditionally stored in PGDATA, although they can be located elsewhere.

PG_VERSION Файл, содержащий номер основной версии PostgreSQL.PG_VERSION A file containing the major version number of PostgreSQL.

base Подкаталог, содержащий подкаталоги для каждой базы данныхbase A subdirectory containing subdirectories for each database

global Подкаталог, содержащий общие для кластера таблицы, такие как pg_databaseglobal Subdirectory containing cluster-wide tables such as pg_database

pg_commit_ts Подкаталог, содержащий данные временной метки фиксации транзакции.pg_commit_ts Subdirectory containing transaction commit timestamp data.

pg_clog Подкаталог, содержащий данные о статусе фиксации транзакции.pg_clog A subdirectory containing transaction commit status data.

pg_dynshmem Подкаталог, содержащий файлы, используемые подсистемой динамической разделяемой памяти.pg_dynshmem A subdirectory containing files used by the dynamic shared memory subsystem.

pg_logical Подкаталог, содержащий данные о состоянии для логического декодирования.pg_logical A subdirectory containing state data for logical decoding.

pg_multixact Подкаталог, содержащий данные о состоянии нескольких транзакций (используется для общих блокировок строк)pg_multixact Subdirectory containing status data for multiple transactions (used for general row locks)

pg_notify Подкаталог, содержащий данные о статусе LISTEN/NOTIFY.pg_notify Subdirectory containing LISTEN/NOTIFY status data.

pg_replslot Подкаталог, содержащий данные слота репликации.pg_replslot Subdirectory containing replication slot data.

pg_serial Подкаталог, содержащий информацию о совершенных сериализуемых транзакциях.pg_serial A subdirectory containing information about completed serializable transactions.

pg_snapshots Подкаталог, содержащий экспортированные снимки.pg_snapshots Subdirectory containing exported snapshots.

pg_stat Подкаталог, содержащий постоянные файлы для подсистемы статистики.pg_stat Subdirectory containing permanent files for the statistics subsystem.

pg_stat_tmp Подкаталог, содержащий временные файлы для подсистемы статистики.pg_stat_tmp Subdirectory containing temporary files for the statistics subsystem.

pg_subtrans Подкаталог, содержащий данные о статусе подтранзакции.pg_subtrans Subdirectory containing subtransaction status data.

pg_tblspc Подкаталог, содержащий символические ссылки на табличные пространства.pg_tblspc A subdirectory containing symbolic links to tablespaces.

pg_twophase Подкаталог, содержащий файлы состояния для подготовленных транзакций.pg_twophase Subdirectory containing state files for prepared transactions.

pg_xlog Подкаталог, содержащий файлы WAL (Write Ahead Log).pg_xlog Subdirectory containing WAL (Write Ahead Log) files.

postgresql.auto.conf Файл, используемый для хранения параметров конфигурации, установленных ALTER SYSTEM.postgresql.auto.conf File used to store configuration parameters set by ALTER SYSTEM.

postmaster.opts Файл, в котором записаны параметры командной строки, с которыми последний раз запускался сервер.postmaster.opts A file that records the command line parameters with which the server was last started.

postmaster.pid Файл блокировки, записывающий текущий идентификатор процесса postmaster (PID), путь к каталогу данных кластера, отметку времени запуска postmaster, номер порта, путь к каталогу сокета домена Unix (пустой в Windows), первый допустимый listen_address (IP-адрес или *, или пустой, если TCP не прослушивается) и идентификатор сегмента общей памяти (этот файл отсутствует после выключения сервера)postmaster.pid Lock file recording the current postmaster process ID (PID), cluster data directory path, postmaster startup timestamp, port number, Unix domain socket directory path (blank on Windows), first valid listen_address (IP address or * , or empty if TCP is not listening) and the shared memory segment identifier (this file is missing after the server is shut down)

[41] Для каждой базы данных в кластере есть подкаталог в PGDATA/base, названный в честь OID базы данных в pg database. Этот подкаталог является расположением по умолчанию для файлов базы данных; в частности, там хранятся его системные каталоги.[41] Each database in the cluster has a subdirectory in PGDATA/base named after the OID of the database in pg database. This subdirectory is the default location for database files; in particular, its system directories are stored there.

[42] Каждая таблица и индекс хранятся в отдельном файле. Для обычных отношений эти файлы называются по номеру файлового узла таблицы или индекса, который можно найти в pg_class.relfilenode. Но для временных отношений имя файла имеет форму tBBBFFF, где ВВВ - это идентификатор серверной части, создавшей файл, a FFF - номер файлового узла. В любом случае в дополнение к основному файлу (a/k/a main fork) каждая таблица и индекс имеют карту свободного пространства, в которой хранится информация о свободном пространстве, доступном в отношении. Карта свободного пространства хранится в файле с именем, состоящим из номера файлового узла и суффикса _fsm. Таблицы также имеют карту видимости, хранящуюся в ответвлении с суффиксом _vm, чтобы отслеживать, какие страницы, как известно, не имеют мертвых кортежей. Незарегистрированные таблицы и индексы имеют третью ветку, известную как вилка инициализации, которая хранится в вилке с суффиксом _init.[42] Each table and index are stored in a separate file. For normal relationships, these files are named by the table or index file node number, which can be found in pg_class.relfilenode. But for temporary relationships, the file name is of the form tBBBFFF, where BBB is the identifier of the backend that created the file, and FFF is the file node number. In any case, in addition to the main file (a/k/a main fork), each table and index has a free space map that stores information about the free space available in the relation. The free space map is stored in a file with a name consisting of the file node number and the suffix _fsm. Tables also have a visibility map stored in a fork with the _vm suffix to keep track of which pages are known to not have dead tuples. Unregistered tables and indexes have a third branch known as the initialization fork, which is stored in the fork with the suffix _init.

[43] Рассмотрим структуру данных из описываемого решения: максимально простая структура из простых файлов с одинаковым предназначением. Каждый файл содержит как геометрию, которая попала в этот тайл, так и измерения и меры. Атрибуты партиционирования, их количество и последовательность выбираются в зависимости от решаемой задачи.[43] Let's consider the data structure from the described solution: the simplest possible structure of simple files with the same purpose. Each file contains both the geometry that fell into this tile, as well as dimensions and measures. Partitioning attributes, their number and sequence are selected depending on the problem being solved.

[44] Ниже приведен пример партиционирование по дате (у_2021-01-01) слою (fields или adm) и сетке XYZ (Leaflet). В качастве формата файлов используется protobuf (pbf):[44] Below is an example of partitioning by date (y_2021-01-01), layer (fields or adm) and XYZ grid (Leaflet). The file format used is protobuf (pbf):

[45] Преимущества объединения данных и геометрии в одном файле:[45] Advantages of combining data and geometry in one file:

1. Минимизация клиент-серверных взаимодействий1. Minimizing client-server interactions

2. Легко осуществляется дополнение нового уровня гранулярности данных2. It is easy to add a new level of data granularity

3. Сложность и трудоемкость операция запросов данных не зависит от количества объектов, измерений и мер в одном запросе3. The complexity and labor-intensive operation of data queries does not depend on the number of objects, dimensions and measures in one query

Пример 1: Пользователь хочет получить экономические показатели Самарской области за несколько последних лет.Example 1: The user wants to obtain economic indicators of the Samara region over the past few years.

В этом случае данные могут быть партиционироеаны следующим образом:In this case, the data can be partitioned as follows:

• Файл 1: "Самарская область, 2020, экономические показатели»• File 1: "Samara region, 2020, economic indicators"

• Файл 2: "Самарская область, 2021, экономические показатели»• File 2: "Samara region, 2021, economic indicators"

• Файл 3: "Самарская область, 2022, экономические показатели»• File 3: "Samara region, 2022, economic indicators"

Пример 2: Пользователь хочет получить экономические показатели одного района Самарской области за несколько последних лет.Example 2: The user wants to obtain economic indicators of one district of the Samara region over the past few years.

В этом случае данные могут быть партиционироеаны следующим образом:In this case, the data can be partitioned as follows:

• Файл 1: "Самарская область, Волжский район, 2020, экономические показатели»• File 1: "Samara region, Volzhsky district, 2020, economic indicators"

• Файл 2: "Самарская область, Волжский район, 2021, экономические показатели»• File 2: "Samara region, Volzhsky district, 2021, economic indicators"

• Файл 3: "Самарская область, Волжский район, 2022, экономические показатели»• File 3: "Samara region, Volzhsky district, 2022, economic indicators"

Как видно из примеров выше, не потребуется пересчет ранее рассчитанных данных, а только расчет нового «масштаба» данных.As can be seen from the examples above, there is no need to recalculate previously calculated data, but only to calculate a new “scale” of data.

[46] Витрины данных в хранилищах данных содержат часть предрассчитанных данных (слоев данных). В описываемом решении данная концепция полностью реализуется, и более того, предрассчитаны не только данные, но и заранее подготовлен ответ сервера клиенту в виде готового файла. Преимущества такого подхода заключается в том, что расчет может осуществляться в периоды минимальной загрузки сервера. Предрасчитываются все воможные варианты запросов пользователя, но фактически заменяются только изменившиеся файлы. Однако если при этом серверная часть реализации способа может определить набор файлов, которые затрагиваются перерасчетом, то перерасчитаны и заменены могут быть только эти файлы. Например, если изменились экономические показатели одного региона РФ, то будут перерасчитаны только файлы, затрагивающие этот регион, а также все файлы более высокого уровня иерархии (агрегаты по всей РФ). При этом файлы, относящиеся к другим регионам, пересчитаны и затронуты не будут.[46] Data marts in data warehouses contain a portion of pre-calculated data (data layers). In the described solution, this concept is fully implemented, and moreover, not only the data is pre-calculated, but also the server’s response to the client is prepared in advance in the form of a ready-made file. The advantage of this approach is that calculations can be carried out during periods of minimal server load. All possible variants of user requests are pre-calculated, but only changed files are actually replaced. However, if the server part of the method implementation can determine a set of files that are affected by recalculation, then only these files can be recalculated and replaced. For example, if the economic indicators of one region of the Russian Federation have changed, then only files affecting this region will be recalculated, as well as all files of a higher hierarchy level (aggregates throughout the Russian Federation). In this case, files belonging to other regions will be recalculated and will not be affected.

[47] При этом способ не исключает параллельного использования традиционных СУБД для хранения предрасчитанных данных на сервере на основе идентификаторов тайлов, в частности, для партиционирования, хранения вспомогательной информации, расчета агрегатов. Существенным в данном способе является оптимизация основной пользовательской функции - просмотра данных.[47] However, the method does not exclude the parallel use of traditional DBMSs for storing pre-calculated data on the server based on tile identifiers, in particular, for partitioning, storing auxiliary information, and calculating aggregates. Essential in this method is the optimization of the main user function - viewing data.

[48] Идентификаторы тайлов могут быть получены: либо из входных требований для расчета; либо исходя из полученных геоданных, либо изначально берутся вообще все возможные значения.[48] Tile IDs can be obtained: either from the input requirements for the calculation; either based on the received geodata, or initially all possible values are taken.

[49] Система кодирования идентификатора файла известна как серверу, так и клиенту, и позволяет легко получить идентификатор запрашиваемого объекта данных.[49] The file identifier encoding system is known to both the server and the client, and makes it easy to obtain the identifier of the requested data object.

[50] Система кодирования может быть как одной из стандартных, так и проприетарной для каждого клиента.[50] The coding system can be either standard or proprietary for each client.

В качестве примера рассмотрим:As an example, consider:

• Сетку XYZ из Leaflet• XYZ mesh from Leaflet

Например, для визуализации карты нашей планеты можно использовать цилиндрическую проекцию (если искажения этой проекции допустимы) и нарезку на тайлы одного размера (в пикселях).For example, to visualize a map of our planet, you can use a cylindrical projection (if the distortions of this projection are acceptable) and cutting into tiles of the same size (in pixels).

На максимальном отдалении (Zoom=0) вся карта вписывается в один тайл: на Фиг. 2.At the maximum distance (Zoom=0) the entire map fits into one tile: in Fig. 2.

При каждом последующем уровне масштабирования количество тайлов увеличивается в 2 раза (по отношению к предыдущему) по осям х и у.At each subsequent zoom level, the number of tiles increases by 2 times (relative to the previous one) along the x and y axes.

Zoom=1: на Фиг. 2;Zoom=1: in Fig. 2;

Zoom=2: на Фиг. 3;Zoom=2: in Fig. 3;

Zoom=13: на Фиг. 4.Zoom=13: in Fig. 4.

[51] В частном варианте реализации пользователь выбирает ту географическую область, которая ему нужна, путем формирования идентификатора нужного файла по заранее известной формуле. Затем пользователь обращается к конкретному файлу.[51] In a particular implementation, the user selects the geographic area that he needs by generating the identifier of the desired file using a previously known formula. The user then accesses the specific file.

[52] В пользовательском приложении, например, браузере, по известной из предыдущего пункта системе кодирования и текущих действий пользователя, например выбранной области для отображения, производится определение необходимых для загрузки идентификаторов файлов. Преимущество: формула известна заранее, она простая, поэтому данная операция не требует больших вычислительных мощностей.[52] In a user application, for example, a browser, based on the coding system known from the previous paragraph and the current user actions, for example, the selected area for display, the file identifiers necessary for downloading are determined. Advantage: the formula is known in advance, it is simple, so this operation does not require large computing power.

[53] Пользовательское устройство на основе полученного списка идентификаторов файлов загружает их стандартным для пользовательской ОС способом. Преимущества:[53] Based on the received list of file identifiers, the user device downloads them in a standard way for the user OS. Advantages:

• не требуется реализация загрузки файлов - этот функционал стандартный и уже реализован в ОС пользователя;• no implementation of file downloading is required - this functionality is standard and is already implemented in the user's OS;

• возможно применение распараллеливания при наличии поддержки на уровне ОС и протокола, использование различных протоколов (HTTP, FTP, S3);• it is possible to use parallelization if there is support at the OS and protocol level, using various protocols (HTTP, FTP, S3);

• возможно применение кэширование на различных уровнях (пользовательское устройство, локальная сеть (прокси-сервер), сервер);• caching can be used at various levels (user device, local network (proxy server), server);

• легко реализуется локальное кэширование данных на стороне пользователя, например, при реализации мобильного приложения, так как требуется сохранять файлы.• local data caching on the user side is easily implemented, for example, when implementing a mobile application, since files need to be saved.

[54] При использовании основной пользовательской функции системы (просмотр данных) при изменении в ней данных пользовательское устройство загружает только изменения, а не все данные. Существует несколько известных способов реализации данного шага, например, использование заголовка E-Tag протокола HTTP, параметризация правил определения идентификаторов файлов. Преимущества:[54] When using the main user function of the system (data viewing), when data is changed in the system, the user device downloads only the changes, and not all the data. There are several well-known ways to implement this step, for example, using the E-Tag header of the HTTP protocol, parameterizing the rules for determining file identifiers. Advantages:

• минимизация объема передаваемых данных;• minimizing the volume of transmitted data;

• наличие существующих реализаций данного шага;• existence of existing implementations of this step;

• неограниченное горизонтальное масштабирование системы, например можно просто копировать одинаковые файлы на N серверов и осуществлять балансировку методом round robin, что убирает необходимость в сложном управлении контейнерной архитектурой;• unlimited horizontal scaling of the system, for example, you can simply copy identical files to N servers and perform balancing using the round robin method, which eliminates the need for complex management of container architecture;

• высокая скорость работы серверной части, так как отсутствуют серверные вычисления во время обращения пользователя (все данные заранее предрасчитаны);• high speed of the server part, since there are no server calculations during a user request (all data is pre-calculated);

• высокая скорость работы серверной части, так как пользователь загружает в основном необходимые данные;• high speed of the server part, since the user downloads mainly the necessary data;

• удообное управление гранулярностью данных.• convenient management of data granularity.

[55] В общем виде (см. Фиг. 5) система формирования партиционированных витрин данных, содержащих геоданные, и их использования в процессе эксплуатации хранилища данных (500) содержит объединенные общей шиной информационного обмена один или несколько процессоров (501), средства памяти, такие как ОЗУ (502) и ПЗУ (503) и интерфейсы ввода/вывода (504).[55] In general (see Fig. 5), the system for the formation of partitioned data marts containing geodata and their use during operation of the data warehouse (500) contains one or more processors (501), memory means, united by a common information exchange bus. such as RAM (502) and ROM (503) and input/output interfaces (504).

[56] Процессор (501) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (500) также необходимо учитывать графический процессор, например, GPU NVIDIA с программной моделью, совместимой с CUDA, или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[56] The processor (501) (or multiple processors, multi-core processor, etc.) may be selected from a variety of devices commonly used today, for example, from manufacturers such as: Intel™, AMD™, Apple™, Samsung Exynos ™, MediaTEK™, Qualcomm Snapdragon™, etc. The processor or one of the processors used in the system (500) must also include a graphics processor, for example an NVIDIA GPU with a CUDA-compatible programming model or Graphcore, the type of which is also suitable for carrying out the method in whole or in part, and can also be used for training and application of machine learning models in various information systems.

[57] ОЗУ (502) представляет собой оперативную память и предназначено для хранения исполняемых процессором (501) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (502), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (502) может выступать доступный объем памяти графической карты или графического процессора.[57] RAM (502) is a random access memory and is designed to store machine-readable instructions executable by the processor (501) to perform the necessary logical data processing operations. RAM (502) typically contains executable operating system instructions and related software components (applications, program modules, etc.). In this case, the available memory capacity of the graphics card or graphics processor can act as RAM (502).

[58] ПЗУ (503) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[58] A ROM (503) is one or more permanent storage devices, such as a hard disk drive (HDD), a solid state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.

[59] Для организации работы компонентов устройства (500) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (504). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[59] To organize the operation of device components (500) and organize the operation of external connected devices, various types of I/O interfaces (504) are used. The choice of appropriate interfaces depends on the specific design of the computing device, which can be, but is not limited to: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.

[60] Для обеспечения взаимодействия пользователя с устройством (500) применяются различные средства (505) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[60] To ensure user interaction with the device (500), various means (505) of I/O information are used, for example, a keyboard, a display (monitor), a touch display, a touch pad, a joystick, a mouse, a light pen, a stylus, a touch panel, trackball, speakers, microphone, augmented reality tools, optical sensors, tablet, light indicators, projector, camera, biometric identification tools (retina scanner, fingerprint scanner, voice recognition module), etc.

[61] Средство сетевого взаимодействия (506) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (506) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[61] The networking facility (506) enables data transmission via an internal or external computer network, such as an Intranet, the Internet, a LAN, or the like. One or more means (506) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and/or BLE module, Wi-Fi module and etc.

[62] Конкретный выбор элементов устройства (500) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала. В частности, подобная реализация может быть выполнена с помощью электронных компонент, используемых для создания цифровых интегральных схем. Не ограничиваясь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС являются: программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже. Таким образом, реализация может быть достигнута стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.[62] The specific selection of device elements (500) to implement various software and hardware architectural solutions may vary while maintaining the required functionality provided. In particular, such an implementation can be performed using electronic components used to create digital integrated circuits. Without limitation, microcircuits can be used, the logic of which is determined during manufacture, or programmable logic integrated circuits (FPGAs), the logic of which is specified by programming. For programming, programmers and debugging environments are used to set the desired structure of a digital device in the form of a circuit diagram or program in special hardware description languages: Verilog, VHDL, AHDL, etc. An alternative to FPGAs are: programmable logic controllers (PLCs), basic matrix crystals ( BMK) requiring a factory production process for programming; ASICs are specialized custom large-scale integrated circuits (LSIs), which are significantly more expensive for small-scale and single-piece production. Thus, implementation can be achieved by standard means based on the classical principles of implementing the fundamentals of computer technology.

[63] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[63] The submitted application materials disclose preferred examples of implementation of a technical solution and should not be interpreted as limiting other, particular examples of its implementation that do not go beyond the scope of the requested legal protection, which are obvious to specialists in the relevant field of technology.

Claims (29)

1. Способ формирования партиционированных витрин данных, содержащих геоданные, реализуемый с помощью процессора и устройства хранения данных, включающий следующие шаги:1. A method for generating partitioned data marts containing geodata, implemented using a processor and a data storage device, including the following steps: - получают на вход данные, включающие в себя: геоданные, список числовых значений от минимального до максимального значения уровня масштаба формируемых витрин данных и датасет с произвольными атрибутами, для формирования витрины данных;- receive data as input, including: geodata, a list of numerical values from the minimum to maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart; - проводят объединение полученных геоданных и датасета;- combine the received geodata and dataset; - на основе результата проведенного на предыдущем шаге объединения формируют тайлы и их идентификаторы для всех уровней масштаба формируемых витрин данных следующим образом:- based on the result of the combination carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows: - для текущего уровня масштаба в цикле по идентификаторам тайлов получают все имеющиеся для этого тайла данные в объединенном датасете;- for the current level of scale in a cycle, using tile identifiers, all data available for this tile in the combined dataset is obtained; - преобразуют тайлы в формат для обработки витриной данных и сохраняют в памяти устройства хранения данных;- convert the tiles into a format for processing by the data mart and store them in the memory of the data storage device; - используют полученные тайлы в процессе эксплуатации хранилища данных для формирования партиционированных витрин данных, содержащих геоданные, следующим способом:- use the received tiles during the operation of the data warehouse to form partitioned data marts containing geodata in the following way: - выбирают необходимый уровень масштаба;- select the required scale level; - автоматически определяют все идентификаторы тайлов на текущем уровне масштаба;- automatically detect all tile IDs at the current zoom level; - запрашивают тайлы согласно определенным идентификаторам, создают и визуализируют соответствующие витрины данных.- request tiles according to certain identifiers, create and visualize corresponding data marts. 2. Способ по п. 1, характеризующийся тем, что при формировании тайлов и их идентификаторов производят дополнительные вычисления над данными, позволяющие изменять атрибуты.2. The method according to claim 1, characterized in that when generating tiles and their identifiers, additional calculations are performed on the data, allowing the attributes to be changed. 3. Способ по п. 1, характеризующийся тем, что выбор уровня масштаба осуществляется через предустановленные значения.3. The method according to claim 1, characterized in that the selection of the scale level is carried out through preset values. 4. Способ по п. 1, характеризующийся тем, что выбор уровня масштаба осуществляется динамически.4. The method according to claim 1, characterized in that the choice of the scale level is carried out dynamically. 5. Система формирования партиционированных витрин данных, содержащих геоданные, содержащая:5. A system for generating partitioned data marts containing geodata, containing: - по меньшей мере одно устройство обработки данных;- 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 performs the following steps: - получают на вход данные, включающие в себя: геоданные, список числовых значений от минимального до максимального значения уровня масштаба формируемых витрин данных и датасет с произвольными атрибутами, для формирования витрины данных;- receive data as input, including: geodata, a list of numerical values from the minimum to maximum value of the scale level of the generated data marts and a dataset with arbitrary attributes for forming a data mart; - проводят объединение полученных геоданных и датасета;- combine the received geodata and dataset; - на основе результата проведенного на предыдущем шаге объединения формируют тайлы и их идентификаторы для всех уровней масштаба формируемых витрин данных следующим образом:- based on the result of the combination carried out at the previous step, tiles and their identifiers are formed for all levels of scale of the generated data marts as follows: - для текущего уровня масштаба в цикле по идентификаторам тайлов получают все имеющиеся для этого тайла данные в объединенном датасете;- for the current level of scale in a cycle, using tile identifiers, all data available for this tile in the combined dataset is obtained; - преобразуют тайлы в формат для обработки витриной данных и сохраняют в памяти устройства хранения данных;- convert the tiles into a format for processing by the data mart and store them in the memory of the data storage device; - используют полученные тайлы в процессе эксплуатации хранилища данных для формирования партиционированных витрин данных, содержащих геоданные, следующим способом:- use the received tiles during the operation of the data warehouse to form partitioned data marts containing geodata in the following way: - выбирают необходимый уровень масштаба;- select the required scale level; - автоматически определяют все идентификаторы тайлов на текущем уровне масштаба;- automatically detect all tile IDs at the current zoom level; - запрашивают тайлы согласно определенным идентификаторам, создают и визуализируют соответствующие витрины данных.- request tiles according to certain identifiers, create and visualize corresponding data marts. 6. Система по п. 5, характеризующаяся тем, что при формировании тайлов и их идентификаторов производят дополнительные вычисления над данными, позволяющие изменять атрибуты.6. The system according to claim 5, characterized by the fact that when generating tiles and their identifiers, additional calculations are performed on the data, allowing the attributes to be changed. 7. Система по п. 5, характеризующаяся тем, что выбор уровня масштаба осуществляется через предустановленные значения.7. The system according to claim 5, characterized in that the choice of the scale level is carried out through preset values. 8. Система по п. 5, характеризующаяся тем, что выбор уровня масштаба осуществляется динамически.8. The system according to claim 5, characterized in that the choice of the scale level is carried out dynamically.
RU2023117213A 2023-06-29 Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation RU2811359C1 (en)

Publications (1)

Publication Number Publication Date
RU2811359C1 true RU2811359C1 (en) 2024-01-11

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001033427A3 (en) * 1999-10-25 2002-07-04 Oracle Corp Storing multidimensional data in a relational database
US20120158762A1 (en) * 2010-12-20 2012-06-21 Nokia Corporation Methods, apparatuses and computer program products for converting a geographical database into a map tile database
US20150193630A1 (en) * 2002-03-16 2015-07-09 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
RU2679173C1 (en) * 2017-10-13 2019-02-06 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method of dynamic visualization of geographic and heterogeneous information in a geographic information system and a computer-readable medium
RU2683690C1 (en) * 2017-12-27 2019-04-01 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Method and system for automatic generation of a program code for an enterprise data warehouse
US20190128679A1 (en) * 2017-10-27 2019-05-02 Mapbox, Inc. Efficient processing for vector tile generation
US20220156291A1 (en) * 2020-11-16 2022-05-19 Unfolded, Inc. Geospatial data analytics and visualization platform
RU2795902C1 (en) * 2022-04-20 2023-05-15 Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" Method and system for automated generation and filling of data marts using declaration description

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001033427A3 (en) * 1999-10-25 2002-07-04 Oracle Corp Storing multidimensional data in a relational database
US20150193630A1 (en) * 2002-03-16 2015-07-09 The Paradigm Alliance, Inc. Method, system, and program for an improved enterprise spatial system
US20120158762A1 (en) * 2010-12-20 2012-06-21 Nokia Corporation Methods, apparatuses and computer program products for converting a geographical database into a map tile database
RU2679173C1 (en) * 2017-10-13 2019-02-06 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method of dynamic visualization of geographic and heterogeneous information in a geographic information system and a computer-readable medium
US20190128679A1 (en) * 2017-10-27 2019-05-02 Mapbox, Inc. Efficient processing for vector tile generation
RU2683690C1 (en) * 2017-12-27 2019-04-01 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Method and system for automatic generation of a program code for an enterprise data warehouse
US20220156291A1 (en) * 2020-11-16 2022-05-19 Unfolded, Inc. Geospatial data analytics and visualization platform
RU2795902C1 (en) * 2022-04-20 2023-05-15 Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" Method and system for automated generation and filling of data marts using declaration description

Similar Documents

Publication Publication Date Title
Hughes et al. Geomesa: a distributed architecture for spatio-temporal fusion
US8819078B2 (en) Event processing for graph-structured data
US9098530B2 (en) Scalable rendering of large spatial databases
US9613055B2 (en) Querying spatial data in column stores using tree-order scans
EP2341451A1 (en) Optimizing data transfer time on graphics processor units
Xiao et al. Remote sensing image database based on NOSQL database
JP7202442B2 (en) System and method for real-time data aggregation on virtual cubes in a multidimensional database environment
US11841877B2 (en) System for regional database replication
US20230244695A1 (en) Materialized view sub-database replication
KR101628676B1 (en) System and method for storing large-scale scientific data
US20140379725A1 (en) On demand parallelism for columnstore index build
CN115918110A (en) Spatial search using key-value store
RU2811359C1 (en) Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation
Ghosh et al. Aid*: a spatial index for visual exploration of geo-spatial data
EP3422240B1 (en) Improving the security of a computer system
Zhong et al. Elastic and effective spatio-temporal query processing scheme on hadoop
EP3696688B1 (en) Locking based on categorical memory allocation
Tian et al. A fast location service for partial spatial replicas
CN112988836A (en) Digital migration space data management method
Kaplanis et al. HB+ tree: use hadoop and HBase even your data isn't that big
Liao et al. Optimizing data query performance of Bi-cluster for large-scale scientific data in supercomputers
Zhang et al. Distributed processing practice of the 3D city model based on HBase
Sumalatha et al. Study on Applications of SQL and Not only SQL Databases used for Big Data Analytics
Xiao et al. Ganos Aero: A Cloud-Native System for Big Raster Data Management and Processing
Zhou et al. Review of prime issues in big data storage