本文介绍如何在 Python 开发环境连接并访问 ByteHouse 云数仓。
ByteHouse 兼容 MySQL Python Driver 程序:MySQL Connector/Python (MySQL 官方驱动,本文已在程序 8.0 版本下验证)
说明
需要 Python 3.7 或更高版本的支持。
访问 ByteHouse 所需的连接信息,请参考 获取连接信息 获取。
可以通过如下命令,获取最新发布版本的 PyMySQL。
pip3 install mysql-connector-python
本章节介绍通过 MySQL Connector/Python 程序连接 ByteHouse 的基本用法,您可以在程序 官方主页 获取最新的文档和发布版本信息。
可参考下面代码样例设置 ByteHouse 连接信息,具体内容可以根据 前提条件中获取的信息填写。
db_config = { 'host': '{HOST}', # 填写HOST地址 'port': 3306, 'user': 'bytehouse', 'password': '{API_KEY}', # API_key密钥 'database': '{DATABASE_NAME}', # 数据库名称 'charset': 'utf8mb4', 'auth_plugin': 'mysql_clear_password', } self.connection = mysql.connector.connect(**db_config)
import unittest import mysql.connector from mysql.connector import Error class TestMySQLConnection(unittest.TestCase): def setUp(self): db_config = { 'host': '{HOST}', # 填写HOST地址 'port': 3306, 'user': 'bytehouse', 'password': '{API_KEY}', # API_key密钥 'database': '{DATABASE_NAME}', # 数据库名称 'charset': 'utf8mb4', 'auth_plugin': 'mysql_clear_password', } self.connection = mysql.connector.connect(**db_config) def tearDown(self): self.connection.close() def test_show_databases(self): try: cursor = self.connection.cursor() cursor.execute("SHOW DATABASES") rows = cursor.fetchall() if cursor.description is not None: columns = [i[0] for i in cursor.description] print(",".join(columns)) if rows is not None: for row in rows: print(",".join(row)) cursor.close() except Error as e: self.fail(f"Failed to execute SHOW DATABASES: {e}")