Azure Blob存儲文件源Azure的隊列存儲(遺留)
重要的
這個文檔已經退休了,可能不會被更新。產品、服務或技術中提到的這些內容不再支持。看到自動加載器是什麼?。
ABS-AQS連接器提供了一個優化的文件源使用Azure隊列存儲(aq)尋找新的文件寫入一個Azure Blob存儲(ABS)容器沒有反複清單的所有文件。這提供了兩個優點:
低延遲:不需要列表嵌套在ABS目錄結構,這是緩慢和資源密集型的。
降低成本:沒有更多的昂貴的ABS API請求列表。
請注意
ABS-AQS源從aq隊列刪除消息,因為它消耗的事件。如果你想要其他管道使用消息從這個隊列,設置一個單獨的aq隊列優化讀者。您可以設置多個事件網格訂閱發布到不同的隊列。
使用ABS-AQS文件來源
必須使用ABS-AQS文件來源:
建立了ABS事件通知通過利用Azure事件他們aq網格訂閱和路線。看到對Blob存儲事件做出反應。
指定
fileFormat
和queueUrl
選項和一個模式。例如:火花。readStream\。格式(“abs-aqs”)\。選項(“fileFormat”,“json”)\。選項(“queueName”,…)\。選項(“connectionString”,…)\。模式(…)\。負載()
Azure的隊列存儲和Blob存儲進行身份驗證
驗證Azure的隊列存儲和Blob存儲,使用共享訪問或存儲賬戶簽名(SAS)牌鑰匙。你必須提供一個連接字符串存儲帳戶您的隊列在哪裏部署包含你的SAS令牌或訪問密鑰存儲賬戶。有關更多信息,請參見配置Azure存儲連接字符串。
你還需要提供你的Azure Blob存儲容器。看到連接到數據存儲Gen2湖和Blob存儲Azure如何配置信息訪問Azure Blob存儲容器。
請注意
我們強烈建議您使用秘密提供你的連接字符串。
配置
選項 |
類型 |
默認的 |
描述 |
---|---|---|---|
allowOverwrites |
布爾 |
|
是否應該再加工一個blob被覆蓋。 |
connectionString |
字符串 |
(沒有一個所需的參數) |
的連接字符串訪問您的隊列。 |
fetchParallelism |
整數 |
1 |
數量的線程從隊列獲取消息時使用服務。 |
fileFormat |
字符串 |
(沒有一個所需的參數) |
文件的格式等 |
ignoreFileDeletion |
布爾 |
|
如果你有生命周期配置或者你手動刪除源文件,您必須設置這個選項 |
maxFileAge |
整數 |
604800年 |
決定了多長時間(以秒為單位)被存儲為文件通知狀態,以避免重複處理。 |
pathRewrites |
一個JSON字符串。 |
|
如果你使用掛載點,您可以重寫的前綴 |
queueFetchInterval |
例如,一個時間字符串 |
|
多長時間等待獲取之間如果隊列是空的。aq Azure指控/ API請求。因此,如果數據不經常到達,這個值可以設置為很長一段時間。隻要隊列非空,我們將不斷獲取。如果每5分鍾創建新的文件,您可能希望設置一個高 |
queueName |
字符串 |
(沒有一個所需的參數) |
aq隊列的名稱。 |
如果你觀察很多消息看起來像司機日誌獲取0新事件和3老事件。
,你往往比新觀察更多的舊事件,你應該降低你的觸發間隔流。
如果你是使用文件從一個位置在Blob存儲您期望一些文件可能被刪除處理它們之前,你可以設置以下配置忽略錯誤並繼續進行處理:
火花。sql(“設置spark.sql.files.ignoreMissingFiles = true”)