Skip to content

docs: add BigQuery Metastore federation guide#4461

Merged
flyrain merged 2 commits into
apache:mainfrom
joyhaldar:bqms-federation-docs
May 20, 2026
Merged

docs: add BigQuery Metastore federation guide#4461
flyrain merged 2 commits into
apache:mainfrom
joyhaldar:bqms-federation-docs

Conversation

@joyhaldar

@joyhaldar joyhaldar commented May 16, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #4050. Adds a documentation page for BigQuery Metastore federation, modeled on the existing Hive Metastore federation guide. Covers build-time enablement, feature configuration, runtime requirements, catalog creation, and limitations.

Rendered page

Screenshot 2026-05-17 at 7 53 31 AM

Checklist

  • 🛡️ Don't disclose security issues! (contact security@apache.org)
  • 🔗 Clearly explained why the changes are needed, or linked related issues: Add BigQuery Metastore federation support #4050
  • 🧪 Added/updated tests with good coverage, or manually tested (and explained how)
  • 💡 Added comments for complex logic
  • 🧾 Updated CHANGELOG.md (if needed)
  • 📚 Updated documentation in site/content/in-dev/unreleased (if needed)

@joyhaldar

Copy link
Copy Markdown
Contributor Author

cc: @flyrain, @dimas-b, @jbonofre, @nandorKollar.
This addresses the documentation follow-up from #4050.

@flyrain flyrain 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.

Thank a lot for adding this, @joyhaldar ! LGTM overall. Left some comments.

(`bigquery.googleapis.com`) over HTTPS.
- **Authentication:** BigQuery Metastore federation only supports `IMPLICIT` authentication, meaning
Polaris uses Google Application Default Credentials resolved at process startup. Ensure the
Polaris process has valid ADC available before starting the server.

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.

Might be worth adding a bit more context around ADC here. Not everyone is familiar with Google Application Default Credentials or how they are typically resolved. This would make the operational setup much clearer for first time users.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I have expanded the ADC bullet with how it's typically resolved and a link to Google's ADC docs.

"name": "analytics_bigquery",
"storageConfigInfo": {
"storageType": "GCS",
"allowedLocations": ["gs://analytics-bucket/warehouse/"]

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 default-base-location is a required field for storageConfigInfo. I'd suggest to replace allowedLocations with default-base-location if there is only one allowed location.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I have dropped allowedLocations from the example and verified locally.

polaris.features."SUPPORTED_CATALOG_CONNECTION_TYPES"=["BIGQUERY"]

# Allows IMPLICIT authentication, needed for BigQuery Metastore federation
polaris.features."SUPPORTED_EXTERNAL_CATALOG_AUTHENTICATION_TYPES"=["IMPLICIT"]

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.

Not related to this PR, but I thought IMPLICIT is within the default support list. In that case, we don't have to add the extra config here. This may be worth a dev list discussion.

@joyhaldar joyhaldar May 17, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I verified both ways, FeatureConfiguration.java has the default for SUPPORTED_EXTERNAL_CATALOG_AUTHENTICATION_TYPES as [OAUTH, BEARER, GCP, SIGV4], and testing locally without the flag, catalog creation fails with Unsupported authentication type: IMPLICIT. Since BigQuery federation only supports IMPLICIT, the flag does need to be set explicitly.

Please let me know if I am incorrect.

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.

You are right. I am just saying maybe we should think about adding IMPLICIT to the default list. That'd be a separated discussion. We are good here.

- `gcp.bigquery.impersonate.scopes`: OAuth scopes for the impersonated credential.
- `gcp.bigquery.impersonate.delegates`: chain of delegate service accounts.

## Limitations and operational notes

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.

+1 thanks for adding these, great to have them here.

flyrain
flyrain previously approved these changes May 17, 2026

@flyrain flyrain 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.

LGTM. Thanks @joyhaldar !

@github-project-automation github-project-automation Bot moved this from PRs In Progress to Ready to merge in Basic Kanban Board May 17, 2026
@flyrain

flyrain commented May 19, 2026

Copy link
Copy Markdown
Contributor

Would you mind rebasing it, @joyhaldar? There are conflicts.

dimas-b
dimas-b previously approved these changes May 20, 2026
joyhaldar and others added 2 commits May 20, 2026 08:54
Co-authored-by: Joy Haldar <joy.haldar@target.com>
Co-authored-by: Joy Haldar <joy.haldar@target.com>
@joyhaldar joyhaldar dismissed stale reviews from dimas-b and flyrain via dba1e03 May 20, 2026 03:25
@joyhaldar joyhaldar force-pushed the bqms-federation-docs branch from 8a382a0 to dba1e03 Compare May 20, 2026 03:25
@joyhaldar

joyhaldar commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

Would you mind rebasing it, @joyhaldar? There are conflicts.

@flyrain rebased.

@flyrain flyrain merged commit 159f3ce into apache:main May 20, 2026
24 checks passed
@github-project-automation github-project-automation Bot moved this from Ready to merge to Done in Basic Kanban Board May 20, 2026
@flyrain

flyrain commented May 20, 2026

Copy link
Copy Markdown
Contributor

Thanks for adding this, @joyhaldar . Thanks for the review, @dimas-b !

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

Successfully merging this pull request may close these issues.

3 participants