mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 09:02:00 +00:00
Removed trash symlinks #6338
This commit is contained in:
parent
416a498b0f
commit
8bf1af3536
@ -1,78 +0,0 @@
|
|||||||
## IPv4
|
|
||||||
|
|
||||||
`IPv4`是与`UInt32`类型保持二进制兼容的Domain类型,其用于存储IPv4地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。
|
|
||||||
|
|
||||||
### 基本使用
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
CREATE TABLE hits (url String, from IPv4) ENGINE = MergeTree() ORDER BY url;
|
|
||||||
|
|
||||||
DESCRIBE TABLE hits;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─name─┬─type───┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┐
|
|
||||||
│ url │ String │ │ │ │ │
|
|
||||||
│ from │ IPv4 │ │ │ │ │
|
|
||||||
└──────┴────────┴──────────────┴────────────────────┴─────────┴──────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
同时您也可以使用`IPv4`类型的列作为主键:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
CREATE TABLE hits (url String, from IPv4) ENGINE = MergeTree() ORDER BY from;
|
|
||||||
```
|
|
||||||
|
|
||||||
在写入与查询时,`IPv4`类型能够识别可读性更加友好的输入输出格式:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
INSERT INTO hits (url, from) VALUES ('https://wikipedia.org', '116.253.40.133')('https://clickhouse.yandex', '183.247.232.58')('https://clickhouse.yandex/docs/en/', '116.106.34.242');
|
|
||||||
|
|
||||||
SELECT * FROM hits;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─url────────────────────────────────┬───────────from─┐
|
|
||||||
│ https://clickhouse.yandex/docs/en/ │ 116.106.34.242 │
|
|
||||||
│ https://wikipedia.org │ 116.253.40.133 │
|
|
||||||
│ https://clickhouse.yandex │ 183.247.232.58 │
|
|
||||||
└────────────────────────────────────┴────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
同时它提供更为紧凑的二进制存储格式:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(from), hex(from) FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(from)─┬─hex(from)─┐
|
|
||||||
│ IPv4 │ B7F7E83A │
|
|
||||||
└──────────────────┴───────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
不可隐式转换为除`UInt32`以外的其他类型类型。如果要将`IPv4`类型的值转换成字符串,你可以使用`IPv4NumToString()`显示的进行转换:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(s), IPv4NumToString(from) as s FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(IPv4NumToString(from))─┬─s──────────────┐
|
|
||||||
│ String │ 183.247.232.58 │
|
|
||||||
└───────────────────────────────────┴────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
或可以使用`CAST`将它转换为`UInt32`类型:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(i), CAST(from as UInt32) as i FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(CAST(from, 'UInt32'))─┬──────────i─┐
|
|
||||||
│ UInt32 │ 3086477370 │
|
|
||||||
└──────────────────────────────────┴────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
[来源文章](https://clickhouse.yandex/docs/en/data_types/domains/ipv4) <!--hide-->
|
|
@ -1,78 +0,0 @@
|
|||||||
## IPv6
|
|
||||||
|
|
||||||
`IPv6`是与`FixedString(16)`类型保持二进制兼容的Domain类型,其用于存储IPv6地址的值。它提供了更为紧凑的二进制存储的同时支持识别可读性更加友好的输入输出格式。
|
|
||||||
|
|
||||||
### 基本用法
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
CREATE TABLE hits (url String, from IPv6) ENGINE = MergeTree() ORDER BY url;
|
|
||||||
|
|
||||||
DESCRIBE TABLE hits;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─name─┬─type───┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┐
|
|
||||||
│ url │ String │ │ │ │ │
|
|
||||||
│ from │ IPv6 │ │ │ │ │
|
|
||||||
└──────┴────────┴──────────────┴────────────────────┴─────────┴──────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
同时您也可以使用`IPv6`类型的列作为主键:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
CREATE TABLE hits (url String, from IPv6) ENGINE = MergeTree() ORDER BY from;
|
|
||||||
```
|
|
||||||
|
|
||||||
在写入与查询时,`IPv6`类型能够识别可读性更加友好的输入输出格式:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
INSERT INTO hits (url, from) VALUES ('https://wikipedia.org', '2a02:aa08:e000:3100::2')('https://clickhouse.yandex', '2001:44c8:129:2632:33:0:252:2')('https://clickhouse.yandex/docs/en/', '2a02:e980:1e::1');
|
|
||||||
|
|
||||||
SELECT * FROM hits;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─url────────────────────────────────┬─from──────────────────────────┐
|
|
||||||
│ https://clickhouse.yandex │ 2001:44c8:129:2632:33:0:252:2 │
|
|
||||||
│ https://clickhouse.yandex/docs/en/ │ 2a02:e980:1e::1 │
|
|
||||||
│ https://wikipedia.org │ 2a02:aa08:e000:3100::2 │
|
|
||||||
└────────────────────────────────────┴───────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
同时它提供更为紧凑的二进制存储格式:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(from), hex(from) FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(from)─┬─hex(from)────────────────────────┐
|
|
||||||
│ IPv6 │ 200144C8012926320033000002520002 │
|
|
||||||
└──────────────────┴──────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
不可隐式转换为除`FixedString(16)`以外的其他类型类型。如果要将`IPv6`类型的值转换成字符串,你可以使用`IPv6NumToString()`显示的进行转换:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(s), IPv6NumToString(from) as s FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(IPv6NumToString(from))─┬─s─────────────────────────────┐
|
|
||||||
│ String │ 2001:44c8:129:2632:33:0:252:2 │
|
|
||||||
└───────────────────────────────────┴───────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
或使用`CAST`将其转换为`FixedString(16)`:
|
|
||||||
|
|
||||||
``` sql
|
|
||||||
SELECT toTypeName(i), CAST(from as FixedString(16)) as i FROM hits LIMIT 1;
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
┌─toTypeName(CAST(from, 'FixedString(16)'))─┬─i───────┐
|
|
||||||
│ FixedString(16) │ <20><><EFBFBD> │
|
|
||||||
└───────────────────────────────────────────┴─────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
[来源文章](https://clickhouse.yandex/docs/en/data_types/domains/ipv6) <!--hide-->
|
|
@ -1,26 +0,0 @@
|
|||||||
# Domains
|
|
||||||
|
|
||||||
Domain类型是特定实现的类型,它总是与某个现存的基础类型保持二进制兼容的同时添加一些额外的特性,以能够在维持磁盘数据不变的情况下使用这些额外的特性。目前ClickHouse暂不支持自定义domain类型。
|
|
||||||
|
|
||||||
如果你可以在一个地方使用与Domain类型二进制兼容的基础类型,那么在相同的地方您也可以使用Domain类型,例如:
|
|
||||||
|
|
||||||
* 使用Domain类型作为表中列的类型
|
|
||||||
* 对Domain类型的列进行读/写数据
|
|
||||||
* 如果与Domain二进制兼容的基础类型可以作为索引,那么Domain类型也可以作为索引
|
|
||||||
* 将Domain类型作为参数传递给函数使用
|
|
||||||
* 其他
|
|
||||||
|
|
||||||
### Domains的额外特性
|
|
||||||
|
|
||||||
* 在执行SHOW CREATE TABLE 或 DESCRIBE TABLE时,其对应的列总是展示为Domain类型的名称
|
|
||||||
* 在INSERT INTO domain_table(domain_column) VALUES(...)中输入数据总是以更人性化的格式进行输入
|
|
||||||
* 在SELECT domain_column FROM domain_table中数据总是以更人性化的格式输出
|
|
||||||
* 在INSERT INTO domain_table FORMAT CSV ...中,实现外部源数据以更人性化的格式载入
|
|
||||||
|
|
||||||
### Domains类型的限制
|
|
||||||
|
|
||||||
* 无法通过`ALTER TABLE`将基础类型的索引转换为Domain类型的索引。
|
|
||||||
* 当从其他列或表插入数据时,无法将string类型的值隐式地转换为Domain类型的值。
|
|
||||||
* 无法对存储为Domain类型的值添加约束。
|
|
||||||
|
|
||||||
[来源文章](https://clickhouse.yandex/docs/en/data_types/domains/overview) <!--hide-->
|
|
Loading…
Reference in New Issue
Block a user