Загрузка данных в друид постепенно - PullRequest
0 голосов
/ 29 июня 2018

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

Любая помощь будет оценена.

Вот файл json для приема:

{
  "type" : "index",
  "spec" : {
    "dataSchema" : {
      "dataSource" : "mksales",
      "parser" : {
        "type" : "string",
        "parseSpec" : {
          "format" : "json",
          "dimensionsSpec" : {
            "dimensions" : ["Address",
"City",
"Contract Name",
"Contract Sub Type",
"Contract Type",
"Customer Name",
"Domain",
"Nation",
"Contract Start End Date",
"Zip",
"Sales Rep Name"
]
          },
          "timestampSpec" : {
            "format" : "auto",
            "column" : "time"
          }
        }
      },
      "metricsSpec" : [
{ "type" : "count", "name" : "count", "type" : "count" },
{"name" : "Price","type" : "doubleSum","fieldName" : "Price"},
{"name" : "Sales","type" : "doubleSum","fieldName" : "Sales"},
{"name" : "Units","type" : "longSum","fieldName" : "Units"}],
      "granularitySpec" : {
        "type" : "uniform",
        "segmentGranularity" : "day",
        "queryGranularity" : "none",
        "intervals" : ["2000-12-01T00:00:00Z/2030-06-30T00:00:00Z"],
        "rollup" : true
      }
    },
    "ioConfig" : {
      "type" : "index",
      "firehose" : {
        "type" : "local",
        "baseDir" : "mksales/",
        "filter" : "mksales.json"
      },
      "appendToExisting" : false
    },
    "tuningConfig" : {
      "type" : "index",
      "targetPartitionSize" : 10000000,
      "maxRowsInMemory" : 40000,
      "forceExtendableShardSpecs" : true
    }
  }
}

1 Ответ

0 голосов
/ 02 июля 2018

Есть 2 способа, с помощью которых вы можете добавлять / обновлять данные в существующий сегмент.

Переиндексация и проглатывание дельты

Вам необходимо переиндексировать ваши данные каждый раз, когда новые данные поступают в определенный сегмент. (В вашем случае это день). Для переиндексации вам нужно предоставить все файлы, имеющие данные за этот день.

Для Delta Ingestion необходимо использовать inputSpec type="multi"

Для получения более подробной информации см. Ссылку на документацию - http://druid.io/docs/latest/ingestion/update-existing-data.html

...