Skip to content

Conversation

@chalmerlowe
Copy link
Collaborator

@chalmerlowe chalmerlowe commented Mar 17, 2023

Removes pyarrow and bqstorage as regular dependencies and moves them to the extras category where they can be installed, as needed (i.e. when the use of pyarrow and/or bqstorage may provide performance benefits).

As noted in Issue #743:

pyarrow is an optional dependency of google-cloud-bigquery, but it's made mandatory by python-bigquery-sqlalchemy.

Because pyarrow is quite large on disk — 100 MB on x86_64 Linux — installing it when it is not used is inefficient and poses a burden on some installations in space constrained environments.

This is not deemed a breaking change in that no existing functionality is being deprecated and existing users still have the ability to install bqstorage/pyarrow as needed.

NOTE: Users are likely to benefit from installing bqstorage when accessing query results in excess of 100 Mb ... these users may experience a speed increase up to 10x.

Fixes #743 🦕

IF this PR is merged, we should be able to close the following adjacent/associated PR:

Closes #470

@product-auto-label product-auto-label bot added the size: m Pull request size is medium. label Mar 17, 2023
@chalmerlowe chalmerlowe added owlbot:ignore instruct owl-bot to ignore a PR and removed size: m Pull request size is medium. labels Mar 17, 2023
@product-auto-label product-auto-label bot added the api: bigquery Issues related to the googleapis/python-bigquery-sqlalchemy API. label Mar 17, 2023
@chalmerlowe
Copy link
Collaborator Author

Temporarily labeling with owlbot:ignore.
Would like to get some feedback on the approach and whether any additional edits need to be made before going down the rabbithole of editing the owlbot files used by synthtool to produce the final form of the noxfiles.

Once we have worked out exactly how things should look, I will go back and edit the owlbot files and ensure that synthtool can properly create the noxfiles as desired.

@chalmerlowe chalmerlowe requested a review from tswast March 17, 2023 16:31
@chalmerlowe chalmerlowe self-assigned this Mar 17, 2023
Copy link
Collaborator

@tswast tswast left a comment

Choose a reason for hiding this comment

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

Thanks! This approach LGTM.

@product-auto-label product-auto-label bot added the size: m Pull request size is medium. label Mar 20, 2023
Copy link
Collaborator

@tswast tswast left a comment

Choose a reason for hiding this comment

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

LGTM once you get owlbot sorted.

@chalmerlowe chalmerlowe added owlbot:run Add this label to trigger the Owlbot post processor. and removed owlbot:ignore instruct owl-bot to ignore a PR labels Mar 21, 2023
@gcf-owl-bot gcf-owl-bot bot removed the owlbot:run Add this label to trigger the Owlbot post processor. label Mar 21, 2023
@chalmerlowe chalmerlowe marked this pull request as ready for review March 21, 2023 22:28
@chalmerlowe chalmerlowe requested a review from a team as a code owner March 21, 2023 22:28
@chalmerlowe chalmerlowe requested a review from a team as a code owner March 21, 2023 22:28
@chalmerlowe
Copy link
Collaborator Author

@tswast I got owlbot to work and all the tests are passing.
If you approve, we can merge this PR.

Copy link
Collaborator

@tswast tswast left a comment

Choose a reason for hiding this comment

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

Thanks!

@chalmerlowe chalmerlowe merged commit 5d6b38c into main Mar 22, 2023
@chalmerlowe chalmerlowe deleted the remove-pyarrow-bqstorage branch March 22, 2023 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigquery Issues related to the googleapis/python-bigquery-sqlalchemy API. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pyarrow dependency should be optional

2 participants