UCProxy¶
UCProxy
is aTableCatalog
(Spark SQL).
TablesApi¶
UCProxy
creates a TablesApi
client when requested to initialize.
TemporaryTableCredentialsApi¶
UCProxy
creates a TemporaryTableCredentialsApi
client when requested to initialize.
Initialize Table Catalog¶
CatalogPlugin
initialize
is part of the CatalogPlugin
(Spark SQL) abstraction.
initialize
asserts that uri
option is specified.
initialize
creates an ApiClient based on the uri
option (the host, the port and the scheme).
initialize
tells the ApiClient
to use Authorization
header for every request based on token
option, if defined.
In the end, initialize
creates this TablesApi and this TemporaryTableCredentialsApi.
Load Table¶
TableCatalog
loadTable
is part of the TableCatalog
(Spark SQL) abstraction.
loadTable
requests the TablesApi to load the metadata of the table by the fully-qualified table name (with the name of this catalog):
If the table metadata could be found, loadTable
requests the TemporaryTableCredentialsApi for the S3 temporary table credentials (sending a POST
request to /temporary-table-credentials
endpoint).
Note
It is assumed that the temporary table credentials are for READ_WRITE
operation.
For a table stored in a S3 bucket, loadTable
sets the following Hadoop properties:
Hadoop Property | Value |
---|---|
fs.s3a.access.key | accessKeyId of the AwsCredentials |
fs.s3a.secret.key | secretAccessKey of the AwsCredentials |
fs.s3a.session.token | sessionToken of the AwsCredentials |
fs.s3a.impl | org.apache.hadoop.fs.s3a.S3AFileSystem |
fs.s3a.path.style.access | true |
loadTable
creates a CatalogTable
(Spark SQL) with the following:
MANAGED
andEXTERNAL
tables are supportedlocationUri
based on Unity Catalog'sstorageLocation
In the end, loadTable
creates a V1Table
(Spark SQL) for the CatalogTable
.
List Namespaces¶
SupportsNamespaces
listNamespaces
is part of the SupportsNamespaces
(Spark SQL) abstraction.
listNamespaces
...FIXME
List Tables¶
TableCatalog
listTables
is part of the TableCatalog
(Spark SQL) abstraction.
listTables
...FIXME