Ho una fabbrica di dati con un'attività condotta esemplare in questo modo:dati Azure fabbrica attività copia da bagagli a SQL: si blocca a 70000 righe
{
"type": "Copy",
"name": "Copy from storage to SQL",
"inputs": [
{
"name": "storageDatasetName"
}
],
"outputs": [
{
"name": "sqlOutputDatasetName"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink"
}
},
"policy": {
"concurrency": 1,
"retry": 3
},
"scheduler": {
"frequency": "Month",
"interval": 1
}
}
I dati di input è di circa 90 MB di dimensione, circa 1,5 milioni di righe , suddiviso in ca. 20 x 4,5 MB di file BLOB di blocco in Archiviazione di Azure. Ecco un esempio dei dati (CSV):
A81001,1,1,1,2,600,3.0,0.47236654,141.70996,0.70854986 A81001,4,11,0,25,588,243.0,5.904582,138.87576,57.392536 A81001,7,4,1,32,1342,278.0,7.5578647,316.95795,65.65895
Il lavandino è un Azure SQL Server di tipo S2, che è valutato a 50 DTU. Ho creato una semplice tabella con i tipi di dati sensibili, e senza chiavi, indici o niente di eccezionale, solo colonne:
CREATE TABLE [dbo].[Prescriptions](
[Practice] [char](6) NOT NULL,
[BnfChapter] [tinyint] NOT NULL,
[BnfSection] [tinyint] NOT NULL,
[BnfParagraph] [tinyint] NOT NULL,
[TotalItems] [int] NOT NULL,
[TotalQty] [int] NOT NULL,
[TotalActCost] [float] NOT NULL,
[TotalItemsPerThousand] [float] NOT NULL,
[TotalQtyPerThousand] [float] NOT NULL,
[TotalActCostPerThousand] [float] NOT NULL
)
La fonte, lavandino e fabbrica i dati sono tutti nella stessa regione (Nord Europa).
Secondo Microsoft 'Copy activity performance and tuning guide', per Azure Storage Source e Azure SQL S2 sink, dovrei ottenere circa 0.4 MBps. Secondo il mio calcolo, ciò significa che 90 MB dovrebbero essere trasferiti in circa mezz'ora (giusto?).
per qualche motivo copie 70.000 righe molto rapidamente, quindi sembra bloccarsi. Utilizzando SQL Management Studio posso vedere il numero di righe nella tabella del database è esattamente 70.000 e non è affatto aumentato in 7 ore. Eppure il compito copia è ancora in esecuzione senza errori:
Tutte le idee perché questo è appeso a 70.000 righe? Non riesco a vedere nulla di insolito nella 70.001 ° riga di dati che potrebbe causare un problema. Ho provato a distruggere la fabbrica di dati e ricominciare da capo, e ho sempre lo stesso comportamento. Ho un'altra attività di copia con una tabella più piccola (8000 righe), che termina in 1 minuto.
questo è ottimo, ma come diavolo ci sei riuscito ?! – m1nkeh
Ho dovuto eseguire manualmente la scansione dei miei file di dati dalla riga 70.000 alla ricerca di eventuali problemi! Fortunatamente il valore vuoto/nullo si è distinto: p Ho elaborato in seguito che è possibile modificare la dimensione del batch, ad es. a 100, il che significa che si bloccherà su un numero di riga che è al massimo a 100 righe dal problema –