Caricare dati da SQL Server in Azure SQL Data Warehouse (file flat)Load data from SQL Server into Azure SQL Data Warehouse (flat files)

Per set di dati di piccole dimensioni è possibile usare l'utilità della riga di comando bcp per esportare i dati da SQL Server e quindi caricarli direttamente in Azure SQL Data Warehouse.For small data sets, you can use the bcp command-line utility to export data from SQL Server and then load it directly to Azure SQL Data Warehouse.

In questa esercitazione si userà bcp per eseguire queste operazioni:In this tutorial, you will use bcp to:

  • Esportare una tabella da SQL Server usando il comando bcp out oppure creare un semplice file di esempio.Export a table from from SQL Server by using the bcp out command (or create a simple sample file)
  • Importare la tabella da un file flat in SQL Data Warehouse.Import the table from a flat file to SQL Data Warehouse.
  • Creare statistiche sui dati caricati.Create statistics on the loaded data.

Prima di iniziareBefore you begin

PrerequisitiPrerequisites

Per eseguire questa esercitazione, è necessario:To step through this tutorial, you need:

  • Un database di SQL Data WarehouseA SQL Data Warehouse database
  • Utilità della riga di comando bcp installataThe bcp command-line utility installed
  • Utilità della riga di comando sqlcmd installataThe sqlcmd command-line utility installed

È possibile scaricare le utilità bcp e sqlcmd dall'Area download Microsoft.You can download the bcp and sqlcmd utilities from the Microsoft Download Center.

Dati in formato ASCII o UTF-16Data in ASCII or UTF-16 format

Se si prova a eseguire questa esercitazione con dati personalizzati, è necessario che i dati usino la codifica ASCII o UTF-16, perché bcp non supporta UTF-8.If you are trying this tutorial with your own data, your data needs to use the ASCII or UTF-16 encoding since bcp does not support UTF-8.

PolyBase supporta UTF-8 ma non supporta ancora UTF-16.PolyBase supports UTF-8 but doesn't yet support UTF-16. Si noti che se si vuole associare bcp con PolyBase, sarà necessario trasformare i dati in UTF-8 dopo l'esportazione da SQL Server.Note that if you want to combine bcp with PolyBase you will need to transform the data to UTF-8 after it is exported from SQL Server.

1. Creare una tabella di destinazione1. Create a destination table

Definire una tabella in SQL Data Warehouse da usare come tabella di destinazione per il caricamento.Define a table in SQL Data Warehouse that will be the destination table for the load. Le colonne della tabella devono corrispondere ai dati in ogni riga del file di dati.The columns in the table must correspond to the data in each row of your data file.

Per creare una tabella, aprire un prompt dei comandi e usare sqlcmd.exe per eseguire i comandi seguenti:To create a table, open a command prompt and use sqlcmd.exe to run the following command:

sqlcmd.exe -S <server name> -d <database name> -U <username> -P <password> -I -Q "
    CREATE TABLE DimDate2
    (
        DateId INT NOT NULL,
        CalendarQuarter TINYINT NOT NULL,
        FiscalQuarter TINYINT NOT NULL
    )
    WITH
    (
        CLUSTERED COLUMNSTORE INDEX,
        DISTRIBUTION = ROUND_ROBIN
    );
"

2. Creare un file di dati di origine2. Create a source data file

Aprire il Blocco note, copiare le righe di dati seguenti in un nuovo file di testo e quindi salvare il file nella directory temporanea locale, C:\Temp\DimDate2.txt.Open Notepad and copy the following lines of data into a new text file and then save this file to your local temp directory, C:\Temp\DimDate2.txt. I dati hanno formato ASCII.This data is in ASCII format.

20150301,1,3
20150501,2,4
20151001,4,2
20150201,1,3
20151201,4,2
20150801,3,1
20150601,2,4
20151101,4,2
20150401,2,4
20150701,3,1
20150901,3,1
20150101,1,3

(Facoltativo) Per esportare i dati personalizzati da un database di SQL Server, aprire un prompt dei comandi ed eseguire il comando seguente.(Optional) To export your own data from a SQL Server database, open a command prompt and run the following command. Sostituire TableName, ServerName, DatabaseName, Username e Password con le informazioni personalizzate.Replace TableName, ServerName, DatabaseName, Username, and Password with your own information.

bcp <TableName> out C:\Temp\DimDate2_export.txt -S <ServerName> -d <DatabaseName> -U <Username> -P <Password> -q -c -t ','

3. Caricare i dati3. Load the data

Per caricare i dati, aprire un prompt dei comandi ed eseguire il comando seguente, sostituendo i valori per nome server, nome database, nome utente e password con le informazioni personalizzate.To load the data, open a command prompt and run the following command, replacing the values for Server Name, Database name, Username, and Password with your own information.

bcp DimDate2 in C:\Temp\DimDate2.txt -S <ServerName> -d <DatabaseName> -U <Username> -P <password> -q -c -t  ','

Usare questo comando per verificare che i dati siano stati caricati correttamente.Use this command to verify the data was loaded properly

sqlcmd.exe -S <server name> -d <database name> -U <username> -P <password> -I -Q "SELECT * FROM DimDate2 ORDER BY 1;"

I risultati dovrebbero avere l'aspetto seguente:The results should look like this:

DateIdDateId CalendarQuarterCalendarQuarter FiscalQuarterFiscalQuarter
2015010120150101 11 33
2015020120150201 11 33
2015030120150301 11 33
2015040120150401 22 44
2015050120150501 22 44
2015060120150601 22 44
2015070120150701 33 11
2015080120150801 33 11
2015080120150801 33 11
2015100120151001 44 22
2015110120151101 44 22
2015120120151201 44 22

4. Creare le statistiche4. Create statistics

SQL Data Warehouse non supporta ancora la creazione automatica o l'aggiornamento automatico delle statistiche.SQL Data Warehouse does not yet support auto-create or auto-update statistics. Per ottenere le prestazioni migliori per le query, è importante creare statistiche su tutte le colonne di tutte le tabelle dopo il primo caricamento o dopo qualsiasi modifica significativa ai dati.To get the best query performance, it's important to create statistics on all columns of all tables after the first load or after any substantial changes occur in the data. Per una spiegazione dettagliata delle statistiche, vedere Statistiche.For a detailed explanation of statistics, see Statistics.

Eseguire il comando seguente per creare le statistiche nella tabella appena caricata.Run the following command to create statistics on your newly loaded table.

sqlcmd.exe -S <server name> -d <database name> -U <username> -P <password> -I -Q "
    create statistics [DateId] on [DimDate2] ([DateId]);
    create statistics [CalendarQuarter] on [DimDate2] ([CalendarQuarter]);
    create statistics [FiscalQuarter] on [DimDate2] ([FiscalQuarter]);
"

5. Esportare i dati da SQL Data Warehouse5. Export data from SQL Data Warehouse

Se si vuole, è possibile esportare i dati appena caricati da SQL Data Warehouse.For fun, you can export the data that you just loaded back out of SQL Data Warehouse. Il comando per l'esportazione corrisponde esattamente all'esportazione da SQL Server.The command to export is exactly the same as exporting from SQL Server.

I risultati presentano tuttavia una differenza.However, there is a difference in the results. Poiché i dati vengono archiviati in posizioni distribuite in SQL Data Warehouse, quando si esportano i dati ogni nodo di calcolo scrive i rispettivi dati nel file di output.Since the data is stored in distributed locations within SQL Data Warehouse, when you export data each Compute node writes it data to the output file. L'ordine dei dati nel file di output sarà probabilmente diverso dall'ordine dei dati nel file di input.The order of the data in the output file is likely to be different than the order of the data in the input file.

Esportare una tabella e confrontare i risultati esportatiExport a table and compare exported results

Per visualizzare i dati esportati, aprire un prompt dei comandi ed eseguire questo comando usando parametri personalizzati.To see the exported data, open a command prompt and run this command using your own parameters. ServerName è il nome del server SQL logico di Azure.ServerName is the name of your Azure logical SQL Server.

bcp DimDate2 out C:\Temp\DimDate2_export.txt -S <Server Name> -d <Database Name> -U <Username> -P <password> -q -c -t ','

Per verificare che i dati siano stati esportati correttamente, aprire il nuovo file.You can verify the data was exported correctly by opening the new file. I dati nel file devono corrispondere al testo seguente, ma è probabile che abbiano un ordinamento diverso:The data in the file should match the text below, but will likely be sorted in a different order:

20150301,1,3
20150501,2,4
20151001,4,2
20150201,1,3
20151201,4,2
20150801,3,1
20150601,2,4
20151101,4,2
20150401,2,4
20150701,3,1
20150901,3,1
20150101,1,3

Esportare i risultati di una queryExport the results of a query

È possibile usare la funzione queryout di bcp per esportare i risultati di una query invece di esportare l'intera tabella.You can use the queryout function of bcp to export the results of a query instead of exporting the entire table.

Passaggi successiviNext steps

Per una panoramica sul caricamento, vedere Caricare i dati in SQL Data Warehouse.For an overview of loading, see Load data into SQL Data Warehouse. Per altri suggerimenti sullo sviluppo, vedere Panoramica sullo sviluppo per SQL Data Warehouse.For more development tips, see SQL Data Warehouse development overview. Per altre informazioni sulla creazione di una tabella in SQL Data Warehouse, vedere Panoramica delle tabelle o la sintassi di CREATE TABLE.See Table Overview or CREATE TABLE syntax for more information about creating a table on SQL Data Warehouse.