创建表
host:port— 远程 Arrow Flight 服务器的地址。如果省略端口,则使用默认端口8815。String。dataset_name— Flight 服务器上的数据集标识符 (具体用作 PATH 描述符还是用于SELECT *查询,取决于arrow_flight_request_descriptor_type设置) 。String。username— 用于基本 HTTP 身份验证的用户名。String。password— 用于基本 HTTP 身份验证的密码。String。
username 和 password,则不使用身份验证 (仅当 Arrow Flight 服务器允许未身份验证访问时才可行) 。
列列表是可选的——如果省略,则会通过 GetSchema 从远程 Arrow Flight 服务器推断 schema。
命名集合
该引擎支持通过命名集合存储连接参数:设置
arrow_flight_request_descriptor_type— 控制向 Flight 服务器发送数据集名称的方式。可能的值:path(默认值,以 PATH 描述符形式发送) 或command(以 CMD 描述符形式发送,内容为SELECT * FROM <dataset>) 。对于需要 SQL 命令的 Flight 服务器 (例如 Dremio) ,请使用command。
arrow_flight_request_timeout_sec— 单个 Arrow Flight 请求的超时时间 (以秒为单位) ,默认值为300。该限制作用于整个请求:对于SELECT而言,涵盖的是整个结果流,而不仅仅是等待第一个记录批次的时间。0表示不设超时,此时如果 Flight 服务器接受了请求却始终不响应,查询将一直阻塞,直到连接关闭。
使用示例
从远程 Arrow Flight 服务器读取数据:注意事项
- 如果在
CREATE TABLE语句中指定了列,则这些列必须与 Flight 服务器 返回的 schema 一致。 - 如果省略列,则会自动根据远程 server 推断 schema。
- 支持读取 (
SELECT) 和写入 (INSERT) 。 arrow_flight_request_descriptor_type设置用于控制将数据集名称作为 PATH 描述符发送,还是作为封装SELECT *查询的 CMD 描述符发送。