Artımlı yenileme ve gerçek zamanlı verileri yapılandırma

Bu makalede, anlam modelleri için artımlı yenileme ve gerçek zamanlı verilerin nasıl yapılandırıldığı açıklanmaktadır. Veri akışları için artımlı yenilemeyi yapılandırma hakkında bilgi edinmek için bkz . Veri akışlarının premium özellikleri - Artımlı yenileme.

Artımlı yenilemenin yapılandırılması RangeStart ve RangeEnd parametreleri oluşturmayı, filtreleri uygulamayı ve artımlı yenileme ilkesi tanımlamayı içerir. Power BI hizmeti yayımladıktan sonra modelde ilk yenileme işlemini gerçekleştireceksiniz. İlk yenileme işlemi ve sonraki yenileme işlemleri, tanımladığınız artımlı yenileme ilkesini uygular. Bu adımları tamamlamadan önce, Artımlı yenileme ve anlam modelleri için gerçek zamanlı veriler bölümünde açıklanan işlevleri tam olarak anladığınızdan emin olun.

Parametre oluşturma

Bu görevde, varsayılan değerlerle RangeStart ve RangeEnd parametreleri oluşturmak için Power Query Düzenleyicisi kullanacaksınız. Varsayılan değerler yalnızca Power BI Desktop'ta modele yüklenecek verileri filtrelerken geçerlidir. Girdiğiniz değerler, veri kaynağınızdan yalnızca az miktarda en son veriyi içermelidir. Hizmette yayımlandığında, bu zaman aralığı değerleri artımlı yenileme ilkesi tarafından geçersiz kılınabilir. Diğer bir ifadeyle, ilke gelen verilerin pencerelerini birbiri ardına oluşturur.

  1. Power BI Desktop'ta Giriş şeridinde Verileri dönüştür'ü seçerek Power Query Düzenleyicisi açın.

  2. Parametreleri Yönet açılan listesini ve ardından Yeni Parametre'yi seçin.

  3. Ad alanına RangeStart (büyük/küçük harfe duyarlı) girin. Tür alanında, açılan listeden Tarih/Saat'i seçin. Geçerli Değer alanına bir başlangıç tarihi ve saat değeri girin.

    Define the Range Start parameter in the Manage Parameters dialog.

  4. RangeEnd adlı ikinci bir parametre oluşturmak için Yeni'yi seçin. Tür alanında Tarih/Saat'i seçin ve Geçerli Değer alanına bir bitiş tarihi ve saat değeri girin. Tamam'ı seçin.

    Define the Range End parameter in the Manage Parameters dialog.

RangeStart ve RangeEnd parametrelerini tanımladığınıza göre, modele yüklenecek verileri bu parametrelere göre filtreleyeceksiniz.

Veri filtreleme

Not

Bu göreve devam etmeden önce kaynak tablonuzda Tarih/Saat veri türünde bir tarih sütunu olduğunu doğrulayın. Tarih/Saat sütunu yoksa ancak biçiminde yyyymmddtamsayı vekil anahtarlarından oluşan bir tarih sütunu varsa, kaynak tablonun tamsayı vekil anahtarıyla eşleşecek şekilde parametrelerdeki tarih/saat değerini dönüştüren bir işlev oluşturmak için bu makalenin devamında DateTime'ı tamsayıya dönüştürme başlığındaki adımları izleyin.

Şimdi RangeStart ve RangeEnd parametrelerindeki koşullara göre bir filtre uygulayacaksınız.

  1. Power Query Düzenleyicisi filtrelemek istediğiniz tarih sütununu seçin ve ardından Tarih Filtreleri>Özel Filtresi açılan okunu >seçin.

  2. Satırları Filtrele'de, ilk koşulu belirtmek için sonraki veya sonraki veya eşittir'i seçin, ardından Parametre'yi ve ardından Aralık Başlangıcı'nı seçin.

    İkinci koşulu belirtmek için, ilk koşulda sonrasını seçtiyseniz, önce veya eşittir'i seçin ya da ilk koşulda eşittir veya sonrasını seçtiyseniz, ikinci koşul için önceyi seçin, ardından Parametre'yi ve ardından Aralık Ucu'nı seçin.

    Filter rows dialog showing Range Start and Range End conditions.

    Önemli: Sorguların RangeStart veya RangeEnd'de (=) değerine eşit olduğunu, ancak ikisini birden sahip olmadığını doğrulayın. Her iki parametrede de eşittir (=) varsa, bir satır iki bölüm için koşulları karşılayabilir ve bu da modelde yinelenen verilere yol açabilir. Örneğin, = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) hem RangeStart hem de RangeEnd değerine eşit bir OrderDate varsa yinelenen verilere neden olabilir.

    Kapatmak için Tamam'ı seçin.

  3. Power Query Düzenleyicisi Giriş şeridinde Kapat ve Uygula'yı seçin. Power Query, RangeStart ve RangeEnd parametreleri tarafından tanımlanan filtrelere ve tanımladığınız diğer filtrelere göre verileri yükler.

    Power Query yalnızca RangeStart ve RangeEnd parametreleri arasında belirtilen verileri yükler. Bu dönemdeki veri miktarına bağlı olarak, tablonun hızla yüklenmesi gerekir. Yavaş ve işlem yoğunluklu görünüyorsa, büyük olasılıkla sorgu katlanmıyor olabilir.

İlke tanımlama

RangeStart ve RangeEnd parametrelerini tanımladıktan ve verileri bu parametrelere göre filtreledikten sonra artımlı yenileme ilkesi tanımlayacaksınız. Bu ilke yalnızca model hizmette yayımlandıktan ve el ile veya zamanlanmış yenileme işlemi gerçekleştirildikten sonra uygulanır.

  1. Veri görünümünde, Veri bölmesinde bir tabloya sağ tıklayın ve Artımlı yenileme'yi seçin.

    Data view showing Table context menu with Incremental refresh selected.

  2. Artımlı yenileme ve gerçek zamanlı veriler>Tablo seçin bölümünde tabloyu doğrulayın veya seçin. Tablo seç liste kutusunun varsayılan değeri, Veri görünümünde seçtiğiniz tablodur.

  3. Gerekli ayarları belirtin:

    İçeri aktarma ve yenileme aralıklarını>ayarla bölümünde Bu tabloyu artımlı olarak yenileyin bölümünde kaydırıcıyı Açık konumuna getirin. Kaydırıcı devre dışı bırakılırsa, tablonun Power Query ifadesi RangeStart ve RangeEnd parametrelerini temel alan bir filtre içermediği anlamına gelir.

    Arşiv verileri başlatılıyor bölümünde, modele eklemek istediğiniz geçmiş depo dönemini belirtin. Bu dönemde tarih içeren tüm satırlar, diğer filtreler uygulanmadığı sürece hizmetteki modele yüklenir.

    Verileri artımlı olarak yenilemeye başlarken yenileme süresini belirtin. Bu dönemde tarih içeren tüm satırlar, Power BI hizmeti tarafından el ile veya zamanlanmış yenileme işlemi her gerçekleştirildiğinde modelde yenilenir.

  4. İsteğe bağlı ayarları belirtin:

    İsteğe bağlı ayarları seçin bölümünde DirectQuery ile en son verileri gerçek zamanlı olarak al (Yalnızca Premium) seçeneğini belirleyerek son yenileme döneminden sonra veri kaynağında gerçekleşen en son veri değişikliklerini ekleyin. Bu ayar artımlı yenileme ilkesinin tabloya bir DirectQuery bölümü eklemesine neden olur.

    Yalnızca tam günleri yenilemek için Yalnızca tam günleri yenile'yi seçin. Yenileme işlemi bir günün tamamlanmadığını algılarsa, o günün satırları yenilenmez. DirectQuery ile en son verileri gerçek zamanlı olarak al 'ı seçtiğinizde bu seçenek otomatik olarak etkinleştirilir (yalnızca Premium).

    Yalnızca verilerin değiştiği günleri tanımlamak ve yenilemek için kullanılan tarih/saat sütununu belirtmek için Veri değişikliklerini algıla'ya tıklayın. Veri kaynağında genellikle denetim amacıyla bir tarih/saat sütunu bulunmalıdır. Bu sütun , RangeStart ve RangeEnd parametreleriyle verileri bölümlemede kullanılan sütunla aynı olmamalıdır. Bu sütunun maksimum değeri, artımlı aralıktaki dönemlerin her biri için değerlendirilir. Son yenilemeden sonra değişmediyse geçerli dönem yenilenmez. Premium kapasitelerde yayımlanan modeller için özel bir sorgu da belirtebilirsiniz. Daha fazla bilgi edinmek için bkz . Gelişmiş artımlı yenileme - Veri değişikliklerini algılamak için özel sorgular.

    Ayarlarınıza bağlı olarak, ilkeniz aşağıdakine benzer olmalıdır:

    Incremental refresh and real-time data policy dialog showing incremental refresh range.

  5. Ayarlarınızı gözden geçirin ve ardından Uygula'yı seçerek yenileme ilkesini tamamlayın. Bu adım veri yüklemez.

Hizmette kaydetme ve yayımlama

RangeStart ve RangeEnd parametreleriniz, filtreleme ve yenileme ilke ayarlarınız tamamlandıktan sonra modelinizi kaydedin ve ardından hizmette yayımlayın. Modeliniz genişleyecekse, hizmetteki ilk yenilemeyi çağırmadan önce Büyük model depolama biçiminietkinleştirdiğinizden emin olun.

Modeli yenileme

Hizmette modeli yenileyin. İlk yenileme, yenileme döneminde hem yeni hem de güncelleştirilmiş verilerin yanı sıra depo döneminin tamamına ait geçmiş verileri yükler. Veri miktarına bağlı olarak, bu yenileme işlemi uzun sürebilir. Artımlı yenileme ilkesi uygulandığından ve yalnızca yenileme ilkesi ayarında belirtilen süreye ait veriler yenilendiğinden, el ile veya zamanlanmış sonraki yenilemeler genellikle çok daha hızlı olur.

DateTime'ı tamsayıya dönüştürme

Bu görev yalnızca tablonuzda RangeStart ve RangeEnd filtre tanımı için kullandığınız tarih sütununda Tarih/Saat değerleri yerine tamsayı vekil anahtarları kullanılıyorsa gereklidir.

RangeStart ve RangeEnd parametrelerinin veri türü, tarih sütununun veri türünden bağımsız olarak tarih/saat veri türünde olmalıdır. Ancak, birçok veri kaynağı için tabloların tarih/saat veri türünde bir sütunu yoktur, bunun yerine biçiminde tamsayı vekil anahtarlarından oluşan bir tarih sütunu vardır yyyymmdd. Sonuç katlanabilir olmayan bir sorgu ifadesi olacağından bu tamsayı vekil anahtarlarını Genellikle Tarih/Saat veri türüne dönüştüremezsiniz, ancak katlanabilirliği kaybetmeden veri kaynağı tablosunun tamsayı vekil anahtarıyla eşleşecek şekilde parametrelerdeki tarih/saat değerini dönüştüren bir işlev oluşturabilirsiniz. İşlev daha sonra bir filtre adımında çağrılır. Veri kaynağı tablosunda tamsayı veri türü olarak yalnızca bir vekil anahtar varsa bu dönüştürme adımı gereklidir.

  1. Power Query Düzenleyicisi Giriş şeridinde Yeni Kaynak açılan listesini ve ardından Boş Sorgu'yu seçin.

  2. Sorgu Ayarlar datekey gibi bir ad girin ve formül düzenleyicisine aşağıdaki formülü girin:

    = (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

    Power BI function editor showing the integer surrogate DateKey function.

  3. Formülü test etmek için Parametre Girin alanına bir tarih/saat değeri girin ve ardından Çağır'ı seçin. Formül doğruysa, tarih için bir tamsayı değeri döndürülür. Doğruladıktan sonra bu yeni Çağrılan İşlev sorgusunu silin.

  4. Sorgular'da tabloyu seçin ve sorgu formülünü düzenleyerek RangeStart ve RangeEnd parametreleriyle işlevi çağırın.

    = Table.SelectRows(#"Reordered Column OrderDateKey", each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd))

    Power BI table showing DateKey filter.