[ 
https://issues.apache.org/jira/browse/HIVE-29599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18109090#comment-18109090
 ] 

Shohei Okumiya commented on HIVE-29599:
---------------------------------------

We may need to discuss the security model first. I heard Unity Catalog 
(probably) offers the most restrictive security model. When column- or 
row-level access control is enabled, it generates new Parquet files (or 
something similar), and the REST endpoint returns FileIO that reads the 
dynamically generated files rather than the original files.
 # An Iceberg client accesses 
`/v1/\{prefix}/namespaces/\{namespace}/tables/\{table}/plan`
 # Unity Catalog materializes post-projected or filtered rows
 # Unity Catalog makes a response
 # The Iceberg client reads the files

I'd say this apparently requires a compute engine. I guess it is hard to start 
with the perfect mode in this ticket.

 

If column- or row-level access control is not enabled, 
`/v1/\{prefix}/namespaces/\{namespace}/tables/\{table}/plan` is likely to have 
the same security mode as 
`/v1/\{prefix}/namespaces/\{namespace}/tables/\{table}`; we have nothing new to 
do.

 

I'm not confident what the server-side planning should return when column- or 
row-level access control is enabled... 403 Forbidden could be safer. However, 
can an Iceberg client fall back to /v1/tables? I think Credential Vending has 
the same problem. We may check how other catalogs behave first.

> Support server-side scan planning of Iceberg
> --------------------------------------------
>
>                 Key: HIVE-29599
>                 URL: https://issues.apache.org/jira/browse/HIVE-29599
>             Project: Hive
>          Issue Type: Improvement
>          Components: Iceberg integration, Standalone Metastore
>            Reporter: Shohei Okumiya
>            Priority: Major
>
> Iceberg REST Catalog provides 
> `/v1/\{prefix}/namespaces/\{namespace}/tables/\{table}/plan`, which pushes 
> scan planning to the server side.
> [https://github.com/apache/iceberg/blob/apache-iceberg-1.10.1/open-api/rest-catalog-open-api.yaml#L605-L689]
> This effort could benefit users.
>  - Read performance can improve if the catalog effectively caches the response
>  - Clients can be thin; beneficial for new languages
>  - With credential vending, we can give more fine-grained credentials
> In this ticket, we will try to implement the simplest mode of the server-side 
> scan planning.
>  - [https://lists.apache.org/thread/qq13468x6gk0vxnsckzc5xd02tjlvpkm]
>  - 
> [https://docs.google.com/document/d/1FdjCnFZM1fNtgyb9-v9fU4FwOX4An-pqEwSaJe8RgUg/edit?usp=sharing]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to