aaronsteers
09/13/2021, 9:07 PMtap-athena
in the live coding session two weeks ago, I commented on how generic the code ended up being. The only thing Athena-specific was the creation of the sqlalchemy conection string, which concatenated the creds. We didn't yet to any Athena-specific optimizations but the result was still functional and a solid entry-level tap. Alternatively, we could get the same functionality by allowing the user to install their own driver and provide their own fully built connection string.
What do folks think of a basic tap-sqlalchemy
or (anther name for the same thing) tap-dbapi
(emphasis on DBAPI as described in PEP-249)?
Presumably, If the proper drive is installed into the virtual environment, then this could give basic interop for anything in this list or this one - as well as for community-created drivers like PyAthena which are not on either list. The tap would just accept as config input whatever connection string was needed for the specific requested driver.
Questions for further discussion:
1. Would this be valuable as an entry-level connector - and/or a starting point for other taps?
2. Any thoughts on the naming tap-sqlalchemy
vs tap-dbapi
? I think I like referencing DBAPI but curious to other's thoughts.edgar_ramirez_mondragon
09/13/2021, 9:24 PMsinger-sdk[sqlalchemy]
or singer-sdk[dbapi]
instead? I can imagine limits to how generic a tap can be when all those databases will have a lot of non-overlapping settingsvisch
09/13/2021, 9:26 PMtap-files
(`tap-fs)`` or something like that.
SEO and usability wise there should at a minimum be entries for each DB that's usable due to SQLAlchemy .
From a marketing standpoint having every source available on SQL Alchemy would be better, but maybe the quality isn't high enough?aaronsteers
09/13/2021, 9:31 PMedgar_ramirez_mondragon
09/13/2021, 9:32 PMedgar_ramirez_mondragon
09/13/2021, 9:39 PMshould we have a generic tap that works with anything sqlalchemy works with?@aaronsteers That'd have amazing value if it can be accomplished. What do you think the inputs of such generic tap would be? Only a
sqlalchemy_url
?aaronsteers
09/13/2021, 9:40 PMedgar_ramirez_mondragon
09/13/2021, 9:49 PMaaronsteers
09/14/2021, 3:31 AMtap-athena
to tap-sqlalchemy
. Basically the exact same code but expects a database_url
config instead of the Athena-specific cred arguments. Before broadly promoting this, we need to document the limitations (no log-based replication, for instance) and the caveats regarding performance limitations using the generic, versus a source-optimized tap like tap-postgres. For high-volume streams, users will definitely need a native built tap for their source. However, I do think this has some viable use cases for relatively low-volume streams or cases where the in-built SDK functionality is more important than source-specific optimizations.