Direct Query
DIRECT QUERY deyimi, ODBC veya OLE DB bağlantısı aracılığıyla ve Direct Discovery işlevini kullanarak tablolara erişmenize izin verir.
Söz Dizimi:
DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist] [DETAIL fieldlist] FROM tablelist
[WHERE where_clause]
DIMENSION, MEASURE ve DETAIL anahtar sözcükleri istenen sırada kullanılabilir.
DIMENSION ve FROM anahtar sözcük cümleleri tüm DIRECT QUERY deyimlerinde gereklidir. FROM anahtar sözcüğü DIMENSION anahtar sözcüğünden sonra görünmelidir.
DIMENSION anahtar sözcüğünden hemen sonra belirtilen alanlar belleğe yüklenir ve bellek içi ile Direct Discovery verileri arasında ilişkiler oluşturmak için kullanılabilir.
MEASURE anahtar sözcüğünü kullanarak Qlik Sense uygulamasının "meta düzeyinde" farkında olduğu alanlar tanımlayabilirsiniz. Bir hesaplama alanının gerçek verileri, veri yükleme işlemi sırasında yalnızca veritabanında bulunur ve bir görselleştirmede kullanılan grafik ifadelerinin yönlendirmesiyle "amaca özel" (ad hoc) esasına göre getirilir.
Genellikle, boyut olarak kullanılacak ayrık değerli alanların DIMENSION anahtar sözcüğüyle yüklenmesi gerekirken, toplamalarda kullanılacak sayıların yalnızca MEASURE anahtar sözcüğüyle seçilmesi gerekir.
DETAIL alanları kullanıcının detaya inme tablo kutusunda görüntülemek isteyebileceği bilgileri veya ayrıntıları (yorum alanları gibi) sağlar. DETAIL alanları grafik ifadelerinde kullanılamaz.
Tasarım olarak, DIRECT QUERY deyimi, SQL desteği sağlayan veri kaynakları için veri kaynağı açısından tarafsızdır. Bu nedenle, aynı DIRECT QUERY deyimi, değişiklik olmadan farklı SQL veritabanları için kullanılabilir. Direct Discovery, veritabanına uygun sorguları gerektiği gibi oluşturur.
Kullanıcı sorgulanacak veritabanını bildiğinde ve SQL'e yönelik veritabanına özgü uzantıların açıklarından yararlanmak istediğinde yerel veri kaynağı söz dizimi kullanılabilir. Yerel veri kaynağı söz dizimi şu şekilde desteklenir:
- DIMENSION ve MEASURE cümlelerinde alan ifadeleri olarak
- WHERE cümlesinin içeriği olarak
Örnekler:
DIMENSION Dim1, Dim2MEASURENATIVE ('X % Y') AS X_MOD_Y
DIMENSION Dim1, Dim2MEASURE X, YFROM TableNameWHERE NATIVE ('EMAIL MATCHES "\*.EDU"')
Bağımsız Değişkenler:
Bağımsız Değişken | Açıklama |
---|---|
fieldlist |
Alan teknik özelliklerinin virgülle ayrılmış listesi, fieldname {, fieldname}. Alan teknik özelliği bir alan adı olabilir; bu durumda veritabanı sütun adı ve Qlik Sense alan adı için aynı ad kullanılır. Veya alan teknik özelliği bir "alan takma ismi" olabilir; bu durumda veritabanı ifadesine veya sütun adına bir Qlik Sense alan adı verilir. |
tablelist |
Verilerin yükleneceği veritabanındaki tablo veya görünüm adlarının bir listesi. Genellikle, veritabanında gerçekleştirilen JOIN'i içeren bir görünümdür. |
where_clause |
Veritabanı WHERE cümlelerinin tam söz dizimi burada tanımlanmamaktadır; ancak çoğu SQL "ilişkisel ifadesine" izin verilir; fonksiyon çağrıları, dizeler için LIKE işleci, IS NULL ile IS NOT NULL ve IN. BETWEEN kullanımları da buna dahildir. NOT, belirli anahtar sözcükler üzerindeki değiştiricinin aksine birli işleçtir. Örnekler: WHERE x > 100 AND "Region Code" IN ('south', 'west')
WHERE Code IS NOT NULL and Code LIKE '%prospect'
WHERE NOT X in (1,2,3)
Son örnek aşağıdaki gibi yazılamaz: WHERE X NOT in (1,2,3)
|
Örnek:
Bu örnekte Dim1, Dim2, Num1, Num2 ve Num3 alanlarını içeren TableName adında bir veritabanı tablosu kullanılmaktadır.Dim1 ve Dim2, Qlik Sense veri kümesine yüklenir
Dim1 ve Dim2 boyut olarak kullanıma açık olacaktır. Num1, Num2 ve Num3 toplamalar için kullanılabilecektir. Dim1 ve Dim2 de toplamalar için kullanılabilecektir. Dim1 ve Dim2 öğelerinin kullanılabildiği toplamaların türü bunların veri türlerine göre değişir. Örneğin, birçok durumda DIMENSION alanları adlar veya hesap numaraları gibi dize verilerini içerir. Bu alanlar toplanamaz, ancak sayılabilir: count(Dim1).
Örneğin, SELECT deyimi:
SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;
şu DIRECT QUERY deyimine dönüştürülebilir:
DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber
MEASURE
SubTotal,
TaxAmt
DETAIL
OrderDate
FROM MyDB.Sales.SalesOrderHeader;