Birden çok veritabanında geçici analiz sorguları çalıştırma (Azure SQL Veritabanı)

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu öğreticide, geçici etkileşimli raporlamayı etkinleştirmek için kiracı veritabanları kümesinin tamamında dağıtılmış sorgular çalıştıracaksınız. Bu sorgular, Wingtip Biletleri SaaS uygulamasının günlük operasyonel verilerine gömülü içgörüleri ayıklayabilir. Bu ayıklamaları yapmak için katalog sunucusuna ek bir analiz veritabanı dağıtırsınız ve dağıtılmış sorguları etkinleştirmek için Elastik Sorgu'yu kullanırsınız.

Bu öğreticide şunları öğrenirsiniz:

  • Geçici raporlama veritabanı dağıtma
  • Dağıtılmış sorguları tüm kiracı veritabanlarında çalıştırma

Bu öğreticiyi tamamlamak için aşağıdaki ön koşulların karşılandığından emin olun:

Geçici raporlama düzeni

adhoc reporting pattern

SaaS uygulamaları, bulutta merkezi olarak depolanan çok miktarda kiracı verilerini analiz edebilir. Analizler, uygulamanızın çalışma ve kullanımıyla ilgili içgörüleri ortaya koyuyor. Bu içgörüler, uygulama ve hizmetlerinizde özellik geliştirme, kullanılabilirlik iyileştirmeleri ve diğer yatırımlara yol gösterebilir.

Bu verilere tek bir çok kiracılı veritabanında erişim kolaydır, ancak binlerce veritabanına ölçekli olarak dağıtıldığında çok kolay değildir. Yaklaşımlardan biri, ortak şemaya sahip dağıtılmış bir veritabanı kümesinde sorgulamayı sağlayan Elastik Sorgu'yu kullanmaktır. Bu veritabanları farklı kaynak grupları ve abonelikler arasında dağıtılabilir. Ancak ortak bir oturum açma işleminin tüm veritabanlarından veri ayıklamak için erişimi olmalıdır. Elastik Sorgu, dağıtılmış (kiracı) veritabanlarındaki tabloları veya görünümleri yansıtan dış tabloların tanımlandığı tek bir baş veritabanı kullanır. Bu baş veritabanına gönderilen sorgular, gerektiğinde kiracı veritabanlarına gönderilen sorgu kısımlarıyla birlikte dağıtılmış bir sorgu planı oluşturmak üzere derlenir. Elastik Sorgu, tüm kiracı veritabanlarının konumunu belirlemek için katalog veritabanındaki parça eşlemesini kullanır. Standart Transact-SQL kullanılarak kurulum ve sorgu basittir ve Power BI ve Excel gibi araçlardan geçici sorgulamayı destekler.

Elastik Sorgu, sorguları kiracı veritabanları arasında dağıtarak canlı üretim verileri hakkında anında içgörü sağlar. Ancak, Elastik Sorgu potansiyel olarak çok sayıda veritabanından veri çektiğinden, sorgu gecikmesi bazen tek bir çok kiracılı veritabanına gönderilen eşdeğer sorgulardan daha yüksek olabilir. Döndürülen verileri en aza indirmek için sorgular tasarlayın. Elastik Sorgu genellikle sık kullanılan veya karmaşık analiz sorguları veya raporları oluşturmak yerine az miktarda gerçek zamanlı veriyi sorgulamak için uygundur. Sorgular iyi performans göstermiyorsa, sorgunun hangi bölümünün uzak veritabanına gönderildiğini görmek için yürütme planına bakın. Ayrıca ne kadar veri döndürülmekte olduğunu değerlendirin. Ayıklanan kiracı verilerini analiz sorguları için iyileştirilmiş bir veritabanına kaydederek karmaşık analitik işleme gerektiren sorgulara daha iyi hizmet edilebilir. SQL Veritabanı ve Azure Synapse Analytics bu analiz veritabanını barındırabilir.

Analiz için bu desen kiracı analizi öğreticisinde açıklanmıştır.

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı uygulama kaynak kodunu ve betiklerini alma

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı betikleri ve uygulama kaynak kodu WingtipTicketsSaaS-MultitenantDB GitHub deposunda bulunur. Wingtip Biletleri SaaS betiklerini indirme ve engellemeyi kaldırma adımları için genel kılavuza göz atın.

Bilet satış verileri oluşturma

Daha ilginç bir veri kümesinde sorgu çalıştırmak için bilet oluşturucusunu çalıştırarak bilet satış verileri oluşturun.

  1. PowerShell ISE'de ...\Learning Modules\Operational Analytics\Adhoc Reporting\Demo-AdhocReporting.ps1 betiğini açın ve aşağıdaki değerleri ayarlayın:
    • $DemoScenario = 1, Tüm mekanlarda etkinlikler için bilet satın alın.
  2. Betiği çalıştırmak ve bilet satışları oluşturmak için F5 tuşuna basın. Betik çalışırken bu öğreticideki adımlara devam edin. Anahtar verileri Geçici dağıtılmış sorguları çalıştır bölümünde sorgulanır, bu nedenle bilet oluşturucunun tamamlanmasını bekleyin.

Kiracı tablolarını keşfetme

Wingtip Biletleri SaaS Çok Kiracılı Veritabanı uygulamasında kiracılar, kiracı verilerinin çok kiracılı bir veritabanında veya tek bir kiracı veritabanında depolandığı ve ikisi arasında taşınabileceği karma bir kiracı yönetim modelinde depolanır. Tüm kiracı veritabanlarında sorgu yaparken, Elastik Sorgu'nun verileri kiracı tarafından parçalanmış tek bir mantıksal veritabanının parçası gibi ele alabilmesi önemlidir.

Bu düzeni elde etmek için tüm kiracı tabloları, verilerin hangi kiracıya ait olduğunu tanımlayan bir VenueId sütunu içerir. VenueId, Venue adının karması olarak hesaplanır, ancak bu sütun için benzersiz bir değer eklemek için herhangi bir yaklaşım kullanılabilir. Bu yaklaşım, kiracı anahtarının katalogda kullanılmak üzere hesaplanmış biçimine benzer. VenueId içeren tablolar Elastik Sorgu tarafından sorguları paralelleştirmek ve uygun uzak kiracı veritabanına göndermek için kullanılır. Bu, döndürülen veri miktarını önemli ölçüde azaltır ve özellikle verileri tek kiracı veritabanlarında depolanan birden çok kiracı olduğunda performans artışına neden olur.

Geçici dağıtılmış sorgular için kullanılan veritabanını dağıtma

Bu alıştırmada adhocreporting veritabanı dağıtılır . Bu, tüm kiracı veritabanlarında sorgulama için kullanılan şemayı içeren baş veritabanıdır. Veritabanı, örnek uygulamadaki yönetimle ilgili tüm veritabanları için kullanılan sunucu olan mevcut katalog sunucusuna dağıtılır.

  1. PowerShell ISE'de...\Learning Modules\Operational Analytics\Adhoc Reporting\Demo-AdhocReporting.ps1 dosyasını açın ve aşağıdaki değerleri ayarlayın:

    • $DemoScenario = 2, Geçici analiz veritabanını dağıtın.
  2. Betiği çalıştırmak ve adhocreporting veritabanını oluşturmak için F5 tuşuna basın.

Sonraki bölümde, dağıtılmış sorguları çalıştırmak için kullanılabilmesi için veritabanına şema ekleyebilirsiniz.

Dağıtılmış sorguları çalıştırmak için 'head' veritabanını yapılandırma

Bu alıştırma, tüm kiracı veritabanlarında sorgulamayı etkinleştiren geçici raporlama veritabanına şema (dış veri kaynağı ve dış tablo tanımları) ekler.

  1. SQL Server Management Studio'yu açın ve önceki adımda oluşturduğunuz Geçici raporlama veritabanına bağlanın. Veritabanının adı adhocreporting şeklindedir.

  2. SSMS'de ...\Learning Modules\Operational Analytics\Adhoc Reporting\ Initialize-AdhocReportingDB.sql dosyasını açın.

  3. SQL betiğini gözden geçirin ve aşağıdakileri not edin:

    Elastik Sorgu, kiracı veritabanlarının her birine erişmek için veritabanı kapsamlı bir kimlik bilgisi kullanır. Bu kimlik bilgilerinin tüm veritabanlarında kullanılabilir olması ve normalde bu geçici sorguları etkinleştirmek için gereken en düşük haklara sahip olması gerekir.

    create credential

    Dış veri kaynağı olarak katalog veritabanı kullanıldığında sorgular, sorgu çalıştırıldığında katalogda kayıtlı tüm veritabanlarına dağıtılır. Her dağıtım için sunucu adları farklı olduğundan bu başlatma betiği, betiğin yürütüldüğü geçerli sunucuyu (@@servername) alarak katalog veritabanının konumunu alır.

    create external data source

    Kiracı tablolarına başvuran dış tablolar DISTRIBUTION = SHARDED(VenueId) ile tanımlanır. Bu, belirli bir VenueId için bir sorguyu uygun veritabanına yönlendirir ve sonraki bölümde gösterildiği gibi birçok senaryonun performansını artırır.

    create external tables

    Oluşturulan ve doldurulan yerel VenueTypes tablosu. Bu başvuru veri tablosu tüm kiracı veritabanlarında yaygındır, bu nedenle burada yerel bir tablo olarak temsil edilebilir ve ortak verilerle doldurulabilir. Bazı sorgular için bu, kiracı veritabanları ile adhocreporting veritabanı arasında taşınan veri miktarını azaltabilir.

    create table

    Başvuru tablolarını bu şekilde eklerseniz, kiracı veritabanlarını her güncelleştirdiğinizde tablo şemasını ve verilerini güncelleştirdiğinizden emin olun.

  4. Betiği çalıştırmak ve adhocreporting veritabanını başlatmak için F5 tuşuna basın.

Artık dağıtılmış sorgular çalıştırabilir ve tüm kiracılar genelinde içgörüler toplayabilirsiniz!

Geçici dağıtılmış sorgular çalıştırma

Artık adhocreporting veritabanı ayarlandıktan sonra bazı dağıtılmış sorgular çalıştırın. Sorgu işlemenin nerede gerçekleştiğini daha iyi anlamak için yürütme planını ekleyin.

Yürütme planını incelerken, ayrıntılar için plan simgelerinin üzerine gelin.

  1. SSMS'de ...\Learning Modules\Operational Analytics\Adhoc Reporting\Demo-AdhocReportingQueries.sql dosyasını açın.

  2. Adhocreporting veritabanına bağlı olduğunuzdan emin olun.

  3. Sorgu menüsünü seçin ve Gerçek Yürütme Planını Ekle'ye tıklayın

  4. Şu anda hangi mekanlar kayıtlı? sorgusunu vurgulayın ve F5 tuşuna basın.

    Sorgu, tüm kiracılar arasında sorgulamanın ve her kiracıdan veri döndürmenin ne kadar hızlı ve kolay olduğunu gösteren tüm mekan listesini döndürür.

    Planı inceleyin ve maliyetin tamamının uzak sorgu olduğunu görün çünkü her kiracı veritabanına gidip mekan bilgilerini seçiyoruz.

    SELECT * FROM dbo.Venues

  5. Sonraki sorguyu seçin ve F5 tuşuna basın.

    Bu sorgu, kiracı veritabanlarından ve yerel VenueTypes tablosundan (adhocreporting veritabanındaki bir tablo olduğu için yerel) verileri birleştirir .

    Planı inceleyin ve maliyetin çoğunluğunun uzak sorgu olduğunu görün çünkü her kiracının mekan bilgilerini (dbo) sorgularız. ve ardından kolay adı görüntülemek için yerel VenueTypes tablosuyla hızlı bir yerel birleşim yapın.

    Join on remote and local data

  6. Şimdi en çok bilet satılan gün hangisi? sorgusunu seçin ve F5 tuşuna basın.

    Bu sorgu biraz daha karmaşık birleştirme ve toplama işlemi yapar. Önemli olan, işlemlerin çoğunun uzaktan yapılması ve bir kez daha yalnızca ihtiyacımız olan satırları geri getirmemiz ve her mekanın günlük toplam bilet satış sayısı için yalnızca tek bir satır döndürmemizdir.

    query

Sonraki adımlar

Bu öğreticide, şunları öğrendiniz:

  • Tüm kiracı veritabanlarında dağıtılmış sorguları çalıştırma
  • Geçici bir raporlama veritabanı dağıtın ve dağıtılmış sorgular çalıştırmak için şema ekleyin.

Şimdi daha karmaşık analiz işlemleri için verileri ayrı bir analiz veritabanına ayıklamayı keşfetmek için Kiracı Analizi öğreticisini deneyin.

Ek kaynaklar