From cd038979d4cf5a529baf9b29a3ec6ebb646c7713 Mon Sep 17 00:00:00 2001 From: Olga Revyakina Date: Wed, 8 Sep 2021 05:32:02 +0300 Subject: [PATCH 1/7] Initial (en) --- .../engines/table-engines/integrations/s3.md | 2 +- docs/en/sql-reference/table-functions/s3.md | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/en/engines/table-engines/integrations/s3.md b/docs/en/engines/table-engines/integrations/s3.md index 7249e24aff9..e494e9aec6a 100644 --- a/docs/en/engines/table-engines/integrations/s3.md +++ b/docs/en/engines/table-engines/integrations/s3.md @@ -210,4 +210,4 @@ ENGINE = S3('https://storage.yandexcloud.net/my-test-bucket-768/big_prefix/file- ## See also -- [S3 table function](../../../sql-reference/table-functions/s3.md) +- [s3 table function](../../../sql-reference/table-functions/s3.md) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index d84edb3f46e..de3e442fa79 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -3,7 +3,7 @@ toc_priority: 45 toc_title: s3 --- -# S3 Table Function {#s3-table-function} +# s3 Table Function {#s3-table-function} Provides table-like interface to select/insert files in [Amazon S3](https://aws.amazon.com/s3/). This table function is similar to [hdfs](../../sql-reference/table-functions/hdfs.md), but provides S3-specific features. @@ -125,6 +125,30 @@ INSERT INTO FUNCTION s3('https://storage.yandexcloud.net/my-test-bucket-768/test SELECT name, value FROM existing_table; ``` +## Partitioned Write {#partitioned-write} + +When inserting data into S3 table, you can split it into several files by specifying `PARTITION BY` expression. In this case a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. + +**Examples** + +Using wildcards in a file name creates separate files: + +```sql +INSERT INTO TABLE FUNCTION + s3('http://bucket.amazonaws.com/my_bucket/file_{_partition_id}.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) +``` +As a result, the data is written into three files: `file_1.csv`, `file_10.csv`, and `file_20.csv`. + +Using wildcards in a bucket name creates files in different buckets: + +```sql +INSERT INTO TABLE FUNCTION + s3('http://bucket.amazonaws.com/my_bucket_{_partition_id}/file.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) +``` +As a result, the data is written into three files in different buckets: `my_bucket_1/file.csv`, `my_bucket_10/file.csv`, and `my_bucket_20/file.csv`. + **See Also** - [S3 engine](../../engines/table-engines/integrations/s3.md) From a62c428291dabfa7848ecc81829623da7763237d Mon Sep 17 00:00:00 2001 From: Olga Revyakina Date: Wed, 8 Sep 2021 05:52:17 +0300 Subject: [PATCH 2/7] Translated and minor fixes --- docs/en/sql-reference/table-functions/s3.md | 4 ++-- .../engines/table-engines/integrations/s3.md | 2 +- docs/ru/sql-reference/table-functions/s3.md | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index de3e442fa79..12d39a2b324 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -131,7 +131,7 @@ When inserting data into S3 table, you can split it into several files by specif **Examples** -Using wildcards in a file name creates separate files: +1. Using partition ID in a file name creates separate files: ```sql INSERT INTO TABLE FUNCTION @@ -140,7 +140,7 @@ INSERT INTO TABLE FUNCTION ``` As a result, the data is written into three files: `file_1.csv`, `file_10.csv`, and `file_20.csv`. -Using wildcards in a bucket name creates files in different buckets: +2. Using partition ID in a bucket name creates files in different buckets: ```sql INSERT INTO TABLE FUNCTION diff --git a/docs/ru/engines/table-engines/integrations/s3.md b/docs/ru/engines/table-engines/integrations/s3.md index 5895bd43d2f..c90b7293e1c 100644 --- a/docs/ru/engines/table-engines/integrations/s3.md +++ b/docs/ru/engines/table-engines/integrations/s3.md @@ -151,4 +151,4 @@ ENGINE = S3('https://storage.yandexcloud.net/my-test-bucket-768/big_prefix/file- **Смотрите также** -- [Табличная функция S3](../../../sql-reference/table-functions/s3.md) +- [Табличная функция s3](../../../sql-reference/table-functions/s3.md) diff --git a/docs/ru/sql-reference/table-functions/s3.md b/docs/ru/sql-reference/table-functions/s3.md index 597f145c096..3a671e2029f 100644 --- a/docs/ru/sql-reference/table-functions/s3.md +++ b/docs/ru/sql-reference/table-functions/s3.md @@ -133,6 +133,30 @@ INSERT INTO FUNCTION s3('https://storage.yandexcloud.net/my-test-bucket-768/test SELECT name, value FROM existing_table; ``` +## Партиционирование при записи данных {#partitioned-write} + +При добавлении данных в таблицу S3 вы можете сохранить таблицу в нескольких файлах, указав выражение `PARTITION BY`. В этом случае для каждого значения выражения партиционирования создается отдельный файл. Сохранение таблицы в нескольких отдельных файлах повышает эффективность операций чтения. + +**Примеры** + +1. При использовании ID партиции в названии файла создаются отдельные файлы: + +```sql +INSERT INTO TABLE FUNCTION + s3('http://bucket.amazonaws.com/my_bucket/file_{_partition_id}.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) +``` +В результате данные будут записаны в три файла: `file_1.csv`, `file_10.csv` и `file_20.csv`. + +2. При использовании ID партиции в названии бакета создаются файлы в разных бакетах: + +```sql +INSERT INTO TABLE FUNCTION + s3('http://bucket.amazonaws.com/my_bucket_{_partition_id}/file.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) +``` +В результате будут созданы три файла в разных бакетах: `my_bucket_1/file.csv`, `my_bucket_10/file.csv` и `my_bucket_20/file.csv`. + **Смотрите также** - [Движок таблиц S3](../../engines/table-engines/integrations/s3.md) From e160f649171da1337eb3411a7981581ff0e21369 Mon Sep 17 00:00:00 2001 From: olgarev <56617294+olgarev@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:23:02 +0300 Subject: [PATCH 3/7] Apply suggestions from code review Co-authored-by: Anna <42538400+adevyatova@users.noreply.github.com> --- docs/en/sql-reference/table-functions/s3.md | 2 +- docs/ru/sql-reference/table-functions/s3.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index 12d39a2b324..215c9409416 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -127,7 +127,7 @@ SELECT name, value FROM existing_table; ## Partitioned Write {#partitioned-write} -When inserting data into S3 table, you can split it into several files by specifying `PARTITION BY` expression. In this case a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. +If you will specify `PARTITION BY` expression when inserting data into `S3` table, a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. **Examples** diff --git a/docs/ru/sql-reference/table-functions/s3.md b/docs/ru/sql-reference/table-functions/s3.md index 3a671e2029f..316bab9bf69 100644 --- a/docs/ru/sql-reference/table-functions/s3.md +++ b/docs/ru/sql-reference/table-functions/s3.md @@ -135,7 +135,7 @@ SELECT name, value FROM existing_table; ## Партиционирование при записи данных {#partitioned-write} -При добавлении данных в таблицу S3 вы можете сохранить таблицу в нескольких файлах, указав выражение `PARTITION BY`. В этом случае для каждого значения выражения партиционирования создается отдельный файл. Сохранение таблицы в нескольких отдельных файлах повышает эффективность операций чтения. +Если при добавлении данных в таблицу S3 вы укажете выражение `PARTITION BY`, то для каждого значения выражения партиционирования будет создан отдельный файл. Это повышает эффективность операций чтения. **Примеры** From cd687614fa5e6a5efc6fef636da3094e649f7fc3 Mon Sep 17 00:00:00 2001 From: olgarev <56617294+olgarev@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:25:04 +0300 Subject: [PATCH 4/7] Apply suggestions from code review --- docs/en/sql-reference/table-functions/s3.md | 2 +- docs/ru/sql-reference/table-functions/s3.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index 215c9409416..1d38d4586e3 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -127,7 +127,7 @@ SELECT name, value FROM existing_table; ## Partitioned Write {#partitioned-write} -If you will specify `PARTITION BY` expression when inserting data into `S3` table, a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. +If you specify `PARTITION BY` expression when inserting data into `S3` table, a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. **Examples** diff --git a/docs/ru/sql-reference/table-functions/s3.md b/docs/ru/sql-reference/table-functions/s3.md index 316bab9bf69..9eec0ab05d2 100644 --- a/docs/ru/sql-reference/table-functions/s3.md +++ b/docs/ru/sql-reference/table-functions/s3.md @@ -135,7 +135,7 @@ SELECT name, value FROM existing_table; ## Партиционирование при записи данных {#partitioned-write} -Если при добавлении данных в таблицу S3 вы укажете выражение `PARTITION BY`, то для каждого значения выражения партиционирования будет создан отдельный файл. Это повышает эффективность операций чтения. +Если при добавлении данных в таблицу S3 указать выражение `PARTITION BY`, то для каждого значения выражения партиционирования создается отдельный файл. Это повышает эффективность операций чтения. **Примеры** From 89744e908c5c6ef3baf390e5b4c7951d3d7dc3b7 Mon Sep 17 00:00:00 2001 From: olgarev <56617294+olgarev@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:26:51 +0300 Subject: [PATCH 5/7] Update docs/en/sql-reference/table-functions/s3.md --- docs/en/sql-reference/table-functions/s3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index 1d38d4586e3..f864ca7eed2 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -127,7 +127,7 @@ SELECT name, value FROM existing_table; ## Partitioned Write {#partitioned-write} -If you specify `PARTITION BY` expression when inserting data into `S3` table, a separate file is created for each partition value. Splitting the data helps to improve reading operations efficiency. +If you specify `PARTITION BY` expression when inserting data into `S3` table, a separate file is created for each partition value. Splitting the data into separate files helps to improve reading operations efficiency. **Examples** From b6dea3e8e3b5e174eccf8bd1c78692549868f19d Mon Sep 17 00:00:00 2001 From: olgarev <56617294+olgarev@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:33:59 +0300 Subject: [PATCH 6/7] Apply suggestions from code review --- docs/en/sql-reference/table-functions/s3.md | 8 ++++---- docs/ru/sql-reference/table-functions/s3.md | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index f864ca7eed2..a0176f0151c 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -135,17 +135,17 @@ If you specify `PARTITION BY` expression when inserting data into `S3` table, a ```sql INSERT INTO TABLE FUNCTION - s3('http://bucket.amazonaws.com/my_bucket/file_{_partition_id}.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') - PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) + s3('http://bucket.amazonaws.com/my_bucket/file_{_partition_id}.csv', 'CSV', 'a String, b UInt32, c UInt32') + PARTITION BY a VALUES ('x', 2, 3), ('x', 4, 5), ('y', 11, 12), ('y', 13, 14), ('z', 21, 22), ('z', 23, 24); ``` -As a result, the data is written into three files: `file_1.csv`, `file_10.csv`, and `file_20.csv`. +As a result, the data is written into three files: `file_x.csv`, `file_y.csv`, and `file_z.csv`. 2. Using partition ID in a bucket name creates files in different buckets: ```sql INSERT INTO TABLE FUNCTION s3('http://bucket.amazonaws.com/my_bucket_{_partition_id}/file.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') - PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24); ``` As a result, the data is written into three files in different buckets: `my_bucket_1/file.csv`, `my_bucket_10/file.csv`, and `my_bucket_20/file.csv`. diff --git a/docs/ru/sql-reference/table-functions/s3.md b/docs/ru/sql-reference/table-functions/s3.md index 9eec0ab05d2..a4e6151d711 100644 --- a/docs/ru/sql-reference/table-functions/s3.md +++ b/docs/ru/sql-reference/table-functions/s3.md @@ -144,16 +144,16 @@ SELECT name, value FROM existing_table; ```sql INSERT INTO TABLE FUNCTION s3('http://bucket.amazonaws.com/my_bucket/file_{_partition_id}.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') - PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) + PARTITION BY a VALUES ('x', 2, 3), ('x', 4, 5), ('y', 11, 12), ('y', 13, 14), ('z', 21, 22), ('z', 23, 24); ``` -В результате данные будут записаны в три файла: `file_1.csv`, `file_10.csv` и `file_20.csv`. +В результате данные будут записаны в три файла: `file_x.csv`, `file_y.csv` и `file_z.csv`. 2. При использовании ID партиции в названии бакета создаются файлы в разных бакетах: ```sql INSERT INTO TABLE FUNCTION s3('http://bucket.amazonaws.com/my_bucket_{_partition_id}/file.csv', 'CSV', 'a UInt32, b UInt32, c UInt32') - PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24) + PARTITION BY a VALUES (1, 2, 3), (1, 4, 5), (10, 11, 12), (10, 13, 14), (20, 21, 22), (20, 23, 24); ``` В результате будут созданы три файла в разных бакетах: `my_bucket_1/file.csv`, `my_bucket_10/file.csv` и `my_bucket_20/file.csv`. From 27cd75eaa17db73ee4754debe1b51ed5ba613b21 Mon Sep 17 00:00:00 2001 From: Vladimir C Date: Fri, 10 Sep 2021 09:31:49 +0300 Subject: [PATCH 7/7] Apply suggestions from code review --- docs/en/sql-reference/table-functions/s3.md | 2 +- docs/ru/sql-reference/table-functions/s3.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index a0176f0151c..ffba8f5c6d3 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -131,7 +131,7 @@ If you specify `PARTITION BY` expression when inserting data into `S3` table, a **Examples** -1. Using partition ID in a file name creates separate files: +1. Using partition ID in a key creates separate files: ```sql INSERT INTO TABLE FUNCTION diff --git a/docs/ru/sql-reference/table-functions/s3.md b/docs/ru/sql-reference/table-functions/s3.md index a4e6151d711..c8dbcf81559 100644 --- a/docs/ru/sql-reference/table-functions/s3.md +++ b/docs/ru/sql-reference/table-functions/s3.md @@ -135,11 +135,11 @@ SELECT name, value FROM existing_table; ## Партиционирование при записи данных {#partitioned-write} -Если при добавлении данных в таблицу S3 указать выражение `PARTITION BY`, то для каждого значения выражения партиционирования создается отдельный файл. Это повышает эффективность операций чтения. +Если при добавлении данных в таблицу S3 указать выражение `PARTITION BY`, то для каждого значения ключа партиционирования создается отдельный файл. Это повышает эффективность операций чтения. **Примеры** -1. При использовании ID партиции в названии файла создаются отдельные файлы: +1. При использовании ID партиции в имени ключа создаются отдельные файлы: ```sql INSERT INTO TABLE FUNCTION