Ho una tabella 350MB abbastanza ampia con due colonne varchar (2000). Tramite un flusso di dati SSIS ci vogliono 60 minuti per caricare tramite la destinazione OLEDB "carico veloce" su Azure SQL DW. Ho cambiato la destinazione su quel flusso di dati come destinazione Azure Blob (da SSIS Azure feature pack) e lo stesso flusso di dati completato in 1,5 minuti (e Polybase da quel nuovo file flat impiega circa 2 minuti).Impostazioni di flusso di dati SSIS ottimali da caricare nella tabella stage in Azure SQL DW
Per un'altra fonte, ho un file flat da 1 GB esistente. Il flusso di dati SSIS in una destinazione OLEDB in SQL SQL di Azure richiede 90 minuti. Copia il file nella memoria BLOB e il caricamento di Polybase richiede 5 minuti.
SSIS è SSIS 2014 ed è in esecuzione su una macchina virtuale di Azure nella stessa area di SQL SQL di Azure. So che il carico di massa è molto più lento di Polybase poiché le canalizzazioni di carico bulk attraverso il nodo di controllo, ma Polybase è parallelizzato su tutti i nodi di calcolo. Ma quei numeri di carico in serie sono estremamente lenti.
Quali sono le impostazioni ottimali per il flusso di dati SSIS e la destinazione per caricare in una tabella stage di Azure SQL DW il più velocemente possibile tramite il caricamento di massa? In particolare mi interessa il valore ottimale per le seguenti impostazioni in aggiunta a tutte le altre impostazioni non sto prendendo in considerazione:
- tavolo Fase geometria = MUCCHIO (è il più veloce credo)
- impostazioni del flusso di dati:
- DefaultBufferMaxRows =?
- DefaultBufferSize =?
- impostazioni di destinazione OLE DB
- accesso ai dati mode = tabella o vista - caricamento rapido
- Tenere Identità = incontrollati
- Tenere Valori nulli I valori =?
- Blocco tabella =?
- Verifica vincoli =?
- Righe per lotto =?
- Dimensione massima commit inserto =?
Grazie Sonya. Nel flusso di dati che impiegava 60 minuti, passare la tabella stage da columnstore a HEAP lo rendeva 2-3 volte più veloce e massimizzava DefaultBufferSize (che a causa della larghezza della riga ha generato 10.000 buffer di riga anche se DefaultBufferMaxRows era 100.000) lo ha reso circa un altro 2-3 volte più veloce. Quindi ora funziona tra meno di 8 minuti. BDD non ha fatto una differenza significativa in questo particolare test (DWU400 con un utente mediumrc). Anche le altre impostazioni di destinazione del flusso di dati che ho provato non hanno fatto una differenza significativa. Penso che abbiamo trovato i due principali colpevoli. – GregGalloway