閱讀676 返回首頁    go 魔獸


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

1 快速介紹

OSSWriter提供了向OSS寫入類CSV格式的一個或者多個表文件。

寫入OSS內容存放的是一張邏輯意義上的二維表,例如CSV格式的文本信息。

2 功能與限製

OSSWriter實現了從CDP協議轉為OSS中的TXT文件功能,OSS本身是無結構化數據存儲,OSSWriter需要在如下幾個方麵增加:

  1. 支持且僅支持寫入 TXT的文件,且要求TXT中shema為一張二維表。
  2. 支持類CSV格式文件,自定義分隔符。
  3. 支持文本壓縮,現有壓縮格式為zip、lzo、lzop、tgz、bzip2。
  4. 支持多線程寫入,每個線程寫入不同子文件。
  5. 文件支持滾動,當文件大於某個size值或者行數值,文件需要切換。 [暫不支持]

我們不能做到:

  1. 單個文件不能支持並發寫入。

3 功能說明

3.1 配置樣例
{
    "type": "job",
    "traceId": "您可以在這裏填寫您作業的追蹤ID,建議使用業務名+您的作業ID",
    "version": "1.0",
    "configuration": {
        "settting": {
            "key": "value"
        },
        "reader": {
            "plugin": "mysql",
            "parameter": {
                "key": "value"
            }
        },
        "writer": {
            "plugin": "OSS",
            "parameter": {
                "endpoint": "https://OSS.aliyuncs.com",
                "accessId": "",
                "accessKey": "",
                "bucket": "myBucket",
                "object": "cdo/CDP",
                "encoding": "UTF-8",
                "fieldDelimiter": ",",
                "compress": "gzip",
                "writeMode": "truncate|append|nonConflict"
            }
        }
    }
}
3.2 參數說明
  • endpoint

  • accessId

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

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

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

    • 描述:OSSWriter寫入的文件名,OSS使用文件名模擬目錄的實現。

      使用"object": "CDP",寫入object以CDP開頭,後綴添加隨機字符串。

      使用"object": "cdo/CDP",寫入的object以cdo/CDP開頭,後綴隨機添加字符串,/作為OSS模擬目錄的分隔符。

    • 必選:是

    • 默認值:無

  • writeMode

    • 描述:OSSWriter寫入前數據清理處理:
      • truncate,寫入前清理object名稱前綴匹配的所有object。例如: "object": "abc",將清理所有abc開頭的object。
      • append,寫入前不做任何處理,CDP OSSWriter直接使用object名稱寫入,並使用隨機UUID的後綴名來保證文件名不衝突。例如用戶指定的object名為CDP,實際寫入為CDP_xxxxxx_xxxx_xxxx
      • nonConflict,如果指定路徑出現前綴匹配的object,直接報錯。例如: "object": "abc",如果存在abc123的object,將直接報錯。
    • 必選:是
    • 默認值:無
  • fileFormat

    • 描述:文件寫出的格式,包括csv (https://zh.wikipedia.org/wiki/%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E5%80%BC) 和text兩種,csv是嚴格的csv格式,如果待寫數據包括列分隔符,則會按照csv的轉義語法轉義,轉義符號為雙引號";text格式是用列分隔符簡單分割待寫數據,對於待寫數據包括列分隔符情況下不做轉義。

      • 必選:否

      • 默認值:text

  • fieldDelimiter

    • 描述:讀取的字段分隔符
    • 必選:否
    • 默認值:,
  • compress(暫時不支持)
    • 描述:文本壓縮類型,默認不填寫意味著沒有壓縮。支持壓縮類型為gzip、bzip2。
    • 必選:否
    • 默認值:無
  • encoding
    • 描述:寫出文件的編碼配置。
    • 必選:否
    • 默認值:utf-8
  • nullFormat

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

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

    • 必選:否

    • 默認值:N

  • header

    • 描述:Oss寫出時的表頭,示例['id', 'name', 'age']。

      • 必選:否

      • 默認值:無

  • maxFileSize

    • 描述:Oss寫出時單個Object文件的最大大小,默認為10000*10MB,類似log4j日誌打印時根據日誌文件大小輪轉。OSS分塊上傳時,每個分塊大小為10MB,每個OSS InitiateMultipartUploadRequest支持的分塊最大數量為10000。輪轉發生時,object名字規則是:在原有object前綴加UUID隨機數的基礎上,拚接_1,_2,_3等後綴。

      • 必選:否

      • 默認值:100000MB

3.3 類型轉換

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

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 DRDSWriter__Writer插件_使用手冊_數據集成-阿裏雲
  下一篇:go ADSWriter__Writer插件_使用手冊_數據集成-阿裏雲