CHANGELOG
2.0
2.0.0
-
[breaking change] Make
:orc
table format to resolve columns by names instead of indexes.:orc_index_access
preserves existing behavior -
[breaking change] Simplify table format to take either symbols for presets or a string if you want to specify a custom format
-
Add
:json
table format preset
1.0
1.5.0
-
Ability to configure Egis per client
1.4.0
-
Add ability to insert data with hash values rather than arrays
1.3.0
-
Add ability to create Athena tables with SerDe
1.2.1
-
Fix testing mode error when AWS credentials missing
1.2.0
-
Add logger
1.1.0
-
Ability to specify AWS credentials profile
1.0.1
-
Fixed
aws-sdk-s3
not being a runtime dependency
1.0.0
-
Added
fetch_result
method toAegis::QueryStatus
Unstable
0.4.0
-
Moved errors to
Aegis::Errors
module
0.3.6
-
Moved
NullSerializer
toTypes
module
0.3.5
-
Fixed
nil
value serialization
0.3.4
-
Fixed table's
download_data
to correctly returnnil
values
0.3.3
-
Fixed data wiping when S3 location is empty
0.3.2
-
Fixed table options
-
Replaced usage of deprecated last argument as keyword parameters with splat operator
0.3.1
-
Fixed testing mode table location translation
0.3.0
-
[breaking change] Extracted table-related methods from
Database
into newTable
class (create_table
,add_partitions
,discover_partitions
). Table objects are now being created usingDatabase.table
method. -
[breaking change]
.execute_query
methods inasync
mode now returnAegis::QueryStatus
objects instead of query id. -
Introduced new testing framework. All database queries executed within
Aegis.testing { ... }
will be executed inside a separated “virtual environment” in the testing bucket you can now configure. -
Added a bunch of convenience methods:
-
QueryStatus.in_progress?
-
Database.exists?
to check whether a database with a given name already exists -
Table.upload_data
to upload data to S3 directly from Ruby (especially useful in testing) -
Table.download_data
to download table data into memory (especially useful in testing) -
Table.wipe_data
to purge table's S3 location -
Introduced
Aegis::Types
module for working with Athena data types.Aegis::Types.serializer(type)
returns proper type serializer which hasliteral
,dump
andload
methods. -
literal
returns a string literal you can embed within your queries. For example,Aegis::Types.serializer(:timestamp).literal(Time.now)
returnstimestamp '2020-04-14 10:36:48'
which you can use directly in a Athena query. -
dump
serializes Ruby value object into a string that can be used in S3 data file -
load
loads serialized string value back to Ruby object
0.2.0
-
[breaking change] Removed
permissive
parameter replacing it with bang method versions. Changed methods:Database.create
,Database.drop
,Database.create_table
,Database.load_partitions
-
[breaking change] Replaced
Database.load_partitions
with two simpler methods:Database.add_partitions
,Database.discover_partitions
-
[breaking change]
Database.execute_query
is async by default now
0.1.0
Initial gem implementation including core features like:
-
table schema DSL
-
database / table creation
-
partition loading
-
synchronous and asynchronous query execution
-
query status monitoring