FETCH_CONTENT

更新时间:
复制为 MD 格式

下载给定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包括HTTPFlink FileSystem所支持的Schema:

  • http:// or https:// : HTTP/HTTPS链接

  • oss:// : 阿里云OSS路径

  • hdfs:// : HDFS路径

  • file:// : 本地文件路径

httpRetryCount

INTEGER

可选参数,仅在uriHTTP链接时生效。此参数用于指定HTTP请求重试次数,默认是3次,重试httpRetryCount次后仍失败,则抛出相关异常。

说明
  • 如果uriNULL,则返回NULL。如果非NULLuri下载失败,则抛出相关异常。

  • 如果uriOSS路径,则需要配置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

相关文档