閱讀760 返回首頁    go 阿裏雲


OSSReader__Reader插件_使用手冊_數據集成-阿裏雲

1 快速介紹

OSSReader提供了讀取OSS數據存儲的能力。在底層實現上,OSSReader使用OSS官方Java SDK獲取OSS數據,並轉換為DataX傳輸協議傳遞給Writer。

2 功能與限製

OSSReader實現了從OSS讀取數據並轉為DataX協議的功能,OSS本身是無結構化數據存儲,對於DataX而言,OSSReader實現上類比TxtFileReader,有諸多相似之處。目前OSSReader支持功能如下:

  1. 支持且僅支持讀取TXT的文件,且要求TXT中shema為一張二維表。
  2. 支持類CSV格式文件,自定義分隔符。
  3. 支持多種類型數據讀取(使用String表示),支持列裁剪,支持列常量
  4. 支持遞歸讀取、支持文件名過濾。
  5. 支持文本壓縮,現有壓縮格式為zip、lzo、lzop、tgz、bzip2。注意,一個壓縮包不允許多文件打包壓縮。
  6. 多個object可以支持並發讀取。

我們暫時不能做到:

  1. 單個Object(File)支持多線程並發讀取,這裏涉及到單個Object內部切分算法。二期考慮支持。
  2. 單個Object在壓縮情況下,從技術上無法支持多線程並發讀取。

3 功能說明

3.1 配置樣例
{
    "type": "job",
    "traceId": "您可以在這裏填寫您作業的追蹤ID,建議使用業務名+您的作業ID",
    "version": "1.0",
    "configuration": {
        "settting": {
            "key": "value"
        },
        "reader": {
            "plugin": "oss",
            "parameter": {
                "endpoint": "https://oss.aliyuncs.com",
                "accessId": "",
                "accessKey": "",
                "bucket": "myBucket",
                "object": [
                    "/bazhen/*"
                ],
                "column": [
                    {
                        "type": "int",
                        "index": 0
                    },
                    {
                        "type": "string",
                        "value": "alibaba"
                    },
                    {
                        "type": "date",
                        "index": 1,
                        "format": "yyyy-mm-dd"
                    }
                ],
                "encoding": "UTF-8",
                "fieldDelimiter": "t",
                "compress": "gzip"
            }
        },
        "writer": {
            "plugin": "odps",
            "parameter": {
                "key": "value"
            }
        }
    }
}
3.2 參數說明
  • endpoint

  • accessId

    • 描述:OSS的accessId
    • 必選:是
    • 默認值:無
  • accessKey

    • 描述:OSS的accessKey
    • 必選:是
    • 默認值:無
  • bucket

    • 描述:OSS的bucket
    • 必選:是
    • 默認值:無
  • object

    • 描述:OSS的object信息,注意這裏可以支持填寫多個Object。

      • 當指定單個OSS Object,OSSReader暫時隻能使用單線程進行數據抽取。二期考慮在非壓縮文件情況下針對單個Object可以進行多線程並發讀取。
      • 當指定多個OSS Object,OSSReader支持使用多線程進行數據抽取。線程並發數通過通道數指定。
      • 當指定通配符,OSSReader嚐試遍曆出多個Object信息。例如: 指定/代表讀取bucket下遊所有的Object,指定/bazhen/代表讀取bazhen目錄下遊所有的Object。

      特別需要注意的是,DataX會將一個作業下同步的所有Object視作同一張數據表。用戶必須自己保證所有的Object能夠適配同一套schema信息。

    • 必選:是

    • 默認值:無

  • column

    • 描述:讀取字段列表,type指定源數據的類型,index指定當前列來自於文本第幾列(以0開始),value指定當前類型為常量,不從源頭文件讀取數據,而是根據value值自動生成對應的列。

      默認情況下,用戶可以全部按照String類型讀取數據,配置如下:

        "column": ["*"]
      

      用戶可以指定Column字段信息,配置如下:

      "column":
          {
             "type": "long",
             "index": 0    //從OSS文本第一列獲取int字段
          },
          {
             "type": "string",
             "value": "alibaba"  //從OSSReader內部生成alibaba的字符串字段作為當前字段
          }
      

      對於用戶指定Column信息,type必須填寫,index/value必須選擇其一。

    • 必選:是

    • 默認值:全部按照string類型讀取

  • fieldDelimiter

    • 描述:讀取的字段分隔符
    • 必選:是
    • 默認值:,
  • compress

    • 描述:文本壓縮類型,默認不填寫意味著沒有壓縮。支持壓縮類型為gzip、bzip2。
    • 必選:否
    • 默認值:不壓縮
  • encoding

    • 描述:讀取文件的編碼配置。
    • 必選:否
    • 默認值:utf-8
  • nullFormat

    • 描述:文本文件中無法使用標準字符串定義null(空指針),DataX提供nullFormat定義哪些字符串可以表示為null。

      例如如果用戶配置: nullFormat="N",那麼如果源頭數據是"N",DataX視作null字段。

    • 必選:否

    • 默認值:N

  • skipHeader

    • 描述:類CSV格式文件可能存在表頭為標題情況,需要跳過。默認不跳過。
    • 必選:否
    • 默認值:false
3.3 類型轉換

OSS本身不提供數據類型,該類型是DataX OSSReader定義:

CDP 內部類型 OSS 數據類型
Long Long
Double Double
String String
Boolean Boolean
Date Date

其中:

  • OSS Long是指OSS文本中使用整形的字符串表示形式,例如"19901219"。
  • OSS Double是指OSS文本中使用Double的字符串表示形式,例如"3.1415"。
  • OSS Boolean是指OSS文本中使用Boolean的字符串表示形式,例如"true"、"false"。不區分大小寫。
  • OSS Date是指OSS文本中使用Date的字符串表示形式,例如"2014-12-31",Date可以指定format格式。

最後更新:2016-11-23 16:03:59

  上一篇:go DRDSReader__Reader插件_使用手冊_數據集成-阿裏雲
  下一篇:go FtpReader__Reader插件_使用手冊_數據集成-阿裏雲