Aracılığıyla paylaş


Oracle geçişleri için tasarım ve performans

Bu makale, Oracle'dan Azure Synapse Analytics'e geçiş konusunda rehberlik sağlayan yedi bölümden oluşan serinin bir parçasıdır. Bu makalenin odak noktası tasarım ve performansa yönelik en iyi yöntemlerdir.

Genel bakış

Eski şirket içi Oracle ortamlarını korumanın ve yükseltmenin maliyeti ve karmaşıklığı nedeniyle, mevcut Oracle kullanıcılarının çoğu modern bulut ortamları tarafından sağlanan yeniliklerden yararlanmak istiyor. Hizmet olarak altyapı (IaaS) ve hizmet olarak platform (PaaS) bulut ortamları, altyapı bakımı ve platform geliştirme gibi görevleri bulut sağlayıcısına devretmenizi sağlar.

İpucu

Bir veritabanından daha fazlası: Azure ortamı kapsamlı bir özellik ve araç kümesi içerir.

Oracle ve Azure Synapse Analytics, olağanüstü büyük veri hacimlerinde yüksek sorgu performansı elde etmek için yüksek düzeyde paralel işleme (MPP) teknikleri kullanan SQL veritabanları olsa da yaklaşımda bazı temel farklılıklar vardır:

  • Eski Oracle sistemleri genellikle şirket içinde yüklenir ve nispeten pahalı donanımlar kullanırken Azure Synapse bulut tabanlıdır ve Azure depolama ve işlem kaynaklarını kullanır.

  • Oracle yapılandırmasını yükseltmek, ek fiziksel donanım ve büyük olasılıkla uzun veritabanı yeniden yapılandırması veya döküm ve yeniden yükleme içeren önemli bir görevdir. Depolama ve işlem kaynakları Azure ortamında ayrı olduğundan ve esnek ölçeklendirme özelliğine sahip olduğundan, bu kaynaklar bağımsız olarak yukarı veya aşağı doğru ölçeklendirilebilir.

  • Kaynak kullanımını ve maliyetini azaltmak için Azure Synapse'i gerektiği gibi duraklatabilir veya yeniden boyutlandırabilirsiniz.

Microsoft Azure, Azure Synapse'i ve destekleyici araç ve özellikler ekosistemini içeren küresel olarak kullanılabilir, yüksek oranda güvenli, ölçeklenebilir bir bulut ortamıdır. Sonraki diyagramda Azure Synapse ekosistemi özetlemektedir.

Destekleyici araçlar ve özelliklerden oluşan Azure Synapse ekosistemini gösteren grafik.

Azure Synapse, MPP ve otomatik bellek içi önbelleğe alma gibi teknikleri kullanarak en iyi ilişkisel veritabanı performansını sağlar. Bu tekniklerin sonuçlarını, Azure Synapse'i diğer popüler bulut veri ambarı teklifleriyle karşılaştıran GigaOm'un son çalıştırması gibi bağımsız karşılaştırmalarda görebilirsiniz. Azure Synapse ortamına geçiş yapan müşteriler aşağıdakiler gibi birçok avantaj görür:

  • Geliştirilmiş performans ve fiyat/performans.

  • Artan çeviklik ve değere daha kısa süre.

  • Daha hızlı sunucu dağıtımı ve uygulama geliştirme.

  • Esnek ölçeklenebilirlik: Yalnızca gerçek kullanım için ödeme.

  • Geliştirilmiş güvenlik/uyumluluk.

  • Daha düşük depolama ve olağanüstü durum kurtarma maliyetleri.

  • Daha düşük genel TCO, daha iyi maliyet denetimi ve kolaylaştırılmış operasyonel harcamalar (OPEX).

Bu avantajları en üst düzeye çıkarmak için yeni veya mevcut verileri ve uygulamaları Azure Synapse platformuna geçirin. Birçok kuruluşta geçiş, mevcut bir veri ambarını Oracle gibi eski bir şirket içi platformdan Azure Synapse'e taşımayı içerir. Geçiş işlemi üst düzeyde şu adımları içerir:

    Hazırlık 🡆

  • Geçirilecek kapsamı tanımlayın.

  • Geçiş için veri ve işlemlerin envanterini oluşturun.

  • Veri modeli değişikliklerini tanımlama (varsa).

  • Kaynak veri ayıklama mekanizmasını tanımlayın.

  • Kullanılacak uygun Azure ve üçüncü taraf araçlarını ve özelliklerini belirleyin.

  • Personeli yeni platformda erken eğitin.

  • Azure hedef platformunu ayarlayın.

    Geçiş 🡆

  • Küçük ve basit bir başlangıç.

  • Mümkün olan her yerde otomatikleştirin.

  • Geçiş çalışmalarını azaltmak için Azure'ın yerleşik araç ve özelliklerinden yararlanın.

  • Tablolar ve görünümler için meta verileri geçirme.

  • Korunacak geçmiş verileri geçirme.

  • Saklı yordamları ve iş süreçlerini geçirme veya yeniden düzenleme.

  • ETL/ELT artımlı yük işlemlerini geçirme veya yeniden düzenleme.

    Geçiş sonrası

  • İşlemin tüm aşamalarını izleyin ve belgeleyin.

  • Gelecekteki geçişler için bir şablon oluşturmak için kazanılan deneyimi kullanın.

  • Gerekirse veri modelini yeniden tasarlama (yeni platform performansı ve ölçeklenebilirlik kullanarak).

  • Uygulamaları ve sorgu araçlarını test edin.

  • Sorgu performansını karşılaştırma ve iyileştirme.

Bu makalede, veri ambarını mevcut oracle ortamından Azure Synapse'e geçirirken performans iyileştirmeye yönelik genel bilgiler ve yönergeler sağlanır. Performans iyileştirmesinin amacı, geçiş sonrasında Azure Synapse'te aynı veya daha iyi veri ambarı performansına ulaşmaktır.

Tasarımla ilgili dikkat edilecek noktalar

Geçiş kapsamı

Oracle ortamından geçiş yapmaya hazırlanırken aşağıdaki geçiş seçeneklerini göz önünde bulundurun.

İlk geçiş için iş yükünü seçme

Eski Oracle ortamları genellikle zaman içinde birden çok konu alanını ve karma iş yüklerini kapsayacak şekilde gelişmiştir. Geçiş projesinde nereden başlayacağınıza karar verirken şunları yapabileceğiniz bir alan seçin:

  • Yeni ortamın avantajlarını hızla sunarak Azure Synapse'e geçişin uygulanabilirliğini kanıtlayın.

  • Şirket içi teknik personelinizin diğer alanları geçirirken kullanacakları süreçler ve araçlarla ilgili deneyim kazanmalarına izin verin.

  • Kaynak Oracle ortamına ve zaten mevcut olan geçerli araçlara ve işlemlere özgü diğer geçişler için bir şablon oluşturun.

Oracle'dan ilk geçiş için iyi bir aday, önceki öğeleri Çevre desteği ve:

  • Çevrimiçi işlem işleme (OLTP) iş yükü yerine bi/analytics iş yükü uygular.

  • En az değişiklikle geçirilebilen yıldız veya kar tanesi şeması gibi bir veri modeline sahiptir.

İpucu

Geçirilmesi gereken nesnelerin envanterini oluşturun ve geçiş işlemini belgeleyin.

İlk geçişte geçirilen verilerin hacmi, Azure Synapse ortamının özelliklerini ve avantajlarını gösterecek kadar büyük olmalıdır, ancak değeri hızlı bir şekilde gösteremeyecek kadar büyük olmamalıdır. 1-10 terabayt aralığındaki bir boyut tipiktir.

Geçiş projesine yönelik ilk yaklaşımlardan biri, Azure bulut ortamının avantajlarını hızla görebilmeniz için gereken riski, çabayı ve süreyi en aza indirmektir. Aşağıdaki yaklaşımlar , ilk geçişin kapsamını yalnızca veri reyonlarıyla sınırlar ve ETL geçişi ve geçmiş veri geçişi gibi daha geniş geçiş yönlerini ele almaz. Ancak, geçirilen veri reyonu katmanı verilerle ve gerekli derleme işlemleriyle doldurulduktan sonra projenin sonraki aşamalarında bu özellikleri ele alabilirsiniz.

Lift and shift geçişi ile Aşamalı yaklaşım karşılaştırması

Genel olarak, planlanan geçişin amacı ve kapsamı ne olursa olsun iki tür geçiş vardır: olduğu gibi lift and shift ve değişiklikleri içeren aşamalı bir yaklaşım.

Lift and shift

Lift and shift geçişinde yıldız şeması gibi mevcut bir veri modeli, yeni Azure Synapse platformuna değiştirilmeden geçirilir. Bu yaklaşım, Azure bulut ortamına geçmenin avantajlarını gerçekleştirmek için gereken çalışmayı azaltarak riski ve geçiş süresini en aza indirir. Lift and shift geçişi bu senaryolar için uygundur:

  • Geçiş için tek bir veri reyonu içeren mevcut bir Oracle ortamınız var veya
  • Zaten iyi tasarlanmış bir yıldız veya kar tanesi şemasında bulunan verileri içeren mevcut bir Oracle ortamınız var veya
  • Modern bir bulut ortamına geçmek için zaman ve maliyet baskısı altındasınız.

İpucu

Sonraki aşamalar veri modelinde değişiklik uygulasa bile lift and shift iyi bir başlangıç noktasıdır.

Değişiklikleri içeren aşamalı yaklaşım

Eski bir veri ambarı uzun bir süre içinde geliştiyse, gerekli performans düzeylerini korumak için bunu yeniden tasarlamanız gerekebilir. Nesnelerin İnterneti (IoT) akışları gibi yeni verileri desteklemek için yeniden mühendislik de oluşturmanız gerekebilir. Yeniden mühendislik sürecinin bir parçası olarak, ölçeklenebilir bir bulut ortamının avantajlarından yararlanmak için Azure Synapse'e geçin. Geçiş, temel alınan veri modelinde inmon modelinden veri kasasına taşıma gibi bir değişiklik içerebilir.

Microsoft, mevcut veri modelinizi olduğu gibi Azure'a taşımanızı ve yeniden mühendislik değişikliklerini uygulamak için Azure ortamının performansını ve esnekliğini kullanmanızı önerir. Bu şekilde, mevcut kaynak sistemi etkilemeden değişiklikleri yapmak için Azure'ın özelliklerini kullanabilirsiniz.

Meta veri temelli geçiş uygulamak için Microsoft olanaklarını kullanma

Azure ortamının özelliklerini kullanarak geçiş işlemini otomatikleştirebilir ve düzenleyebilirsiniz. Bu yaklaşım mevcut Oracle ortamındaki performans isabetini en aza indirir ve kapasiteye yakın çalışıyor olabilir.

Oracle için SQL Server Geçiş Yardımcısı (SSMA), bazı durumlarda işlevler ve yordam kodu dahil olmak üzere geçiş işleminin birçok bölümünü otomatikleştirebilir. SSMA, hedef ortam olarak Azure Synapse'i destekler.

Oracle için SQL Server Geçiş Yardımcısı geçiş işleminin birçok bölümünü nasıl otomatikleştirebileceğini gösteren ekran görüntüsü.

Oracle için SSMA, Oracle veri ambarını veya veri reyonlarını Azure Synapse'e geçirmenize yardımcı olabilir. SSMA, mevcut oracle ortamındaki tabloları, görünümleri ve verileri geçirme sürecini otomatikleştirmek için tasarlanmıştır.

Azure Data Factory , bulutta veri taşımayı ve veri dönüştürmeyi düzenleyen ve otomatik hale getiren veri odaklı iş akışları oluşturmayı destekleyen bulut tabanlı bir veri tümleştirme hizmetidir. Data Factory'yi kullanarak farklı veri depolarından veri alabilen veri temelli iş akışları (işlem hatları) oluşturabilir ve zamanlayabilirsiniz. Data Factory, Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics ve Azure Machine Learning gibi işlem hizmetlerini kullanarak verileri işleyebilir ve dönüştürebilir.

Data Factory, kaynak verileri Azure SQL hedefine geçirmek için kullanılabilir. Bu çevrimdışı veri hareketi, geçiş kapalı kalma süresini önemli ölçüde azaltmaya yardımcı olur.

Azure Veritabanı Geçiş Hizmeti oracle gibi ortamlardan geçiş planlamanıza ve gerçekleştirmenize yardımcı olabilir.

Geçiş işlemini yönetmek için Azure olanaklarını kullanmayı planlarken, geçirilecek tüm veri tablolarını ve konumlarını listeleyen meta veriler oluşturun.

Oracle ile Azure Synapse arasındaki tasarım farklılıkları

Daha önce de belirtildiği gibi Oracle ile Azure Synapse Analytics veritabanları arasındaki yaklaşımda bazı temel farklılıklar vardır. Oracle için SSMA yalnızca bu boşlukların kapatılmasına yardımcı olmakla kalmaz, geçişi otomatikleştirir. SSMA çok yüksek hacimli veriler için en verimli yaklaşım olmasa da, daha küçük tablolar için kullanışlıdır.

Birden çok veritabanı ve tek veritabanı ve şemalar karşılaştırması

Oracle ortamı genellikle birden çok ayrı veritabanı içerir. Örneğin, veri alımı ve hazırlama tabloları, çekirdek ambar tabloları ve veri reyonları için ayrı veritabanları olabilir; bazen anlam katmanı olarak da adlandırılır. ETL veya ELT işlem hatlarında işleme, veritabanları arası birleşimler uygulayabilir ve verileri ayrı veritabanları arasında taşıyabilir.

Buna karşılık, Azure Synapse ortamı tek bir veritabanı içerir ve tabloları mantıksal olarak ayrı gruplara ayırmak için şemaları kullanır. Oracle ortamından geçirilen ayrı veritabanlarını taklit etmek için hedef Azure Synapse veritabanında bir dizi şema kullanmanızı öneririz. Oracle ortamı şemaları zaten kullanıyorsa, mevcut Oracle tablolarını ve görünümlerini yeni ortama taşırken yeni bir adlandırma kuralı kullanmanız gerekebilir. Örneğin, mevcut Oracle şemasını ve tablo adlarını yeni Azure Synapse tablo adıyla birleştirir ve özgün ayrı veritabanı adlarını korumak için yeni ortamdaki şema adlarını kullanabilirsiniz. Mantıksal yapıları korumak için temel tabloların üzerinde SQL görünümlerini kullanabilirsiniz ancak bu yaklaşımın olası dezavantajları vardır:

  • Azure Synapse'teki görünümler salt okunur olduğundan, verilerde yapılan tüm güncelleştirmelerin temel alınan temel tablolarda gerçekleşmesi gerekir.

  • Zaten bir veya daha fazla görünüm katmanı olabilir ve ek görünüm katmanı eklemek performansı etkileyebilir.

İpucu

Azure Synapse'de birden çok veritabanını tek bir veritabanında birleştirin ve tabloları mantıksal olarak ayırmak için şema adlarını kullanın.

Tabloyla ilgili dikkat edilmesi gerekenler

Tabloları farklı ortamlar arasında geçirirken, genellikle yalnızca ham veriler ve bunu açıklayan meta veriler fiziksel olarak geçirildiğinde. Kaynak sistemdeki dizinler gibi diğer veritabanı öğeleri, yeni ortamda gereksiz veya farklı şekilde uygulandığından genellikle geçirilmez.

Dizinler gibi kaynak ortamdaki performans iyileştirmeleri, yeni ortamda performans iyileştirmesini nereye ekleyebileceğinizi gösterir. Örneğin, kaynak Oracle ortamındaki sorgular sık sık bit eşlemeli dizinler kullanıyorsa bu, Azure Synapse içinde kümelenmemiş bir dizin oluşturulması gerektiğini gösterir. Tablo çoğaltma gibi diğer yerel performans iyileştirme teknikleri, benzer dizin oluşturma gibi düzlerden daha uygulanabilir olabilir. Oracle için SSMA, tablo dağıtımı ve dizin oluşturma için geçiş önerileri sağlamak için kullanılabilir.

İpucu

Mevcut dizinler geçirilen ambarda dizin oluşturma adaylarını gösterir.

Desteklenmeyen Oracle veritabanı nesne türleri

Oracle'a özgü özellikler genellikle Azure Synapse özellikleriyle değiştirilebilir. Ancak bazı Oracle veritabanı nesneleri Azure Synapse'te doğrudan desteklenmez. Aşağıdaki desteklenmeyen Oracle veritabanı nesneleri listesinde, Azure Synapse'te eşdeğer bir işlevi nasıl elde edebilirsiniz açıklanmaktadır.

  • Çeşitli dizin oluşturma seçenekleri: Oracle'da bit eşlemeli dizinler, işlev tabanlı dizinler ve etki alanı dizinleri gibi çeşitli dizin oluşturma seçeneklerinin Azure Synapse'te doğrudan eşdeğeri yoktur.

    Hangi sütunların dizine eklendiğini ve dizin türünü şu şekilde bulabilirsiniz:

    • , , USER_INDEXESve gibi ALL_INDEXESDBA_INDEXESsistem kataloğu tablolarını ve DBA_IND_COLgörünümlerini sorgulama. Aşağıdaki ekran görüntüsünde gösterildiği gibi Oracle SQL Developer'daki yerleşik sorguları kullanabilirsiniz.

      Oracle SQL Developer'da sistem kataloğu tablolarını ve görünümlerini sorgulamayı gösteren ekran görüntüsü.

      Veya belirli bir türdeki tüm dizinleri bulmak için aşağıdaki sorguyu çalıştırın:

      SELECT * FROM dba_indexes WHERE index_type LIKE 'FUNCTION-BASED%';
      
    • dba_index_usage İzleme etkinleştirildiğinde veya v$object_usage görünümlerini sorgulama. Bu görünümleri aşağıdaki ekran görüntüsünde gösterildiği gibi Oracle SQL Developer'da sorgulayabilirsiniz.

      Oracle SQL Developer'da hangi dizinlerin kullanıldığını bulma işlemini gösteren ekran görüntüsü.

    Dizinin temel alınan veri sütunlarındaki bir işlevin sonucunu içerdiği işlev tabanlı dizinlerin Azure Synapse'de doğrudan eşdeğeri yoktur. Önce verileri geçirmenizi, ardından Azure Synapse'de performansı ölçmek için işlev tabanlı dizinleri kullanan Oracle sorgularını çalıştırmanızı öneririz. Azure Synapse'te bu sorguların performansı kabul edilebilir değilse, önceden hesaplanmış değeri içeren bir sütun oluşturmayı ve ardından bu sütunu dizine eklemeyi göz önünde bulundurun.

    Azure Synapse ortamını yapılandırdığınızda, yalnızca kullanımdaki dizinleri uygulamak mantıklıdır. Azure Synapse şu anda burada gösterilen dizin türlerini destekler:

    Azure Synapse'in desteklediği dizin türlerini gösteren ekran görüntüsü.

    Paralel sorgu işleme ve verilerin ve sonuçların bellek içi önbelleğe alınması gibi Azure Synapse özellikleri, veri ambarı uygulamalarının performans hedeflerine ulaşması için daha az dizin gerektirebilir. Azure Synapse'te aşağıdaki dizin türlerini kullanmanızı öneririz:

    • Kümelenmiş columnstore dizinleri: Bir tablo için dizin seçeneği belirtilmediğinde Azure Synapse varsayılan olarak kümelenmiş bir columnstore dizini oluşturur. Kümelenmiş columnstore tabloları en yüksek veri sıkıştırma düzeyini, en iyi genel sorgu performansını ve genellikle kümelenmiş dizin veya yığın tablolarından daha iyi performans sunar. Kümelenmiş columnstore dizini genellikle büyük tablolar için en iyi seçenektir. Tablo oluşturduğunuzda, tablonuzun dizinini nasıl oluşturacağınız konusunda emin değilseniz kümelenmiş columnstore'u seçin. Ancak, kümelenmiş columnstore dizinlerinin en iyi seçenek olmadığı bazı senaryolar vardır:

      • Sıralama anahtarlarında önceden sıralama verileri olan tablolar, sıralı kümelenmiş columnstore dizinleri tarafından etkinleştirilen segment elemesinden yararlanabilir.
      • Kümelenmiş columnstore dizini bu veri türlerini desteklemediğinden varchar(max), nvarchar(max) veya varbinary(max) veri türlerine sahip tablolar. Bunun yerine yığın veya kümelenmiş dizin kullanmayı göz önünde bulundurun.
      • Sütun deposu tabloları yığın veya geçici tablolardan daha az verimli olabileceğinden, geçici veri içeren tablolar.
      • 100 milyondan az satır içeren küçük tablolar. Bunun yerine yığın tablolarını kullanmayı göz önünde bulundurun.
    • Sıralı kümelenmiş columnstore dizinleri: Azure Synapse ayrılmış SQL havuzlarındaki sıralı kümelenmiş columnstore dizinleri, verimli segment eleme özelliğini etkinleştirerek sorgu koşuluyla eşleşmeyen çok miktarda sıralı veriyi atlayarak çok daha hızlı performans sağlar. Verileri sıralı bir CCI tablosuna yüklemek, veri sıralama işlemi nedeniyle sıralı olmayan bir CCI tablosundan daha uzun sürebilir, ancak sorgular daha sonra sıralı CCI ile daha hızlı çalıştırılabilir. Sıralı kümelenmiş columnstore dizinleri hakkında daha fazla bilgi için bkz . Sıralı kümelenmiş columnstore diziniyle performans ayarlama.

    • Kümelenmiş ve kümelenmemiş dizinler: Kümelenmiş dizinler, tek bir satırın hızla alınması gerektiğinde kümelenmiş columnstore dizinlerinden daha iyi performansa sahip olabilir. Tek bir satır aramanın veya yalnızca birkaç satır aramanın aşırı hızda gerçekleştirmesi gereken sorgular için küme dizini veya kümelenmemiş ikincil dizin kullanmayı göz önünde bulundurun. Kümelenmiş dizin kullanmanın dezavantajı, yalnızca kümelenmiş dizin sütununda yüksek seçmeli filtreye sahip sorguların avantajlı olmasıdır. Diğer sütunlarda filtrelemeyi geliştirmek için, diğer sütunlara kümelenmemiş dizin ekleyebilirsiniz. Ancak, tabloya eklediğiniz her dizin daha fazla alan kullanır ve yüklenmek için işlem süresini artırır.

    • Yığın tabloları: Azure Synapse'te verileri geçici olarak açarken yığın tablosu kullanmanın genel süreci hızlandırdığını fark edebilirsiniz. Bunun nedeni yığın tablolarına veri yüklemenin dizin tablolarına veri yüklemekten daha hızlı olması ve bazı durumlarda önbellekten sonraki okumaların yapılabilmesidir. Verileri yalnızca daha fazla dönüştürme çalıştırmadan önce hazırlamak için yüklüyorsanız, kümelenmiş columnstore tablosuna göre yığın tablosuna yüklemek çok daha hızlıdır. Ayrıca, verileri geçici bir tabloya yüklemek, tabloyu kalıcı depolamaya yüklemekten daha hızlıdır. 100 milyondan az satır içeren küçük arama tabloları için yığın tabloları genellikle doğru seçimdir. Küme columnstore tabloları, 100 milyondan fazla satır içerdiğinde en iyi sıkıştırmayı elde etmeye başlar.

  • Kümelenmiş tablolar: Oracle tabloları, veriler alındığında disk G/Ç'sini azaltmak için birlikte sık erişilen tablo satırlarının (ortak bir değer temelinde) fiziksel olarak birlikte depolanması için düzenlenebilir. Oracle ayrıca tek tek tablolar için bir karma küme seçeneği de sağlar. Bu seçenek küme anahtarına karma değeri uygular ve aynı karma değere sahip satırları fiziksel olarak birlikte depolar. Oracle veritabanındaki kümeleri listelemek için sorguyu SELECT * FROM DBA_CLUSTERS; kullanın. Tablonun küme içinde olup olmadığını belirlemek için, her tablonun tablo adını ve küme kimliğini gösteren sorguyu kullanın SELECT * FROM TAB; .

    Azure Synapse'te, gerçekleştirilmiş ve/veya çoğaltılmış tabloları kullanarak benzer sonuçlar elde edebilirsiniz çünkü bu tablo türleri sorgu çalışma zamanında gereken G/Ç'yi en aza indirir.

  • Gerçekleştirilmiş görünümler: Oracle gerçekleştirilmiş görünümleri destekler ve sorgularda düzenli olarak yalnızca birkaç sütunun kullanıldığı birçok sütuna sahip büyük tablolar için bir veya daha fazla kullanılmasını önerir. Temel tablodaki veriler güncelleştirildiğinde gerçekleştirilmiş görünümler sistem tarafından otomatik olarak yenilenir.

    Microsoft, 2019'da Azure Synapse'in Oracle'dakiyle aynı işleve sahip gerçekleştirilmiş görünümleri desteklediğini duyurdu. Gerçekleştirilmiş görünümler artık Azure Synapse'te bir önizleme özelliğidir.

  • Veritabanı içi tetikleyiciler: Oracle'da tetikleyici, tetikleyici olayı gerçekleştiğinde otomatik olarak çalışacak şekilde yapılandırılabilir. Olayları tetikleme şu şekilde olabilir:

    • , UPDATEveya DELETEgibi INSERTbir veri işleme dili (DML) deyimi bir tabloda çalışır. Müşteri tablosundaki bir deyimden önce tetiklenen bir INSERT tetikleyici tanımladıysanız, müşteri tablosuna yeni bir satır eklenmeden önce tetikleyici bir kez tetiklenir.

    • veya ALTERgibi CREATE bir DDL deyimi çalışır. Bu tetikleyici genellikle şema değişikliklerini kaydetmek için denetim amacıyla kullanılır.

    • Oracle veritabanını başlatma veya kapatma gibi bir sistem olayı.

    • Oturum açma veya oturum kapatma gibi bir kullanıcı olayı.

    , DBA_TRIGGERSveya USER_TRIGGERS görünümlerini sorgulayarak ALL_TRIGGERSOracle veritabanında tanımlanan tetikleyicilerin listesini alabilirsiniz. Aşağıdaki ekran görüntüsünde Oracle SQL Developer'daki bir DBA_TRIGGERS sorgu gösterilmektedir.

    Oracle SQL Developer'da tetikleyici listesini sorgulamayı gösteren ekran görüntüsü.

    Azure Synapse, Oracle veritabanı tetikleyicilerini desteklemez. Bununla birlikte, Data Factory'yi kullanarak eşdeğer işlevler ekleyebilirsiniz, ancak bunu yapmak için tetikleyicileri kullanan işlemleri yeniden düzenlemeniz gerekir.

  • Eş anlamlılar: Oracle, eş anlamlıların çeşitli veritabanı nesne türleri için alternatif adlar olarak tanımlanmasını destekler. Bu nesne türleri şunlardır: tablolar, görünümler, diziler, yordamlar, saklı işlevler, paketler, gerçekleştirilmiş görünümler, Java sınıfı şema nesneleri, kullanıcı tanımlı nesneler veya başka bir eş anlamlı.

    Azure Synapse şu anda eş anlamlıları tanımlamayı desteklememektedir, ancak Oracle'daki bir eş anlamlı bir tablo veya görünüme başvuruyorsa Azure Synapse'te alternatif adla eşleşecek bir görünüm tanımlayabilirsiniz. Oracle'daki bir eş anlamlı bir işleve veya saklı yordama başvuruyorsa Azure Synapse'de, eş anlamlıyla eşleşen ve hedefi çağıran bir adla başka bir işlev veya saklı yordam oluşturabilirsiniz.

  • Kullanıcı tanımlı türler: Oracle, her biri kendi tanımına ve varsayılan değerlerine sahip bir dizi ayrı alan içerebilen kullanıcı tanımlı nesneleri destekler. Bu nesnelere, veya VARCHARgibi NUMBER yerleşik veri türleriyle aynı şekilde bir tablo tanımı içinde başvurulabilir. , DBA_TYPESveya USER_TYPES görünümlerini sorgulayarak Oracle veritabanında kullanıcı tanımlı türlerin ALL_TYPESlistesini alabilirsiniz.

    Azure Synapse şu anda kullanıcı tanımlı türleri desteklemez. Geçirmeniz gereken veriler kullanıcı tanımlı veri türleri içeriyorsa, bunları geleneksel bir tablo tanımına "düzleştirin" veya veri dizileriyse, bunları ayrı bir tabloda normalleştirin.

Oracle veri türü eşlemesi

Çoğu Oracle veri türünün Azure Synapse'te doğrudan eşdeğeri vardır. Aşağıdaki tabloda Oracle veri türlerini Azure Synapse ile eşlemek için önerilen yaklaşım gösterilmektedir.

Oracle Veri Türü Azure Synapse Veri Türü
BFILE Desteklenmiyor. VARBINARY (MAX) ile eşle.
BINARY_FLOAT Desteklenmiyor. FLOAT ile eşleyin.
BINARY_DOUBLE Desteklenmiyor. DOUBLE olarak eşleyin.
BLOB Doğrudan desteklenmez. değerini VARBINARY(MAX) ile değiştirin.
CHAR CHAR
CLOB Doğrudan desteklenmez. değerini VARCHAR(MAX) ile değiştirin.
DATE Oracle'da TARİh, zaman bilgilerini de içerebilir. Kullanım eşlemesine bağlı olarak DATE veya TIMESTAMP.
ON -DA -LIK ON -DA -LIK
ÇİFT DUYARLI ÇİFT
FLOAT FLOAT
TAM SAYI INT
INTERVAL YEAR TO MONTH INTERVAL veri türleri desteklenmez. Tarih hesaplamaları için DATEDIFF veya DATEADD gibi tarih karşılaştırma işlevlerini kullanın.
ARALıK GÜNÜ - SANIYE INTERVAL veri türleri desteklenmez. Tarih hesaplamaları için DATEDIFF veya DATEADD gibi tarih karşılaştırma işlevlerini kullanın.
UZUN Desteklenmiyor. VARCHAR(MAX) ile eşleyin.
LONG RAW Desteklenmiyor. VARBINARY(MAX) ile eşleyin.
NCHAR NCHAR
NVARCHAR2 NVARCHAR
SAYI FLOAT
NCLOB Doğrudan desteklenmez. yerine NVARCHAR(MAX) yazın.
SAYISAL SAYISAL
ORD medya veri türleri Desteklenmez
ÇİĞ Desteklenmiyor. VARBINARY ile eşleyin.
GERÇEK GERÇEK
ROWID Desteklenmiyor. Benzer olan GUID ile eşleyin.
SDO Jeo-uzamsal veri türleri Desteklenmez
SMALLINT SMALLINT
TIMESTAMP DATETIME2 veya CURRENT_TIMESTAMP() işlevi
YEREL SAAT DILIMI ILE ZAMAN DAMGASı Desteklenmiyor. DATETIMEOFFSET ile eşleyin.
SAAT DILIMI ILE ZAMAN DAMGASı SAAT, saat dilimi uzaklığı olmadan duvar saati saati kullanılarak depolandığından desteklenmez.
URIType Desteklenmiyor. VARCHAR'da depolayın.
UROWID Desteklenmiyor. Benzer olan GUID ile eşleyin.
VARCHAR VARCHAR
VARCHAR2 VARCHAR
XMLType Desteklenmiyor. XML verilerini BIR VARCHAR içinde depolayın.

Oracle, her biri kendi tanımına ve varsayılan değerlerine sahip bir dizi ayrı alan içerebilen kullanıcı tanımlı nesnelerin tanımlanmasını da destekler. Daha sonra bu nesnelere, veya VARCHARgibi NUMBER yerleşik veri türleriyle aynı şekilde bir tablo tanımı içinde başvurulabilir. Azure Synapse şu anda kullanıcı tanımlı türleri desteklemez. Geçirmeniz gereken veriler kullanıcı tanımlı veri türleri içeriyorsa, bunları geleneksel bir tablo tanımına "düzleştirin" veya veri dizileriyse, bunları ayrı bir tabloda normalleştirin.

İpucu

Geçiş hazırlık aşamasında desteklenmeyen veri türlerinin sayısını ve türünü değerlendirin.

Üçüncü taraf satıcılar, veri türlerinin eşlemesi de dahil olmak üzere geçişi otomatikleştirmek için araçlar ve hizmetler sunar. Oracle ortamında bir üçüncü taraf ETL aracı zaten kullanılıyorsa, gerekli veri dönüştürmelerini uygulamak için bu aracı kullanın.

SQL DML söz dizimi farklılıkları

Oracle SQL ile Azure Synapse T-SQL arasında SQL DML söz dizimi farklılıkları vardır. Bu farklılıklar Oracle geçişleri için SQL sorunlarını en aza indirme bölümünde ayrıntılı olarak ele alınacaktır. Bazı durumlarda, Oracle ve Azure Veritabanı Geçiş Hizmeti s için SSMA gibi Microsoft araçlarını veya üçüncü taraf geçiş ürün ve hizmetlerini kullanarak DML geçişini otomatikleştirebilirsiniz.

İşlevler, saklı yordamlar ve diziler

Oracle gibi olgun bir ortamdan veri ambarı geçirirken, büyük olasılıkla basit tablolar ve görünümler dışındaki öğeleri geçirmeniz gerekir. Azure ortamındaki araçların işlevlerin, saklı yordamların ve dizilerin işlevselliğini değiştirip değiştiremeyeceğini denetleyin çünkü yerleşik Azure araçlarını kullanmak, Bunları Azure Synapse için yeniden kodlamaktan daha verimlidir.

Hazırlık aşamanızın bir parçası olarak geçirilmesi gereken nesnelerin envanterini oluşturun, bunları işlemek için bir yöntem tanımlayın ve geçiş planınızda uygun kaynakları ayırın.

Oracle ve Azure Veritabanı Geçiş Hizmeti s için SSMA veya üçüncü taraf geçiş ürünleri ve hizmetleri gibi Microsoft araçları işlevlerin, saklı yordamların ve dizilerin geçişini otomatikleştirebilir.

Aşağıdaki bölümlerde işlevlerin, saklı yordamların ve dizilerin geçişi ele alınmaktadır.

İşlevler

Çoğu veritabanı ürününde olduğu gibi Oracle da bir SQL uygulamasında sistem ve kullanıcı tanımlı işlevleri destekler. Eski bir veritabanı platformunu Azure Synapse'e geçirdiğinizde, genel sistem işlevleri genellikle değişiklik olmadan geçirilebilir. Bazı sistem işlevlerinin söz dizimi biraz farklı olabilir, ancak gerekli değişiklikler otomatikleştirilebilir. Görünümü uygun WHERE yan tümceyle sorgulayarak Oracle veritabanındaki işlevlerin ALL_OBJECTS listesini alabilirsiniz. Aşağıdaki ekran görüntüsünde gösterildiği gibi işlevlerin listesini almak için Oracle SQL Developer'ı kullanabilirsiniz.

Oracle SQL Developer'da işlevlerin listesini sorgulamayı gösteren ekran görüntüsü.

Oracle sistem işlevleri veya Azure Synapse'te eşdeğeri olmayan rastgele kullanıcı tanımlı işlevler için bu işlevleri bir hedef ortam dili kullanarak yeniden kodlayın. Oracle kullanıcı tanımlı işlevler PL/SQL, Java veya C ile kodlanmıştır. Azure Synapse, kullanıcı tanımlı işlevleri uygulamak için Transact-SQL dilini kullanır.

Saklı yordamlar

Çoğu modern veritabanı ürünü, yordamların veritabanında depolanmasını destekler. Oracle bu amaçla PL/SQL dilini sağlar. Saklı yordam genellikle hem SQL deyimlerini hem de yordam mantığını içerir ve veri veya durum döndürür. Görünümü uygun WHERE yan tümceyle sorgulayarak ALL_OBJECTS Oracle veritabanındaki saklı yordamların listesini alabilirsiniz. Sonraki ekran görüntüsünde gösterildiği gibi saklı yordamların listesini almak için Oracle SQL Developer'ı kullanabilirsiniz.

Oracle SQL Developer'da saklı yordamların listesini sorgulamayı gösteren ekran görüntüsü.

Azure Synapse, T-SQL kullanarak saklı yordamları destekler, bu nedenle geçirilen tüm saklı yordamları bu dilde yeniden kodlamanız gerekir.

Sıralamalar

Oracle'da sıra, kullanılarak CREATE SEQUENCEoluşturulan adlandırılmış bir veritabanı nesnesidir. Bir dizi, ve NEXTVAL yöntemleri aracılığıyla CURRVAL benzersiz sayısal değerler sağlar. Oluşturulan benzersiz sayıları birincil anahtarlar için vekil anahtar değerleri olarak kullanabilirsiniz.

Azure Synapse uygulamasını yapmazCREATE SEQUENCE, ancak bir seride sonraki sıra numarasını oluşturan IDENTITY sütunlarını veya SQL kodunu kullanarak dizileri uygulayabilirsiniz.

Oracle ortamından meta verileri ve verileri ayıklama

Veri Tanımı Dili oluşturma

ANSI SQL standardı, Veri Tanımı Dili (DDL) komutlarının temel söz dizimini tanımlar. ve CREATE VIEWgibi CREATE TABLE bazı DDL komutları hem Oracle hem de Azure Synapse için ortaktır, ancak dizin oluşturma, tablo dağıtımı ve bölümleme seçenekleri gibi uygulamaya özgü özellikler de sağlar.

Azure Synapse'te eşdeğer tanımlar elde etmek için mevcut Oracle'ı CREATE TABLE ve CREATE VIEW betikleri düzenleyebilirsiniz. Bunu yapmak için değiştirilmiş veri türlerini kullanmanız ve gibi TABLESPACEOracle'a özgü yan tümceleri kaldırmanız veya değiştirmeniz gerekebilir.

Oracle ortamında sistem kataloğu tabloları geçerli tabloyu ve görünüm tanımını belirtir. Kullanıcı tarafından korunan belgelerden farklı olarak, sistem kataloğu bilgileri her zaman eksiksizdir ve geçerli tablo tanımlarıyla eşitlenir. Oracle SQL Developer gibi yardımcı programları kullanarak sistem kataloğu bilgilerine erişebilirsiniz. Oracle SQL Developer, Azure Synapse'te eşdeğer tablolar oluşturmak için düzenleyebileceğiniz DDL deyimleri oluşturabilir CREATE TABLE .

Öte yandan, mevcut oracle ortamındaki tabloları Azure Synapse'e geçirmek için Oracle için SSMA da kullanabilirsiniz. Oracle için SSMA, aşağıdaki ekran görüntüsünde gösterildiği gibi uygun veri türü eşlemelerini ve önerilen tablo ve dağıtım türlerini uygular.

Oracle için SQL Server Geçiş Yardımcısı kullanarak tabloların ve mevcut Oracle ortamından Azure Synapse'e nasıl geçirilip geçirilmez gösteren ekran görüntüsü.

Benzer sonuçlar elde etmek için sistem kataloğu bilgilerini işleyen üçüncü taraf geçiş ve ETL araçlarını da kullanabilirsiniz.

Oracle'dan veri ayıklama

Oracle SQL Developer , SQL*Plus ve SCLcl gibi standart Oracle yardımcı programlarını kullanarak Oracle tablolarındaki ham tablo verilerini CSV dosyaları gibi düz sınırlandırılmış dosyalara ayıklayabilirsiniz. Ardından gzip kullanarak düz sınırlandırılmış dosyaları sıkıştırabilir ve AzCopy veya Azure Data Box gibi Azure veri aktarım araçlarını kullanarak sıkıştırılmış dosyaları Azure Blob Depolama yükleyebilirsiniz.

Özellikle büyük olgu tablolarını geçirirken tablo verilerini mümkün olduğunca verimli bir şekilde ayıklayın. Oracle tablolarında, ayıklama aktarım hızını en üst düzeye çıkarmak için paralellik kullanın. Ayrık veri kesimlerini ayrı ayrı ayıklayan birden çok işlem çalıştırarak veya bölümleme aracılığıyla paralel ayıklamayı otomatikleştirebilen araçları kullanarak paralellik elde edebilirsiniz.

İpucu

En verimli veri ayıklama için paralellik kullanın.

Yeterli ağ bant genişliği varsa, şirket içi Oracle sisteminden verileri doğrudan Azure Synapse tablolarına veya Azure Blob Veri Depolama'ya ayıklayabilirsiniz. Bunu yapmak için Data Factory işlemlerini, Azure Veritabanı Geçiş Hizmeti veya üçüncü taraf veri geçişlerini ya da ETL ürünlerini kullanın.

Ayıklanan veri dosyaları CSV, İyileştirilmiş Satır Sütunlu (ORC) veya Parquet biçiminde sınırlandırılmış metin içermelidir.

Oracle ortamından verileri ve ETL'yi geçirme hakkında daha fazla bilgi için bkz . Oracle geçişleri için veri geçişi, ETL ve yükleme.

Oracle geçişleri için performans önerileri

Performans iyileştirme hedefi, Azure Synapse'e geçiş sonrasında aynı veya daha iyi veri ambarı performansıdır.

Performans ayarlama yaklaşımı kavramlarındaki benzerlikler

Oracle veritabanları için birçok performans ayarlama kavramı, Azure Synapse veritabanları için geçerlidir. Örneğin:

  • Birleştirilecek verileri aynı işleme düğümüne birlikte dağıtmak için veri dağıtımını kullanın.

  • Depolama alanından tasarruf etmek ve sorgu işlemeyi hızlandırmak için belirli bir sütun için en küçük veri türünü kullanın.

  • Birleştirme işlemini iyileştirmek ve veri dönüştürme gereksinimini azaltmak için birleştirilecek sütunların aynı veri türüne sahip olduğundan emin olun.

  • İyileştiricinin en iyi yürütme planını oluşturmasına yardımcı olmak için istatistiklerin güncel olduğundan emin olun.

  • Kaynakların verimli bir şekilde kullanıldığından emin olmak için yerleşik veritabanı özelliklerini kullanarak performansı izleyin.

İpucu

Geçişin başlangıcında Azure Synapse ayarlama seçenekleri hakkında bilgi sahibi olun.

Performans ayarlama yaklaşımındaki farklılıklar

Bu bölümde Oracle ile Azure Synapse arasındaki düşük düzey performans ayarlama uygulaması farklılıkları vurgulanmaktadır.

Veri dağıtım seçenekleri

Performans için Azure Synapse, çok düğümlü mimariyle tasarlanmıştır ve paralel işleme kullanır. Azure Synapse'te tablo performansını iyileştirmek için deyimini DISTRIBUTION kullanarak deyimlerde CREATE TABLE bir veri dağıtım seçeneği tanımlayabilirsiniz. Örneğin, belirleyici bir karma işlevi kullanarak tablo satırlarını işlem düğümleri arasında dağıtan karma dağıtılmış bir tablo belirtebilirsiniz. Özellikle eski şirket içi sistemler olmak üzere birçok Oracle uygulaması bu özelliği desteklemez.

Oracle'ın aksine Azure Synapse, küçük tablo çoğaltması aracılığıyla küçük bir tablo ile büyük bir tablo arasında yerel birleştirmeleri destekler. Örneğin, yıldız şema modeli içinde küçük bir boyut tablosu ve büyük bir olgu tablosu düşünün. Azure Synapse, büyük tablonun herhangi bir birleştirme anahtarının değerinin eşleşen, yerel olarak kullanılabilir bir boyut satırına sahip olduğundan emin olmak için küçük boyut tablosunu tüm düğümler arasında çoğaltabilir. Boyut tablosu çoğaltmasının yükü, küçük bir boyut tablosu için nispeten düşüktür. Büyük boyut tabloları için karma dağıtım yaklaşımı daha uygundur. Veri dağıtım seçenekleri hakkında daha fazla bilgi için bkz. Çoğaltılmış tabloları kullanmaya yönelik tasarım kılavuzu ve Dağıtılmış tablolar tasarlama kılavuzu.

İpucu

Karma dağıtım, büyük olgu tablolarında sorgu performansını artırır. Hepsini bir kez deneme dağıtımı, yükleme hızını artırmak için kullanışlıdır.

Karma dağıtımı, temel tablonun daha eşit bir şekilde dağıtılması için birden çok sütuna uygulanabilir. Çok sütunlu dağıtım, dağıtım için en fazla sekiz sütun seçmenize olanak sağlar. Bu yalnızca zaman içinde veri dengesizliğini azaltmakla kalmaz, aynı zamanda sorgu performansını da geliştirir.

Not

Çok sütunlu dağıtım şu anda Azure Synapse Analytics için önizleme aşamasındadır. CREATE MATERIALIZED VIEW, CREATE TABLE ve CREATE TABLE AS SELECT ile çok sütunlu dağıtım kullanabilirsiniz.

Dağıtım Danışmanı

Azure Synapse SQL'de her tablonun dağıtılma şekli özelleştirilebilir. Tablo dağıtım stratejisi sorgu performansını önemli ölçüde etkiler.

Dağıtım danışmanı, Synapse SQL'de sorguları analiz eden ve sorgu performansını geliştirmek için tablolar için en iyi dağıtım stratejilerini öneren yeni bir özelliktir. Danışman tarafından dikkate alınması gereken sorgular sizin tarafınızdan sağlanabilir veya DMV'de bulunan geçmiş sorgularınızdan alınabilir.

Dağıtım danışmanını kullanma hakkında ayrıntılı bilgi ve örnekler için Azure Synapse SQL'de Dağıtım Danışmanı'nı ziyaret edin.

Veri dizini oluşturma

Azure Synapse, Oracle'da sistem tarafından yönetilen bölge haritalarına kıyasla farklı bir işleme ve kullanıma sahip olan, kullanıcı tanımlı birkaç dizin oluşturma seçeneğini destekler. Azure Synapse'teki farklı dizin oluşturma seçenekleri hakkında daha fazla bilgi için bkz . Ayrılmış SQL havuzu tablolarındaki dizinler.

Kaynak Oracle ortamındaki dizin tanımları, Azure Synapse ortamında dizin oluşturmak için veri kullanımına ve aday sütunlara ilişkin yararlı bir gösterge sağlar. Azure Synapse dizinlere fazla güvenmediğinden ve olağanüstü performans elde etmek için aşağıdaki özellikleri uyguladığından, genellikle eski bir Oracle ortamındaki tüm dizinleri geçirmeniz gerekmez:

  • Paralel sorgu işleme.

  • Bellek içi veriler ve sonuç kümesi önbelleğe alma.

  • G/Ç'yi azaltmak için küçük boyut tablolarının çoğaltılması gibi veri dağıtımı.

Veri bölümleme

Kurumsal veri ambarında olgu tabloları milyarlarca satır içerebilir. Bölümleme, işlenen veri miktarını azaltmak için bu tabloların bakımını ve sorgusunu ayrı bölümlere ayırarak en iyi duruma getirir. Azure Synapse'te deyimi, CREATE TABLE bir tablonun bölümleme belirtimini tanımlar.

Bölümleme için tablo başına yalnızca bir alan kullanabilirsiniz. Birçok sorgu tarihe veya tarih aralığına göre filtrelendiğinden bu alan genellikle bir tarih alanıdır. Tabloyu yeni bir dağıtımla yeniden oluşturmak için (CTAS) deyimini kullanarak ilk yüklemeden CREATE TABLE AS sonra bir tablonun bölümlemini değiştirmek mümkündür. Azure Synapse'te bölümleme hakkında ayrıntılı bilgi için bkz . Ayrılmış SQL havuzunda tabloları bölümleme.

Veri yükleme için PolyBase veya COPY INTO

PolyBase , paralel yükleme akışları kullanarak büyük miktarlardaki verilerin bir veri ambarı için verimli bir şekilde yüklenmesini destekler. Daha fazla bilgi için bkz . PolyBase veri yükleme stratejisi.

COPY INTO ayrıca yüksek aktarım hızına sahip veri alımını destekler ve:

  • Klasör ve alt klasörlerdeki tüm dosyalardan veri alma.
  • Aynı depolama hesabındaki birden çok konumdan veri alma. Virgülle ayrılmış yollar kullanarak birden çok konum belirtebilirsiniz.
  • Azure Data Lake Storage (ADLS) ve Azure Blob Depolama.
  • CSV, PARQUET ve ORC dosya biçimleri.

İpucu

Veri yükleme için önerilen yöntem PARQUET dosya biçimiyle birlikte kullanmaktır COPY INTO .

İş yükü yönetimi

Karışık iş yüklerinin çalıştırılması, meşgul sistemlerde kaynak zorluklarına neden olabilir. Başarılı bir iş yükü yönetim şeması kaynakları etkili bir şekilde yönetir, yüksek verimli kaynak kullanımı sağlar ve yatırım getirisini (ROI) en üst düzeye çıkarır. İş yükü sınıflandırması, iş yükü önemi ve iş yükü yalıtımı , iş yükünün sistem kaynaklarını nasıl kullandığı üzerinde daha fazla denetim sağlar.

İş yükü yönetimi kılavuzunda iş yükünü analiz etme, iş yükü önemini yönetme ve izleme teknikleri ve bir kaynak sınıfını iş yükü grubuna dönüştürme adımları açıklanmaktadır. geçerli kaynakların verimli bir şekilde kullanıldığından emin olmak için iş yükünü izlemek için DMV'lerdeki Azure portalını ve T-SQL sorgularını kullanın.

Sonraki adımlar

Oracle geçişi için ETL ve yükleme hakkında bilgi edinmek için bu serinin sonraki makalesine bakın: Veri geçişi, ETL ve Oracle geçişleri için yükleme.