我正在尝试通过加载自定义表test.tbl来运行alenka(https://github.com/antonmks/Alenka)并在其上激活选择查询。
它适用于3行或4行。 但是当我增加超过6或10行的条目数时,它在加载时没有显示任何错误(./ alenka load_test.sql),但是当我运行查询(./ alenka testquery.sql)时,它会给出错误: 抛出' thrust :: system :: system_error'的实例后,终止调用what():无效参数Aborted(core dumped)
---test.tbl---
1|2.12345|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
这是load_test.sql查询
A := LOAD 'test.tbl' USING ('|') AS (var1{1}:int, var2{2}:int, var3{4}:int,
var4{5}:int,var5{6}:int, var6{7}:int, var7{8}:int);
STORE A INTO 'test' BINARY;
和testquery.sql
B := FILTER test BY id <= 19980902;
D := SELECT var2 AS var2
FROM B;
STORE D INTO 'mytest.txt' USING ('|');
有人可以解释,这种错误的原因是什么?
谢谢
答案 0 :(得分:1)
问题是由于轻微错误引起的,这些错误归结为这种混乱。 当在alenka上触发加载命令时,它会创建包含表的每列数据的二进制文件。 如果再次加载这些文件将被覆盖,但是如果更改了列名,则会在旧文件旁边创建一个新文件。 因此,在重命名表中的列之后删除这些文件是个好主意,以避免再次使用它们。
因此,我收到此错误是因为我之前加载了具有不同列名的数据,并忘记从其文件夹中删除这些文件(test.id *)文件。 除此之外,我还在查询(testquery.sql)文件中使用“id”而非“var1”过滤了一个错误。
由于id文件有9个条目(来自前一个模式),因此它完美地运行了9行,但是当数据库大小增加到超过该值时,推力库引发了系统错误。
希望这可以帮助别人像我一样浪费时间。