Delta Lake¶
Delta Lake is an open table format that extends Parquet data files with a file-based transaction log. This provides ACID transactions and scalable metadata handling for your data lakes.
The Denodo Lakehouse Accelerator includes a predefined catalog named delta connected to the Embedded Hive Metastore, enabling you to access Delta Lake tables immediately.
Here are the default properties for the delta catalog:
connector.name=delta
# connection to the Embedded Hive Metastore
hive.metastore.uri=thrift://hive-metastore:9083
hive.metastore-timeout=20s
hive.config.resources=/opt/presto-server/etc/catalog/core-site.xml
hive.parquet-batch-read-optimization-enabled=true
hive.pushdown-filter-enabled=true
To query Delta Lake tables you have to manually register those tables in the Denodo Lakehouse Accelerator Metastore through the
CREATE TABLE sentence. Since the schema and the data file list are located in the Delta Log at the table’s location,
you need to provide a dummy column as the schema of the Delta Lake table, to avoid the no columns error in the Metastore:
CREATE TABLE delta.default.orders (
dummy bigint
) WITH (
external_location = 'abfs://<file_system>@<account_name>.dfs.core.windows.net/<path>/<file_name>',
format = 'PARQUET'
);
The WITH clause of the CREATE TABLE can also be used to set other properties on the table. See Delta Lake Tables Properties.
Once the Delta Lake table is registered, you can use the embedded data source in Denodo to create a base view on top of
the table using the From MPP Catalogs tab.
Explore Delta Lake tables¶
Query Delta Lakes tables directly¶
Another option is to query the table directly using the table location as the table name without registering it in the Metastore.
SELECT * FROM
delta."$path$"."abfs://<file_system>@<account_name>.dfs.core.windows.net/<path>/<file_name>";
Features¶
The Denodo Lakehouse Accelerator data source provides the following features when treating with Delta Lake tables:
Create base views over existing Hive tables managed by the Embedded or External Metastore via the
From MPP Catalogstab of the Denodo Lakehouse Accelerator data source.Querying
Delta protocol version (3, 7) is supported starting with Denodo Lakehouse Accelerator 20241007
Delta Lake Table Features¶
The following table lists the Delta Lake table features supported by Lakehouse Accelerator:
Feature |
Documentation |
|---|---|
Column mapping |
|
Deletion vectors |
|
TimestampNTZ |
|
Liquid clustering |
|
Type widening |
|
Variant |
|
V2 Checkpoints |
Limitations¶
When working with Delta Lake tables through the Denodo Lakehouse Accelerator, be aware of the following current limitations:
No graphical exploration and view creation via the
From object storagetab of the Denodo Lakehouse Accelerator data source.No bulk data load
No full cache mode
No remote tables
No write operations
Supported Operation by Metastore Type¶
The following table summarizes the Delta Lake operations currently supported by the Denodo Lakehouse Accelerator for various Metastore types:
Operation |
Hive Metastore |
AWS Glue Data Catalog |
Unity Catalog (*) |
|---|---|---|---|
Read |
Yes |
Yes |
Yes |
Create/Insert |
No |
No |
No |
Update |
No |
No |
No |
Merge |
No |
No |
No |
Delete |
No |
No |
No |
(*) You can read both managed and external Databricks Delta Lake tables with the Denodo Lakehouse Accelerator connected to the Unity Catalog, by enabling Iceberg reads via Uniform in Databricks.
S3 Endpoint Configuration¶
To ensure high-performance data processing, it is strongly recommended to explicitly configure the S3 regional endpoint if your bucket is located outside the default us-east-1 region.
Otherwise, omitting the regional endpoint introduces significant latency when accessing buckets outside the default us-east-1 region. This is both because the bucket has to travel farther physically (e.g., us-west-2 to us-east-1) and because the first time the bucket is accessed, the SDK must make an initial call to AWS to determine the correct bucket region.
When configuring the delta catalog in your values.yaml file, you must set the appropriate endpoint property for the delta predefined catalog (delta.s3Endpoint), or the generic property: hive.s3.endpoint, when defining new delta catalogs under the catalog section.
Use the format: s3.<region>.amazonaws.com (e.g., s3.eu-west-1.amazonaws.com). For a full list of regional endpoints, refer to the AWS S3 Service Endpoints.
Predefined Delta Catalogs
For the predefined Delta catalog already enabled in your configuration, add the endpoint property directly under the delta connector block:
delta:
s3Endpoint: "s3.us-west-2.amazonaws.com"
New Custom Delta Catalogs
When defining additional delta catalogs under the catalog section, ensure you use the hive.s3.endpoint property:
catalog:
delta_custom: |-
connector.name=delta
hive.s3.endpoint=s3.ap-southeast-1.amazonaws.com
.
.
.