Arrow Flight SQL
内存分析开发平台Apache Arrow
Arrow 的核心数据结构是统一的列式内存格式 关键组件是其内存中的列格式
Apache Arrow Flight 是一个基于Arrow数据的高性能RPC框架,构建在gRPC和Arrow IPC格式之上
Arrow Flight是一个使用 gRPC 或 REST 接口进行标准化高性能数据交换的框架
Arrow Flight SQL
Flight-SQL 是在 Flight-RPC 的技术上实现的具有 SQL 语义的通信操作
用户下发统一的SQL查询命令, 并通过Flight-SQL 利用Flight-RPC client分发到自己实现的对应数据库的Server 中进行执行,
将执行的结果通过 Flight-SQL 返回给用户.
Arrow Flight SQL 还提供了通用的 JDBC 驱动,支持与同样遵循 Arrow Flight SQL 协议的数据库无缝交互
Apache Arrow项目的 ADBC 驱动程序 能让用户以列式布局读取数据,从而大大提高性能
sqlflite
sqlflite:An Arrow Flight SQL Server with DuckDB or SQLite back-end execution engines
一款结合Arrow Flight SQL Server与DuckDB或SQLite的后端数据库解决方案
利用了Apache Arrow Flight SQL Server的高效数据传输和查询能力,
同时结合了DuckDB和SQLite的轻量级和易用性。
通过JDBC、Python ADBC驱动、Ibis和SQLAlchemy等多种接口,支持多种编程语言连接到sqlflite服务器
docker pull voltrondata/sqlflite:latest-slim
docker pull voltrondata/sqlflite:latest
GizmoSQL
GizmoSQL — High-Performance SQL Server for the Cloud
docker pull gizmodata/gizmosql:latest-slim
docker pull gizmodata/gizmosql:latest
模板引擎
在 Java 中,常见的模板引擎有 JSP、Freemarker 等;
在 PHP 中,则有 Smarty、Twig 等
python Jinja2 是最受欢迎的Python模板引擎之 Mako 是另一个强大的模板引擎
Smarty ,一个用 PHP 开发的模板引擎,主要用于分离代码与页面设计,提升开发效率
通信安全协议
通过Session管理用户登录状
通过token的方式做登录身份校验
SSL、TLS和mTLS等一系列重要的通信安全协议
SSL,即安全套接字层(Secure Socket Layer),是一种通信协议
TLS 即传输层安全性协议(TLS)
mTLS 相互身份验证传输层安全协议(mTLS)是一种在网络通信中用于确保通信双方身份验证和数据机密性的协议。它建立在传输层安全协议(TLS)的基础之上
公钥和私钥 TLS证书 TLS握手
Basic Authentication——当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码
服务器认证通过后,返回给用户一个JWT
JWT全称JSON Web Token,是一种基于JSON的,用于在网络上声明某种主张的令牌(Token)。
JWT通常由三部分组成:头信息(header)、消息体(payload)、签名(signature)。
header = '{"alg":"HS256","typ":"JWT"}' HS256表明了使用HMAC-SHA256来生成签名。
payload 消息体(payload)包含了JWT的意图,比如userId、roleId、expireTime等
Signature 签名(Signature)是对前两部分的签名,防止数据篡改。
签名首先需要指定1个秘钥(Secret)密钥 Header里面指定的签名算法(默认是 HMAC SHA256)
HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)
Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用"点"(.)分隔
客户端只需要本地保存该token(通常使用local storage,也可以使用cookie)即可。
用户下次访问时,在Authorization头部使用Bearer模式添加JWT,格式Authorization: Bearer
C++中实现JSON Web令牌的 jwt-cpp 库解析
参考
https://github.com/voltrondata/sqlflite
https://github.com/gizmodata/gizmosql