Connexion à un entrepôt de données Snowflake avec AWS Schema Conversion Tool - AWS Schema Conversion Tool

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 Snowflake avec AWS Schema Conversion Tool

Vous pouvez l'utiliser AWS SCT pour convertir des schémas, des objets de code et du code d'application de Snowflake vers Amazon Redshift.

Privilèges pour Snowflake en tant que base de données source

Vous pouvez créer un rôle doté de privilèges et attribuer à ce rôle le nom d'un utilisateur en utilisant le SECURITYADMIN rôle et le contexte de SECURITYADMIN session.

L'exemple suivant crée des privilèges minimaux et les accorde à l'min_privsutilisateur.

create role role_name; grant role role_name to role sysadmin; grant usage on database db_name to role role_name; grant usage on schema db_name.schema_name to role role_name; grant usage on warehouse datawarehouse_name to role role_name; grant monitor on database db_name to role role_name; grant monitor on warehouse datawarehouse_name to role role_name; grant select on all tables in schema db_name.schema_name to role role_name; grant select on future tables in schema db_name.schema_name to role role_name; grant select on all views in schema db_name.schema_name to role role_name; grant select on future views in schema db_name.schema_name to role role_name; grant select on all external tables in schema db_name.schema_name to role role_name; grant select on future external tables in schema db_name.schema_name to role role_name; grant usage on all sequences in schema db_name.schema_name to role role_name; grant usage on future sequences in schema db_name.schema_name to role role_name; grant usage on all functions in schema db_name.schema_name to role role_name; grant usage on future functions in schema db_name.schema_name to role role_name; grant usage on all procedures in schema db_name.schema_name to role role_name; grant usage on future procedures in schema db_name.schema_name to role role_name; create user min_privs password='real_user_password' DEFAULT_ROLE = role_name DEFAULT_WAREHOUSE = 'datawarehouse_name'; grant role role_name to user min_privs;

Dans l'exemple précédent, remplacez les espaces réservés comme suit :

  • Remplacez role_name avec le nom d'un rôle doté de privilèges de lecture seule.

  • Remplacez db_name par le nom de la base de données source.

  • Remplacez schema_name par le nom du schéma source.

  • Remplacez nom de l'entrepôt de données avec le nom d'un entrepôt de données requis.

  • Remplacez min_privs par le nom d'un utilisateur disposant de privilèges minimaux.

Les DEFAULT_WAREHOUSE paramètres DEFAULT_ROLE et sont sensibles aux touches.

Configuration de l'accès sécurisé à Amazon S3

Les politiques de sécurité et de gestion des accès pour un compartiment Amazon S3 permettent à Snowflake d'accéder au compartiment S3, de lire des données et d'y écrire des données. Vous pouvez configurer un accès sécurisé à un compartiment Amazon S3 privé à l'aide du type d'STORAGE INTEGRATIONobjet Snowflake. Un objet d'intégration de stockage Snowflake délègue la responsabilité de l'authentification à une entité de gestion des identités et des accès Snowflake.

Pour plus d'informations, consultez la section Configuration d'une intégration de stockage Snowflake pour accéder à Amazon S3 dans la documentation de Snowflake.

Connexion à Snowflake en tant que source

Suivez la procédure ci-dessous pour vous connecter à votre base de données source à l'aide du AWS Schema Conversion Tool.

Pour vous connecter à une base de données source Snowflake
  1. Dans le AWS Schema Conversion Tool, choisissez Ajouter une source.

  2. Choisissez Snowflake, puis Next.

    La boîte de dialogue Ajouter une source apparaît.

  3. 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.

  4. 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 :

      1. Pour AWS Secret, choisissez le nom du secret.

      2. 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 à l'entrepôt de données source Snowflake, suivez les instructions suivantes :

      Paramètre Action
      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)

      Entrez le nom de la base de données Snowflake.

      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 enregistre votre mot de passe dans un format crypté uniquement si vous le demandez explicitement.

      Utiliser SSL

      Choisissez cette option si vous souhaitez utiliser Secure Sockets Layer (SSL) pour vous connecter à votre base de données. Fournissez les informations supplémentaires suivantes, le cas échéant, dans l'SSLonglet :

      • Chemin de clé privée : emplacement d'une clé privée.

      • Phrase secrète : phrase secrète de la clé privée.

      Pour plus d'informations sur la SSL prise en charge de Snowflake, consultez Configurer les options de sécurité pour les connexions.

      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. Si vous définissez cette option, vous pouvez enregistrer le mot de passe de la base de données. Cela signifie que vous pouvez vous connecter rapidement à la base de données sans avoir à saisir le mot de passe.

      Trajectoire du pilote Snowflake

      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.

  5. Choisissez Tester la connexion pour vérifier que AWS SCT vous pouvez vous connecter à votre base de données source.

  6. Choisissez Connect pour vous connecter à votre base de données source.

Limitations de Snowflake en tant que source

Les limites suivantes s'appliquent à l'utilisation de Snowflake comme source pour : AWS SCT

  • Les identificateurs d'objet doivent être uniques dans le contexte du type d'objet et de l'objet parent :

    Base de données

    Les identificateurs de schéma doivent être uniques au sein d'une base de données.

    Schémas

    Les identifiants d'objets tels que les tables et les vues doivent être uniques au sein d'un schéma.

    Tables/Vues

    Les identificateurs de colonne doivent être uniques dans une table.

  • Le nombre maximal de tables pour les types de nœud de cluster large et xlarge est de 9 900. Pour les types de nœuds de cluster de 8 x large, le nombre maximum de tables est de 100 000. La limite inclut les tables temporaires, définies par l'utilisateur et créées par Amazon Redshift lors du traitement des requêtes ou de la maintenance du système. Pour plus d'informations, consultez la rubrique Quotas Amazon Redshift dans le Guide de la gestion du cluster Amazon Redshift.

  • Pour les procédures stockées, le nombre maximum d'arguments d'entrée et de sortie est de 32.

Types de données source pour Snowflake

Vous trouverez ci-dessous les types de données source Snowflake pris en charge lors de l'utilisation AWS SCT et le mappage par défaut vers une cible Amazon Redshift.

Types de données Snowflake Types de données Amazon Redshift

NUMBER

NUMERIC(38)

NUMBER(p)

Si p est =< 4, alors SMALLINT

Si p est => 5 et =< 9, alors INTEGER

Si p est => 10 et =< 18, alors BIGINT

Si p est => 19 alors NUMERIC (p)

NUMBER(p, 0)

Si p est =< 4, alors SMALLINT

Si p est => 5 et =< 9, alors INTEGER

Si p est => 10 et =< 18, alors BIGINT

Si p est => 19 alors : NUMERIC (p,0)

NUMBER(p, s)

Si p est => 1 et =< 38, et si s est => 1 et =< 37, alors

NUMERIC(p, s)

FLOAT

FLOAT

TEXT

Caractères Unicode jusqu'à 16 777 216 octets ; jusqu'à 4 octets par caractère.

VARCHAR(MAX)

TEXT(p)

Caractères Unicode jusqu'à 65 535 octets ; jusqu'à 4 octets par caractère.

Si p est =< 65 535 alors, VARCHAR (p)

TEXT(p)

Caractères Unicode jusqu'à 16 777 216 octets ; jusqu'à 4 octets par caractère.

Si p est => 65 535 et =< 16 777 216 alors, () VARCHAR MAX

BINARY

Caractères à un octet jusqu'à 8 388 608 octets ; 1 octet par caractère.

VARCHAR(MAX)

BINARY(p)

Caractères à un octet jusqu'à 65 535 octets ; 1 octet par caractère.

VARCHAR(p)

BINARY(p)

Caractères à un octet jusqu'à 8 388 608 octets ; 1 octet par caractère.

VARCHAR(MAX)

BOOLEAN

BOOLEAN

DATE

DATE

TIME

Valeurs temporelles comprises entre 00:00:00 et 23:59:59.999 999999.

VARCHAR(18)

TIME(f)

Valeurs temporelles comprises entre 00:00:00 et 23:59:59.9 (f).

VARCHAR(n) — 9 + dt-attr-1

TIMESTAMP_NTZ

TIMESTAMP

TIMESTAMP_TZ

TIMESTAMPTZ

Paramètres de conversion de Snowflake vers Amazon Redshift

Pour modifier les paramètres de conversion de Snowflake vers Amazon Redshift, choisissez Paramètres AWS SCT dans, puis sélectionnez Paramètres de conversion. Dans la liste supérieure, choisissez Snowflake, puis Snowflake — Amazon Redshift. AWS SCT affiche tous les paramètres disponibles pour la conversion de Snowflake vers Amazon Redshift.

Les paramètres de conversion de Snowflake 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 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.

Paramètres d'optimisation de la conversion de Snowflake vers Amazon Redshift

Pour modifier les paramètres d'optimisation de conversion de Snowflake vers Amazon Redshift, choisissez Paramètres AWS SCT dans, puis sélectionnez Paramètres de conversion. Dans la liste supérieure, choisissez Snowflake, puis Snowflake — Amazon Redshift. Dans le volet de gauche, sélectionnez Stratégies d'optimisation. AWS SCT affiche les paramètres d'optimisation des conversions pour la conversion de Snowflake vers Amazon Redshift.

Les paramètres d'optimisation de la conversion de Snowflake vers Amazon Redshift incluent des options pour AWS SCT 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.