S02008

错误代码

S02008

报错信息

Direct access using column names is not supported to retrieve data from a DFS table. Please use a SQL query instead. RefId:S02008

错误原因

DFS 表被同时存储在多个数据节点中,为了能对数据进行安全、并发读写,严禁通过成员等内存访问方式绕过 DFS 表的版本控制,直接获取 DFS 表的数据。即 DFS 表不支持直接引用列名来获取数据,直接使用列名获取数据会得到报错。

解决办法

检查脚本是否存在用列名获取分布式表数据的操作。

如以下场景:

n = 10000
type = take(1..10, n)
t = table(type)
dbName = "dfs://test_db";
if (existsDatabase(dbName)) {
    dropDatabase(dbName)
}
db = database(dbName, HASH, [INT, 2])
pt = db.createPartitionedTable(t, `pt, `type)
pt.append!(t)

pt.type // throw exception
select type from pt; // OK