如何在DRUID中格式化TSV文件?

时间:2016-07-21 04:22:01

标签: hadoop druid

我很好奇当我们使用DRUID从本地TSV文件摄取数据时TSV文件应该如何。

应该是这样的:

请注意,这仅用于测试:

quickstart / sample_data.tsv文件:

姓氏姓氏电子邮件时间Bob Jones bobj@gmail.com 1468839687 Billy Jones BillyJ@gmail.com 1468839769

这部分是我的维度:名称姓氏电子邮件
这部分是我的实际数据: Bob Jones bobj@gmail.com 1468839687 Billy Jones BillyJ@gmail.com 1468839769

{
        "type" : "index_hadoop",
    "spec" : {
        "ioConfig" : {
                        "type" : "hadoop",
            "inputSpec" : {
                "type" : "static",
                "paths" : "quickstart/sample_data.tsv"
            }
        },
        "dataSchema" : {
            "dataSource" : "local",
            "granularitySpec" : {
                "type" : "uniform",
                        "segmentGranularity" : "hour",
                        "queryGranularity" : "none",
                        "intervals" : ["2016-07-18/2016-07-18"]
            },
            "parser" : {
                "type" : "string",
                "parseSpec" : {
                    "format" : "tsv",
                    "dimensionsSpec" : {
                        "dimensions" : [
                            "name",
                            "lastname",
                            "email"
                        ]
                    },
                    "timestampSpec" : {
                                 "format" : "auto",
                         "column" : "time"
                    }
                }
            },
            "metricsSpec" : [
                {
                    "name" : "count",
                    "type" : "count"
                },
                {
                    "name" : "added",
                    "type" : "longSum",
                    "fieldName" : "deleted"
                }
            ]
        }
    }
}

我对我的spec文件也有一些疑问,因为我无法在doc上找到它们的答案。如果有人能为我解答,我将不胜感激:)!

1)我注意到在示例规范中他们在最顶部添加了行“type”:“index_hadoop”。如果我在快速启动目录中从本地计算机提取TSV文件,我会为该类型添加什么?另外,在哪里可以阅读我应该在文档中为这个“类型”键添加的不同值?我没有得到解释。

2) ioConfig中还有一个类型变量:“type”:“hadoop”。如果我在快速入门目录中从本地计算机提取TSV文件,我会为该类型添加什么?

3)对于timestampSpec,我的TSV文件中的时间是GMT。有什么方法可以用它作为格式。自从我读到你应该把它转换成UTC,有没有办法在将数据发布到霸王的过程中转换为UTC?或者我是否必须将所有这些GMT时间格式更改为UTC,类似于:“time”:“2015-09-12T00:46:58.771Z”。

1 个答案:

答案 0 :(得分:0)

德鲁伊支持两种摄取批量数据的方法

  • Hadoop索引任务
  • 索引任务

您所指的规范是Hadoop索引任务,因此“type”是“index_hadoop”,而ioconfig类型是“hadoop”。

以下是可从本地文件读取的索引任务的示例规范: { "type": "index", "spec": { "dataSchema": { "dataSource": "wikipedia", "parser": { "type": "string", "parseSpec": { "format": "json", "timestampSpec": { "column": "timestamp", "format": "auto" }, "dimensionsSpec": { "dimensions": ["page", "language"] } } }, "metricsSpec": [{ "type": "count", "name": "count" }, { "type": "doubleSum", "name": "added", "fieldName": "added" }], "granularitySpec": { "type": "uniform", "segmentGranularity": "DAY", "queryGranularity": "NONE", "intervals": ["2013-08-31/2013-09-01"] } }, "ioConfig": { "type": "index", "firehose": { "type": "local", "baseDir": "examples/indexing/", "filter": "wikipedia_data.json" } } } }