Skip to content

Latest commit

 

History

History
115 lines (72 loc) · 3.39 KB

CHANGELOG.md

File metadata and controls

115 lines (72 loc) · 3.39 KB

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 to Aegis::QueryStatus

Unstable

0.4.0

  • Moved errors to Aegis::Errors module

0.3.6

  • Moved NullSerializer to Types module

0.3.5

  • Fixed nil value serialization

0.3.4

  • Fixed table's download_data to correctly return nil 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 new Table class (create_table, add_partitions, discover_partitions). Table objects are now being created using Database.table method.
  • [breaking change] .execute_query methods in async mode now return Aegis::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 has literal, dump and load methods.
    • literal returns a string literal you can embed within your queries. For example, Aegis::Types.serializer(:timestamp).literal(Time.now) returns timestamp '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