我在s3中有json数据。数据看起来像
{
"act_timestamp": 1576480759864,
"action": 26,
"cmd_line": "\\??\\C:\\Windows\\system32\\conhost.exe 0xffffffff",
"guid": "45af94911fb911ea827300270e098ff0",
"md5": "d5669294f78a7d48c318ef22d5685ba7",
"name": "conhost.exe",
"path": "C:\\Windows\\System32\\conhost.exe",
"pid": 1968,
"sha2": "6bd1f5ab9250206ab3836529299055e272ecaa35a72cbd0230cb20ff1cc30902",
"proc_id": "45af94901fb911ea827300270e098ff0",
"proc_name": "gcxvdf.exe"
}我在s3中存储了大约100 of的这样的jsons,存储在文件夹结构中,比如年/月/日/小时。我必须查询这些数据,并在毫秒中获得结果。查询可以是:-
select proc_id where name='conhost.exe',
select proc_id where cmd_line contains 'conhost.exe'.我尝试使用AWS,雅典娜和红移,但都给出了大约10-20秒的结果。我甚至尝试过使用Paraquet和orc文件格式。
是否有任何工具/技术/技术可以用来查询这类数据并在毫秒内获得结果。
(响应时间以毫秒为单位是因为我正在开发交互式应用程序。)
发布于 2020-06-30 05:15:26
我能够解决以上用例使用预置,蜂窝上的aws电子emr。
借助hive,我们可以在s3中创建数据表,通过使用presto和hive作为目录,我们可以查询这些数据。发现emr上的Presto比aws雅典娜快得多(奇怪的是雅典娜内部使用presto )
create table in hive:-
CREATE EXTERNAL TABLE `test_table`(
`field_name1` datatype,
`field_name2` datatype,
`field_name3` datatype
)
STORED AS ORC
LOCATION
's3://test_data/data/';
query this table in presto:-
>presto-cli --catalog hive
>select field_name1 from test_table limit 5;发布于 2019-12-16 08:52:03
我认为您正在寻找像SOLR或弹性搜索这样的分布式搜索系统(我肯定还有其他搜索系统,但这正是我所熟悉的)。
同样值得考虑的是,如果您能够缩小数据大小。在你的100 in中有任何旧的或过时的日期吗?
https://stackoverflow.com/questions/59353117
复制相似问题