#apache-arrow #sql-server #odbc #flight-sql #data-source

bin+lib arrow-flightsql-odbc

Apache Arrow Flight SQL 服务器,通过 ODBC 代理请求

2 个不稳定版本

0.3.0 2024年2月9日
0.2.0 2022年4月29日
0.1.0 2022年4月29日

#1249 in 数据库接口

Apache-2.0

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://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