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

Doris數據源

DataWorks數據集成支持使用Doris Writer導入表數據至Doris。本文為您介紹DataWorks的Doris數據同步能力支持情況。

支持的Doris版本

Doris Writer使用的驅動版本是MySQL Driver 5.1.47,該驅動支持的內核版本如下。驅動能力詳情請參見Doris官網文檔

Doris 版本

是否支持

0.x.x

支持

1.1.x

支持

1.2.x

支持

2.x

支持

使用限制

數據集成僅支持離線寫入Doris。

支持的字段類型

不同Doris版本支持不同的數據類型和聚合模型。各版本Doris的全量字段類型請參見Doris的官方文檔,下面為您介紹Doris當前主要字段的支持情況。

類型

支持模型

Doris版本

離線寫入(Doris Writer)

SMALLINT

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

INT

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

BIGINT

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

LARGEINT

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

FLOAT

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

DOUBLE

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

DECIMAL

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

DECIMALV3

Aggregate,Unique,Duplicate

1.2.1+、2.x

支持

DATE

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

DATETIME

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

DATEV2

Aggregate,Unique,Duplicate

1.2.x、2.x

支持

DATATIMEV2

Aggregate,Unique,Duplicate

1.2.x、2.x

支持

CHAR

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

VARCHAR

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

STRING

Aggregate,Unique,Duplicate

0.x.x、1.1.x、1.2.x、2.x

支持

VARCHAR

Aggregate,Unique,Duplicate

1.1.x、1.2.x、2.x

支持

ARRAY

Duplicate

1.2.x、2.x

支持

JSONB

Aggregate,Unique,Duplicate

1.2.x、2.x

支持

HLL

Aggregate

0.x.x、1.1.x、1.2.x、2.x

支持

BITMAP

Aggregate

0.x.x、1.1.x、1.2.x、2.x

支持

QUANTILE_STATE

Aggregate

1.2.x、2.x

支持

實現原理

Doris Writer通過Doris原生支持的StreamLoad方式導入數據,Doris Writer會將Reader端讀取到的數據緩存在內存中,并拼接成文本,然后批量導入至Doris數據庫。更多詳情請參見Doris官方文檔

數據同步前準備

在DataWorks上進行數據同步前,您需要參考本文提前在Doris側進行數據同步環境準備,以便在DataWorks上進行Doris數據同步任務配置與執行時服務正常。以下為您介紹Doris同步前的相關環境準備。

準備工作1:確認Doris的版本

數據集成對Doris版本有要求,您可以參考上文支持的Doris版本章節,查看當前待同步的Doris是否符合版本要求。您可以在Doris的官方網站下載對應的版本,并且安裝。

準備工作2:創建賬號,并配置賬號權限

您需要規劃一個數據倉庫的登錄賬號用于后續操作,同時,您需要為該賬號設置密碼,以便后續連接到數據倉庫。如果您要使用Doris默認的root用戶進行登錄,那么您需要為root用戶設置密碼。root用戶默認沒有密碼,您可以在Doris上執行SQL來設置密碼:

SET PASSWORD FOR 'root' = PASSWORD('密碼')

準備工作3:配置Doris的網絡連接

使用StreamLoad導入數據,需要訪問FE節點的私網地址。如果訪問FE的公網地址,則會被重定向到BE節點的內網IP(數據操作問題)。因此,您需要將Doris的網絡與數據集成使用的Serverless資源組或獨享數據集成資源組打通,使之通過內網地址進行訪問。網絡打通的具體操作可以參考網絡連通方案

創建數據源

在進行數據同步任務開發時,您需要在DataWorks上創建一個對應的數據源,操作流程請參見創建并管理數據源詳細的配置參數解釋可在配置界面查看對應參數的文案提示

下面對Doris數據源的幾個配置項進行說明:

  • JdbcUrl:請填寫JDBC連接串,包含IP、端口號、數據庫和連接參數。支持公網IP和私網IP,如果使用公網IP,請確保數據集成資源組能夠正常訪問Doris所在的主機。

  • FE endpoint:請填寫FE節點的IP和端口。如果您的集群中有多個FE節點,可以配置多個FE節點的IP和端口,每個IP和端口以逗號分隔,例如ip1:port1,ip2:port2。在測試連通性時,會對所有的FE endpoint做連通性測試。

  • 用戶名:請填寫Doris數據庫的用戶名。

  • 密碼:請填寫Doris數據庫對應用戶的密碼。

數據同步任務開發

數據同步任務的配置入口和通用配置流程可參見下文的配置指導。

單表離線同步任務配置指導

附錄:腳本Demo與參數說明

離線任務腳本配置方式

如果您配置離線任務時使用腳本模式的方式進行配置,您需要按照統一的腳本格式要求,在任務腳本中編寫相應的參數,詳情請參見通過腳本模式配置離線同步任務,以下為您介紹腳本模式下數據源的參數配置詳情。

Reader腳本Demo

{
  "type": "job",
  "version": "2.0",//版本號。
  "steps": [
    {
      "stepType": "doris",//插件名。
      "parameter": {
        "column": [//列名。
          "id"
        ],
        "connection": [
          {
            "querySql": [
              "select a,b from join1 c join join2 d on c.id = d.id;"
            ],
            "datasource": ""http://數據源名稱。
          }
        ],
        "where": "",//過濾條件。
        "splitPk": "",//切分鍵。
        "encoding": "UTF-8"http://編碼格式。
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"http://錯誤記錄數。
    },
    "speed": {
      "throttle": true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
      "concurrent": 1,//作業并發數。
      "mbps": "12"http://限流,此處1mbps = 1MB/s。
    }
  },
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  }
}

Reader腳本參數

腳本參數名

描述

是否必選

默認值

datasource

數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須與添加的數據源名稱保持一致。

table

選取的需要同步的表名稱。一個數據集成任務只能從一張表中讀取數據。

table用于配置范圍的高級用法示例如下:

  • 您可以通過配置區間讀取分庫分表,例如'table_[0-99]'表示讀取'table_0''table_1''table_2'直到'table_99'

  • 如果您的表數字后綴的長度一致,例如'table_000''table_001''table_002'直到'table_999',您可以配置為'"table": ["table_00[0-9]", "table_0[10-99]", "table_[100-999]"]'

說明

任務會讀取匹配到的所有表,具體讀取這些表中column配置項指定的列。如果表不存在,或者讀取的列不存在,會導致任務失敗。

column

所配置的表中需要同步的列名集合,使用JSON的數組描述字段信息 。默認使用所有列配置,例如[ * ]

  • 支持列裁剪:列可以挑選部分列進行導出。

  • 支持列換序:列可以不按照表schema信息順序進行導出。

  • 支持常量配置:您需要按照Doris SQL語法格式,例如["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"]

    • id為普通列名。

    • table為包含保留字的列名。

    • 1為整型數字常量。

    • 'mingya.wmy'為字符串常量(注意需要加上一對單引號)。

    • 關于null

      • " "表示空。

      • null表示null。

      • 'null'表示null這個字符串。

    • to_char(a+1)為計算字符串長度函數。

    • 2.3為浮點數。

    • true為布爾值。

  • column必須顯示指定同步的列集合,不允許為空。

splitPk

Doris Reader進行數據抽取時,如果指定splitPk,表示您希望使用splitPk代表的字段進行數據分片,數據同步因此會啟動并發任務進行數據同步,提高數據同步的效能。

  • 推薦splitPk用戶使用表主鍵,因為表主鍵通常情況下比較均勻,因此切分出來的分片也不容易出現數據熱點。

  • 目前splitPk僅支持整型數據切分,不支持字符串、浮點和日期等其他類型 。如果您指定其他非支持類型,忽略splitPk功能,使用單通道進行同步。

  • 如果不填寫splitPk,包括不提供splitPk或者splitPk值為空,數據同步視作使用單通道同步該表數據 。

where

篩選條件,在實際業務場景中,往往會選擇當天的數據進行同步,將where條件指定為gmt_create>$bizdate

  • where條件可以有效地進行業務增量同步。如果不填寫where語句,包括不提供where的key或value,數據同步均視作同步全量數據。

  • 不可以將where條件指定為limit 10,這不符合Doris SQL WHERE子句約束。

querySql(高級模式,向導模式不支持此參數的配置)

在部分業務場景中,where配置項不足以描述所篩選的條件,您可以通過該配置項來自定義篩選SQL。配置該項后,數據同步系統會忽略tables、columns和splitPk配置項,直接使用該項配置的內容對數據進行篩選。例如,需要進行多表join后同步數據,使用select a,b from table_a join table_b on table_a.id = table_b.id。當您配置querySql時,Doris Reader直接忽略table、column、where和splitPk條件的配置,querySql優先級大于tablecolumnwheresplitPk選項。datasource通過它解析出用戶名和密碼等信息。

說明

querySql需要區分大小寫,例如,寫為querysql會不生效。

Writer腳本Demo

{
  "stepType": "doris",//插件名。
  "parameter":
  {
    "postSql"://執行數據同步任務之后率先執行的SQL語句。
    [],
    "preSql":
    [],//執行數據同步任務之前率先執行的SQL語句。
    "datasource":"doris_datasource",//數據源名。
    "table": "doris_table_name",//表名。
    "column":
    [
      "id",
      "table_id",
      "table_no",
      "table_name",
      "table_status"
    ],
    "loadProps":{
      "column_separator": "\\x01",//指定CSV格式的列分隔符
      "line_delimiter": "\\x02"http://指定CSV格式的行分隔符
    }
  },
  "name": "Writer",
  "category": "writer"
}

Writer腳本參數

參數

描述

是否必選

默認值

datasource

數據源名稱,腳本模式支持添加數據源,此配置項填寫的內容必須與添加的數據源名稱保持一致。

table

選取的需要同步的表名稱。

column

目標表需要寫入數據的字段,字段之間用英文逗號分隔。例如"column":["id","name","age"]。如果要依次寫入全部列,使用(*)表示,例如"column":["*"]

preSql

執行數據同步任務之前率先執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如,執行前清空表中的舊數據。

postSql

執行數據同步任務之后執行的SQL語句。目前向導模式僅允許執行一條SQL語句,腳本模式可以支持多條SQL語句,例如,加上某個時間戳。

maxBatchRows

每批次導入數據的最大行數,與batchSize共同控制每批次的導入數量。每批次數據達到兩個閾值之一,即開始導入這一批次的數據。

500000

batchSize

每批次導入數據的最大數據量,與maxBatchRows共同控制每批次的導入數量。每批次數據達到兩個閾值之一,即開始導入這一批次的數據。

104857600

maxRetries

每批次導入數據失敗后的重試次數。

3

labelPrefix

每批次上傳文件的 label 前綴。最終的label將有labelPrefix + UUID組成全局唯一的label,確保數據不會重復導入。

datax_doris_writer_

loadProps

StreamLoad的請求參數,主要用于配置導入的數據格式。默認以CSV格式導入。如果loadProps沒有配置,則采用默認的CSV格式,以\t為列分隔符,\n為行分隔符,配置如下所示。

"loadProps": {
    "format":"csv",
    "column_separator": "\t",
    "line_delimiter": "\n"
}

如果您需要指定為JSON格式導入,則配置如下所示。

"loadProps": {
    "format": "json"
}

聚合類型腳本(Doris Writer寫入聚合類型)

Doris Writer支持寫入聚合類型,但是需要在腳本模式中做額外的配置。如下所示。

例如,對于如下一張Doris的表,其中,uuidbitmap類型(聚合類型)、sexHLL類型(聚合類型)。

CREATE TABLE `example_table_1` (
  `user_id` int(11) NULL,
  `date` varchar(10) NULL DEFAULT "10.5",
  `city` varchar(10) NULL,
  `uuid` bitmap BITMAP_UNION NULL, -- 聚合類型
  `sex` HLL HLL_UNION  -- 聚合類型
) ENGINE=OLAP AGGREGATE KEY(`user_id`, `date`,`city`)
COMMENT 'OLAP' DISTRIBUTED BY HASH(`user_id`) BUCKETS 32

往表中插入原始數據:

user_id,date,city,uuid,sex
0,T0S4Pb,abc,43,'54'
1,T0S4Pd,fsd,34,'54'
2,T0S4Pb,fa3,53,'64'
4,T0S4Pb,fwe,87,'64'
5,T0S4Pb,gbr,90,'56'
2,iY3GiHkLF,234,100,'54'

通過Doris Writer寫入聚合類型時,不僅需要在writer.parameter.column中指定該列,還需要在writer.parameter.loadProps.columns中配置聚合函數。例如,為uuid使用聚合函數bitmap_hash,為sex使用聚合函數hll_hash

腳本模式示例:

{
    "stepType": "doris",//插件名。
    "writer":
    {
        "parameter":
        {
            "column":
            [
                "user_id",
                "date",
                "city",
                "uuid",// 聚合類型bitmap
                "sex"http:// 聚合類型HLL
            ],
            "loadProps":
            {
                "format": "csv",
                "column_separator": "\\x01",
                "line_delimiter": "\\x02",
                "columns": "user_id,date,city,k1,uuid=bitmap_hash(k1),k2,sex=hll_hash(k2)"http:// 需要指定聚合函數
            },
            "postSql":
            [
                "select count(1) from example_tbl_3"
            ],
            "preSql":
            [],
            "datasource":"doris_datasource",//數據源名。
                    "table": "doris_table_name",//表名。
        }
          "name": "Writer",
              "category": "writer"
    }
}