-
-
Notifications
You must be signed in to change notification settings - Fork 87
Native format reader example with go #384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This is an example of using the low native reader of clickhouse format. I didn't make benchmarch but I think it could help to optimize query (and memory usage if I find how to use lz4 on results).
|
@blackrez Let me understand your point. Your suggestion is to use the Native output format as the intermediate format between the ClickHouse engine and language bindings of chDB to speed up query performance. |
I think this is very meaningful. Just for Go binding, it's much more efficient than use the Parquet format (at least the server doesn't need an extra encoding from a native format to the Parquet format), and you can get better compatibility with the netive clickhouse-go client(Sometimes, the data types in the Parquet format can't fully express the data types in ClickHouse). |
By leveraging the native format and ch-go (or similar tools in other programming languages), this also helps chdb users more conveniently obtain the type and content of data at specific rows and columns in query results directly. |
Also, for some use case where I don't need/want arrow or pandas dependancies on my applications and use native format. In my opinion arrow and pandas are important but it should be optional. |
Using native format for go bindings could indeed improve performance, but i does not change much in term of serializing/deserializing the values from clickhouse to the process memory. |
Hello,
This an example on how we can leverage native format. I use golang, but native format is well supported by all clients. I think it could help to be faster and use less memory (I didn't find yet how to use lz4 with chdb).
This PR is more for the discussion than the code itself.