Découvrez comment effectuer des écritures partitionnées par année et par mois sur S3
Je souhaite exporter des données en organisant le chemin dans le bucket S3 afin d'obtenir une structure comme :
- 2022
- 1
- 2
- …
- 12
- 2021
- 1
- 2
- …
- 12
et ainsi de suite…
Réponse
Étant donné la table ClickHouse :
CREATE TABLE sample_data (
`name` String,
`age` Int,
`time` DateTime
) ENGINE = MergeTree
ORDER BY
nameAjoutez 10 000 entrées :
INSERT INTO
sample_data
SELECT
*
FROM
generateRandom(
'name String, age Int, time DateTime',
10,
10,
10
)
LIMIT
10000;Exécutez cette commande pour créer la structure souhaitée dans le bucket S3 my_bucket (notez que cet exemple écrit des fichiers au format Parquet) :
INSERT INTO
FUNCTION s3(
'https://s3-host:4321/my_bucket/{_partition_id}/file.parquet.gz',
's3-access-key',
's3-secret-access-key',
Parquet,
'name String, age Int, time DateTime'
) PARTITION BY concat(
formatDateTime(time, '%Y'),
'/',
formatDateTime(time, '%m')
)
SELECT
name,
age,
time
FROM
sample_data
Query id: 55adcf22-f6af-491e-b697