2017-01-20 29 views
6

Potrzebuję pobrać duże tabele z naszej hurtowni danych Azure i przenieść je do samodzielnych baz danych SQL Azure. Nie byłem w stanie sprawić, by Data Factory działała wystarczająco szybko, aby stworzyć mój scenariusz. Mogę dostać moje tabele do magazynu Blob z mojej hurtowni danych poprzez zewnętrzne tabele. Nie mogę się dowiedzieć, jak utworzyć zewnętrzną tabelę w bazie danych Azure SQL Database z zewnętrznym źródłem danych do mojej pamięci Blob.Tworzenie tabeli w bazie danych Azure SQL z magazynu Blob

Jest to format pliku, zewnętrznego źródła danych, a tabela zewnętrzna używany do dostać mój stół do przechowywania 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 

Jedynym zewnętrznym źródłem danych Jestem w stanie stworzyć w bazie danych SQL Azure jest z TYPE=SHARD_MAP_MANAGER jest to prawo czy konieczne? Ten link wygląda tak, jakbym był w stanie stworzyć zewnętrzne źródło danych przy użyciu TYPE=HADOOP, ale pojawia się błąd "błąd bliski EXTERNAL". Nie mogę również utworzyć FORMATU PLIKU ZEWNĘTRZNEGO. Czy to możliwe w Bazie danych Azure SQL?

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

Ostatecznie Próbuję utworzyć tabelę zewnętrznego do mojego przechowywania blob, a następnie wstawić do tabeli w mojej bazy danych SQL Azure od tego blob. Następnie upuść pojemnik.

Odpowiedz

4

Nie jest możliwe, aby korzystać z funkcji PolyBase na Azure SQL Database, tylko w Server 2016 bazy danych SQL on-przesłance.

W the article jest uwaga:

PolyBase jest obsługiwana tylko na SQL Server 2016, SQL Azure hurtowni danych i Parallel Data Warehouse. Zapytania Elastic Database są obsługiwane tylko w wersji Azure SQL Database v12 lub nowszej.

Zamiast tego można utworzyć Azure SQL Data Warehouse (na tym samym serwerze Azure SQL Server, jeśli chcesz). Przewodnik będzie działał dla ciebie, jeśli będziesz go używał zamiast tego. To nie będzie działać dla Hadoop (https://msdn.microsoft.com/en-us/library/mt703314.aspx), ale rozumiem, że twoje pytanie importujesz z magazynu BLOB Azure i to będzie działało w hurtowni danych Azure SQL.

1

Baza danych SQL Azure zyskała ostatnio możliwość ładowania plików z magazynu Azure Blob przy użyciu BULK INSERT lub OPENROWSET. Uruchom here.

Dwa proste przykłady kodu zaczerpnięte z połączonej artykuł:

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;