下载给定URI中的文件并以Bytes Array格式返回文件内容
使用限制
仅实时计算引擎VVR 11.6.0及以上版本支持FETCH_CONTENT函数。
语法
VARBINARY FETCH_CONTENT(VARCHAR uri)
VARBINARY FETCH_CONTENT(VARCHAR uri, INTEGER httpRetryCount)入参
参数 | 数据类型 | 说明 |
uri | VARCHAR | 该参数指定需要下载的文件路径。支持的URI schemes包括HTTP和Flink FileSystem所支持的Schema:
|
httpRetryCount | INTEGER | 可选参数,仅在uri是HTTP链接时生效。此参数用于指定HTTP请求重试次数,默认是3次,重试httpRetryCount次后仍失败,则抛出相关异常。 |
如果uri为NULL,则返回NULL。如果非NULL的uri下载失败,则抛出相关异常。
如果uri为OSS路径,则需要配置OSS相关鉴权信息,参考配置Bucket鉴权信息
如果httpRetryCount被指定为负数或者NULL,则会使用默认的httpRetryCount。
出参
数据类型 | 说明 |
VARBINARY | 文件内容 |
示例1
测试数据
表 1. T1
input
uri(VARCHAR)
1
http://example.com/image_url
2
oss://example-bucket/example.pdf
3
NULL
测试语句
SELECT id, FETCH_CONTENT(uri) AS `value` FROM T1;测试结果
id (INT)
value (VARCHAR)
1
x'ffd8ffe00010......'
2
x'aaffd8ffe000......'
3
NULL
示例2
测试数据
表 1. T2
id (INT)
uri(VARCHAR)
1
http://example.com/image_url
2
http://example.com/not_exist_image_url
测试语句
SELECT id, FETCH_CONTENT(uri, 5) AS `value` FROM T2;测试结果
id (INT)
value (VARCHAR)
1
x'ffd8ffe00010......'
在处理不存在的URL时,会在重试5次后抛出异常:
Caused by: java.io.IOException: HTTP request failed with response code: 404 for URL
相关文档
更多支持的内置函数,详情请参见支持的函数。
使用自定义函数(UDF),详情请参见自定义函数和管理自定义函数(UDF)。