Handle HDF data simpler, cleaner, faster



Welcome aboard! We invite you to join the research organizations, data-driven corporations, and universities across the globe who use HDFql. It’s free.

WHY? Scientists, engineers and data professionals currently waste a lot of unnecessary time managing the data format HDF. That’s because the interfaces for HDF are highly complex (e.g. the C API contains more than 400 low-level functions that are far from easy to use!). With HDF becoming increasingly common in the big data arena, a faster and simpler solution is needed.

WHAT? HDFql is the first high-level language to manage HDF data. Designed to be as simple and powerful as SQL, HDFql dramatically reduces the learning effort and time needed to handle HDF. Built on intuitive syntax, the tool offers a clean compact interface which reads and writes HDF data across programming languages and platforms.

HOW? As an example, imagine that you need to create an HDF file named "myFile.h5" and, inside it, a group named "myGroup" containing an attribute named "myAttribute" of type float with a value of 12.4. In HDFql, this can easily be implemented as follows:

create file myFile.h5
use file myFile.h5
create group myGroup
create attribute myGroup/myAttribute as float default 12.4

In contrast, using the C API on the same example is quite cumbersome:

hid_t file;
hid_t group;
hid_t dataspace;
hid_t attribute;
hsize_t dimension;
float value;
H5Fcreate("myFile.h5", H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
file = H5Fopen("myFile.h5", H5F_ACC_RDWR, H5P_DEFAULT);
group = H5Gcreate(file, "myGroup", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
dimension = 1;
dataspace = H5Screate_simple(1, &dimension, NULL);
attribute = H5Acreate(group, "myAttribute", H5T_NATIVE_FLOAT, dataspace, H5P_DEFAULT, H5P_DEFAULT);
value = 12.4;
H5Awrite(attribute, H5T_NATIVE_FLOAT, &value);

More examples...