我正在尝试使用Java中的MariaDB ColumnStore批量写入SDK在一个包含50列(数据类型为int)的表中批量插入10行,但它从未完成过必须在10 -15次尝试中删除该进程但尝试次数相同但结果相同
这是他们doc的代码示例 https://mariadb.com/kb/en/library/columnstore-bulk-write-sdk/#rhel-centos-7
import com.mariadb.columnstore.api.*;
public class MCSAPITest {
public static void main(String[] args) {
ColumnStoreDriver d = new ColumnStoreDriver();
ColumnStoreBulkInsert b = d.createBulkInsert("test", "t1", (short)0, 0);
try {
int rows = 10;
int columns = 50;
for (int i = 0; i < rows; ++i) {
for (int c = 0; c < columns; ++c) {
b.setColumn(c, 0);
}
System.out.println("Writing row: " + i);
b.writeRow();
}
System.out.println("Commiting Now");
b.commit();
}
catch (ColumnStoreException e) {
b.rollback();
e.printStackTrace();
}
}
}
尝试将列减少到20并且正常工作。 有没有人注意到这个?
答案 0 :(得分:0)
如果您按照教程操作并将表格创建为:
create table t1(i int, c char(3)) engine=columnstore;
您只能将数据插入两列。仔细检查表中的列数是否与您要插入的列数相匹配是明智的。
无论表中有多少列,插入的列多于表中的列都应引发异常。通常的建议是在the MariaDB Jira under the ColumnStore project上针对此意外行为打开错误报告。
在调试器下运行代码可以让您找到代码挂起的位置。这是有价值的信息,开发人员可以使用它来弄清楚为什么它没有按预期运行。
答案 1 :(得分:0)
我已经加入开发团队,问题已在1.1.4版本中修复。更多细节在这里。 https://jira.mariadb.org/browse/MCOL-1245