11.6 C
New York

Automatisez le déploiement d’une analyse Amazon QuickSight en vous connectant à un entrepôt de données Amazon Redshift avec un modèle AWS CloudFormation


Redshift d’Amazon est l’entrepôt de données le plus largement utilisé dans le cloud, le mieux adapté pour analyser des exaoctets de données et exécuter des requêtes analytiques complexes. Amazon QuickSight est un service d’analyse commerciale rapide permettant de créer des visualisations, d’effectuer des analyses advert hoc et d’obtenir rapidement des informations commerciales à partir de vos données. QuickSight offre une intégration facile avec Amazon Redshift, offrant un accès natif à toutes vos données et permettant aux organisations d’adapter leurs capacités d’analyse commerciale à des centaines de milliers d’utilisateurs. QuickSight offre des performances de requête rapides et réactives en utilisant un moteur en mémoire robuste (SPICE).

En tant qu’administrateur QuickSight, vous pouvez utiliser AWS CloudFormation modèles pour migrer les actifs entre des environnements distincts du développement, au check, à la manufacturing. AWS CloudFormation vous aide à modéliser et à configurer vos ressources AWS afin que vous puissiez passer moins de temps à gérer ces ressources et plus de temps à vous concentrer sur vos purposes qui s’exécutent dans AWS. Vous n’avez plus besoin de créer manuellement des sources de données ou des analyses. Vous créez un modèle qui décrit toutes les ressources AWS que vous souhaitez, et AWS CloudFormation s’occupe de l’approvisionnement et de la configuration de ces ressources pour vous. De plus, avec la gestion des variations, vous disposez de vos ressources précédentes, ce qui vous offre la possibilité d’annuler les déploiements en cas de besoin. Pour plus de détails, reportez-vous à Référence du sort de ressource Amazon QuickSight.

Dans cet article, nous montrons remark automatiser le déploiement d’une analyse QuickSight en se connectant à un entrepôt de données Amazon Redshift avec un modèle CloudFormation.

Vue d’ensemble de la answer

Notre answer se compose des étapes suivantes :

  1. Créez une analyse QuickSight à l’aide d’une supply de données Amazon Redshift.
  2. Créez un modèle QuickSight pour votre analyse.
  3. Créez un modèle CloudFormation pour votre analyse à l’aide de Interface de ligne de commande AWS (AWS CLI).
  4. Utilisez le modèle CloudFormation généré pour déployer une analyse QuickSight dans un environnement cible.

Le diagramme suivant montre l’structure de la façon dont vous pouvez avoir plusieurs comptes AWS, chacun avec son propre environnement QuickSight connecté à sa propre supply de données Amazon Redshift. Dans cet article, nous décrivons les étapes impliquées dans la migration des ressources QuickSight du compte de développement vers le compte de manufacturing. Pour cet article, nous utilisons Amazon Redshift comme supply de données et créons une visualisation QuickSight à l’aide de l’exemple de base de données TICKIT d’Amazon Redshift.

Le diagramme suivant illustre le déroulement des étapes de haut niveau.

Circumstances préalables

Avant de configurer les piles CloudFormation, vous devez avoir un compte AWS et un Gestion des identités et des accès AWS (IAM) utilisateur disposant des autorisations suffisantes pour interagir avec le Console de gestion AWS et les providers répertoriés dans l’structure.

La migration nécessite les prérequis suivants :

Créer une analyse QuickSight dans votre environnement de développement

Dans cette part, nous passons en revue les étapes de configuration de votre analyse QuickSight à l’aide d’une supply de données Amazon Redshift.

Créer une supply de données Amazon Redshift

Pour vous connecter à votre entrepôt de données Amazon Redshift, vous devez créer une supply de données dans QuickSight. Comme le montre la seize d’écran suivante, vous avez deux choices :

  • Auto-découvert
  • Connexion manuelle

QuickSight découvre automatiquement Clusters Amazon Redshift associés à votre compte AWS. Ces ressources doivent être situées dans la même région que votre compte QuickSight.

Pour plus de détails, reportez-vous à Autorisation des connexions d’Amazon QuickSight aux clusters Amazon Redshift.

Vous pouvez également vous connecter manuellement et créer une supply de données.

Créer un ensemble de données Amazon Redshift

L’étape suivante consiste à créer un ensemble de données QuickSight, qui identifie les données spécifiques dans une supply de données que vous souhaitez utiliser.

Pour cet article, nous utilisons la base de données TICKIT créée dans un entrepôt de données Amazon Redshift, qui se compose de sept tables : deux tables de faits et cinq dimensions, comme illustré dans la determine suivante.

Cet exemple d’utility de base de données aide les analystes à suivre l’activité des ventes pour le website Internet fictif TICKIT, où les utilisateurs achètent et vendent des billets en ligne pour des événements sportifs, des spectacles et des live shows.

  1. Sur le Jeux de données web page, choisissez Nouvel ensemble de données.
  2. Choisissez la supply de données que vous avez créée à l’étape précédente.
  3. Choisir Utiliser SQL personnalisé.
  4. Entrez le SQL personnalisé comme indiqué dans la seize d’écran suivante.

La seize d’écran suivante montre notre supply de données terminée.

Créer une analyse QuickSight

L’étape suivante consiste à créer une analyse qui utilise cet ensemble de données. Dans QuickSight, vous analysez et visualisez vos données dans des analyses. Lorsque vous avez terminé, vous pouvez publier votre analyse sous forme de tableau de bord à partager avec d’autres membres de votre organisation.

  1. Sur le Toutes les analyses de la web page de démarrage de QuickSight, choisissez Nouvelle analyse.

Le Jeux de données la web page s’ouvre.

  1. Choisissez un ensemble de données, puis choisissez Utilisation en analyse.

  1. Créer un visuel. Pour plus d’informations sur la création de visuels, consultez Ajout de visuels aux analyses Amazon QuickSight.

Créer un modèle QuickSight à partir de votre analyse

Un modèle QuickSight est un objet nommé dans votre compte AWS qui contient la définition de votre analyse et des références aux ensembles de données utilisés. Vous pouvez créer un modèle à l’aide de l’API QuickSight en fournissant les détails de l’analyse supply by way of un fichier de paramètres. Vous pouvez utiliser des modèles pour créer facilement une nouvelle analyse.

Vous pouvez utiliser AWS Cloud9 à partir de la console pour exécuter des commandes AWS CLI.

La commande AWS CLI suivante montre remark créer un modèle QuickSight basé sur l’analyse des ventes que vous avez créée (fournissez votre ID de compte AWS pour votre compte dev) :

aws quicksight create-template --aws-account-id  <DEVACCOUNT>--template-id QS-RS-SalesAnalysis-Template --cli-input-json file://parameters.json

Le parameter.json contient les détails suivants (fournissez votre ARN d’utilisateur QuickSight supply, votre ARN d’analyse et votre ARN d’ensemble de données) :

{
    "Title": "QS-RS-SalesAnalysis-Temp",
    "Permissions": (
        {"Principal": "<QS-USER-ARN>", 
          "Actions": ( "quicksight:CreateTemplate",
                       "quicksight:DescribeTemplate",                   
                       "quicksight:DescribeTemplatePermissions",
                       "quicksight:UpdateTemplate"         
            ) } ) ,
     "SourceEntity": {
       "SourceAnalysis": {
         "Arn": "<QS-ANALYSIS-ARN>",
         "DataSetReferences": (
           {
             "DataSetPlaceholder": "gross sales",
             "DataSetArn": "<QS-DATASET-ARN>"
           }
         )
       }
     },
     "VersionDescription": "1"
    }

Vous pouvez utiliser l’AWS CLI décrire-utilisateur, description_analyseet décrire_ensemble de données commandes pour obtenir les ARN requis.

Pour télécharger la mise à jour parameter.json fichier vers AWS Cloud9, choisissez Déposer dans la barre d’outils et choisissez Téléchargez le fichier native.

Le modèle QuickSight est créé en arrière-plan. Les modèles QuickSight ne sont pas visibles dans l’interface utilisateur QuickSight ; il s’agit d’un actif géré par le développeur ou l’administrateur qui n’est accessible que by way of l’AWS CLI ou les API.

Pour vérifier l’état du modèle, exécutez le describe-template commande:

aws quicksight describe-template --aws-account-id <DEVACCOUNT> --template-id "QS-RS-SalesAnalysis-Temp"

Le code suivant affiche la sortie de la commande :

Copiez le modèle ARN ; nous en aurons besoin plus tard pour créer un modèle dans le compte de manufacturing.

Les autorisations du modèle QuickSight dans le compte dev doivent être mises à jour pour donner accès au compte prod. Exécutez la commande suivante pour mettre à jour le modèle QuickSight. Cela fournit le privilège de description au compte cible pour extraire les détails du modèle du compte supply :

aws quicksight update-template-permissions --aws-account-id <DEVACCOUNT> --template-id “QS-RS-SalesAnalysis-Temp” --grant-permissions file://TemplatePermission.json

Le fichier TemplatePermission.json contient les détails suivants (indiquez votre ID de compte AWS cible) :

(
  {
    "Principal": "arn:aws:iam::<TARGET ACCOUNT>",
    "Actions": (
      "quicksight:UpdateTemplatePermissions",
      "quicksight:DescribeTemplate"
    )
  }
)

Pour télécharger la mise à jour TemplatePermission.json fichier vers AWS Cloud9, choisissez le Déposer menu de la barre d’outils et choisissez Téléchargez le fichier native.

Créer un modèle CloudFormation

Dans cette part, nous créons un modèle CloudFormation contenant nos ressources QuickSight. Dans cet exemple, nous utilisons un modèle au format YAML enregistré sur notre ordinateur native. Nous mettons à jour les différentes sections suivantes du modèle :

  • AWS::QuickSight::DataSource
  • AWS::QuickSight::DataSet
  • AWS::QuickSight::Modèle
  • AWS::QuickSight::Analyse

Certaines des informations requises pour compléter le modèle CloudFormation peuvent être recueillies à partir du compte QuickSight supply by way of le describe Les commandes de l’AWS CLI et certaines informations doivent être mises à jour pour le compte cible.

Créer une supply de données Amazon Redshift dans AWS CloudFormation

Dans cette étape, nous ajoutons le AWS::QuickSight::DataSource part du modèle CloudFormation.

Rassemblez les informations suivantes sur le cluster Amazon Redshift dans le compte AWS cible (environnement de manufacturing) :

  • ARN de connexion VPC
  • Héberger
  • Port
  • Base de données
  • Utilisateur
  • Mot de passe
  • ID de grappe

Vous avez la possibilité de créer un personnalisé DataSourceID. Cet ID est distinctive par région pour chaque compte AWS.

Ajoutez les informations suivantes au modèle :

Sources:
  RedshiftBuildQSDataSource:
    Sort: 'AWS::QuickSight::DataSource'
    Properties:  
      DataSourceId: "RS-Gross sales-DW"      
      AwsAccountId: !Sub ${AWS::ACCOUNT ID}
      VpcConnectionProperties:
        VpcConnectionArn: <VPC-CONNECTION-ARN>      
      Sort: REDSHIFT   
      DataSourceParameters:
        RedshiftParameters:     
          Host: "<HOST>"
          Port: <PORT>
          Clusterid: "<CLUSTER ID>"
          Database: "<DATABASE>"    
      Title: "RS-Gross sales-DW"
      Credentials:
        CredentialPair:
          Username: <USER>
          Password: <PASSWORD>
      Permissions:

Créer un ensemble de données Amazon Redshift dans AWS CloudFormation

Dans cette étape, nous ajoutons le AWS::QuickSight::DataSet part dans le modèle CloudFormation pour correspondre à la définition de l’ensemble de données du compte supply.

Rassemblez les détails de l’ensemble de données et exécutez le list-data-sets commande pour obtenir tous les ensembles de données du compte supply (fournissez l’ID de votre compte de développement supply) :

aws quicksight list-data-sets  --aws-account-id <DEVACCOUNT>

Le code suivant est la sortie :

Exécutez le describe-data-set commande, en spécifiant l’ID de l’ensemble de données à partir de la réponse de la commande précédente :

aws quicksight describe-data-set --aws-account-id <DEVACCOUNT> --data-set-id "<YOUR-DATASET-ID>"

Le code suivant affiche une sortie partielle :

En fonction de la description du jeu de données, ajoutez le AWS::Quicksight::DataSet ressource dans le modèle CloudFormation, comme illustré dans le code suivant. Notez que vous pouvez également créer un DataSetID. Cet ID est distinctive par région pour chaque compte AWS.

QSRSBuildQSDataSet:
    Sort: 'AWS::QuickSight::DataSet'
    Properties:
      DataSetId: "RS-Gross sales-DW" 
      Title: "gross sales" 
      AwsAccountId: !Sub ${AWS::ACCOUNT ID}
      PhysicalTableMap:
        PhysicalTable1:          
          CustomSql:
            SqlQuery: "choose sellerid, username, (firstname ||' '|| lastname) as identify,metropolis, sum(qtysold) as gross sales
              from gross sales, date, customers
              the place gross sales.sellerid = customers.userid and gross sales.dateid = date.dateid and yr = 2008
              group by sellerid, username, identify, metropolis
              order by 5 desc
              restrict 10"
            DataSourceArn: !GetAtt RedshiftBuildQSDataSource.Arn
            Title"RS-Gross sales-DW"
            Columns:
            - Sort: INTEGER
              Title: sellerid
            - Sort: STRING
              Title: username
            - Sort: STRING
              Title: identify
            - Sort: STRING
              Title: metropolis
            - Sort: DECIMAL
              Title: gross sales                                     
      LogicalTableMap:
        LogicalTable1:
          Alias: gross sales
          Supply:
            PhysicalTableId: PhysicalTable1
          DataTransforms:
          - CastColumnTypeOperation:
              ColumnName: gross sales
              NewColumnType: DECIMAL
      Permissions:
        - Principal: !Be a part of 
            - ''
            - - 'arn:aws:quicksight:'
              - !Ref QuickSightIdentityRegion
              - ':'
              - !Ref 'AWS::AccountId'
              - ':consumer/default/'
              - !Ref QuickSightUser
          Actions:
            - 'quicksight:UpdateDataSetPermissions'
            - 'quicksight:DescribeDataSet'
            - 'quicksight:DescribeDataSetPermissions'
            - 'quicksight:PassDataSet'
            - 'quicksight:DescribeIngestion'
            - 'quicksight:ListIngestions'
            - 'quicksight:UpdateDataSet'
            - 'quicksight:DeleteDataSet'
            - 'quicksight:CreateIngestion'
            - 'quicksight:CancelIngestion'
      ImportMode: DIRECT_QUERY

Vous pouvez spécifier ImportMode choisir entre Direct_Query ou Spice.

Créer un modèle QuickSight dans AWS CloudFormation

Dans cette étape, nous ajoutons le AWS::QuickSight::Modèle part dans le modèle CloudFormation, représentant le modèle d’analyse.

Utilisez l’ARN du modèle supply que vous avez créé précédemment et ajoutez le AWS::Quicksight::Template ressource dans le modèle CloudFormation :

QSTCFBuildQSTemplate:
    Sort: 'AWS::QuickSight::Template'
    Properties:
      TemplateId: "QS-RS-SalesAnalysis-Temp"
      Title: "QS-RS-SalesAnalysis-Temp"
      AwsAccountId:!Sub ${AWS::ACCOUNT ID}
      SourceEntity:
        SourceTemplate:
          Arn: '<SOURCE-TEMPLATE-ARN>'          
      Permissions:
        - Principal: !Be a part of 
            - ''
            - - 'arn:aws:quicksight:'
              - !Ref QuickSightIdentityRegion
              - ':'
              - !Ref 'AWS::AccountId'
              - ':consumer/default/'
              - !Ref QuickSightUser
          Actions:
            - 'quicksight:DescribeTemplate'
      VersionDescription: Preliminary model - Copied over from AWS account.

Créer une analyse QuickSight

Dans cette dernière étape, nous ajoutons AWS::QuickSight::Analyse part dans le modèle CloudFormation. L’analyse est liée au modèle créé dans le compte cible.

Ajouter le AWS::Quicksight::Evaluation ressource dans le modèle CloudFormation, comme illustré dans le code suivant :

QSRSBuildQSAnalysis:
    Sort: 'AWS::QuickSight::Evaluation'
    Properties:
      AnalysisId: 'Gross sales-Evaluation'
      Title: 'Gross sales-Evaluation'
      AwsAccountId:!Sub ${AWS::ACCOUNT ID}
      SourceEntity:
        SourceTemplate:
          Arn: !GetAtt  QSTCFBuildQSTemplate.Arn
          DataSetReferences:
            - DataSetPlaceholder: 'gross sales'
              DataSetArn: !GetAtt QSRSBuildQSDataSet.Arn
      Permissions:
        - Principal: !Be a part of 
            - ''
            - - 'arn:aws:quicksight:'
              - !Ref QuickSightIdentityRegion
              - ':'
              - !Ref 'AWS::AccountId'
              - ':consumer/default/'
              - !Ref QuickSightUser
          Actions:
            - 'quicksight:RestoreAnalysis'
            - 'quicksight:UpdateAnalysisPermissions'
            - 'quicksight:DeleteAnalysis'
            - 'quicksight:DescribeAnalysisPermissions'
            - 'quicksight:QueryAnalysis'
            - 'quicksight:DescribeAnalysis'
            - 'quicksight:UpdateAnalysis'      

Déployer le modèle CloudFormation dans le compte de manufacturing

Pour créer une nouvelle pile CloudFormation qui utilise le modèle précédent by way of la console AWS CloudFormation, procédez comme go well with :

  1. Sur la console AWS CloudFormation, choisissez Créer une pile.
  2. Dans le menu déroulant, choisissez avec de nouvelles ressources (commonplace).
  3. Pour Préparer le modèlesélectionner Le modèle est prêt.
  4. Pour Spécifiez le modèlechoisir Télécharger un fichier modèle.
  5. Enregistrez le modèle CloudFormation fourni dans un fichier .yaml et chargez-le.
  6. Choisir Suivant.
  7. Entrez un nom pour la pile. Pour ce poste, nous utilisons QS-RS-CF-Stack.
  8. Choisir Suivant.
  9. Choisir Suivant encore.
  10. Choisir Créer une pile.

L’état de la pile passe à CREATE_IN_PROGRESSpuis à CREATE_COMPLETE.

Vérifiez que les objets QuickSight du tableau suivant ont été créés dans l’environnement de manufacturing.

Sort d’objet QuickSight Nom de l’objet (dev) Nom de l’objet (Prod)
La supply de données RS-Ventes-DW RS-Ventes-DW
Base de données Ventes Ventes
Modèle QS-RS-Ventes-Temp QS-RS-SalesAnalysis-Temp
Analyse Analyse des ventes Analyse des ventes

L’exemple suivant montre que Gross sales Evaluation a été créé dans le compte cible.

Conclusion

Cet article a démontré une approche pour migrer une analyse QuickSight avec une supply de données Amazon Redshift d’un compte QuickSight à un autre avec un modèle CloudFormation.

Pour plus d’informations sur l’automatisation du déploiement du tableau de bord, la personnalisation de l’accès à la console QuickSight, la configuration de la collaboration d’équipe et la mise en œuvre de la multilocation et de la séparation des utilisateurs purchasers, consultez les vidéos Atelier d’administration virtuelle : Utilisation des API Amazon QuickSight et Atelier virtuel de niveau supérieur pour les administrateurs, V2 sur Youtube.


A propos de l’auteur

Sandeep Bajwa est un spécialiste principal de l’analyse basé en Virginie du Nord, spécialisé dans la conception et la mise en œuvre de options d’analyse et de lac de données.

Related Articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Latest Articles