Skip to main content

Ingestion de fichiers Parquet depuis un bucket S3

Vous trouverez ci-dessous quelques bases sur l’utilisation du moteur de table S3 pour lire des fichiers Parquet.
  • créez des clés d’accès et des clés secrètes pour un utilisateur de service IAM. les utilisateurs de connexion classiques ne fonctionnent généralement pas, car ils peuvent avoir été configurés avec une politique MFA.
  • définissez les autorisations de la politique afin de permettre à l’utilisateur de service d’accéder au bucket et aux dossiers.
Voici un exemple très simple que vous pouvez utiliser pour vérifier que l’accès à vos fichiers Parquet fonctionne correctement avant de l’appliquer à vos données réelles. Si vous avez besoin d’un exemple de création d’un utilisateur et d’un bucket, vous pouvez suivre les deux premières sections (créer un utilisateur et créer un bucket) : Intégrer S3 à ClickHouse J’ai utilisé ce fichier d’exemple : https://github.com/Teradata/kylo/tree/master/samples/sample-data/parquet et je l’ai téléversé dans mon bucket de test Vous pouvez définir une politique de ce type sur le bucket : (à adapter selon vos besoins, celle-ci est assez ouverte en matière de privilèges, mais elle facilitera les tests. vous pourrez restreindre les autorisations si nécessaire)
Vous pouvez exécuter des requêtes avec une syntaxe de ce type à l’aide du moteur de table S3 : https://clickhouse.com/docs/sql-reference/table-functions/s3/
La référence des types de données pour le format Parquet est disponible ici : https://clickhouse.com/docs/interfaces/formats/#data-format-parquet Pour importer les données dans une table native ClickHouse : créez la table, par exemple comme suit (en ne sélectionnant que quelques colonnes du fichier Parquet) :
Sélectionnez les données du bucket S3 à insérer dans la nouvelle table :
Vérifiez l’importation :
Lorsque vous êtes prêt à importer vos données réelles, vous pouvez utiliser une syntaxe spéciale, comme les caractères génériques et les plages, pour spécifier les dossiers, sous-dossiers et fichiers dans votre bucket. Je vous recommande de filtrer quelques répertoires et fichiers pour tester l’import, par exemple une année donnée, quelques mois et une plage de dates pour commencer. Outre les options de chemin indiquées ici, la nouvelle syntaxe ** permet de spécifier récursivement tous les sous-répertoires. https://clickhouse.com/docs/sql-reference/table-functions/s3/ Par exemple, en supposant que les chemins et la structure du bucket ressemblent à ceci : https://your_s3_bucket.s3.amazonaws.com/<your_folder>/<year>/<month>/<day>/<filename>.parquet https://mars-doc-test.s3.amazonaws.com/system_logs/2022/11/01/my-app-logs-0001.parquet Cela récupérera tous les fichiers du 1er jour de chaque mois entre 2021 et 2022 https://mars-doc-test.s3.amazonaws.com/system_logs/{2021-2022}/**/01/*.parquet
Dernière modification le 23 juillet 2026