日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

大量數據導出方案

更新時間:

本文將通過示例,為您介紹導出MaxCompute SQL計算結果的方法。

說明

本文中所有SDK部分僅以Java舉例。

概述

您可以通過以下方法導出SQL的運行結果:

  • 如果數據比較少,請使用SQL Task得到全部的查詢結果。

  • 如果需要導出某個表或者分區,請使用Tunnel直接導出查詢結果。

  • 如果SQL比較復雜,請使用Tunnel和SQL相互配合導出查詢結果。

  • DataWorks 可以方便地幫您運行SQL,同步數據,并支持定時調度,配置任務依賴的功能。

  • 開源工具DataX可以幫助您方便地把MaxCompute中的數據導出到目標數據源,詳情請參見DataX概述。

SQLTask方式導出

SQLTask使用SDK方法,直接調用MaxCompute SQL的接口SQLTask.getResult(i),可以很方便地運行SQL并獲得其返回結果。使用方法請參見SQLTask。

使用SQLTask時,請注意:

  • SQLTask.getResult(i)用于導出SELECT查詢結果,不適用于導出show tables等其他MaxCompute命令操作結果。

  • SELECT語句返回給客戶端的數據條數可以通過READ_TABLE_MAX_ROW進行設置,詳情請參見項目空間操作

  • SELECT語句最多返回1萬條數據至客戶端。即如果在客戶端(包括SQLTask)直接執行SELECT語句,相當于在SELECT語句最后加了Limit N。

Tunnel方式導出

如果您需要導出的查詢結果是某張表的全部內容(或者是具體的某個分區的全部內容),可以通過Tunnel來實現,詳情請參見命令行工具 和基于SDK編寫的Tunnel SDK。

此處提供一個Tunnel命令行導出數據的簡單示例,Tunnel SDK的編寫適用于Tunnel命令行無法支持的場景,詳情請參見批量數據通道概述。

tunnel d wc_out c:\wc_out.dat;
2016-12-16 19:32:08 - new session: 201612161932082d3c9b0a012f68e7 total lines: 3
2016-12-16 19:32:08 - file [0]: [0, 3), c:\wc_out.dat
downloading 3 records into 1 file
2016-12-16 19:32:08 - file [0] start
2016-12-16 19:32:08 - file [0] OK. total: 21 bytes
download OK

SQLTask配合Tunnel方式導出

SQLTask不能處理超過1萬條數據,而Tunnel方式可以,兩者可以互補,因此可以基于兩者實現超過1萬條數據的導出。

代碼實現的示例如下。

Odps odps = OdpsUtils.newDefaultOdps(); // 初始化Odps對象。
Instance i = SQLTask.run(odps, "select * from wc_in;");
i.waitForSuccess();
//創建InstanceTunnel。
InstanceTunnel tunnel = new InstanceTunnel(odps);
//根據instance id,創建DownloadSession。
InstanceTunnel.DownloadSession session = tunnel.createDownloadSession(odps.getDefaultProject(), i.getId());
long count = session.getRecordCount();
//輸出結果條數。
System.out.println(count);
//獲取數據的寫法與TableTunnel一樣。
TunnelRecordReader reader = session.openRecordReader(0, count);
Record record;
while((record = reader.read()) != null)
{
    for(int col = 0; col < session.getSchema().getColumns().size(); ++col)
    {
        //wc_in表字段均為STRING,這里直接打印輸出,或者用戶可以直接寫出到本地文件
        System.out.println(record.get(col));
    }
}
reader.close();

DataWorks數據同步方式導出

DataWorks支持運行SQL并配置數據同步任務,以完成數據生成和導出需求。

  1. 登錄DataWorks控制臺。

  2. 在左側導航欄,單擊工作空間列表

  3. 單擊相應工作空間操作列的快速進入 > 數據開發

  4. 新建業務流程。

    1. 右鍵單擊業務流程,選擇新建業務流程

    2. 輸入業務名稱

    3. 單擊新建。

  5. 創建SQL節點。

    1. 右鍵單擊業務流程,選擇新建節點 > MaxCompute > ODPS SQL。

    2. 填寫節點名稱runsql,單擊確認。

    3. 配置ODPS SQL節點,配置完成后單擊保存。

  6. 創建數據同步節點。

    1. 右鍵單擊業務流程,選擇新建節點 > 數據集成 > 離線同步

    2. 填寫節點名稱sync2mysql,單擊確認。

    3. 選擇數據來源以及去向。

    4. 配置字段映射。

    5. 配置通道控制。

    6. 單擊保存

  7. 將數據同步節點和ODPS SQL節點連線配置成依賴關系,ODPS SQL節點作為數據的產出節點,數據同步節點作為數據的導出節點。

  8. 工作流調度配置完成后(可以直接使用默認配置),單擊運行。數據同步的運行日志,如下所示。

    2016-12-17 23:43:46.394 [job-15598025] INFO JobContainer - 
    任務啟動時刻 : 2016-12-17 23:43:34
    任務結束時刻 : 2016-12-17 23:43:46
    任務總計耗時 : 11s
    任務平均流量 : 31.36KB/s
    記錄寫入速度 : 1668rec/s
    讀出記錄總數 : 16689
    讀寫失敗總數 : 0
  9. 執行如下SQL語句查看數據同步的結果。

    select count(*) from result_in_db;