2 个不稳定版本
0.3.0 | 2024年2月9日 |
---|---|
0.2.0 | 2022年4月29日 |
0.1.0 |
|
#1249 in 数据库接口
165KB
2K SLoC
Apache Arrow - FLight SQL - ODBC
理想情况下,数据库应立即暴露 Apache Arrow Flight SQL 服务。同时,该项目旨在为 ODBC 数据源实现 Apache Arrow Flight SQL 服务器。
目前实现了以下命令(但远非最佳)
- CommandStatementQuery
- CommandGetTables
在您的机器上运行服务器
服务器尝试通过 ODBC 连接器连接到 SQL 服务器。这需要通过 ODBC_CONNECTION_STRING 环境变量指定。
在我的 Mac 上,我已安装 mariadb-connector-odbc 驱动程序(brew install mariadb-connector-odbc),并且我在本地上有一个实例正在运行。
export ODBC_CONNECTION_STRING="Driver=/usr/local/Cellar/mariadb-connector-odbc/3.1.15/lib/mariadb/libmaodbc.dylib;SERVER=localhost;USER=demo;PASSWORD=demo;PORT=3306;database=demo"
cargo run server
在容器中运行服务器
与您的本地机器一样,关键是要有一个有效的 ODBC_CONNECTION_STRING(驱动程序 + 连接详细信息)。以下是您可以使用 snowflake 和 mysql odbc 驱动程序构建容器的示例。
docker build . -f ./deploy/Dockerfile -t flightsql-odbc-server
这些驱动程序的路径是
- /usr/lib/snowflake/odbc/lib/libSnowflake.so
- /mariadb-connector-odbc-2.0.15-ga-debian-x86_64/lib/libmaodbc.so
export SNOW_ODBC_CONNECTION_STRING="Driver=/usr/lib/snowflake/odbc/lib/libSnowflake.so;Server=account.eu-central-1.snowflakecomputing.com;UID=DEMO;PWD=DEMO;database=TEST_DEMO_DB;warehouse=DEMO_DWH"
export MYSQL_ODBC_CONNECTION_STRING="Driver=/mariadb-connector-odbc-2.0.15-ga-debian-x86_64/lib/libmaodbc.so;SERVER=hostname;USER=demo;PASSWORD=demo;PORT=3306;database=demo"
docker run --rm -it -e ODBC_CONNECTION_STRING="$MYSQL_ODBC_CONNECTION_STRING" -p 52358:52358 flightsql-odbc-server
资源
链接
- https://arrow.apache.ac.cn/
- https://arrow.apache.ac.cn/docs/format/Flight.html
- https://arrow.apache.ac.cn/blog/2022/02/16/introducing-arrow-flight-sql/
协议
部分代码来自 https://github.com/apache/arrow-rs/tree/master/arrow-flight/src/sql
更新(并格式化)renovate 配置
cat .github/renovate.json | jq | sponge .github/renovate.json
依赖项
~22–39MB
~625K SLoC