Come configurare Amazon RDS per SQL Server nell'attività di copia
Questo articolo descrive come utilizzare l'attività di copia in una pipeline di dati per copiare dati da Amazon RDS per SQL Server.
Configurazione supportata
Per la configurazione di ogni scheda nell'attività di copia, consultare rispettivamente le sezioni seguenti.
Generali
Consultare la guida sulle Impostazioni generali per configurare la scheda Impostazioni generali.
Origine
Le proprietà seguenti sono supportate per Amazon RDS per SQL Server nella scheda Origine di un'attività di copia.
Sono richieste le seguenti proprietà:
Tipo di archivio dati: selezionare Esterno.
Connessione: selezionare una connessione Amazon RDS per SQL Server dall'elenco delle connessioni. Se la connessione non esiste, creare una nuova connessione Amazon RDS per SQL Server selezionando Nuovo.
Tipo di connessione: selezionare Amazon RDS per SQL Server.
Usa query: specificare il modo in cui leggere i dati. È possibile scegliere Tabella, Query o Stored procedure. L'elenco seguente descrive la configurazione di ciascuna impostazione:
Tabella: leggere i dati dalla tabella specificata. Selezionare la tabella di origine dall'elenco a discesa o selezionare Modifica per immetterla manualmente.
Query: specificare la query SQL personalizzata per leggere i dati. Un esempio è
select * from MyTable
. In alternativa, selezionare l'icona a forma di matita da modificare nell'editor di codice.Stored procedure: usare la stored procedure che legge i dati dalla tabella di origine. L'ultima istruzione SQL deve essere un'istruzione SELECT nella stored procedure.
Nome della stored procedure: selezionare la stored procedure o specificare manualmente il nome della stored procedure quando si seleziona Modifica per leggere i dati dalla tabella di origine.
Parametri della stored procedure: specificare i valori per i parametri della stored procedure. I valori consentiti sono coppie nome-valore. I nomi e le maiuscole/minuscole dei parametri devono corrispondere ai nomi e alle maiuscole/minuscole dei parametri della stored procedure. È possibile selezionare Importa parametri per ottenere i parametri della stored procedure.
In Avanzato è possibile specificare i seguenti campi:
Timeout query (minuti): specificare il timeout per l'esecuzione del comando di query, il valore predefinito è 120 minuti. Se per questa proprietà è impostato un parametro, i valori consentiti sono intervalli di tempo, ad esempio "02:00:00" (120 minuti).
Livello di isolamento: specificare il comportamento di blocco delle transazioni per l'origine SQL. I valori consentiti sono: Read committed, Read uncommitted, Repeatable read, Serializable, Snapshot. Se non è specificato, viene utilizzato il livello di isolamento predefinito del database. Per altri dettagli, vedere enumerazione IsolationLevel.
Opzione di partizione: specificare le opzioni di partizionamento dei dati utilizzate per caricare i dati da Amazon RDS per SQL Server. I valori consentiti sono: Nessuna (impostazione predefinita), Partizioni fisiche della tabella e Intervallo dinamico. Quando è abilitata un'opzione di partizione (ovvero diversa da Nessuna), il grado di parallelismo per caricare contemporaneamente i dati da Amazon RDS per SQL Server è controllato dal Grado di parallelismo della copia nella scheda delle impostazioni dell'attività di copia.
Nessuna: scegliere questa impostazione per non usare una partizione.
Partizioni fisiche della tabella: quando si utilizza una partizione fisica, la colonna e il meccanismo della partizione vengono determinati automaticamente in base alla definizione della tabella fisica.
Intervallo dinamico: quando si usa la query con la copia parallela abilitata, è necessario il parametro di partizione a intervalli(
?DfDynamicRangePartitionCondition
). Query di esempio:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
.Nome della colonna di partizione: specificare il nome della colonna di origine in formato intero o di tipo data/datetime (
int
,smallint
,bigint
,date
,smalldatetime
,datetime
,datetime2
odatetimeoffset
) utilizzata dal partizionamento per intervalli per la copia parallela. Se non specificato, la chiave primaria della tabella viene rilevata automaticamente e usata come colonna di partizione.Se si usa una query per recuperare i dati di origine, associare
?DfDynamicRangePartitionCondition
nella clausola WHERE. Per un esempio, vedere la sezione Copia parallela dal database SQL.Limite massimo della partizione: specificare il valore massimo della colonna di partizione per la suddivisione dell'intervallo di partizioni. Questo valore viene usato per decidere lo stride di partizione, non per filtrare le righe nella tabella. Tutte le righe nella tabella o nel risultato della query verranno partizionate e copiate. Se non specificato, l'attività Copy rileva automaticamente il valore. Per un esempio, vedere la sezione Copia parallela dal database SQL.
Limite minimo della partizione: specificare il valore minimo della colonna di partizione per la suddivisione dell'intervallo di partizioni. Questo valore viene usato per decidere lo stride di partizione, non per filtrare le righe nella tabella. Tutte le righe nella tabella o nel risultato della query verranno partizionate e copiate. Se non specificato, l'attività Copy rileva automaticamente il valore. Per un esempio, vedere la sezione Copia parallela dal database SQL.
Colonne aggiuntive: aggiungere altre colonne di dati per archiviare il percorso relativo o il valore statico dei file di origine. Per quest'ultimo è supportata l'espressione.
Notare i punti seguenti:
- Se per l'origine è specificata una query, l'attività di copia esegue questa query sull'origine Amazon RDS per SQL Server per ottenere i dati. In alternativa, è possibile specificare una stored procedure indicando il nome della stored procedure e i parametri della stored procedure se quest'ultima accetta parametri.
- Quando si usa la stored procedure nell'origine per recuperare dati, tenere presente che se la stored procedure è progettata per restituire schemi diversi quando viene passato un valore di parametro diverso, è possibile che si verifichi un errore o un risultato imprevisto durante l'importazione dello schema dall'interfaccia utente o quando si copiano dati nel database SQL con la creazione automatica della tabella.
Mapping
Per la configurazione della scheda Mapping, andare a Configurare i mapping nella scheda Mapping.
Impostazione
Per la configurazione della scheda Impostazioni, vedere Configurare le altre impostazioni nella scheda Impostazioni.
Copia parallela dal database SQL
Il connettore Amazon RDS per SQL Server nell'attività di copia fornisce il partizionamento dei dati predefinito per copiare i dati in parallelo. È possibile trovare le opzioni di partizionamento dei dati nella tabella Origine dell'attività di copia.
Quando si abilita la copia partizionata, l’attività di copia esegue query parallele sull'origine di Amazon RDS per SQL Server per caricare i dati in base alle partizioni. Il grado di parallelismo è controllato dal Grado di parallelismo della copia nella scheda delle impostazioni dell'attività di copia. Ad esempio, se si imposta il Grado di parallelismo della copia su quattro, il servizio genera ed esegue contemporaneamente quattro query in base all'opzione di partizione e alle impostazioni specificate e ogni query recupera una porzione di dati da Amazon RDS per SQL Server.
È preferibile abilitare la copia parallela con il partizionamento dei dati specialmente quando si caricano notevoli quantità di dati dal database di Amazon RDS per SQL Server. Di seguito sono riportate le configurazioni consigliate per i diversi scenari: Quando si copiano dati in un archivio dati basato su file, è consigliabile scrivere in una cartella come file multipli (specificare solo il nome della cartella); in tal caso, le prestazioni risultano migliori rispetto alla scrittura in un singolo file.
Scenario | Impostazioni consigliate |
---|---|
Caricamento completo da una tabella di grandi dimensioni, con partizioni fisiche. | Opzione di partizione: partizioni fisiche della tabella. Durante l'esecuzione, il servizio rileva automaticamente le partizioni fisiche e copia i dati in base alle partizioni. Per controllare se la tabella contenga o meno una partizione fisica, è possibile fare riferimento a questa query. |
Caricamento completo da una tabella di grandi dimensioni, senza partizioni fisiche, con una colonna integer o datetime per il partizionamento dei dati. | Opzioni di partizione: partizione a intervalli dinamici. Colonna partizione (facoltativo): specificare la colonna usata per il partizionamento dei dati. Se non è specificato, viene usata la colonna della chiave primaria. Limite superiore partizione e limite inferiore partizione (facoltativo): specificare se si desidera determinare lo stride della partizione. Non si tratta di filtrare le righe nella tabella; tutte le righe della tabella verranno partizionate e copiate. Se non è specificato, l'attività di copia rileva automaticamente i valori e può richiedere molto tempo a seconda dei valori MIN e MAX. È preferibile specificare un limite superiore e un limite inferiore. Ad esempio, se “ID” della colonna partizione include valori compresi tra 1 e 100 e si imposta come limite inferiore 20 e come limite superiore 80, con copia parallela 4, il servizio recupera i dati in base a 4 partizioni - ID nell'intervallo < = 20, [21, 50], [51, 80] e > = 81 rispettivamente. |
Caricamento di notevoli quantità di dati utilizzando una query personalizzata, senza partizioni fisiche, con una colonna integer o date/datetime per il partizionamento dei dati. | Opzioni di partizione: partizione a intervalli dinamici. Query: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> .Colonna di partizione: specificare la colonna usata per il partizionamento dei dati. Limite superiore partizione e limite inferiore partizione (facoltativo): specificare se si desidera determinare lo stride della partizione. Ciò non è utile a filtrare le righe nella tabella; tutte le righe del risultato della query verranno partizionate e copiate. Se non specificato, l'attività Copy rileva automaticamente il valore. Ad esempio, se la colonna di partizione "ID" include valori compresi tra 1 e 100 e si imposta il limite inferiore su 20 e il limite superiore su 80, con copia parallela come 4 il servizio recupera i dati per 4 partizioni - ID nell'intervallo <=20, [21, 50], [51, 80], e >=81, rispettivamente. Di seguito sono riportate altre query di esempio per diversi scenari: • Eseguire una query sull'intera tabella: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition • Eseguire una query da una tabella con selezione colonne e filtri aggiuntivi per la clausola where: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> • Query con sottoquery: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> • Query con partizione nella sottoquery: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Procedure consigliate per il caricamento di dati con opzione partizione:
- Scegliere una colonna distintiva come colonna partizione (ad esempio, chiave primaria o chiave univoca) per evitare l'asimmetria dei dati.
- Se la tabella include una partizione predefinita, usare l'opzione di partizione Partizioni fisiche della tabella per ottenere prestazioni migliori.
Query di esempio per controllare la partizione fisica
SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'
Se la tabella ha una partizione fisica, viene visualizzato "HasPartition" come "sì", come illustrato di seguito.
Riepilogo della tabella
Vedere la tabella seguente per il riepilogo e altre informazioni per l'attività di copia di Amazon RDS per SQL Server.
Informazioni sull'origine
Nome | Descrizione | valore | Richiesto | Proprietà dello script JSON |
---|---|---|---|---|
Tipo di archivio dati | Tipo di archivio dati. | Esterno | Sì | / |
Connessione | Connessione all'archivio dati di origine. | < connessione personale > | Sì | connection |
Tipo di connessione | Tipo di connessione. Selezionare Amazon RDS per SQL Server. | Servizi Desktop remoto di Amazon per SQL Server | Sì | / |
Usa query | Query SQL personalizzata per leggere i dati. | • Tabella • Query • Stored procedure |
Sì | / |
Tabella | Tabella dati di origine. | < nome della tabella di destinazione> | No | schema table |
Query | Query SQL personalizzata per leggere i dati. | < query > | No | sqlReaderQuery |
Nome della stored procedure | Questa proprietà definisce il nome della stored procedure che legge i dati dalla tabella di origine. L'ultima istruzione SQL deve essere un'istruzione SELECT nella stored procedure. | < nome della stored procedure > | No | sqlReaderStoredProcedureName |
Parametri della stored procedure | Questi parametri sono relativi alla stored procedure. I valori consentiti sono coppie nome-valore. I nomi e le maiuscole/minuscole dei parametri devono corrispondere ai nomi e alle maiuscole/minuscole dei parametri della stored procedure. | < coppie di nomi o valori > | No | storedProcedureParameters |
Timeout della query | Timeout per l'esecuzione del comando di query. | timespan (il valore predefinito è 120 minuti) |
No | queryTimeout |
Livello di isolamento | Specifica il comportamento di blocco della transazione per l'origine SQL. | • Read committed • Read uncommitted • Repeatable read • Serializable • Snapshot |
No | isolationLevel: • ReadCommitted • ReadUncommitted • RepeatableRead • Serializable • Snapshot |
Opzione di partizione | Opzioni di partizionamento dei dati usate per caricare dati da Amazon RDS per SQL Server. | • Nessuna (impostazione predefinita) • Partizioni fisiche della tabella • Intervallo dinamico |
No | partitionOption: • Nessuna (impostazione predefinita) • PhysicalPartitionsOfTable • DynamicRange |
Nome della colonna di partizione | Nome della colonna di origine in formato intero o di tipo date/datetime (int , smallint , bigint , date , smalldatetime , datetime , datetime2 o datetimeoffset ) usata nel partizionamento per intervalli per la copia parallela. Se non specificato, la chiave primaria della tabella viene rilevata automaticamente e usata come colonna di partizione. Se si usa una query per recuperare i dati di origine, associare ?DfDynamicRangePartitionCondition nella clausola WHERE. |
< nomi delle colonne di partizione > | No | partitionColumnName |
Limite massimo della partizione | Valore massimo della colonna di partizione per la suddivisione dell'intervallo di partizioni. Questo valore viene usato per decidere lo stride di partizione, non per filtrare le righe nella tabella. Tutte le righe nella tabella o nel risultato della query verranno partizionate e copiate. Se non specificato, l'attività Copy rileva automaticamente il valore. | < limite massimo della partizione > | No | partitionUpperBound |
Limite minimo della partizione | Valore minimo della colonna di partizione per la suddivisione dell'intervallo di partizioni. Questo valore viene usato per decidere lo stride di partizione, non per filtrare le righe nella tabella. Tutte le righe nella tabella o nel risultato della query verranno partizionate e copiate. Se non specificato, l'attività Copy rileva automaticamente il valore. | < limite minimo della partizione > | No | partitionLowerBound |
Colonne aggiuntive | Aggiungere altre colonne di dati per archiviare il percorso relativo o il valore statico dei file di origine. Per quest'ultimo è supportata l'espressione. | • Name • Valore |
No | additionalColumns: • nome • valore |