You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/snippets/cloud/integrations/databricks.mdx
-87Lines changed: 0 additions & 87 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,93 +38,6 @@ Then, select your authentication method:
38
38
long-lived personal access tokens.
39
39
</Info>
40
40
41
-
### Storage Access
42
-
43
-
Elementary requires access to the table history in order to enable automated monitors such as volume and freshness monitors.
44
-
You can configure this in one of the following ways:
45
-
46
-
#### Option 1: Fetch history using `DESCRIBE HISTORY`
47
-
48
-
Elementary can fetch the table history by running `DESCRIBE HISTORY` queries on your Databricks warehouse.
49
-
In the Elementary UI, choose **None** under **Storage access method**.
50
-
51
-
This requires `SELECT` access on the relevant tables, as described in the permissions and security section above.
52
-
53
-
#### Option 2: Credentials vending
54
-
55
-
Elementary can access the storage using temporary credentials issued by Databricks through [credential vending](https://docs.databricks.com/aws/en/external-access/credential-vending).
56
-
In the Elementary UI, choose **Credentials vending** under **Storage access method**.
57
-
58
-
This requires granting `EXTERNAL USE SCHEMA` on the relevant schemas.
59
-
60
-
When using this option, Elementary does not read the table data itself. It only reads the Delta transaction log, which contains metadata about the transactions.
61
-
62
-
#### Option 3: Direct storage access
63
-
64
-
Elementary can access the storage directly using credentials that you configure.
65
-
In the Elementary UI, choose **Direct storage access** under **Storage access method**.
66
-
67
-
When using this option, Elementary does not read the table data itself. It only reads the Delta transaction log, which contains metadata about the transactions.
68
-
69
-
For S3-backed Databricks storage, you can configure access in one of the following ways:
Copy file name to clipboardExpand all lines: docs/snippets/dwh/databricks/databricks_permissions_and_security.mdx
+109-9Lines changed: 109 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,12 @@ Elementary cloud requires the following permissions:
7
7
-**Elementary schema read-only access** - This is required by Elementary to read dbt metadata & test results collected by the Elementary dbt package as a part of your pipeline runs.
8
8
This permission does not give access to your data.
9
9
10
-
-**Information schema metadata access** - Elementary needs access to the `system.information_schema.tables` and `system.information_schema.columns`system tables, to get metadata
11
-
about existing tables and columns in your data warehouse. This is used to power features such as column-level lineage and automated volume & freshness monitors.
10
+
-**System metadata access** - Elementary needs access to the `system.information_schema.tables`, `system.information_schema.columns`, `system.query.history` and `system.access.table_lineage` system tables.
11
+
This access is used to get metadata about existing tables and columns, and to power features such as column-level lineage and automated volume & freshness monitors.
12
12
13
-
-**Read access needed for some metadata operations (optional)** - In order to enable Elementary's automated volume & freshness monitors, Elementary needs access to query history, as well
14
-
as Databricks APIs to obtain table statistics.
15
-
These operations require granting SELECT access on your tables. This is a Databricks limitation - Elementary **never** reads any data from your tables, only metadata. However, there isn't
16
-
today any table-level metadata-only permission available in Databricks, so SELECT is required.
13
+
-**Billing metadata access** - Elementary needs access to the `system.billing.usage` and `system.billing.list_prices`. This allows Elementary to monitor the warehouse cost and alert on it.
14
+
15
+
-**Storage read-only access** - See details below.
17
16
18
17
19
18
#### Grants SQL template
@@ -25,13 +24,114 @@ Please use the following SQL statements to grant the permissions specified above
25
24
GRANT USE CATALOG ON CATALOG <catalog> TO `<service_principal_app_id>`;
26
25
GRANT USE SCHEMA, SELECTON SCHEMA <elementary_schema> TO `<service_principal_app_id>`;
27
26
28
-
-- Grant access to information schema tables
27
+
-- Grant access to system tables
29
28
GRANT USE CATALOG ON CATALOG system TO `<service_principal_app_id>`;
29
+
30
30
GRANT USE SCHEMA ON SCHEMA system.information_schema TO `<service_principal_app_id>`;
31
+
GRANT USE SCHEMA ON SCHEMA system.query TO `<service_principal_app_id>`;
32
+
GRANT USE SCHEMA ON SCHEMA system.access TO `<service_principal_app_id>`;
31
33
GRANTSELECTON TABLE system.information_schema.tables TO `<service_principal_app_id>`;
32
34
GRANTSELECTON TABLE system.information_schema.columns TO `<service_principal_app_id>`;
35
+
GRANTSELECTON TABLE system.query.history TO `<service_principal_app_id>`;
36
+
GRANTSELECTON TABLE system.access.table_lineage TO `<service_principal_app_id>`;
37
+
38
+
-- Grant access to billing metadata
39
+
GRANT USE SCHEMA ON SCHEMA system.billing TO `<service_principal_app_id>`;
40
+
GRANTSELECTON TABLE system.billing.usage TO `<service_principal_app_id>`;
41
+
GRANTSELECTON TABLE system.billing.list_prices TO `<service_principal_app_id>`;
42
+
```
43
+
44
+
### Storage Access
45
+
46
+
Elementary requires access to the table history in order to enable automated monitors such as volume and freshness monitors.
47
+
You can configure this in one of the following ways:
48
+
49
+
#### Option 1: Fetch history using `DESCRIBE HISTORY`
50
+
51
+
Elementary can fetch the table history by running `DESCRIBE HISTORY` queries on your Databricks warehouse.
52
+
In the Elementary UI, choose **None** under **Storage access method**.
33
53
34
-
-- Grant select on tables for history & statistics access
35
-
-- (Optional, required for automated volume & freshness tests - see explanation above. You can also limit to specific schemas used by dbt instead of granting on the full catalog)
54
+
This require granting SELECT access on your tables. This is a Databricks limitation - Elementary **never** reads any data from your tables, only metadata. However, there isn't
55
+
today any table-level metadata-only permission available in Databricks, so SELECT is required.
56
+
57
+
To grant the access, use the following SQL statements:
58
+
59
+
```sql
36
60
GRANT USE CATALOG, USE SCHEMA, SELECTON catalog <catalog> to `<service_principal_app_id>`;
37
61
```
62
+
63
+
64
+
#### Option 2: Credentials vending
65
+
66
+
Elementary can access the storage using temporary credentials issued by Databricks through [credential vending](https://docs.databricks.com/aws/en/external-access/credential-vending).
67
+
In the Elementary UI, choose **Credentials vending** under **Storage access method**.
68
+
69
+
This requires granting `EXTERNAL USE SCHEMA` on the relevant schemas.
70
+
71
+
When using this option, Elementary does not read the table data itself. It only reads the Delta transaction log, which contains metadata about the transactions.
72
+
73
+
#### Option 3: Direct storage access
74
+
75
+
Elementary can access the storage directly using credentials that you configure.
76
+
In the Elementary UI, choose **Direct storage access** under **Storage access method**.
77
+
78
+
When using this option, Elementary does not read the table data itself. It only reads the Delta transaction log, which contains metadata about the transactions.
79
+
80
+
For S3-backed Databricks storage, you can configure access in one of the following ways:
0 commit comments