Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connexion à un entrepôt de données Teradata à l'aide du AWS Schema Conversion Tool
Vous pouvez les utiliser AWS SCT pour convertir des schémas, des objets de code et du code d'application de Teradata vers Amazon Redshift ou Amazon Redshift et les utiliser en combinaison. AWS Glue
Privilèges pour Teradata en tant que source
Les privilèges suivants sont requis pour utiliser Teradata en tant que source :
-
SELECTSUR DBC
-
SELECTSUR SYSUDTLIB
-
SELECTSUR SYSLIB
-
SELECTSUR
<source_database>
-
CREATEPROCEDURESUR
<source_database>
Dans l'exemple précédent, remplacez <source_database>
espace réservé avec le nom de la base de données source.
AWS SCT nécessite le CREATE PROCEDURE privilège d'exécuter toutes HELP PROCEDURE les procédures de la base de données source. AWS SCT n'utilise pas ce privilège pour créer de nouveaux objets dans votre base de données Teradata source.
Connexion à Teradata en tant que source
Utilisez la procédure suivante pour vous connecter à votre base de données source Teradata avec AWS Schema Conversion Tool.
Pour vous connecter à une base de données source Teradata
-
Dans le AWS Schema Conversion Tool, choisissez Ajouter une source.
-
Choisissez Teradata, puis Next.
La boîte de dialogue Ajouter une source apparaît.
-
Dans Nom de connexion, entrez le nom de votre base de données. AWS SCT affiche ce nom dans l'arborescence du panneau de gauche.
-
Utilisez les informations d'identification de la base de données AWS Secrets Manager ou saisissez-les manuellement :
-
Pour utiliser les informations d'identification de base de données issues de Secrets Manager, suivez les instructions suivantes :
-
Pour AWS Secret, choisissez le nom du secret.
-
Choisissez Populer pour renseigner automatiquement toutes les valeurs dans la boîte de dialogue de connexion à la base de données depuis Secrets Manager.
Pour plus d'informations sur l'utilisation des informations d'identification de base de données depuis Secrets Manager, consultezConfiguration AWS Secrets Manager dans le AWS Schema Conversion Tool.
-
-
Pour saisir manuellement les informations de connexion à la base de données source Teradata, suivez les instructions suivantes :
Paramètre Action Connection name (Nom de la connexion) Entrez le nom de votre base de données. AWS SCT affiche ce nom dans l'arborescence du panneau de gauche.
Server name Entrez le nom du système de noms de domaine (DNS) ou l'adresse IP de votre serveur de base de données source.
Server port Indiquez le port utilisé pour vous connecter au serveur de la base de données source.
Database (Base de données) Tapez le nom de la base de données Teradata.
User name et Password Entrez les informations d'identification de la base de données pour vous connecter à votre serveur de base de données source.
AWS SCT utilise le mot de passe pour se connecter à votre base de données source uniquement lorsque vous choisissez de vous connecter à votre base de données dans le cadre d'un projet. Pour éviter d'exposer le mot de passe de votre base de données source, le mot de passe AWS SCT n'est pas stocké par défaut. Si vous fermez et rouvrez votre projet AWS SCT , vous êtes invité à entrer le mot de passe pour vous connecter à la base de données source, si nécessaire.
Enregistrer le mot de passe AWS SCT crée un coffre-fort sécurisé pour stocker les SSL certificats et les mots de passe de base de données. En activant cette option, vous pouvez enregistrer le mot de passe de la base de données et vous connecter rapidement à la base de données sans avoir à saisir le mot de passe.
Chiffrer les données Choisissez cette option pour chiffrer les données que vous échangez avec la base de données. Si vous choisissez cette option, le numéro de port 443 est utilisé pour transférer les données cryptées entre AWS SCT et votre base de données Teradata.
Chemin du pilote Teradata Entrez le chemin d'accès au pilote à utiliser pour vous connecter à la base de données source. Pour de plus amples informations, veuillez consulter Installation de JDBC pilotes pour AWS Schema Conversion Tool.
Si vous stockez le chemin d'accès au pilote dans les paramètres globaux du projet, il ne s'affiche pas dans la boîte de dialogue de connexion. Pour de plus amples informations, veuillez consulter Stockage des chemins des pilotes dans les paramètres globaux.
-
-
Choisissez Tester la connexion pour vérifier que AWS SCT vous pouvez vous connecter à votre base de données source.
-
Choisissez Connect pour vous connecter à votre base de données source.
Utilisation de LDAP l'authentification avec une source Teradata
Pour configurer l'authentification Lightweight Directory Access Protocol (LDAP) pour les utilisateurs de Teradata qui exécutent Microsoft Active Directory sous Windows, suivez la procédure suivante.
Dans la procédure suivante, le domaine Active Directory esttest.local.com
. Le serveur Windows l'estDC
, et il est configuré avec les paramètres par défaut. Le script suivant crée le compte test_ldap
Active Directory, qui utilise le test_ldap
mot de passe.
Pour configurer LDAP l'authentification pour les utilisateurs de Teradata qui exécutent Microsoft Active Directory sous Windows
Dans le répertoire
/opt/teradata/tdat/tdgss/site
, modifiez le fichierTdgssUserConfigFile.xml
. Modifiez la LDAP section comme suit.AuthorizationSupported="no" LdapServerName="DC.test.local.com" LdapServerPort="389" LdapServerRealm="test.local.com" LdapSystemFQDN="dc= test, dc= local, dc=com" LdapBaseFQDN="dc=test, dc=local, dc=com"
-
Appliquez les modifications en exécutant la configuration comme suit.
#cd /opt/teradata/tdgss/bin #./run_tdgssconfig
Testez la configuration en exécutant la commande suivante.
# /opt/teradata/tdat/tdgss/14.10.03.01/bin/tdsbind -u test_ldap -w test_ldap
La sortie doit ressembler à ce qui suit.
LdapGroupBaseFQDN: dc=Test, dc=local, dc=com LdapUserBaseFQDN: dc=Test, dc=local, dc=com LdapSystemFQDN: dc= test, dc= local, dc=com LdapServerName: DC.test.local.com LdapServerPort: 389 LdapServerRealm: test.local.com LdapClientUseTls: no LdapClientTlsReqCert: never LdapClientMechanism: SASL/DIGEST-MD5 LdapServiceBindRequired: no LdapClientTlsCRLCheck: none LdapAllowUnsafeServerConnect: yes UseLdapConfig: no AuthorizationSupported: no FQDN: CN=test, CN=Users, DC=Anthem, DC=local, DC=com AuthUser: ldap://DC.test.local.com:389/CN=test1,CN=Users,DC=test,DC=local,DC=com DatabaseName: test Service: tdsbind
Redémarrez TPA à l'aide de la commande suivante.
#tpareset -f "use updated TDGSSCONFIG GDO"
Créez le même utilisateur dans la base de données Teradata que dans Active Directory, comme indiqué ci-dessous.
CREATE USER test_ldap AS PERM=1000, PASSWORD=test_ldap; GRANT LOGON ON ALL TO test WITH NULL PASSWORD;
Si vous modifiez le mot de passe utilisateur dans Active Directory pour votre LDAP utilisateur, spécifiez ce nouveau mot de passe lors de la connexion à Teradata en LDAP mode. En DEFAULT mode, vous vous connectez à Teradata en utilisant le nom LDAP d'utilisateur et n'importe quel mot de passe.
Configuration de la collecte de statistiques dans votre entrepôt de données Teradata source
Pour convertir votre entrepôt de données Teradata source, utilisez AWS SCT des statistiques pour optimiser votre entrepôt de données Amazon Redshift converti. Vous pouvez collecter des statistiques dans le fichier de statistiques AWS SCT ou le télécharger. Pour de plus amples informations, veuillez consulter Collecte ou téléchargement de statistiques.
Pour être sûr de AWS SCT pouvoir collecter des statistiques à partir de votre entrepôt de données, effectuez les tâches préalables suivantes.
Pour collecter des statistiques à partir de votre entrepôt de données Teradata
-
Exécutez la requête suivante pour recueillir les statistiques de toutes les tables de votre entrepôt de données.
collect summary statistics on
table_name
;Dans l'exemple précédent, remplacez
table_name
avec le nom de votre table source. Répétez la requête pour chaque table que vous convertissez. -
Exécutez la requête suivante pour déterminer la chaîne de compte de l'utilisateur, que vous utiliserez pour convertir votre entrepôt de données.
select * from dbc.accountinfo where username ='
user_name
' -
Activez la journalisation des requêtes pour un utilisateur spécifique à l'aide de la chaîne de compte de l'exemple précédent.
BEGIN QUERY LOGGING WITH OBJECTS, SQL ON ALL ACCOUNT=('$M$BUSI$S$D$H');
Vous pouvez également activer la journalisation des requêtes pour tous les utilisateurs de la base de données.
BEGIN QUERY LOGGING WITH SQL, OBJECTS LIMIT SQLTEXT=0 ON ALL;
Une fois que vous avez terminé de collecter les statistiques de l'entrepôt de données, désactivez l'enregistrement des requêtes. Pour ce faire, vous pouvez utiliser l'exemple de code suivant.
end query logging with explain, objects, sql on all account=(' $M$BUSI$S$D$H');
Collecte de statistiques en mode hors ligne à partir de votre entrepôt de données Teradata source
Après avoir configuré la collecte de statistiques dans votre entrepôt de données Teradata, vous pouvez collecter des statistiques dans votre AWS SCT projet. Vous pouvez également utiliser des scripts Teradata Query (BTEQ) de base pour collecter des statistiques en mode hors ligne. Vous pouvez ensuite télécharger les fichiers contenant les statistiques collectées dans votre AWS SCT projet. Pour de plus amples informations, veuillez consulter Collecte ou téléchargement de statistiques.
Pour collecter des statistiques à partir de votre entrepôt de données Teradata en mode hors ligne
-
Créez le
off-line_stats.bteq
script avec le contenu suivant..OS IF EXIST column-stats-tera.csv del /F column-stats-tera.csv .OS IF EXIST table-stats-tera.csv del /F table-stats-tera.csv .OS IF EXIST column-skew-script-tera.csv del /F column-skew-script-tera.csv .OS IF EXIST column-skew-stats-tera.csv del /F column-skew-stats-tera.csv .OS IF EXIST query-stats-tera.csv del /F query-stats-tera.csv .LOGON your_teradata_server/your_login, your_password .EXPORT REPORT FILE = table-stats-tera.csv .SET TITLEDASHES OFF .SET WIDTH 10000 SELECT '"' || OREPLACE(COALESCE(c.DatabaseName, ''), '"', '""') || '";' || '"' || OREPLACE(COALESCE(c.TableName, ''), '"', '""') || '";' || '"' || TRIM(COALESCE(s.reference_count, '0')) || '";' || '"' || TRIM(COALESCE(CAST(p.RowCount AS BIGINT), '0')) || '";' || '"' || CAST(CAST(w.size_in_mb AS DECIMAL (38,1) FORMAT 'Z9.9') AS VARCHAR(38)) || '";' || '"' || TRIM(COALESCE(r.stat_fk_dep_count, '0')) || '";' || '"' || CAST(CAST(current_timestamp(0) as timestamp(0) format 'YYYY-MM-DDBHH:MI:SS') as VARCHAR(19)) || '"' (TITLE '"database_name";"table_name";"reference_count";"row_count";"size_in_mb";"stat_fk_dep_count";"current_ts"') FROM (select databasename, tablename from DBC.tablesv where tablekind IN ('T','O') and databasename = 'your_database_name' ) c left join (select DatabaseName, TableName, max(RowCount) RowCount from dbc.tableStatsv group by 1,2)p on p.databasename = c.databasename and p.tablename = c.tablename left join (SELECT r.ChildDB as DatabaseName, r.ChildTable as TableName, COUNT(DISTINCT r.ParentTable) reference_count FROM DBC.All_RI_ChildrenV r GROUP BY r.ChildDB, r.ChildTable) s on s.databasename = c.databasename and s.tablename = c.tablename left join (SELECT r.ParentDB as DatabaseName, r.ParentTable as TableName, COUNT(DISTINCT r.ChildTable) stat_fk_dep_count FROM DBC.All_RI_ParentsV r GROUP BY r.ParentDB, r.ParentTable) r on r.databasename = c.databasename and r.tablename = c.tablename left join (select databasename, tablename, sum(currentperm)/1024/1024 as size_in_mb from dbc.TableSizeV group by 1,2) w on w.databasename = c.databasename and w.tablename = c.tablename WHERE COALESCE(r.stat_fk_dep_count,0) + COALESCE(CAST(p.RowCount AS BIGINT),0) + COALESCE(s.reference_count,0) > 0; .EXPORT RESET .EXPORT REPORT FILE = column-stats-tera.csv .SET TITLEDASHES OFF .SET WIDTH 10000 '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' || SELECT '"' || OREPLACE(COALESCE(trim(tv.DatabaseName), ''), '"', '""') || '";' || '"' || OREPLACE(COALESCE(trim(tv.TableName), ''), '"', '""') || '";' || '"' || OREPLACE(COALESCE(trim(tv.columnname), ''), '"', '""') || '";' || '"' || TRIM(COALESCE(CAST(t2.card AS BIGINT), '0')) || '";' || '"' || CAST(current_timestamp AS VARCHAR(19)) || '"' (TITLE '"database_name";"table_name";"column_name";"cardinality";"current_ts"') FROM dbc.columnsv tv LEFT JOIN ( SELECT c.DatabaseName AS DATABASE_NAME, c.TABLENAME AS TABLE_NAME, c.ColumnName AS COLUMN_NAME, c.UniqueValueCount AS CARD FROM dbc.tablestatsv c WHERE c.DatabaseName = 'your_database_name' AND c.RowCount <> 0 ) t2 ON tv.DATABASENAME = t2.DATABASE_NAME AND tv.TABLENAME = t2.TABLE_NAME AND tv.COLUMNNAME = t2.COLUMN_NAME WHERE t2.card > 0; .EXPORT RESET .EXPORT REPORT FILE = column-skew-script-tera.csv .SET TITLEDASHES OFF .SET WIDTH 10000 SELECT 'SELECT CAST(''"' || TRIM(c.DatabaseName) || '";"' || TRIM(c.TABLENAME) || '";"' || TRIM(c.COLUMNNAME) || '";"'' || TRIM(CAST(COALESCE(MAX(cnt) * 1.0 / SUM(cnt), 0) AS NUMBER FORMAT ''9.9999'')) || ''";"'' || CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || ''"'' AS VARCHAR(512)) AS """DATABASE_NAME"";""TABLE_NAME"";""COLUMN_NAME"";""SKEWED"";""CURRENT_TS""" FROM( SELECT COUNT(*) AS cnt FROM "' || c.DATABASENAME || '"."' || c.TABLENAME || '" GROUP BY "' || c.COLUMNNAME || '") t' || CASE WHEN ROW_NUMBER() OVER(PARTITION BY c.DATABASENAME ORDER BY c.TABLENAME DESC, c.COLUMNNAME DESC) <> 1 THEN ' UNION ALL' ELSE ';' END (TITLE '--SKEWED--') FROM dbc.columnsv c INNER JOIN (SELECT databasename, TABLENAME FROM dbc.tablesv WHERE tablekind = 'T' AND databasename = 'your_database_name') t ON t.databasename = c.databasename AND t.TABLENAME = c.TABLENAME INNER JOIN (SELECT databasename, TABLENAME, columnname FROM dbc.indices GROUP BY 1,2,3 WHERE TRANSLATE_CHK (databasename USING LATIN_TO_UNICODE) + TRANSLATE_CHK (TABLENAME USING LATIN_TO_UNICODE) + TRANSLATE_CHK (columnname USING LATIN_TO_UNICODE) = 0 ) i ON i.databasename = c.databasename AND i.TABLENAME = c.TABLENAME AND i.columnname = c.columnname WHERE c.ColumnType NOT IN ('CO','JN','N','++','VA','UT','AN','XM','A1','BO') ORDER BY c.TABLENAME, c.COLUMNNAME; .EXPORT RESET .EXPORT REPORT FILE = column-skew-stats-tera.csv .SET TITLEDASHES OFF .SET WIDTH 10000 .RUN FILE = column-skew-script-tera.csv .EXPORT RESET .EXPORT REPORT FILE = query-stats-tera.csv .SET TITLEDASHES OFF .SET WIDTH 32000 SELECT '"' || RTRIM(CAST(SqlTextInfo AS VARCHAR(31900)), ';') || '";"' || TRIM(QueryCount) || '";"' || TRIM(QueryId) || '";"' || TRIM(SqlRowNo) || '";"' || TRIM(QueryParts) || '";"' || CAST(CURRENT_TIMESTAMP(0) AS VARCHAR(19)) || '"' (TITLE '"query_text";"query_count";"query_id";"sql_row_no";"query_parts";"current_ts"') FROM ( SELECT QueryId, SqlTextInfo, SqlRowNo, QueryParts, QueryCount, SUM(QueryFirstRow) OVER (ORDER BY QueryCount DESC, QueryId ASC, SqlRowNo ASC ROWS UNBOUNDED PRECEDING) AS topN FROM (SELECT QueryId, SqlTextInfo, SqlRowNo, QueryParts, QueryCount, CASE WHEN ROW_NUMBER() OVER (PARTITION BY QueryCount, SqlTextInfo ORDER BY QueryId, SqlRowNo) = 1 AND SqlRowNo = 1 THEN 1 ELSE 0 END AS QueryFirstRow FROM ( SELECT q.QueryId, q.SqlTextInfo, q.SqlRowNo, MAX(q.SqlRowNo) OVER (PARTITION BY q.QueryId) QueryParts, COUNT(q.SqlTextInfo) OVER (PARTITION BY q.SqlTextInfo) QueryCount FROM DBC.dbqlsqltbl q INNER JOIN ( SELECT QueryId FROM DBC.DBQLogTbl t WHERE TRIM(t.StatementType) IN ('SELECT') AND TRIM(t.AbortFlag) = '' AND t.ERRORCODE = 0 AND (CASE WHEN 'All users' IN ('All users') THEN 'All users' ELSE TRIM(t.USERNAME) END) IN ('All users') --user_name list AND t.StartTime > CURRENT_TIMESTAMP - INTERVAL '30' DAY GROUP BY 1 ) t ON q.QueryId = t.QueryId INNER JOIN ( SELECT QueryId FROM DBC.QryLogObjectsV WHERE ObjectDatabaseName = 'your_database_name' AND ObjectType = 'Tab' AND CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY GROUP BY 1 ) r ON r.QueryId = t.QueryId WHERE q.CollectTimeStamp > CURRENT_TIMESTAMP - INTERVAL '30' DAY ) t ) t WHERE SqlTextInfo NOT LIKE '%";"%' ) q WHERE QueryParts >=1 AND topN <= 50 ORDER BY QueryCount DESC, QueryId, SqlRowNo QUALIFY COUNT(QueryId) OVER (PARTITION BY QueryId) = QueryParts; .EXPORT RESET .LOGOFF .QUIT
-
Créez le
td_run_bteq.bat
fichier qui exécute le BTEQ script que vous avez créé à l'étape précédente. Utilisez le contenu suivant pour ce fichier.@echo off > off-line_stats1.bteq & setLocal enableDELAYedexpansion @echo off > off-line_stats2.bteq & setLocal enableDELAYedexpansion set old1=your_teradata_server set new1=%1 set old2=your_login set new2=%2 set old3=your_database_name set new3=%3 set old4=your_password set /p new4=Input %2 pass? for /f "tokens=* delims= " %%a in (off-line_stats.bteq) do ( set str1=%%a set str1=!str1:%old1%=%new1%! >> off-line_stats1.bteq echo !str1! ) for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do ( set str2=%%a set str2=!str2:%old2%=%new2%! >> off-line_stats2.bteq echo !str2! ) type nul > off-line_stats1.bteq for /f "tokens=* delims= " %%a in (off-line_stats2.bteq) do ( set str3=%%a set str3=!str3:%old3%=%new3%! >> off-line_stats1.bteq echo !str3! ) type nul > off-line_stats2.bteq for /f "tokens=* delims= " %%a in (off-line_stats1.bteq) do ( set str4=%%a set str4=!str4:%old4%=%new4%! >> off-line_stats2.bteq echo !str4! ) del .\off-line_stats1.bteq echo export starting... bteq -c UTF8 < off-line_stats.bteq > metadata_export.log pause
-
Créez le
runme.bat
fichier qui exécute le fichier batch que vous avez créé à l'étape précédente. Utilisez le contenu suivant pour ce fichier..\td_run_bteq.bat
ServerName
UserName
DatabaseName
Dans le
runme.bat
fichier, remplacezServerName
,UserName
, etDatabaseName
avec vos valeurs applicables.Exécutez ensuite le
runme.bat
fichier. Répétez cette étape pour chaque entrepôt de données que vous convertissez en Amazon Redshift.
Après avoir exécuté ce script, vous recevez trois fichiers contenant des statistiques pour chaque base de données. Vous pouvez télécharger ces fichiers dans votre AWS SCT projet. Pour ce faire, choisissez votre entrepôt de données dans le panneau de gauche de votre projet et ouvrez le menu contextuel (clic droit). Choisissez Upload Statistics.
Paramètres de conversion de Teradata vers Amazon Redshift
Pour modifier les paramètres de conversion de Teradata vers Amazon Redshift, choisissez Paramètres AWS SCT dans, puis sélectionnez Paramètres de conversion. Dans la liste supérieure, choisissez Teradata, puis Teradata — Amazon Redshift. AWS SCT affiche tous les paramètres disponibles pour la conversion de Teradata vers Amazon Redshift.
Les paramètres de conversion de Teradata vers Amazon Redshift incluent des options pour AWS SCT les éléments suivants :
-
Pour limiter le nombre de commentaires contenant des actions dans le code converti.
Pour Ajouter des commentaires dans le code converti pour les actions de gravité sélectionnée ou supérieure, choisissez la sévérité des actions. AWS SCT ajoute des commentaires dans le code converti pour les actions dont la gravité est sélectionnée ou supérieure.
Par exemple, pour réduire au maximum le nombre de commentaires dans votre code converti, choisissez Erreurs uniquement. Pour inclure les commentaires pour tous les éléments d’action de votre code converti, choisissez Tous les messages.
-
Pour définir le nombre maximum de tables AWS SCT pouvant s'appliquer à votre cluster Amazon Redshift cible.
Pour le nombre maximum de tables pour le cluster Amazon Redshift cible, choisissez le nombre de tables qui AWS SCT peuvent s'appliquer à votre cluster Amazon Redshift.
Amazon Redshift dispose de quotas qui limitent l’utilisation des tables pour différents types de nœud de cluster. Si vous choisissez Auto, AWS SCT détermine le nombre de tables à appliquer à votre cluster Amazon Redshift cible en fonction du type de nœud. Vous pouvez éventuellement choisir la valeur manuellement. Pour plus d’informations, consultez Quotas et limites dans Amazon Redshift dans le Guide de gestion Amazon Redshift.
AWS SCT convertit toutes vos tables sources, même si c'est plus que ce que votre cluster Amazon Redshift peut stocker. AWS SCT stocke le code converti dans votre projet et ne l'applique pas à la base de données cible. Si vous atteignez le quota de cluster Amazon Redshift pour les tables lorsque vous appliquez le code converti, un message d'avertissement s' AWS SCT affiche. AWS SCT Applique également des tables à votre cluster Amazon Redshift cible jusqu'à ce que le nombre de tables atteigne la limite.
-
Pour migrer des partitions de la table source vers des tables séparées dans Amazon Redshift. Pour ce faire, sélectionnez Utiliser la UNION ALL vue et entrez le nombre maximum de tables cibles AWS SCT pouvant être créées pour une seule table source.
Amazon Redshift ne prend pas en charge le partitionnement des tables. Pour imiter ce comportement et accélérer l'exécution des requêtes, AWS SCT vous pouvez migrer chaque partition de votre table source vers une table distincte dans Amazon Redshift. AWS SCT Crée ensuite une vue qui inclut les données de toutes ces tables.
AWS SCT détermine automatiquement le nombre de partitions de votre table source. Selon le type de partitionnement de votre table source, ce nombre peut dépasser le quota de tables que vous pouvez appliquer à votre cluster Amazon Redshift. Pour éviter d'atteindre ce quota, entrez le nombre maximum de tables cibles AWS SCT pouvant être créées pour les partitions d'une seule table source. L'option par défaut est 368 tables, ce qui représente une partition pendant 366 jours par an et deux tables pour
NO RANGE
etUNKNOWN
partitions. -
Pour appliquer une compression aux colonnes d'un tableau Amazon Redshift. Pour ce faire, sélectionnez Utiliser le codage par compression.
AWS SCT attribue automatiquement un codage de compression aux colonnes à l'aide de l'algorithme Amazon Redshift par défaut. Pour plus d'informations, consultez la section Encodages de compression dans le manuel Amazon Redshift Database Developer Guide.
Par défaut, Amazon Redshift n'applique pas de compression aux colonnes définies comme clés de tri et de distribution. Vous pouvez modifier ce comportement et appliquer une compression à ces colonnes. Pour ce faire, sélectionnez Utiliser le codage de compression pour les KEY colonnes. Vous ne pouvez sélectionner cette option que lorsque vous sélectionnez l'option Utiliser le codage par compression.
-
Pour utiliser une liste explicite de colonnes dans le code converti pour les
SELECT *
instructions, sélectionnez Utiliser une déclaration de colonne explicite. -
Pour émuler le comportement des clés primaires et uniques dans votre cluster Amazon Redshift, sélectionnez Émuler le comportement des clés primaires et uniques.
Amazon Redshift n'applique pas les clés uniques et primaires et ne les utilise qu'à des fins d'information. Si vous utilisez ces contraintes dans votre code, assurez-vous qu'elles AWS SCT imitent leur comportement dans le code converti.
-
Pour garantir l'unicité des données dans les tables Amazon Redshift cibles. Pour ce faire, sélectionnez Émuler le comportement des SET tables.
Teradata crée des tables en utilisant l'élément de
SET
syntaxe comme option par défaut. Vous ne pouvez pas ajouter de lignes dupliquées dans unSET
tableau. Si votre code source n'utilise pas cette contrainte d'unicité, désactivez cette option. Dans ce cas, le code converti fonctionne plus rapidement.Si votre code source utilise l'
SET
option dans les tables comme contrainte d'unicité, activez cette option. Dans ce cas, AWS SCT réécritINSERT..SELECT
les instructions dans le code converti pour imiter le comportement de votre base de données source.
Paramètres d'optimisation de la conversion entre Teradata et Amazon Redshift
Pour modifier les paramètres d'optimisation de conversion de Teradata vers Amazon Redshift, choisissez Paramètres AWS SCT dans, puis sélectionnez Paramètres de conversion. Dans la liste supérieure, choisissez Teradata, puis Teradata — Amazon Redshift. Dans le volet de gauche, sélectionnez Stratégies d'optimisation. AWS SCT affiche les paramètres d'optimisation de conversion pour la conversion de Teradata vers Amazon Redshift.
Les paramètres AWS SCT d'optimisation de la conversion de Teradata vers Amazon Redshift incluent des options pour les éléments suivants :
-
Pour travailler avec l'optimisation automatique des tables. Pour ce faire, sélectionnez Utiliser le réglage automatique des tables Amazon Redshift.
L'optimisation automatique des tables est un processus d'autoréglage dans Amazon Redshift qui optimise automatiquement la conception des tables. Pour plus d'informations, consultez la section Utilisation de l'optimisation automatique des tables dans le manuel Amazon Redshift Database Developer Guide.
Pour vous fier uniquement à l'optimisation automatique des tables, choisissez Aucune pour la stratégie initiale de sélection des clés.
-
Pour choisir les clés de tri et de distribution selon votre stratégie.
Vous pouvez choisir des clés de tri et de distribution à l'aide des métadonnées Amazon Redshift, des informations statistiques ou des deux options. Pour Stratégie initiale de sélection des clés dans l'onglet Stratégies d'optimisation, choisissez l'une des options suivantes :
Utiliser des métadonnées, ignorer les informations statistiques
Ignorer les métadonnées, utiliser des informations statistiques
Utiliser des métadonnées et des informations statistiques
Selon l'option que vous choisissez, vous pouvez sélectionner des stratégies d'optimisation. Entrez ensuite la valeur (0 à 100) pour chaque stratégie. Ces valeurs définissent le poids de chaque stratégie. À l'aide de ces valeurs de pondération, AWS SCT définit l'influence de chaque règle sur le choix des clés de distribution et de tri. Les valeurs par défaut sont basées sur les meilleures pratiques de AWS migration.
Vous pouvez définir la taille des petites tables dans le cadre de la stratégie Find small tables. Pour Nombre minimum de lignes de tableau et Nombre maximum de lignes de tableau, entrez le nombre minimum et maximum de lignes dans un tableau pour le définir comme un petit tableau. AWS SCT applique le style
ALL
de distribution aux petites tables. Dans ce cas, une copie de la table complète est distribuée à chaque nœud. -
Pour configurer les détails de la stratégie.
Outre la définition du poids pour chaque stratégie d'optimisation, vous pouvez configurer les paramètres d'optimisation. Pour ce faire, choisissez Optimisation des conversions.
Pour le champ Limite des colonnes clés de tri, entrez le nombre maximum de colonnes dans la clé de tri.
Pour une valeur de seuil asymétrique, entrez le pourcentage (0 à 100) d'une valeur asymétrique pour une colonne. AWS SCT exclut les colonnes dont la valeur d'inclinaison est supérieure au seuil de la liste des candidats pour la clé de distribution. AWS SCT définit la valeur asymétrique d'une colonne comme le pourcentage entre le nombre d'occurrences de la valeur la plus courante et le nombre total d'enregistrements.
Pour les N principales requêtes de la table d'historique des requêtes, entrez le nombre (1 à 100) des requêtes les plus fréquemment utilisées à analyser.
Pour Sélectionner un utilisateur de statistiques, choisissez l'utilisateur de base de données pour lequel vous souhaitez analyser les statistiques de requête.
Dans l'onglet Stratégies d'optimisation, vous pouvez également définir la taille des petites tables pour la stratégie Rechercher de petites tables. Pour Nombre minimal de lignes de tableau et Nombre maximal de lignes de tableau, entrez le nombre minimum et maximum de lignes dans un tableau pour le considérer comme un petit tableau. AWS SCT applique le style
ALL
de distribution aux petites tables. Dans ce cas, une copie de la table complète est distribuée à chaque nœud.