
企业微信

飞书
选择您喜欢的方式加入群聊

扫码添加咨询专家
AskTable 支持 33 种数据源,包括关系型数据库、NoSQL、数据仓库、文件等。本文将全面介绍数据源的接入流程和最佳实践。
MySQL 系列:
PostgreSQL 系列:
其他关系型:
云数据仓库:
开源数据仓库:
文档数据库:
时序数据库:
表格文件:
在线表格:
API 数据源:
实时数据:
步骤 1:选择数据源类型
步骤 2:配置连接信息
步骤 3:测试连接
步骤 4:同步元数据
步骤 5:配置权限
步骤 6:开始使用
连接信息:
{
"host": "mysql.example.com",
"port": 3306,
"database": "mydb",
"username": "readonly_user",
"password": "********"
}
高级配置:
{
"ssl": true,
"charset": "utf8mb4",
"timezone": "+08:00",
"connect_timeout": 10
}
最佳实践:
创建只读用户:
-- 创建只读用户
CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'password';
-- 授予只读权限
GRANT SELECT ON mydb.* TO 'readonly_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
连接信息:
{
"host": "postgres.example.com",
"port": 5432,
"database": "mydb",
"username": "readonly_user",
"password": "********",
"schema": "public"
}
高级配置:
{
"ssl_mode": "require",
"application_name": "asktable",
"connect_timeout": 10
}
创建只读用户:
-- 创建只读用户
CREATE USER readonly_user WITH PASSWORD 'password';
-- 授予连接权限
GRANT CONNECT ON DATABASE mydb TO readonly_user;
-- 授予 schema 使用权限
GRANT USAGE ON SCHEMA public TO readonly_user;
-- 授予表查询权限
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;
-- 授予未来表的查询权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO readonly_user;
连接信息:
{
"host": "clickhouse.example.com",
"port": 8123,
"database": "default",
"username": "readonly_user",
"password": "********",
"protocol": "http"
}
高级配置:
{
"secure": true,
"compression": true,
"max_execution_time": 60
}
创建只读用户:
-- 创建只读用户
CREATE USER readonly_user IDENTIFIED BY 'password';
-- 授予只读权限
GRANT SELECT ON default.* TO readonly_user;
上传文件:
支持的格式:
注意事项:
连接信息:
{
"app_id": "cli_xxxxx",
"app_secret": "********",
"app_token": "bascnxxxxx"
}
获取凭证:
权限配置:
场景:数据库有公网 IP
配置:
{
"host": "123.456.789.0",
"port": 3306
}
安全建议:
场景:数据库在内网,无公网 IP
方案 A:VPN
AskTable → VPN → 内网数据库
方案 B:SSH 隧道
{
"host": "localhost",
"port": 3306,
"ssh_tunnel": {
"host": "jump.example.com",
"port": 22,
"username": "tunnel_user",
"private_key": "-----BEGIN RSA PRIVATE KEY-----\n..."
}
}
方案 C:本地部署 AskTable
内网 AskTable → 内网数据库
AWS RDS:
阿里云 RDS:
腾讯云 TencentDB:
同步内容:
同步策略:
选择策略:
正则表达式过滤:
包含:^(user|order|product).*
排除:.*(temp|test|backup).*
重要性:
最佳实践:
-- 添加表注释
COMMENT ON TABLE users IS '用户表';
-- 添加字段注释
COMMENT ON COLUMN users.id IS '用户ID';
COMMENT ON COLUMN users.name IS '用户姓名';
COMMENT ON COLUMN users.created_at IS '创建时间';
参数说明:
min_size:最小连接数max_size:最大连接数max_idle_time:最大空闲时间connect_timeout:连接超时时间推荐配置:
{
"pool": {
"min_size": 2,
"max_size": 10,
"max_idle_time": 300,
"connect_timeout": 10
}
}
超时设置:
{
"query_timeout": 30,
"max_rows": 10000
}
索引建议:
元数据缓存:
查询结果缓存:
错误:无法连接到数据库
排查步骤:
测试命令:
# 测试网络连通性
ping mysql.example.com
# 测试端口
telnet mysql.example.com 3306
# 测试 MySQL 连接
mysql -h mysql.example.com -P 3306 -u username -p
错误:Access denied
排查步骤:
授权命令:
-- 查看用户权限
SHOW GRANTS FOR 'username'@'%';
-- 授予权限
GRANT SELECT ON database.* TO 'username'@'%';
错误:Failed to sync metadata
排查步骤:
使用只读账号:
密码安全:
IP 白名单:
允许的 IP:
- 123.456.789.0/24
- 234.567.890.0/24
SSL/TLS 加密:
记录内容:
数据源接入的关键点:
选择合适的数据源: ✅ 根据业务需求选择 ✅ 考虑性能和成本 ✅ 评估安全性
正确配置连接: ✅ 使用只读账号 ✅ 启用 SSL 加密 ✅ 配置连接池
优化性能: ✅ 添加索引 ✅ 设置超时 ✅ 使用缓存
保障安全: ✅ IP 白名单 ✅ 强密码策略 ✅ 审计日志
下一步:
相关阅读:
技术交流: