oceanquery - język zapytań edytora raportów

Download OceanQuery - język zapytań edytora raportów

If you can't read please download the document

Upload: matmis

Post on 29-May-2015

2.153 views

Category:

Technology


10 download

DESCRIPTION

Slajdy z konferencji KKNTPD 26.09.2007

TRANSCRIPT

  • 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?