Trasformazione del server di distribuzione di dati bilanciatiBalanced Data Distributor Transformation

La trasformazione del server di distribuzione di dati bilanciati (BDD) sfrutta le funzionalità di elaborazione simultanea delle CPU più recenti.The Balanced Data Distributor (BDD) transformation takes advantage of concurrent processing capability of modern CPUs. Vengono distribuiti in modo uniforme i buffer di righe in entrata in output di thread distinti.It distributes buffers of incoming rows uniformly across outputs on separate threads. Tramite i thread distinti di ogni percorso di output, con il componente BDD vengono migliorate le prestazioni di un pacchetto SSIS in computer con più processori e più core.By using separate threads for each output path, the BDD component improves the performance of an SSIS package on multi-core or multi-processor machines.

Nel diagramma seguente viene illustrato un esempio semplice di utilizzo della trasformazione BDD.The following diagram shows a simple example of using the BDD transformation. In questo esempio, tramite la trasformazione BDD viene selezionato un buffer della pipeline per volta dai dati di input di un'origine del file flat e viene inviato a uno dei tre percorsi di output in base a un meccanismo round robin.In this example, the BDD transformation picks one pipeline buffer at a time from the input data from a flat file source and sends it down one of the three output paths in a round robin fashion. In SQL Server Data Tools è possibile controllare i valori di una proprietà DefaultBufferSize(dimensioni predefinite del buffer della pipeline) e di una proprietà DefaultBufferMaxRows(numero massimo di righe predefinito in un buffer della pipeline) nella finestra Proprietà in cui sono visualizzate le proprietà di un'attività Flusso di dati.In SQL Server Data Tools, you can check the values of a DefaultBufferSize(default size of the pipeline buffer) and DefaultBufferMaxRows(default maximum number of rows in a pipeline buffer) in the Properties window displaying properties of a data flow task.

Database di distribuzione di dati bilanciatiBalanced Data Distributor

La trasformazione del server di distribuzione di dati bilanciati consente di migliorare le prestazioni di un pacchetto in uno scenario che soddisfa i requisiti seguenti:The Balanced Data Distributor transformation helps improve performance of a package in a scenario that satisfies the following conditions:

  1. Sono presenti grandi quantità di dati in entrata nella trasformazione BDD.There is large amount of data coming into the BDD transformation. Se le dimensioni dei dati sono limitate e solo un buffer è in grado di contenere i dati, non è presente alcun punto quando si utilizza la trasformazione BDD.If the data size is small and only one buffer can hold the data, there is no point in using the BDD transformation. Se le dimensioni dei dati sono grandi e sono necessari diversi buffer per contenerli, tramite BDD è possibile elaborare i buffer di dati in parallelo tramite thread distinti.If the data size is large and several buffers are required to hold the data, BDD can efficiently process buffers of data in parallel by using separate threads.

  2. I dati possono essere letti più velocemente rispetto al resto del flusso di dati elaborabile.The data can be read faster than the rest of the data flow can process it. In questo scenario, le trasformazioni effettuate nei dati vengono eseguite lentamente rispetto alla velocità di ingresso dei dati.In this scenario, the transformations that are performed on the data run slowly compared to the rate at which data is coming. Se il collo di bottiglia si trova in corrispondenza della destinazione, anche quest'ultima deve essere parallelizzabile.If the bottleneck is at the destination, the destination must be parallelizable though.

  3. I dati non devono essere ordinati.The data does not need to be ordered. Ad esempio, se i dati devono rimanere ordinati, non è necessario suddividerli utilizzando la trasformazione BDD.For example, if the data needs to stay sorted, you should not split the data using the BDD transformation.

    Si noti che se il collo di bottiglia in un pacchetto SSIS è dovuto alla velocità con cui i dati possono essere letti dall'origine, tramite il componente BDD non è possibile migliorare le prestazioni.Note that if the bottleneck in an SSIS package is due to the rate at which data can be read from the source, the BDD component does not help improve the performance. Se il collo di bottiglia in un pacchetto SSIS si verifica perché la destinazione non supporta il parallelismo, non è possibile avvalersi del supporto di BDD. Tuttavia, è possibile eseguire tutte le trasformazioni in parallelo e utilizzare la trasformazione Unione input multipli per combinare i dati di output che provengano da percorsi di output differenti della trasformazione BDD prima di inviare i dati alla destinazione.If the bottleneck in an SSIS package is because the destination does not support parallelism, the BDD does not help; however, you can perform all the transformations in parallel and use the Union All transformation to combine the output data coming out of different output paths of the BDD transformation before sending the data to the destination.

Importante

Per una presentazione con una demo sull'utilizzo della trasformazione, vedere il video relativo al server di distribuzione di dati bilanciati nella libreria TechNet.See the Balanced Data Distributor video on the TechNet Library for a presentation with a demo on using the transformation.