如何在Great Expectations连接配置中禁用SSL?
如何在Great Expectations的Trino数据源配置中禁用SSL?
你在VPC内测试环境使用Great Expectations连接Trino时,因系统默认尝试SSL连接(但环境未配置SSL)导致连接失败,错误提示SSL协议相关EOF异常。可以通过以下两种方式修改配置禁用SSL:
方法1:在连接字符串中追加SSL参数
直接在Trino连接字符串末尾添加ssl=False&verify=False,强制使用HTTP而非HTTPS连接:
datasource_config = { "name": "my_trino_datasource", "class_name": "Datasource", "execution_engine": { "class_name": "SqlAlchemyExecutionEngine", # 追加禁用SSL的参数 "connection_string": "trino://username:password@URI:8080/hive/default?ssl=False&verify=False", }, "data_connectors": { "default_runtime_data_connector_name": { "class_name": "RuntimeDataConnector", "batch_identifiers": ["default_identifier_name"], }, "default_inferred_data_connector_name": { "class_name": "InferredAssetSqlDataConnector", "include_schema_name": True, }, }, }
方法2:通过connect_args传递SSL配置
在execution_engine中新增connect_args字段,明确设置SSL相关参数为False:
datasource_config = { "name": "my_trino_datasource", "class_name": "Datasource", "execution_engine": { "class_name": "SqlAlchemyExecutionEngine", "connection_string": "trino://username:password@URI:8080/hive/default", # 添加连接参数禁用SSL "connect_args": { "ssl": False, "verify": False } }, "data_connectors": { "default_runtime_data_connector_name": { "class_name": "RuntimeDataConnector", "batch_identifiers": ["default_identifier_name"], }, "default_inferred_data_connector_name": { "class_name": "InferredAssetSqlDataConnector", "include_schema_name": True, }, }, }
原理说明
Great Expectations的SqlAlchemyExecutionEngine会将connect_args中的参数传递给SQLAlchemy的create_engine方法,而SQLAlchemy的Trino适配器支持ssl和verify参数:
ssl=False:强制使用HTTP协议连接,跳过SSL握手流程verify=False:关闭证书校验(测试环境下无证书需求)
修改后重新初始化数据源,即可正常连接未配置SSL的Trino测试环境。
内容的提问来源于stack exchange,提问作者josephkibe
相关产品推荐
相关产品推荐

