Aracılığıyla paylaş


Kopyalama etkinliğinde Azure SQL Veritabanı yapılandırma

Bu makalede, veri işlem hattında kopyalama etkinliğini kullanarak verileri Azure SQL Veritabanı'den ve Azure SQL Veritabanı kopyalamak için nasıl kullanılacağı açıklanmıştı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

Kopyalama etkinliğinin Kaynak sekmesinin altındaki Azure SQL Veritabanı için aşağıdaki özellikler desteklenir.

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

Aşağıdaki özellikler gereklidir:

  • Veri deposu türü: Dış'ı seçin.
  • Bağlan ion: Bağlantı listesinden Azure SQL Veritabanı bir bağlantı seçin. Bağlantı yoksa Yeni'yi seçerek yeni bir Azure SQL Veritabanı bağlantısı oluşturun.
  • Bağlan ion türü: Azure SQL Veritabanı'ı seçin.
  • Tablo: Açılan listeden veritabanınızdaki tabloyu seçin. Ya da tablonuzun adını el ile girmek için Düzenle'yi işaretleyin.
  • Verileri önizleme: Tablonuzdaki verilerin önizlemesini görüntülemek için Verileri önizleme'yi seçin.

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

  • Sorguyu kullan: Tablo, Sorgu veya Saklı yordam'ı seçebilirsiniz. Aşağıdaki listede her ayarın yapılandırması açıklanmaktadır:

    • Tablo: Bu düğmeyi seçerseniz Tablo'da belirttiğiniz tablodan verileri okuyun.

    • 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: Kaynak tablodan verileri okuyan saklı yordamı kullanın. Son SQL deyimi, saklı yordamda bir SELECT deyimi olmalıdır.

      • Saklı yordam adı: Saklı yordamı seçin veya kaynak tablodan verileri okumak için Düzenle kutusunu işaretlerken saklı yordam adını el ile belirtin.

      • Saklı yordam parametreleri: Saklı yordam parametreleri için değerleri belirtin. İzin verilen değerler ad veya değer çiftleridir. Parametrelerin adları ve büyük/küçük harf değerleri, saklı yordam parametrelerinin adlarıyla ve büyük/küçük harfleriyle eşleşmelidir.

        Saklı yordam ayarlarını gösteren ekran görüntüsü.

  • Sorgu zaman aşımı (dakika):Sorgu komutu yürütme için zaman aşımını belirtin; varsayılan değer 120 dakikadır. Bu özellik için bir 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: Hiçbiri, ReadCommitted, ReadUncommitted, RepeatableRead, Serializable veya Snapshot. Belirtilmezse, Hiçbiri yalıtım düzeyi kullanılır. Daha fazla ayrıntı için IsolationLevel Enum'a bakın.

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

  • Bölüm seçeneği: Azure SQL Veritabanı'dan veri yüklemek için kullanılan veri bölümleme seçeneklerini belirtin. İzin verilen değerler şunlardır: Yok (varsayılan), Tablonun fiziksel bölümleri ve Dinamik aralık. Bir bölüm seçeneği etkinleştirildiğinde (Hiçbiri değil), bir Azure SQL Veritabanı verileri eşzamanlı olarak yüklemek için paralellik derecesi, kopyalama etkinliğindeki paralel kopyalama ayarı tarafından denetlenmektedir.

    Bölüm seçeneği ayarlarını gösteren ekran görüntüsü.

    • Yok: Bölüm kullanmamak için bu ayarı seçin.

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

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

      • Bölüm sütunu 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, bigintsmallint, , 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.
      • Bölüm üst sınırı: Bölüm aralığı bölme için bölüm sütununun en büyü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. Tablo veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır.
      • Bölüm alt sınırı: Bölüm aralığı bölme 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. Tablo veya sorgu sonucundaki tüm satırlar bölümlenir ve kopyalanır.
  • Ek sütunlar: Kaynak dosyaların göreli yolunu veya statik değerini depolamak için daha fazla veri sütunu ekleyin. İfade, ikincisi için desteklenir. Daha fazla bilgi için Kopyalama sırasında ek sütun ekleme bölümüne gidin.

Hedef

Kopyalama etkinliğinin Hedef sekmesindeki Azure SQL Veritabanı için aşağıdaki özellikler desteklenir.

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

Aşağıdaki özellikler gereklidir:

  • Veri deposu türü: Dış'ı seçin.
  • Bağlan ion: Bağlantı listesinden Azure SQL Veritabanı bir bağlantı seçin. Bağlantı yoksa Yeni'yi seçerek yeni bir Azure SQL Veritabanı bağlantısı oluşturun.
  • Bağlan ion türü: Azure SQL Veritabanı'ı seçin.
  • Tablo: Açılan listeden veritabanınızdaki tabloyu seçin. Ya da tablonuzun adını el ile girmek için Düzenle'yi işaretleyin.
  • Verileri önizleme: Tablonuzdaki verilerin önizlemesini görüntülemek için Verileri önizleme'yi seçin.

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

  • Yazma davranışı: Kaynak dosya tabanlı bir veri deposundaki dosyalar olduğunda yazma davranışını tanımlar. Ekle, Yukarı Ekle 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.

      • TempDB kullan: 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.

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

      • Kullanıcı veritabanı şemasını seçin: TempDB Kullan onay kutusu seçili olmadığında, fiziksel bir tablo kullanılıyorsa geçici tablo oluşturmak için ara şemayı belirtin.

        Not

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

        TempDB Kullan'ın seçilmediğini gösteren ekran görüntüsü.

      • Anahtar sütunlar: Benzersiz satır belirleme için sütun adlarını belirtin. Tek bir anahtar veya bir dizi anahtar kullanılabilir. Belirtilmezse, birincil anahtar kullanılır.

    • Saklı yordam: Kaynak verilerin hedef tabloya nasıl uygulanacağını tanımlayan saklı yordamı kullanın. Bu saklı yordam toplu iş başına çağrılır.

      • Saklı yordam adı: Saklı yordamı seçin veya kaynak tablodan verileri okumak için Düzenle kutusunu işaretlerken saklı yordam adını el ile belirtin.

      • Saklı yordam parametreleri: Saklı yordam parametreleri için değerleri belirtin. İzin verilen değerler ad veya değer çiftleridir. Parametrelerin adları ve büyük/küçük harf değerleri, saklı yordam parametrelerinin adlarıyla ve büyük/küçük harfleriyle eşleşmelidir.

        Saklı yordam ayarlarını gösteren ekran görüntüsü.

  • Tablo kilidini toplu ekle: 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) sayfasına gidin

  • Tablo seçeneği: Tablo kaynak şemaya göre mevcut değilse hedef tablonun otomatik olarak oluşturulup oluşturulmayacağını belirtir. Yok'u veya Tabloyu otomatik olarak oluştur'u seçin. Hedef bir saklı yordam belirttiğinde otomatik tablo oluşturma desteklenmez.

  • Ö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ş yazma zaman aşımı: Toplu ekleme işleminin zaman aşımına uğramadan önce bitmesini bekleme süresini belirtin. İzin verilen değer zaman aralığıdır. 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.

  • Performans ölçümleri analizini devre dışı bırakma: Bu ayar, kopyalama performansı iyileştirme ve öneriler için DTU, DWU, RU gibi ölçümleri toplamak için kullanılır. Bu davranışla ilgileniyorsanız bu onay kutusunu seçin.

Eşleme

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

Eşleme'deki yapılandırma dışında hedef olarak otomatik oluşturma tablosuna sahip Azure SQL Veritabanı uygularsanız, 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, kaynaktaki KIMLIK sütununun türü int'tir ve hedef sütuna eşlerken bunu float türü olarak değiştirebilirsiniz.

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

Ayarlar

Ayarlar sekme yapılandırması için Ayarlar sekmesinin altındaki Diğer ayarlarınızı yapılandırma bölümüne gidin.

Azure SQL Veritabanı paralel kopyalama

Kopyalama etkinliğindeki Azure 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 Azure 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 Azure SQL Veritabanı verinin bir bölümünü alır.

Özellikle Azure SQL Veritabanı 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
Fiziksel bölümleri olan büyük tablodan tam yük. 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 bölüm olup olmadığını denetlemek için bu sorguya bakabilirsiniz.
Veri bölümleme için bir tamsayı veya tarih saat sütunuyla birlikte fiziksel bölümler olmadan 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ümleme için 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 etkinlikleri değerleri 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ı da 80 olarak ayarladıysanız, paralel kopya 4 bölüme göre veri alır: =20, [21, 50], [51, 80] ve >=81 aralığındaki <kimlikler.
Veri bölümleme için tamsayı veya tarih/tarih saat sütunuylayken fiziksel bölümler olmadan özel bir sorgu 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, 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 olarak ayarlarsanız ve paralel kopya 4 olarak ayarlanırsa, hizmet verileri sırasıyla =20, [21, 50], [51, 80] ve >=81 aralığındaki <4 bölüme göre alır.

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 where-yan tümcesi 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üm 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 bölüm varsa, daha iyi performans elde etmek için bölüm seçeneğini Kullanın Tablonun fiziksel bölümleri.

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 sonucu.

Tablo özeti

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

Kaynak

Veri Akışı Adı Açıklama Değer Zorunlu JSON betik özelliği
Veri deposu türü Veri deposu türünüz. Harici Yes /
Bağlantı Kaynak veri deposuyla bağlantınız. <bağlantınız> Yes bağlantı
Bağlantı türü Bağlantı türünüz. Azure SQL Veritabanı'ı seçin. Azure SQL Veritabanı Yes /
Table Kaynak veri tablonuz. <hedef tablonuzun adı> Yes Şema
table
Sorguyu kullanma Verileri okumak için özel SQL sorgusu. •Hiçbiri
•Sorgu
• Saklı yordam
Hayır

• sqlReaderQuery
• sqlReaderStoredProcedureName, storedProcedureParameters
Sorgu zaman aşımı Sorgu komutu yürütme zaman aşımı varsayılan olarak 120 dakikadır. timespan Hayır Querytimeout
Yalıtım düzeyi SQL kaynağı için işlem kilitleme davranışını belirtir. •Hiçbiri
•Readcommıtted
•Readuncommıtted
•Repeatableread
•Serileştirilebilir
•An -lık görüntü
Hayır ısolationlevel
Bölüm seçeneği Azure SQL Veritabanı'dan veri yüklemek için kullanılan veri bölümleme seçenekleri. •Hiçbiri
• Tablonun fiziksel bölümleri
• Dinamik aralık
Hayır Partitionoption:
• PhysicalPartitionsOfTable
• DynamicRange
Ek sütunlar Kaynak dosyaların göreli yolunu veya statik değerini depolamak için daha fazla veri sütunu ekleyin. İfade, ikincisi için desteklenir. • Adı
•Değer
Hayır additionalColumns:
•Adı
•Değer

Hedef

Veri Akışı Adı Açıklama Değer Zorunlu JSON betik özelliği
Veri deposu türü Veri deposu türünüz. Harici Yes /
Bağlantı Hedef veri deposuna bağlantınız. <bağlantınız > Yes bağlantı
Bağlantı türü Bağlantı türünüz. Azure SQL Veritabanı'ı seçin. Azure SQL Veritabanı Yes /
Table Hedef veri tablonuz. <hedef tablonuzun adı> Yes Şema
table
Yazma davranışı Kaynak, dosya tabanlı bir veri deposundaki dosyalar olduğunda yazma davranışını tanımlar. •Ekle
• Upsert
• Saklı yordam
Hayır writeBehavior:
•Ekle
• upsert
• sqlWriterStoredProcedureName, sqlWriterTableType, storedProcedureParameters
Toplu tablo kilidi ekleme 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 Hayır sqlWriterUseTableLock:
true veya false
Tablo seçeneği Kaynak şemaya göre mevcut değilse hedef tablonun otomatik olarak oluşturulup oluşturulmayacağını belirtir. •Hiçbiri
• Otomatik tablo oluşturma
Hayır Tableoption:
• otomatik Oluştur
Ön kopyalama betiği Her çalıştırmada hedef tabloya veri yazmadan önce yürütülecek Kopyalama Etkinliği betiği. Önceden yüklenmiş verileri temizlemek için bu özelliği kullanabilirsiniz. <ön kopyalama betiği>
(dize)
Hayır preCopyScript
Toplu iş yazma 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). timespan Hayır writeBatchTimeout
Toplu iş boyutu yazma 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ır 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ır maxConcurrent Bağlan ions
Performans ölçümleri analizini devre dışı bırakma Bu ayar, kopyalama performansı iyileştirme ve öneriler için DTU, DWU, RU gibi ölçümleri toplamak için kullanılır. Bu davranışla ilgileniyorsanız bu onay kutusunu seçin. seçme veya seçimini kaldırma Hayır disableMetricsCollection:
true veya false