PL233157B1 - Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe - Google Patents

Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe

Info

Publication number
PL233157B1
PL233157B1 PL423219A PL42321917A PL233157B1 PL 233157 B1 PL233157 B1 PL 233157B1 PL 423219 A PL423219 A PL 423219A PL 42321917 A PL42321917 A PL 42321917A PL 233157 B1 PL233157 B1 PL 233157B1
Authority
PL
Poland
Prior art keywords
block
module
data
input
mask
Prior art date
Application number
PL423219A
Other languages
English (en)
Other versions
PL423219A1 (pl
Inventor
Marcin Gorawski
Anna Gorawska
Krzysztof Pasterak
Michał Gorawski
Original Assignee
Politechnika Slaska
Politechnika Slaska Im Wincent
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 Politechnika Slaska, Politechnika Slaska Im Wincent filed Critical Politechnika Slaska
Priority to PL423219A priority Critical patent/PL233157B1/pl
Publication of PL423219A1 publication Critical patent/PL423219A1/pl
Publication of PL233157B1 publication Critical patent/PL233157B1/pl

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Opis wynalazku
Przedmiotem wynalazku jest sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe klasy SIMD przeznaczone do wykonywania między innymi w układach GPU (ang. Graphics Processing Unit).
Proces ekstrakcji i transformacji danych zwyczajowo nazywany jest procesem ETL (ang. Extraction, Transformation and Load). Jego zadaniem jest pobranie danych z różnych, heterogenicznych często źródeł, dokonanie na nich szeregu przekształceń, a następnie zapisanie w docelowym formacie w formie jednego spójnego zbioru danych. Proces ETL najczęściej wykorzystywany jest w systemach hurtowni danych jako źródło danych.
Przykładowym zastosowaniem procesu ekstrakcji i transformacji danych pomiarowych jest wyznaczanie rekoncyliacji danych paliwowych pochodzących ze stacji paliw.
Celem powyższej operacji jest obliczenie wartości bilansu pomiędzy kolejnymi pomiarami objętości paliwa wypompowanego ze zbiornika paliwa a objętościami paliwa sprzedanego za pośrednictwem dystrybutorów paliwa.
Dotychczas, proces ETL odbywał się w porach niskiego obciążenia hurtowni danych, przykładowo podczas nocy. Wiąże się to z dwoma konsekwencjami - po pierwsze podczas ładowania danych (działania procesu ETL) hurtownia danych jest nieaktywna, tzn. nie można z niej korzystać, a po drugie w momencie korzystania z hurtowni danych użytkownicy operują na obrazie danych od momentu ostatniej aktualizacji, tj. nie widzą nowych danych, aż do czasu kolejnej aktualizacji.
Dotychczas, w ramach działania procesu ETL wykorzystywało się normalne przetwarzanie danych, tj. rekord po rekordzie. Ponadto, zazwyczaj dokonywanie przekształceń na danych wykonywane było na normalnym procesorze, nie procesorze graficznym.
Celem wynalazku jest opracowanie sposobu ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystującego obliczenia równoległe klasy SIMD przeznaczone do wykonywania między innymi na układach GPU, stosując do tego celu organizowanie danych pomiarowych w bloki oraz grupowanie rekordów w ramach poszczególnych bloków zgodnie z wartością identyfikatora źródła, w celu ułatwienia i przyspieszenia wykonywania przekształceń na danych, dzięki przechowywaniu danych pochodzących z pojedynczego źródła w jednym, spójnym obszarze pamięci. Ponadto, proponowane rozwiązanie jest przeznaczone do pracy w trybie online, tzn. podczas normalnego funkcjonowania hurtowni danych.
Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe polega na tym, że w module formowania bloków formuje się wejściowe dane pomiarowe w bloki danych, następnie poddaje się je operacji wyznaczania statystyk wstępnych w module statystyk wstępnych i otrzymuje się: tablicę liczebności, tablicę pozycji oraz tablicę indeksów, z których korzysta moduł grupowania wykorzystujący blok danych, w wyniku jego działania powstaje pogrupowany blok danych, który jest przekazywany na wejście modułu transpozycji, który produkuje transponowany blok pogrupowanych danych stanowiący wejście dla modułu różnicy, w wyniku którego powstaje blok różnic wykorzystywany przez moduł generowania maski ID oraz moduł generowania maski czasu, na których wyjściach powstają odpowiednio: blok maski ID oraz blok maski czasu, które są podawane na wejście modułu iloczynu, który produkuje blok maski wykorzystywany przez moduł nakładania maski, wykorzystujący dodatkowo blok różnic do wytworzenia bloku podzielonych danych, który stanowi wejście dla modułu sumującego, w wyniku działania którego powstaje blok przedziałów, wykorzystywany przez moduł rekoncyliacji, produkujący blok przedziałów rekoncyliacji stanowiący wejście dla modułu filtracji, na którego wyjściu powstaje blok przefiltrowanych danych wykorzystywany przez moduł wykrywania trendów, produkujący blok trendów, który podawany jest na wejście modułu zapisu, po czym zapisuje dane do bazy danych.
Zaletą rozwiązania według wynalazku jest wykorzystywanie modelu równoległości SIMD przeznaczonego do implementacji między innymi w układach GPU.
Przedmiot wynalazku został objaśniony w przykładzie wykonania na rysunku, który przedstawia schemat sposobu ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe.
Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe wykorzystuje dane pomiarowe (1) pochodzących z sieci czujników rejestrujących różne parametry świata rzeczywistego. Dane te zorganizowane są w formie rekordów, z których każdy składa
PL 233 157 B1 się ze znacznika czasowego, identyfikatora źródła (ID) oraz zbioru atrybutów niosących wartości poszczególnych pomiarów. Ponadto, dane te są posortowane zgodnie ze znacznikami czasowymi w porządku niemalejącym (w taki sam sposób, w jaki są generowane). Oznacza to jednak, że nie są one pogrupowane zgodnie z wartościami identyfikatorów źródeł, co wpływa negatywnie na szybkość przetwarzania danych, ze względu na konieczność częstej zmiany kontekstu i odwoływania się do danych znajdujących się w różnych obszarach pamięci. Na wstępie dane pomiarowe (1) są formowane w bloki danych (3) w module formowania bloków (2). Rozmiar każdego bloku jest wyznaczany na podstawie jego rozpiętości czasowej, wyznaczanej na podstawie znaczników czasowych poszczególnych rekordów wchodzących w jego skład. Blok danych (3) stanowi podstawę do wyznaczenia statystyk wstępnych, co ma miejsce w module statystyk wstępnych (4). Statystyki te to kolejno: tablica liczebności (5), tablica pozycji (6) oraz tablica indeksów (7). Tablica liczebności (5) zawiera tyle elementów, ile występuje różnych wartości ID w danych, a jej elementy to liczby rekordów o odpowiadającej wartości ID. Tablica pozycji (6) zawiera tyle elementów, ile rekordów znajduje się w bloku danych (3), a jej elementy to kolejne wartości liczników wystąpień konkretnych wartości ID na kolejnych pozycjach w bloku danych (3). Tablica indeksów (7) zawiera tyle elementów, ile występuje różnych wartości ID w danych, a jej elementy to początkowe elementy w docelowym, tj. pogrupowanym bloku danych (9). Na podstawie tych trzech statystyk, za pośrednictwem modułu grupowania (8), wykorzystującego dodatkowo blok danych (3) powstaje pogrupowany blok danych (9), zgodnie ze wzorem:
i' = I[id] + P[i] D’[i’] = D[i] gdzie: I - tablica indeksów, P - tablica pozycji, D - blok danych przed operacją grupowania, D - pogrupowany blok danych, i - indeks rekordu w bloku danych przed operacją grupowania, i’ indeks rekordu w pogrupowanym bloku danych, id - wartość ID otrzymana z danego rekordu. Rekordy składające się na niego są pogrupowane względem wartości identyfikatora źródła, z którego pochodzą, przy czym zachowany jest porządek niemalejący znaczników czasowych w obrębie każdej grupy. Pogrupowany blok danych (9) podawany jest na wejście modułu transpozycji (10), które zadaniem jest odwrócenie zapisu - z wierszowego na kolumnowy (analogicznie jak w przypadku wykonywania operacji transpozycji macierzy). Dzięki temu wartości poszczególnych atrybutów kolejnych rekordów znajdują się w jednym spójnym obszarze pamięci, co wpływa pozytywnie na łatwość i szybkość wykonywania na nich obliczeń. W wyniku powstaje transponowany blok pogrupowanych danych (11), który stanowi wejście dla modułu różnicy (12). Jego zadaniem jest obliczenie różnic pomiędzy kolejnymi wartościami pomiarów (pochodna dyskretna). Kolejne wartości różnic formują się w blok różnic (13), który stanowi podstawę do obliczenia dwóch masek. Odbywa się to odpowiednio w module generowania maski ID (14) oraz module generowania maski czasu (15). W rezultacie otrzymywane są kpłejno: blok maski ID (16) oraz blok maski czasu (17). Maski te są macierzami o liczbie kolumn równej liczbie rekordów w bloku różnic (13) i liczbie wierszy równej liczbie różnych wartości ID (w przypadku maski ID) lub liczbie przedziałów czasowych (w przypadku maski czasu). Zawierają one wartość 1 na pozycjach odpowiadających rekordom danej wartości ID lub rekordom o znacznikach czasowych należących do danego przedziału czasowego. Na pozostałych pozycjach znajdują się wartości 0. Maski te podawane są na wejście modułu iloczynu (18), którego zadaniem jest obliczenie iloczynu logicznego pomiędzy elementami obu masek. W wyniku powstaje blok maski (19), który jest macierzą o liczbie kolumn równej liczbie rekordów w bloku różnic (13) a liczbie wierszy równej liczbie kombinacji wszystkich wierszy obu masek. Na pozycjach bloku maski (19) odpowiadających rekordom w bloku różnic (13), które powinny być przetwarzane razem (o danej wartości ID należące do pojedynczego przedziału czasowego) znajdują się wartości 1, a na pozostałych - wartości 0. Blok maski (19) wykorzystywany jest przez moduł nakładania maski (20), który dodatkowo wykorzystuje blok różnic (13). Zadaniem modułu nakładania maski (20) jest wykonanie iloczynu arytmetycznego pomiędzy elementami maski, a elementami bloku różnic (13). W wyniku powstaje blok podzielonych danych (21), który jest macierzą o liczbie kolumn równej liczbie rekordów w bloku różnic (13), a liczbie wierszy równej liczbie wierszy bloku maski (19). W każdym wierszu bloku podzielonych danych (21) znajdują się tylko te elementy, które powinny być przetworzone razem (o danej wartości ID i należące do pojedynczego przedziału czasowego), pozostałe elementy tego bloku mają wartość 0 (co stanowi zarazem element neutralny operacji dodawania). Blok podzielonych danych (21) stanowi wejście dla modułu sumującego (22), którego zadaniem jest zsumowanie bloku podzielonych danych (21) wierszami. W wyniku powstaje blok przedziałów (23), który jest wektorem o liczbie elementów równej liczbie kombinacji wartości ID i przedziałów czasowych. Blok przedziałów (23) stanowi wejście dla modułu rekoncyliacji (24), którego zadaniem jest przeprowadzenie operacji
PL 233 157 B1 rekoncyliacji (bilansowania), na danych pochodzących ze zbiorników paliwa oraz dystrybutorów paliwa. Oblicza on wartość różnicy (bilansu) pomiędzy odpowiadającym sobie wartościom pochodzącym z obu odpowiadających sobie źródeł (o tej samej wartości ID, ale z różnych typów urządzeń) i należących do tego samego przedziału czasowego. W wyniku powstaje blok przedziałów rekoncyliacji (25), który jest wektorem o liczbie elementów równej liczbie elementów bloku przedziałów (23). Blok przedziałów rekoncyliacji (25) jest podawany na wejście modułu filtracji (26), który jest odpowiedzialny za przeprowadzenie operacji filtrowania danych. Na jego wyjściu powstaje blok przefiltrowanych danych (27), który stanowi podstawę do dalszej analizy danych, która przeprowadzana jest w module wykrywania trendów (28). W wyniku powstaje blok trendów (29), który zawiera informacje o znalezionych w danych trendach, które posłużą w dalszej kolejności do wykrywania różnego rodzaju anomalii i innych zjawisk niepożądanych, które są przedmiotem zaawansowanej analizy, przeprowadzanej poza opisywanym tutaj procesem ekstrakcji i transformacji danych pomiarowych. Blok trendów (29) wykorzystywany jest przez moduł zapisu (30), który dokonuje operacji zapisu danych do bazy danych (31).
Grupowanie rekordów w ramach poszczególnych bloków zgodnie z wartością identyfikatora źródła wykorzystuje się do ułatwienia i przyśpieszenia wykonywania przekształceń danych, dzięki przechowywaniu danych pochodzących z pojedynczego źródła w jednym spójnym obszarze pamięci.

Claims (1)

  1. Zastrzeżenie patentowe
    1. Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe znamienny tym, że w module formowania bloków (2) formuje się wejściowe dane pomiarowe (1) w bloki danych (3), następnie poddaje się je operacji wyznaczania statystyk wstępnych w module statystyk wstępnych (4) i otrzymuje się: tablicę liczebności (5), tablicę pozycji (6) oraz tablicę indeksów (7), z których korzysta moduł grupowania (8) wykorzystujący blok danych (3), w wyniku jego działania powstaje pogrupowany blok danych (9), który jest przekazywany na wejście modułu transpozycji (10), który produkuje transponowany blok pogrupowanych danych (11) stanowiący wejście dla modułu różnicy (12), w wyniku którego powstaje blok różnic (13), wykorzystywany przez moduł generowania maski ID (14) oraz moduł generowania maski czasu (15), na których wyjściach powstają odpowiednio: blok maski ID (16) oraz blok maski czasu (17), które są podawane na wejście modułu iloczynu (18), który produkuje blok maski (19) wykorzystywany przez moduł nakładania maski (20), wykorzystujący dodatkowo blok różnic (13) do wytworzenia bloku podzielonych danych (21), który stanowi wejście dla modułu sumującego (22), w wyniku działania którego powstaje blok przedziałów (23), wykorzystywany przez moduł rekoncyliacji (24), produkujący blok przedziałów rekoncyliacji (25) stanowiący wejście dla modułu filtracji (26), na którego wyjściu powstaje blok przefiltrowanych danych (27) wykorzystywany przez moduł wykrywania trendów (28), produkujący blok trendów (29), który podawany jest na wejście modułu zapisu (30), po czym zapisuje dane do bazy danych (31).
PL423219A 2017-10-20 2017-10-20 Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe PL233157B1 (pl)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PL423219A PL233157B1 (pl) 2017-10-20 2017-10-20 Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PL423219A PL233157B1 (pl) 2017-10-20 2017-10-20 Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe

Publications (2)

Publication Number Publication Date
PL423219A1 PL423219A1 (pl) 2019-04-23
PL233157B1 true PL233157B1 (pl) 2019-09-30

Family

ID=66167918

Family Applications (1)

Application Number Title Priority Date Filing Date
PL423219A PL233157B1 (pl) 2017-10-20 2017-10-20 Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe

Country Status (1)

Country Link
PL (1) PL233157B1 (pl)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101587477B (zh) * 2008-05-23 2012-10-31 阿里巴巴集团控股有限公司 Etl模块自动维护方法及系统
CN101533407B (zh) * 2009-04-10 2010-09-29 中国科学院软件研究所 一种etl流程中异常数据检测方法
US20170220654A1 (en) * 2016-02-03 2017-08-03 Wipro Limited Method for automatically generating extract transform load (etl) codes using a code generation device
CN105930384A (zh) * 2016-04-14 2016-09-07 南京理工大学 基于Hadoop体系的传感云数据存储系统及其实现方法
CN107169023A (zh) * 2017-04-07 2017-09-15 广东精点数据科技股份有限公司 基于sql语义自动解析的数据血统分析系统及方法

Also Published As

Publication number Publication date
PL423219A1 (pl) 2019-04-23

Similar Documents

Publication Publication Date Title
RU2019124224A (ru) Способ и аппаратура для записи служебных данных в цепочку блоков и способ для определения поднабора услуг
Carrea et al. Automatic rockfalls volume estimation based on terrestrial laser scanning data
CN108170639A (zh) 基于分布式环境的张量cp分解实现方法
WO2021169386A1 (zh) 一种图数据处理方法、装置、设备、介质
Zhou et al. A streaming framework for seamless building reconstruction from large-scale aerial lidar data
Zhao et al. Sflu: Synchronization-free sparse lu factorization for fast circuit simulation on gpus
Kalo et al. Sensing air quality: Spatiotemporal interpolation and visualization of real-time air pollution data for the contiguous United States
Andrzejewski et al. Parallel gpu-based plane-sweep algorithm for construction of icpi-trees
PL233157B1 (pl) Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe
Duggan Using R libraries to facilitate sensitivity analysis and to calibrate system dynamics models.
CN104598600B (zh) 一种基于分布式内存的并行数字地形分析优化方法
CN105868402A (zh) 面向飞机维修品质分析的qar数据预处理方法及其装置
Chatterjee et al. Data structures and algorithms for counting problems on graphs using gpu
Hafstein Efficient Algorithms for Simplicial Complexes Used in the Computation of Lyapunov Functions for Nonlinear Systems.
Sane et al. Scalable in situ computation of Lagrangian representations via local flow maps
CN111160385B (zh) 海量位置点聚合的方法、装置、设备及存储介质
CN110907960B (zh) 基于K-Means动态聚类分析的周跳探测方法及装置
CN108763282B (zh) 基于数据立方体的bi筛选改进算法
RU2470365C1 (ru) Устройство для технико-экономической оценки выполнения научно-исследовательских и опытно-конструкторских работ
CN113986727B (zh) 基于热力图的函数覆盖率检测方法、系统、终端及介质
Zhang et al. Spark-Enabled XDraw Viewshed Analysis
von Rüden et al. Separating the wheat from the chaff: Identifying relevant and similar performance data with visual analytics
Scicluna et al. Fpga-based parallel dbscan architecture
Santos et al. Geo-spatial analytics using the dynamic ST-SNN Approach
Verschelde et al. GPU acceleration of Newton's method for large systems of polynomial equations in double double and quad double arithmetic