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.
Lancez votre AWS CloudFormation stack, puis interrogez vos données dans Amazon S3
Une fois que vous avez créé un cluster Amazon Redshift et que vous vous y êtes connecté, vous pouvez installer votre DataLake AWS CloudFormation modèle Redshift Spectrum, puis interroger vos données.
CloudFormation installe le modèle Redshift Spectrum Getting DataLake Started et crée une pile contenant les éléments suivants :
Un rôle nommé
myspectrum_role
associé à votre cluster RedshiftUn schéma externe nommé
myspectrum_schema
Une table externe nommée
sales
dans un compartiment Amazon S3Une table Redshift nommée
event
chargée de données
Pour lancer votre stack Redshift Spectrum Getting Started DataLake CloudFormation
Choisissez Launch CFN stack (Lancer la pile CFN)
. La CloudFormation console s'ouvre avec le modèle DataLake .yml sélectionné. Vous pouvez également télécharger et personnaliser le modèle DataLake CloudFormation CFN
Redshift Spectrum Getting Started, puis ouvrir CloudFormation la console (https://console.aws.amazon.com/cloudformation ) et créer une pile avec le modèle personnalisé. Choisissez Suivant.
Sous Parameters (Paramètres), saisissez le nom du cluster Amazon Redshift, le nom de base de données et le nom d’utilisateur de votre base de données.
Choisissez Suivant.
Les options de pile apparaissent.
Choisissez Next (Suivant) pour accepter les paramètres par défaut.
Passez en revue les informations et sous Fonctionnalités, puis sélectionnez Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM.
Sélectionnez Créer la pile.
Si une erreur se produit pendant la création de la pile, consultez les informations suivantes :
Consultez l'onglet CloudFormation Événements pour obtenir des informations qui peuvent vous aider à résoudre l'erreur.
Supprimez la DataLake CloudFormation pile avant de recommencer l'opération.
Assurez-vous que vous êtes connecté à votre base de données Amazon Redshift.
Assurez-vous d’avoir saisi les informations correctes pour le nom de cluster Amazon Redshift, le nom de base de données et le nom d’utilisateur de la base de données.
Interrogation de vos données dans Amazon S3
Vous interrogez les tables externes à l’aide des mêmes instructions SELECT que vous utilisez pour interroger d’autres tables Amazon Redshift. Ces requêtes d’instruction SELECT incluent la jonction des tables, le regroupement des données et le filtrage des prédicats.
La requête suivante renvoie le nombre de lignes dans la table externe myspectrum_schema.sales
.
select count(*) from myspectrum_schema.sales;
count ------ 172462
Joindre une table externe à une table locale
L’exemple suivant joint la table externe myspectrum_schema.sales
à la table locale event
afin de déterminer le total des ventes pour les 10 principaux événements.
select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event where myspectrum_schema.sales.eventid = event.eventid and myspectrum_schema.sales.pricepaid > 30 group by myspectrum_schema.sales.eventid order by 2 desc;
eventid | sum --------+--------- 289 | 51846.00 7895 | 51049.00 1602 | 50301.00 851 | 49956.00 7315 | 49823.00 6471 | 47997.00 2118 | 47863.00 984 | 46780.00 7851 | 46661.00 5638 | 46280.00
Affichage du plan de requête
Affichez le plan de la requête précédente. Observez les étapes S3 Seq Scan
, S3 HashAggregate
et S3 Query Scan
qui ont été exécutées par rapport aux données sur Amazon S3.
explain select top 10 myspectrum_schema.sales.eventid, sum(myspectrum_schema.sales.pricepaid) from myspectrum_schema.sales, event where myspectrum_schema.sales.eventid = event.eventid and myspectrum_schema.sales.pricepaid > 30 group by myspectrum_schema.sales.eventid order by 2 desc;
QUERY PLAN ----------------------------------------------------------------------------- XN Limit (cost=1001055770628.63..1001055770628.65 rows=10 width=31) -> XN Merge (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Merge Key: sum(sales.derived_col2) -> XN Network (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Send to leader -> XN Sort (cost=1001055770628.63..1001055770629.13 rows=200 width=31) Sort Key: sum(sales.derived_col2) -> XN HashAggregate (cost=1055770620.49..1055770620.99 rows=200 width=31) -> XN Hash Join DS_BCAST_INNER (cost=3119.97..1055769620.49 rows=200000 width=31) Hash Cond: ("outer".derived_col1 = "inner".eventid) -> XN S3 Query Scan sales (cost=3010.00..5010.50 rows=200000 width=31) -> S3 HashAggregate (cost=3010.00..3010.50 rows=200000 width=16) -> S3 Seq Scan spectrum.sales location:"s3://redshift-downloads/tickit/spectrum/sales" format:TEXT (cost=0.00..2150.00 rows=172000 width=16) Filter: (pricepaid > 30.00) -> XN Hash (cost=87.98..87.98 rows=8798 width=4) -> XN Seq Scan on event (cost=0.00..87.98 rows=8798 width=4)