Strumieniowe bazy danych. Piotr i Paweł

Podobne dokumenty
Strumieniowe bazy danych

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Strumieniowe bazy danych

Podejście obiektowe do relacyjnych baz danych Hibernate.

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Tworzenie aplikacji w języku Java

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Db4o obiektowa baza danych wersja.net

Zaawansowane aplikacje internetowe

Wykład 6 Dziedziczenie cd., pliki

Programowanie obiektowe

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Programowanie obiektowe

Programowanie wielowarstwowe i komponentowe

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Zaawansowane aplikacje WWW - laboratorium

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Podstawy otwartych języków programowania Przechowywanie danych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie obiektowe i zdarzeniowe

Metody dostępu do danych

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Instrukcja laboratoryjna cz.3

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Wykład 2: Podstawy Języka

Hibernate mapowanie baz danych

Programowanie obiektowe

Programowanie obiektowe

Aplikacje RMI

Definicje klas i obiektów. Tomasz Borzyszkowski

Język C++ Różnice między C a C++

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Wprowadzenie do JDBC z wykorzystaniem bazy H2

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Zastosowanie słuchaczy zdarzeń wg

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Podstawy programowania obiektowego

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Klasy abstrakcyjne i interfejsy

Programowanie obiektowe

Programowanie w języku Java. Kolekcje

JAVA W SUPER EXPRESOWEJ PIGUŁCE

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

PROGRAMOWANIE FUNKCYJNE

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Plan wykładu. Wstęp. Charakterystyka DSMS. Przetwarzanie zapytań w DSMS. Otwarte problemy badawcze

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

Podstawy programowania. Podstawy C# Tablice

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Enkapsulacja, dziedziczenie, polimorfizm

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Java Język programowania

Diagramy klas. dr Jarosław Skaruz

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie Obiektowe GUI

Wykład 5 Okna MDI i SDI, dziedziczenie

Współbieżność w środowisku Java

Dokumentacja do API Javy.

Programowanie w języku Java. Bazy danych SQLite w Javie

Wykład 4: Klasy i Metody

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Instrukcja implementacji sterownika wirtualnego portu szeregowego dla systemu Android. Opracowanie: Elzab Soft sp. z o.o.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Bartosz Jachnik - Kino

Alicja Marszałek Różne rodzaje baz danych

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Platformy Programistyczne Podstawy języka Java

Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Programowanie obiektowe

Post-relacyjne bazy danych

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Algorytmy i Struktury Danych. Anna Paszyńska

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2

Programowanie zdarzeniowe

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

PL/SQL. Zaawansowane tematy PL/SQL

Programowanie obiektowe

Transkrypt:

Strumieniowe bazy danych Piotr i Paweł

Źródła zapotrzebowania na DSMS Finanse (giełda, przewidywanie trendów, wykrywanie defraudacji, szacowanie ryzyka) Zarządzanie ruchem i wydajnością sieci telekomunikacyjnych i komputerowych, serwerów WWW Przetwarzanie danych z sieci czujników (sterowanie ruchem) Zarządzanie procesami biznesowymi i ich automatyzacja

Charakterystyka DSMS Bazy danych czasu rzeczywistego Umożliwiają przechowywanie zapytań i wywoływanie ich na przepływających danych (strumieniach) Zapytania wywoływane są w sposób ciągły Konieczność stosowania algorytmów jednoprzebiegowych

Model DSMS

Strumienie wejściowe

Strumień: Definicja strumienia Seria krotek uporządkowanych za pomocą znaczników czasowych Para (s, ), s jest krotką, a znacznikiem czasowy Strumień S: <nazwa, wartość, > <XXXX, 12, 7:05> <YYYY, 13, 7:06> <XXXX, 17, 7:10> <YYYY, 11, 7:12>

Rodzaje zdarzeń Zdarzenie w bazie danych Esper może być reprezentowane przy pomocy jednego z następujących obiektów Javowywch 2011 EsperTech Inc. - Esper 4.1.0

POJO Plain-Old Java Object Zdarzenia POJO są to instancje obiektów, które umożliwiają odczytanie właściwości przy pomocy Javowej metody typu get Klasy reprezentujące zdarzenia powinny być niezmienialne aczkolwiek nie jest to restrykcyjne

Typy właściwości zdarzeń POJO Proste są reprezentowane przez pojedynczą wartość np. string Indeksowane przechowują kolekcje obiektów (tego samego typu) do których dostęp realizowany jest poprzez podanie całkowitego, nieujemnego indeksu Mapowane dostęp do właściwości zdarzenia realizowany jest przy pomocy klucza typu string Zagnieżdżone właściwość jest złożonym obiektem Javowym

Przykładowe zdarzenie POJO public class WejscieKibica{ public String getnazwisko(); public int getwiek(); public String getdruzyna(); } WejscieKibica k1 = new WejscieKibica( Kowalski, 25, Lech Poznan ); EPServiceProvider serviceprovider = EPServiceProviderManager.getDefaultProvider(); serviceprovider.getepruntime().sendevent(k1);

DSMS

DSMS Przechowuje zapytania wykonywane na strumieniach Przykładowe zapytanie w EPL: select firstname, address('work'), subordinate[0].name, subordinate[1].name from NewEmployeeEvent where address('work').streetname = 'Park Ave Za rejestrowanie zapytań w systemie Esper odpowiada metoda createepl() klasy EPAdministrator. Metoda ta zwraca obiekt typu EPStatement wykorzystywany do powiązania Listenerów z zapytaniem

Strumienie wyników

Strumienie wynikowe Strumienie zdarzeń będące wynikiem przetworzenia strumieni wejściowych przez zapytania przechowywane w DSMS. Istnieją dwa rodzaje strumieni wynikowych: Insert Stream (ISTREAM) Remove Stream (RSTREAM)

ISTREAM and RSTREAM ISTREAM zawiera każde nowe zdarzenie (new events) ze strumienia wejściowego, które spełnia warunki zapytania w DSMS RSTREAM zawiera każde zdarzenie, które w danym momencie opuszcza okno przetwarzania danych (old events) select istream druzyna from zad1.wejsciekibica.win:length(5) where wiek > 30; select rstream druzyna from zad1.wejsciekibica.win:length(5) where wiek > 30 select irstream druzyna from zad1.wejsciekibica.win:length(5) where wiek > 30

Okna Wyróżniamy 3 główne rodzaje okien: Length window Oparte na ilości pojawiających się zdarzeń Time window Oparte na czasie pojawienia się i określają czas istnienia w oknie Batch window Oparty na pakietach określonych czasem lub ilością zdarzeń

select * from Withdrawal.win:length(5) 2011 EsperTech Inc. - Esper 4.1.0

select * from Withdrawal.win:time(4 sec) 2011 EsperTech Inc. - Esper 4.1.0

select * from Withdrawal.win:time_batch(4 sec) 2011 EsperTech Inc. - Esper 4.1.0

Listener część aplikacyjna

Implementacja Definicja listenera: public class Listener implements com.espertech.esper.client.updatelistener { @Override public void update(eventbean[] newevents, EventBean[] oldevents) { ()); for ( int i = 0; i < newevents.length ; i++){ } System.out.println("ISTREAM : "+ newevents[i].getunderlying } ()); } for ( int i =0; i < oldevents. length ; i++) { System.out.println("RSTREAM : " + oldevents[i].getunderlying } System.out.println("------------");

Rejestracja zapytania

Stworzenie zapytania EPL: Implementacja String zapytanie = "select irstream druzyna from pkg.wejsciekibica.win:length(5) where wiek > 30"; EPStatement statement = serviceprovider.getepadministrator().createepl(zapytanie); Listener list = new Listener(); statement.addlistener(list);

Esper - sposób użycia Pobranie biblioteki ze strony: http://esper.codehaus.org/esper/download/download.html Rozpakowanie archiwum Dodanie do projektu pliku esper-4.2.0.jar oraz bibliotek z podkatalogu esper/lib

Ćwiczenie 1 Ćwiczenia http://sirius.cs.put.poznan.pl/~inf80144/upload/esper-kibic_bad.zip http://sirius.cs.put.poznan.pl/~inf80144/upload/esper-4.2.0.zip Dołączenie bibliotek Espera do powyższego projektu Ćwiczenie 2 http://sirius.cs.put.poznan.pl/~inf80144/upload/alarm.zip