Azure portalını kullanarak SQL Server'daki birden çok tablodan Azure SQL Veritabanı veritabanına artımlı olarak veri yükleme
UYGULANANLAR: Azure Data Factory Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Bu öğreticide, SQL Server veritabanındaki birden çok tablodaki delta verilerini Azure SQL Veritabanı'daki bir veritabanına yükleyen bir işlem hattına sahip bir Azure Data Factory oluşturacaksınız.
Bu öğreticide aşağıdaki adımları gerçekleştireceksiniz:
- Kaynak ve hedef veri depolarını hazırlayın.
- Veri fabrikası oluşturma.
- Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma.
- Tümleştirme çalışma zamanını yükleyin.
- Bağlı hizmet oluşturma.
- Kaynak, havuz ve eşik veri kümeleri oluşturun.
- İşlem hattını oluşturma, çalıştırma ve izleme.
- Sonuçları inceleyin.
- Kaynak tablolarına veri ekleyin veya bu verileri güncelleştirin.
- İşlem hattını yeniden çalıştırın ve izleyin.
- Son sonuçları gözden geçirin.
Genel bakış
Bu çözümü oluşturmak için önemli adımlar şunlardır:
Eşit sütununu seçin.
Kaynak veri deposunda her çalıştırma için yeni veya güncelleştirilmiş kayıtları tanımlamak için her tablodan kullanılabilen bir sütun seçin. Normalde, satırlar oluşturulduğunda veya güncelleştirildiğinde seçilen bu sütundaki veriler (örneğin, last_modify_time veya kimlik) artmaya devam eder. Bu sütundaki en büyük değer eşik olarak kullanılır.
Eşik değerini depolamak için veri deposunu hazırlayın.
Bu öğreticide, eşik değerini bir SQL veritabanında depolayacaksınız.
Aşağıdaki eylemler ile bir işlem hattı oluşturun:
a. İşlem hattına parametre olarak geçen kaynak tablosu adlarının bir listesi üzerinden yinelenen bir ForEach eylemi oluşturun. Her kaynak tablosunda, bu tabloya yönelik olarak yüklenen değişiklikleri gerçekleştirmek için aşağıdaki eylemleri çağırır.
b. İki arama etkinliği oluşturun. Son eşik değerini almak için ilk Arama etkinliğini kullanın. Yeni eşik değerini almak için ikinci Arama etkinliğini kullanın. Bu eşik değerleri, Kopyalama etkinliğine geçirilir.
c. Eşik sütununun değeri eski eşik değerinden büyük ve yeni eşik değerinden küçük olacak şekilde, satırları kaynak veri deposundan kopyalayan bir Kopyalama etkinliği oluşturun. Ardından, delta veriler kaynak veri deposundan Azure Blob depolama alanına yeni bir dosya olarak kopyalanır.
d. Sonraki seferde çalışan işlem hattı için eşik değerini güncelleştiren bir StoredProcedure etkinliği oluşturun.
Yüksek düzeyli çözüm diyagramı aşağıdaki gibidir:
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
- SQL Server. Bu öğreticide kaynak veri deposu olarak bir SQL Server veritabanı kullanırsınız.
- Azure SQL Veritabanı. havuz veri deposu olarak Azure SQL Veritabanı'da bir veritabanı kullanırsınız. SQL Veritabanı'da veritabanınız yoksa, oluşturma adımları için bkz. Azure SQL Veritabanı'da veritabanı oluşturma.
SQL Server veritabanınızda kaynak tabloları oluşturma
SQL Server Management Studio’yu açın ve SQL Server veritabanınıza bağlanın.
Sunucu Gezgini’nde veritabanına sağ tıklayın ve Yeni Sorgu’yu seçin.
customer_table
veproject_table
adlı tabloları oluşturmak için aşağıdaki SQL komutunu veritabanınızda çalıştırın:create table customer_table ( PersonID int, Name varchar(255), LastModifytime datetime ); create table project_table ( Project varchar(255), Creationtime datetime ); INSERT INTO customer_table (PersonID, Name, LastModifytime) VALUES (1, 'John','9/1/2017 12:56:00 AM'), (2, 'Mike','9/2/2017 5:23:00 AM'), (3, 'Alice','9/3/2017 2:36:00 AM'), (4, 'Andy','9/4/2017 3:21:00 AM'), (5, 'Anny','9/5/2017 8:06:00 AM'); INSERT INTO project_table (Project, Creationtime) VALUES ('project1','1/1/2015 0:00:00 AM'), ('project2','2/2/2016 1:23:00 AM'), ('project3','3/4/2017 5:16:00 AM');
Veritabanınızda hedef tablolar oluşturma
SQL Server Management Studio'yu açın ve Azure SQL Veritabanı veritabanınıza bağlanın.
Sunucu Gezgini’nde veritabanına sağ tıklayın ve Yeni Sorgu’yu seçin.
customer_table
veproject_table
adlı tabloları oluşturmak için aşağıdaki SQL komutunu veritabanınızda çalıştırın:create table customer_table ( PersonID int, Name varchar(255), LastModifytime datetime ); create table project_table ( Project varchar(255), Creationtime datetime );
Yüksek filigran değerini depolamak için veritabanınızda başka bir tablo oluşturma
Filigran değerini depolamak için adlı
watermarktable
bir tablo oluşturmak için veritabanınızda aşağıdaki SQL komutunu çalıştırın:create table watermarktable ( TableName varchar(255), WatermarkValue datetime, );
Her iki kaynak tablonun ilk eşik değerlerini eşik tablosuna ekleyin.
INSERT INTO watermarktable VALUES ('customer_table','1/1/2010 12:00:00 AM'), ('project_table','1/1/2010 12:00:00 AM');
Veritabanınızda saklı yordam oluşturma
Veritabanınızda bir saklı yordam oluşturmak için aşağıdaki komutu çalıştırın. Bu saklı yordam, her işlem hattı çalıştırmasından sonra eşik değerini güncelleştirir.
CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS
BEGIN
UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime
WHERE [TableName] = @TableName
END
Veritabanınızda veri türleri ve ek saklı yordamlar oluşturma
Veritabanınızda iki saklı yordam ve iki veri türü oluşturmak için aşağıdaki sorguyu çalıştırın. Bunlar, kaynak tablodaki verileri hedef tablolarla birleştirmek için kullanılır.
Yolculuğun başlamasını kolaylaştırmak için, delta verilerini bir tablo değişkeni aracılığıyla içeri geçiren bu Saklı Yordamları doğrudan kullanır ve sonra bunları hedef depoda birleştiririz. Tablo değişkeninde "büyük" sayıda delta satırı (100'den fazla) depolanmasını beklemediğinden dikkatli olun.
Çok sayıda delta satırını hedef depoyla birleştirmeniz gerekiyorsa, kopyalama etkinliğini kullanarak tüm delta verilerini önce hedef depodaki geçici bir "hazırlama" tablosuna kopyalamanızı ve ardından bunları "hazırlama" tablosundan "son" tabloya birleştirmek için tablo değişkeni kullanmadan kendi saklı yordamınızı oluşturmanızı öneririz.
CREATE TYPE DataTypeforCustomerTable AS TABLE(
PersonID int,
Name varchar(255),
LastModifytime datetime
);
GO
CREATE PROCEDURE usp_upsert_customer_table @customer_table DataTypeforCustomerTable READONLY
AS
BEGIN
MERGE customer_table AS target
USING @customer_table AS source
ON (target.PersonID = source.PersonID)
WHEN MATCHED THEN
UPDATE SET Name = source.Name,LastModifytime = source.LastModifytime
WHEN NOT MATCHED THEN
INSERT (PersonID, Name, LastModifytime)
VALUES (source.PersonID, source.Name, source.LastModifytime);
END
GO
CREATE TYPE DataTypeforProjectTable AS TABLE(
Project varchar(255),
Creationtime datetime
);
GO
CREATE PROCEDURE usp_upsert_project_table @project_table DataTypeforProjectTable READONLY
AS
BEGIN
MERGE project_table AS target
USING @project_table AS source
ON (target.Project = source.Project)
WHEN MATCHED THEN
UPDATE SET Creationtime = source.Creationtime
WHEN NOT MATCHED THEN
INSERT (Project, Creationtime)
VALUES (source.Project, source.Creationtime);
END
Veri fabrikası oluşturma
Microsoft Edge veya Google Chrome web tarayıcısını açın. Şu anda Data Factory kullanıcı arabirimi yalnızca Microsoft Edge ve Google Chrome web tarayıcılarında desteklenmektedir.
Sol menüde Kaynak>oluştur Integration>Data Factory'yi seçin:
Yeni veri fabrikası sayfasında ad için ADFMultiIncCopyTutorialDF adını girin.
Azure Data Factory adı genel olarak benzersiz olmalıdır. Aşağıdaki hatayla birlikte kırmızı bir ünlem işareti görürseniz veri fabrikasının adını değiştirin (örneğin adınızADFIncCopyTutorialDF) ve yeniden oluşturmayı deneyin. Data Factory yapıtlarının adlandırma kuralları için Data Factory - Adlandırma Kuralları makalesine bakın.
Data factory name "ADFIncCopyTutorialDF" is not available
Veri fabrikasını oluşturmak istediğiniz Azure aboneliğini seçin.
Kaynak Grubu için aşağıdaki adımlardan birini uygulayın:
- Var olanı kullan’ı seçin ve ardından açılır listeden var olan bir kaynak grubu belirleyin.
- Yeni oluştur’u seçin ve bir kaynak grubunun adını girin.
Kaynak grupları hakkında daha fazla bilgi için bkz. Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma.
Sürüm için V2'yi seçin.
Data factory için konum seçin. Açılan listede yalnızca desteklenen konumlar görüntülenir. Veri fabrikası tarafından kullanılan verileri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlemler (HDInsight vb.) başka bölgelerde olabilir.
Oluştur’a tıklayın.
Oluşturma işlemi tamamlandıktan sonra, görüntüde gösterildiği gibi Data Factory sayfasını görürsünüz.
Azure Data Factory kullanıcı arabirimini (UI) ayrı bir sekmede başlatmak için Azure Data Factory Studio'yu Aç kutucuğunda Aç'ı seçin.
Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma
Özel bir ağda yer alan (şirket içi) bir veri deposundaki verileri bir Azure veri deposuna taşırken, şirket içi ortamınıza şirket içinde barındırılan bir tümleştirme çalışma zamanı (IR) yükleyin. Şirket içinde barındırılan IR, özel ağınız ile Azure arasında veri taşır.
Azure Data Factory kullanıcı arabiriminin giriş sayfasında, en soldaki bölmeden Yönet sekmesini seçin.
Sol bölmede Tümleştirme çalışma zamanları'nı ve ardından +Yeni'yi seçin.
Tümleştirme Çalışma Zamanı Kurulumu penceresinde Veri taşıma ve dış işlemlere gönderme etkinliklerini gerçekleştir'i seçin ve Devam'a tıklayın.
Şirket İçinde Barındırılan'ı seçin ve Devam'a tıklayın.
Ad için MySelfHostedIR girin ve Oluştur'a tıklayın.
1. Seçenek: Hızlı kurulum bölümünde Bu bilgisayarda hızlı kurulumu başlatmak için buraya tıklayın seçeneğine tıklayın.
Tümleştirme Çalışma Zamanı (Şirket İçinde Barındırılan) Hızlı Kurulum penceresinde Kapat’a tıklayın.
Web tarayıcısında, Tümleştirme Çalışma Zamanı Kurulumu penceresinde Son’a tıklayın.
Tümleştirme çalışma zamanları listesinde MySelfHostedIR öğesini gördüğünüzü doğrulayın.
Bağlı hizmetler oluşturma
Veri depolarınızı ve işlem hizmetlerinizi veri fabrikasına bağlamak için veri fabrikasında bağlı hizmetler oluşturursunuz. Bu bölümde, Azure SQL Veritabanı'da SQL Server veritabanınıza ve veritabanınıza bağlı hizmetler oluşturacaksınız.
SQL Server bağlı hizmet oluşturma
Bu adımda SQL Server veritabanınızı veri fabrikasına bağlarsınız.
Bağlantılar penceresinde Tümleştirme Çalışma Zamanları sekmesinden Bağlı Hizmetler sekmesine geçip + Yeni’ye tıklayın.
Yeni Bağlı Hizmet penceresinde SQL Server’ı seçip Devam’a tıklayın.
New Linked Service (Yeni Bağlı Hizmet) penceresinde aşağıdaki adımları izleyin:
- Ad için SqlServerLinkedService adını girin.
- Tümleştirme çalışma zamanı aracılığıyla bağlan için MySelfHostedIR seçeneğini belirleyin. Bu önemli bir adımdır. Varsayılan tümleştirme çalışma zamanı bir şirket içi veri deposuna bağlanamaz. Daha önce oluşturduğunuz şirket içinde barındırılan tümleştirme çalışma zamanını kullanın.
- Sunucu adı olarak SQL Server veritabanını içeren bilgisayarınızın adını girin.
- Veritabanı adı olarak SQL Server’ınızdaki kaynak verileri içeren veritabanının adını girin. Ön koşulların bir parçası olarak bir tablo oluşturdunuz ve bu veritabanına veri eklediniz.
- Kimlik doğrulama türü alanına veritabanına bağlanmak için kullanmak istediğiniz kimlik doğrulama türünü seçin.
- Kullanıcı adı alanına SQL Server veritabanına erişimi olan kullanıcının adını girin. Kullanıcı hesabınızda veya sunucu adında eğik çizgi karakteri (
\
) kullanmanız gerekirse kaçış karakterini (\
) kullanın.mydomain\\myuser
bunun bir örneğidir. - Parola alanına kullanıcının parolasını girin.
- Data Factory’nin SQL Server veritabanınıza bağlanıp bağlanamadığını test etmek için Bağlantıyı sına’ya tıklayın. Bağlantı başarılı olana kadar tüm hataları düzeltin.
- Bağlı hizmeti kaydetmek için Son'a tıklayın.
Azure SQL Veritabanı bağlı hizmetini oluşturun
Son adımda, kaynak SQL Server veritabanınızı veri fabrikasına bağlamak için bağlı bir hizmet oluşturursunuz. Bu adımda, hedef/havuz veritabanınızı veri fabrikasına bağlarsınız.
Bağlantılar penceresinde Tümleştirme Çalışma Zamanları sekmesinden Bağlı Hizmetler sekmesine geçip + Yeni’ye tıklayın.
New Linked Service (Yeni Bağlı Hizmet) penceresinde Azure SQL Veritabanı’nı seçip Devam’a tıklayın.
New Linked Service (Yeni Bağlı Hizmet) penceresinde aşağıdaki adımları izleyin:
- Ad için AzureSqlDatabaseLinkedService adını girin.
- Sunucu adı için açılan listeden sunucunuzun adını seçin.
- Veritabanı adı için, customer_table oluşturduğunuz veritabanını seçin ve önkoşulların bir parçası olarak project_table.
- Kullanıcı adı için veritabanına erişimi olan kullanıcının adını girin.
- Parola alanına kullanıcının parolasını girin.
- Data Factory’nin SQL Server veritabanınıza bağlanıp bağlanamadığını test etmek için Bağlantıyı sına’ya tıklayın. Bağlantı başarılı olana kadar tüm hataları düzeltin.
- Bağlı hizmeti kaydetmek için Son'a tıklayın.
Listede iki bağlı hizmet gördüğünüzü doğrulayın.
Veri kümeleri oluşturma
Bu adımda veri kaynağı, veri hedefi ve eşiğin depolanacağı yeri temsil eden veri kümeleri oluşturacaksınız.
Kaynak veri kümesi oluşturma
Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.
Yeni Veri Kümesi penceresinde SQL Server'ı seçin ve Devam'a tıklayın.
Web tarayıcısında veri kümesinin yapılandırılması için yeni bir sekme açıldığını görürsünüz. Ayrıca ağaç görünümünde bir veri kümesi görürsünüz. Alttaki Özellikler penceresinin Genel sekmesinde Ad için SourceDataset adını girin.
Özellikler penceresinin Bağlantı sekmesine geçin ve Bağlı hizmet için SqlServerLinkedService hizmetini seçin. Burada bir tablo seçmezsiniz. İşlem hattındaki Kopyalama etkinliği, tüm tabloyu yüklemek yerine verileri yüklemek için bir SQL sorgusu kullanır.
Havuz veri kümesi oluşturma
Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.
Yeni Veri Kümesi penceresinde Azure SQL Veritabanı'ı seçin ve Devam'a tıklayın.
Web tarayıcısında veri kümesinin yapılandırılması için yeni bir sekme açıldığını görürsünüz. Ayrıca ağaç görünümünde bir veri kümesi görürsünüz. Alttaki Özellikler penceresinin Genel sekmesinde, Ad için SinkDataset adını girin.
Özellikler penceresinin Parametreler sekmesine geçin ve aşağıdaki adımları uygulayın:
Parametre oluştur/güncelleştir bölümünde + Yeni’ye tıklayın.
Ad alanına SinkTableName, tür alanına String değerini girin. Bu veri kümesi, SinkTableName değerini bir parametre olarak alır. SinkTableName parametresi, çalışma zamanında dinamik olarak işlem hattı tarafından ayarlanır. İşlem hattındaki ForEach etkinliği, tablo adlarının bir listesi üzerinden yinelenir ve her yinelemede tablo adını bu veri kümesine geçirir.
Özellikler penceresi Bağlantı sekmesine geçin ve Bağlı hizmet için AzureSqlDatabaseLinkedService'i seçin. Table özelliği için Dinamik içerik ekle'ye tıklayın.
Dinamik İçerik Ekle penceresinde Parametreler bölümünde SinkTableName'i seçin.
Son'a tıkladıktan sonra "@dataset() ifadesini görürsünüz. Tablo adı olarak SinkTableName" yazın.
Eşik için veri kümesi oluşturma
Bu adımda üst eşik değerini depolamak için bir veri kümesi oluşturacaksınız.
Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.
Yeni Veri Kümesi penceresinde Azure SQL Veritabanı'ı seçin ve Devam'a tıklayın.
Alttaki Özellikler penceresinin Genel sekmesinde, Ad için WatermarkDataset adını girin.
Bağlantı sekmesine geçin ve aşağıdaki adımları uygulayın:
Bağlı hizmet için AzureSqlDatabaseLinkedService hizmetini seçin.
Tablo için [dbo].[watermarktable] seçeneğini belirleyin.
İşlem hattı oluşturma
Bu işlem hattı parametre olarak tablo adları listesini alır. ForEach etkinliği, tablo adları listesi üzerinden yinelenir ve aşağıdaki işlemleri gerçekleştirir:
Eski eşik değerini (ilk değer veya son yinelemede kullanılan değer) almak için Arama etkinliğini kullanın.
Yeni eşik değerini (kaynak tablodaki eşik sütununda bulunan en yüksek değer) almak için Arama etkinliğini kullanın.
Bu iki eşik değeri arasında kaynak veritabanından hedef veritabanına veri kopyalamak için Kopyalama etkinliğini kullanın.
Bir sonraki yinelemede kullanılacak eski eşik değerini güncelleştirmek için StoredProcedure etkinliğini kullanın.
İşlem hattını oluşturma
Sol bölmede, + (artı) düğmesine ve sonra da İşlem Hattı’na tıklayın.
Özellikler'in altındaki Genel panelinde Ad için IncrementalCopyPipeline değerini belirtin. Ardından sağ üst köşedeki Özellikler simgesine tıklayarak paneli daraltın.
Parametreler sekmesinde aşağıdaki adımları uygulayın:
- + Yeni öğesine tıklayın.
- name parametresi için tableList girin.
- Parametre türü için Dizi'yi seçin.
Etkinlikler araç kutusunda Yineleme ve Koşullar’ı genişletin ve ForEach etkinliğini sürükleyerek işlem hattı tasarımcısı yüzeyine bırakın. Özellikler penceresinin Genel sekmesinde IterateSQLTables girin.
Ayarlar sekmesine geçin ve Öğeler için
@pipeline().parameters.tableList
değerini girin. ForEach etkinliği, bir tablo listesi üzerinden yinelenir ve artımlı kopyalama işlemini gerçekleştirir.İşlem hattında ForEach etkinliği zaten seçili değilse bunu seçin. Düzenle (Kalem simgesi) düğmesine tıklayın.
Etkinlikler araç kutusunda Genel’i genişletin, Arama etkinliğini sürükleyerek işlem hattı tasarımcısının yüzeyine bırakın ve Ad için LookupOldWaterMarkActivity girin.
Özellikler penceresinin Ayarlar sekmesine geçin ve aşağıdaki adımları uygulayın:
Kaynak Veri Kümesi için WatermarkDataset’i seçin.
Sorgu Kullan için Sorgu’yu seçin.
Sorgu için aşağıdaki SQL sorgusunu girin.
select * from watermarktable where TableName = '@{item().TABLE_NAME}'
Etkinlikler araç kutusundan Arama etkinliğini sürükleyip bırakın ve Ad için LookupNewWaterMarkActivity adını girin.
Ayarlar sekmesine geçin.
Kaynak Veri Kümesi için SourceDataset’i seçin.
Sorgu Kullan için Sorgu’yu seçin.
Sorgu için aşağıdaki SQL sorgusunu girin.
select MAX(@{item().WaterMark_Column}) as NewWatermarkvalue from @{item().TABLE_NAME}
Etkinlikler araç kutusundan Kopyalama etkinliğini sürükleyip bırakın ve Ad için IncrementalCopyActivity adını girin.
Arama etkinliklerini tek tek Kopyalama etkinliğine bağlayın. Bağlanmak için Arama etkinliğine bağlı yeşil kutuyu sürüklemeye başlayın ve Kopyalama etkinliğinin üzerine başlayın. Kopyalama etkinliğinin kenarlık rengi mavi olduğunda fare düğmesini bırakın.
İşlem hattında Kopyalama etkinliğini seçin. Özellikler penceresinin Kaynak sekmesine geçin.
Kaynak Veri Kümesi için SourceDataset’i seçin.
Sorgu Kullan için Sorgu’yu seçin.
Sorgu için aşağıdaki SQL sorgusunu girin.
select * from @{item().TABLE_NAME} where @{item().WaterMark_Column} > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and @{item().WaterMark_Column} <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'
Havuz sekmesine geçin ve Havuz Veri Kümesi alanı için SinkDataset’i seçin.
Aşağıdaki adımları yapın:
Veri kümesi özelliklerinde SinkTableName parametresi için girin
@{item().TABLE_NAME}
.Saklı Yordam Adı özelliği için girin
@{item().StoredProcedureNameForMergeOperation}
.Tablo türü özelliği için girin
@{item().TableType}
.Tablo türü parametre adı için girin
@{item().TABLE_NAME}
.
Etkinlikler araç kutusundan Saklı Yordam etkinliğini sürükleyerek işlem hattı tasarımcısının yüzeyine bırakın. Kopyalama etkinliğini Saklı Yordam etkinliğine bağlayın.
İşlem hattında Saklı Yordam etkinliğini seçin ve Özellikler penceresinin Genel sekmesinde Ad alanına StoredProceduretoWriteWatermarkActivity adını girin.
SQL Hesabı sekmesine geçin ve Bağlı Hizmet için AzureSqlDatabaseLinkedService seçeneğini belirleyin.
Saklı Yordam sekmesine geçin ve aşağıdaki adımları uygulayın:
Saklı yordam adı için
[dbo].[usp_write_watermark]
öğesini seçin.Parametreyi içeri aktar’ı seçin.
Parametreler için aşağıdaki değerleri belirtin:
Adı Tür Değer LastModifiedtime DateTime @{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}
TableName String @{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}
Oluşturduğunuz varlıkları Data Factory hizmetinde yayımlamak için Tümünü Yayımla'yı seçin.
Başarıyla yayımlandı iletisini görene kadar bekleyin. Bildirimleri görmek için Bildirimleri Göster bağlantısına tıklayın. X simgesine tıklayarak bildirim penceresini kapatın.
İşlem hattını çalıştırma
İşlem hattının araç çubuğunda Tetikleyici ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.
İşlem Hattı Çalıştırma penceresinde tableList parametresi için aşağıdaki değeri girip Son’a tıklayın.
[ { "TABLE_NAME": "customer_table", "WaterMark_Column": "LastModifytime", "TableType": "DataTypeforCustomerTable", "StoredProcedureNameForMergeOperation": "usp_upsert_customer_table" }, { "TABLE_NAME": "project_table", "WaterMark_Column": "Creationtime", "TableType": "DataTypeforProjectTable", "StoredProcedureNameForMergeOperation": "usp_upsert_project_table" } ]
İşlem hattını izleme
Soldaki İzleyici sekmesine geçin. El ile tetikleme yoluyla tetiklenen işlem hattı çalıştırmasını görürsünüz. İşlem HATTı ADı sütununun altındaki bağlantıları kullanarak etkinlik ayrıntılarını görüntüleyebilir ve işlem hattını yeniden çalıştırabilirsiniz.
İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görmek için İşlem HATI ADI sütununun altındaki bağlantıyı seçin. Etkinlik çalıştırmalarıyla ilgili ayrıntılar için ETKİ ADI sütununun altındaki Ayrıntılar bağlantısını (gözlük simgesi) seçin.
İşlem Hattı Çalıştırmaları görünümüne dönmek için üstteki Tüm işlem hattı çalıştırmaları'nı seçin. Görünümü yenilemek için Yenile’yi seçin.
Sonuçları gözden geçirin
Verilerin kaynak tablolardan hedef tablolara kopyalandığını doğrulamak için, SQL Server Management Studio’da SQL veritabanında aşağıdaki sorguları çalıştırın:
Sorgu
select * from customer_table
Çıktı
===========================================
PersonID Name LastModifytime
===========================================
1 John 2017-09-01 00:56:00.000
2 Mike 2017-09-02 05:23:00.000
3 Alice 2017-09-03 02:36:00.000
4 Andy 2017-09-04 03:21:00.000
5 Anny 2017-09-05 08:06:00.000
Sorgu
select * from project_table
Çıktı
===================================
Project Creationtime
===================================
project1 2015-01-01 00:00:00.000
project2 2016-02-02 01:23:00.000
project3 2017-03-04 05:16:00.000
Sorgu
select * from watermarktable
Çıktı
======================================
TableName WatermarkValue
======================================
customer_table 2017-09-05 08:06:00.000
project_table 2017-03-04 05:16:00.000
Her iki tablonun da eşik değerlerinin güncelleştirildiğine dikkat edin.
Kaynak tablolara daha fazla veri ekleme
customer_table içerisindeki mevcut bir satırı güncelleştirmek için aşağıdaki sorguyu kaynak SQL Server veritabanında çalıştırın. Project_table içine yeni bir satır ekleyin.
UPDATE customer_table
SET [LastModifytime] = '2017-09-08T00:00:00Z', [name]='NewName' where [PersonID] = 3
INSERT INTO project_table
(Project, Creationtime)
VALUES
('NewProject','10/1/2017 0:00:00 AM');
İşlem hattını yeniden çalıştırma
Web tarayıcısı penceresinde, soldaki Düzenle sekmesine geçin.
İşlem hattının araç çubuğunda Tetikleyici ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.
İşlem Hattı Çalıştırma penceresinde tableList parametresi için aşağıdaki değeri girip Son’a tıklayın.
[ { "TABLE_NAME": "customer_table", "WaterMark_Column": "LastModifytime", "TableType": "DataTypeforCustomerTable", "StoredProcedureNameForMergeOperation": "usp_upsert_customer_table" }, { "TABLE_NAME": "project_table", "WaterMark_Column": "Creationtime", "TableType": "DataTypeforProjectTable", "StoredProcedureNameForMergeOperation": "usp_upsert_project_table" } ]
İşlem hattını yeniden izleme
Soldaki İzleyici sekmesine geçin. El ile tetikleme yoluyla tetiklenen işlem hattı çalıştırmasını görürsünüz. İşlem HATTı ADı sütununun altındaki bağlantıları kullanarak etkinlik ayrıntılarını görüntüleyebilir ve işlem hattını yeniden çalıştırabilirsiniz.
İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görmek için İşlem HATI ADI sütununun altındaki bağlantıyı seçin. Etkinlik çalıştırmalarıyla ilgili ayrıntılar için ETKİ ADI sütununun altındaki Ayrıntılar bağlantısını (gözlük simgesi) seçin.
İşlem Hattı Çalıştırmaları görünümüne dönmek için üstteki Tüm işlem hattı çalıştırmaları'nı seçin. Görünümü yenilemek için Yenile’yi seçin.
Son sonuçları gözden geçirme
SQL Server Management Studio'da, güncelleştirilmiş/yeni verilerin kaynak tablolardan hedef tablolara kopyalandığını doğrulamak için hedef SQL veritabanında aşağıdaki sorguları çalıştırın.
Sorgu
select * from customer_table
Çıktı
===========================================
PersonID Name LastModifytime
===========================================
1 John 2017-09-01 00:56:00.000
2 Mike 2017-09-02 05:23:00.000
3 NewName 2017-09-08 00:00:00.000
4 Andy 2017-09-04 03:21:00.000
5 Anny 2017-09-05 08:06:00.000
3 numaraya ait PersonID için yeni Name ve LastModifytime değerlerine dikkat edin.
Sorgu
select * from project_table
Çıktı
===================================
Project Creationtime
===================================
project1 2015-01-01 00:00:00.000
project2 2016-02-02 01:23:00.000
project3 2017-03-04 05:16:00.000
NewProject 2017-10-01 00:00:00.000
NewProject girişinin project_table tablosuna eklendiğine dikkat edin.
Sorgu
select * from watermarktable
Çıktı
======================================
TableName WatermarkValue
======================================
customer_table 2017-09-08 00:00:00.000
project_table 2017-10-01 00:00:00.000
Her iki tablonun da eşik değerlerinin güncelleştirildiğine dikkat edin.
İlgili içerik
Bu öğreticide aşağıdaki adımları gerçekleştirdiniz:
- Kaynak ve hedef veri depolarını hazırlayın.
- Veri fabrikası oluşturma.
- Şirket içinde barındırılan tümleştirme çalışma (IR) zamanı oluşturun.
- Tümleştirme çalışma zamanını yükleyin.
- Bağlı hizmet oluşturma.
- Kaynak, havuz ve eşik veri kümeleri oluşturun.
- İşlem hattını oluşturma, çalıştırma ve izleme.
- Sonuçları inceleyin.
- Kaynak tablolarına veri ekleyin veya bu verileri güncelleştirin.
- İşlem hattını yeniden çalıştırın ve izleyin.
- Son sonuçları gözden geçirin.
Azure üzerinde bir Spark kümesi kullanarak veri dönüştürme hakkında bilgi edinmek için aşağıdaki öğreticiye geçin: