簡體   English   中英

從Blob存儲創建Azure SQL數據庫中的表

[英]Create a table in Azure SQL Database from Blob Storage

我需要從Azure數據倉庫中取出大表,然后將它們移到獨立的Azure SQL數據庫中。 我無法使數據工廠在我的場景中足夠快地工作。 我可以通過外部表從我的數據倉庫中獲取我的表到Blob存儲。 我無法弄清楚的是如何使用外部數據源在Azure SQL數據庫上創建外部表到我的Blob存儲。

這是用於將表格放入blob存儲的格式文件,外部數據源和外部表:

CREATE EXTERNAL FILE FORMAT [DelimitedText] 
WITH (
    FORMAT_TYPE = DELIMITEDTEXT, 
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = N'~¶~', 
        USE_TYPE_DEFAULT = False
    ), 
    DATA_COMPRESSION = N'org.apache.hadoop.io.compress.GzipCodec')
GO

CREATE EXTERNAL DATA SOURCE [myDataSource] 
WITH (
    TYPE = HADOOP, 
    LOCATION = N'wasbs://<blob container>@<storage account>.blob.core.windows.net', 
    CREDENTIAL = [myCredential])
GO

CREATE EXTERNAL TABLE [dbo].[myTable] 
WITH (
    DATA_SOURCE = [myDataSource] ,
    LOCATION = N'MY_FOLDER/',
    FILE_FORMAT = [DelimitedText]
)
AS
SELECT *
FROM dbo.mytable

我能夠在Azure SQL數據庫中創建的唯一外部數據源是TYPE=SHARD_MAP_MANAGER是正確還是必要? 這個鏈接看起來我應該能夠使用TYPE=HADOOP創建一個外部數據源,但是我得到一個“EXTERNAL附近的錯誤”錯誤。 我也無法創建外部文件格式。 這可能在Azure SQL數據庫中嗎?

https://msdn.microsoft.com/en-us/library/dn935022.aspx#Examples:Azure SQL數據庫

最后,我正在嘗試為我的blob存儲創建一個外部表,然后從該blob插入到我的Azure SQL數據庫中的表中。 然后放下容器。

無法在Azure SQL數據庫上使用PolyBase功能,僅在本地 SQL Server 2016數據庫中使用。

文章中有一個注釋:

僅在SQL Server 2016,Azure SQL數據倉庫和並行數據倉庫上支持PolyBase。 僅在Azure SQL數據庫v12或更高版本上支持彈性數據庫查詢。

相反,您可以創建Azure SQL數據倉庫 (如果您願意,可以在同一個Azure SQL Server上)。 如果您繼續使用該指南,該指南將適合您。 它不適用於Hadoop( https://msdn.microsoft.com/en-us/library/mt703314.aspx ),但據我了解您的問題,您是從Azure blob存儲導入的,這將適用於Azure SQL數據倉庫。

Azure SQL數據庫最近獲得了使用BULK INSERT或OPENROWSET從Azure Blob存儲加載文件的功能。 這里開始。

從鏈接文章中獲取的兩個簡單代碼示例:

BULK INSERT Product
FROM 'data/product.dat'
WITH ( DATA_SOURCE = 'MyAzureBlobStorageAccount');

SELECT Color, count(*)
FROM OPENROWSET(BULK 'data/product.bcp', DATA_SOURCE = 'MyAzureBlobStorage',
 FORMATFILE='data/product.fmt', FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage') as data
GROUP BY Color;

暫無
暫無

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

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