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à.
Operazioni e regole di trasformazione
Puoi utilizzare le operazioni di trasformazione per specificare le trasformazioni che desideri applicare alla tabella selezionata, allo schema selezionato o alla vista selezionata. Le regole di trasformazione sono opzionali.
Limitazioni
- Non è possibile applicare più di un'azione della regola di trasformazione sullo stesso oggetto (schema, tabella, colonna, table-tablespace o index-tablespace). È possibile applicare diverse azioni delle regole di trasformazione a qualsiasi livello, purché ogni azione di trasformazione venga applicata a un oggetto diverso. Tuttavia, questa restrizione non è applicabile quando si utilizzano regole di trasformazione con mascheramento dei dati in cui è possibile avere un'altra trasformazione simile o per la stessa colonna. - ADD-COLUMN- CHANGE-DATA-TYPE
- I nomi di tabella e di colonna nelle regole di trasformazione rispettano la distinzione tra maiuscole e minuscole. Ad esempio, è necessario specificare in maiuscolo i nomi delle tabelle e delle colonne per un database Oracle o Db2. 
- Le trasformazioni non sono supportate per i nomi di colonna con lingue. Right-to-Left 
- Le trasformazioni non possono essere eseguite su colonne che includono nel nome caratteri speciali (ad esempio #, \, /, -). 
- L'unica trasformazione supportata per le colonne mappate ai tipi di BLOB/CLOB dati consiste nel rilasciare la colonna sulla destinazione. 
- AWS DMS non supporta la replica di due tabelle di origine in un'unica tabella di destinazione. AWS DMS replica i record da una tabella all'altra e da una colonna all'altra, in base alle regole di trasformazione dell'attività di replica. I nomi degli oggetti devono essere univoci per evitare sovrapposizioni. - Ad esempio, una tabella di origine ha una colonna denominata - IDe la tabella di destinazione corrispondente ha una colonna preesistente denominata- id. Se una regola utilizza un'- ADD-COLUMNistruzione per aggiungere una nuova colonna- iddenominata e un' SQLite istruzione per popolare la colonna con valori personalizzati, ciò crea un oggetto duplicato e ambiguo denominato- ide non è supportato.
- Quando si crea una regola di trasformazione, si consiglia di utilizzare il - data-typeparametro solo quando le regole di selezione specificano più colonne, ad esempio quando si imposta su.- column-name- %Non è consigliabile utilizzarlo- data-typeper selezionare una singola colonna.
- 
                    AWS DMS non supporta le regole di trasformazione in cui gli oggetti di origine e di destinazione (tabelle) si trovano sullo stesso database/schema. L'utilizzo della stessa tabella come origine e destinazione in una regola di trasformazione può portare a risultati imprevisti e potenzialmente dannosi, tra cui, a titolo esemplificativo ma non esaustivo, alterazioni involontarie dei dati della tabella, modifiche delle strutture delle tabelle o persino l'eliminazione delle tabelle. 
Valori
Per le regole di mappatura delle tabelle che utilizzano il tipo di regola di trasformazione, sono applicabili i seguenti valori.
| Parametro | Valori possibili | Descrizione | 
|---|---|---|
| rule-type | transformation | Un valore che applica la regola a ogni oggetto specificato dalla regola di selezione. Usa transformationa meno che non sia indicato altrimenti. | 
| rule-id | Un valore numerico. | Un valore numerico univoco per identificare la regola. Se si specificano più regole di trasformazione per lo stesso oggetto (schema, tabella, colonna, spazio tra tabelle o tabelle indicizzate), AWS DMS applica la regola di trasformazione con l'id della regola inferiore. | 
| rule-name | Un valore alfanumerico. | Un nome univoco per identificare la regola. | 
| object-locator | Un oggetto con i seguenti parametri: 
 | Il nome di ogni schema, tabella o vista, spazio tabella di tabella e spazio tabella di indice e di colonna a cui si applica la regola. È possibile utilizzare il simbolo di percentuale "%" come carattere jolly per tutto o parte del valore di ciascun parametro  
 Inoltre, il parametro  
 | 
| rule-action | 
 
 
 
 
 
 
 
 
 
 
 | La trasformazione che desideri applicare all'oggetto. Tutte le operazioni delle regole di trasformazione prevedono una distinzione tra lettere maiuscole e minuscole. Il valore  Se utilizzato con i parametri  Il valore  Il valore  Non puoi usare una regola  Per un'attività esistente, le azioni delle regole di trasformazione che alterano lo schema della tabella di destinazione, ad esempio  I  | 
| rule-target | schema,table,column,table-tablespace,index-tablespace | Il tipo di oggetto che stai trasformando. I valori  Assicurarsi di specificare un valore per il parametro specificato come parte del  | 
| value | Un valore alfanumerico che segue le regole di denominazione per il tipo di destinazione. | Il nuovo valore per operazioni che richiedono input, ad esempio rename. | 
| old-value | Un valore alfanumerico che segue le regole di denominazione per il tipo di destinazione. | Il vecchio valore per operazioni che richiedono la sostituzione, ad esempio replace-prefix. | 
| data-type | 
 In alternativa, il nome del tipo di dati sostitutivo quando  AWS DMS supporta le trasformazioni dei tipi di dati delle colonne per i seguenti tipi di dati DMS:  NotaAWS DMS può applicare trasformazioni da un tipo all'altro SOLO nei formati supportati. (ad esempio DATE dovrebbe essere rappresentato in  
 
 
 | Di seguito è riportato un esempio di un parametro  
 Qui, la colonna  | 
| expression | Un valore alfanumerico che segue SQLite la sintassi. | Se utilizzato con  Se utilizzato con  Tieni presente che per questo parametro sono supportate solo le espressioni. Gli operatori e i comandi non sono supportati. Per ulteriori informazioni sull'utilizzo delle espressioni per le regole di trasformazione, consulta Utilizzo delle espressioni delle regole di trasformazione per definire il contenuto delle colonne. Per ulteriori informazioni sulle SQLite espressioni, vedere. Utilizzo di SQLite funzioni per creare espressioni | 
| primary-key-def | Un oggetto con i seguenti parametri: 
 | Questo parametro può definire il nome, il tipo e il contenuto di una chiave univoca sulla tabella o sulla vista trasformata. Lo fa quando rule-actionè impostato sudefine-primary-keyerule-targetsutable. Per impostazione predefinita, la chiave univoca viene definita come chiave primaria. | 
| before-image-def | Un oggetto con i seguenti parametri: 
 | Questo parametro definisce una convenzione di denominazione per identificare le colonne immagine precedente e specifica un filtro per identificare quali colonne di origine possono avere colonne immagine precedente create per esse sulla destinazione. È possibile specificare questo parametro quando  Non impostare sia  Per  
 NotaIl  Per ulteriori informazioni sul supporto dell'immagine precedente per gli endpoint di destinazione AWS DMS , consulta: | 
Esempi
Esempio Assegnazione di un nuovo nome a uno schema
Nell'esempio seguente viene rinominato uno schema da Test nell'origine a Test1 nella destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "Test" }, "value": "Test1" } ] }
Esempio Rinominare una tabella
Nell'esempio seguente viene rinominata una tabella da Actor nell'origine a Actor1 nella destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table", "object-locator": { "schema-name": "Test", "table-name": "Actor" }, "value": "Actor1" } ] }
Esempio Ridenominazione di una colonna
Nell'esempio seguente viene rinominata una colonna nella tabella Actor da first_name nell'origine a fname nella destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "4", "rule-name": "4", "rule-action": "rename", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name" : "first_name" }, "value": "fname" } ] }
Esempio Rinominare uno spazio tabella di tabella Oracle
L'esempio seguente rinomina lo spazio tabella di tabella denominato SetSpace per una tabella denominata Actor nell'origine Oracle in SceneTblSpace nell'endpoint Oracle di destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetSpace" }, "value": "SceneTblSpace" } ] }
Esempio Rinominare uno spazio tabella di indice Oracle
L'esempio seguente rinomina lo spazio tabella di indice denominato SetISpace per una tabella denominata Actor nell'origine Oracle in SceneIdxSpace nell'endpoint Oracle di destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "Play", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "Play", "table-name": "Actor", "table-tablespace-name": "SetISpace" }, "value": "SceneIdxSpace" } ] }
Esempio Aggiungere una colonna
Nell'esempio seguente viene aggiunta una colonna datetime alla tabella Actor nello schema test.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "actor" }, "value": "last_updated", "data-type": { "type": "datetime", "precision": 6 } } ] }
Esempio Rimozione di una colonna
Nell'esempio seguente viene trasformata la tabella denominata Actor nell'origine per rimuovere da essa tutte le colonne che iniziano con i caratteri col nella destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
Esempio Conversione in minuscolo
Nell'esempio seguente viene convertito un nome di tabella da ACTOR nell'origine a actor nella destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "ACTOR" } }] }
Esempio Conversione in caratteri maiuscoli
Nell'esempio seguente vengono convertite tutte le colonne in tutte le tabelle e tutti gli schemi da caratteri minuscoli nell'origine a caratteri maiuscoli nella destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "convert-uppercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } } ] }
Esempio Aggiunta di un prefisso
Nell'esempio seguente tutte le tabelle nell'origine vengono trasformate con l'aggiunta del prefisso DMS_ nella destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "add-prefix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "DMS_" }] }
Esempio Sostituzione di un prefisso
Nell'esempio seguente tutte le colonne contenenti il prefisso Pre_ nell'origine vengono trasformate mediante la sostituzione del prefisso con NewPre_ nella destinazione.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "replace-prefix", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" }, "value": "NewPre_", "old-value": "Pre_" } ] }
Esempio Rimozione di un suffisso
Nell'esempio seguente tutte le tabelle nell'origine vengono trasformate con la rimozione del suffisso _DMS nella destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-suffix", "rule-target": "table", "object-locator": { "schema-name": "test", "table-name": "%" }, "value": "_DMS" }] }
Esempio Definire una chiave primaria
L'esempio seguente definisce una chiave primaria denominata ITEM-primary-key su tre colonne della tabella ITEM migrata nell'endpoint di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-primary-key", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
Esempio Definire un indice univoco
L'esempio seguente definisce un indice univoco denominato ITEM-unique-idx su tre colonne della tabella ITEM migrata verso l'endpoint di destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "inventory", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "define-primary-key", "rule-target": "table", "object-locator": { "schema-name": "inventory", "table-name": "ITEM" }, "primary-key-def": { "name": "ITEM-unique-idx", "origin": "unique-index", "columns": [ "ITEM-NAME", "BOM-MODEL-NUM", "BOM-PART-NUM" ] } }] }
Esempio Modifica del tipo di dati della colonna di destinazione
Nell'esempio seguente viene modificato il tipo di dati di una colonna di destinazione denominata SALE_AMOUNT da un tipo di dati esistente su int8.
{ "rule-type": "transformation", "rule-id": "1", "rule-name": "RuleName 1", "rule-action": "change-data-type", "rule-target": "column", "object-locator": { "schema-name": "dbo", "table-name": "dms", "column-name": "SALE_AMOUNT" }, "data-type": { "type": "int8" } }
Esempio Aggiungere una colonna dell'immagine precedente
Per una colonna di origine denominata emp_no, la regola di trasformazione nell'esempio seguente aggiunge una nuova colonna denominata BI_emp_no nella destinazione.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "employees" }, "rule-action": "add-before-image-columns", "before-image-def": { "column-prefix": "BI_", "column-suffix": "", "column-filter": "pk-only" } } ] }
Qui, l'istruzione seguente popola una colonna BI_emp_no nella riga corrispondente con 1.
UPDATE employees SET emp_no = 3 WHERE BI_emp_no = 1;
Quando si scrivono aggiornamenti CDC su AWS DMS destinazioni supportate, la BI_emp_no colonna consente di stabilire quali righe hanno valori aggiornati nella colonna. emp_no