Kopyalama etkinliğinin performansıyla ilgili sorunları giderme

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu makalede, Azure Data Factory kopyalama etkinliği performans sorununun nasıl giderilir açıklanmıştır.

Kopyalama etkinliğini çalıştırdıktan sonra, kopyalama etkinliği izleme görünümünde çalıştırma sonucunu ve performans istatistiklerini toplayabilirsiniz. Aşağıdaki görüntüde bir örnek gösterilmektedir.

Kopyalama etkinliği çalıştırma ayrıntılarını izleme

Performans ayarlama ipuçları

Bazı senaryolarda, bir kopyalama etkinliği çalıştırdığınızda, önceki görüntüde gösterildiği gibi en üstte "Performans ayarlama ipuçları" görürsünüz. İpuçları, bu belirli kopyalama işlemi için servis tarafından tanımlanan darboğazı ve kopyalama aktarım hızını nasıl artıracağınıza dair öneriyi verir. Önerilen değişikliği yapmayı deneyin, ardından kopyayı yeniden çalıştırın.

Başvuru olarak, şu anda performans ayarlama ipuçları aşağıdaki durumlar için öneriler sağlar:

Kategori Performans ayarlama ipuçları
Veri deposuna özgü Azure Synapse Analytics içine veri yükleme: Kullanılmadıysa PolyBase veya COPY deyimini kullanmayı önerin.
  Azure SQL Veritabanı'dan verileri kopyalarken: DTU yüksek kullanımda olduğunda, daha yüksek bir katmana yükseltmeyi öneririz.
  Azure Cosmos DB: RU yüksek kullanım altında olduğunda, verileri kopyalamak için daha büyük bir RU'ya yükseltmeyi öneririz.
SAP Tablosundan veri kopyalama: Büyük miktarda veri kopyalarken, paralel yüklemeyi etkinleştirmek ve maksimum bölüm sayısını artırmak için SAP bağlayıcısının bölüm seçeneğini kullanmanızı önerin.
  Amazon Redshift'ten veri alma: Kullanılmıyorsa UNLOAD kullanılmasını önerin.
Veri deposu kısıtlama Kopyalama sırasında birçok okuma/yazma işlemi veri deposu tarafından kısıtlanıyorsa, veri deposu için izin verilen istek oranını denetlemeyi ve artırmayı veya eşzamanlı iş yükünü azaltmayı önerin.
Tümleştirme çalışma zamanı Kendi kendini barındıran Integration Runtime (IR) kullanıyorsanız ve kopyalama etkinliği, IR'in yürütülebilmesi için gerekli kaynağa sahip olmasını bekleyerek kuyrukta uzun süre bekliyorsa, IR'nizi ölçeklendirerek genişletmeniz veya artırmanız önerilir.
  Okuma/yazmanın yavaş olmasına neden olan, en uygun olmayan bir bölgede Azure Integration Runtime kullanıyorsanız, başka bir bölgede IR kullanmak için yapılandırmayı önerin.
Hataya dayanıklılık Hataya dayanıklılık yapılandırıp uyumsuz satırların atlanması performansın yavaş olmasına neden olursa kaynak ve havuz verilerinin uyumlu olduğundan emin olunmasını önerin.
Sahnelenmiş kopya Önbelleklenmiş kopya yapılandırıldıysa ancak kaynak-alıcı çiftiniz için yararlı değilse, kaldırmanızı öneririz.
Sürdür Kopyalama etkinliği son hata noktasından devam ettirildiğinde ancak özgün çalıştırmadan sonra DIU ayarını değiştirdiğinizde, yeni DIU ayarının etkin olmadığını unutmayın.

Kopyalama etkinliğinin yürütülme ayrıntılarını anlama

Kopyalama etkinliği izleme görünümünün en altındaki yürütme ayrıntıları ve süreleri, kopyalama etkinliğinizin ilerlediği temel aşamaları açıklar (bu makalenin başındaki örnağa bakın), bu özellikle kopyalama performansı sorunlarını gidermek için kullanışlıdır. Kopyalama işleminizin tıkanıklığı, en uzun süreye sahip olan aşamadır. Her aşamanın tanımına ilişkin aşağıdaki tabloya bakın ve bu bilgileri kullanarak Azure IR üzerinde kopyalama etkinliğini gidermeyi ve Self-hosted IR üzerinde kopyalama etkinliğini gidermeyi öğrenin.

Aşama Açıklama
Sıra Kopyalama işleminin tümleştirme çalışma zamanında gerçekten başlamasına kadar geçen süre.
Ön kopyalama betiği IR'de başlayan kopyalama etkinliği ile havuz veri deposunda ön kopya betiği çalıştırılarak kopyalama etkinliğinin tamamlanması arasında geçen süre. Veritabanı havuzları için ön kopya betiğini yapılandırırken uygulayın; örneğin, Azure SQL Veritabanı'e veri yazarken, yeni verileri kopyalamadan önce temizleme işlemi yapın.
Aktarma Önceki adımın sonu ile tüm verilerin kaynaktan havuza aktarılması arasında geçen süre.
Aktarım altındaki alt işlemlerin paralel olarak çalıştığını ve bazı işlemlerin şu anda gösterilmediğinden( örneğin, dosya biçimini ayrıştırma/oluşturma) not edin.

- İlk bayt süresi: Önceki adımın sonu ile IR'nin kaynak veri deposundan ilk bayta sahip olduğu süre arasında geçen süre. Dosya tabanlı olmayan kaynaklar için geçerlidir.
- Listeleme kaynağı: Kaynak dosyaları veya veri bölümlerini listelemek için harcanan süre. İkincisi, veritabanı kaynakları için bölüm seçeneklerini yapılandırdığınızda (örneğin, Oracle/SAP HANA/Teradata/Netezza/vb. gibi veritabanlarından veri kopyalarken) geçerlidir.
- Kaynaktan okuma: Kaynak veri deposundan veri almak için harcanan süre.
- Veri deposuna yazma: Veri deposuna veri yazmak için harcanan süre. Azure Yapay Zeka Arama, Azure Veri Gezgini, Azure Tablo depolama, Oracle, SQL Server, Common Data Service, Dynamics 365 Dynamics 365 Dynamics CRM, Salesforce/Salesforce Service Cloud gibi bazı bağlayıcıların şu anda bu ölçüme sahip olmadığını unutmayın.

Azure IR'de kopyalama etkinliği sorunlarını giderme

Senaryonuz için performans testini planlamak ve yürütmek için Performans ayarlama adımlarını izleyin.

Kopyalama etkinliği performansı beklentilerinizi karşılamadığında, Azure Integration Runtime üzerinde çalışan tek kopya etkinliğinin sorunlarını gidermek için performans ayarlama ipuçları kopya izleme görünümünde gösteriliyorsa öneriyi uygulayın ve tekrar deneyin. Aksi takdirde kopyalama etkinliği yürütme ayrıntılarını anlayın, hangi aşamanın en uzun süreye sahip olduğunu denetleyin ve kopyalama performansını artırmak için aşağıdaki kılavuzu uygulayın:

  • "Ön kopyalama betiği" uzun sürdü: Hedef veritabanında çalışan ön kopya betiğinin tamamlanmasının uzun sürdüğü anlamına gelir. Performansı artırmak için belirtilen ön kopyalama betiği mantığını optimize edin. Betiği geliştirme konusunda daha fazla yardıma ihtiyacınız varsa veritabanı ekibinize başvurun.

  • "Aktarım - İlk bayta kadar olan süre" uzun çalışma süresiyle karşılaşmıştır: Kaynak sorgunuzun herhangi bir veri döndürmesi uzun sürüyor. Bu, kaynağın diğer görevlerle meşgul olması veya sorgunun en iyi duruma getirilmemesi veya verilerin alınması uzun sürecek şekilde depolanması nedeniyle sorgunun kaynağınızda işlenmesinin uzun sürdüğü anlamına gelebilir. Diğer sorguların aynı anda bu kaynakta çalışıp çalışmadığını veya verileri daha hızlı alabilmesi için sorgunuzda yapabileceğiniz güncelleştirmeler olup olmadığını göz önünde bulundurun. Veri kaynağınızı yöneten bir ekip varsa, sorgunuzu değiştirmek veya kaynak performansını denetlemek için bu ekiple iletişime geçin.

  • "Aktar - Kaynak listeleme" uzun çalışma süresi yaşadı: Kaynak dosyaları veya kaynak veritabanı veri bölümlerini listelemenin yavaş olduğu anlamına gelir.

    • Dosya tabanlı bir kaynaktan veri kopyalarken, klasör yolunda veya dosya adında ( veya wildcardFolderPath) joker karakter filtresi veya dosya son değiştirme zamanı filtresi (wildcardFileName veya ) kullanırsanız, bu tip bir filtrenin belirtilen klasör altındaki tüm dosyaların istemci tarafına listelenmesine ve ardından filtrenin uygulanmasına neden olacağını unutmayın. Bu tür dosya numaralandırması, özellikle yalnızca küçük dosya kümesi filtre kuralına uyulduğunda performans sorununa neden olabilir.

      • Dosyaları tarih saat bölümlenmiş dosya yoluna veya adına göre kopyalayıp kopyalayamayacağınızı denetleyin. Bu şekilde kaynak tarafı listeleme yükü getirmez.

      • Amazon S3/Azure Blob depolama/Azure Dosyaları için "prefix" ve ADLS 1. Nesil için "listAfter/listBefore" gibi veri deposunun yerel filtresini kullanıp kullanamayacağınızı kontrol edin. Bu filtreler veri deposu sunucu tarafı filtresidir ve daha iyi performansa sahip olur.

      • Tek bir büyük veri kümesini birkaç küçük veri kümesine bölmeyi ve bu kopyalama işlerinin verilerin her bir bölümünü eşzamanlı olarak çalıştırmasına izin vermeyi düşünün. Bunu Lookup/GetMetadata + ForEach + Copy ile yapabilirsiniz. Birden çok kapsayıcıdan dosya kopyalama veya Amazon S3'ten ADLS Gen2'ye veri geçirme çözüm şablonlarına genel örnek olarak bakın.

    • Kaynağın herhangi bir hız kesme hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanım durumunda olup olmadığını kontrol edin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

    • Azure IR'yi kaynak veri deposu bölgenizle aynı veya yakın bir yerde kullanın.

  • "Aktarım - kaynaktan okuma" uzun çalışma süresiyle karşılaştı:

    • Uygulanıyorsa bağlayıcıya özgü veri yükleme en iyi uygulamasını benimseyin. Örneğin, Amazon Redshift'ten veri kopyalarken Redshift UNLOAD kullanacak şekilde yapılandırın.

    • Hizmetin kaynakta bir kısıtlama hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanımda olup olmadığını kontrol edin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

    • Kopyalama kaynağınızı ve alıcı düzeninizi denetleyin.

      • Kopyalama deseniniz dörtten fazla Veri Entegrasyonu Birimi (DIU) destekliyorsa, ayrıntılarla ilgili bu bölüme bakın; genellikle daha iyi performans elde etmek için DIU'ları artırmayı deneyebilirsiniz.

      • Aksi takdirde, tek bir büyük veri kümesini birkaç küçük veri kümesine bölmeyi ve bu kopyalama işlerinin verilerin her bir kısmını eşzamanlı olarak çalıştırmasını sağlayın. Bunu Lookup/GetMetadata + ForEach + Copy ile yapabilirsiniz. Genel örnek olarak, birden çok kapsayıcıdan dosya kopyalama, Amazon S3'ten ADLS Gen2'ye veri aktarma veya denetim tablosu çözüm şablonlarıyla toplu kopyalamaya bakın.

    • Azure IR'yi kaynak veri deposu bölgenizle aynı veya yakın bir yerde kullanın.

  • "Aktarım - hedefe yazma" uzun çalışma süresi yaşadı:

    • Uygulanıyorsa bağlayıcıya özgü veri yükleme en iyi uygulamasını benimseyin. Örneğin, verileri Azure Synapse Analytics içine kopyalarken PolyBase veya COPY deyimini kullanın.

    • Hizmetin havuz üzerinde azaltma hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanım altında olup olmadığını denetleyin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

    • Kopyalama kaynağınızı ve alıcı düzeninizi denetleyin.

      • Kopyalama deseniniz dörtten fazla Veri Entegrasyonu Birimi (DIU) destekliyorsa, ayrıntılarla ilgili bu bölüme bakın; genellikle daha iyi performans elde etmek için DIU'ları artırmayı deneyebilirsiniz.

      • Aksi takdirde, paralel kopyaları aşamalı olarak ayarlayın. Çok fazla paralel kopya performansı bile etkileyebilir.

    • Azure IR'yi havuz veri deposu bölgenize yakın veya aynı konumda kullanın.

Şirket içinde barındırılan IR'de kopyalama etkinliği sorunlarını giderme

Senaryonuz için performans testini planlamak ve yürütmek için Performans ayarlama adımlarını izleyin.

Kopyalama performansı beklentilerinizi karşılamadığında, Azure Integration Runtime üzerinde çalışan tek kopyalama etkinliğinin sorunlarını gidermek amacıyla, performans ayar ipuçları kopya izleme görünümünde gösteriliyorsa, öneriyi uygulayıp yeniden deneyin. Aksi takdirde kopyalama etkinliği yürütme ayrıntılarını anlayın, hangi aşamanın en uzun süreye sahip olduğunu denetleyin ve kopyalama performansını artırmak için aşağıdaki kılavuzu uygulayın:

  • "Kuyruk" süresi uzadı: Bu, kopyalama işleminin, kendi kendine barındırılan IR'nizin (Self-hosted IR) yürütme için kaynağı sağlayana kadar kuyrukta uzun süre beklemesi anlamına gelir. IR kapasitesini ve kullanımını denetleyin ve iş yükünüze göre ölçeği artırın veya genişletin .

  • "Aktarım - İlk bayta kadar olan süre" uzun çalışma süresiyle karşılaşmıştır: Bu, kaynak sorgunuzun veri döndürmesi uzun sürdüğü anlamına gelir. Sorguyu veya sunucuyu denetleyin ve iyileştirin. Daha fazla yardıma ihtiyacınız varsa veri deposu ekibinize başvurun.

  • "Aktar - Kaynak listeleme" uzun çalışma süresi yaşadı: Kaynak dosyaları veya kaynak veritabanı veri bölümlerini listelemenin yavaş olduğu anlamına gelir.

    • Yerel IR makinesinin kaynak veri deposuna bağlanma sırasında düşük bir gecikme süresine sahip olup olmadığını kontrol edin. Kaynağınız Azure ise, gecikme süresini en aza indirmek amacıyla, kendi barındırdığınız IR makinesinden Azure bölgesine kadar olan gecikme süresini kontrol etmek için bu aracı kullanabilirsiniz.

    • Dosya tabanlı bir kaynaktan veri kopyalarken, klasör yolunda veya dosya adında ( veya wildcardFolderPath) joker karakter filtresi veya dosya son değiştirme zamanı filtresi (wildcardFileName veya ) kullanırsanız, bu tip bir filtrenin belirtilen klasör altındaki tüm dosyaların istemci tarafına listelenmesine ve ardından filtrenin uygulanmasına neden olacağını unutmayın. Bu tür dosya numaralandırması, özellikle yalnızca küçük dosya kümesi filtre kuralına uyulduğunda performans sorununa neden olabilir.

      • Dosyaları tarih saat bölümlenmiş dosya yoluna veya adına göre kopyalayıp kopyalayamayacağınızı denetleyin. Bu şekilde kaynak tarafı listeleme yükü getirmez.

      • Amazon S3/Azure Blob depolama/Azure Dosyaları için "prefix" ve ADLS 1. Nesil için "listAfter/listBefore" gibi veri deposunun yerel filtresini kullanıp kullanamayacağınızı kontrol edin. Bu filtreler veri deposu sunucu tarafı filtresidir ve daha iyi performansa sahip olur.

      • Tek bir büyük veri kümesini birkaç küçük veri kümesine bölmeyi ve bu kopyalama işlerinin verilerin her bir bölümünü eşzamanlı olarak çalıştırmasına izin vermeyi düşünün. Bunu Lookup/GetMetadata + ForEach + Copy ile yapabilirsiniz. Birden çok kapsayıcıdan dosya kopyalama veya Amazon S3'ten ADLS Gen2'ye veri geçirme çözüm şablonlarına genel örnek olarak bakın.

    • Kaynağın herhangi bir hız kesme hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanım durumunda olup olmadığını kontrol edin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

  • "Aktarım - kaynaktan okuma" uzun çalışma süresiyle karşılaştı:

    • Yerel IR makinesinin kaynak veri deposuna bağlanma sırasında düşük bir gecikme süresine sahip olup olmadığını kontrol edin. Kaynağınız Azure ise, şirket içinde barındırılan IR makinesi ile Azure bölgeleri arasındaki gecikme süresini denetlemek için bu aracı kullanabilirsiniz. Gecikme süresi ne kadar az olursa o kadar iyi olur.

    • Kendi kendine barındırılan IR makinesinin verileri verimli bir şekilde okumak ve aktarmak için yeterli gelen ağ bant genişliğine sahip olup olmadığını kontrol edin. Kaynak veri deponuz Azure ise indirme hızını denetlemek için this tool kullanabilirsiniz.

    • Veri fabrikanızın veya Synapse çalışma alanınızın genel bakış sayfasında -> Azure portalında -> kendi kendine barındırılan IR'nin CPU ve bellek kullanımı eğilimini kontrol edin. CPU kullanımı yüksekse veya kullanılabilir bellek düşükse IR ölçeğini artırmayı/genişletmeyi göz önünde bulundurun.

    • Uygunsa bağlayıcıya özgü veri yükleme en iyi uygulamasını benimseyin. Örneğin:

    • Hizmetin kaynakta bir kısıtlama hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanımda olup olmadığını kontrol edin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

    • Kopyalama kaynağınızı ve alıcı düzeninizi denetleyin.

  • "Aktarım - hedefe yazma" uzun çalışma süresi yaşadı:

    • Uygulanıyorsa bağlayıcıya özgü veri yükleme en iyi uygulamasını benimseyin. Örneğin, verileri Azure Synapse Analytics içine kopyalarken PolyBase veya COPY deyimini kullanın.

    • Kendi kendine barındırılan IR makinesinin havuz veri deposuna düşük gecikmeyle bağlanıp bağlanmadığını denetleyin. Hedefiniz Azure ise, şirket içinde barındırılan IR makinesinden Azure bölgesine olan gecikme süresini kontrol etmek için bu aracı kullanabilirsiniz; gecikme süresi ne kadar az olursa o kadar iyidir.

    • Yerel IR makinesinin verileri verimli bir şekilde aktarmak ve yazmak için yeterli giden bant genişliğine sahip olup olmadığını kontrol edin. Havuz veri deponuz Azure ise yükleme hızını denetlemek için bu aracı kullanabilirsiniz.

    • Azure portalında, veri fabrikanızın veya Synapse çalışma alanınızın genel bakış sayfasında, Şirket içinde barındırılan IR'nin CPU ve bellek kullanımı trendini kontrol edin. CPU kullanımı yüksekse veya kullanılabilir bellek düşükse IR ölçeğini artırmayı/genişletmeyi göz önünde bulundurun.

    • Hizmetin havuz üzerinde azaltma hatası bildirip bildirmediğini veya veri deponuzun yüksek kullanım altında olup olmadığını denetleyin. Bu durumda, veri deposundaki iş yüklerinizi azaltın veya yük sınırını ya da kullanılabilir kaynağı artırmak için veri deposu yöneticinizle iletişime geçmeyi deneyin.

    • Paralel kopyaları aşamalı olarak ayarlamayı göz önünde bulundurun. Çok fazla paralel kopya performansı bile etkileyebilir.

Bağlayıcı ve IR performansı

Bu bölümde, belirli bağlayıcı türü veya tümleştirme çalışma zamanı için bazı performans sorun giderme kılavuzları incelenmektedir.

Etkinlik yürütme süresi, Azure IR ile Azure sanal ağ IR'leri arasında değişiklik gösterir

Veri kümesi farklı Integration Runtime temel alındığında etkinlik yürütme süresi değişir.

  • Belirtiler: Yalnızca veri kümesindeki Bağlı Hizmet açılan listesini değiştirmek, aynı işlem hattı etkinliklerini gerçekleştirir, ancak önemli ölçüde farklı çalışma sürelerine sahip olabilir. Veri kümesi, Yönetilen Sanal Ağ Entegrasyon Çalışma Zamanı temel alındığında, Varsayılan Entegrasyon Çalışma Zamanı temel alındığında ortalamada daha fazla zaman alır.

  • : İşlem hattı çalıştırmalarının ayrıntılarını denetlediğinizde, normal işlem hattı Azure IR üzerinde çalışırken yavaş işlem hattının Yönetilen Sanal Ağ üzerinde, yani (Sanal Ağ) IR'inde çalıştığını görebilirsiniz. Tasarım gereği, Yönetilen sanal ağ IR, Azure IR'den daha uzun kuyruk süresine sahiptir çünkü her hizmet örneği için bir işlem düğümü ayırmıyoruz. Bu durum, her kopyalama etkinliğini başlatmak için bir başlatma süresi gerektirir ve bu genellikle Azure IR yerine sanal ağ birleştirmesinde meydana gelir.

Azure SQL Veritabanı'a veri yüklerken düşük performans

  • Symptoms: Azure SQL Veritabanı'a veri kopyalama işlemi yavaş olur.

  • Cause: Sorunun kök nedeni çoğunlukla Azure SQL Veritabanı tarafındaki performans sorunu tarafından tetikleniyor. Olası nedenler şunlardır:

    • Azure SQL Veritabanı katmanı yeterince yüksek değil.

    • Azure SQL Veritabanı DTU kullanımı yaklaşık %100'dür. Azure SQL Veritabanı katmanını yükseltmeyi düşünebilir ve performansı izleyebilirsiniz.

    • Dizinler düzgün ayarlanmadı. Veri yüklemeden önce tüm dizinleri kaldırın ve yükleme tamamlandıktan sonra yeniden oluşturun.

    • WriteBatchSize şema satırı boyutuna sığacak kadar büyük değil. Sorunun özelliğini büyütmeyi deneyin.

    • Toplu veri ekleme yerine, daha kötü performansa sahip olması beklenen saklı prosedür kullanılmakta.

Büyük Excel dosyasını ayrıştırırken zaman aşımı veya yavaş performans

  • Belirtiler:

    • Excel veri kümesi oluşturduğunuzda ve şemayı bağlantıdan/depodan, önizleme verilerinden, listelerden veya yenileme çalışma sayfalarından içeri aktardığınızda, excel dosyasının boyutu büyükse zaman aşımı hatasıyla karşılaşabilirsiniz.

    • Büyük Excel dosyasından (>= 100 MB) verileri başka bir veri deposuna kopyalamak için kopyalama etkinliğini kullandığınızda, yavaş performans veya OOM sorunuyla karşılaşabilirsiniz.

  • Neden:

    • Şemayı içeri aktarma, verilerin önizlemesini görüntüleme ve excel veri kümesindeki çalışma sayfalarını listeleme gibi işlemler için. Zaman aşımı 100 s ve statiktir. Büyük Excel dosyası için bu işlemler zaman aşımı değeri içinde bitmeyebilir.

    • Kopyalama etkinliği, Excel dosyasının tamamını belleğe okur ve ardından verileri okumak için belirtilen çalışma sayfasını ve hücreleri bulur. Bu davranış, hizmetin kullandığı temel SDK'dan kaynaklanır.

  • Çözüm:

    • Şemayı içeri aktarmak için, özgün dosyanın alt kümesi olan daha küçük bir örnek dosya oluşturabilir ve "şemayı bağlantıdan/depodan içeri aktar" yerine "örnek dosyadan şemayı içeri aktar" seçeneğini belirleyebilirsiniz.

    • Çalışma sayfasını listelemek için, çalışma sayfası açılan listesinde "Düzenle"yi seçip bunun yerine sayfa adını/dizinini girdiyebilirsiniz.

    • Büyük bir Excel dosyasını (>100 MB) başka bir depoya kopyalamak için, performans açısından daha iyi sonuç veren ve gerçek zamanlı okuma destekleyen Veri Akışı Excel kaynağını kullanabilirsiniz.

Büyük JSON/Excel/XML dosyalarını okuma OOM Sorunu

  • Symptoms: Büyük JSON/Excel/XML dosyalarını okurken, etkinlik yürütme sırasında bellek yetersiz (OOM) sorununu karşılarsınız.

  • Neden:

    • Büyük XML dosyaları için: Büyük XML dosyalarının okunmasıyla ilgili OOM sorunu tasarım gereğidir. Bunun nedeni, xml dosyasının tamamının tek bir nesne olduğu için belleğe okunması, ardından şemanın çıkarılıp verilerin alınmasıdır.
    • Büyük Excel dosyaları için: Büyük Excel dosyalarının okunmasıyla ilgili OOM sorunu tasarım gereğidir. Bunun nedeni, kullanılan SDK'nın (POI/NPOI) excel dosyasının tamamını belleğe okuması, ardından şemayı çıkarması ve veri alması gerekir.
    • Büyük JSON dosyaları için: Büyük JSON dosyalarının okunmasıyla ilgili OOM sorunu, JSON dosyası tek bir nesne olduğunda tasarım gereğidir.
  • Öneri: Sorununuzu çözmek için aşağıdaki seçeneklerden birini uygulayın.

    • Option-1: Büyük dosyanızdaki verileri kopyalama etkinliğinizle okumak için yüksek CPU/belleğe sahip güçlü bir makine kullanarak çevrimiçi kendinden barındırılan bir tümleştirme çalışma zamanı kaydedin.
    • 2. Seçenek: Eşleme veri akışı etkinliği aracılığıyla büyük dosyanızdaki verileri okumak için iyileştirilmiş bellek ve büyük boyutlu küme (örneğin, 48 çekirdek) kullanın.
    • Seçenek-3: Büyük dosyayı küçük dosyalara bölün, ardından klasörü okumak için kopyalama veya eşleme veri akışı etkinliğini kullanın.
    • Option-4: XML/Excel/JSON klasörünü kopyalama sırasında takıldıysanız veya OOM sorununu karşılıyorsanız, her dosyayı veya alt klasörü işlemek için işlem hattınızdaki foreach etkinliği + kopyalama/eşleme veri akışı etkinliğini kullanın.
    • Seçenek-5: Diğerleri:
      • XML dosyalarında her dosya aynı şemaya sahipse verileri okumak için bellek optimizasyonlu küme ile Not Defteri etkinliğini kullanın. Şu anda Spark'ın XML işlemek için farklı uygulamaları vardır.
      • JSON için, eşleme veri akışı kaynağı altındaki JSON ayarlarında farklı belge formlarını (örneğin, Tek belge, Satır başına belge ve Belge dizisi) kullanın. JSON dosya içeriği Satır başına belge ise, çok az bellek tüketir.

Diğer referanslar

Desteklenen bazı veri depoları için performans izleme ve ayarlama referansları şunlardır:

Diğer kopyalama etkinliği makalelerine bakın: