zoukankan      html  css  js  c++  java
  • Sybase中的load table的用法

    Sybase中的load table的用法

    用sybase iq作为数据仓库的存储,确实有其独特的特点和优势,但是在数据ETL的时候,如果用insert、update方式,速度太慢,大概是2秒钟左右一条数据。好在iq提供了一条load语句来解决这个问题。

    load语句的格式:
      LOAD [ INTO ] TABLE [ owner.]table-name [ ( column-name, . . . ) ]
      FROM filename
      [ load-option . . . ]
      [ statistics-limitation-options ]
      load-option :
      CHECK CONSTRAINTS { ON | OFF }
      | COMPUTES { ON | OFF }
      | DEFAULTS { ON | OFF }
      | DELIMITED BY string
      | ESCAPE CHARACTER character
      | ESCAPES { ON | OFF }
      | FORMAT { ASCII | BCP }
      | HEXADECIMAL {ON | OFF}
      | ORDER {ON | OFF}
      | PCTFREE percent-free-space
      | QUOTES { ON | OFF }
      | SKIP integer
      | STRIP { ON | OFF }
      | WITH CHECKPOINT { ON | OFF }
    
    
      • 如果字段名未出现在字段列表中,则填充NULL、0、空、或者DEFAULT;
    
      存在于输入文件中的字段可以用“filler()”.忽略
    
      • DEFAULTS { ON | OFF } 为ON则字段取缺省值。否则取NULL
    
      • QUOTES { ON | OFF } 缺省为ON ,字段定界符为‘’或者 “”
    
      • DELIMITED BY 选项: 可以单个字符,最多255个字符,例如:制表符
    
      号作分割符号:
    
      ...DELIMITED BY ’nx09’
    
      • SKIP n 忽略前n条记录;
    
      • STRIP ON|OFF 尾空格插入前是否截取;
    
      • WITH CHECKPOINT ON|OFF 缺省为 OFF, 如果设置为ON则,命令完成
    
      后,执行CHECKPOINT 操作。

    下面是从一个文本文件load到表F_INN_IA_DAILY_SUM中的语句:

    set temporary option date_order=YMD;
    Load Table F_INN_IA_DAILY_SUM
    (
    ORG_SID '+|+', 
    DEAL_SID '+|+', 
    ALL_TIME_SID '+|+', 
    R_COUNT_DIM_SID '+|+', 
    T_TAX_STOR_COST '+|+', 
    T_STOR_COST '+|+', 
    T_STOR_SUM '+|+', 
    CREATED_DT 'X0A'
    )
    From '/load_data/F_Inn_IA_Daily_Sum.txt'
    ESCAPES OFF
    QUOTES OFF
    NOTIFY 100000
    WITH CHECKPOINT ON;
    COMMIT

    其中+|+是字段的分隔符,X0A是记录的分隔符,即回车(文本文件中)。

    例一:

    1,文本文件的内容格式为:

    abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF
    abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF 
    abc|defgh|aaaa|bbbbbb|ccccc|ddddd|eeee|fffF

    2,load table语句:

    Load table  My_Table
    (
    ORG_SID                      '|', 
    DEAL_SID                     '|', 
    ALL_TIME_SID              '|', 
    R_COUNT_DIM_SID      '|, 
    T_TAX_STOR_COST    '|', 
    T_STOR_COST            '|', 
    T_STOR_SUM              '|', 
    CREATED_DT              'X0A'         --数据文件中每行的换行符(16进制)
    )
    From  '/load_data/loadTest.txt'       ---要加载文件的路径
    ESCAPES OFF
    QUOTES OFF
    NOTIFY 100000
    WITH CHECKPOINT ON;
    COMMIT;

    文件以‘|’作为分隔符,每行的换行符以 'X0A'换行; 通常的换行有'x0dx0a'(回车、换行)   或'x0A' (换行);

    load table  语法写入存储过程,然后直接调用存储过程文件即可加载入库;

    例二:

    1,文本格式为:

    20171222|&@001731edae78|&@absent|&@absent|&@001731edae78|&@|
    20171222|&@001bb958bc07|&@absent|&@absent|&@001bb958bc07|&@|
    20171222|&@001bfc067636|&@absent|&@absent|&@001bfc067636|&@|

    2,load table 语句:

    set temporary option CONVERSION_ERROR = 'OFF'; 
    load table t_station_match_result(load_dt '|&@' null('\xd0'),op_station '|&@' null('\xd0'),ip '|&@' null('\xd0'),mac '|&@' null('\xd0'), mobile '|&@|' null(''))
    FROM '" + file_path+"'
    ESCAPES OFF
    QUOTES OFF     
    NOTIFY 100000 
    WITH CHECKPOINT ON;
    COMMIT; 
    file_path:txt文件路径(绝对路径)

  • 相关阅读:
    Eclipse配置Maven3.5
    VM搭建Hadoop环境静态IP未起作用
    Word2010制作倒福字
    Word2010制作日历
    【整理】HTML5游戏开发学习笔记(1)- 骰子游戏
    [转载]HTML5开发入门经典教程和案例合集(含视频教程)
    [转载]如何做到 jQuery-free?
    [转载]教你如何塑造JavaScript牛逼形象
    Cloud9免费云IDE代码编辑平台空间支持Node.js,PHP,Python可使用FTP管理
    [转载]PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
  • 原文地址:https://www.cnblogs.com/lizm166/p/8108475.html
Copyright © 2011-2022 走看看