Wmsdoc opened a new issue, #2749:
URL: https://github.com/apache/incubator-hugegraph/issues/2749

   ### Problem Type (问题类型)
   
   other exception / error (其他异常报错)
   
   ### Before submit
   
   - [x] 我已经确认现有的 [Issues](https://github.com/apache/hugegraph/issues) 与 
[FAQ](https://hugegraph.apache.org/docs/guides/faq/) 中没有相同 / 重复问题 (I have 
confirmed and searched that there are no similar problems in the historical 
issue and documents)
   
   ### Environment (环境信息)
   
   - Server Version: 1.5.0 (Apache Release Version)
   - OS: Windows Docker
   - Data Size:  CSV 1000 row
   
   
   ### Your Question (问题描述)
   
   执行
   docker exec -it loader bin/hugegraph-loader.sh -g hugegraph -f 
/loader/dataset/struct.json -s /loader/dataset/schema.groovy -h server -p 8080
   导入无法正常处理 edge 数据
   
   日志显示
   #### PARSE ERROR: Make sure the primary key fields [cardNumber] are not 
empty, or check whether the headers or field_mapping are configured correctly
   
   >> HugeGraphLoader worked in NORMAL MODE
   vertices/edges loaded this time : 2000/0
   More than 1 parse error, stop parsing and waiting all insert tasks stopped
   2000/0
   count metrics
       input read success            : 1500
       input read failure            : 0
       vertex parse success          : 2000
       vertex parse failure          : 0
       vertex insert success         : 2000
       vertex insert failure         : 0
       edge parse success            : 0
       edge parse failure            : 500
       edge insert success           : 0
       edge insert failure           : 0
   meter metrics
       total time                    : 0.176s
       read time                     : 0.06s
       load time                     : 0.116s
       vertex load time              : 0.059s
       vertex load rate(vertices/s)  : 33898
       edge load time                : 0.059s
       edge load rate(edges/s)       : 0
   
   我的 csv 源数据
   ```
   jykh,jyhm,jyje,jysj,dskh,dshm,ukey
   6217001104823887,张三15,9816.88,2025-04-02 
21:53:03,6217003062649018,张三38,5870058386517560643
   6217000890019956,张三10,2364.40,2025-04-04 
04:23:03,6217006700549048,张三74,-3772262301771040901
   6217006021778933,张三97,5467.86,2025-03-30 
00:09:03,106842652859,支付宝-还款,36865958343804092
   ```
   
   我的 struct.json 
   ```
   {
     "version": "2.0",
     "structs": [
       {
         "id": "card_vertices",
         "skip": false,
         "input": {
           "type": "FILE",
           "path": "/loader/dataset/transaction_data.csv",
           "format": "CSV",
           "delimiter": ",",
           "date_format": "yyyy-MM-dd HH:mm:ss",
           "time_zone": "GMT+8",
           "skipped_line": {
             "regex": "(^#|^//).*|"
           },
           "compression": "NONE",
           "header": ["jykh", "jyhm", "jyje", "jysj", "dskh", "dshm", "ukey"],
           "charset": "UTF-8"
         },
         "vertices": [
           {
             "label": "card",
             "skip": false,
             "id": null,
             "unfold": false,
             "field_mapping": {
               "jykh": "cardNumber",
               "jyhm": "holderName"
             },
             "value_mapping": {},
             "selected": ["jykh", "jyhm"],
             "ignored": [],
             "null_values": ["NULL", "null", ""],
             "update_strategies": {}
           },
           {
             "label": "card",
             "skip": false,
             "id": null,
             "unfold": false,
             "field_mapping": {
               "dskh": "cardNumber",
               "dshm": "holderName"
             },
             "value_mapping": {},
             "selected": ["dskh", "dshm"],
             "ignored": [],
             "null_values": ["NULL", "null", ""],
             "update_strategies": {}
           }
         ],
         "edges": []
       },
       {
         "id": "transaction_edges",
         "skip": false,
         "input": {
           "type": "FILE",
           "path": "/loader/dataset/transaction_data.csv",
           "format": "CSV",
           "delimiter": ",",
           "date_format": "yyyy-MM-dd HH:mm:ss",
           "time_zone": "GMT+8",
           "skipped_line": {
             "regex": "(^#|^//).*|"
           },
           "compression": "NONE",
           "header": ["jykh", "jyhm", "jyje", "jysj", "dskh", "dshm", "ukey"],
           "charset": "UTF-8"
         },
         "vertices": [],
         "edges": [
           {
             "label": "transaction",
             "skip": false,
             "source": ["jykh"],
             "unfold_source": false,
             "target": ["dskh"],
             "unfold_target": false,
             "field_mapping": {
               "jyje": "amount",
               "jysj": "transTime",
               "ukey": "ukey"
             },
             "value_mapping": {},
             "selected": ["jyje", "jysj", "ukey"],
             "ignored": [],
             "null_values": ["NULL", "null", ""],
             "update_strategies": {}
           }
         ]
       }
     ]
   }
   
   ```
   
   
   ### Vertex/Edge example (问题点 / 边数据举例)
   
   ```javascript
   出现下列报错:
   #### PARSE ERROR: Make sure the primary key fields [cardNumber] are not 
empty, or check whether the headers or field_mapping are configured correctly
   6217001104823887,张三15,9816.88,2025-04-02 
21:53:03,6217003062649018,张三38,5870058386517560643
   #### PARSE ERROR: Make sure the primary key fields [cardNumber] are not 
empty, or check whether the headers or field_mapping are configured correctly
   6217000890019956,张三10,2364.40,2025-04-04 
04:23:03,6217006700549048,张三74,-3772262301771040901
   #### PARSE ERROR: Make sure the primary key fields [cardNumber] are not 
empty, or check whether the headers or field_mapping are configured correctly
   6217006021778933,张三97,5467.86,2025-03-30 
00:09:03,106842652859,支付宝-还款,36865958343804092
   ```
   
   ### Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)
   
   ```javascript
   我的 schema 想要达到这样的效果
   顶点设计:
   使用"card"顶点标签表示交易卡或账户
   属性包括:cardNumber(卡号)和holderName(持卡人姓名)
   以cardNumber作为主键确保唯一性
   边设计:
   使用"transaction"边标签表示交易关系
   属性包括:amount(金额)、transTime(交易时间)和ukey(唯一标识)
   使用ukey作为排序键确保交易的唯一性
   
   
   // 创建属性键
   schema.propertyKey("cardNumber").asText().ifNotExist().create();      // 卡号
   schema.propertyKey("holderName").asText().ifNotExist().create();      // 
持卡人姓名
   schema.propertyKey("amount").asDouble().ifNotExist().create();        // 交易金额
   schema.propertyKey("transTime").asDate().ifNotExist().create();       // 交易时间
   schema.propertyKey("ukey").asText().ifNotExist().create();            // 
交易唯一标识
   
   // 创建顶点标签 - 卡
   schema.vertexLabel("card")
         .properties("cardNumber", "holderName")
         .primaryKeys("cardNumber")
         .ifNotExist()
         .create();
   
   // 创建边标签 - 交易关系
   schema.edgeLabel("transaction")
         .sourceLabel("card")
         .targetLabel("card")
         .properties("amount", "transTime", "ukey")
         .nullableKeys("amount", "transTime")
         .multiTimes()
         .sortKeys("ukey")
         .ifNotExist()
         .create();
   
   // 创建索引
   schema.indexLabel("cardByHolder")
         .onV("card")
         .by("holderName")
         .secondary()
         .ifNotExist()
         .create();
   
   schema.indexLabel("transactionByUkey")
         .onE("transaction")
         .by("ukey")
         .unique()
         .ifNotExist()
         .create();
   
   schema.indexLabel("transactionByTime")
         .onE("transaction")
         .by("transTime")
         .range()
         .ifNotExist()
         .create();
   
   schema.indexLabel("transactionByAmount")
         .onE("transaction")
         .by("amount")
         .range()
         .ifNotExist()
         .create();
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@hugegraph.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to