Denetim tablosu içeren bir veritabanından toplu kopyalama

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

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!

Oracle Server, Netezza, Teradata veya SQL Server'daki bir veri ambarından Azure Synapse Analytics'e veri kopyalamak için birden çok tablodan çok miktarda veri yüklemeniz gerekir. Genellikle, tek bir tablodan paralel olarak birden çok iş parçacığına sahip satırları yükleyebilmeniz için verilerin her tabloda bölümlenmiş olması gerekir. Bu makalede, bu senaryolarda kullanılacak bir şablon açıklanmaktadır.

Dekont

Nispeten küçük veri hacmine sahip az sayıda tablodaki verileri Azure Synapse Analytics'e kopyalamak istiyorsanız, Azure Data Factory Veri Kopyalama aracını kullanmak daha verimlidir. Bu makalede açıklanan şablon, bu senaryo için ihtiyacınız olandan daha fazladır.

Bu çözüm şablonu hakkında

Bu şablon, dış denetim tablosundan kopyalanacak kaynak veritabanı bölümlerinin listesini alır. Ardından kaynak veritabanındaki her bölümü yineler ve verileri hedefe kopyalar.

Şablon üç etkinlik içerir:

  • Arama , dış denetim tablosundan emin veritabanı bölümlerinin listesini alır.
  • ForEach, Arama etkinliğinden bölüm listesini alır ve her bölümü Kopyalama etkinliği yineler.
  • Her bölümü kaynak veritabanı deposundan hedef depoya kopyalar .

Şablon aşağıdaki parametreleri tanımlar:

  • Control_Table_Name, kaynak veritabanının bölüm listesini depolayan dış denetim tablonuzdur.
  • Control_Table_Schema_PartitionID, her bölüm kimliğini depolayan dış denetim tablonuzdaki sütun adının adıdır. Kaynak veritabanındaki her bölüm için bölüm kimliğinin benzersiz olduğundan emin olun.
  • Control_Table_Schema_SourceTableName, kaynak veritabanındaki her tablo adını depolayan dış denetim tablonuzdur.
  • Control_Table_Schema_FilterQuery, kaynak veritabanındaki her bölümden verileri almak için filtre sorgusunu depolayan dış denetim tablonuzdaki sütunun adıdır. Örneğin, verileri yıla göre bölümlediyseniz, her satırda depolanan sorgu 'lastModifytime >= ''2015-01-01 00:00:00'' ve LastModifytime <= ''2015-12-31 23:59:59.999'' veri kaynağından * seçin'e benzer olabilir.
  • Data_Destination_Folder_Path, verilerin hedef deponuza kopyalandığı yoldur (seçtiğiniz hedef "Dosya Sistemi" veya "Azure Data Lake Storage 1. Nesil" olduğunda geçerlidir).
  • Data_Destination_Container, verilerin hedef deponuzda kopyalandığı kök klasör yoludur.
  • Data_Destination_Directory, verilerin hedef deponuza kopyalandığı kök dizinin altındaki dizin yoludur.

Hedef deponuzda yolu tanımlayan son üç parametre yalnızca seçtiğiniz hedef dosya tabanlı depolama ise görünür. Hedef depo olarak "Azure Synapse Analytics" seçeneğini belirlerseniz bu parametreler gerekli değildir. Ancak Azure Synapse Analytics'teki tablo adları ve şema, kaynak veritabanındakilerle aynı olmalıdır.

Bu çözüm şablonunu kullanma

  1. Kaynak veritabanı bölüm listesini toplu kopyalama için depolamak için SQL Server'da veya Azure SQL Veritabanı bir denetim tablosu oluşturun. Aşağıdaki örnekte, kaynak veritabanında beş bölüm vardır. datasource_table için üç bölüm, project_table için iki bölüm vardır. LastModifytime sütunu, tablo datasource_table verileri kaynak veritabanından bölümlendirmek için kullanılır. İlk bölümü okumak için kullanılan sorgu , 'select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' ve LastModifytime <= ''2015-12-31 23:59:59.999'. Diğer bölümlerden verileri okumak için benzer bir sorgu kullanabilirsiniz.

     		Create table ControlTableForTemplate
     		(
     		PartitionID int,
     		SourceTableName  varchar(255),
     		FilterQuery varchar(255)
     		);
    
     		INSERT INTO ControlTableForTemplate
     		(PartitionID, SourceTableName, FilterQuery)
     		VALUES
     		(1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''),
     		(2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''),
     		(3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''),
     		(4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'),
     		(5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');
    
  2. Veritabanından Toplu Kopyalama şablonuna gidin. 1. adımda oluşturduğunuz dış denetim tablosuna yeni bir bağlantı oluşturun.

    Screenshot showing the creation of a new connection to the control table.

  3. Veri kopyaladığınız kaynak veritabanına yeni bir bağlantı oluşturun.

    Screenshot showing the creation of a new connection to the source database.

  4. Verileri kopyaladığınız hedef veri deposuna yeni bir bağlantı oluşturun.

    Screenshot showing the creation of a new connection to the destination store.

  5. Bu şablonu kullan'ı seçin.

  6. aşağıdaki örnekte gösterildiği gibi işlem hattını görürsünüz:

    Screenshot showing the pipeline.

  7. Hata Ayıkla'yı seçin, Parametreler'i girin ve son'u seçin.

    Screenshot showing the Debug button.

  8. Aşağıdaki örneğe benzer sonuçlar görürsünüz:

    Screenshot showing the result of the pipeline run.

  9. (İsteğe bağlı) Veri hedefi olarak "Azure Synapse Analytics" seçeneğini belirlediyseniz, Azure Synapse Analytics Polybase'in gerektirdiği şekilde hazırlama için Azure Blob depolamaya bir bağlantı girmeniz gerekir. Şablon, Blob depolamanız için otomatik olarak bir kapsayıcı yolu oluşturur. İşlem hattı çalıştırıldıktan sonra kapsayıcının oluşturulup oluşturulmadığını denetleyin.

    Screenshot showing the Polybase setting.