Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 操作错误&;在snowflake中运行多个查询时出现ConnectTimeoutError(来自许多云运行实例)_Google Cloud Platform_Snowflake Cloud Data Platform_Google Cloud Run_Google Cloud Tasks - Fatal编程技术网

Google cloud platform 操作错误&;在snowflake中运行多个查询时出现ConnectTimeoutError(来自许多云运行实例)

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(注意:可能有两个活动会

我的平台在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,只放了{}以缩短消息):

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,该VPC使用静态IP连接到云运行实例


不幸的是,单个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)'))