Как отправить данные в друид с помощью основного API Tranquility? - PullRequest
0 голосов
/ 31 октября 2018

Я установил druid и смог запустить учебник по адресу: Учебник: загрузка файла . Я также смог выполнить нативные запросы json и получить результаты, как описано по адресу: http://druid.io/docs/latest/tutorials/tutorial-query.html Настройка друида работает нормально.

Теперь я хочу добавить дополнительные данные из Java-программы в этот источник данных. Можно ли отправить данные в друид с помощью спокойствия из java-программы для источника данных, созданного с помощью пакетной загрузки?

Я попробовал пример программы по адресу: https://github.com/druid-io/tranquility/blob/master/core/src/test/java/com/metamx/tranquility/example/JavaExample.java

Но эта программа просто продолжает работать и не показывает никакого вывода. Как настроить друид на прием данных с помощью API-интерфейсов ядра спокойствия?

Ниже приведены характеристики приема пищи и файл конфигурации для спокойствия:

википедия-index.json

{
    "type" : "index",
    "spec" : {
    "dataSchema" : {
       "dataSource" : "wikipedia",
       "parser" : {
       "type" : "string",
    "parseSpec" : {
      "format" : "json",
      "dimensionsSpec" : {
        "dimensions" : [
          "channel",
          "cityName",
          "comment",
          "countryIsoCode",
          "countryName",
          "isAnonymous",
          "isMinor",
          "isNew",
          "isRobot",
          "isUnpatrolled",
          "metroCode",
          "namespace",
          "page",
          "regionIsoCode",
          "regionName",
          "user",
          { "name": "added", "type": "long" },
          { "name": "deleted", "type": "long" },
          { "name": "delta", "type": "long" }
        ]
      },
      "timestampSpec": {
        "column": "time",
        "format": "iso"
      }
    }
  },
  "metricsSpec" : [],
  "granularitySpec" : {
    "type" : "uniform",
    "segmentGranularity" : "day",
    "queryGranularity" : "none",
    "intervals" : ["2015-09-12/2015-09-13"],
    "rollup" : false
  }
},
"ioConfig" : {
  "type" : "index",
  "firehose" : {
    "type" : "local",
    "baseDir" : "quickstart/",
    "filter" : "wikiticker-2015-09-12-sampled.json.gz"
  },
  "appendToExisting" : false
},
"tuningConfig" : {
  "type" : "index",
  "targetPartitionSize" : 5000000,
  "maxRowsInMemory" : 25000,
  "forceExtendableShardSpecs" : true
}
  }
}

example.json (конфигурация спокойствия):

{
    "dataSources" : [
      {
        "spec" : {
        "dataSchema" : {
           "dataSource" : "wikipedia",
           "metricsSpec" : [
              { "type" : "count", "name" : "count" }
           ],
           "granularitySpec" : {
              "segmentGranularity" : "hour",
              "queryGranularity" : "none",
              "type" : "uniform"
           },
           "parser" : {
              "type" : "string",
              "parseSpec" : {
                 "format" : "json",
                 "timestampSpec" : {  "column": "time", "format": "iso" },
                 "dimensionsSpec" : {
                    "dimensions" : ["channel",
                                    "cityName",
                                    "comment",
                                    "countryIsoCode",
                                    "countryName",
                                    "isAnonymous",
                                    "isMinor",
                                    "isNew",
                                    "isRobot",
                                    "isUnpatrolled",
                                    "metroCode",
                                    "namespace",
                                    "page",
                                    "regionIsoCode",
                                    "regionName",
                                    "user",
                                    { "name": "added", "type": "long" },
                                    { "name": "deleted", "type": "long" },
                                    { "name": "delta", "type": "long" }]
                 }
              }
           }
        },
        "tuningConfig" : {
           "type" : "realtime",
           "windowPeriod" : "PT10M",
           "intermediatePersistPeriod" : "PT10M",
           "maxRowsInMemory" : "100000"
        }
     },
     "properties" : {
        "task.partitions" : "1",
        "task.replicants" : "1"
     }
  }
    ],
        "properties" : {
       "zookeeper.connect" : "localhost"
   }
}

Я не нашел ни одного примера по настройке источника данных на druid, который постоянно принимает данные из java-программы. Я не хочу использовать Кафку. Любые указатели на это будет принята с благодарностью.

1 Ответ

0 голосов
/ 02 ноября 2018

Сначала необходимо создать файлы данных с дополнительными данными, а затем запустить задачу загрузки с новыми полями. Вы не можете редактировать ту же запись в друиде, она перезаписывает новую запись.

...