2. • Worked in data access space for seven years
• ODBC, JDBC, ADO.NET, ODBO, XMLA
• Core developer for the current generation of Simba’s data
access technologies
• Collaborated at an Engineering Level with Simba ISV
Customers to design and implement data drivers that are
today being shipped world wide
Kyle at a glance
3. • Simba connects people to data.
• HQ’ed in Vancouver, BC.
• 100ish employees.
• Founded in 1991.
• In 1992, Simba co-authored the original ODBC standard with Microsoft.
• Simba produces the SimbaEngine® SDK and drivers for the leading data
sources on multiple platforms.
Simba Technologies at a glance
6. • Partnership to create ODBC and JDBC drivers
• ODBC 3.80
• JDBC 3.0 and 4.0
• Allow easy access to data within Couchbase from your
favourite BI and ETL tools
Simba & Couchbase
7. • Couchbase and Simba Technologies have partnered: Simba is
building high-performance ODBC and JDBC Drivers for Couchbase.
• After completion, Simba and Couchbase will maintain and support
the drivers and Simba will license the Drivers to Couchbase
Customers.
• Why do you need ODBC and JDBC Drivers for Couchbase?
Simba & Couchbase
8. • Full support for ODBC 3.80
• Cross-platform:
• Full 32- and 64-bit support
• Comprehensive Unicode support
• Full SQL and N1QL support
ODBC Driver
9. • JDBC 3.0 and 4.0
• Type 4 JDBC driver
• Full SQL and N1QL support
• Extensive API support
• Not limited to small subset
JDBC Driver
11. • Simba ODBC or JDBC layer
• Handle standard API calls and translate to Data Store Interface
• Simba SQL Parser
• Translates SQL into equivalent N1QL
• Data Store Interface
• Custom to communicate with Couchbase
Architecture
12. • Communicates with Couchbase using REST
• Interprets schema to create relational metadata for JSON
• Does actual conversion of JSON data to relational data
Data Store Interface
13. • Couchbase is NoSQL
• No schema
• ODBC and JDBC are SQL
• Expect a fixed schema
• Must map from schema-less data to a fixed schema
Relational Model
14. • SQL
• Catalog, Schema, Table
• Couchbase
• Pool, Bucket
Catalog => Pool
Table => Bucket
Relational Model
15. Sample JSON Document:
{“Id” : 1, “Name”: “Tom”, “Values” : [V1,V2]}
Simple Flattening
Id Name Values[0] Values[1]
1 Tom V1 V2
16. Sample JSON Document:
{“Id” : 1, “Name”: “Tom”, “Values” : [V1,V2]}
Parent
Child
Normalization
Id Name
1 Tom
Id ArrayIndex Value
1 1 V1
1 2 V2
17. • Provide full SQL-92 support
• Aggregations, joins, scalar functions, sub-queries, limits
• DDL and DML
• N1QL pass-through
• For expert users or N1QL aware applications
THE RESULT ----
SQL and N1QL Support
SIMBA POSITIONING STATEMENT:
Simba Technologies connects people to data. For ISVs and enterprises, Simba offers the best-engineered, most ubiquitous, most comprehensive, fastest-performing, best-supported, most-flexibly-priced standards-based solutions to connect big data to analytics applications. Simba establishes meaningful relationships with its customers, and commits to providing the best support, licensing models, and maintenance plans to ensure its customers' success. From the lab to the board room to the living room, Simba customers quickly, easily, make their big data actionable, empowering them to focus on activity, not infrastructure. Simba delivers best-in-class connectivity that moves its customers from data to action faster, smarter, and more efficiently.