mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 23:21:59 +00:00
Merge pull request #35251 from den-crane/Docs/named-collections
Doc. named connections
This commit is contained in:
commit
5359e0430d
132
docs/en/operations/named-collections.md
Normal file
132
docs/en/operations/named-collections.md
Normal file
@ -0,0 +1,132 @@
|
||||
---
|
||||
toc_priority: 69
|
||||
toc_title: "Named connections"
|
||||
---
|
||||
|
||||
# Storing details for connecting to external sources in configuration files {#named-collections}
|
||||
|
||||
Details for connecting to external sources (dictionaries, tables, table functions) can be saved
|
||||
in configuration files and thus simplify the creation of objects and hide credentials
|
||||
from users with only SQL access.
|
||||
|
||||
Parameters can be set in XML `<format>CSV</format>` and overridden in SQL `, format = 'TSV'`.
|
||||
The parameters in SQL can be overridden using format `key` = `value`: `compression_method = 'gzip'`.
|
||||
|
||||
Named connections are stored in the `config.xml` file of the ClickHouse server in the `<named_collections>` section and are applied when ClickHouse starts.
|
||||
|
||||
Example of configuration:
|
||||
```xml
|
||||
$ cat /etc/clickhouse-server/config.d/named_collections.xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
...
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
## Named connections for accessing S3.
|
||||
|
||||
The description of parameters see [s3 Table Function](../sql-reference/table-functions/s3.md).
|
||||
|
||||
Example of configuration:
|
||||
```xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
<s3_mydata>
|
||||
<access_key_id>AKIAIOSFODNN7EXAMPLE</access_key_id>
|
||||
<secret_access_key> wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</secret_access_key>
|
||||
<format>CSV</format>
|
||||
</s3_mydata>
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
### An example of using named connections with the s3 function
|
||||
|
||||
```sql
|
||||
INSERT INTO FUNCTION s3(s3_mydata, url = 'https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz',
|
||||
format = 'TSV', structure = 'number UInt64', compression_method = 'gzip')
|
||||
SELECT * FROM numbers(10000);
|
||||
|
||||
SELECT count()
|
||||
FROM s3(s3_mydata, url = 'https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz')
|
||||
|
||||
┌─count()─┐
|
||||
│ 10000 │
|
||||
└─────────┘
|
||||
1 rows in set. Elapsed: 0.279 sec. Processed 10.00 thousand rows, 90.00 KB (35.78 thousand rows/s., 322.02 KB/s.)
|
||||
```
|
||||
|
||||
### An example of using named connections with an S3 table
|
||||
|
||||
```sql
|
||||
CREATE TABLE s3_engine_table (number Int64)
|
||||
ENGINE=S3(s3_mydata, url='https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz', format = 'TSV')
|
||||
SETTINGS input_format_with_names_use_header = 0;
|
||||
|
||||
SELECT * FROM s3_engine_table LIMIT 3;
|
||||
┌─number─┐
|
||||
│ 0 │
|
||||
│ 1 │
|
||||
│ 2 │
|
||||
└────────┘
|
||||
```
|
||||
|
||||
## Named connections for accessing MySQL database.
|
||||
|
||||
The description of parameters see [mysql](../sql-reference/table-functions/mysql.md).
|
||||
|
||||
Example of configuration:
|
||||
```xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
<mymysql>
|
||||
<user>myuser</user>
|
||||
<password>mypass</password>
|
||||
<host>127.0.0.1</host>
|
||||
<port>3306</port>
|
||||
<database>test</database>
|
||||
<connection_pool_size>8</connection_pool_size>
|
||||
<on_duplicate_clause>1</on_duplicate_clause>
|
||||
<replace_query>1</replace_query>
|
||||
</mymysql>
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
### An example of using named connections with the mysql function
|
||||
|
||||
```sql
|
||||
SELECT count() FROM mysql(mymysql, table = 'test');
|
||||
|
||||
┌─count()─┐
|
||||
│ 3 │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### An example of using named connections with an MySQL table
|
||||
|
||||
```sql
|
||||
CREATE TABLE mytable(A Int64) ENGINE = MySQL(mymysql, table = 'test', connection_pool_size=3, replace_query=0);
|
||||
SELECT count() FROM mytable;
|
||||
|
||||
┌─count()─┐
|
||||
│ 3 │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### An example of using named with an external dictionary with source MySQL
|
||||
|
||||
```sql
|
||||
CREATE DICTIONARY dict (A Int64, B String)
|
||||
PRIMARY KEY A
|
||||
SOURCE(MYSQL(NAME mymysql TABLE 'source'))
|
||||
LIFETIME(MIN 1 MAX 2)
|
||||
LAYOUT(HASHED());
|
||||
|
||||
SELECT dictGet('dict', 'B', 2);
|
||||
|
||||
┌─dictGet('dict', 'B', 2)─┐
|
||||
│ two │
|
||||
└─────────────────────────┘
|
||||
```
|
132
docs/ru/operations/named-collections.md
Normal file
132
docs/ru/operations/named-collections.md
Normal file
@ -0,0 +1,132 @@
|
||||
---
|
||||
toc_priority: 69
|
||||
toc_title: "Именованные соединения"
|
||||
---
|
||||
|
||||
# Хранение реквизитов для подключения к внешним источникам в конфигурационных файлах {#named-collections}
|
||||
|
||||
Реквизиты для подключения к внешним источникам (словарям, таблицам, табличным функциям) можно сохранить
|
||||
в конфигурационных файлах и таким образом упростить создание объектов и скрыть реквизиты (пароли)
|
||||
от пользователей, имеющих только SQL доступ.
|
||||
|
||||
Параметры можно задать в XML `<format>CSV</format>` и переопределить в SQL `, format = 'TSV'`.
|
||||
При использовании именованных соединений, параметры в SQL задаются в формате `ключ` = `значение`: `compression_method = 'gzip'`.
|
||||
|
||||
Именованные соединения хранятся в файле `config.xml` сервера ClickHouse в секции `<named_collections>` и применяются при старте ClickHouse.
|
||||
|
||||
Пример конфигурации:
|
||||
```xml
|
||||
$ cat /etc/clickhouse-server/config.d/named_collections.xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
...
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
## Именованные соединения для доступа к S3.
|
||||
|
||||
Описание параметров смотри [Табличная Функция S3](../sql-reference/table-functions/s3.md).
|
||||
|
||||
Пример конфигурации:
|
||||
```xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
<s3_mydata>
|
||||
<access_key_id>AKIAIOSFODNN7EXAMPLE</access_key_id>
|
||||
<secret_access_key> wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</secret_access_key>
|
||||
<format>CSV</format>
|
||||
</s3_mydata>
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
### Пример использования именованных соединений с функцией s3
|
||||
|
||||
```sql
|
||||
INSERT INTO FUNCTION s3(s3_mydata, url = 'https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz',
|
||||
format = 'TSV', structure = 'number UInt64', compression_method = 'gzip')
|
||||
SELECT * FROM numbers(10000);
|
||||
|
||||
SELECT count()
|
||||
FROM s3(s3_mydata, url = 'https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz')
|
||||
|
||||
┌─count()─┐
|
||||
│ 10000 │
|
||||
└─────────┘
|
||||
1 rows in set. Elapsed: 0.279 sec. Processed 10.00 thousand rows, 90.00 KB (35.78 thousand rows/s., 322.02 KB/s.)
|
||||
```
|
||||
|
||||
### Пример использования именованных соединений с таблицей S3
|
||||
|
||||
```sql
|
||||
CREATE TABLE s3_engine_table (number Int64)
|
||||
ENGINE=S3(s3_mydata, url='https://s3.us-east-1.amazonaws.com/yourbucket/mydata/test_file.tsv.gz', format = 'TSV')
|
||||
SETTINGS input_format_with_names_use_header = 0;
|
||||
|
||||
SELECT * FROM s3_engine_table LIMIT 3;
|
||||
┌─number─┐
|
||||
│ 0 │
|
||||
│ 1 │
|
||||
│ 2 │
|
||||
└────────┘
|
||||
```
|
||||
|
||||
## Пример использования именованных соединений с базой данных MySQL.
|
||||
|
||||
Описание параметров смотри [mysql](../sql-reference/table-functions/mysql.md).
|
||||
|
||||
Пример конфигурации:
|
||||
```xml
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
<mymysql>
|
||||
<user>myuser</user>
|
||||
<password>mypass</password>
|
||||
<host>127.0.0.1</host>
|
||||
<port>3306</port>
|
||||
<database>test</database>
|
||||
<connection_pool_size>8</connection_pool_size>
|
||||
<on_duplicate_clause>1</on_duplicate_clause>
|
||||
<replace_query>1</replace_query>
|
||||
</mymysql>
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
```
|
||||
|
||||
### Пример использования именованных соединений с табличной функцией mysql
|
||||
|
||||
```sql
|
||||
SELECT count() FROM mysql(mymysql, table = 'test');
|
||||
|
||||
┌─count()─┐
|
||||
│ 3 │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### Пример использования именованных таблицей с движком mysql
|
||||
|
||||
```sql
|
||||
CREATE TABLE mytable(A Int64) ENGINE = MySQL(mymysql, table = 'test', connection_pool_size=3, replace_query=0);
|
||||
SELECT count() FROM mytable;
|
||||
|
||||
┌─count()─┐
|
||||
│ 3 │
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
### Пример использования именованных с внешним словарем с источником mysql
|
||||
|
||||
```sql
|
||||
CREATE DICTIONARY dict (A Int64, B String)
|
||||
PRIMARY KEY A
|
||||
SOURCE(MYSQL(NAME mymysql TABLE 'source'))
|
||||
LIFETIME(MIN 1 MAX 2)
|
||||
LAYOUT(HASHED());
|
||||
|
||||
SELECT dictGet('dict', 'B', 2);
|
||||
|
||||
┌─dictGet('dict', 'B', 2)─┐
|
||||
│ two │
|
||||
└─────────────────────────┘
|
||||
```
|
Loading…
Reference in New Issue
Block a user