Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

كيف يمكنني إجراء كتابة مقسّمة حسب السنة والشهر على S3؟

تعرّف على كيفية تنفيذ كتابة مقسّمة حسب السنة والشهر على S3

أريد تصدير البيانات مع تقسيم المسار في حاوية S3 بحيث يتبع بنية مثل:

  • 2022
    • 1
    • 2
    • 12
  • 2021
    • 1
    • 2
    • 12

وهكذا …

الإجابة

بالنظر إلى جدول ClickHouse:

CREATE TABLE sample_data (
    `name` String,
    `age` Int,
    `time` DateTime
) ENGINE = MergeTree
ORDER BY
    name

أضف 10000 سجل:

INSERT INTO
    sample_data
SELECT
    *
FROM
    generateRandom(
        'name String, age Int, time DateTime',
        10,
        10,
        10
    )
LIMIT
    10000;

نفّذ هذا لإنشاء البنية المطلوبة في حاوية S3 ‏my_bucket (لاحظ أن هذا المثال يكتب ملفات بتنسيق 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
Navigation