Skip to content

Add Tabular provider - #23704

Merged
potiuk merged 24 commits into
apache:mainfrom
Fokko:fd-provider-tabular
Jul 6, 2022
Merged

Add Tabular provider#23704
potiuk merged 24 commits into
apache:mainfrom
Fokko:fd-provider-tabular

Conversation

@Fokko

@FokkoFokko commented May 13, 2022

Copy link
Copy Markdown
Contributor

First version of the Tabular hook :)

^ Add meaningful description above

Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragement file, named {pr_number}.significant.rst, in newsfragments.

Comment threadairflow/providers/tabular/hooks/tabular.py Outdated

@kbendickkbendick left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Fokko! Left some comments with questions about various things.

Comment threadairflow/providers/tabular/hooks/tabular.py Outdated
Comment threadairflow/utils/db.py Outdated
Comment threaddocs/apache-airflow-providers-tabular/connections.rst Outdated
Comment thread.github/CODEOWNERS Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

Comment threadairflow/providers/tabular/example_dags/example_tabular.py Outdated
Comment threadairflow/providers/tabular/example_dags/example_tabular.py Outdated
Comment threadtests/providers/tabular/hooks/test_tabular.py Outdated
@Fokko
Fokkoforce-pushed the fd-provider-tabular branch 2 times, most recently from eb6028a to ddfe525CompareMay 16, 2022 19:58
@Fokko
Fokko requested review from XD-DENG and ashb as code ownersMay 17, 2022 13:28

@eladkaleladkal left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an ongoing discussion in mailing list about if we should add more providers
https://lists.apache.org/thread/nvfc75kj2w1tywvvkw8ho5wkx1dcvgrn

though I would say this is a unique case as a PMC is the codeowner :)

Comment threadairflow/models/dag.py Outdated
@Fokko
Fokkoforce-pushed the fd-provider-tabular branch from a682089 to 7c03bf4CompareMay 17, 2022 14:01
@Fokko

Copy link
Copy Markdown
ContributorAuthor

Thanks for pointing me to the thread @eladkal

I actually started on a 3rd party provider, but setting it up within Airflow itself makes it so much easier because of Breeze :) @kbendick and I will maintain this one.

@Fokko
Fokkoforce-pushed the fd-provider-tabular branch 2 times, most recently from b75b5a3 to 13c3d7aCompareMay 17, 2022 14:56
Comment threadairflow/providers/tabular/provider.yaml Outdated

@kaxilkaxil left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will probably be in the same boat as #22659 where we are waiting for what comes out of https://lists.apache.org/thread/nvfc75kj2w1tywvvkw8ho5wkx1dcvgrn

@Fokko
Fokkoforce-pushed the fd-provider-tabular branch 3 times, most recently from fa180e7 to 38afb69CompareMay 17, 2022 18:20
Co-authored-by: Kyle Bendickson <kyle@tabular.io>
@Fokko
Fokkoforce-pushed the fd-provider-tabular branch from 38afb69 to 29e6511CompareMay 17, 2022 18:52
@kaxil

Copy link
Copy Markdown
Member

This will probably be in the same boat as #22659 where we are waiting for what comes out of https://lists.apache.org/thread/nvfc75kj2w1tywvvkw8ho5wkx1dcvgrn

Welp, looks like @eladkal had already commented about it :)

Comment threadairflow/providers/tabular/example_dags/example_tabular.py Outdated
@Fokko

Copy link
Copy Markdown
ContributorAuthor

@potiuk thanks for sharing the command. I just ran it and cleanup up the excess in the command hash file.

Would be great to get this in at some point, looking forward to the summary

@potiuk

Copy link
Copy Markdown
Member

Would be great to get this in at some point, looking forward to the summary

Coming :)

@Fokko

Copy link
Copy Markdown
ContributorAuthor

@potiuk I saw your mail: https://lists.apache.org/thread/6ngq79df7op541gfwntspdtsvzlv1cr6

It makes sense and I see the current issues. That being said, would it be possible to get this in? Both @kbendick and I will make sure that the operator will be maintained. One thing on the operator, the Tabular one will be quite small. I can also see that we release Apache Iceberg operators in the future as well, but that will probably also be just a wrapper around the Python pyiceberg library.

@potiuk

Copy link
Copy Markdown
Member

@potiuk I saw your mail: https://lists.apache.org/thread/6ngq79df7op541gfwntspdtsvzlv1cr6

It makes sense and I see the current issues. That being said, would it be possible to get this in? Both @kbendick and I will make sure that the operator will be maintained. One thing on the operator, the Tabular one will be quite small. I can also see that we release Apache Iceberg operators in the future as well, but that will probably also be just a wrapper around the Python pyiceberg library.

I believe so :). I wanted just to get some community feedback, but I think having just a commitment from someone who has an interest (be it direct stakeholder or say a company that implements a lot of integrations with the product) - even verbally and confirmed in an issue should be more than enough. Feel free to comment in the discussion I started too :).

@potiuk

Copy link
Copy Markdown
Member

Hey @Fokko, It took a bit long but I think we got to a consensus regarding new providers, and we also propose some kind of mix-governance aproach, where (among the others) the stakeholders for the future providers (which we are going to technically split to separate repositories soon) should take a bit more responsibility for maintenance:

#24680

If that does not scare you away, and you still want to add the provider to Airflow community providers, feel free to rebase the PR. I will also ask you (hopefully it will be merged soon) to rebase it after we merge #24672 - we are going to change the way how we keep depdencies for providers in order to prepare them to separate to different repository.

Let us know what you want to do, either close the PR or rebase it and lead it to completion after #24672 is merged.

@Fokko

Copy link
Copy Markdown
ContributorAuthor

Hey @potiuk, of course I'm still interested in getting this in! I'm working on rebasing the PR, but I'm also seeing some issues with the recent changes. Let me dig into it and get back to you

Comment threadairflow/providers/tabular/CHANGELOG.rst Outdated
@@ -0,0 +1,48 @@
# Licensed to the Apache Software Foundation (ASF) under one

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new example dags should be written according to AIP-47
the example dag should be in system/providers/tabular path
see #24641 for reference

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All green now :)

Comment threadairflow/providers/tabular/provider.yaml Outdated

@josh-felljosh-fell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some small things but LGTM.

`Tabular <https://tabular.io/>`__


Release: 0.0.1

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Release: 0.0.1
Release: 1.0.0

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah.. was to quick :).. @Fokko - mind for a small follow-up?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing!

Installation
------------

You can install this package on top of an existing Airflow 2.1+ installation via

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can install this package on top of an existing Airflow 2.1+ installation via
You can install this package on top of an existing Airflow 2.2+ installation via

The minimum version for providers was bumped to 2.2.0 recently 🙂

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missed that one, I'll do a follow-up! 👍🏻

from airflow.providers.tabular.hooks.tabular import TabularHook


class TestTabularHook(unittest.TestCase):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For net-new unit tests we should prefer pytest over unittest.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually prefer pytest as well. Let me follow up on this one

@@ -0,0 +1,39 @@
.. Licensed to the Apache Software Foundation (ASF) under one

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we typically want to have a URI example for connection in the doc. Is that right @mik-laj?

@potiukpotiuk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks cool!

@potiuk
potiuk merged commit 10273e3 into apache:mainJul 6, 2022
@Fokko
Fokko deleted the fd-provider-tabular branch July 6, 2022 14:03
@kbendick

Copy link
Copy Markdown

Thank you @Fokko!

@ephraimbuddyephraimbuddy added the changelog:skip Changes that should be skipped from the changelog (CI, tests, etc..) label Aug 15, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-toolsarea:providerschangelog:skipChanges that should be skipped from the changelog (CI, tests, etc..)kind:documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@Fokko@kaxil@josh-fell@potiuk@turbaszek@eladkal@kbendick@ashb@ephraimbuddy