Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 以毫秒为单位查询100Gb的S3数据_Amazon Web Services_Amazon S3_Amazon Redshift_Amazon Athena - Fatal编程技术网

Amazon web services 以毫秒为单位查询100Gb的S3数据

Amazon web services 以毫秒为单位查询100Gb的S3数据,amazon-web-services,amazon-s3,amazon-redshift,amazon-athena,Amazon Web Services,Amazon S3,Amazon Redshift,Amazon Athena,我在s3中有json数据。数据看起来像 { "act_timestamp": 1576480759864, "action": 26, "cmd_line": "\\??\\C:\\Windows\\system32\\conhost.exe 0xffffffff", "guid": "45af94911fb911ea827300270e098ff0", "md5": "d5669294f78a7d48c318ef22d5685ba7", "na

我在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"
}
我有大约100GB的JSON存储在s3中,文件夹结构为年/月/日/小时。 我必须查询这些数据并在毫秒内得到结果。 查询可以是:

select proc_id where name='conhost.exe',
select proc_id where cmd_line contains 'conhost.exe'.
我尝试使用AWS Athena和Redshift,但两者都给出了大约10-20秒的结果。我甚至尝试了Paraquet和orc文件格式

是否有任何工具/技术/技术可用于查询此类数据并在毫秒内获得结果


(响应时间以毫秒为单位的原因是因为我正在开发交互式应用程序。)

我认为您正在寻找一个分布式搜索系统,如SOLR或elastic search(我确信还有其他系统,但这些是我熟悉的)


如果您能够减少数据大小,也值得考虑。您的100GB内存中是否有旧的或过时的日期

通过在aws emr上使用presto、hive,我能够解决上述用例

在配置单元的帮助下,我们可以在s3中创建数据表,并且通过使用presto和配置单元作为目录,我们可以查询这些数据。 发现emr上的Presto比aws athena快多了 (奇怪的是雅典娜在内部使用presto)


我尝试了弹性搜索……但它最多只能提供10k个文档作为响应。对于我的一些查询,结果匹配数百万个文档,在弹性搜索中使用滚动/扫描获取这些文档的速度很慢。所以我发现弹性搜索不是一个选项。您的最终用户是否需要一次性使用数百万条记录?可能不会,尽管我不知道您的用例。您需要一个标准的索引rdbms,如postgres,并适当设置索引。看见100GB应该不是问题。我已经读到aws雅典娜内部使用postgre,因此我没有更深入地探讨postgre。你应该!红移是基于postgres的,但没有索引和文本搜索。雅典娜以普雷斯托为原型。
 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;