【发布时间】:2018-07-23 18:45:57
【问题描述】:
我正在编写一些使用批量插入的代码,看起来像这样:
ColumnStoreBulkInsert b = d.createBulkInsert("pst", "events", (short) 0, 0);
try {
for (Map<String, Object> record : records) {
try {
for (int i = 0; i < schema.length; i++) {
Object value = record.get(schema[i].toLowerCase());
String val = value.toString();
b.setColumn(i, val);
}
b.writeRow();
if (currentBatchSize >= batchSize) {
b.commit();
currentBatchSize = 0;
}
}
catch (ColumnStoreException e) {
b.rollback();
}
}
}
catch(Exception e) {
throw new RuntimeException(e);
}
我遇到的问题是,当我运行它时,内存不足(似乎),因为我必须每次都创建一个新的 ColumnStoreBulkInsert。我的问题是其他人是否遇到过这种情况,如果是这样,如何避免这种情况。谢谢!
【问题讨论】:
-
什么语言?也许是 Java?
-
是的,这是 java 8(ColumnStore 版本 mariadb-columnstore-1.1.5-2-centos7.x86_64.bin.tar.gz)
-
更新:我们清楚地注意到,当我们运行此程序时,我们的内存不断(迅速)攀升。是否需要进行某种发布或某种删除以使其正常工作?我也在使用Oracle的JDK
-
currentBatchSize 在哪里增加?
-
我在这里省略了该代码,但它已递增。虫子是从下面来的。谢谢大家!
标签: java mariadb bulkinsert columnstore