knitr::opts_chunk$set( echo = TRUE, message = FALSE, warning = FALSE, fig.retina = 2 ) Sys.setenv( AWS_S3_STAGING_DIR = "s3://aws-athena-query-results-569593279821-us-east-1" ) options(width=120)
[
](https://codecov.io/gh/hrbrmstr/metis-tidy
Access and Query Amazon Athena via the Tidyverse
Methods are provided to use the 'metis' JDBC/DBI interface via the Tidyverse (e.g. 'dbplyr'/'dplyr' idioms).
Lightweight helpers to make it easier to filter and mutate plus type support for Athena BIGINT (64-bit integers).
devtools::install_git("https://git.sr.ht/~hrbrmstr/metis-tidy") # OR devtools::install_gitlab("hrbrmstr/metis-tidy") # OR devtools::install_github("hrbrmstr/metis-tidy")
library(metis.tidy) # current verison packageVersion("metis.tidy")
library(metis.tidy) library(tidyverse) metis::dbConnect( metis::Athena(), Schema = "sampledb", AwsCredentialsProviderClass = "com.simba.athena.amazonaws.auth.PropertiesFileCredentialsProvider", AwsCredentialsProviderArguments = path.expand("~/.aws/athenaCredentials.props") ) -> con elb_logs <- tbl(con, "elb_logs") glimpse(elb_logs)
filter(elb_logs, elbresponsecode == "200") %>% mutate( tsday = as.Date(substring(timestamp, 1L, 10L)), host = url_extract_host(url), proto_version = regexp_extract(protocol, "([[:digit:]\\.]+)"), ) %>% select(tsday, host, receivedbytes, requestprocessingtime, proto_version) %>% glimpse()
tbl(con, sql(" SELECT CAST('chr' AS CHAR(4)) achar, CAST('varchr' AS VARCHAR) avarchr, CAST(SUBSTR(timestamp, 1, 10) AS DATE) AS tsday, CAST(100.1 AS DOUBLE) AS justadbl, CAST(127 AS TINYINT) AS asmallint, CAST(100 AS INTEGER) AS justanint, CAST(100000000000000000 AS BIGINT) AS abigint, CAST(('GET' = 'GET') AS BOOLEAN) AS is_get, ARRAY[1, 2, 3] AS arr, ARRAY['1', '2, 3', '4'] AS arr, MAP(ARRAY['foo', 'bar'], ARRAY[1, 2]) AS mp, CAST(ROW(1, 2.0) AS ROW(x BIGINT, y DOUBLE)) AS rw, CAST('{\"a\":1}' AS JSON) js FROM elb_logs LIMIT 1 ")) %>% glimpse()
cloc::cloc_pkg_md()
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.