【问题标题】:MariaDB ColumnStore Bulk Write SDK takes foreverMariaDB ColumnStore Bulk Write SDK 需要很长时间
【发布时间】:2018-03-06 19:46:17
【问题描述】:

我正在尝试使用 Java 中的 MariaDB ColumnStore Bulk Write SDK 在具有 50 列(数据类型 int)的表中批量插入 10 行,但它从未完成必须在 10 -15 次尝试中终止进程,但结果相同.

这是他们文档中的代码示例 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 列并且工作正常。 有没有人注意到这一点?

【问题讨论】:

    标签: java mariadb columnstore


    【解决方案1】:

    如果您按照教程创建表格:

    create table t1(i int, c char(3)) engine=columnstore;
    

    您只能将数据插入两列。仔细检查表中的列数是否与您插入的列数相匹配。

    无论表中有多少列,插入比表中更多的列都应该引发异常。通常的建议是在the MariaDB Jira under the ColumnStore project 上针对这种意外行为打开错误报告。

    在调试器下运行代码可以让您发现代码似乎挂起的位置。这是很有价值的信息,开发人员可以利用这些信息来找出为什么它没有按预期运行。

    【讨论】:

    • 该表由 50 列 int 数据类型创建。
    【解决方案2】:

    我已向开发团队提出该问题,该问题已在 1.1.4 版本中得到修复。更多详情请点击此处。 https://jira.mariadb.org/browse/MCOL-1245

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 2021-01-15
      • 1970-01-01
      • 2014-02-22
      • 2020-04-17
      • 1970-01-01
      • 2013-09-07
      • 2020-08-26
      相关资源
      最近更新 更多