MariaDB ColumnStore批量写入SDK需要永远

时间:2018-03-06 19:46:17

标签: java mariadb columnstore

我正在尝试使用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并且正常工作。 有没有人注意到这个?

2 个答案:

答案 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