alibaba / alibaba/DataX

Mysql导入数据到Neo4J失败

Open
#2,318 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
17.4k
Forks
5.7k
PR merge metrics
No merged PRs in 30d

Description

2025-07-27 10:12:35.144 [job-0] INFO StandAloneJobContainerCommunicator - Total 0 records, 0 bytes | Speed 0B/s, 0 records/s | Error 0 records, 0 bytes | All Task WaitWriterTime 0.000s | All Task WaitReaderTime 0.000s | Percentage 0.00%
2025-07-27 10:12:35.145 [job-0] INFO Neo4jWriter$Job - Neo4jWriter Job destroyed
2025-07-27 10:12:35.146 [job-0] ERROR Engine -

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Framework-02], Description:[DataX引擎运行过程出错,具体原因请参看DataX运行结束时的错误诊断信息 .]. - java.lang.NullPointerException: Cannot invoke "com.alibaba.datax.common.util.Configuration.clone()" because "this.jobConf" is null
at com.alibaba.datax.plugin.writer.neo4jwriter.Neo4jWriter$Job.split(Neo4jWriter.java:32)
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750)
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117)
at com.alibaba.datax.core.Engine.start(Engine.java:86)
at com.alibaba.datax.core.Engine.entry(Engine.java:168)
at com.alibaba.datax.core.Engine.main(Engine.java:201)
- java.lang.NullPointerException: Cannot invoke "com.alibaba.datax.common.util.Configuration.clone()" because "this.jobConf" is null
at com.alibaba.datax.plugin.writer.neo4jwriter.Neo4jWriter$Job.split(Neo4jWriter.java:32)
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750)
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117)
at com.alibaba.datax.core.Engine.start(Engine.java:86)
at com.alibaba.datax.core.Engine.entry(Engine.java:168)
at com.alibaba.datax.core.Engine.main(Engine.java:201)

at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:48)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:162)
at com.alibaba.datax.core.Engine.start(Engine.java:86)
at com.alibaba.datax.core.Engine.entry(Engine.java:168)
at com.alibaba.datax.core.Engine.main(Engine.java:201)
Caused by: java.lang.NullPointerException: Cannot invoke "com.alibaba.datax.common.util.Configuration.clone()" because "this.jobConf" is null
at com.alibaba.datax.plugin.writer.neo4jwriter.Neo4jWriter$Job.split(Neo4jWriter.java:32)
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750)
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117)
... 3 more

json:
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "X",
"password": "X",
"column": [
"uuid", "gsuuid", "gsmc", "ywmc", "gpdm", "gpmc", "zqlbdm", "zqlbmc",
"sshymc", "clrq", "zjl", "frdb", "dsz", "kzgd", "sjkzr", "zzkzr",
"zyyw", "lxdh", "dzxx", "cz", "gswz", "bgdz", "zcdz", "sfdm", "qy",
"yzbm", "zczb", "gyrs", "glryrs", "lssws", "kjssws", "gsjj", "jyfw",
"hxtc", "logourl", "cjrq", "gxrq"
],
"connection": [
{
"table": [
"ss_jbxx"
],
"jdbcUrl": [
"jdbc:mysql://X:3306/jck"
]
}
],
"where": "",
"splitPk": ""
}
},
"writer": {
"name": "neo4jWriter",
"parameter": {
"uri": "bolt://X:7687",
"username": "X",
"password": "X",
"database": "neo4j",
"cypher": [
"UNWIND $batch AS row",
"MERGE (c:Company {uuid: row.uuid})",
"SET c.gsuuid = row.gsuuid,",
" c.name = row.gsmc,",
" c.englishName = row.ywmc,",
" c.stockCode = row.gpdm,",
" c.stockName = row.gpmc,",
" c.securityType = row.zqlbmc,",
" c.industry = row.sshymc,",
" c.establishDate = row.clrq,",
" c.generalManager = row.zjl,",
" c.legalRepresentative = row.frdb,",
" c.chairman = row.dsz,",
" c.controllingShareholder = row.kzgd,",
" c.actualController = row.sjkzr,",
" c.ultimateController = row.zzkzr,",
" c.mainBusiness = row.zyyw,",
" c.phone = row.lxdh,",
" c.email = row.dzxx,",
" c.fax = row.cz,",
" c.website = row.gswz,",
" c.officeAddress = row.bgdz,",
" c.registeredAddress = row.zcdz,",
" c.region = row.qy,",
" c.postalCode = row.yzbm,",
" c.registeredCapital = row.zczb,",
" c.employeeCount = row.gyrs,",
" c.managementCount = row.glryrs,",
" c.lawFirm = row.lssws,",
" c.accountingFirm = row.kjssws,",
" c.companyProfile = row.gsjj,",
" c.businessScope = row.jyfw,",
" c.coreConcepts = row.hxtc,",
" c.logoUrl = row.logourl,",
" c.createTime = row.cjrq,",
" c.updateTime = row.gxrq"
],
"batchDataVariableName": "batch",
"batchSize": 1000,
"properties": [
{"name": "uuid", "type": "STRING"},
{"name": "gsuuid", "type": "STRING"},
{"name": "gsmc", "type": "STRING"},
{"name": "ywmc", "type": "STRING"},
{"name": "gpdm", "type": "STRING"},
{"name": "gpmc", "type": "STRING"},
{"name": "zqlbmc", "type": "STRING"},
{"name": "sshymc", "type": "STRING"},
{"name": "clrq", "type": "DATE"},
{"name": "zjl", "type": "STRING"},
{"name": "frdb", "type": "STRING"},
{"name": "dsz", "type": "STRING"},
{"name": "kzgd", "type": "STRING"},
{"name": "sjkzr", "type": "STRING"},
{"name": "zzkzr", "type": "STRING"},
{"name": "zyyw", "type": "STRING"},
{"name": "lxdh", "type": "STRING"},
{"name": "dzxx", "type": "STRING"},
{"name": "cz", "type": "STRING"},
{"name": "gswz", "type": "STRING"},
{"name": "bgdz", "type": "STRING"},
{"name": "zcdz", "type": "STRING"},
{"name": "sfdm", "type": "STRING"},
{"name": "qy", "type": "STRING"},
{"name": "yzbm", "type": "STRING"},
{"name": "zczb", "type": "STRING"},
{"name": "gyrs", "type": "LONG"},
{"name": "glryrs", "type": "LONG"},
{"name": "lssws", "type": "STRING"},
{"name": "kjssws", "type": "STRING"},
{"name": "gsjj", "type": "STRING"},
{"name": "jyfw", "type": "STRING"},
{"name": "hxtc", "type": "STRING"},
{"name": "logourl", "type": "STRING"},
{"name": "cjrq", "type": "DATE"},
{"name": "gxrq", "type": "DATE"}
]
}
}
}
],
"setting": {
"speed": {
"channel": 4,
"byte": 1048576
},
"errorLimit": {
"record": 100,
"percentage": 0.02
}
}
}
}

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the failure in Neo4jWriter.java at line 32, where Job.split reports that jobConf is null. Compare that entry point with the supplied mysqlreader and neo4jWriter configuration, then reproduce the import to confirm the failure is resolved and records are transferred.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, mysql, neo4j
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.