将数据从 PostgreSQL 提取到 Druid 时出现类型转换错误

我正在尝试使用 Firehose 将数据从 PostgreSQL 提取到 Druid。


我已经添加了druid.extensions.loadList=["postgresql-metadata-storage"]conf 文件,但是任务失败了


java.lang.ClassCastException: java.util.LinkedHashMap 无法转换为 java.nio.ByteBuffer


摄取规范文件


{

  "type": "index",

  "spec": {

      "dataSchema": {

          "dataSource": "dataset_1007",

          "parser": {

              "type": "string",

              "parseSpec": {

                  "format": "tsv",

                  "columns": [

                      "id",

                      "name",

                      "datetimecol"

                  ],

                  "timestampSpec": {

                      "column": "datetimecol",

                      "format": "auto"

                  },

                  "dimensionsSpec": {

                      "dimensions": [

                          "id",

                          "name",

                          "datetimecol"

                      ]

                  }

              }

          },

          "granularitySpec": {

              "type": "uniform",

              "segmentGranularity": "DAY",

              "queryGranularity": "NONE",

              "rollup": false

          }

      },

      "ioConfig": {

          "type": "index",

          "firehose": {

              "type": "sql",

              "database": {

                  "type": "postgresql",

                  "connectorConfig": {

                      "connectURI": "jdbc:postgresql://ISVDRDBILXP1/testdb",

                      "user": "druid",

                      "password": "druid"

                  }

              },

              "sqls": [

                  "SELECT id,name,datetimecol FROM public.testtable"

              ]

          },

          "appendToExisting": false

      },

      "tuningConfig": {

          "forceExtendableShardSpecs": true,

          "type": "index"

      }

  }

}

很难排除是哪个表列造成了这个问题,我已将所有列类型更改为 varchar()。请指出我是否在任何地方出错。


隔江千里
浏览 185回答 1
1回答

泛舟湖上清波郎朗

如果有人在寻找答案。从 SQL 获取数据时,我们必须使用map解析器。这是我正在使用的更新规范。  "parser": {    "type" : "map",    "parseSpec": {      "format": "timeAndDims",      "dimensionsSpec": {        "dimensions": [          "dim1",          "dim2",          "dim3"        ]      },      "timestampSpec": {        "format": "auto",        "column": "ts"      }    }  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java