簡體   English   中英

U-SQL作業以動態名稱查詢多個表

[英]U-SQL job to query multiple tables with dynamic names

我們面臨的挑戰是以下挑戰:

  • 在Azure SQL數據庫中,我們有多個表,這些表具有以下表名:table_num其中num只是一個整數。 這些表是動態創建的,因此表的數量可以變化。 (從表_1,表_2到表_N)所有表具有相同的列。

  • 作為U-SQL腳本文件的一部分,我們希望對所有這些表執行相同的查詢,並使用所有這些查詢的組合結果生成輸出csv文件。

我們嘗試了幾件事:

  • U-SQL不允許循環,因此我們考慮在Azure SQL數據庫中創建一個視圖,該視圖將使用某種游標將所有表組合在一起。 然后,U-SQL文件將查詢該視圖(使用外部源)。 但是,只能通過函數在Azure SQL數據庫中創建視圖,而函數無法執行動態SQL甚至無法調用存儲過程。

  • 我們沒有找到直接從U-SQL調用外部數據源的存儲過程的方法

  • 我們不想每次添加新表時都更新我們的U-SQL作業...

例如,是否可以通過自定義提取器在U-SQL中執行此操作? 還有其他想法嗎?

我能想到的一種解決方案是使用Azure數據工廠(v2)來協助完成這一工作。

您可以使用以下活動創建管道:

  1. 查找活動配置為執行存儲過程
  2. 對於每個 將查找活動輸出用作源的活動
    1. 作為子項,請使用執行您的U-Sql腳本的U-Sql活動 ,該腳本將單個表(For Each活動的項)的輸出寫入Blob或Datalake
  3. 添加一個“ 復制活動” 活動 步驟2.1中的blob 合並到一個最終的blob中。

如果您很少或沒有使用ADF v2的經驗,請記住花一些時間來了解它,但是一旦您學會了,您就不會后悔。 使用GUI創建管道是一個不錯的選擇。

編輯 :@wBob提到的另一個(容易得多)的解決方案是以某種方式創建一個包含所有行的表,因為所有動態生成的表都具有相同的架構。 例如,您可以創建一個存儲過程來填充此表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM