Caricare dati con Integration Services in Parallel Data Warehouse
Fornisce informazioni di riferimento e di implementazione per il caricamento dei dati in Parallel Data Warehouse (PDW) utilizzando i pacchetti SQL Server Integration Services (SSIS).
Nozioni di base
Integration Services è il componente di SQL Server per l'estrazione, la trasformazione e il caricamento (ETL) ad alte prestazioni dei dati, ed è comunemente usato per popolare e aggiornare un data warehouse.
L'adattatore di destinazione PDW è un componente di Integration Services che consente di caricare i dati in PDW utilizzando i pacchetti dtsx di Integration Services. In un flusso di lavoro di pacchetti per la piattaforma di strumenti analitici (PDW), è possibile unire i dati da più fonti e caricarli su più destinazioni. I caricamenti avvengono in parallelo, sia all'interno di un pacchetto sia tra più pacchetti in esecuzione contemporaneamente, fino a un massimo di 10 caricamenti paralleli sullo stesso strumento.
Oltre alle attività qui descritte, è possibile utilizzare altre funzioni di Integration Services per filtrare, trasformare, analizzare e pulire i dati prima di caricarli nel data warehouse. È inoltre possibile migliorare il flusso di lavoro del pacchetto mediante l’esecuzione di istruzioni SQL, pacchetti figlio o inviando posta.
Per la documentazione completa di Integration Services, vedere SQL Server Integration Services.
Metodi per l'esecuzione di un pacchetto di Integration Services
Utilizzare uno di questi metodi per eseguire un pacchetto di Integration Services.
Eseguire Business Intelligence Development Studio (BIDS) in SQL Server 2008 R2
Per eseguire il pacchetto da BIDS, fare clic con il pulsante destro del mouse sul pacchetto e scegliere Esegui pacchetto.
Per impostazione predefinita, BIDS esegue pacchetti usando file binari a 64 bit. Ciò è determinato dalla proprietà del pacchetto Run64BitRuntime. Per impostare questa proprietà, andare su Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà. Nelle pagine delle proprietà di Integration Services, andare su configurazione Proprietà e selezionare Debug. Verrà visualizzata la proprietà Run64BitRuntime in Opzioni di debug. Per usare runtime a 32 bit, impostare su False. Per usare runtime a 64 bit, impostare su True.
Da SQL Server 2012, eseguire SQL Server Data Tools
Per eseguire il pacchetto da SQL Server Data Tools, fare clic con il pulsante destro del mouse sul pacchetto e scegliere Esegui pacchetto.
Effettuare l’esecuzione da PowerShell
Per eseguire il pacchetto da Windows PowerShell, usando l'utilità dtexec: dtexec /FILE <packagePath>
Ad esempio, dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Eseguire da un prompt dei comandi di Windows
Per eseguire il pacchetto da un prompt dei comandi di Windows, usando l'utilità dtexec: dtexec /FILE <packagePath>
Ad esempio: dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"
Tipo di dati
Quando si usa Integration Services per caricare i dati da un'origine dati a un database SQL Server PDW, i dati vengono prima mappati dai dati di origine ai tipi di dati di Integration Services. In questo modo è possibile eseguire il mapping dei dati di più origini a un set comune di tipi di dati.
I dati vengono quindi mappati da Integration Services ai tipi di dati SQL Server PDW. Per ogni tipo di dati SQL Server PDW, la tabella seguente elenca i tipi di dati Integration Services che è possibile convertire nel tipo di dati SQL Server PDW.
Tipo di dati PDW | Tipi di dati Integration Services che vengono mappati come dati PDW |
---|---|
BIT | DT_BOOL |
bigint | DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4 |
CHAR | DT_STR |
DATE | DT_DBDATE |
DATETIME | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIME2 | DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 |
DATETIMEOFFSET | DT_WSTR |
DECIMAL | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
FLOAT | DT_R4, DT_R8 |
INT | DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2 |
MONEY | DT_CY |
NCHAR | DT_WSTR |
NUMERIC | DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8 |
NVARCHAR | DT_WSTR, DT_STR |
REAL | DT_R4 |
SMALLDATETIME | DT_DBTIMESTAMP2 |
SMALLINT | DT_I1, DT_I2, DT_UI1 |
SMALLMONEY | DT_R4 |
ORA | DT_WSTR |
TINYINT | DT_I1 |
VARBINARY | DT_BYTES |
VARCHAR | DT_STR |
Supporto limitato per la precisione dei tipi di dati
PDW genera un errore di convalida se si esegue il mapping di una colonna di input DT_NUMERIC o DT_DECIMAL contenente un valore con precisione maggiore di 28.
tipi di dati non supportati
SQL Server PDW non supporta i tipi di dati di Integration Services seguenti:
DT_DBTIMESTAMPOFFSET
DT_DBTIME2
DT_GUID
DT_IMAGE
DT_NTEXT
DT_TEXT
Per caricare colonne che contengono dati di questo tipo in SQL Server PDW, è necessario aggiungere una trasformazione Data Conversion upstream del flusso di dati per convertire i dati in un tipo di dati compatibile.
Autorizzazioni
Per eseguire un pacchetto di caricamento di Integration Services, è necessario:
Autorizzazione LOAD per il database.
Autorizzazioni INSERT, UPDATE, DELETE applicabili alla tabella di destinazione.
Se si usa un database di staging, l'autorizzazione CREATE per il database di staging. Questo permette di creare una tabella temporanea.
Se non viene usato alcun database di staging, l'autorizzazione CREATE per il database di destinazione. Questo permette di creare una tabella temporanea.
Osservazioni generali
Quando un pacchetto Integration Services ha più destinazioni SQL Server PDW in esecuzione e una delle connessioni viene conclusa, Integration Services smette di inviare dati a tutte le destinazioni SQL Server PDW.
Limitazioni e restrizioni
Per un pacchetto di Integration Services, il numero di destinazioni SQL Server PDW per la stessa origine dati è limitato dal numero massimo di carichi attivi. Il valore massimo è preconfigurato e non è configurabile dall'utente.
Ogni destinazione del pacchetto di Integration Services per la stessa origine dati viene conteggiato come un unico carico quando il pacchetto è in esecuzione. Si supponga ad esempio che il numero massimo di caricamenti attivi sia 10. Il pacchetto non verrà eseguito se tenta di aprire 11 o più destinazioni per la stessa origine dati.
Più pacchetti possono essere eseguiti simultaneamente, purché ogni pacchetto non usi più dei carichi attivi massimi. Ad esempio, se il numero massimo di caricamenti attivi è 10, è possibile eseguire contemporaneamente due pacchetti che utilizzino entrambi 10 destinazioni. Mentre un pacchetto viene eseguito, l'altro rimane in attesa nella coda di caricamento.
Se il numero di carichi nella coda di caricamento supera il numero massimo di caricamenti in coda, il pacchetto non verrà eseguito. Ad esempio, se il numero massimo di carichi è 10 per appliance e il numero massimo di caricamenti in coda è 40 per appliance, è possibile eseguire simultaneamente cinque pacchetti di Integration Services che ogni 10 destinazioni aperte. Se si tenta di eseguire un sesto pacchetto, non verrà eseguito.
Importante
L'uso di un'origine dati OLE DB in SSIS con l'adattatore di destinazione PDW può causare un danneggiamento dei dati se la tabella di origine contiene colonne char e varchar con collation SQL. È consigliabile usare un'origine ADO.NET se la tabella di origine contiene colonne char o varchar con collation SQL.
Comportamento di blocco
Quando si caricano dati con Integration Services, la piattaforma di strumenti analitici (PDW) usa blocchi a livello di riga per aggiornare i dati nella tabella di destinazione. Ciò significa che ogni riga è bloccata per la lettura e la scrittura durante l'aggiornamento. Le righe nella tabella di destinazione non vengono bloccate mentre i dati vengono caricati nella tabella di staging.
Esempi
R. Caricamento semplice da file flat
La procedura dettagliata seguente illustra un semplice caricamento dei dati usando Integration Services per caricare dati di file flat in un'appliance SQL Server PDW. In questo esempio si presuppone che Integration Services sia già stato installato nel computer client e che la destinazione SQL Server PDW sia stata installata, come descritto in precedenza.
In questo esempio si caricherà nella Orders
tabella con il DDL seguente. La Orders
tabella fa parte del LoadExampleDB
database.
CREATE TABLE LoadExampleDB.dbo.Orders (
id INT,
city varchar(25),
lastUpdateDate DATE,
orderDate DATE)
;
Ecco i dati di caricamento:
id city lastUpdateDate orderdate
--------- -------------- ------------------ ----------
1 Seattle 2010-05-01 2010-01-01
2 Denver 2002-06-25 1999-01-02
In preparazione per il caricamento, creare il exampleLoad.txt
file flat contenente i dati di caricamento:
id,city,lastUpdateDate,orderDate
1,Seattle,2010-05-01,2010-01-01
2,Denver,2002-06-25,1999-01-02
Prima di tutto, creare un pacchetto di Integration Services seguendo i passaggi seguenti:
In SQL Server Data Tools (SSDT) selezionare File, Nuovo e quindi Progetto. Selezionare Progetto di Integration Services nelle opzioni elencate. Assegnare un nome al progetto
ExampleLoad
e fare clic su OK.Fare clic sulla scheda Flusso di controllo e quindi trascinare l'attività Flusso di dati dalla casella degli strumenti al riquadro Flusso di controllo.
Fare clic sulla scheda Flusso di dati e quindi trascinare Origine file flat dalla casella degli strumenti al riquadro Flusso di dati. Fare doppio clic sulla casella appena creata per aprire l'Editor origine file flat.
Fare clic su gestione connessione e quindi su Nuovo.
Nella casella Nome gestione connessione, inserire un nome intuitivo per la connessione. Per questo esempio,
Example Load Flat File CM
.Fare clic su Sfoglia e selezionare il
ExampleLoad.txt
file dal computer locale.Poiché il file flat contiene una riga con nomi di colonna, fare clic sui nomi delle colonne nella casella della prima riga di dati.
Fare clic su Colonne nella colonna sinistra e visualizzare in anteprima i dati che verranno caricati per assicurarsi che i nomi e i dati delle colonne siano stati interpretati correttamente.
Fare clic su Avanzate nella colonna a sinistra. Fare clic su ogni nome di colonna per esaminare il tipo di dati che è stato associato ai dati. Modificare la casella in modo che i tipi di dati caricati siano compatibili con i tipi di colonna di destinazione.
Fare clic su OK per salvare la gestione connessione.
Fare clic su OK per uscire dall'editor origine file flat.
Specificare la destinazione del flusso di dati.
Trascinare la destinazione SQL Server PDW dalla casella degli strumenti al riquadro Flusso di dati.
Fare doppio clic sulla casella appena creata per caricare l'Editor destinazione SQL Server PDW.
Fare clic sulla freccia giù accanto a Gestione connessione.
Selezionare Crea nuova connessione.
Immettere le informazioni relative al server, all'utente, alla password e al database di destinazione con informazioni specifiche dell'appliance. Di seguito sono riportati alcuni esempi. Quindi fare clic su OK.
Per le connessioni InfiniBand, Nome server: immettere < nome-apparecchio>-SQLCTL01,17001.
Per connessioni Ethernet, Nome server: immettere l'indirizzo IP del cluster del nodo di controllo, virgola, porta 17001. Ad esempio: 10.192.63.134,17001.
Utente
user1
:Password
password1
:Database di destinazione:
LoadExampleDB
Selezionare la tabella di destinazione:
Orders
.Selezionare Aggiungi come modalità di caricamento e fare clic su OK.
Specificare il flusso di dati dall'origine alla destinazione.
Nel riquadro Flusso di dati trascinare la freccia verde dalla casella Origine file flat alla casella Destinazione SQL Server PDW.
Fare doppio clic sulla casella Destinazione SQL Server PDW in modo da visualizzare di nuovo l'Editor destinazione SQL Server PDW. I nomi delle colonne verranno visualizzati dal file flat a sinistra, in Colonne di input non mappate. I nomi delle colonne della tabella di destinazione verranno visualizzati a destra in Colonne di destinazione non mappate. Eseguire il mapping delle colonne trascinando o facendo doppio clic sui nomi delle colonne corrispondenti negli elenchi Colonne di input non mappate e Colonne di destinazione non mappate nella casella Colonne mappate. Per salvare le impostazioni, fare clic su OK.
Per salvare il pacchetto, fare clic su Salva dal menù File.
Eseguire il pacchetto in Integration Services del computer.
In Integration Services Solution Explorer (colonna di destra), fare clic con il pulsante destro del mouse
Package.dtsx
e selezionare Esegui.Il pacchetto verrà eseguito e lo stato di avanzamento ed eventuali errori verranno visualizzati nel riquadro Stato. Utilizzare un client SQL per confermare il carico, oppure monitorare il carico tramite la console di amministrazione di SQL Server PDW.
Vedi anche
Creare un'attività di script che usa l'adattatore di destinazione PDW SSIS
SQL Server Integration Services
Progettazione e implementazione di pacchetti (Integration Services)
Esercitazione: Creazione di un pacchetto di base tramite una procedura guidata
Introduzione (Integration Services)
Esempio di generazione dinamica dei pacchetti
Progettazione di pacchetti SSIS per parallelismo (video di SQL Server)
Miglioramento dei caricamenti incrementali con Change Data Capture
Trasformazione Dimensione a modifica lenta
Attività Inserimento bulk