AWS Athena是Amazon提供的一种交互式查询服务,可以使用标准SQL轻松地直接检查Amazon S3中的数据。Athena是无服务器的,因此没有需要管理的基础设施,我们只为运行的查询付费。雅典娜很容易使用。它只是指向S3中的数据,然后使用标准SQL开始查询数据。大多数结果在几秒钟内就能送达。
何时使用AWS Athena
Athena用于分析Amazon S3中的数据。Athena可以操作各种类型的结构化和非结构化数据类型,包括数据格式,如CSV(逗号分隔值),ORC(优化行柱状),Apache Parquet和Apache Avro, JSON (JavaScript对象标记法)。如果希望对Amazon S3中的数据运行交互式临时SQL查询,则应该使用Athena。Athena为我们提供了对Amazon S3中的数据运行特别查询的最简单方法
我们可以直接对Amazon S3中的数据运行交互式查询,而不必格式化数据或管理基础设施。例如,如果您想对web服务器日志进行快速查询以排除我们的网站所面临的问题,那么Athena是很有用的。
AWS Athena的工作流程
Athena使用Presto,这是一个分布式查询引擎,用于运行查询,Apache Hive用于修改和创建表和分区。Athena是按查询付费的(S3中1TB数据的正常价格是5美元)。
Amazon Athena的工作流程可以在上面看到。数据被上传到Amazon S3桶中,我们从桶中查询使用Athena存储的数据。
雅典娜的优点
- Serverless:无需配置任何基础设施即可快速查询数据
- 集成:集成了许多工具,包括:AWS Glue、Amazon Quick Sight和密钥管理服务(KMS)。
- 安全:使用Amazon S3桶策略和访问控制列表,以及AWS身份和访问管理(我),以确保安全。
- Pay-per-query:只为运行的查询付费。
- 快速:为快速性能而设计。并排执行查询,允许用户在几秒钟内得到结果。
雅典娜的工作原理:
下面是一个示例,我们如何使用Athena查询S3桶中的数据。
我有学生姓名和考试百分比的CSV文件格式的数据。
我已经将这些数据上传到我的S3桶。
- 我们需要从AWS仪表板中打开Athena服务。打开雅典娜后,你会看到下面的仪表盘。
- 现在我们需要选择数据库。我们还可以通过使用下面的查询创建一个数据库
- 创建数据库“数据库名称”
- 我创建了一个名为"AWS_test”
- 如果您已经创建了一个数据库,您可以简单地从数据库的下拉菜单中选择您的数据库。
- 现在我们必须创建表。您可以通过单击create选项卡来创建表。
- 如您所见,创建表有许多选项,但我们必须使用S3数据。因此,我们将选择S3桶数据。
- 在选择S3桶数据之后,您将被重定向。在这里,我们必须输入要创建的表的名称。我已经给这张桌子命名了。”测试的问题。
-
- 现在我们必须选择数据库。我们正在使用我们之前创建的现有数据库“AWS_test”
-
- 您需要输入存储在S3存储桶中的文件的位置。
-
- 如果你想知道文件在S3中的位置。您可以简单地进入该文件位置的S3 bucket。
-
- 选择属性,就可以找到S3 URL副本,如下所示,并将其粘贴到数据集的位置。
-
- 我们需要指定文件的类型。对于EX: CVS, JSON等。
-
- 接下来,我们将为列命名。如你所见,在我的文件上面有3列。如果文件中的列太多,则可以使用批量添加列功能。可以一次添加多个列。
-
- 我们必须指定列的名称和它的数据类型,比如列中的值是字符串,int或float等等。
- 现在按下create table,你的表就创建好了
- 现在我们将使用标准SQL查询文件中的数据。
-
- 要在Athena中运行任何查询,我们只需要将它们写入框中并选择Run
- 我正在运行下面的查询,以显示文件中的所有数据
- select * from Test;
正如您在运行上述查询之后所看到的,我得到了文件中出现的所有数据的输出
我还运行了下面的查询,其中我指定了一个学生的特定名字,并得到了关于他们的详细信息,如他们的卷号和百分比。
select * from Test where name = ' Mohit '
如您所见,Athena非常容易使用,使我们的工作流程更简单。我们只需要运行正确的查询就可以在几秒钟内收到预期的结果!
“完美”如何帮助你?
Perficient是经过认证的Amazon Web Services合作伙伴,在云平台解决方案、呼叫中心、应用现代化、迁移、数据分析、移动、开发人员和管理工具、物联网、无服务器、安全等领域拥有超过10年的企业级应用和专业知识。与我们行业领先的战略和团队相配合,Perficient能够帮助企业应对最严峻的挑战,并从他们的实现和集成中获得最大的收益。
表达得非常好!!继续伟大的工作!!
精彩的解释,我甚至都没有意识到。
干得好,保持下去,哈桑。
愿一切都好!
这篇文章对生产环境非常有用。
赛义德解释得很清楚!!希望这篇文章将来对我们有用。
愿一切都好!
说得很清楚,连我自己都不知道。
你已经做得很好了,要保持这种势头。干得好,哈桑。
非常好的解释和超级信息丰富。再接再厉。
精彩的文章,期待更多这样的博客。
干得好,赛义德!坚持下去
干得好!这会有很大帮助。