HDFql 使用表格

HDFql working with tables

我对 HDFql 的可用性有一些疑问:

  1. HDFql 是否支持创建行类型不同的table?
  2. 如何将数据附加到 table?
  3. 如何遍历 table 行?

我要创建的 table 将包含 1 到 2^n 行的任何内容,并且无法事先确定。

这里有一些关于 HDFql 问题的信息:

  1. 如果通过“HDFql 支持创建的 table 其中行是不同类型 ” 你的意思是 HDFql 支持复合数据类型,答案还没有。 (编辑:因为现在支持 HDFql 版本 2.2.0 复合数据类型)

  2. 要将数据附加到数据集中(无法事先确定其大小),您必须执行几个步骤(我假设您使用的是 C 编程语言):

    2.1。数据集必须是可扩展的。例如,您可以在 HDFql 中创建一个可扩展数据集,如下所示(这将创建一个名为 dset 的整数数据类型的数据集,其大小不受限制):

    hdfql_execute("CREATE CHUNKED DATASET dset AS INT(UNLIMITED)");

2.2。使用 hyperslab 在数据集 dset 的最后一行写入一个值,如下所示(将 my_value 替换为您要写入数据集的整数):

    hdfql_execute("INSERT INTO dset(-1:1:1:1) VALUES(my_value)");

2.3。将值写入数据集 dset 后,如果还有更多值要写入,首先增加(即更改)维度一个单位,如下所示,然后重复步骤 2.2.:

    hdfql_execute("ALTER DIMENSION dset TO +1");
  1. 要遍历数据集 dset 的行,您必须先读取它然后使用函数 hdfql_cursor_get_int(),如下所示:
    hdfql_execute("SELECT FROM dset");
    while(hdfql_cursor_next(NULL) == HDFQL_SUCCESS)
    {
        printf("Value: %d\n", *hdfql_cursor_get_int(NULL));
    }