Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DBAPI or DBI or something else? #2

Open
ViralBShah opened this issue Nov 24, 2015 · 10 comments
Open

DBAPI or DBI or something else? #2

ViralBShah opened this issue Nov 24, 2015 · 10 comments

Comments

@ViralBShah
Copy link
Member

#1 discusses DBI. I thought it is best to open a new issue. DBAPI.jl is looking quite good, and there seems to be general agreement on following the lead of python. We now have a fair number of database drivers in JuliaDB, and it seems that with a little bit of effort, we can take our database support to the next level.

@iamed2
Copy link

iamed2 commented Nov 24, 2015

Thanks :)

I'm currently working on a PostgreSQL.jl complete revamp and migration to the DBAPI.jl interface. I planned on pushing for DBAPI.jl once that was in place. I'm still making some small changes to DBAPI.jl as I develop PostgreSQL.jl.

@ViralBShah
Copy link
Member Author

I believe @nkottary is working on a couple other migrations to DBAPI.jl, which is why I figured this discussion is best started.

@iamed2
Copy link

iamed2 commented Nov 24, 2015

Exciting! :) I did not know.

@datnamer
Copy link

Any thoughts on a dataframe/table front end to replace the current dataframe?

Or would this be another level of abstraction higher than DBAPI?

@iamed2
Copy link

iamed2 commented Nov 24, 2015

@datnamer I would think it would be higher. With the fetchinto methods in DBAPI.jl it's easy to get results in a DataFrame or Table structure. I'm planning to make DBAPI available as a DataSource in @quinnj's new framework so his work on table-like structures should be usable with DBAPI.

@datnamer
Copy link

Cool. Would this be a view into the original database or something like another Julia native data structure like an array?

@iamed2
Copy link

iamed2 commented Nov 24, 2015

Both are definitely possible. The latter is essentially implemented. We have some experimental work going on at invenia/DataViews.jl for the former (essentially a view+cache) but it is definitely experimental at this point.

@TheOnlySilverClaw
Copy link

Erm...I'm currently trying to understand how to use databases with Julia and I'm a bit confused. Looking at the more active projects, there are at least two APIs (DBI und DBAPI). SQLite.jl and MySQL.jl do not mention whether they implements any of those, PostgreSQL.jl seems to implement DBI, but is in 'maintenance mode' and ODBC.jl is a completely different standard and I guess not yet compatible with DBI or DBAPI.
So, what are people actually using nowadays and is there any progress regarding a common API?

@iamed2
Copy link

iamed2 commented Dec 20, 2016

As far as I know, no one is working on a common database interface. ODBC is probably your best best as it supports a bunch of databases and fits into the DataStreams framework.

@quinnj
Copy link
Member

quinnj commented Dec 20, 2016

Here's my understanding (as the author of the SQLite.jl and ODBC.jl packages):

  • ODBC.jl is kind of it's own DBAPI of sorts, since it works with any DB, as long as you have the ODBC driver for the DB installed, along with the ODBC admin program itself
  • ODBC.jl and SQLite.jl currently implement the DataStreams.jl framework, allowing them to seemlessly transfer data to and from other DataStream packages (CSV.jl, Feather.jl, DataFrames.jl, etc.). Both packages are actively maintained

I think it'd be great to come up with an actual DBAPI that packages could code against, but there hasn't been a lot of effort here for a while. It's on my radar, but I have other pressing interests for the moment (i.e. webstack).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants