访问新创建的字典时,我需要有关权限错误的帮助。
我的字典源文件如下:
$ ls -l /root/organization.csv
-rwxrwxrwx 1 clickhouse clickhouse 154 Jul 7 14:56 /root/organization.csv
$ cat /root/organization.csv
1,"a0001","研发部"
2,"a0002","产品部"
3,"a0003","数据部"
4,"a0004","测试部"
5,"a0005","运维部"
6,"a0006","规划部"
7,"a0007","市场部"
我创建我的字典如下:
CREATE DICTIONARY test_flat_dict
(
id UInt64,
code String,
name String
)
PRIMARY KEY id
SOURCE(FILE(PATH '/root/organization.csv' FORMAT CSV))
LAYOUT(HASHED())
LIFETIME(0);
然后,我尝试通过一个简单的SQL查询来测试字典:
SELECT * FROM test_flat_dict
但我得到了一个例外:
Received exception from server (version 21.6.3):
Code: 156. DB::Exception: Received from localhost:9000. DB::Exception: Failed to load dictionary 'eeedf011-4a41-4337-aeed-f0114a414337': std::exception. Code: 1001, type: std::__1::__fs::filesystem::filesystem_error, e.what() = filesystem error: in canonical: Permission denied [/root/organization.csv] [""],
我的字典可能出了什么问题?
发布于 2021-07-07 23:10:21
正如它在ClickHouse documentation上所说的那样
When dictionary with source FILE is created via DDL command (CREATE
DICTIONARY ...), the source file needs to be located in user_files
directory, to prevent DB users accessing arbitrary file on ClickHouse
node.
我怀疑ClickHouse是否有能力从根目录主文件夹中检索文件,即使您的文件是777模式。
所以我建议你把数据文件放在./user_files
文件夹下(它在ClickHouse数据文件夹的根目录下)。
https://stackoverflow.com/questions/68282425
复制相似问题