oceanquery - język zapytań edytora raportów
DESCRIPTION
Slajdy z konferencji KKNTPD 26.09.2007TRANSCRIPT
- 1. OceanQuery Jzyk zapyta edytora raportw KKNTPD 2007 Marcin Stefaniak Uniwersytet Warszawski ukasz Kamiski Comarch SA
2. Plan prezentacji
- Edytor raportw Ocean GenRap
- OceanQuery
- Porwnianie z XQuery
- Testy wydajnoci
- Co i jak robi inni
3. Cesarzowi, co cesarskie
- OceanQuery jzyk zapyta w OCEAN GenRap.
- OCEAN GenRap jest edytorem raportw stworzonym przez dzia R&D Comarch w Warszawie.
-
- http:// genrap.comarch.pl/
- Wdraany i nagradzany
-
- CDN Optima (kilkadziesit tysicy uytkownikw).
-
- Comarch BSS (Iran, Belize, Litwa, ...)
-
- Nagroda za innowacyjno na CeBIT 2007
- Prezentowanie wyniki zostay czciowo uzyskane w ramach projektu SPOWKP Nowa generacja jzykw zapyta dla inteligentnego raportowania i analizy danych
4. Edytor raportw GenRap
- Wizualny edytor i generator raportw
- Dostp do schematu rda danych.
- Umieszczanie danych na raporcie.
- Operacje wytnij i wklej
-
- zasada kompozycjonalnoci
5. Edytor raportw GenRap
- Koncept: w peni WYSIWYG edytor
-
- Edytujemy na wypenionym raporcie raczej ni na schemacie
-
- Pokazujemy domylnie cay raport
- Podstawowe wymaganie: obsuga baz SQL
- Jedno zapytanie SQL nam nie wystarcza
-
- Wynik zapytania SQL jest tablic 2D
-
- Schemat raportu jest drzewiasty
6. OceanQuery
- Gdyby z GenRapa zostawi GUI i udostpni API dla sterownikw rde danych...
- Taki sterownik musiaby implementowa:
-
- Wyciganie schematu danych (metadane)
-
- ciganie danych dla zapytania OceanQuery
- rda danych w GenRap
-
- SQL relacyjne bazy danych
-
- OWB hurtownie danych
-
- plik XML (w pamici)
7. OceanQuery - metadane
- Model sieciowy, nazewnictwo z modelu ER
-
- Encje (entity) i powizania (relationship)
-
- Powizania s jednokierunkowe
-
- Powizania spojedynczelubmnogie
-
- Encje maj atrybuty
-
-
- Typy proste: integer, boolean, decimal, string, datetime
-
-
- Encja moe byuomna
-
-
- Tabela bez zdefiniowanego klucza gwnego
-
8. OceanQuery - metadane
- SQL
-
- Tabele -> encje
-
- Klucze obce -> zwizki
- XML
-
- XSD opis struktury danych
-
- Elementy -> encje, zagniedanie -> zwizki
- OWB (hurtownie danych)
-
- Fakty -> encja
-
- Wymiary -> encje
-
- Hierarchie -> relacje
9. OceanQuery realizacja zapyta
- SQL
-
- Wszystkie obliczenia po stronie serwera
-
- Zazwyczaj staa liczba zapyta
-
- Diabe tkwi w szczegach
- XML
-
- Prosty interpreter zapyta
-
- W pamici operacyjnej
- OWB (hurtownie danych)
-
- Analogicznie do SQL (uycie SQL z MDX - trudniej)
10. OceanQuery jzyk zapyta
- Drzewiasta struktura
-
- odpowiadajca strukturze schematu raportu
- Wyraenia iteracyjne
-
- w tabelach raportu
- Wyraenia skalarne
-
- w polach raportu
11. OceanQuery jzyk zapyta
- Nie ma oficjalnej, naturalnej skadni
-
- Wprowadzamy nieoficjaln w artykule
- Podobny to XQuery, ale
-
- Z jawn konstrukcj do grupowania (group-by)
-
- Troszk bardziej statycznie typowany
-
-
- Wykorzystanie licznoci zwizkw
-
-
- Bez definiowania funkcji
-
- Nie zaley od XML
12. Co to jest XQuery
- Jzyk zapyta dla XML, rodem z W3C
- XQuery 1.0 Recommendation (23.I.2007)
-
- pierwszy Working Draft=4.5
- RETURN {
- name: $s.name
- surname: $s.surname
- bad_no:COUNT($s/degrees WHERE $d.degree 18. Testy wydajnoci
- Mae porwnanie 3 zapytania
- Silniki Ocean Query:
-
- GR/XML interpreter w pamici
-
- GR/SQL realizacja na MSSQL 2000.
- Silniki XQuery
-
- Saxon 8.9.0.3N.
-
- MonetDB/XQuery v4.0.
19. Testy wydajnoci
- Konkluzja
-
- realizacja poprzez GR/SQL najwydajniejsza
- Szczegy w artykule
20. Niektre publikacjena zblione tematy
- Realizacja XQuery przez SQL
-
- Dowolne bazy danych, podzbir XQuery
-
- Specjalna posta bazy danych
- Propozycja grupowania w XQuery BEA
21. Realizacja XQuery poprzez SQL
- SilkRoute (2002, ACM TODS)
-
- Dowolna zawarto bazy
-
-
- klucze gwne zawsze istniej
-
-
- Podzbir XQuery (np. bez porzdku elementw)
-
- Troch optymalizacji
-
- Bez uwzgldnienia grupowa
-
- Realizacja na PostgreSQL
22. Realizacja XQuery poprzez SQL
- SilkRoute II
-
- 2006 Technical Report, Univ Washington, Seattle
-
- Rne optymalizacyjne techniki
-
- Realizacja na rnych docelowych silnikach SQL
23. Realizacja XQuery poprzez SQL
- Dynamic Interval Encoding (SIGMOD 2003)
-
- dokumenty XML zapisane w bazie SQL
-
- Dodatkowe kolumny z numerami opisuj drzewo
-
- Pene wsparcie dla osi (axis) XML
- XQuery on SQL Hosts (VLDB 2004)
-
- Podobne do j.w.
-
- Wykorzystuje OLAP-owe DENSE_RANK()
24. Propozycja grupowania w XQuery
- BEA XQuery Engine
- Extending XQuery with Groupping, Duplicate Elimination and Outer Joins (XML 2004)
- Opcjonalna klauzula group-by w FLWOR
For $c in CUSTOMERS() group $c as $cs-group by$c/COUNTRY as $country, $c/STATE as $state return { fn:avg($cs-group/AGE)} 25. Propozycje grupowania
- BEA XQuery
-
- Jedno grupowanie na wyraenie iterujce
- OceanQuery
-
- GROUPBY jest rodzajem wyraenia iterujcego
-
- GROUPBY(GROUPBY(...), ...) - jest dozwolone skadniowo, ale zabronione dla zasady
- Oba rozwizania s rwnowane
26. Dzikuj! Pytania?