Posts mit dem Label Best-Practice werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Best-Practice werden angezeigt. Alle Posts anzeigen

2014-03-03

Früh übt sich wer ein langes Leben leben will

In meinem aktuellen Projekt habe ich mich unter anderem auch sehr intensiv mit dem Thema Gesundheit auseinander gesetzt.

Hierbei bin ich auf die Tatsache gestoßen, dass man den Grundstein für eine gute Gesundheit im Alter bereits in den früheren Jahren legen muss. Ein bewegungsreiches Leben an der frischen Luft ist hier ein wesentlicher Grundbaustein. Man wird (statistisch) nicht nur älter und ist im Alter vor allem mobiler und geistig fitter - man sieht dabei auch noch sein Leben lang jünger aus!

Ideal ist es natürlich, wenn man die Bewegung in seinen Alltag integriert, also zum Beispiel Treppen steigt, statt Fahrstuhl fährt etc. Praktisch ist es auch, wenn man sein Sportprogramm gut in den Tagesablauf integriert bekommt. Von meiner alten Firma aus konnte ich zum Beispiel an der Alster und der Wandse entlang nach Hause joggen. Das war für mich die optimale Kombination von Workout und Heimweg zur optimalen Zeit. Ich konnte auf der einen Seite meine Arbeit Revue passieren lassen und mir einen Plan für den folgenden Tag zurechtlegen und auf der anderen Seite abschalten und mich auf meine Freizeit freuen.

Wenn man ins Rentenalter kommt, sind die gesundheitlichen Weichen also längst gestellt und man kann nicht mehr all zu viel daran schrauben. Aber Vorsicht: Mit "bewegungsreichem Leben" ist nicht das harte Triatlon Training in Kombination mit einer 65h Woche gemeint. Übertreibe es nicht. Diese Kombination treibt dich eher in den Burnout, als in ein langes Leben. 
30 Minuten zügiges Spazierengehen oder wildes Toben mit den Kindern im Garten sind hier eher der Schlüssel zum Erfolg. In den kommenden Tagen habe ich auch noch einen passenden Tipp zum Thema für Bewegungsmuffel.


2012-06-12

Keep it Simple. At First. - Designing spielbasierte Tools für Kinder

Sarah Clue und Constance Steinkuehler beschreiben in "UX User Experience, Volume 10, Issue 1, 2011" (S.28ff), wie die World of Worcraft Entwickler es geschafft haben, das Interface so zu gestalten, dass es für Einsteiger einfach und übersichtlich ist und für erfahrene Spieler die notwendige Komplexität bietet, um alle benötigten Funktionen abzubilden.

  1. Das Interface ist beim Einstieg in das Spiel einfach gehalten und bietet nur die notwendigsten Funktionen. So können die Spieler am Anfang zum Beispiel einfaches Herumlaufen üben.

  2. Informationen und Funktionen werden erst nach und nach eingeführt - wenn der Spieler an entsprechende Stellen kommt, an denen er sie benötigt.

  3. Die Menge an geschriebenen Informationen ist auf ein Minimum reduziert. Es würde den Spieler eher stören, wenn am Anfang jede Minute ein neues Tutorial-Fenster aufpoppen würde.

  4. Individualisierung des Interfaces ist möglich: Spieler können selbst Interface-Addons entwickeln und installieren - je nach Bedarf und individuellem Gameplay. Dies optimiert nicht nur die Effizienz beim Spielen sondern fördert gleichzeitig auch die Community.


2011-04-20

MSSQL SSAS: MeasureGroups kombinieren

Ich baue zur Zeit ein Data Warehouse mit MSSQL Server 2008 auf.
Dabei bin ich aktuell beim Designen eines Cubes in den SSAS auf folgende Meldung gestoßen:
Warning 1 Cube [MyCube] : The 'M One' and 'M Two' measure groups have the same dimensionality and granularity. Consider unifying them to improve performance.
Best Practices for Data Warehousing with SQL Server 2008 auf MSDN Microsoft sagt hierzu folgendes:
Seriously consider the best practice advice offered by AMO [Analysis Management Objects] warnings

Gesagt, getan:

  1. Named Query erstellen: SELECT mOne.key, mOne.value AS value1, mTwo.value AS value2 FROM mOne JOIN mTwo ON mOne.key = mTwo.key (in meinem Fall sind die Keys in beiden Tabellen identisch)
  2. In der DataSource-View Schlüssel-Beziehungen bei der Named Query genau so wie bei den Tabellen mONE, bzw. mTWO setzen.
  3. Im Cube-Designer unter Measures per Rechtsklick die neue MeasureGroup hinzufügen.
  4. Speichern, bauen, Meldung weg, Performance optimiert!

2011-04-06

Mit Cubes und Dimensionen arbeiten 3: Best Practices Dimension Design

Ein weiterer Artikel in der Serie zum Microsoft SQL Server 2008 Analysis Services.


In diesem Artikel geht es um Best Practice Empfehlungen von Microsoft bei der Entwicklung von Cubes und Dimensionen für den SSAS.
  • Wenn immer möglich: Attribut-Relationen herstellen -> Performance, Integrität, ...
  • keine Attribute erzeugen, die nicht verwendet werden
  • keine redundanten Attribut-Relationen erzeugen. Existieren zB. A -> B und B -> C, dann ist Relation A -> C redundant -> kein Benefit, könnte aber Probleme verursachen
  • Dimension- u. Attribute-Type Property korrekt setzen, für Zeit-, Account- u. geographische Dimensionen
    • Type-Property immer für Dim. u. Attr. setzen.
    • Time-Attribute richtig interpretieren: [Month] vs. [Month of Year]

2011-02-10

Einen DWH-Cube erzeugen mit MS SQL Server 2008

Ein vorangegangener Post beschäftigt sich mit Allgemeinen Informationen für Anwender.

Dieser Post behandelt:

  • Technische Hintergründe, die zum Erstellen eines Cubes relevant sind.
  • Best-Practice Empfehlungen von Microsoft.

Von der Datenbank zum Cube

  1. Datasource (DS): Speichert Connection zu Ursprungsdaten <- können / sollten bereits aufbereitet sein
  2. DatasourceView (DSV): Abstrakte Schicht über DS (Joins über DSen, Subsets von Daten aus DS, Aggregate, Keys)
  3. Measures: numerische Werte, Fakten, die von Usern analysiert werden
  4. MeasureGroups: Logische Gruppierung von Measures
  5. Dimensions: Bringen Measures in einen Kontext -> sind in Hierarchien organisiert (zB. Tag -> Monat -> Jahr)
  6. Cube: Kombination von Dimensionen und Measures. Formen multidimensionale Struktur, die die aggregierten Werte der Measures über alle Dimensionen (entlang deren Hierarchien) enthällt.

Tools

  • Business Intelligence Development Studio: BI Solution erzeugen
  • Microsoft SQL Server Management Studio: BI Solution managen
  • Source Control for Analysis Services integrierbar

Datasources, DataSourceViews und Cubes mit Measures, MeasuereGroups und Dimensionen können über die Wizzards in den Microsoft-Tools einfach erstellt werden.


Zeit Dimensionen: zu beachten

  • mehrere Zeitdim. vs. eine Zeitdim. mit vielen Hierarchien (letzteres vorzuziehen)
  • Zeitdim. werden immer unabhängig von anderen Dimensionen behandelt
  • Zeitdim.-Tabelle lässt sich um eigene Hierarchiestufen erweitern
  • Server-Zeitdim. bereits verfügbar (es sollte also keine eigene Zeitdim. angelegt werden)

Cube Designer
Der Cube-Designer ist Bestandteil des Development Studios. In ihm kann man:

  • Cube-Struktur bearbeiten
  • KPIs, Actions, Cube-Partitionierung, Storage, Aggregationen und Perspektiven erzeugen und ändern
  • Übersetzungen zur Lokalisierung einrichten und pflegen
  • Cube brausen (wie in Excel) (nicht vergessen: erst deployen, dann reconnecten, dann brausen). "Browsen als ..." ist eine sinnvolle Funktion, um die Rolle eines Users anzunehmen. So kann man die Rechtevergabe prüfen.

Best-Practice Data Source Design

  • Microsoft OLEDB Provider für SQL Server (nicht .NET SqlClientDataProvider) verwenden -> nativer Code = bessere Performance

Best-Practice Cube Design

  • Non-related MeasureGroups in einem Cube vermeiden -> Performance. Optional kann ein Cross-Topic-Cube über linked MeasureGroups erzeugt werden.
  • AttributeHierarchyEnabled auf false setzen, für alle Cube-Attribute die granularer als das Update-Intervall des Cubes sind. (Beispiel: Zeit-Hierarchie Jahr bis Tag. Cube wird wöchentlich aktualisiert -> false für Attribute Tag -> verhindert User-Verwirrung)
  • Kleinsten möglichen numerischen Datentyp für Measures verwenden ("ALL"-Value muss rein passen) -> Speicherplatz

In einem folgenden Post wird es darum gehen, wie man mit Cubes und Dimensionen arbeitet.