forked from beacon50/SimpleJDBC
-
Notifications
You must be signed in to change notification settings - Fork 0
A JDBC driver for Amazon's SimpleDB
pawlorj/SimpleJDBC
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
SimpleJDBC is a JDBC driver for Amazon's SimpleDB (http://aws.amazon.com/simpledb/). Thus, this driver makes it possible to use the myriad tools available that leverage standard JDBC interfaces to facilitate working with relational data (i.e. SimpleJDBC enables ETL tools to import or extract data from SimpleDB via existing logic coded for working with JDBC). All SimpleDB communication is via Amazon's SDK. For detailed code examples, documentation, downloads, etc see the SimpleJDBC Google code site & wiki (http://code.google.com/p/simpledb-jdbc/); plus, join and/or search the mailing list (http://groups.google.com/group/simplejdbc). If you are looking for the source, you can find it here. What is SimpleDB? SimpleDB is a cloud-based key/value store exposed via a web service interface. SimpleDB is a massively scalable, highly available datastore -- it's logically defined as domains containing items. SimpleDB also permits items to contain attributes. Think of a domain much like you would a table in the relational sense. Domains can have many items (which are similar to rows) and items can have many attributes (which are like columns in the relational world). Attributes are really just name/value pairs and the "pair" aspect isn't limited to one value. That is, an attribute name can have a collection (or list) of associated values. What's more, all data within SimpleDB is represented as a String, which is distinctly different from a standard RDBMS, which typically support myriad datatypes. SimpleDB doesn't support the notion of cross-domain joins, so you can't query for items in multiple domains. You could, however, overcome this limitation by performing multiple SimpleDB queries and doing the join on your end. Items don't have keys per se. The key or unique identifier for an item is the item's name. Searching in SimpleDB is different: data comparisons are done lexicographically. Lexicographic searching can cause issues when looking for numbered data (including dates), but all is not lost. One way to fix the searching-on-distance issue is by padding numeric data (which this driver attempts to facilitate). What SimpleJDBC supports: INSERT statements: * create a domain (i.e. table) if not already in existence * Thus, "INSERT INTO Races (Name, Distance) VALUES ('Richmond Marathon', 26.2)" is a valid insert statement that will create a domain named Races with an item having a unique id attribute (item name) and two attributes: Name and Distance with values * Numeric values are encoded * All inserted objects are given an id (if one isn't provided (i.e. id or ID)). Right now, this id isn't guaranteed to be unique. DELETE statements * Deletes only support comparing values by equals (=); that is, the statement "DELETE from Races where Name = 'Richmond Marathon'" works but "DELETE from Races where distance > 13.1" would not (yet) UPDATE statements * Numeric values are encoded SELECT statements * Numeric values are encoded and decoded TODO: see Google code issue list (http://code.google.com/p/simpledb-jdbc/issues/list)
About
A JDBC driver for Amazon's SimpleDB
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Java 100.0%