Как отформатировать файл TSV в Druid

Я пытаюсь загрузить TSV в druid, используя этот прием:

САМЫЕ ОБНОВЛЕННЫЕ ХАРАКТЕРИСТИКИ НИЖЕ:

{                                                                                                                                                                                               
"type" : "index",
"spec" : {
    "ioConfig" : {
        "type" : "index",
        "inputSpec" : {
            "type": "local",
            "baseDir": "quickstart",
            "filter": "test_data.json"
        }
    },
    "dataSchema" : {
        "dataSource" : "local",
        "granularitySpec" : {
            "type" : "uniform",
            "segmentGranularity" : "hour",
            "queryGranularity" : "none",
            "intervals" : ["2016-07-18/2016-07-22"]
        },
        "parser" : {
            "type" : "string",
            "parseSpec" : {
                "format" : "json",
                "dimensionsSpec" : {
                    "dimensions" : ["name", "email", "age"]
                },
                "timestampSpec" : {
                    "format" : "yyyy-MM-dd HH:mm:ss",
                     "column" : "date"
                }
            }
        },
        "metricsSpec" : [
            {
                "name" : "count",
                "type" : "count"
            },
            {
              "type" : "doubleSum",
              "name" : "age",
              "fieldName" : "age"
            }
        ]
    }
}

}

Если моя схема выглядит так:

Schema: name    email    age

И фактический набор данных выглядит так:

name    email    age    Bob    Jones    23    Billy    Jones    45

Так должны быть отформатированы столбцы ^^ в приведенном выше наборе данных для TSV? Например, сначала должны быть name email age (столбцы), а затем фактические данные. Я сбит с толку, как Друид узнает, как сопоставить столбцы с фактическим набором данных в формате TSV.


person Community    schedule 21.07.2016    source источник


Ответы (1)


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

Name<TAB>Age<TAB>Address
Paul<TAB>23<TAB>1115 W Franklin
Bessy the Cow<TAB>5<TAB>Big Farm Way
Zeke<TAB>45<TAB>W Main St

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

что касается gmt и utc, то они в основном одинаковы

Нет разницы во времени между средним временем по Гринвичу и всемирным скоординированным временем.

первый - часовой пояс, второй - стандарт времени

Кстати, не забудьте включить столбец с некоторым значением времени в ваш файл tsv!!

так например если у вас будет файл tsv, который выглядит так:

"name"  "position"  "office"    "age"   "start_date"    "salary"
"Airi Satou"    "Accountant"    "Tokyo" "33"    "2016-07-16T19:20:30+01:00" "162700"
"Angelica Ramos"    "Chief Executive Officer (CEO)" "London"    "47"    "2016-07-16T19:20:30+01:00" "1200000"

ваш файл спецификации должен выглядеть так:

{
    "spec" : {
        "ioConfig" : {
            "inputSpec" : {
                "type": "local",
                "baseDir": "path_to_folder",
                "filter": "name_of_the_file(s)"
            }
        },
        "dataSchema" : {
            "dataSource" : "local",
            "granularitySpec" : {
                "type" : "uniform",
                "segmentGranularity" : "hour",
                "queryGranularity" : "none",
                "intervals" : ["2016-07-01/2016-07-28"]
            },
            "parser" : {
                "type" : "string",
                "parseSpec" : {
                    "format" : "tsv",
                    "dimensionsSpec" : {
                        "dimensions" : [
                            "position",
                            "age",
                            "office"
                        ]
                    },
                    "timestampSpec" : {
                        "format" : "auto",
                         "column" : "start_date"
                    }
                }
            },
            "metricsSpec" : [
                {
                    "name" : "count",
                    "type" : "count"
                },
                {
                    "name" : "sum_sallary",
                    "type" : "longSum",
                    "fieldName" : "salary"
                }
            ]
        }
    }
}
person zlosim    schedule 22.07.2016