Frage

In einer Reporting-Anwendung ist es möglich, zu abstrahieren Berichtslogik und das Datenbankschemas Details?

Ich habe eine Reporting Services-Anwendung mit einer einigermaßen komplexen Berichtslogik, ich versuche, um die Anwendung zu einigen anderen Datenbanken zu migrieren. (Datenbanken, die für den gleichen Zweck gebaut werden, sondern von einer anderen Software-Häusern entwickelt.)

Ist es eine kluge Entscheidung, eine Web-Service / WCF-Schicht in der Mitte zu bedienen? Was sonst noch Optionen kann in Betracht gezogen werden?

War es hilfreich?

Lösung

Es wäre schwierig, diese Art der Sache in einer one-size-fits-all Art und Weise im allgemeinen Fall zu tun, aber man könnte eine dieser versuchen:

  • Erstellen Sie einige Ansichten über das Datenbankschema und schreibt den Bericht sprocs gegen jene. Dies bedeutet, dass Sie eine gewisse Flexibilität in dem zugrunde liegenden Datenbank-Schema und die Ansichten als eine Abstraktionsschicht verwenden können.

  • Erstellen Sie eine Art von Data-Warehouse Plattform und Schreiben eines ETL Prozess füllen Sie es aus den verschiedenen Datenquellen. Dies ist flexibler, aber mehr Aufwand zu bauen, und es wird nur von einer periodischen Auffrischungs arbeiten. Wenn das Ausmaß der Latenz für Ihre Anwendung akzeptabel ist, dann würde ich vorschlagen, dass das Data-Warehouse-System die bessere Lösung ist.

    Der entscheidende Vorteil eines Data Warehouse ist, dass es für das Reporting optimiert und verfügt über eine einheitliche Schnittstelle über alle Datenquellen - Sie können sie in eine einzige Datenbank mit einem Schema konsolidieren. Die Berichte werden gegen dieses Schema entwickelt. Das Hinzufügen von neuen Systemen wird durch das Schreiben eines ETL-Prozesses erreicht das Lager zu füllen; die Berichte auch weiterhin unabhängig von der Datenquelle arbeiten.

WCF ist ein Netzwerk-Kommunikationssystem. Sie werden feststellen, dass es schwierig diese Art von Architektur große Datenmengen auf einer Transaktionsbasis behandeln zu machen - ein Batch-Laden ETL-Prozess wäre viel effizienter. Wenn Sie jedoch eine Echtzeit-Feed (vielleicht für ein Trading-Floor-System) benötigen Sie in der Lage sein, es so etwas zu tun.

Wenn Sie einen möglichst niedrige Latenz-Feed nead wäre ein weiterer Ansatz, ein Genre des Werkzeugs Enterprise Information Integration genannt, zu untersuchen . Vielleicht ist das am weitesten verbreiteten Tool, das dies tun kann, ist eine Datenquellensicht SSIS die Sie eine gewisse Flexibilität bei der Abbildung beliebiger Datenquellen nicht geben zu einem einheitlichen Schema. Es ist nicht so anspruchsvoll wie die besten der Rasse EII-Tools, aber können Sie SSIS-Pakete oben drauf setzen und die als Datenquelle für Ihre Berichte verwenden, wenn Sie benötigen, um die Daten weiter zu transformieren.

Allerdings habe ich gebaut nie ein System wie diese aufgebaut, so kann ich nicht wirklich für bürgen, wie gut es funktioniert in der Praxis. Ich würde vermuten, dass es ziemlich zerbrechlich sein würde und schwer in Teile zu zerlegen, die Einheit getestet werden kann, so Entwicklung und Wartung werden sehr zeitaufwendig sein, für ein System von nicht-trivialer Komplexität.

Wenn Sie andere EII-Systeme auf dem Markt Dieser Link ist ein Verzeichnis von verschiedenen Artikeln über EII und einige andere EII Werkzeug Anbieter.

Andere Tipps

Ich bin mit NXC Data Warehouse-Vorschlag:

  • Wenn es sich um eine einmalige Aufgabe war es, nein, aber da es sich um eine „Reporting-Anwendung“ ist, ist es sehr wahrscheinlich, dass viele Ihrer Berichte in die OLAP-Paradigma passen.
  • Es ist offensichtlich eine do-able Aufgabe, da es viele erfolgreichen OLAP-Abfrage-Tools auf dem Markt erhältlich sind, mit degress unterschiedlicher Komplexität
  • OLAP-Schema, zum Beispiel des Standard Sternschema , ist entwickelt leicht abfragen sein. Sie sind flach in der Natur, mit der Faktentabelle Beitritt zu einem oder mehreren Maßtabellen mit einfachen Tasten in eine sehr einfachen Art und Weise.
  • die Arten von Operationen wollen die Menschen mit den Berichten zu tun, sind vorhersehbar: Filter, Sortieren, Gruppieren durch, Spalten hinzufügen oder entfernen, den Export in CSV, usw.
  • .
  • Sie werden ein gutes Maß an Flexibilität mit den Berichten erhalten, die generiert bekommen - die Fähigkeit, Daten für verschiedene Beziehungen zu erkunden, ist sehr süchtig
  • , wenn Sie das Abfrage-Tool zu schreiben, ist es tragbar für die Wiederverwendung mit einem anderen Sternschema - nicht schlecht
  • !
  • „Ist es möglich, zu abstrahieren Berichtslogik und die Datenbankschema Details?“ - ja, OLAP-Schemata sind für genau diese - sie machen alle Daten zu einem standardisierten Schema entsprechen. Natürlich bewegt sich diese Geschäftslogik in die ETL-Schicht, aber ich würde behaupten, dass ist, wo es hingehört.

Also, sind Sie verpflichtet, ETL mit diesem Ansatz zu tun - eine Option ist eine Form von ROLAP zu tun , aber in der Praxis habe ich gefunden, so einfach zu seinen ETL-Skripte zu schreiben, wie es gute Leistung aus einem ROLAP-Setup schmeicheln.

Eine Antwort, die ich denke, im Allgemeinen zurück kommen Sie in den Rücken zu beißen, aber das andere Ich weiß, wie, ist es, die Daten als XML aus jeder Datenbank zu erzeugen. Das gibt Ihnen einen einheitlichen Satz von Daten in einer Form, dass die meisten Produkte lassen sich einfach handhaben.

Wenn Sie dies tun, stellen Sie sicher, dass die XPath-Abfragen Sie es laufen wird schnell sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top