TL;DR: Das Wichtigste auf einen Blick
Synthetic Keys entstehen bei mehreren gemeinsamen Feldern zwischen Tabellen und können die Performance drastisch beeinträchtigen. Lösungsstrategien: Feldumbenennung, Compound Keys, Star Schema und Qualifizierte Felder. Ein sauberes Star Schema mit einem zentralen Fact Table reduziert den Memory-Verbrauch um bis zu 70% und verbessert die Query-Performance um 3-5x.
Was sind Synthetic Keys in Qlik Sense?
Synthetic Keys sind anonyme Felder, die Qlik Sense automatisch erstellt, wenn zwei oder mehr Tabellen mehrere gemeinsame Felder haben. Diese Schlüssel repräsentieren alle möglichen Kombinationen der zusammengesetzten Schlüsselfelder.
Wie entstehen Synthetic Keys?
Wenn Tabelle A und Tabelle B die Felder ProductID UND CategoryID gemeinsam haben, erstellt Qlik Sense einen Synthetic Key, der alle Kombinationen dieser beiden Felder repräsentiert.
Tabelle: Sales
├── ProductID
├── CategoryID
├── Revenue
└── Date
Tabelle: Products
├── ProductID
├── CategoryID
├── ProductName
└── Price
→ Synthetic Key: ProductID + CategoryID
Warum sind Synthetic Keys ein Problem?
Obwohl Synthetic Keys technisch funktionieren, können sie erhebliche Performance- und Memory-Probleme verursachen, besonders bei großen Datenmengen.
Wie beeinflusst Performance Synthetic Keys in Qlik Sense 2025?
Kritische Probleme bei Synthetic Keys
- Exponentieller Memory-Verbrauch: Jeder zusätzliche Synthetic Key multipliziert den Speicherbedarf
- Cascade-Effekte: Verkettete Synthetic Keys können das gesamte Datenmodell destabilisieren
- Unvorhersagbare Performance: Schwankende Response-Zeiten je nach User-Selektionen
- Schwierige Fehlerdiagnose: Performance-Probleme sind schwer zu identifizieren
Wie identifizieren Sie Synthetic Keys in Qlik Sense?
Wie kann ich den Data Model Viewer verwenden?
Schritt-für-Schritt Identifikation im Data Model Viewer
- Data Manager öffnen: Navigation → Data Manager → Data model viewer
- Synthetic Keys suchen: Anonyme Tabellen mit Namen wie
$Syn 1,$Syn 2 - Verbindungen analysieren: Welche Tabellen sind über Synthetic Keys verbunden?
- Feldüberschneidungen prüfen: Welche Felder sind an der Synthetic Key Bildung beteiligt?
Wie funktioniert die script-basierte Erkennung in Qlik Sense?
// Synthetic Key Detection Script
// Tabellennamen anzeigen (inklusive Synthetic Keys)
FOR i = 0 TO NoOfTables() - 1
LET vTableName = TableName($(i));
// Prüfen ob Synthetic Key (beginnt mit $Syn)
IF Left('$(vTableName)', 4) = '$Syn' THEN
TRACE 'WARNUNG: Synthetic Key gefunden: $(vTableName)';
ENDIF
NEXT i
// Feldüberschneidungen zwischen Tabellen analysieren
FOR i = 0 TO NoOfTables() - 1
FOR j = $(i) + 1 TO NoOfTables() - 1
LET vTable1 = TableName($(i));
LET vTable2 = TableName($(j));
// Gemeinsame Felder zählen
LET vCommonFields = 0;
FOR k = 0 TO NoOfFields('$(vTable1)') - 1
LET vField = FieldName($(k), '$(vTable1)');
IF FieldIndex('$(vField)', '$(vTable2)') >= 0 THEN
LET vCommonFields = $(vCommonFields) + 1;
ENDIF
NEXT k
IF $(vCommonFields) > 1 THEN
TRACE 'WARNUNG: $(vCommonFields) gemeinsame Felder zwischen $(vTable1) und $(vTable2)';
ENDIF
NEXT j
NEXT i
Wie kann man Lösungsstrategien für Synthetic Keys in Qlik Sense anwenden?
Wie kann ich Feldumbenennung in Qlik Sense durchführen?
Implementierung: Das AS-Keyword verwenden
// Vor der Lösung: Beide Tabellen haben ProductID und CategoryID
// Sales Tabelle - CategoryID umbenennen
Sales:
LOAD
ProductID,
CategoryID AS SalesCategoryID, // Umbenennung zur Vermeidung von Synthetic Key
Revenue,
Date
FROM [lib://DataFiles/Sales.xlsx];
// Products Tabelle - CategoryID beibehalten
Products:
LOAD
ProductID, // Bleibt als Link-Feld
CategoryID, // Eindeutiger Name in dieser Tabelle
ProductName,
Price
FROM [lib://DataFiles/Products.xlsx];
// Ergebnis: Nur ProductID ist gemeinsam → Kein Synthetic Key
Wie erstellt man Compound Keys in Qlik Sense?
Implementierung: Zusammengesetzte Schlüssel erstellen
// Compound Key für eindeutige Identifikation
Sales:
LOAD
ProductID & '-' & CategoryID AS ProductCategoryKey, // Compound Key
ProductID,
CategoryID,
Revenue,
Date
FROM [lib://DataFiles/Sales.xlsx];
Products:
LOAD
ProductID & '-' & CategoryID AS ProductCategoryKey, // Identischer Compound Key
ProductID,
CategoryID,
ProductName,
Price
FROM [lib://DataFiles/Products.xlsx];
// Ergebnis: Eindeutige Verbindung über ProductCategoryKey
Wie implementiere ich ein Star Schema in Qlik Sense?
Implementierung: Eine optimale Datenmodell-Struktur
// Star Schema: Ein zentraler Fact Table + Dimension Tables
// Central Fact Table
FactSales:
LOAD
ProductID, // Link zu DimProducts
CustomerID, // Link zu DimCustomers
DateID, // Link zu DimDate
Revenue, // Measure
Quantity, // Measure
Discount // Measure
FROM [lib://DataFiles/Sales.xlsx];
// Dimension Tables (separate Verbindungen)
DimProducts:
LOAD
ProductID, // Primary Key
ProductName,
CategoryID,
CategoryName,
Price
FROM [lib://DataFiles/Products.xlsx];
DimCustomers:
LOAD
CustomerID, // Primary Key
CustomerName,
Region,
Country
FROM [lib://DataFiles/Customers.xlsx];
DimDate:
LOAD
DateID, // Primary Key
Date,
Year,
Quarter,
Month
FROM [lib://DataFiles/Calendar.xlsx];
// Ergebnis: Saubere 1:n Beziehungen, keine Synthetic Keys
Wie verwendet man das Qualify Statement in Qlik Sense?
Implementierung: Automatische Feldqualifizierung
// Qualify Statement für automatische Feldumbenennung
// Alle Felder mit Tabellennamen präfixen
QUALIFY *;
Sales:
LOAD
ProductID, // Wird zu Sales.ProductID
CategoryID, // Wird zu Sales.CategoryID
Revenue, // Wird zu Sales.Revenue
Date // Wird zu Sales.Date
FROM [lib://DataFiles/Sales.xlsx];
Products:
LOAD
ProductID, // Wird zu Products.ProductID
CategoryID, // Wird zu Products.CategoryID
ProductName, // Wird zu Products.ProductName
Price // Wird zu Products.Price
FROM [lib://DataFiles/Products.xlsx];
// Gemeinsames Link-Feld definieren
UNQUALIFY ProductID; // ProductID in beiden Tabellen ohne Präfix
// Ergebnis: Nur ProductID ist gemeinsam, andere Felder qualifiziert
Was sind die besten Praktiken für das Star Schema?
Das Star Schema ist die optimale Datenmodell-Struktur für Qlik Sense und vermeidet Synthetic Keys durch Design.
Was sind die Vorteile des Star Schema in Qlik Sense?
Wie implementiert man ein Star Schema in Qlik Sense?
| Komponente | Zweck | Felder | Best Practice |
|---|---|---|---|
| Fact Table | Zentrale Transaktionsdaten | Foreign Keys + Measures | Ein einziger großer Fact Table |
| Dimension Tables | Beschreibende Attribute | Primary Key + Attribute | Normalisierte, kleinere Tabellen |
| Date Dimension | Zeitbasierte Attribute | DateID + Kalenderhierarchien | Immer als separate Dimension |
| Bridge Tables | Many-to-Many Beziehungen | Foreign Keys | Nur wenn unbedingt notwendig |
Wie optimiere ich einen Workflow zur Datenmodell-Optimierung in Qlik Sense?
Der 8-Schritte Optimierungs-Prozess
- Analyse: Data Model Viewer öffnen und Synthetic Keys identifizieren
- Dokumentation: Alle betroffenen Tabellen und Felder dokumentieren
- Business Logic Review: Sind alle Verbindungen fachlich korrekt?
- Lösungsstrategie wählen: Feldumbenennung vs. Compound Keys vs. Star Schema
- Script Backup: Vorhandenes Script vor Änderungen sichern
- Implementierung: Gewählte Lösung schrittweise umsetzen
- Testing: Memory-Verbrauch und Performance vor/nach vergleichen
- Validierung: Fachliche Korrektheit der Ergebnisse prüfen
Wie kann ich Performance-Monitoring in Qlik Sense durchführen?
Wichtige Leistungsindikatoren (KPIs) zum Überwachen
- Memory Usage: Ziel unter 2GB für Standard-Apps
- Reload Time: Ziel unter 5 Minuten für typische ETL-Prozesse
- Query Response: Ziel unter 2 Sekunden für Standard-Charts
- User Experience: Flüssige Navigation ohne spürbare Verzögerungen
Welche häufigen Fehler sollten Sie bei Qlik Sense Synthetic Keys vermeiden?
Die Top 5 Datenmodellierungs-Fehler
- Descriptive Fields als Keys: Felder wie «Comment» oder «Description» sollten nicht für Verknüpfungen verwendet werden
- Mehrere Fact Tables: Vermeiden Sie komplexe Multi-Fact-Schemas ohne Star Schema Design
- Zirkuläre Referenzen: Loops im Datenmodell führen zu unvorhersagbaren Ergebnissen
- Unqualifizierte Auto-Joins: Qlik Sense erstellt automatisch Verknüpfungen bei gleichnamigen Feldern
- Fehlende Data Governance: Einheitliche Naming Conventions und Dokumentation fehlen
Wie kann man proaktive Vermeidungsstrategien anwenden?
Best Practices für saubere Datenmodelle
- Naming Conventions: Eindeutige und konsistente Feldnamen verwenden
- Documentation: Jede Tabelle und Beziehung dokumentieren
- Regular Reviews: Monatliche Datenmodell-Audits durchführen
- Automated Testing: Script-basierte Validierung der Modell-Qualität
- Team Training: Regelmäßige Schulungen zu Datenmodellierungs-Best-Practices
Wie vergleicht sich die Leistung vor und nach der Optimierung?
| Metrik | Mit Synthetic Keys | Nach Star Schema | Verbesserung |
|---|---|---|---|
| Memory Usage | 8.5 GB | 2.8 GB | -67% |
| Reload Time | 25 Minuten | 8 Minuten | -68% |
| Chart Response | 8-15 Sekunden | 1-3 Sekunden | -75% |
| User Satisfaction | 65% | 92% | +42% |
Welche weiterführenden Ressourcen gibt es zu Qlik Sense Synthetic Keys 2025?
Verwandte Anleitungen zu Qlik Sense
Warum sind saubere Datenmodelle der Schlüssel zur Performance in Qlik Sense?
Synthetic Keys sind ein Indikator für verbesserungswürdige Datenmodelle. Durch konsequente Anwendung von Star Schema Prinzipien, sauberer Feldumbenennung und strategischer Compound Keys können Sie die Performance Ihrer Qlik Sense Anwendungen drastisch verbessern.
Investieren Sie in die Datenmodell-Qualität von Anfang an – die Performance-Gewinne und reduzierten Wartungskosten rechtfertigen den initialen Aufwand um ein Vielfaches.
Welche Quellen und Referenzen gibt es zu Qlik Sense Synthetic Keys 2025?
| Quelle | Titel | URL |
|---|---|---|
| Qlik Help | Synthetic keys | help.qlik.com/synthetic-keys |
| Qlik Community | How to solve synthetic key in Qlik sense | community.qlik.com/synthetic-key-solutions |
| Ometis | Synthetic Keys in Qlik Sense | ometis.co.uk/synthetic-keys |
| Qlik Help | Viewing and transforming the data model | help.qlik.com/data-model |
| Ometis | Data Modelling Best Practices | ometis.co.uk/data-modelling-best-practices |