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