Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di filtri di origine
Puoi utilizzare i filtri di origine per limitare il numero e il tipo di record trasferiti dall'origine alla destinazione. Ad esempio, puoi specificare che solo i dipendenti con un'ubicazione di sede vengano spostati al database di destinazione. I filtri fanno parte di una regola di selezione. I filtri vengono applicati su una colonna di dati.
I filtri di origine devono seguire questi vincoli:
-
Una regola di selezione può avere uno o più filtri o nessun filtro.
-
Ogni filtro può avere una o più condizioni di filtro.
-
Se viene utilizzato più di un filtro, l'elenco di filtri viene combinato come se venisse utilizzato un operatore AND tra i filtri.
-
Se più di una condizione di filtro viene utilizzata all'interno di un singolo filtro, l'elenco delle condizioni di filtro viene combinato come se venisse utilizzato un operatore OR tra le condizioni di filtro.
-
I filtri vengono applicati solo quando
rule-action = 'include'
. -
I filtri richiedono un nome di colonna e un elenco di condizioni di filtro. Le condizioni di filtro devono avere un operatore associato a un valore, due valori o nessun valore, a seconda dell'operatore.
-
I nomi delle colonne, i nomi delle tabelle e i nomi delle viste prevedono una distinzione tra lettere maiuscole e minuscole. Oracle e Db2 devono sempre utilizzare lettere MAIUSCOLE.
-
I filtri supportano solo tabelle con nomi esatti. I filtri non supportano i caratteri jolly.
Le seguenti limitazioni si applicano all'utilizzo dei filtri di origine:
-
I filtri non calcolano le colonne delle right-to-left lingue.
-
Non applicare filtri alle colonne LOB.
-
Applicare filtri solo alle colonne immutabili, che dopo la creazione non vengono aggiornate. Se i filtri di origine vengono applicati alle colonne mutabili, che possono essere aggiornate dopo la creazione, è possibile che si verifichi un comportamento indesiderato.
Ad esempio, un filtro per escludere o includere righe specifiche in una colonna esclude o include sempre le righe specificate, anche se queste vengono modificate in un secondo momento. Supponi di escludere o includere le righe da 1 a 10 nella colonna A e di modificarle in seguito affinché diventino le righe da 11 a 20. In questo caso, le righe continuano ad essere escluse o incluse anche quando i dati non sono più gli stessi.
Analogamente, supponiamo che una riga al di fuori dell'ambito del filtro venga successivamente aggiornata (o aggiornata ed eliminata) e che venga esclusa o inclusa in base a quanto definito dal filtro. In tal caso, viene replicata sulla destinazione.
Le seguenti preoccupazioni aggiuntive si applicano all'utilizzo dei filtri di origine:
-
Si consiglia di creare un indice utilizzando le colonne incluse nella definizione del filtro e la chiave primaria.
Creazione di regole di filtro di origine in formato JSON
È possibile creare filtri di origine utilizzando il parametro JSON filters
di una regola di selezione. Il parametro filters
specifica una matrice di uno o più oggetti JSON. Ogni oggetto dispone di parametri che specificano il tipo di filtro di origine, il nome delle colonne e condizioni di filtro. Queste condizioni di filtro includono uno o più operatori filtro e i relativi valori.
La tabella seguente mostra i parametri utilizzati per specificare il filtro sull'origine in un oggetto filters
.
Parametro |
Valore |
---|---|
|
source |
|
Un parametro con il nome della colonna di origine a cui si desidera applicare il filtro. Per il nome è prevista una distinzione tra maiuscole e minuscole. |
|
Una matrice di uno o più oggetti che contengono un parametro filter-operator e zero o più parametri associati, a seconda del valore filter-operator . |
|
Un parametro con uno dei seguenti valori:
|
nessun valore |
Zero o più parametri associati a
|
I seguenti esempi mostrano alcune delle modalità più comuni per l'utilizzo di filtri sull'origine.
Esempio Filtro singolo
Il filtro seguente replica tutti i dipendenti con empid >=
100
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "gte", "value": "50" },{ "filter-operator": "noteq", "value": "100" }] }] }] }
Esempio Più operatori di filtro
Il filtro seguente applica più operatori di filtro a una singola colonna di dati. Il filtro replica tutti i dipendenti con (empid <=
10)
O (empid is between 50 and 75)
O (empid
>= 100)
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "10" }, { "filter-operator": "between", "start-value": "50", "end-value": "75" }, { "filter-operator": "gte", "value": "100" }] }] }] }
Esempio Più filtri
I seguenti filtri applicano più filtri a due colonne in una tabella. Il filtro replica tutti i dipendenti con (empid <= 100)
E (dept = tech)
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "100" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "eq", "value": "tech" }] }] }] }
Esempio Filtro dei valori NULL
Il seguente filtro mostra come filtrare i valori vuoti. Replica tutti i dipendenti con dept = NULL
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "null" }] }] }] }
Esempio Filtro utilizzando gli operatori NOT
Alcuni operatori possono essere utilizzati in forma negativa. Il filtro seguente replica tutti i dipendenti con (empid is < 50) OR (empid
is > 75)
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "notbetween", "start-value": "50", "end-value": "75" }] }] }] }
Esempio Utilizzo di operatori di filtro misti
A partire dalla AWS DMS versione 3.5.0, puoi combinare operatori inclusivi e operatori negativi.
Il filtro seguente replica tutti i dipendenti con (empid != 50) AND (dept is not
NULL)
sul database di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "noteq", "value": "50" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "notnull" }] }] }] }
Tieni presente quanto segue quando utilizzi null
con altri operatori di filtro:
L'utilizzo combinato di condizioni di filtro inclusive, negative e
null
all'interno dello stesso filtro non replica i record con valoriNULL
.L'utilizzo combinato di condizioni di filtro negative e
null
senza condizioni di filtro inclusive all'interno dello stesso filtro non replica i dati.L'utilizzo di condizioni di filtro negative senza una condizione di filtro
null
impostata in modo esplicito non replica i record con valoriNULL
.
Applicazione di filtri in base a ora e data
Quando si selezionano i dati da importare, è possibile specificare una data o un'ora come parte dei criteri di filtro. AWS DMS utilizza il formato della data YYYY-MM-GG e il formato dell'ora YYYY-MM-DD HH:MM:SS per il filtraggio. AWS DMS Le funzioni di confronto seguono le convenzioni SQLite. Per ulteriori informazioni sui tipi di dati SQLite e sui confronti tra date, consulta la sezione relativa ai tipi di dati in SQLite versione 3
Il seguente filtro mostra come filtrare una data. Replica tutti i dipendenti con empstartdate >= January 1, 2002
sul database di destinazione.
Esempio Filtro per data singola
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empstartdate", "filter-conditions": [{ "filter-operator": "gte", "value": "2002-01-01" }] }] }] }