连接外部数据库
社区贡献
贡献者:fengkiej 来自 Rupiah Token
Hummingbot 默认将交易数据存储在本地 SQLite 数据库中,但在某些情况下这可能受限,例如需要与外部系统共享数据时,用户可能希望使用自己偏好的客户端/服务器型关系型数据库管理系统(RDBMS)。
Hummingbot 通过 SQLAlchemy 支持其他 RDBMS,其内置了若干常用 RDBMS 方言,例如:
- PostgreSQL
- MySQL
- Oracle
- Microsoft SQL Server
这些方言需要在 Hummingbot 的 conda 环境中单独安装对应的 DBAPI 驱动程序,有关每种 RDBMS 所需的合适 DBAPI 驱动程序,请参阅 SQLAlchemy 文档。例如,要使用 PostgreSQL,需安装 psycopg2。请运行以下命令通过 conda 安装:
要配置 RDBMS 连接,需编辑 /hummingbot_conf 目录下的 conf_client.yml 文件。
注意
在 Hummingbot 的早期版本(1.5.0 及以下)中,该文件名为 conf_global.yml。
- Advanced database options, currently supports SQLAlchemy's included dialects
- Reference: https://docs.sqlalchemy.org/en/13/dialects/
db_engine: sqlite
db_host: 127.0.0.1
db_port: '3306'
db_username: username
db_password: password
db_name: dbname
配置参数¶
| 配置参数 | 可能的值 |
|---|---|
| db_engine | sqlite、postgresql、mysql、oracle、mssql |
| db_host | 任意字符串,例如 127.0.0.1 |
| db_port | 任意字符串,例如 3306 |
| db_username | 任意字符串,例如 username |
| db_password | 任意字符串,例如 password |
| db_name | 任意字符串,例如 dbname |
SQLAlchemy 方言¶
也可以连接 SQLAlchemy 支持的其他外部方言(例如 Amazon Redshift)。但由于其 DSN 格式多样,该功能目前在 Hummingbot 中不受支持,请自行承担使用风险。
📘 额外资源¶
在该 YouTube 视频 中,基金会首席开发者 Fede 演示了如何使用 Docker Compose 启动多个实例,使它们全部将数据保存到同一个 PostgreSQL 数据库中。