Eşleme veri akışında değişiklik satırı dönüşümü

Uygulama hedefi: Azure SYNAPSE Analytics 'i Azure Data Factory

Veri akışları hem Azure Data Factory hem de Azure SYNAPSE Pipelines kullanılabilir. Bu makale, veri akışlarını eşlemek için geçerlidir. Dönüşümlere yeni atıdıysanız, lütfen bir eşleme veri akışı kullanarak veri dönüştürmetanıtım makalesine başvurun.

Satırlarda INSERT, DELETE, Update ve upsert ilkeleri ayarlamak için alter Row dönüşümünü kullanın. Tek-çok koşullarını ifade olarak ekleyebilirsiniz. Her satır, ilk eşleşen ifadeye karşılık gelen ilkeyle işaretlendiği için bu koşulların öncelik sırasına göre belirtilmesi gerekir. Bu koşulların her biri, eklenen, güncellenen, silinmekte veya toplanmakta olan bir satırın (veya satırların) oluşmasına neden olabilir. Alter Row, veritabanınıza göre hem DDL & DML eylemleri üretebilir.

Satır ayarlarını değiştir

Değişiklik satırı dönüştürmeleri yalnızca veri akışınızdaki veritabanı, REST veya CosmosDB havuzları üzerinde çalışır. Satırlara atadığınız eylemler (INSERT, Update, DELETE, upsert) hata ayıklama oturumlarında gerçekleşmeyecek. veritabanı tablolarınızda alter row ilkelerini uygulamak için bir işlem hattındaki veri yürütme Flow etkinliğini çalıştırın.

Varsayılan bir satır ilkesi belirtin

Alter Row dönüşümü oluşturun ve koşulu olan bir satır ilkesi belirtin true() . Önceden tanımlanmış ifadelerden hiçbiriyle eşleşmeyen her satır, belirtilen satır ilkesi için işaretlenir. Varsayılan olarak, herhangi bir koşullu ifadeyle eşleşmeyen her satır için işaretlenir Insert .

Satır değiştirme ilkesi

Not

Tüm satırları tek bir ilkeyle işaretlemek için, bu ilke için bir koşul oluşturabilir ve koşulu olarak belirtebilirsiniz true() .

Veri önizlemede ilkeleri görüntüleme

Değişiklik satırı ilkelerinizin sonuçlarını veri önizleme bölmesinde görüntülemek için hata ayıklama modu ' nu kullanın. Bir alter Row dönüşümünün veri önizlemesi, hedeflemenize karşı DDL veya DML eylemleri üretmeyecektir.

Satır ilkelerini Değiştir

Her alter Row ilkesi, bir INSERT, Update, upsert veya Deleted eyleminin gerçekleşeceğini belirten bir simgeyle temsil edilir. Üst başlıkta, Önizlemedeki her ilkeden kaç satır etkileniyor gösterilmektedir.

Havuzda alter Row ilkelerine izin ver

alter row ilkelerinin çalışması için veri akışının bir veritabanına veya Cosmos havuzuna yazması gerekir. havuzinizdeki Ayarlar sekmesinde, bu havuz için hangi alter row ilkelerine izin verileceğini etkinleştirin.

Satır havuzunu Değiştir

Varsayılan davranış yalnızca eklemeleri izin veriçindir. Güncelleştirmelere, üst ve Siliye izin vermek için, bu koşula karşılık gelen havuzda kutuyu işaretleyin. Güncelleştirmeler, uplar veya silme etkinse, havuzdaki hangi anahtar sütunlarının eşleşeceğini belirtmeniz gerekir.

Not

Ekleme, güncelleştirme veya ön ekler, havuzdaki hedef tablonun şemasını değiştirmezse veri akışı başarısız olur. Veritabanınızdaki hedef şemayı değiştirmek için tabloyu Tablo eylemi olarak yeniden oluştur ' u seçin. Bu, yeni şema tanımıyla tablonuzu bırakıp yeniden oluşturacak.

Havuz dönüştürmesi, hedef veritabanınızda benzersiz satır tanımlaması için tek bir anahtar veya bir dizi anahtar gerektirir. SQL havuzları için havuz ayarları sekmesindeki anahtarları ayarlayın. CosmosDB için, ayarlarda bölüm anahtarını ayarlayın ve ayrıca havuz eşinizdeki CosmosDB sistem alanını "ID" olarak ayarlayın. CosmosDB için, güncelleştirmeler, uplar ve silmeler için "ID" sistem sütununu eklemek zorunludur.

Azure SQL Veritabanı ve Azure Synapse ile birleştirir ve yukarı

veri akışları, Azure SQL Veritabanı ve Azure Synapse veritabanı havuzuna (veri ambarı) karşı, upsert seçeneği ile birleştirmeleri destekler.

Bununla birlikte, hedef veritabanı şemanızın anahtar sütunlarının kimlik özelliğini kullandığı senaryolara sahip olabilirsiniz. Hizmet, güncelleştirmeler ve yukarı serler için satır değerleriyle eşleştirmek üzere kullanacağınız anahtarları tanımlamanızı gerektirir. Ancak, hedef sütununda Identity özelliği ayarlanmış ise ve upsert ilkesi kullanıyorsanız, hedef veritabanı sütuna yazmanıza izin vermez. Ayrıca, dağıtılmış bir tablonun dağıtım sütununa karşı daha fazla denemeye çalıştığınızda hatalarla karşılaşabilirsiniz.

Bunu gidermenin yolları aşağıda verilmiştir:

  1. havuz dönüştürme Ayarlar gidin ve "anahtar sütunlarını yazmayı atla" öğesini ayarlayın. Bu, hizmete eşlemenin anahtar değeri olarak seçtiğiniz sütunu yazmadığından emin olur.

  2. bu anahtar sütun, kimlik sütunları için soruna neden olan sütun değilse, havuz dönüştürme ön işleme SQL seçeneğini kullanabilirsiniz: SET IDENTITY_INSERT tbl_content ON . sonra, işlem sonrası SQL özelliği ile devre dışı bırakın: SET IDENTITY_INSERT tbl_content OFF .

  3. Hem kimlik durumu hem de dağıtım sütunu durumu için mantığınızı, koşullu bölünmüş dönüşüm kullanarak ayrı bir güncelleştirme koşulu ve ayrı bir ekleme koşulu kullanarak kullanabilirsiniz. Bu şekilde, güncelleştirme yolundaki eşlemeyi anahtar sütunu eşlemesini yoksayacak şekilde ayarlayabilirsiniz.

Veri akışı betiği

Syntax

<incomingStream>
    alterRow(
           insertIf(<condition>?),
           updateIf(<condition>?),
           deleteIf(<condition>?),
           upsertIf(<condition>?),
        ) ~> <alterRowTransformationName>

Örnek

Aşağıdaki örnek, CleanData gelen akış alan SpecifyUpsertConditions ve üç alter Row koşulu oluşturan adlı bir alter Row dönüşümünün örneğidir. Önceki dönüşümde, alterRowCondition bir satırın veritabanına eklenip eklenmeyeceğini, güncelleştirileceğini veya silindiğini belirleyen adlı bir sütun hesaplanır. Sütunun değeri alter Row kuralıyla eşleşen bir dize değeri içeriyorsa, bu ilke atanır.

Kullanıcı arabiriminde, bu dönüşüm aşağıdaki görüntüye benzer şekilde görünür:

Satır değiştirme örneği

Bu dönüşüm için veri akışı betiği aşağıdaki kod parçacığında verilmiştir:

SpecifyUpsertConditions alterRow(insertIf(alterRowCondition == 'insert'),
    updateIf(alterRowCondition == 'update'),
    deleteIf(alterRowCondition == 'delete')) ~> AlterRow

Sonraki adımlar

Alter Row dönüşümünde, verilerinizi bir hedef veri deposuna havuzaalmak isteyebilirsiniz.