利用Linux和UNIX中的一種最常用的進程間通信機制

來源:互聯網
上載者:User
關鍵字 Linux Unix 進程間通信機制

DataStage 作業通常用於按批次處理資料,它們計畫按特定的間隔運行。 在沒有具體的計畫要遵循時,DataStage 操作員可通過 DataStage 和 QualityStage Director 用戶端或在命令列手動啟動作業。 如果在命令列運行作業,那麼您可以按如下方式執行它。

dsjob -run -HTTP://www.aliyun.com/zixun/aggregation/12616.html">param input_file=/path/to/in_file -param output_ file=/path/to/out_file dstage1 job1

圖 1 給出了一個表示此命令的圖表。

圖 1. 調用 DataStage 作業


在正常環境中,in_file 和 out_file 存儲在運行 DataStage 的機器上的某個檔案系統中。 但在 Linux 或 UNIX 中,輸入和輸出可傳送到一系列命令中。 例如,當需要對程式進行排序時,可執行命令 command|sort |uniq > /path/to/out_file。 在這種情況下,圖 2 顯式了資料流程,其中一個命令的輸出變成下一個命令的輸入,最終的輸出位於檔案系統中。

圖 2. UNIX 典型管道用法


假設中間流程生成了幾百萬行代碼,您可避免獲取中間檔,從而節省檔案系統中的空間以及寫入這些檔的時間。 與 UNIX 中執行的許多程式或命令不同,DataStage 作業不會通過管道獲取標準輸入。 本文將介紹一種方法,展示如何使用腳本完成此任務,以及它的實際用法。

如果作業應接受標準輸入並生成標準輸出,就像常規 UNIX 命令一樣,那麼必須通過一個包裝器腳本按以下方式調用它:command1|piped_ds_job.sh|command2 > /path/to/out_file。

或者可能您必須將輸出發送到某個檔,比如使用命令 command1|piped_ds_job.sh > /path/to/out_file。

圖 3 中的圖表展示了應如何架構該腳本。

圖 3. 一個 DataStage 作業的包裝器腳本


該腳本必須將標準輸入轉換為指定管道,還必須將 DataStage 作業的輸出檔案轉換為標準輸出。 在下面幾節中,您將學習如何完成此任務。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.