提供用于访问存储在 Amazon S3、Azure、HDFS 或本地的 Apache Paimon 表的只读类表接口。
语法
paimon(url [,access_key_id, secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])
paimonS3(url [,access_key_id, secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])
paimonAzure(connection_string|storage_account_url, container_name, blobpath, [,account_name], [,account_key] [,format] [,compression_method])
paimonHDFS(path_to_table, [,format] [,compression_method])
paimonLocal(path_to_table, [,format] [,compression_method])参数
这些参数的说明分别与表函数 s3、azureBlobStorage、HDFS 和 file 中对应参数的说明一致。
format 表示 Paimon 表中数据文件的格式。
对于 paimonS3,可使用可选参数 extra_credentials 传递 role_arn,以便在 ClickHouse Cloud 中实现基于角色的访问。有关配置步骤,请参见 安全访问 S3。
返回值
一个具有指定结构的表,用于读取指定 Paimon 表中的数据。
定义命名集合
下面是一个用于存储 URL 和凭据的命名集合配置示例:
<clickhouse>
<named_collections>
<paimon_conf>
<url>http://test.s3.amazonaws.com/clickhouse-bucket/</url>
<access_key_id>test</access_key_id>
<secret_access_key>test</secret_access_key>
<format>auto</format>
<structure>auto</structure>
</paimon_conf>
</named_collections>
</clickhouse>SELECT * FROM paimonS3(paimon_conf, filename = 'test_table')
DESCRIBE paimonS3(paimon_conf, filename = 'test_table')别名
表函数 paimon 现为 paimonS3 的别名。
虚拟列
_path— 文件路径。类型:LowCardinality(String)。_file— 文件名。类型:LowCardinality(String)。_size— 文件大小 (以字节为单位) 。类型:Nullable(UInt64)。如果文件大小未知,则值为NULL。_time— 文件的最后修改时间。类型:Nullable(DateTime)。如果时间未知,则值为NULL。_etag— 文件的 ETag。类型:LowCardinality(String)。如果 ETag 未知,则值为NULL。
支持的数据类型
| Paimon 数据类型 | ClickHouse 数据类型 |
|---|---|
| BOOLEAN | Int8 |
| TINYINT | Int8 |
| SMALLINT | Int16 |
| INTEGER | Int32 |
| BIGINT | Int64 |
| FLOAT | Float32 |
| DOUBLE | Float64 |
| STRING,VARCHAR,BYTES,VARBINARY | String |
| DATE | Date |
| TIME(p),TIME | Time('UTC') |
| TIMESTAMP(p) WITH LOCAL TIME ZONE | DateTime64 |
| TIMESTAMP(p) | DateTime64('UTC') |
| CHAR | FixedString(1) |
| BINARY(n) | FixedString(n) |
| DECIMAL(P,S) | Decimal(P,S) |
| ARRAY | Array |
| MAP | Map |
支持的分区键
Paimon 分区键支持的数据类型:
CHARVARCHARBOOLEANDECIMALTINYINTSMALLINTINTEGERDATETIMETIMESTAMPTIMESTAMP WITH LOCAL TIME ZONEBIGINTFLOATDOUBLE