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 birinci bölümüdür. Bu makalenin odak noktası tasarım ve performans için 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 devretmenize olanak tanır.

İ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, fazladan fiziksel donanım ve uzun veritabanı yeniden yapılandırma veya döküm ve yeniden yükleme gibi ö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 duraklatabilir veya yeniden boyutlandırabilirsiniz.

Microsoft Azure, Azure Synapse ve destekleyici araç ve özellikler ekosistemi 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 yeteneklerin Azure Synapse ekosistemini gösteren grafik.

Azure Synapse, MPP ve otomatik bellek içi önbelleğe alma gibi teknikleri kullanarak türünün en iyisi ilişkisel veritabanı performansı sağlar. Bu tekniklerin sonuçlarını, gigaom tarafından yakın zamanda çalıştırılan ve Azure Synapse diğer popüler bulut veri ambarı teklifleriyle karşılaştıran bağımsız karşılaştırmalarda görebilirsiniz. Azure Synapse ortamına geçiş yapan müşteriler aşağıdakiler de dahil olmak üzere 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 veri ambarlarını Oracle gibi eski bir şirket içi platformdan Azure Synapse taşımayı içerir. Yüksek düzeyde, geçiş işlemi ş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.

  • Yeni platformda personeli 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 ş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, mevcut oracle ortamından Azure Synapse bir veri ambarı geçirildiğinde performans iyileştirmesine yönelik genel bilgiler ve yönergeler sağlanır. Performans iyileştirmesinin amacı, geçiş sonrasında Azure Synapse aynı veya daha iyi veri ambarı performansını elde etmektir.

Tasarım konusunda dikkat edilmesi gerekenler

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çin

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 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 mevcut araçlara ve işlemlere özgü daha fazla geçiş için bir şablon oluşturun.

Oracle ortamından ilk geçiş için iyi bir aday, önceki öğeleri destekler 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 star 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ı, 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 dolduruldıktan 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ına ve kapsamına bakılmaksızın 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, star ş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 şu senaryolar için uygundur:

  • Geçiş için tek bir veri reyonu içeren mevcut bir Oracle ortamınız var veya
  • İyi tasarlanmış bir star 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 birleştirir 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 geçiş yapın. Geçiş, temel alınan veri modelinde inmon modelinden veri kasasına geçiş 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 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ı veya veri reyonu Azure Synapse 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 almak için 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 hedefe geçirmek için kullanılabilir. Bu çevrimdışı veri taşıma, geçiş kapalı kalma süresini önemli ölçüde azaltmaya yardımcı olur.

Azure Veritabanı Geçiş Hizmetleri , 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 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, aynı zamanda 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 için ayrı veritabanları olabilir: veri alımı ve hazırlama tabloları, çekirdek ambar tabloları ve veri reyonları( 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ştirebilir ve özgün ayrı veritabanı adlarını korumak için yeni ortamda ş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'deki görünümler salt okunur olduğundan, verilerde yapılan tüm güncelleştirmeler temel alınan temel tablolarda gerçekleştirilmelidir.

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

İpucu

Birden çok veritabanını Azure Synapse içinde 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. Kaynak sistemdeki dizinler gibi diğer veritabanı öğeleri, yeni ortamda gereksiz olabileceği veya farklı uygulanabileceği için 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 şekilde düz dizin oluşturma işleminden 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 özelliklerle değiştirilebilir. Ancak bazı Oracle veritabanı nesneleri Azure Synapse'de doğrudan desteklenmez. Aşağıdaki desteklenmeyen Oracle veritabanı nesneleri listesinde, Azure Synapse'de eşdeğer bir işlevselliği 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 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%';
      
    • İzleme dba_index_usage 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ında bir işlevin sonucunu içerdiği işlev tabanlı dizinlerin Azure Synapse 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'de 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 destekleyen 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 özellikler, veri ambarı uygulamalarının performans hedeflerine ulaşması için daha az dizin gerektirebilir. Azure Synapse'de 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 ön 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.
      • Columnstore tabloları yığın veya geçici tablolardan daha az verimli olabileceğinden, geçici veri içeren tablolar.
      • 100 milyondan az satırı olan küçük tablolar. Bunun yerine yığın tablolarını kullanmayı göz önünde bulundurun.
    • Sıralı kümelenmiş columnstore dizinleri: Verimli segment ortadan kaldırmayı etkinleştirerek, ayrılmış SQL havuzlarındaki sıralı kümelenmiş columnstore dizinleri Azure Synapse, 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ışabilir. 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 performans gösterir. Tek bir satır aramanın veya yalnızca birkaç satır aramanın aşırı hızda gerçekleştirilmesi 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, bir 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ı: verileri Azure Synapse 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ı depolama alanına yüklemekten daha hızlıdır. 100 milyondan az satırı olan 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 bir 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'da, 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.

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

  • Veritabanı içi tetikleyiciler: Oracle'da tetikleyici, bir 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 yaptığınızda tetikleyicileri kullanan işlemleri yeniden düzenlemeniz gerekir.

  • Eş anlamlılar: Oracle, çeşitli veritabanı nesne türleri için alternatif adlar olarak eş anlamlılar tanımlamayı destekler. Bu nesne türleri şunlardır: tablolar, görünümler, diziler, yordamlar, depolanan 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, alternatif adla eşleşmesi için Azure Synapse'de bir görünüm tanımlayabilirsiniz. Oracle'daki bir eş anlamlı bir işlev veya saklı yordama başvuruyorsa, Azure Synapse içinde, 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'de doğrudan eşdeğeri vardır. Aşağıdaki tabloda Oracle veri türlerini Azure Synapse eşlemek için önerilen yaklaşım gösterilmektedir.

Oracle Veri Türü Azure Synapse Veri Türü
BDOSYA Desteklenmez. VARBINARY (MAX) ile eşleyin.
BINARY_FLOAT Desteklenmez. FLOAT ile eşleyin.
BINARY_DOUBLE Desteklenmez. 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, saat bilgilerini de içerebilir. Kullanım eşlemesine bağlı olarak DATE veya TIMESTAMP.
ON -DA -LIK ON -DA -LIK
ÇİFT DUYARLıK ÇIFTI
FLOAT FLOAT
TAMSAYI INT
YILDAN AYA ARALIK 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 Desteklenmez. VARCHAR(MAX) ile eşleyin.
LONG RAW Desteklenmez. VARBINARY(MAX) ile eşleyin.
NCHAR NCHAR
NVARCHAR2 NVARCHAR
NUMARASI FLOAT
NCLOB Doğrudan desteklenmez. değerini NVARCHAR(MAX) ile değiştirin.
SAYISAL SAYISAL
ORD medya veri türleri Desteklenmez
HAM Desteklenmez. VARBINARY ile eşleyin.
GERÇEK SAYI GERÇEK SAYI
ROWID Desteklenmez. Benzer şekilde GUID ile eşleyin.
SDO Jeo-uzamsal veri türleri Desteklenmez
SMALLİNT SMALLİNT
TIMESTAMP DATETIME2 veya CURRENT_TIMESTAMP() işlevi
YEREL SAAT DILIMI ILE ZAMAN DAMGASı Desteklenmez. DATETIMEOFFSET ile eşleyin.
SAAT DILIMI ILE ZAMAN DAMGASı TIME, saat dilimi uzaklığı olmadan duvar saati saati kullanılarak depolandığından desteklenmez.
Uritype Desteklenmez. VARCHAR'da depolayın.
UROWID Desteklenmez. Benzer şekilde GUID ile eşleyin.
VARCHAR VARCHAR
VARCHAR2 VARCHAR
Xmltype Desteklenmez. 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ı nesneleri tanımlamayı da destekler. Bu nesnelere, veya VARCHARgibi NUMBER yerleşik veri türleriyle aynı şekilde 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ırlama 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üşümlerini 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 için SSMA ve Azure Veritabanı Geçiş Hizmetleri 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. Yerleşik Azure araçlarını kullanmak genellikle Azure Synapse için yeniden kodlamaktan daha verimli olduğundan, Azure ortamındaki araçların işlevlerin, saklı yordamların ve dizilerin işlevlerini değiştirip değiştiremeyeceğini denetleyin.

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ş Hizmetleri 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 daha ayrıntılı olarak 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 geçirdiğinizde, yaygın 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 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ı desteklediği için geçirilen tüm saklı yordamları bu dilde yeniden kodlamanız gerekir.

Diziler

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 uygulamazCREATE SEQUENCE, ancak kimlik sütunlarını veya bir serideki bir sonraki sıra numarasını oluşturan 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ımlama 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'de 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'de eşdeğer tablolar oluşturmak için düzenleyebileceğiniz DDL deyimleri oluşturabilirCREATE TABLE.

Öte yandan, tabloları mevcut oracle ortamından Azure Synapse geçirmek için Oracle için SSMA 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 geçişini 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, verileri şirket içi Oracle sisteminden 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ş veya ETL ürünlerini kullanın.

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

Oracle ortamından veri ve ETL 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 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. Örnek:

  • 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 ihtiyacını 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ındaki Azure Synapse ayarlama seçenekleri hakkında bilgi sahibiliğe öncelik verin.

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

Bu bölümde Oracle ile Azure Synapse arasındaki düşük düzey performans ayarlama uygulama farklılıkları vurgulanmıştı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 tablo performansını iyileştirmek için deyimini kullanarak DISTRIBUTION deyimlerde CREATE TABLE bir veri dağıtım seçeneği tanımlayabilirsiniz. Örneğin, deterministic karma işlevini 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, bir star ş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 dağılımı 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ın nasıl kullanılacağına ilişkin ayrıntılar 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 birkaç kullanıcı tanımlı dizin oluşturma seçeneğini destekler. Azure Synapse'daki 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ı, veri kullanımının ve Azure Synapse ortamında dizin oluşturma için aday sütunların yararlı bir göstergesini 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 bunları ayrı bölümlere ayırarak bu tabloların bakımını ve sorgusunu iyileştirir. Azure Synapse deyimiCREATE 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 tablonun bölümlenmesi değiştirilebilir. Azure Synapse'da 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 göre veri alımını destekler ve:

  • Bir 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

Karma iş yüklerinin çalıştırılması, meşgul sistemlerde kaynak sorunları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ünün ö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 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.