Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'daki
Amazon S3'ten Azure Data Lake Storage 2. Nesil'a yüz milyonlarca dosyadan oluşan petabaytlarca veriyi geçirmek için şablonları kullanın.
Not
AWS S3'teki küçük veri hacmini Azure kopyalamak istiyorsanız (örneğin, 10 TB'tan az), Azure Data Factory Veri Kopyalama aracını kullanmak daha verimli ve kolaydır. Bu makalede açıklanan şablon, ihtiyacınız olandan daha fazlasıdır.
Bir AWS iş yükünü Azure'a geçirmeyi planlıyorsanız, kullanım durumunuza uygun olabilecek geçiş kılavuzlarını içeren Amazon Web Services'ten Azure'a depolamayı geçirme başlıklı makaleye bakın.
Çözüm şablonları hakkında
Veri bölümü özellikle 10 TB'tan fazla veri geçirilirken önerilir. Verileri bölümlendirmek için Amazon S3'teki klasörleri ve dosyaları ada göre filtrelemek için 'ön ek' ayarından yararlanın ve ardından her ADF kopyalama işi bir kerede bir bölüm kopyalayabilir. Daha iyi aktarım hızı için birden çok ADF kopyalama işini eşzamanlı olarak çalıştırabilirsiniz.
Veri geçişi normalde tek seferlik geçmiş veri geçişinin yanı sıra AWS S3'ten Azure değişiklikleri düzenli aralıklarla eşitlemeye ihtiyaç duyar. Aşağıda bir şablonun bir kerelik geçmiş veri geçişini, diğer şablonun ise AWS S3'ten Azure değişiklikleri eşitlemeyi kapsadığı iki şablon vardır.
Şablonun geçmiş verileri Amazon S3'ten Azure Data Lake Storage 2. Nesil'a geçirmesi için
Bu şablon (template adı: GEÇMIŞ verileri AWS S3'ten Azure Data Lake Storage 2. Nesil'a geçirme), Azure SQL Veritabanı'deki bir dış denetim tablosunda bölüm listesi yazdığınızı varsayar. Bu nedenle, dış denetim tablosundan bölüm listesini almak, her bölüm üzerinde yineleme yapmak ve her ADF kopyalama işinin bir kerede bir bölüm kopyalamasını sağlamak için bir Arama etkinliği kullanır. Herhangi bir kopyalama işi tamamlandıktan sonra, denetim tablosundaki her bölümü kopyalama durumunu güncelleştirmek için Saklı Yordam etkinliğini kullanır.
Şablon beş etkinlik içerir:
- Lookup dış denetim tablosundan Azure Data Lake Storage 2. Nesil kopyalanmamış bölümleri alır. Tablo adı s3_partition_control_table ve tablodan veri yüklenecek sorgu "SELECT PartitionPrefix FROM s3_partition_control_table WHERE SuccessOrFailure = 0" şeklindedir.
- ForEach, Lookup etkinliğindeki bölüm listesini alır ve her bölümü TriggerCopy etkinliğinde yineler. BatchCount'u birden çok ADF kopyalama işini eşzamanlı olarak çalıştıracak şekilde ayarlayabilirsiniz. Bu şablonda 2 ayarladık.
- ExecutePipeline, CopyFolderPartitionFromS3 işlem hattını yürütür. Her kopyalama işinin bölüm kopyalamasını sağlamak için başka bir işlem hattı oluşturmanın nedeni, aws S3'ten belirli bir bölümü yeniden yüklemek için başarısız kopyalama işini yeniden çalıştırmanızı kolaylaştıracak olmasıdır. Diğer bölümleri yükleyecek diğer tüm kopyalama işleri etkilenmez.
- Copy, her bir bölümü AWS S3'ten Azure Data Lake Storage 2. Nesil'ye kopyalar.
- SqlServerStoredProcedure , denetim tablosundaki her bölümü kopyalama durumunu güncelleştirir.
Şablon iki parametre içerir:
- AWS_S3_bucketName, AWS S3'te verileri geçirmek istediğiniz demet adınızdır. AWS S3'te birden çok demetten veri geçirmek istiyorsanız, her bölümün demet adını depolamak için dış denetim tablonuza bir sütun daha ekleyebilir ve ayrıca işlem hattınızı bu sütundan uygun şekilde veri alacak şekilde güncelleştirebilirsiniz.
- Azure_Storage_fileSystem, verileri geçirmek istediğiniz Azure Data Lake Storage 2. Nesil dosya sistem adınızdır.
Şablonun değiştirilen dosyaları yalnızca Amazon S3'ten Azure Data Lake Storage 2. Nesil'a kopyalaması için
Bu şablon (template name: copy delta data from AWS S3 to Azure Data Lake Storage 2. Nesil), yeni veya güncelleştirilmiş dosyaları yalnızca AWS S3'ten Azure kopyalamak için her dosyanın LastModifiedTime değerini kullanır. AWS S3'teki dosya veya klasör adının bir parçası olarak zaman dilimi bilgileri ile zaman dilimlerine bölünmüş dosya veya klasörlerinizin olup olmadığını kontrol edin (örneğin, /yyyy/mm/dd/file.csv). Yeni dosyaları artımlı yükleme için daha yüksek performanslı bir yaklaşım elde etmek için bu öğreticiye gidebilirsiniz. Bu şablon, Azure SQL Veritabanı bir dış denetim tablosunda bölüm listesi yazdığınızı varsayar. Bu nedenle, dış denetim tablosundan bölüm listesini almak, her bölüm üzerinde yineleme yapmak ve her ADF kopyalama işinin bir kerede bir bölüm kopyalamasını sağlamak için bir Arama etkinliği kullanır. Her kopyalama işi AWS S3'ten dosyaları kopyalamaya başladığında, yalnızca yeni veya güncelleştirilmiş dosyaları tanımlamak ve kopyalamak için LastModifiedTime özelliğine dayanır. Herhangi bir kopyalama işi tamamlandıktan sonra, denetim tablosundaki her bölümü kopyalama durumunu güncelleştirmek için Saklı Yordam etkinliğini kullanır.
Şablon yedi etkinlik içerir:
- Arama , bölümleri bir dış denetim tablosundan alır. Tablo adı s3_partition_delta_control_table ve tablodan veri yükleme sorgusu "select distinct PartitionPrefix from s3_partition_delta_control_table" şeklindedir.
- ForEach, Lookup etkinliğinden bölüm listesini alır ve her bölümü TriggerDeltaCopy etkinliğine döngü yapar. BatchCount'u birden çok ADF kopyalama işini eşzamanlı olarak çalıştıracak şekilde ayarlayabilirsiniz. Bu şablonda 2 ayarladık.
- ExecutePipeline, DeltaCopyFolderPartitionFromS3 işlem hattını yürütür. Her kopyalama işinin bölüm kopyalamasını sağlamak için başka bir işlem hattı oluşturmanın nedeni, aws S3'ten belirli bir bölümü yeniden yüklemek için başarısız kopyalama işini yeniden çalıştırmanızı kolaylaştıracak olmasıdır. Diğer bölümleri yükleyecek diğer tüm kopyalama işleri etkilenmez.
- Arama , yeni veya güncelleştirilmiş dosyaların LastModifiedTime aracılığıyla tanımlanabilmesi için dış denetim tablosundan son kopyalama işi çalışma zamanını alır. Tablo adı s3_partition_delta_control_table ve tablodan veri yüklenecek sorgu "select max(JobRunTime) as LastModifiedTime from s3_partition_delta_control_table where PartitionPrefix = '@{pipeline().parameters.prefixStr}' ve SuccessOrFailure = 1" şeklindedir.
- Copy yalnızca AWS S3'ten Azure Data Lake Storage 2. Nesil her bölüm için yeni veya değiştirilmiş dosyaları kopyalar. modifiedDatetimeStart özelliği, son kopyalama işi çalışma zamanına ayarlanır. modifiedDatetimeEnd özelliği, mevcut kopyalama işinin çalışma zamanına ayarlanır. Saatin UTC saat dilimine uygulandığını unutmayın.
- SqlServerStoredProcedure başarılı olduğunda denetim tablosundaki her bölümün kopyalanma durumunu ve kopyalama çalışma süresini günceller. SuccessOrFailure sütunu 1 olarak ayarlanır.
- SqlServerStoredProcedure , her bölümü kopyalama durumunu güncelleştirir ve başarısız olduğunda denetim tablosundaki çalışma süresini kopyalar. SuccessOrFailure sütunu 0 olarak ayarlanır.
Şablon iki parametre içerir:
- AWS_S3_bucketName, AWS S3'te verileri geçirmek istediğiniz demet adınızdır. AWS S3'te birden çok demetten veri geçirmek istiyorsanız, her bölümün demet adını depolamak için dış denetim tablonuza bir sütun daha ekleyebilir ve ayrıca işlem hattınızı bu sütundan uygun şekilde veri alacak şekilde güncelleştirebilirsiniz.
- Azure_Storage_fileSystem, verileri geçirmek istediğiniz Azure Data Lake Storage 2. Nesil dosya sistem adınızdır.
Bu iki çözüm şablonunu kullanma
Şablonun geçmiş verileri Amazon S3'ten Azure Data Lake Storage 2. Nesil'a geçirmesi için
AWS S3'ün bölüm listesini depolamak için Azure SQL Veritabanı'de bir denetim tablosu oluşturun.
Not
Tablo adı s3_partition_control_table. Denetim tablosunun şeması PartitionPrefix ve SuccessOrFailure'dir. Burada PartitionPrefix, Amazon S3'teki klasörleri ve dosyaları ada göre filtrelemek için S3'teki ön ek ayarıdır ve SuccessOrFailure her bölümü kopyalama durumudur: 0, bu bölümün Azure kopyalanmadığı ve 1, bu bölümün başarıyla Azure kopyalandığı anlamına gelir. Denetim tablosunda tanımlanan 5 bölüm vardır ve her bölümü kopyalamanın varsayılan durumu 0'dır.
CREATE TABLE [dbo].[s3_partition_control_table]( [PartitionPrefix] [varchar](255) NULL, [SuccessOrFailure] [bit] NULL ) INSERT INTO s3_partition_control_table (PartitionPrefix, SuccessOrFailure) VALUES ('a', 0), ('b', 0), ('c', 0), ('d', 0), ('e', 0);Aynı Azure SQL Veritabanı üzerinde denetim tablosu için bir saklı prosedür oluşturun.
Not
Saklı Yordamın adı sp_update_partition_success. ADF işlem hattınızdaki SqlServerStoredProcedure etkinliği tarafından çağrılır.
CREATE PROCEDURE [dbo].[sp_update_partition_success] @PartPrefix varchar(255) AS BEGIN UPDATE s3_partition_control_table SET [SuccessOrFailure] = 1 WHERE [PartitionPrefix] = @PartPrefix END GOAws S3'ten Azure Data Lake Storage 2. Nesil şablonuna geçmiş verileri dağıtma bölümüne gidin. Dış kontrol tablonuza bağlantıları, veri kaynağı olarak AWS S3'ü ve hedef depo olarak Azure Data Lake Storage 2. Nesil'yi girin. Dış denetim tablosunun ve saklı yordamın aynı bağlantıyı referans aldığını unutmayın.
Bu şablonu kullan'ı seçin.
Aşağıdaki örnekte gösterildiği gibi 2 işlem hattının ve 3 veri kümesinin oluşturulduğunu görürsünüz:
"BulkCopyFromS3" işlem hattına gidin ve Debug'ı seçip, Parametreler'i girin. Ardından Son'u seçin.
Aşağıdaki örneğe benzer sonuçlar görürsünüz:
Şablonun değiştirilen dosyaları yalnızca Amazon S3'ten Azure Data Lake Storage 2. Nesil'a kopyalaması için
AWS S3'ün bölüm listesini depolamak için Azure SQL Veritabanı'de bir denetim tablosu oluşturun.
Not
Tablonun adı s3_partition_delta_control_table. Denetim tablosunun şeması PartitionPrefix, JobRunTime ve SuccessOrFailure'dir; burada PartitionPrefix, Amazon S3'teki klasörleri ve dosyaları ada göre filtrelemek için S3'teki ön ek ayarıdır, JobRunTime kopyalama işleri çalıştırıldığında tarih saat değeridir ve SuccessOrFailure her bölümü kopyalama durumudur: 0, bu bölümün Azure kopyalanmadığı ve 1 bu bölümün başarıyla Azure kopyalandığı anlamına gelir. Denetim tablosunda tanımlanmış 5 bölüm vardır. JobRunTime için varsayılan değer, bir kerelik geçmiş veri geçişinin başlatılacağı zaman olabilir. ADF kopyalama etkinliği, AWS S3'te bu süreden sonra en son değiştirilen dosyaları kopyalar. Her bölümü kopyalamanın varsayılan durumu 1'dir.
CREATE TABLE [dbo].[s3_partition_delta_control_table]( [PartitionPrefix] [varchar](255) NULL, [JobRunTime] [datetime] NULL, [SuccessOrFailure] [bit] NULL ) INSERT INTO s3_partition_delta_control_table (PartitionPrefix, JobRunTime, SuccessOrFailure) VALUES ('a','1/1/2019 12:00:00 AM',1), ('b','1/1/2019 12:00:00 AM',1), ('c','1/1/2019 12:00:00 AM',1), ('d','1/1/2019 12:00:00 AM',1), ('e','1/1/2019 12:00:00 AM',1);Aynı Azure SQL Veritabanı üzerinde denetim tablosu için bir saklı prosedür oluşturun.
Not
Saklı Yordamın adı sp_insert_partition_JobRunTime_success. ADF işlem hattınızdaki SqlServerStoredProcedure etkinliği tarafından çağrılır.
CREATE PROCEDURE [dbo].[sp_insert_partition_JobRunTime_success] @PartPrefix varchar(255), @JobRunTime datetime, @SuccessOrFailure bit AS BEGIN INSERT INTO s3_partition_delta_control_table (PartitionPrefix, JobRunTime, SuccessOrFailure) VALUES (@PartPrefix,@JobRunTime,@SuccessOrFailure) END GOAWS S3'ten Azure Data Lake Storage 2. Nesil'ye delta verilerini kopyalama şablonuna gidin. Dış kontrol tablonuza bağlantıları, veri kaynağı olarak AWS S3'ü ve hedef depo olarak Azure Data Lake Storage 2. Nesil'yi girin. Dış denetim tablosunun ve saklı yordamın aynı bağlantıyı referans aldığını unutmayın.
Bu şablonu kullan'ı seçin.
Aşağıdaki örnekte gösterildiği gibi 2 işlem hattının ve 3 veri kümesinin oluşturulduğunu görürsünüz:
"DeltaCopyFromS3" kanalına gidin, Debug'ı seçin ve Parametreler'i girin. Ardından Son'u seçin.
Aşağıdaki örneğe benzer sonuçlar görürsünüz:
Denetim tablosundaki sonuçları "select * from s3_partition_delta_control_table" sorgusuyla da denetleyebilirsiniz. Çıktıyı aşağıdaki örneğe benzer şekilde görürsünüz: