Ana içeriğe geç Tamamlayıcı içeriğe geç

Özel SQL ile bir Direct Query uygulaması oluşturma

Direct Query uygulamanızda özel bir SQL sorgusuyla komut dosyasında veri modelleri oluşturun. Özel SQL, Direct Query için veri modelinizi tanımlamak üzere Veri modeli yöneticisi kullanmaya bir alternatif sunar.

Direct Query veri modelleri oluşturmak için özel SQL kullanmak, SQL sorgusunun kendisi tarafından oluşturulan tabloları ve alanları tanımlamak üzere SQL deyimlerini kullanmanıza izin verir. Ek olarak bir Qlik uygulamasındaki özel SQL deyimleri, özel SQL deyimlerinizde komut dosyası değişkenleri ve Qlik ifade makroları kullanabilir. Bu, daha dinamik bir veri modeline izin verir ve özel SQL tanımlı tablolarınızın ve sütunlarınızın değişkene veya ifade değerlendirme sonuçlarına göre ayarlanmasını sağlar.

Özel SQL, komut dosyanızda tek başına kullanılabilir. Veri modelinizi tanımlamak için Veri yükleme düzenleyicisi içinde bir Veri modeli yöneticisi ve özel SQL kombinasyonu da kullanabilirsiniz.

İpucu notu

Veri modelinin bazı kısımları Veri modeli yöneticisi ile belirtilebiliyorsa optimum SQL performansı için bu kısımları belirtmek üzere Veri modeli yöneticisi kullanın. Veri modeli yöneticisi, tanımlanan veri modelinde Direct Query sorgularını yürütürken kullanmak için tablo tanımlarında daha verimlidir.

Özel SQL ile veri modelleri oluşturmak için:

  1. Komut dosyanıza section directquery ekleyin.

    Komut dosyasında sadece bir SECTION DIRECTQUERY bölümü mevcut olabilir. Bu bölüm, bir komut dosyasındaki en son bölüm olmalıdır.

    Veri modeli yöneticisi ile bir veri modeli tanımlamamış olsanız bile komut dosyanıza LIB CONNECT deyimi ve ardından bir section directquery deyimi eklemek ve komut dosyasını yüklemek, uygulamanızı bir Direct Query uygulamasına dönüştürür.

  2. Veri modelinizi aşağıdaki deyimlerle oluşturun:

    • SELECT

      Yüklenecek tabloları ve sütunları seçmek için SELECT deyimleri kullanın. Örneğin: <TableName> SELECT <custom SQL>.

      Komut dosyasında kendi tablonuzu tanımlamazsanız tablolara Table<komut dosyası satır numarası> verilir.

      Select

    • CREATE RELATIONSHIP

      Veri modelindeki alanlar ile tablolar arasındaki ilişkileri tanımlamak için CREATE RELATIONSHIP kullanın.

      Create relationship

    • DROP RELATIONSHIP

      Önceden tanımlanan ilişkileri veri modelinden çıkarmak için DROP RELATIONSHIP kullanın.

      İlişkiyi bırakma

    • DROP TABLE

      Önceden tanımlanan tabloları veri modelinden çıkararak tablolar arasında olası çakışmaları önlemek için DROP TABLE kullanın.

    • LET, SET

      Değişkenleri veya Qlik deyimlerini tanımlamak için LET ve SET deyimlerini kullanın.

      Let

      Set

    Veri modelindeki tablolar ve alanlar benzersiz şekilde adlandırılmalıdır. Veri modeli yöneticisi içinde bir tabloyu tanımlayıp ardından aynı tabloyu özel SQL'de yeniden tanımlamayı denemeniz halinde, Veri modeli yöneticisi içinde oluşturduğunuz tabloyu çıkarıp özel SQL'nizdeki tablo ve alanları yeniden tanımlamadığınız sürece bu işlem başarısız olacaktır.

section directquery bölümünde desteklenmeyen komut dosyası deyimleri, veri yüklerken hata oluşturur. Komut dosyası hata ayıklama veya zorla devam ettirme ayarları göz ardı edilir.

Özel SQL komut dosyası örnekleri için bkz. Direct Query için özel SQL örnekleri.

Özel SQL, değişkenler ve deyimler

Direct Query içindeki özel SQL tanımları, özel bir SQL deyiminde hem komut dosyası değişkenleri hem Qlik deyim makroları kullanmanıza izin verir.

Bu olanak, bir uygulamanın özel SQL tanımlı tabloların ve sütunların bulunduğu veri modeline dinamik değişken ve deyim etkisi ve esnekliği katarak değişken veya Qlik deyim değerlendirme sonuçlarına uyum sağlar.

Özel SQL içindeki değişkenler

Değişkenlerinizi tanımlamak için SET veya LET deyimleri kullanın. Komut dosyanıza $(<variable name>) biçimini kullanarak değişken ekleyin.

Örnek: Değişkenler içeren bir veri modeli oluşturma

Özel SQL içindeki değişken referansları yeniden yükleme zamanında değerlendirilir. Değişken değeri, uygulama kullanılırken değişirse komut dosyası yeniden yüklenmediği sürece bu değişiklik, o değişkeni kullanan özel SQL'de yansıtılmayacaktır.

Özel SQL tanımlarında dinamik değişkenler istiyorsanız bu değişkenleri, ilgili özel SQL tanımlarını kullanan her sorgu yürütmesinde değerlendirilmeye zorlamak için söz konusu değişkenlere Qlik deyimlerinin bir parçası olarak referansta bulunun.

Değişkenler hakkında daha fazla bilgi için bkz. Veri yükleme düzenleyicisinde değişkenlerle çalışma.

Özel SQL içindeki deyimler

Uygulama veri modelindeki tabloları ve sütunları temsil etmek için uzak veritabanına gönderilen özel SQL içeriklerini değiştirmek üzere deyimleri kullanabilirsiniz. Veri modelinde kullanılan deyimler tek bir değerle sonuçlanmalıdır.

İpucu notu

Deyiminizin tek bir değerle sonuçlanıp sonuçlanmadığını test etmek için bunu bir KPI'ya ekleyin. İşe yararsa deyiminiz özel SQL'nizde kullanılabilir.

Deyimler, bu SQL tanımlarını kullanan her bir sorgu yürütmesinde dinamik olarak değerlendirilir. Tablolar veya alanlar içeren özel bir SQL deyimi bir sorgu yürütülürken Qlik deyimleri kullandığında bu Qlik deyimleri öncelikle geçerli deyim sonuçlarını almak için değerlendirilir. Bu sonuçlar, orijinal sorgunun yerine yürütülecek özel SQL deyimine eklenir. Daha sonra bu Qlik deyimi değerlendirmelerinin uzak veritabanına SQL sorguları oluşturma olasılığı vardır. Daha sonra bu Qlik deyimi değerlendirmelerinin uzak veritabanına SQL sorguları oluşturma olasılığı vardır.

Bir deyim, yükleme sırasında genişlemezse null değer döndürecektir. Bu, deyimin geçersiz olduğu anlamına gelmez. Deyiminiz, bir kullanıcının bir uygulamada değerlendirme seçimleri yapmasını gerektirebilir.

Örnek: Qlik deyimleriyle veri modeli oluşturma

Özel SQL ve Veri modeli yöneticisi ile veri modeli oluşturma

Direct Query için veri modelinizi oluşturmak üzere özel SQL ve Veri modeli yöneticisi kombinasyonu kullanabilirsiniz. Ancak uygulamada göz önünde bulundurulması gereken bazı hususlar vardır:

  • En iyi uygulama, komut dosyasına özel SQL eklemeden önce Veri modeli yöneticisi içinde istediğiniz modellemeyi tamamlamaktır. Özel SQL ve Veri modeli yöneticisi kombinasyonunun birlikte en iyi şekilde çalışması için Veri modeli yöneticisi, yüklenen tabloları ve alanlar arasındaki ilişkileri tanımlamak üzere kullanılmalı ve özel SQL, ek özelleştirmelere yönelik olarak kullanılmalıdır.

  • Veri modeli yöneticisi tarafından oluşturulan veri modeli bölümü ve özel SQL tarafından oluşturulan bölüm ayrı yönetilir ve daha sonra komut dosyası yeniden yükleme işlemi sırasında birleştirilir. Veri modeli yöneticisi, özel SQL tarafından tanımlanan veri modelinin hiçbir bölümünü görüntülemez. Tam veri modelinizi görüntülemek için Veri modeli görüntüleyicisi kullanın.

  • Veri modeli yöneticisi tarafından oluşturulan veri modeli ve özel SQL'niz tarafından tanımlanan veri modeli, aynı veritabanı bağlantısını kullanmalıdır.

  • Veri modeli yöneticisi tarafından komut dosyanıza eklenen IMPORT LIVE deyimini taşıyabilirsiniz. Komut dosyası sıralı olarak değerlendirilir, bu nedenle yeni konumu, özel SQL gerekliliklerinizi etkileyebilir. Örneğin, nihai veri modelinde istenmeyen ilişkiler veya yinelenen tablo adları oluşturabilir.

  • Veri modelindeki tablolar ve alanlar benzersiz şekilde adlandırılmalıdır. Veri modeli yöneticisi içinde bir tabloyu tanımlayıp ardından aynı tabloyu özel SQL'de yeniden tanımlamayı denemeniz halinde, Veri modeli yöneticisi içinde oluşturduğunuz tabloyu çıkarıp özel SQL'nizdeki tablo ve alanları yeniden tanımlamadığınız sürece bu işlem başarısız olacaktır.

Sınırlamalar

Direct Query için Özel SQL aşağıdaki sınırlamalara sahiptir:

  • Özel SQL sadece bir veritabanı kullanabilir.

  • Eklenmiş Qlik deyim makroları içeren bir veya daha fazla deyim kullanan bir Direct Query uygulaması, İsteğe Bağlı uygulamaları için seçim uygulaması olarak kullanılamaz. Bunun nedeni, bellek içi uygulama şeklinde oluşturulmuş herhangi bir şablon uygulamanın komut dosyasında Qlik deyim makrolarını destekleyememesidir.

  • Direct Query özel SQL, hub'a eklenen komut dosyaları için desteklenmez. Komut dosyaları hakkında daha fazla bilgi için bkz. Kod düzenleyici kullanma.

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!