如何使用MariaDb CONNECT Engine查询多个文件中的数百万个JSON对象而不会崩溃?

时间:2019-07-24 16:08:03

标签: json mariadb bigdata mariadb-connect-engine

假设我在一个文件夹中有一个.json文件的集合,每个文件恰好代表一本书,即

  • 在文件夹/1.json中预订1
  • 在folder / 2.json中的书2

每个文件的大小仅在6kb和3mb之间,但有数百万个!

现在,我对MariaDb执行以下操作:

CREATE OR REPLACE TABLE books ( isbn CHAR(13) NOT NULL, title VARCHAR(256) NULL ) ENGINE=CONNECT TABLE_TYPE=JSON OPTION_LIST="PRETTY=2,JMODE=1,MAPPING=1" MULTIPLE=1 FILE_NAME="folder/*.json" READONLY=1;

然后是一个简单查询,例如

SELECT COUNT(*) FROM books;

如果文件夹中只有几个文件,此方法就可以正常工作。。但是,即使只有数千个文件,它也不再起作用:客户端因{{ 1}},而且服务器日志对我来说真的没有帮助。

我猜这是一个内存问题,但是我不明白为什么会发生:似乎没有必要将每个文件/书本对象加载到内存中;服务器可以将每个文件一个接一个地访问,对吧?

我尝试过的事没有成功

  • Lost connection to MySQL server during query而非PRETTY=0
  • PRETTY=2
  • HUGE=1(左右)
  • set global connect_work_size=999999999而非MAPPING=0
  • MAPPING=1在my.ini中

非常感谢您的帮助。

修改: 这些文件只是普通的对象JSON文件,例如 max_allowed_packet=1024M(以及其他一些属性)。

0 个答案:

没有答案