Table
Use the Catalog API to retrieve, create, update, and delete tables.
Table Object{
"entityType": "dataset",
"id": "c9c11d32-0576-4200-5a5b-8c7229cb3d72",
"type": "PHYSICAL_DATASET",
"path": [
"Samples",
"samples.dremio.com",
"Dremio University",
"restaurant_reviews.parquet"
],
"createdAt": "2024-01-13T19:52:01.894Z",
"tag": "cb2905bb-39c0-497f-ae74-4c310d534f25",
"accelerationRefreshPolicy": {
"activePolicyType": "SCHEDULE",
"refreshPeriodMs": 3600000,
"gracePeriodMs": 10800000,
"refreshSchedule": "0 0 8 * * ?",
"method": "FULL",
"neverExpire": false,
"neverRefresh": false,
"sourceRefreshOnDataChanges": false
},
"isMetadataExpired": false,
"lastMetadataRefreshAt": "2024-01-31T09:50:01.012Z",
"format": {
"type": "Parquet",
"name": "restaurant_reviews.parquet",
"fullPath": [
"Samples",
"samples.dremio.com",
"Dremio University",
"restaurant_reviews.parquet"
],
"ctime": 0,
"isFolder": false,
"location": "/samples.dremio.com/Dremio University/restaurant_reviews.parquet",
"ignoreOtherFileFormats": false,
"autoCorrectCorruptDates": true
},
"accessControlList": {
"users": [
{
"id": "c590ed7f-b2b4-4e1f-ba7d-94173afdc9a3",
"permissions": [
"SELECT",
"ALTER"
]
},
{
"id": "30fca499-4abc-4469-7142-fc8dd29acac8",
"permissions": [
"SELECT",
"ALTER",
"MANAGE_GRANTS"
]
}
],
"roles": [
{
"id": "76a9884b-aea5-46d5-a73a-000edf23f390",
"permissions": [
"SELECT",
"ALTER"
]
}
]
},
"owner": {
"ownerId": "30fca499-4abc-4469-7142-fc8dd29acac8",
"ownerType": "USER"
},
"fields": [
{
"name": "_id",
"type": {
"name": "VARCHAR"
}
},
{
"name": "name",
"type": {
"name": "VARCHAR"
}
},
{
"name": "city",
"type": {
"name": "VARCHAR"
}
},
{
"name": "state",
"type": {
"name": "VARCHAR"
}
},
{
"name": "categories",
"type": {
"name": "LIST",
"subSchema": [
{
"type": {
"name": "VARCHAR"
}
}
]
}
},
{
"name": "review_count",
"type": {
"name": "BIGINT"
}
},
{
"name": "stars",
"type": {
"name": "DOUBLE"
}
},
{
"name": "attributes",
"type": {
"name": "STRUCT",
"subSchema": [
{
"name": "Parking",
"type": {
"name": "STRUCT",
"subSchema": [
{
"name": "garage",
"type": {
"name": "BOOLEAN"
}
},
{
"name": "street",
"type": {
"name": "BOOLEAN"
}
},
{
"name": "lot",
"type": {
"name": "BOOLEAN"
}
},
{
"name": "valet",
"type": {
"name": "BOOLEAN"
}
}
]
}
},
{
"name": "Accepts Credit Cards",
"type": {
"name": "BOOLEAN"
}
},
{
"name": "Wheelchair Accessible",
"type": {
"name": "BOOLEAN"
}
},
{
"name": "Price Range",
"type": {
"name": "BIGINT"
}
}
]
}
},
{
"name": "date",
"type": {
"name": "VARCHAR"
}
}
],
"approximateStatisticsAllowed": false
}
Table Attributes
entityType String
Type of catalog entity. For tables, the entityType is dataset.
Example: dataset
id String (UUID)
UUID of the table.
type String
Type of dataset. For tables, the type is PHYSICAL_DATASET.
path Array of String
Path to the table within Dremio, expressed as an array. The path lists each level of hierarchy in order, from outer to inner: source first, then folders and subfolders, then the table itself as the last item in the array.
Example:
[
"Samples",
"samples.dremio.com",
"Dremio University",
"restaurant_reviews.parquet"
]
createdAt String
Timestamp when the table was created.
tag String (UUID)
UUID of the version of the table. Dremio changes the tag whenever the table changes and uses the tag value to ensure that PUT requests apply to the most recent version of the table.
accelerationRefreshPolicy Object
Attributes that define the acceleration refresh policy for the table.
isMetadataExpired Boolean
- If true, the metadata of the table needs to be refreshed. To refresh it, run the ALTER TABLE command using the REFRESH METADATA clause. See ALTER TABLE.
- If false, the metadata can still be used for planning queries against the table.
- If NULL, metadata has never been collected for the table.
lastMetadataRefreshAt String
Timestamp when the table metadata was last refreshed. If NULL, the metadata has never been refreshed.
format Object
Table format attributes.
accessControlList Object
Information about users and roles with privileges on the table and the specific privileges each user or role has. May include a users array, a roles array, or both, depending on the configured access and privileges. The accessControlList object is empty if table-specific privileges are not set. See Privileges for more information.
owner Object
Information about the table's owner.
fields Array of Object
Attributes that represent the table schema.
approximateStatisticsAllowed Boolean
If true, COUNT DISTINCT queries run on the table will return approximate results. Otherwise, false.
Attributes of the accelerationRefreshPolicy Object
activePolicyType String
Option to set the policy for refreshing Reflections that are defined on the source. For this option to take effect, the neverRefresh parameter must be set to false.
The possible values are:
NEVER: The Reflections are never refreshed.PERIOD: Default. The Reflections are refreshed at the end of every period that is defined by refreshPeriodMs.SCHEDULE: The Reflections are refreshed according to the schedule that is set by refreshSchedule.REFRESH_ON_DATA_CHANGES: Reflections automatically refresh for underlying tables that are in Iceberg format when new snapshots are created after an update. If the Reflection refresh job finds no changes, then no data is updated. Reflections that are automatically updated based on Iceberg source table changes also update according to the source-level policy as the minimum refresh frequency.
refreshPeriodMs Integer
Refresh period for the data in all Reflections for the table, in milliseconds.
Example: 3600000
refreshSchedule String
A cron expression that sets the schedule, in UTC time, according to which the Reflections that are defined on the source are refreshed.
Cron expressions consist of six fields that specify when a job should run:
Second Minute Hour Day-of-Month Month Day-of-Week
0 0-59 0-23 1-31 1-12 1-7 or SUN-SAT
The Second field is always set to 0 and cannot be modified.
Cron expressions support several special characters:
*(asterisk) – Matches all values in that field- Example:
*in the Month field means "every month"
- Example:
?(question mark) – Wildcard for day fields (use in either Day-of-Month OR Day-of-Week, but not both)- Equivalent to "any day"
,(comma) – Specifies multiple values- Example:
MON,WED,FRImeans "Monday, Wednesday, and Friday"
- Example:
-(hyphen) – Defines a range of values- Example:
2-6in Day-of-Week means "Monday through Friday"
- Example:
Examples:
0 0 0 * * ?: Every day at midnight UTC0 45 15 * * 1,4,7: Sundays, Wednesdays, and Saturdays at 3:45 PM UTC0 15 7 ? * 2-6: Monday through Friday at 7:15 AM UTC0 0 */6 * * ?: Every 6 hours0 30 9 1 * ?: First day of every month at 9:30 AM UTC
Tips:
- Remember that schedules run in UTC, so convert your local time accordingly
- Use
?in Day-of-Month when specifying Day-of-Week, and vice versa - Day-of-Week uses 1=Sunday through 7=Saturday (or SUN-SAT)
gracePeriodMs Integer
Maximum age allowed for Reflection data used to accelerate queries, in milliseconds.
Example: 10800000
method String
Method used for refreshing the data in Reflections.
-
AUTO: For tables that are in the Apache Iceberg format; Parquet datasets in filesystems; or Parquet datasets, Avro datasets, or non-transactional ORC datasets in AWS Glue. In this case, the method used depends on this algorithm:- The initial refresh of a Reflection is always a full refresh.
- If the Reflection is created from a view that uses nested group-bys, joins, unions, or window functions, then a full refresh is performed.
- If the changes to the base table are only appends, then an incremental refresh based on table snapshots is performed.
- If the changes to the base table include non-append operations, then a partition-based incremental refresh is attempted.
- If the partitions of the base table and the partitions of the Reflection are not compatible, or if either the base table or the Reflection is not partitioned, then a full refresh is performed.
-
FULL: A full refresh is performed at each refresh interval. -
INCREMENTAL: An incremental refresh is performed at each refresh interval.
See Refreshing Reflections for more information.
Example: FULL
refreshField String
For the INCREMENTAL refresh method, the field to refresh for the table. Used only if method is INCREMENTAL. This parameter applies only to tables that are not in the Apache Iceberg format.
Example: business_id
neverExpire Boolean
If the Reflection will never expire, true. Otherwise, false.
neverRefresh Boolean
If the Reflection will never refresh, true. Otherwise, false.
sourceRefreshOnDataChanges Boolean
If the table's source is configured so that Reflections on tables in Iceberg format in the source will refresh when new snapshots are created after an update, true. Otherwise, false.
Attributes of the format Object
type String
Type of data in the table.
Valid Values: Delta, Excel, Iceberg, JSON, Parquet, Text, Unknown, XLS
name String
Table name. Dremio automatically duplicates the name of the origin file or folder to populate this value. The name of the origin file or folder cannot include the following special characters: /, :, [, or ].
Example: restaurant_reviews.parquet
fullPath Array of String
Path to the table within Dremio, expressed as an array. The path lists each level of hierarchy in order, from outer to inner: source first, then folders and subfolders, then the table itself as the last item in the array.
Example:
[
"Samples",
"samples.dremio.com",
"Dremio University",
"restaurant_reviews.parquet"
]
ctime Integer
Not used. Has the value 0.
isFolder Boolean
If true, the table was created from a folder. If false, the table was created from a file.
location String
Location where the table's metadata is stored within a Dremio source, expressed as a string.
Example: /samples.dremio.com/Dremio University/restaurant_reviews.parquet
ignoreOtherFileFormats Boolean
If true, Dremio ignores all non-Parquet files in the related folder structure, and the promoted table works as if only Parquet files are in the folder structure. Otherwise, false. Included only for Parquet folders.
metaStoreType String
Not used. Has the value HDFS.
parquetDataFormat Object
Information about data format for Parquet tables.
dataFormatTypeList Array of String
List of data format types in the table. Included only for Iceberg tables, and PARQUET is the only valid value.
Example:
[
"PARQUET"
]
sheetName String
For tables created from files with multiple sheets, name of the sheet used to create the table.
Example: location_1
extractHeader Boolean
For tables created from files, true if Dremio extracted the table's column names from the first line of the file. Otherwise, false.
hasMergedCells Boolean
For tables created from files, true if Dremio expanded merged cells in the file when creating the table. Otherwise, false.
fieldDelimiter String
Character used to indicate separate fields in the table. May be , for a comma (default), \t for a tab, | for a pipe, or a custom character.
quote String
Character used for quotes in the table. May be \" for a double quote (default), ' for a single quote, or a custom character.
comment String
Character used to indicate comments in the table. May be # for a number sign (default) or a custom character.
escape String
Character used to indicate an escape in the table. May be \" for a double quote (default), ` for a back quote, \\ for a backward slash, or a custom character.
lineDelimiter String
Character used to indicate separate lines in the table. May be \r\n for a carriage return plus new line (default), \n for a new line, or a custom character.
skipFirstLine Boolean
If Dremio skipped the first line in the file or folder when creating the table, true. Otherwise, false.
autoGenerateColumnNames Boolean
If Dremio used the existing column names in the file or folder for the table columns, true. Otherwise, false.
trimHeader Boolean
If Dremio trimmed column names to a specific number of characters when creating the table, true. Otherwise, false.
autoCorrectCorruptDates Boolean
If Dremio automatically corrects corrupted date fields in the table, true. Otherwise, false.
Attributes of the accessControlList Object
users Array of Object
Information about the users that have been granted privileges on the table and the privileges each user has.
Example:
[
{
"id": "c590ed7f-b2b4-4e1f-ba7d-94173afdc9a3",
"permissions": [
"SELECT",
"ALTER"
]
},
{
"id": "30fca499-4abc-4469-7142-fc8dd29acac8",
"permissions": [
"SELECT",
"ALTER",
"MANAGE_GRANTS"
]
}
]
roles Array of Object
Information about the roles that have been granted privileges on the table and the privileges each role has.
Example:
[
{
"id": "76a9884b-aea5-46d5-a73a-000edf23f390",
"permissions": [
"SELECT",
"ALTER"
]
}
]
Attributes of Objects in the users and roles Arrays
id String (UUID)
UUID of the role or user.
permissions Array of String
The privileges that the role or user has on the table. See Table Scope in Open Catalog Privileges or Source Privileges.
Example:
[
"SELECT",
"ALTER"
]
Attributes of the owner Object
ownerId String (UUID)
UUID of the owner.
ownerType String
Type of owner for the table. Must be USER or ROLE.
Example: USER