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

大量數(shù)據(jù)導(dǎo)出方案

本文將通過示例,為您介紹導(dǎo)出MaxCompute SQL計算結(jié)果的方法。

說明

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

概述

您可以通過以下方法導(dǎo)出SQL的運行結(jié)果:

  • 如果數(shù)據(jù)比較少,請使用SQL Task得到全部的查詢結(jié)果。

  • 如果需要導(dǎo)出某個表或者分區(qū),請使用Tunnel直接導(dǎo)出查詢結(jié)果。

  • 如果SQL比較復(fù)雜,請使用Tunnel和SQL相互配合導(dǎo)出查詢結(jié)果。

  • DataWorks 可以方便地幫您運行SQL,同步數(shù)據(jù),并支持定時調(diào)度,配置任務(wù)依賴的功能。

  • 開源工具DataX可以幫助您方便地把MaxCompute中的數(shù)據(jù)導(dǎo)出到目標數(shù)據(jù)源,詳情請參見DataX概述

SQLTask方式導(dǎo)出

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

使用SQLTask時,請注意:

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

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

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

Tunnel方式導(dǎo)出

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

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

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方式導(dǎo)出

SQLTask不能處理超過1萬條數(shù)據(jù),而Tunnel方式可以,兩者可以互補,因此可以基于兩者實現(xiàn)超過1萬條數(shù)據(jù)的導(dǎo)出。

代碼實現(xiàn)的示例如下。

Odps odps = OdpsUtils.newDefaultOdps(); // 初始化Odps對象。
Instance i = SQLTask.run(odps, "select * from wc_in;");
i.waitForSuccess();
//創(chuàng)建InstanceTunnel。
InstanceTunnel tunnel = new InstanceTunnel(odps);
//根據(jù)instance id,創(chuàng)建DownloadSession。
InstanceTunnel.DownloadSession session = tunnel.createDownloadSession(odps.getDefaultProject(), i.getId());
long count = session.getRecordCount();
//輸出結(jié)果條數(shù)。
System.out.println(count);
//獲取數(shù)據(jù)的寫法與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數(shù)據(jù)同步方式導(dǎo)出

DataWorks支持運行SQL并配置數(shù)據(jù)同步任務(wù),以完成數(shù)據(jù)生成和導(dǎo)出需求。

  1. 登錄DataWorks控制臺

  2. 在左側(cè)導(dǎo)航欄,單擊工作空間列表

  3. 單擊相應(yīng)工作空間操作列的快速進入 > 數(shù)據(jù)開發(fā)

  4. 新建業(yè)務(wù)流程。

    1. 右鍵單擊業(yè)務(wù)流程,選擇新建業(yè)務(wù)流程

    2. 輸入業(yè)務(wù)名稱

    3. 單擊新建

  5. 創(chuàng)建SQL節(jié)點。

    1. 右鍵單擊業(yè)務(wù)流程,選擇新建節(jié)點 > MaxCompute > ODPS SQL

    2. 填寫節(jié)點名稱runsql,單擊確認

    3. 配置ODPS SQL節(jié)點,配置完成后單擊保存

  6. 創(chuàng)建數(shù)據(jù)同步節(jié)點。

    1. 右鍵單擊業(yè)務(wù)流程,選擇新建節(jié)點 > 數(shù)據(jù)集成 > 離線同步

    2. 填寫節(jié)點名稱sync2mysql,單擊確認

    3. 選擇數(shù)據(jù)來源以及去向。

    4. 配置字段映射。

    5. 配置通道控制。

    6. 單擊保存

  7. 將數(shù)據(jù)同步節(jié)點和ODPS SQL節(jié)點連線配置成依賴關(guān)系,ODPS SQL節(jié)點作為數(shù)據(jù)的產(chǎn)出節(jié)點,數(shù)據(jù)同步節(jié)點作為數(shù)據(jù)的導(dǎo)出節(jié)點。

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

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

    select count(*) from result_in_db;