簡體   English   中英

將表格從Azure SQL數據庫遷移到Azure數據湖

[英]Migrating tables from azure SQL database to Azure data lake

我想將所有表從Azure SQL數據庫完全遷移到Azure Data Lake。 我怎樣才能做到這一點。 請給出一些方案,以便我可以完全搬到蔚藍的數據湖。 提前致謝。

我也可以通過SSIS做到這一點嗎?

如果您不想對其進行調度,並且不想在Azure Data Lake Store中移動所有表,則可以直接從U-SQL查詢表,並通過ADL Store中的U-SQL輸出器將其輸出。

這是一個執行此操作的教程: http : //eatcodelive.com/2015/11/21/querying-azure-sql-database-from-an-azure-data-lake-analytics-u-sql-script/

看看Azure數據工廠。 就像Azure中的SSIS。 請參閱https://azure.microsoft.com/zh-cn/documentation/articles/data-factory-introduction/

請參閱https://azure.microsoft.com/zh-cn/documentation/articles/data-factory-azure-datalake-connector/ ,以獲取將數據移至Azure Data Lake的教程。

除了使用Azure Data Factory和U-SQL,您還可以使用在HDI群集上運行的sqoop- https: //azure.microsoft.com/zh-CN/g/documentation/articles/data-lake-store-data-transfer -sql-sqoop /

您現在不能使用SSIS。 我們正在努力實現這種支持。 啟用該功能后,我們將更新此線程以及發布相應的文檔。

謝謝,Sachin Sheth Azure數據湖項目經理

如此處的答案數量所示,您有多種選擇,但這取決於您希望數據最終采用哪種格式以及要執行的工作量。 您當前的數據位於數據庫中,這意味着它具有高度結構化強大的數據類型以及索引關系選項。 如果您改用其他格式,則會丟失其中的部分或大部分內容,因此請確定要使用哪種格式? 例如數據庫表,平面文件,外部表,U-SQL表。 U-SQL(IMHO)最適合希望將關系數據與非關系數據混合或僅處理非關系數據混合的分析工作負載,即,基本上可以使用兩種C#表達式來完成普通T-SQL無法完成的工作或大規模定制的輸出器,處理器等。

讓我們通過以下方法來研究其中一些方法:

  1. 將數據保留在Azure DB中的位置,並使用Azure Data Lake Analytics(ADLA)和U-SQL的功能“查詢數據所在的位置”。 您甚至可以使用聯合表(也稱為外部表)或創建視圖。

優點:數據不會從原始數據庫中移出,並且可以使用U-SQL與湖中的其他數據合並。

缺點:必須編寫其他代碼

DROP VIEW IF EXISTS dbo.viewOnAzureDB;

CREATE VIEW dbo.viewOnAzureDB
AS
SELECT col1,
       col2,
       col3,
       col4
FROM EXTERNAL yourExternalDataSource LOCATION "dbo.yourTable";
  1. 使用Azure數據工廠將數據從Azure DB中的本機表格式移動到Data Lake中的平面文件格式。

優點:可以直接使用復制向導將數據從Azure DB復制到湖中的平面文件中。 缺點:您將失去從數據庫表中獲得的強大的數據類型,索引和關系。

  1. U-SQL表使用U-SQL在Azure數據湖中創建內部表。

優點: U-SQL表可以被索引和分區,並且具有強大的數據類型。

缺點:必須編寫附加代碼,沒有關系

// U-SQL CTAS
CREATE TABLE dbo.CTASOnAzureDBTable
(
    INDEX cdx_CTASOnAzureDBTable
    CLUSTERED(col1)
    DISTRIBUTED BY
    ROUND ROBIN
)
AS
SELECT *
FROM dbo.viewOnAzureDB;

// U-SQL table
CREATE TABLE IF NOT EXISTS dbo.CTASOnAzureDBTable2
(
    col1 int,
    col2 DateTime?, // ? means nullable,
    col3 string,
    col4 bool,

    INDEX cdx_CTASOnAzureDBTable2
    CLUSTERED(col1)
    DISTRIBUTED BY
    ROUND ROBIN
);

我希望這可以幫助您考慮一些選項,也許可以確切地考慮為什么要遷移到數據湖以及從中獲得什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM