{"ref":"content:devtoberfest-2026-bridging-python-and-sap-hana-sqlalchemy-hana","page":"/content/devtoberfest-2026-bridging-python-and-sap-hana-sqlalchemy-hana","json":"/content/devtoberfest-2026-bridging-python-and-sap-hana-sqlalchemy-hana.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"devtoberfest-2026-bridging-python-and-sap-hana-sqlalchemy-hana","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect","content_type":"talk","url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","published":"2026-09-29","published_on":"source:youtube","author":"SAP Developers","summary":"A Devtoberfest 2026 data-track session (DAT-21) in which one of the maintainers of sqlalchemy-hana, the open-source SQLAlchemy dialect published in SAP's GitHub organisation, opens up what sits between Python and [SAP HANA](artifact:sap-hana). It walks the five dialect classes that render statements, types, DDL, identifiers and sequences, and the HANA specifics they absorb: the FROM DUMMY a bare SELECT needs, a limit injected when only an offset is given, string compiled to NVARCHAR, and quoted case-sensitive identifiers against Python's lowercase. The rest covers schema migrations with Alembic on HANA's transactional DDL, the recently added async support and vector types, and that HANA Cloud and HANA 2 are supported while HANA 1 is not.","short":"Inside sqlalchemy-hana, the SQLAlchemy dialect for SAP HANA","explains":["artifact:sap-hana",{"ref":"capability:database-connectors","applies_to":{"ecosystems":["btp"]}}],"sources":[{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"today, I want to talk about how we can connect Python's most popular database toolkit to SAP Hana."},{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"a dialect in this case means um it's the translation layer between SQLAlchemy and your concrete DBMS."},{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"for example, in Hana, you cannot just say select one, but you need a from clause."},{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"For example, string is translated to NVARCHAR, and there is also no daytime, there's timestamp, so we just translate these types behind the scenes."},{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"Hana Cloud as well as Hana on Prem, Hana 2 is supported. Hana 1, by the way, is no longer supported."},{"url":"https://www.youtube.com/watch?v=AkCiOEhQbtU","title":"Bridging Python and SAP HANA: Inside the sqlalchemy-hana Open-Source Dialect — Devtoberfest 2026","checked":"2026-10-19","quote":"Then let's also talk about a very important feature within Hana, which is the transactional DDL."}],"provenance":{"discovered_via":[{"source":"source:youtube","channel":"devtoberfest-2026"}],"first_seen":"2026-10-19"},"drafted_with_ai":true},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"good","evidence":"published 1 month ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2026-09-29"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":null,"unit":"views"},{"value":null,"unit":"comments"},{"value":null,"unit":"likes"}]},"signals":null,"series":null,"edges":{"authors":[]}}