Aracılığıyla paylaş


Kopyalama etkinliğinde SQL veritabanını yapılandırma (Önizleme)

Bu makalede, işlem hattındaki kopyalama etkinliğinin SQL veritabanından ve SQL veritabanına veri kopyalamak için nasıl kullanılacağı açıklanmaktadır.

Desteklenen yapılandırma

Kopyalama etkinliği altındaki her sekmenin yapılandırması için sırasıyla aşağıdaki bölümlere gidin.

Genel

Genel ayarlar sekmesini yapılandırmak için Genel ayarları kılavuzuna bakın.

Kaynak

Aşağıdaki özellikler, kopyalama etkinliğinin Kaynak sekmesi altında SQL veritabanı için desteklenir.

Kaynak sekmesini ve özellik listesini gösteren ekran görüntüsü.

Aşağıdaki özellikler gereklidir:

  • Bağlantı: Bu makaledeki adıma başvuran mevcut bir SQL veritabanını seçin.

  • Sorgukullan: Tablo, Sorguveya Saklı yordamseçebilirsiniz. Aşağıdaki listede her ayarın yapılandırması açıklanmaktadır:

    • Tablo: Verileri okumak için SQL veritabanının adını belirtin. Açılan listeden var olan bir tabloyu seçin veya şemayı ve tablo adını girmek için El ile gir'i seçin.

    • Sorgu: Verileri okumak için özel SQL sorgusunu belirtin. select * from MyTable bunun bir örneğidir. İsterseniz kod düzenleyicisinde düzenlemek için kalem simgesini de seçebilirsiniz.

      Sorgu seçmeyi gösteren ekran görüntüsü.

    • Saklı yordam: Açılan listeden saklı yordamı seçin.

Gelişmişaltında aşağıdaki alanları belirtebilirsiniz:

  • Sorgu zaman aşımı (dakika): Sorgu komutu yürütme zaman aşımını belirtin; varsayılan değer 120 dakikadır. Bu özellik için parametre ayarlandıysa, izin verilen değerler "02:00:00" (120 dakika) gibi zaman aralığıdır.

    Sorgu zaman aşımı ayarlarını gösteren ekran görüntüsü.

  • Yalıtım düzeyi: SQL kaynağı için işlem kilitleme davranışını belirtir. İzin verilen değerler şunlardır: Okuma işlemi yapıldı, Okunmadı, Yinelenebilir okuma, Seri hale getirilebilir veya Anlık Görüntü. Daha fazla bilgi için IsolationLevel Enum bakın.

    Yalıtım düzeyi ayarlarını gösteren ekran görüntüsü.

  • Bölüm seçeneği: SQL veritabanından veri yüklemek için kullanılan veri bölümleme seçeneklerini belirtin. İzin verilen değerler şunlardır: Yok (varsayılan), Tablofiziksel bölümleri ve Dinamik aralık. Bir bölüm seçeneği etkinleştirildiğinde ( Yok değil), SQL veritabanından verileri eşzamanlı olarak yüklemek için paralellik derecesi, kopyalama etkinliği ayarları sekmesindeki kopyalama paralelliği derecesi tarafından denetlenmektedir.

    • Hiçbiri: Bölümleme kullanmamak için bu ayarı seçin.

    • Tablonun fiziksel bölümleri: Fiziksel bölüm kullanılırken, bölüm sütunu ve mekanizması fiziksel tablo tanımınıza göre otomatik olarak belirlenir.

    • Dinamik aralık: Paralel etkin sorgu kullanılırken, aralık bölüm parametresi(?DfDynamicRangePartitionCondition) gerekir. Örnek sorgu: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.

      • Bölüm sütun adı: Paralel kopyalama için aralık bölümleme tarafından kullanılan kaynak sütunun adını tamsayı veya tarih/tarih saat türünde (int, smallint, bigint, date, smalldatetime, datetime, datetime2veya datetimeoffset) belirtin. Belirtilmezse, tablonun dizini veya birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır.

        Kaynak verileri almak için bir sorgu kullanırsanız, ?DfDynamicRangePartitionCondition'yi WHERE koşuluna ekleyin. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.

      • Bölüm üst sınır: Bölüm aralığını bölmek için bölüm sütununun en yüksek değerini belirtin. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.

      • Bölüm alt sınırı: Bölüm aralığını bölmek için bölüm sütununun en düşük değerini belirtin. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar. Bir örnek için SQL veritabanından paralel kopyalama bölümüne bakın.

  • Ek sütunlar: Kaynak dosyaların göreli yolunu veya statik değerini depolamak için daha fazla veri sütunu ekleyin. İkinci seçenek için ifade desteklenmektedir. Daha fazla bilgi için Kopyalama sırasında ek sütun eklemebölümüne gidin.

Varış Yeri

Kopyalama etkinliğinin Hedef sekmesi altında SQL veritabanı için aşağıdaki özellikler desteklenir.

Hedef sekmesini gösteren ekran görüntüsü .

Aşağıdaki özellikler gereklidir:

  • Bağlantı: Bu makaledeki adıma başvuran mevcut bir SQL veritabanını seçin.

  • Tablo seçeneği: Mevcut tabloyu kullan veya Tabloyu otomatik olarak oluştur'u seçin.

    • Mevcut'i kullan seçerseniz:

      • Tablo: Veri yazılacak SQL veritabanının adını belirtin. Açılan listeden var olan bir tabloyu seçin veya şemayı ve tablo adını girmek için El ile gir'i seçin.
    • Tabloyu otomatik olarak oluştur'u seçerseniz:

      • Tablo: Saklı yordam yazma davranışı olarak kullanıldığında desteklenmeyen tabloyu (yoksa) kaynak şemada otomatik olarak oluşturur.

Gelişmişaltında aşağıdaki alanları belirtebilirsiniz:

  • Yazma davranışı: Kaynak dosya tabanlı bir veri deposundaki dosyalar olduğunda yazma davranışını tanımlar. EkleUpsert veya saklı yordam seçebilirsiniz.

    Yazma davranışı sekmesinin ekran görüntüsü.

    • Ekle: Kaynak verilerinizde eklemeler varsa bu seçeneği belirleyin.

    • Upsert : Kaynak verilerinizde hem eklemeler hem de güncelleştirmeler varsa bu seçeneği belirtin.

      • TempDBkullan: Upsert için geçici tablo olarak genel geçici tablo mu yoksa fiziksel tablo mu kullanılacağını belirtin. Varsayılan olarak, hizmet geçici tablo olarak genel geçici tabloyu kullanır ve bu onay kutusu seçilidir.
        SQL veritabanına büyük miktarda veri yazarsanız, bunun işaretini kaldırın ve Data Factory'nin yukarı akış verilerini yüklemek ve tamamlandıktan sonra otomatik temizleme için bir hazırlama tablosu oluşturacağı bir şema adı belirtin. Kullanıcının veritabanında tablo oluşturma izni olduğundan ve şema üzerinde değişiklik iznine sahip olduğundan emin olun. Belirtilmezse, aşama olarak genel bir geçici tablo kullanılır.

        TempDB Kullan'ı gösteren ekran görüntüsü.

      • Kullanıcı veritabanı şemasını seçin: TempDB Kullan seçili olmadığında Data Factory'nin yukarı akış verilerini yüklemek ve tamamlandıktan sonra bunları otomatik olarak temizlemek için bir hazırlama tablosu oluşturacağı bir şema adı belirtin. Veritabanında tablo oluşturma iznine sahip olduğunuzdan ve şemada değişiklik iznine sahip olduğunuzdan emin olun.

        Uyarı

        Tablo oluşturma ve silme izniniz olmalıdır. Varsayılan olarak, bir geçici tablo hedef tabloyla aynı şemayı paylaşır.

        TempDB Kullan seçeneğinin gösterilmediğini gösteren ekran görüntüsü.

      • Anahtar sütunlar: Kaynaktan bir satırın hedeften bir satırla eşleşip eşleşmediğini belirlemek için hangi sütunun kullanılacağını seçin.

    • Saklı yordam adı: Açılan listeden saklı yordamı seçin.

  • Tablo için toplu ekleme kilidi: Evet veya Hayır seçin. Birden çok istemciden dizin içermeyen bir tabloda toplu ekleme işlemi sırasında kopyalama performansını geliştirmek için bu ayarı kullanın. Daha fazla bilgi için BULK INSERT (Transact-SQL) gidin

  • Ön kopyalama betiği: Her çalıştırmada hedef tabloya veri yazmadan önce yürütülecek kopyalama etkinliği için bir betik belirtin. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanabilirsiniz.

  • Toplu işlem yazma zaman aşımı: Toplu işlem ekleme işleminin zaman aşımına uğramadan önce bitmesini bekleme süresini belirtin. Zaman aralığı, izin verilen değerdir. Varsayılan değer :"00:30:00" (30 dakika).

  • Toplu iş boyutu yazma: Toplu iş başına SQL tablosuna eklenecek satır sayısını belirtin. İzin verilen değer tamsayıdır (satır sayısı). Varsayılan olarak, hizmet satır boyutuna göre uygun toplu iş boyutunu dinamik olarak belirler.

  • En fazla eşzamanlı bağlantı: Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırını belirtin. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin.

Haritalandırma

Eşleme sekmesi yapılandırması için, hedef olarak otomatik oluşturma tablosuyla SQL veritabanı uygulamıyorsanız Eşleme'ye gidin.

Hedef olarak otomatik oluşturma tablosu olan SQL veritabanı uygularsanız, Eşleme'deki yapılandırma dışında hedef sütunlarınızın türünü düzenleyebilirsiniz. Şemaları içeri aktar'ı seçtikten sonra, hedefinizde sütun türünü belirtebilirsiniz.

Örneğin, kaynakta kimliği olarak belirtilen sütununun veri türü int'tir ve hedef sütuna aktarırken bunu float türüne değiştirebilirsiniz.

Eşleme hedef sütun türünün ekran görüntüsü.

Ayarlar

Ayarlar sekmesi yapılandırması için, Ayarlar sekmesialtında Diğer ayarlarınızı yapılandırma bölümüne gidin.

SQL veritabanından paralel kopyalama

Kopyalama etkinliğindeki SQL veritabanı bağlayıcısı, verileri paralel olarak kopyalamak için yerleşik veri bölümleme sağlar. Veri bölümleme seçeneklerini kopyalama etkinliğinin Kaynak sekmesinde bulabilirsiniz.

Bölümlenmiş kopyalamayı etkinleştirdiğinizde kopyalama etkinliği, verileri bölümlere göre yüklemek için SQL veritabanı kaynağınızda paralel sorgular çalıştırır. Paralel derece, kopyalama etkinliği ayarları sekmesindeki Kopya paralelliği derecesi ile denetlenilir. Örneğin, Kopyalama paralelliği Derecesini dört olarak ayarlarsanız, hizmet aynı anda belirtilen bölüm seçeneğinize ve ayarlarınıza göre dört sorgu oluşturur ve çalıştırır ve her sorgu SQL veritabanınızdan verilerin bir bölümünü alır.

Özellikle SQL veritabanınızdan büyük miktarda veri yüklediğinizde veri bölümleme ile paralel kopyalamayı etkinleştirmeniz önerilir. Farklı senaryolar için önerilen yapılandırmalar aşağıdadır. Verileri dosya tabanlı veri deposuna kopyalarken, bir klasöre birden çok dosya olarak yazmanız önerilir (yalnızca klasör adını belirtin), bu durumda performans tek bir dosyaya yazmaktan daha iyidir.

Senaryo Önerilen ayarlar
Büyük, fiziksel bölümleri olan tablodan tam yük alma. Bölüm seçeneği: Tablonun fiziksel bölümleri.

Yürütme sırasında, hizmet fiziksel bölümleri otomatik olarak algılar ve bölümlere göre verileri kopyalar.

Tablonuzda fiziksel bir bölüm olup olmadığını kontrol etmek için numaralı sorguyabaşvurabilirsiniz.
Fiziksel bölümler olmadan, ancak veri bölümleme için bir tamsayı veya tarih saat sütunu kullanarak büyük tablodan tam yük. Bölüm seçenekleri: Dinamik aralık bölümü.
Bölüm sütunu (isteğe bağlı): Verileri bölümlemede kullanılan sütunu belirtin. Belirtilmezse, dizin veya birincil anahtar sütunu kullanılır.
Bölüm üst sınır ve bölüm alt sınır (isteğe bağlı): Bölüm adımını belirlemek isteyip istemediğinizi belirtin. Bu, tablodaki satırları filtrelemek için değildir, tablodaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği otomatik olarak değerleri algılar ve MIN ve MAX değerlerine bağlı olarak uzun sürebilir. Üst ve alt sınır sağlanması önerilir.

Örneğin, bölüm sütununuz "ID" 1 ile 100 arasında değerlere sahipse ve alt sınırı 20, üst sınırı 80 ve paralel kopya sayısını 4 olarak ayarladıysanız, hizmet verileri 4 bölüme göre alır - <=20, [21, 50], [51, 80] ve >=81 aralığındaki kimlikler.
Özel bir sorgu kullanarak, fiziksel bölümler olmadan ve veri bölümleme için bir tamsayı veya tarih/tarih saat sütunu kullanarak büyük miktarda veri yükleyin. Bölüm seçenekleri: Dinamik aralık bölümü.
Sorgu: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Bölüm sütunu: Verileri bölümleme için kullanılan sütunu belirtin.
Bölüm üst sınır ve bölüm alt sınır (isteğe bağlı): Bölüm adımını belirlemek isteyip istemediğinizi belirtin. Bu tablodaki satırları filtrelemek için değildir, sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar.

Örneğin, "ID" bölüm sütununuzun değerleri 1 ile 100 arasındaysa ve alt sınırı 20, üst sınırı ise 80 olarak belirlediyseniz ve paralel kopyalama olarak 4 ayarladıysanız, hizmet verileri sırasıyla şu 4 bölüme göre çeker: <=20, ID'ler [21, 50], [51, 80] ve >=81 aralığında.

Farklı senaryolar için daha fazla örnek sorgu aşağıda verilmiştir:
• Tablonun tamamını sorgula:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
• Sütun seçimi ve ek koşul filtreleri içeren bir tablodan sorgu:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Alt sorgularla sorgu:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
• Alt sorguda bölümlendirme içeren sorgu:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Bölüm seçeneğiyle veri yüklemek için en iyi yöntemler:

  • Veri dengesizliği önlemek için bölüm sütunu (birincil anahtar veya benzersiz anahtar gibi) olarak ayırt edici sütunu seçin.
  • Tabloda yerleşik bir bölüm varsa, daha iyi performans elde etmek için bölüm seçeneğini ve tablo'in fiziksel bölümlerini kullanın.

Fiziksel bölümü denetlemek için örnek sorgu

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id 
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id 
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id 
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Tabloda fiziksel bölüm varsa, "HasPartition" öğesini aşağıdaki gibi "evet" olarak görürsünüz.

SQL sorgu sonucunun ekran görüntüsü.

Tablo özeti

Aşağıdaki tablolar SQL veritabanındaki kopyalama etkinliği hakkında daha fazla bilgi içerir.

Kaynak

İsim Açıklama Değer Gerekli JSON senaryo özelliği
Bağlantı Kaynak veri deposuyla bağlantınız. <Bağlantınız> Evet bağlantı
Sorgu'i kullan Verileri okumanın yolu. Belirtilen tablodan verileri okumak için Tablo uygulayın veya SQL sorgularını kullanarak verileri okumak için Sorgu uygulayın. Tablo
sorgu
Saklanan prosedür
Evet /
Tablo için
şema adı Şemanın adı. < şema adınız > Hayı şema
tablo adı Tablonun adı. < tablonuzun adı > Hayı tablo
Sorgu için
Sorgu Verileri okumak için özel SQL sorgusunu belirtin. Örneğin: SELECT * FROM MyTable. < SQL sorguları > Hayı sqlReaderQuery
Saklı yordam için
Saklı yordam adı Saklı yordamın adı. < saklı yordam adınız > Hayı sqlOkuyucuSaklıProsedürAdı
Sorgu zaman aşımı (dakika) Sorgu komutu yürütme zaman aşımı varsayılan olarak 120 dakikadır. Bu özellik için parametre ayarlandıysa, izin verilen değerler "02:00:00" (120 dakika) gibi zaman aralığıdır. zaman aralığı Hayı queryTimeout
Yalıtım düzeyi SQL kaynağı için işlem kilitleme davranışını belirtir. • Okundu
• İşlenmemiş okuma
• Yinelenebilir okuma
•Serileştirilebilir
• Anlık görüntü
Hayı izolasyonSeviyesi
• OkumaTaahhütlü
• ReadUncommitted (Taahhüt Edilmemişleri Oku)
• Tekrarlanabilir Okuma
•Serileştirilebilir
• Anlık görüntü
Bölümleme seçeneği SQL veritabanından veri yüklemek için kullanılan veri bölümleme seçenekleri. •Hiç kimse
• Tablonun fiziksel bölümleri
• Dinamik aralık
Hayı bölümSeçeneği:
• Tablonun Fiziksel Bölümleri
• DynamicRange
Dinamik aralık için
Bölüm sütun adı Paralel kopyalama için aralık bölümleme tarafından kullanılan tamsayı veya date/datetime türündeki kaynak sütunun adı (int, smallint, bigint, date, smalldatetime, datetime, datetime2veya datetimeoffset). Belirtilmezse, tablonun dizini veya birincil anahtarı otomatik olarak algılanır ve bölüm sütunu olarak kullanılır. Kaynak verileri almak için bir sorgu kullanırsanız, ?DfDynamicRangePartitionCondition'yi WHERE koşuluna ekleyin. Bölüm sütun adlarınız <> Hayı partitionColumnName (bölümSütunAdı)
Bölümleme üst sınırı Bölüm aralığı ayırma işlemi için bölüm sütununun maksimum değeri. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar. < bölümünüzün üst sınırı > Hayı bölümÜstSınır
Bölme alt sınırı Bölüm aralığı bölmek için bölüm sütununun minimum değeri. Bu değer, tablodaki satırları filtrelemek için değil bölüm adımlarını belirlemek için kullanılır. Tablodaki veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır. Belirtilmezse kopyalama etkinliği değeri otomatik olarak algılar. < bölümünüzün alt sınırı > Hayı partitionLowerBound
Ek sütunlar Kaynak dosyaların göreli yolunu veya statik değerini depolamak için daha fazla veri sütunu ekleyin. İkinci seçenek için ifade desteklenmektedir. • İsim
•Değer
Hayı ek sütunlar:
• isim
•değer

Varış Yeri

İsim Açıklama Değer Gerekli JSON senaryo özelliği
Bağlantı Hedef veri deposuna bağlantınız. <Bağlantınız > Evet bağlantı
Tablo seçeneği Hedef veri tablonuz. Varolanı kullan veya Tabloyu otomatik olarak oluştur'u seçin. • Mevcut olanı kullan
• Otomatik tablo oluşturma
Evet şema
tablo
Yazma davranışı Kaynak, dosya tabanlı bir veri deposundaki dosyalar olduğunda yazma davranışını tanımlar. • Yerleştir
• Güncelle-Ekle
• Saklı prosedür
Hayı yazDavranışı:
• eklemek /• dahil etmek /• sokmak
• güncelle veya ekle
• sqlYaziciSakliProsedurAdi
Toplu ekleme tablo kilidi Birden çok istemciden dizin içermeyen bir tabloda toplu ekleme işlemi sırasında kopyalama performansını geliştirmek için bu ayarı kullanın. Evet veya Hayır (varsayılan) Hayı sqlWriterUseTableLock:
true veya false (varsayılan)
Upsert için
TempDB kullan Upsert için geçici tablo olarak genel geçici tablo mu yoksa fiziksel tablo mu kullanılacağı. seçili (varsayılan) veya seçilmemiş Hayı useTempDB:
true (varsayılan) veya false
Anahtar sütunları Kaynaktan bir satırın hedeften bir satırla eşleşip eşleşmediğini belirlemek için hangi sütunun kullanılacağını seçin. < anahtar sütununuz> Hayı anahtarlar
Saklı yordam için
Saklı yordam adı Bu özellik, kaynak tablodan verileri okuyan saklı yordamın adıdır. Son SQL ifadesi, saklı prosedürde bir SELECT ifadesi olmalıdır. saklı yordam adı <> Hayı sqlWriterStoredProcedureName
Ön kopyalama betiği Her çalıştırmada hedef tabloya veri yazmadan önce yürütülmesi gereken bir Kopyalama Aktivitesi betiği. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanabilirsiniz. <ön kopyalama betiği>
(dize)
Hayı preCopyScript
Yazma işlem zaman aşımı Toplu ekleme işleminin zaman aşımına uğramadan önce bitmesini bekleme süresi. İzin verilen değer zaman aralığıdır. Varsayılan değer :"00:30:00" (30 dakika). zaman aralığı Hayı writeBatchZamanAşımı
Yazma parti boyutu Toplu iş başına SQL tablosuna eklenecek satır sayısı. Varsayılan olarak, hizmet satır boyutuna göre uygun toplu iş boyutunu dinamik olarak belirler. <satır sayısı>
(tamsayı)
Hayı writeBatchSize
En fazla eşzamanlı bağlantı Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. eş zamanlı bağlantıların üst sınırı <>
(tamsayı)
Hayı Maksimum Eşzamanlı Bağlantılar