收到错误:“ CURLerror(curl_easy_perform()失败)-代码= 2 msg =“初始化失败”。”

时间:2019-10-21 15:24:47

标签: snowflake-data-warehouse

(提交以下问与答字符串,因为它可能会对其他收到类似错误消息的人有所帮助...)


“ M”提交的问题:

我有Windows 7 64位ODBC驱动程序。使用Attunity Replicate时,我尝试从Snowflake读取1TB数据,运行约5个小时后出现以下错误:

结果下载工作程序错误:工作程序错误:[雪花] [雪花](4)

对URL https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com/ogn3-s-vass2706/results/018ef7de-01c5-8ec1-0000-2ab10047f27a_0/main/data_1_5_225?x-amz-server-side-encryption-customer-algorithm=AES256&response-content-encoding=gzip&AWSAccessKeyId=AKIAJP5BI3JZEVKDRXDQ&Expires=1568894118&Signature=MoTOQPf5ZiBjX8YNYWJ6J0KaH5Q%3D的REST请求失败:CURLerror(curl_easy_perform()失败)-code = 2 msg ='初始化失败'。

注意:触发作业运行约5个小时后,会发生此错误。

1 个答案:

答案 0 :(得分:0)

“ KM”响应#1:

1)此问题是间歇性发生还是一直发生?

2)小数据集是否正在发生此问题?

3)您正在使用的Snowflake ODBC版本是什么?您可以使用最新的ODBC驱动程序版本2.19.14并让我们知道其行为吗?

4)您是否正在使用代理进入网络?

5)请从Snowflake Web GUI或SnowSQL终端运行以下语句,以获取需要列入防火墙/网络白名单的端点列表。 (与您的网络团队共享端点详细信息)

 SELECT SYSTEM$WHITELIST();

或(如果您想要输出更具可读性的内容):

select t.value:type::varchar as type, t.value:host::varchar as host, t.value:port as port from table(flatten(input => parse_json(system$whitelist()))) as t;

注意:为了正常运行,Snowflake必须能够访问一组HTTP / HTTPS地址。如果您的服务器策略拒绝访问大多数或所有外部IP地址和网站,则必须将这些地址列入白名单以允许正常服务运行。

与Snowflake的所有通信都通过端口443进行。但是,CRL和OCSP认证检查是通过端口80进行的。您组织的网络管理员必须打开防火墙才能在端口443和80上进行通信。


“ M”后续响应#1:

对于您的问题,请在下面找到我的答复:

1)这是一个间歇性问题。并非总是失败。

2)使用较小的数据集不会发生此问题。对于较大的数据集,该作业将运行11-12小时,然后由于指定的错误而失败。

3)我们正在使用ODBC驱动程序版本:2.19.09.00。将使用更高版本进行检查。

4)不。我们在网络中没有使用任何代理。

5)好。

我将检查网络中所有Snowflake IP地址并将其列入白名单,安装最新的ODBC驱动程序并再次运行作业。我会及时通知您结果。


“ M”后续响应#2:

我已将ODBC驱动程序升级到最新版本2.19.14。

现在正在运行的作业,在运行24小时后失败,并显示了另一个错误。

错误消息:

  

结果下载工作程序错误:工作程序错误:[雪花] [雪花](4)

     

对URL https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com/ogn3-s-vass2706/results/018f030a-0164-1b0c-0000-2ab1004b8b96_0/main/data_5_6_219?x-amz-server-side-encryption-customer-algorithm=AES256&response-content-encoding=gzip&AWSAccessKeyId=AKIAJP5BI3JZEVKDRXDQ&Expires=1569308247&Signature=2DSCUhY7DU56cpq6jo31rU5LKRw%3D的REST请求失败:CURLerror(curl_easy_perform()失败)-code = 28 msg ='已达到超时'。

请问您对此有何建议?


KM响应#2:

1)您的操作系统是什么?

2)是小型数据集还是大型数据集会发生此问题?

3)对于Windows,您能否尝试清除服务器示例的TEMP位置上的某些空间?对于Windows,对于Linux / tmp,它将为C:\ Windows \ Temp和C:\ Users \\ AppData \ Local \ Temp \。

4)您可以确保将URL https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com列入白名单。

5)尝试使用命令检查连接性。

curl -v -k https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com


“ M”后续响应#3:

1)操作系统:Windows Server 2012 R2。

2)仅在大型数据集上会发生此问题-尤其是当作业运行约24小时时。

3)完成。清除空间。

4)该网址已列入白名单。

5)在Windows Power Shell上,此命令显示错误:

Invoke-WebRequest:找不到与参数名称“ k”匹配的参数。

在第1行:9个字符

+ curl -v -k https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com

+     ~~

  + CategoryInfo     : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException

  + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

KM响应#3:

使用CURL命令测试与Snowflake的连接。 (确保在计算机上安装了curl,如果没有,则可以从第三方https://curl.haxx.se/download.html下载curl)

curl -v -k https://sfc-va-ds1-2-customer-stage.s3.amazonaws.com

有时,当TEMP位置中没有多少空间时,可能会发生此问题。您可以尝试运行作业并监视%TEMP%空间。

我不确定Attunity工具如何工作,但是某些ETL工具(例如Informatica ETL工具)会在服务器上创建临时文件并利用%TEMP%位置。


“ M”后续响应#4:

使用curl命令,现在可以成功连接。我现在将触发作业并监视%TEMP%位置。


还有其他想法,建议或可能的解决方法吗?