1 00:00:06,651 --> 00:00:08,130 - Let's take a look at some 2 00:00:08,130 --> 00:00:11,410 of the details of the Athena service. 3 00:00:11,410 --> 00:00:15,320 And the first thing that we need to understand is 4 00:00:15,320 --> 00:00:17,293 going to be the pricing model, 5 00:00:18,140 --> 00:00:20,210 because this is gonna help us figure 6 00:00:20,210 --> 00:00:24,540 out how we are going to optimize the placement of our data 7 00:00:24,540 --> 00:00:27,660 as well as its basic organization. 8 00:00:27,660 --> 00:00:32,060 We are going to pay per query to use the service. 9 00:00:32,060 --> 00:00:33,910 There's no actual storage charges 10 00:00:33,910 --> 00:00:38,910 because the data actually exists in S3 or other services, 11 00:00:39,120 --> 00:00:41,532 but we are going to be paying 12 00:00:41,532 --> 00:00:45,925 based on the amount of data that is returned by the query 13 00:00:45,925 --> 00:00:50,240 but also on the amount of data that was queried 14 00:00:50,240 --> 00:00:54,586 in the first place to get that response. 15 00:00:54,586 --> 00:00:56,132 And because of this, 16 00:00:56,132 --> 00:01:00,010 we may want to think a little bit more carefully 17 00:01:00,010 --> 00:01:03,730 about how we organize data, especially in S3 18 00:01:03,730 --> 00:01:08,010 into prefixes that would match the different types 19 00:01:08,010 --> 00:01:10,150 of queries that we would be issuing 20 00:01:10,150 --> 00:01:13,528 against the data to minimize the size 21 00:01:13,528 --> 00:01:16,193 of the overall data set that gets queried. 22 00:01:17,700 --> 00:01:22,700 Next, we have the option of enforcing asset compliance. 23 00:01:23,390 --> 00:01:27,603 So if we need to issue strongly consistent queries 24 00:01:27,603 --> 00:01:30,493 that's a parameter that we can provide as well. 25 00:01:32,590 --> 00:01:34,610 We have the ability to use more 26 00:01:34,610 --> 00:01:39,070 than just the AWS CLI or SDK. 27 00:01:39,070 --> 00:01:42,740 You can treat your Athena service 28 00:01:42,740 --> 00:01:45,920 as a JDBC or ODBC endpoint, 29 00:01:45,920 --> 00:01:48,703 so your applications can issue queries directly. 30 00:01:51,100 --> 00:01:53,750 You can also partition the data 31 00:01:53,750 --> 00:01:58,750 beyond just the individual prefixes in the S3 buckets. 32 00:02:01,140 --> 00:02:05,890 And finally, you can use a feature called Federated Query. 33 00:02:05,890 --> 00:02:07,310 And this is another one 34 00:02:07,310 --> 00:02:10,410 of those elements that helps to separate this service 35 00:02:10,410 --> 00:02:14,160 from anything that you could conceive of implementing 36 00:02:14,160 --> 00:02:17,610 in an on-prem data center and reminding us 37 00:02:17,610 --> 00:02:22,050 of the power that comes with being cloud native. 38 00:02:22,050 --> 00:02:25,170 And so let's take a look at Federated Query, 39 00:02:25,170 --> 00:02:29,090 assuming that you're using a glue data catalog 40 00:02:29,090 --> 00:02:31,480 which is the current feature set 41 00:02:31,480 --> 00:02:35,250 of Athena and not the old Athena catalog. 42 00:02:35,250 --> 00:02:36,420 You have the ability 43 00:02:36,420 --> 00:02:41,420 to query services that are not just S3 buckets 44 00:02:41,600 --> 00:02:44,340 and prefixes within those buckets. 45 00:02:44,340 --> 00:02:46,240 So what else can you query? 46 00:02:46,240 --> 00:02:49,450 Well, it could be a cloud watch log group 47 00:02:49,450 --> 00:02:51,950 with logs that are either space delimited 48 00:02:51,950 --> 00:02:55,943 or JSON objects or whatever happens to be in there. 49 00:02:57,570 --> 00:03:01,223 You can federate your query against a DynamoDB table. 50 00:03:02,850 --> 00:03:05,160 You can federate against DocumentDB. 51 00:03:05,160 --> 00:03:06,660 So you have a couple of different 52 00:03:06,660 --> 00:03:09,063 NoSQL options on the backend. 53 00:03:10,380 --> 00:03:13,070 And since Athena takes data 54 00:03:13,070 --> 00:03:16,870 and makes it available for SQL based queries 55 00:03:16,870 --> 00:03:18,920 you're basically treating your backend data 56 00:03:18,920 --> 00:03:20,580 as if it were relational. 57 00:03:20,580 --> 00:03:23,670 Well, it can actually be relational. 58 00:03:23,670 --> 00:03:26,680 It could be an RDS database 59 00:03:26,680 --> 00:03:30,040 or even an EC two instance that is running 60 00:03:30,040 --> 00:03:33,343 either MySQL or a Postgres engine. 61 00:03:35,140 --> 00:03:39,020 And finally, you can even federate your Athena queries 62 00:03:39,020 --> 00:03:42,383 against custom external endpoints.