Apache Arrow Flight RPC 客户端
Flight RPC 和 Flight SQL 客户端是特定于语言的驱动程序,它们使用 Arrow 内存格式和 Flight RPC 协议与数据库交互。Apache Arrow Flight RPC 和 Flight SQL 协议定义了服务器和客户端的 API。
使用 InfluxDB 3 客户端库
我们建议使用 InfluxDB 3 客户端库 将 InfluxDB 3 与您的应用程序代码集成。客户端库封装了 Apache Arrow Flight 客户端,并为 写入、查询 和处理存储在 InfluxDB Clustered 中的数据提供了便捷的方法。
Flight RPC 客户端 可以使用 SQL 或 InfluxQL 查询存储在 InfluxDB Clustered 数据库中的数据。使用 InfluxDB 3 专用的 IOx-specific Flight RPC 协议,客户端发送单个 DoGet()
请求进行身份验证、查询和检索数据。
Flight SQL 客户端 使用 Flight SQL 协议 查询 SQL 数据库服务器。它们可以使用 SQL 查询存储在 InfluxDB Clustered 数据库中的数据,但不能使用 InfuxQL。
客户端由 Apache Arrow 项目或第三方维护。有关 Flight 客户端的具体信息,请参阅客户端的 GitHub 仓库。
C# .NET Flight 客户端
C# .NET Flight 客户端与 C# .NET 脚本和应用程序集成,以查询存储在 InfluxDB 中的数据。
Go Flight 客户端
Go Flight 客户端与 Go 脚本和应用程序集成,以查询存储在 InfluxDB 中的数据。
Java Flight SQL 包
Java Flight SQL 客户端与 Java 应用程序集成,以使用 RPC 和 SQL 查询和检索来自 Flight 数据库服务器的数据。
public class Query {
public static void main(String[] args) {
String query = "SELECT * FROM home";
Location location = Location.forGrpcTls(HOST, 443);
CredentialCallOption auth = new CredentialCallOption(new BearerCredentialWriter(TOKEN));
BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
FlightClientMiddleware.Factory f = info -> new FlightClientMiddleware() {
@Override
public void onBeforeSendingHeaders(CallHeaders outgoingHeaders) {
outgoingHeaders.insert(DATABASE_FIELD, DATABASE_NAME);
}
};
FlightClient client = FlightClient.builder(allocator, location)
.intercept(f)
.build();
FlightSqlClient sqlClient = new FlightSqlClient(client);
FlightInfo flightInfo = sqlClient.execute(query, auth);
}
}
Python Flight 客户端
Python Flight 客户端与 Python 脚本和应用程序集成,以查询存储在 InfluxDB 中的数据。
from pyarrow.flight import FlightClient, Ticket, FlightCallOptions
import json
import pandas
import tabulate
# Downsampling query groups data into 2-hour bins
sql="""
SELECT DATE_BIN(INTERVAL '2 hours',
time,
'1970-01-01T00:00:00Z') AS time,
room,
selector_max(temp, time)['value'] AS 'max temp',
selector_min(temp, time)['value'] AS 'min temp',
avg(temp) AS 'average temp'
FROM home
GROUP BY
1,
room
ORDER BY room, 1"""
flight_ticket = Ticket(json.dumps({
"namespace_name": "DATABASE_NAME",
"sql_query": sql,
"query_type": "sql"
}))
token = (b"authorization", bytes(f"Bearer DATABASE_TOKEN".encode('utf-8')))
options = FlightCallOptions(headers=[token])
client = FlightClient(f"grpc+tls://cluster-host.com:443")
reader = client.do_get(flight_ticket, options)
arrow_table = reader.read_all()
Python Flight SQL DBAPI 客户端
Python flightsql-dbapi
库使用 SQL 和 Flight SQL 协议来查询存储在 InfluxDB Clustered 数据库中的数据。
此页内容是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户 可以联系 InfluxData 支持。