db_copy_to | R Documentation |
db_copy_to
for AthenaThis is an Athena method for dbplyr function db_copy_to
to create an Athena table from a data.frame
.
db_copy_to.AthenaConnection(
con,
table,
values,
...,
partition = NULL,
s3_location = NULL,
file_type = c("csv", "tsv", "parquet"),
compress = FALSE,
max_batch = Inf,
overwrite = FALSE,
append = FALSE,
types = NULL,
temporary = TRUE,
unique_indexes = NULL,
indexes = NULL,
analyze = TRUE,
in_transaction = FALSE
)
con |
A |
table |
A character string specifying a table name. Names will be automatically quoted so you can use any sequence of characters, not just any valid bare table name. |
values |
A data.frame to write to the database. |
... |
other parameters currently not supported in noctua |
partition |
Partition Athena table (needs to be a named list or vector) for example: |
s3_location |
s3 bucket to store Athena table, must be set as a s3 uri for example ("s3://mybucket/data/") |
file_type |
What file type to store data.frame on s3, noctua currently supports ["tsv", "csv", "parquet"]. Default delimited file type is "tsv", in previous versions
of |
compress |
|
max_batch |
Split the data frame by max number of rows i.e. 100,000 so that multiple files can be uploaded into AWS S3. By default when compression
is set to |
overwrite |
Allows overwriting the destination table. Cannot be |
append |
Allow appending to the destination table. Cannot be |
types |
Additional field types used to override derived types. |
temporary |
if TRUE, will create a temporary table that is local to this connection and will be automatically deleted when the connection expires |
unique_indexes |
a list of character vectors. Each element of the list will create a new unique index over the specified column(s). Duplicate rows will result in failure. |
indexes |
a list of character vectors. Each element of the list will create a new index. |
analyze |
if TRUE (the default), will automatically ANALYZE the new table so that the query optimiser has useful information. |
in_transaction |
Should the table creation be wrapped in a transaction? This typically makes things faster, but you may want to suppress if the database doesn't support transactions, or you're wrapping in a transaction higher up (and your database doesn't support nested transactions.) |
db_copy_to returns table name
AthenaWriteTables
## Not run:
# Note:
# - Require AWS Account to run below example.
# - Different connection methods can be used please see `noctua::dbConnect` documnentation
library(DBI)
library(dplyr)
# Demo connection to Athena using profile name
con <- dbConnect(noctua::athena())
# List existing tables in Athena
dbListTables(con)
# Write data.frame to Athena table
copy_to(con, mtcars,
s3_location = "s3://mybucket/data/"
)
# Checking if uploaded table exists in Athena
dbExistsTable(con, "mtcars")
# Write Athena table from tbl_sql
athena_mtcars <- tbl(con, "mtcars")
mtcars_filter <- athena_mtcars %>% filter(gear >= 4)
copy_to(con, mtcars_filter)
# Checking if uploaded table exists in Athena
dbExistsTable(con, "mtcars_filter")
# Disconnect from Athena
dbDisconnect(con)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.