Aracılığıyla paylaş


Öğretici: Bir Ambarda T-SQL ile zaman yolculuğu

Bu öğreticide, bir ambar tablosunda zaman yolculuğu için T-SQL deyimlerini kullanmayı öğrenin. Zaman yolculuğu, verileri belirli bir zaman noktasında mevcut olduğu gibi sorgulamak anlamına gelir ve bu da Doku Ambarı veri saklamatarafından otomatik olarak mümkün hale getirilir.

Not

Bu öğretici, uçtan uca senaryonunbir parçasını oluşturur. Bu kılavuzu tamamlamak için önce şu kılavuzları tamamlamanız gerekir:

  1. çalışma alanı oluşturma
  2. Ambar oluşturma
  3. Verileri Bir Ambar'a Yükleme

Zaman yolculuğu sorguları ile çalışma

Bu görevde, satışa göre ilk 10 müşterinin görünümünü oluşturmayı öğrenin. Zaman yolculuğu sorguları çalıştırmak için bir sonraki görevde görünümü kullanacaksınız.

  1. İlk öğretici oluşturduğunuz çalışma alanının açık olduğundan emin olun.

  2. Ana Sayfa şeridinde Yeni SQL Sorgususeçin.

    Şeritteki Yeni SQL sorgusu seçeneğinin ekran görüntüsü.

  3. Sorgu düzenleyicisinde aşağıdaki kodu yapıştırın. Kod, Top10Customersadlı bir görünüm oluşturur. Satışlara göre en iyi 10 müşteriyi belirlemek için görünümde bir sorgu kullanılır.

    --Create the Top10Customers view.
    CREATE VIEW [dbo].[Top10Customers]
    AS
    SELECT TOP(10)
        FS.[CustomerKey],
        DC.[Customer],
        SUM(FS.[TotalIncludingTax]) AS [TotalSalesAmount]
    FROM
        [dbo].[dimension_customer] AS DC
        INNER JOIN [dbo].[fact_sale] AS FS
            ON DC.[CustomerKey] = FS.[CustomerKey]
    GROUP BY
        FS.[CustomerKey],
        DC.[Customer]
    ORDER BY
        [TotalSalesAmount] DESC;
    
  4. Sorguyu çalıştırın.

  5. Yürütme tamamlandığında sorguyu Create Top 10 Customer Viewolarak yeniden adlandırın.

  6. Gezgini bölmesinde, dbo şemasının Görünümler klasörünün içinden Top10Customers görünümünün var olduğunu doğrulayın.

    Yeni oluşturulan görünümü vurgulayan Gezgin bölmesinin ekran görüntüsü.

  7. Zaman yolculuğu sorgularıyla çalışmak için yeni bir sorgu oluşturun.

  8. Sorgu düzenleyicisinde aşağıdaki kodu yapıştırın. Kod, tek bir olgu satırının TotalIncludingTax değerini güncelleştirerek toplam satışlarını kasıtlı olarak şişirir. Ayrıca geçerli zaman damgasını da alır.

     --Update the TotalIncludingTax for a single fact row to deliberately inflate its total sales.
     UPDATE [dbo].[fact_sale]
     SET [TotalIncludingTax] = 200000000
     WHERE [SaleKey] = 22632918; --For customer 'Tailspin Toys (Muir, MI)'
     GO
    
     --Retrieve the current (UTC) timestamp.
     SELECT CURRENT_TIMESTAMP;
    

    Not

    Şu anda, zaman yolculuğu için yalnızca Eşgüdümlü Evrensel Saat (UTC) saat dilimini kullanabilirsiniz.

  9. Sorguyu çalıştırın.

  10. Yürütme tamamlandığında sorguyu Time Travelolarak yeniden adlandırın.

  11. Sonuçlar bölmesinde zaman damgası değerine dikkat edin (değeriniz geçerli UTC tarih ve saati olacaktır).

    Kopyalanacak zaman damgası değerini vurgulayan Sonuçlar bölmesinin ekran görüntüsü.

  12. itibarıyla ilk 10 müşteriyi almak yeni bir sorgu düzenleyicisine aşağıdaki deyimi yapıştırın. Kod, FOR TIMESTAMP AS OF sorgu ipucunu kullanarak ilk 10 müşteriyi alır.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Sorguyu Time Travel Nowolarak yeniden adlandırın.

  14. Time Travel sorgusuna dönün ve sorgu sonuçlarını kopyalamak için Kopyala komutunu kullanın.

    Kopya komutunun ekran görüntüsü, Sorgu sonuçlarını kopyala seçeneği vurgulanmaktadır.

  15. Time Travel Now sorgusuna dönün ve YOUR_TIMESTAMP'i panoya kopyaladığınız zaman bilgisiyle değiştirin.

  16. Sorguyu çalıştırın ve ikinci üst CustomerKey değerinin Tailspin Toys (Muir, MI)için 49 olduğuna dikkat edin.

  17. Zaman damgasından bir dakika çıkararak zaman damgası değerini daha önceki bir zaman değiştirin.

  18. Sorguyu yeniden çalıştırın ve Wingtip Toys (Sarversville, PA)için ikinci en yüksek CustomerKey değerinin 381 olduğuna dikkat edin.

Bahşiş

Daha fazla zaman yolculuğu örneği için bkz. Nasıl yapılır:deyim düzeyinde zaman yolculuğu kullanarak sorgulama.

Sonraki adım