下載給定URI中的檔案並以Bytes Array格式返迴文件內容
使用限制
僅Realtime Compute引擎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)。