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

Graph Database(GDB)數據源

Graph Database數據源為您提供讀取和寫入Graph Database雙向通道的功能,本文為您介紹DataWorks的Graph Database數據同步的能力支持情況。

使用限制

離線讀

離線寫

  • 導出GDB需要配置點任務和邊任務,分別導出點數據和邊數據。

  • 導出任務根據點或邊的類型名稱遍歷數據,您需要確保待導出數據的類型名稱。

  • GDB中點和邊的主鍵ID字段是字符串類型,請配置導出為STRING類型。如果配置LONG等數值類型,GDB Reader會轉換為配置的目標類型,但轉換失敗時會丟失該記錄。

  • 您需要配置GDB導出的屬性值為存儲類型。如果存儲類型和配置類型不一致,GDB Reader會轉換為目標類型,但可能會轉換失敗導致該記錄丟失。

  • 導出點SET屬性的一個值時,不能保證多次導出都是同一個值。

  • 導出所有屬性使用JSON格式輸出時,僅包含一個屬性值的SET屬性會被作為普通屬性輸出。

  • 如果未對示例的字段名或枚舉值進行特別說明,請注意大小寫敏感。

  • GDB服務端僅支持UTF-8編碼格式,導出的數據均為UTF-8編碼格式。

  • GDB需要升級至1.0.20或更高版本才支持SET屬性。使用SET屬性時,請確認實例的版本。

  • 必須先運行點的同步任務,運行成功后,才可以運行邊的同步任務。

  • 點有以下約束規則:

    • 點必須具備類型名(即點名稱,對應label)。

    • 點的主鍵ID為必選,必須保證在點范圍內唯一,且類型必須是STRING(如果不是STRING類型,GDB Writer插件會強制轉換)。

    • 請謹慎選擇點的主鍵映射規則idTransRule。如果選擇none,需要保證點的ID在全局點的范圍內唯一。

  • 邊有以下約束規則:

    • 邊必須具備類型名(即邊名稱,對應label)。

    • 邊的主鍵ID為可選。

      • 如果填寫,則需要保證在全局邊范圍內唯一。

      • 如果不填寫,則GDB服務端默認生成一個UUID,類型必須是STRING(如果不是STRING類型,GDB Writer插件會強制轉換)。

    • 請謹慎選擇邊的主鍵映射規則idTransRule。如果選擇none,需要保證邊的ID在全局點邊的范圍內唯一。

    • 邊必須選擇srcIdTransRuledstIdTransRule,且必須和導入點時選擇的idTransRule一致。

  • 示例的字段名或枚舉值,如果沒有特殊說明,均為大小寫敏感。

  • 目前GDB服務端僅支持UTF-8編碼格式,要求來源數據均為UTF-8編碼格式。

  • 由于網絡限制,運行數據集成任務時,只能使用Serverless資源組(推薦)獨享數據集成資源組,請您提前購買并綁定GDB實例所在的專有網絡(VPC)。

創建數據源

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

數據同步任務開發

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

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

附錄:腳本Demo與參數說明

離線任務腳本配置方式

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

Reader腳本Demo

配置寫入GDB的數據同步作業時,請分別配置點和邊:

  • 點配置示例

    {
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        },
        "setting":{
            "errorLimit":{
                "record":"100"  //錯誤記錄數,表示臟數據的最大容忍條數。
            },
            "jvmOption":"",
            "speed":{
                "concurrent":3,
                "throttle":true,///當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "mbps":"12"http://限流,此處1mbps = 1MB/s。
            }
        },
        "steps":[
            {
                "category":"reader",
                "name":"Reader",
                "parameter":{
                    "host": "gdb-xxxxxx.aliyuncs.com", //GDB實例的連接地址。
                    "port": 8182, //GDB實例的連接端口。
                    "username": "gdb", //GDB實例的用戶名。
                    "password": "gdb", //GDB實例用戶名對應的密碼。
                    "labelType": "VERTEX", // Label類型,使用VERTEX表示點。
                    "labels": ["label1", "label2"],  // Label名的列表,為空表示導出所有的點。
                    "column": [
                        {
                            "name": "id",               // 字段名。
                            "type": "string",           // 字段類型。
                            "columnType": "primaryKey"  // 字段分類,表示點的主鍵ID,GDB中是STRING類型。
                        },
                        {
                            "name": "label",              // 字段名。
                            "type": "string",             // 字段類型。
                            "columnType": "primaryLabel"  // 字段分類,表示點的Label名,GDB中是STRING類型。
                        },
                        {
                            "name": "age",                   // 屬性字段名。
                            "type": "int",                   // 屬性字段類型。
                            "columnType": "vertexProperty"   // 字段分類,表示點的屬性,GDB中基礎類型屬性。
                        }
                    ]
                },
                "stepType":"gdb"
            },
            {
                "category":"writer",
                "name":"Writer",
                "parameter":{
                    "print": true
                },
                "stepType":"stream"
            }
        ]
    }
  • 邊配置示例

    {
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        },
        "setting":{
            "errorLimit":{
                "record":"100"  //錯誤記錄數,表示臟數據的最大容忍條數。
            },
            "jvmOption":"",
            "speed":{
                "concurrent":3,
                "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "mbps":"12"http://限流,此處1mbps = 1MB/s。
            }
        },
        "steps":[
            {
                "category":"reader",
                "name":"Reader",
                "parameter":{
                    "host": "gdb-xxxxxx.aliyuncs.com", //GDB實例的連接地址。
                    "port": 8182, //GDB實例的連接端口。
                    "username": "gdb", //GDB實例用戶名。
                    "password": "gdb", //GDB實例用戶名對應的密碼。
                    "labelType": "EDGE", // Label類型,VERTEX表示點。
                    "labels": ["label1", "label2"],  // Label名列表,為空表示導出所有的邊。
                    "column": [
                        {
                            "name": "id",               // 字段名。
                            "type": "string",           // 字段類型。
                            "columnType": "primaryKey"  // 字段分類,表示邊的主鍵ID,GDB中是STRING類型。
                        },
                        {
                            "name": "label",              // 字段名。
                            "type": "string",             // 字段類型。
                            "columnType": "primaryLabel"  // 字段分類,表示邊的Label名,GDB中是STRING類型。
                        },
                        {
                            "name": "srcId",               // 字段名。
                            "type": "string",              // 字段類型。
                            "columnType": "srcPrimaryKey"  // 字段分類,表示邊關聯點中起點的ID,GDB中是STRING類型。
                        },
                        {
                            "name": "srcLabel",               // 字段名。
                            "type": "string",                 // 字段類型。
                            "columnType": "srcPrimaryLabel"   // 字段分類,表示邊關聯點中起點的Label名,GDB中是STRING類型。
                        },
                        {
                            "name": "dstId",                    // 字段名。
                            "type": "string",                   // 字段類型。
                            "columnType": "dstPrimaryKey"       // 字段分類,表示邊關聯點中終點的ID,GDB中是STRING類型。
                        },
                        {
                            "name": "dstLabel",                 // 字段名。
                            "type": "string",                   // 字段類型。
                            "columnType": "dstPrimaryLabel"     // 字段分類,表示邊關聯點中終點的Label名,GDB中是STRING類型。
                        },
                        {
                            "name": "weight",               // 屬性字段名。
                            "type": "double",               // 屬性字段類型。
                            "columnType": "edgeProperty"    // 字段分類,表示邊的屬性。
                        }
                    ]
                },
                "stepType":"gdb"
            },
            {
                "category":"writer",
                "name":"Writer",
                "parameter":{
                    "print": true
                },
                "stepType":"stream"
            }
        ]
    }

Reader腳本參數

參數

描述

是否必選

默認值

host

GDB實例的連接域名。您可以在圖數據庫GDB控制臺,單擊相應實例后的管理,查看內網地址(即host)。

port

GDB實例的連接端口。

8182

username

GDB實例的賬號名。

password

GDB實例賬號的密碼。

labels

類型名,即點或邊的名稱。支持讀取多個名稱的數據,使用數組表示,例如["label1", "label2"]。

labelType

數據的Label類型:

  • 枚舉值VERTEX表示點。

  • 枚舉值EDGE表示邊。

column

點或邊的字段映射關系配置。

column -> name

點或邊的映射關系的字段名。讀取屬性時必選,請提供屬性名。

column -> type

點或邊的映射關系的字段值類型:

  • 主鍵ID、類型名Label在GDB中均為STRING類型。如果您配置為STRING類型,會轉換失敗。

  • 普通屬性支持INT、LONG、FLOAT、DOUBLE、BOOLEAN和STRING等類型。

  • GDB Reader會盡量轉換讀取的數據為配置要求的類型,但轉換失敗會導致該條記錄錯誤。

column -> columnType

GDB點或邊數據對應到的點或邊的映射關系字段,包括以下枚舉值:

  • 公共枚舉值:

    • primaryKey:表示該字段為主鍵ID。

    • primaryLabel:表示該字段為名稱Label。

  • 點枚舉值:

    • vertexProperty:當labelType為點時,表示該字段為點的屬性。

    • vertexJsonProperty:當labelType為點時,表示該字段為點的屬性的集合,使用JSON格式封裝。當配置該類型時,所有屬性會打包至該列,column中不能再包含其它屬性的類型。

      vertexJsonProperty格式如下。

      {
          "properties":[
              {"k":"name","t":"string","v":"tom","c":"set"},
              {"k":"name","t":"string","v":"jack","c":"set"},
              {"k":"sex","t":"string","v":"male","c":"single"}
          ]
      }
                                                          

      上述導出的屬性包含多值屬性name,有兩個屬性值和一個單值屬性。如果GDB中的多值屬性僅包含一個屬性值,導出會被當作單值屬性。

  • labelType為邊時的邊枚舉值:

    • srcPrimaryKey:表示該字段為起點主鍵ID。

    • dstPrimaryKey:表示該字段為終點主鍵ID。

    • srcPrimaryLabel:表示該字段為起點名稱Label。

    • dstPrimaryLabel:表示該字段為終點名稱Label。

    • edgeProperty:表示該字段為邊的屬性。

    • edgeJsonProperty:表示該字段為邊的屬性集合,使用JSON格式封裝。配置該類型時,所有屬性均會打包至該列,column中不能再包含其它屬性的類型。

      edgeJsonProperty格式如下。

      {
          "properties":[
              {"k":"name","t":"string","v":"tom"},
              {"k":"sex","t":"string","v":"male"}
      ]
      }
                                                          

      邊不支持多值屬性,無c字段。

Writer腳本Demo

  • 點配置示例

    {
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        },
        "setting":{
            "errorLimit":{
                "record":"100"  //錯誤記錄數,表示臟數據最大容忍條數。
            },
            "speed":{
                 "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "concurrent":3, //作業并發數。
                "mbps":"12"http://限流,此處1mbps = 1MB/s。
            }
        },
        "steps":[
            {
                "category":"reader",
                "name":"Reader",
                "parameter":{
                    "column":[
                        "*"
                    ],
                    "datasource":"_ODPS",
                    "emptyAsNull":true,
                    "guid":"",
                    "isCompress":false,
                    "partition":[],
                    "table":""
                },
                "stepType":"odps"
            },
            {
                "category":"writer",
                "name":"Writer",
                "parameter": {
                    "datasource": "testGDB", // 數據源名稱。
                    "label": "person", //label名,即點名稱。
                    "srcLabel": "", // 點類型時此字段無需關注。
                    "dstLabel": "", // 點類型時此字段無需關注。
                    "labelType": "VERTEX", //label類型,"VERTEX"表示點。
                    "writeMode": "INSERT", //導入ID重復時處理方式。
                    "idTransRule": "labelPrefix", //點的主鍵轉換規則。
                    "srcIdTransRule": "none", // 點類型時此字段無需關注。
                    "dstIdTransRule": "none", // 點類型時此字段無需關注。
                    "column": [
                        {
                            "name": "id", //字段名。
                            "value": "#{0}", //#{0}表示取源端第1個字段值,支持拼接,0是源端column索引號。
                            "type": "string", //字段類型。
                            "columnType": "primaryKey" //字段分類,primaryKey表示是主鍵。
                        }, //點的主鍵,字段名必須是ID且類型是STRING,該記錄必須存在。
                        {
                            "name": "person_age",
                            "value": "#{1}", //#{1}表示取源端第2個字段值,同上支持拼接。
                            "type": "int",
                            "columnType": "vertexProperty" //字段分類,vertexProperty表示是點的屬性。
                        }, //點的屬性,支持INT、LONG、FLOAT、DOUBLE、BOOLEAN和STRING類型。
                        {
                            "name": "person_credit",
                            "value": "#{2}", //#{2}表示取源端第3個字段值,同上支持拼接。
                            "type": "string",
                            "columnType": "vertexProperty"
                        }, //點的屬性。
                    ]
                }
                "stepType":"gdb"
            }
        ],
        "type":"job",
        "version":"2.0"
    }
  • 邊配置示例

    {
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        },
        "setting":{
            "errorLimit":{
                "record":"100" //錯誤記錄數,表示臟數據的最大容忍條數。
            },
            "jvmOption":"",
            "speed":{
                "throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
                "concurrent":3, //作業并發數。
                "mbps":"12"http://限流,此處1mbps = 1MB/s。
            }
        },
        "steps":[
            {
                "category":"reader",
                "name":"Reader",
                "parameter":{
                    "column":[
                        "*"
                    ],
                    "datasource":"_ODPS",
                    "emptyAsNull":true,
                    "guid":"",
                    "isCompress":false,
                    "partition":[],
                    "table":""
                },
                "stepType":"odps"
            },
            {
                "category":"writer",
                "name":"Writer",
                "parameter": {
                    "datasource": "testGDB", // 數據源名稱。
                    "label": "use", //label名,即邊名稱。
                    "labelType": "EDGE", //label類型,EDGE表示邊。
                    "srcLabel": "person", //起點的點名稱。
                    "dstLabel": "software", //終點的點名稱。
                    "writeMode": "INSERT", //導入ID重復時的處理方式。
                    "idTransRule": "labelPrefix", //邊的主鍵轉換規則。
                    "srcIdTransRule": "labelPrefix", //起點的主鍵轉換規則。
                    "dstIdTransRule": "labelPrefix", //終點的主鍵轉換規則。
                    "column": [
                        {
                            "name": "id", //字段名。
                            "value": "#{0}", //#{0}表示取源端第1個字段值,支持拼接。
                            "type": "string", //字段類型。
                            "columnType": "primaryKey" //字段分類,primaryKey表示該字段是主鍵。
                        }, //邊的主鍵,字段名必須是ID且類型是STRING,該記錄選填。
                        {
                            "name": "id",
                            "value": "#{1}", //支持拼接,注意映射規則要與錄入點時一致。
                            "type": "string",
                            "columnType": "srcPrimaryKey" //字段分類,srcPrimaryKey表示是起點主鍵。
                        }, //起點的主鍵,字段名必須是ID且類型是STRING,該記錄必須存在。
                        {
                            "name": "id",
                            "value": "#{2}", //支持拼接,注意映射規則要與錄入點時一致。
                            "type": "string",
                            "columnType": "dstPrimaryKey" //字段分類,dstPrimaryKey表示是終點主鍵。
                        }, //終點的主鍵,字段名必須是ID且類型是STRING,該記錄必須存在。
                        {
                            "name": "person_use_software_time",
                            "value": "#{3}", //支持拼接。
                            "type": "long",
                            "columnType": "edgeProperty" //字段分類,edgeProperty表示邊的屬性。
                        }, //邊的屬性,支持INT、LONG、FLOAT、DOUBLE、BOOLEAN和STRING類型。
                        {
                            "name": "person_regist_software_name",
                            "value": "#{4}", //支持拼接。
                            "type": "string",
                            "columnType": "edgeProperty"
                        }, //邊屬性
                        {
                            "name": "id",
                            "value": "#{5}", //支持拼接。
                            "type": "long",
                            "columnType": "edgeProperty"
                        }, //邊的屬性,字段名是ID。與主鍵ID不同,該字段為普通屬性,可選。
                    ]
                }
                "stepType":"gdb"
            }
        ],
        "type":"job",
        "version":"2.0"
    }

Writer腳本參數

參數

描述

是否必選

默認值

datasource

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

label

類型名,即點/邊名稱。

label支持從源列中讀取,例如#{0},表示取第1列字段作為label名,源列索引從0開始。

labelType

label的類型:

  • 枚舉值VERTEX表示點。

  • 枚舉值EDGE表示邊。

srcLabel

  • 當label為邊時,表示起點的點名稱。

    label為邊、srcIdTransRulenone時,可以不填寫,否則為必填項。

  • label為點時,則不填。

dstLabel

  • 當label為邊時,表示終點的點名稱。

    label為邊、dstIdTransRulenone時,可以不填寫,否則為必填項。

  • label為點時,則不填。

writeMode

導入ID重復時的處理模式。

  • 枚舉值INSERT表示會報錯,錯誤記錄數加1。

  • 枚舉值MERGE表示用新值覆蓋舊值。

INSERT

idTransRule

主鍵ID的轉換規則。

  • 枚舉值labelPrefix表示將映射的值轉換為{label名}-{源字段}

  • 枚舉值none表示映射的值不進行轉換。

none

srcIdTransRule

label為邊時,表示起點的主鍵ID轉換規則。

  • 枚舉值labelPrefix表示將映射的值轉換為{label名}-{源字段}

  • 枚舉值none表示映射的值不進行轉換,此時可以不填寫srcLabel

label為邊時必選

none

dstIdTransRule

label為邊時,表示終點的主鍵ID轉換規則。

  • 枚舉值labelPrefix表示將映射的值轉換為{label名}-{源字段}

  • 枚舉值none表示映射的值不進行轉換,此時可以不填寫dstLabel

label為邊時必選

none

column

點/邊字段映射關系配置。

  • name:點/邊的字段名。

  • value:點/邊字段映射的值,僅腳本模式支持字符串自定義拼接。

    • #{N}表示直接映射源端值,N為源端column索引,從0開始。

    • #{0}表示映射源端column第1個字段。

    • test-#{0}表示源端值進行拼接轉換,#{0}值前/后可以添加固定字符串。

    • #{0}-#{1}表示進行多字段拼接,也可以在任意位置添加固定字符串,例如test-#{0}-test1-#{1}-test2

  • type:點/邊字段映射值的類型。

    主鍵ID僅支持STRING類型,GDB Writer會進行強制轉換,源ID必須保證可以轉換為STRING類型。

    普通屬性支持類型:INT、LONG、FLOAT、DOUBLE、BOOLEAN和STRING。

  • columnType:點/邊映射字段的分類,支持的枚舉值如下所示。

    • 公共枚舉值

      primaryKey:label為點/邊時,表示該字段是主鍵ID。

    • 點枚舉值

      • vertexProperty:label為點時,表示該字段是點的普通屬性。

      • vertexJsonProperty:label為點時,表示是點JSON屬性,value結構請參見properties示例。

    • 邊枚舉值

      • srcPrimaryKey:label為邊時,表示該字段是起點主鍵ID。

      • dstPrimaryKey:label為邊時,表示該字段是終點主鍵ID。

      • edgeProperty:label為邊時,表示該字段是邊的普通屬性。

      • edgeJsonProperty:label為邊時,表示是邊JSON屬性,value結構請參見properties示例。

properties示例

{"properties":[
    {"k":"name","t":"string","v":"tom"},
    {"k":"age","t":"int","v":"20"},
    {"k":"sex","t":"string","v":"male"}
]}