Google cloud platform 操作错误&;在snowflake中运行多个查询时出现ConnectTimeoutError(来自许多云运行实例)
我的平台在gcp云上运行。我们使用的数据库是雪花。 我们每周安排一次(使用云计划)几乎可以触发200个任务的作业(目前,将来可能会长大)。正在将所有任务添加到特定队列 每个任务实际上都是对一个云运行实例的push-post调用 每个云运行实例处理一个请求(另请参见环境设置),这意味着一次只能处理一个任务。此外,每个云运行都有2个活动会话到snowflake中的2个数据库(每个数据库一个)。第一个会话用于“global_db”,另一个会话用于特定的“person_id”db(注意:可能有两个活动会话用于来自不同云运行实例的同一person_id db) 问题: 1-当将任务队列“Max concurrent dispatches”设置为1000时,我得到503(“请求失败,因为实例未通过就绪性检查”) 问题可能是gcp的自动校准能力-通过将“最大并发调度”减少到gcp可以处理的合理数量而得到解决 2-将任务队列“最大并发调度”设置为10以上时, 我得到了多个ConnectTimeoutError&OperationalError,其中包含以下消息(我删除了长id,只放了{}以缩短消息):Google cloud platform 操作错误&;在snowflake中运行多个查询时出现ConnectTimeoutError(来自许多云运行实例),google-cloud-platform,snowflake-cloud-data-platform,google-cloud-run,google-cloud-tasks,Google Cloud Platform,Snowflake Cloud Data Platform,Google Cloud Run,Google Cloud Tasks,我的平台在gcp云上运行。我们使用的数据库是雪花。 我们每周安排一次(使用云计划)几乎可以触发200个任务的作业(目前,将来可能会长大)。正在将所有任务添加到特定队列 每个任务实际上都是对一个云运行实例的push-post调用 每个云运行实例处理一个请求(另请参见环境设置),这意味着一次只能处理一个任务。此外,每个云运行都有2个活动会话到snowflake中的2个数据库(每个数据库一个)。第一个会话用于“global_db”,另一个会话用于特定的“person_id”db(注意:可能有两个活动会
sqlalchemy.exc.OperationalError:(snowflake.connector.errors.)250003:未能执行请求:HTTPSConnectionPool(host='*****.us-central1.gcp.snowflakecomputing.com',port=443):url超过最大重试次数:/session/v1/login request?请求_id={request_id}数据库名={DB_NAME}仓库={NAME}请求_guid={guid}(由ConnectTimeoutError(,“连接到******.us-central1.gcp.snowflakecomputing.com超时。(连接超时=60)”引起)
(此错误的背景信息位于:)
snowflake.connector.vendored.urllib3.exceptions.MaxRetryError:HTTPSConnectionPool(host='*****.us-central1.gcp.snowflakecomputing.com',port=443):url超过最大重试次数:/session/v1/login request?request_id={id}&databaseName={warehouse={NAME}&request_guid={guid}(由ConnectTimeoutError引起(,“与******.us-central1.gcp.snowflakecomputing.com的连接超时。(连接超时=60)”
有什么办法可以解决吗?
问你的任何问题,我都会详细说明
环境设置-
- 云任务队列-检查“最大并发调度”的多个配置,从10到1000并发。最大尝试次数为1,最大调度次数为500
- 云运行-5个热实例,每个实例1个请求。可以自动缩放到最多1000个实例
- snowflake-帐户参数为默认值(最大并发级别为8,语句排队超时时间(秒)为0),并更改为(为了处理这些错误):
- 最大并发级别-32
- 语句排队超时(秒)-600
不幸的是,单个VPC网络的最大连接数为25。如果“最大并发调度”,是否工作正常小于10?是的,我用5试过了,效果很好。错误表明您的登录请求超时,因此您甚至没有达到运行查询的阶段。由于它的工作时间小于10,我从云端考虑了一些限制/并发性。您是指gcp还是雪花?我想是gcp,但很难说。O在Snowflake方面,您甚至没有达到使用最大并发级别,因为您仍然需要登录请求,所以从我的角度来看,这不是Snowflake的并发问题。另一方面,我不会触及最大并发级别。当您达到最大并发级别时,查询将排队,而不是丢弃,因此该参数不是导致此问题的原因当然可以。
sqlalchemy.exc.OperationalError: (snowflake.connector.errors. ) 250003: Failed to execute request: HTTPSConnectionPool(host='*****.us-central1.gcp.snowflakecomputing.com', port=443): Max retries exceeded with url: /session/v1/login-request?request_id={REQUEST_ID}&databaseName={DB_NAME}&warehouse={NAME}&request_guid={GUID} (Caused by ConnectTimeoutError(<snowflake.connector.vendored.urllib3.connection.HTTPSConnection object at 0x3e583ff91550>, 'Connection to *****.us-central1.gcp.snowflakecomputing.com timed out. (connect timeout=60)'))
snowflake.connector.vendored.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='*****.us-central1.gcp.snowflakecomputing.com', port=443): Max retries exceeded with url: /session/v1/login-request?request_id={ID}&databaseName={NAME}&warehouse={NAME}&request_guid={GUID}(Caused by ConnectTimeoutError(<snowflake.connector.vendored.urllib3.connection.HTTPSConnection object at 0x3eab877b3ed0>, 'Connection to *****.us-central1.gcp.snowflakecomputing.com timed out. (connect timeout=60)'))