閱讀669 返回首頁    go 阿裏雲


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

1 快速介紹

TxtFileReader提供了讀取本地文件係統數據存儲的能力。在底層實現上,TxtFileReader獲取本地文件數據,並轉換為CDP傳輸協議傳遞給Writer。本地文件內容存放的是一張邏輯意義上的二維表,例如CSV格式的文本信息。

該通道目前隻在ECS Pipeline下支持

2 功能與限製

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

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

我們暫時不能做到:

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

3 功能說明

3.1 配置樣例
{
    "type": "job",
    "traceId": "您可以在這裏填寫您作業的追蹤ID,建議使用業務名+您的作業ID",
    "version": "1.0",
    "configuration": {
        "reader": {
            "plugin": "txtfile",
            "parameter": {
                "path": ["/home/haiwei.luo/case00/data"],
                "encoding": "UTF-8",
                "column": [
                  {
                  "index": 0,
                  "type": "long"
                  },
                  {
                  "index": 1,
                  "type": "boolean"
                  },
                  {
                  "index": 2,
                  "type": "double"
                  },
                  {
                  "index": 3,
                  "type": "string"
                  },
                  {
                  "index": 4,
                  "type": "date",
                  "format": "yyyy.MM.dd"
                  }
                ],
                "fieldDelimiter": ","
            }
        },
        "writer": {

        }
    }   
}
3.2 參數說明
  • path

    • 描述:本地文件係統的路徑信息,注意這裏可以支持填寫多個路徑。(1)當指定單個本地文件,TxtFileReader暫時隻能使用單線程進行數據抽取。二期考慮在非壓縮文件情況下針對單個File可以進行多線程並發讀取。(2)當指定多個本地文件,TxtFileReader支持使用多線程進行數據抽取。線程並發數通過通道數指定。(3)當指定通配符,TxtFileReader嚐試遍曆出多個文件信息。例如:

      指定/*代表讀取/目錄下所有的文件,指定/bazhen/*代表讀取bazhen目錄下遊所有的文件。
      

      TxtFileReader目前隻支持*作為文件通配符。 特別需要注意的是,CDP會將一個作業下同步的所有Text File視作同一張數據表。用戶必須自己保證所有的File能夠適配同一套schema信息。讀取文件用戶必須保證為類CSV格式,並且提供給CDP權限可讀。

      特別需要注意的是,如果Path指定的路徑下沒有符合匹配的文件抽取,CDP將報錯。

    • 必選:是

    • 默認值:無

  • column

    • 描述:讀取字段列表,type指定源數據的類型,index指定當前列來自於文本第幾列(以0開始),value指定當前類型為常量,不從源頭文件讀取數據,而是根據value值自動生成對應的列。默認情況下,用戶可以全部按照String類型讀取數據,配置如下:

      "column": ["*"]
      

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

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

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

  • 必選:是
  • 默認值:全部按照string類型讀取
  • fieldDelimiter

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

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

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

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

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

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

    • 必選:否

    • 默認值:N

3.3 類型轉換

本地文件本身不提供數據類型,該類型是CDP TxtFileReader定義:

CDP 內部類型 本地文件 數據類型
Long Long
Double Double
String String
Boolean Boolean
Date Date

其中:

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

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

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