System Tables
HeavyDB system tables provide a way to access information about database objects, database object permissions, and system resource (storage, CPU, and GPU memory) utilization. These system tables can be found in the information_schema
database that is available by default on server startup. You can query system tables in the same way as regular tables, and you can use the SHOW CREATE TABLE
command to view the table schemas.
Users
The users
system table provides information about all database users and contains the following columns:
Column Name
Column Type
Description
user_id
INTEGER
ID of database user.
user_name
TEXT
Username of database user.
is_super_user
BOOLEAN
Indicates whether or not the database user is a super user.
default_db_id
INTEGER
ID of user’s default database on login.
default_db_name
TEXT
Name of user’s default database on login.
can_login
BOOLEAN
Indicates whether or not the database user account is activated and can log in.
Databases
The databases
system table provides information about all created databases on the server and contains the following columns:
Column Name
Column Type
Description
database_id
INTEGER
ID of database.
database_name
TEXT
Name of database.
owner_id
INTEGER
User ID of database owner.
owner_user_name
TEXT
Username of database owner.
Permissions
The permissions
system table provides information about all user/role permissions for all database objects and contains the following columns:
Column Name
Column Type
Description
role_name
TEXT
Username or role name associated with permission.
is_user_role
BOOLEAN
Boolean indicating whether or not the role_name
column identifies a user or a role.
database_id
INTEGER
ID of database that contains the database object for which permission was granted.
database_name
TEXT
Name of database that contains the database object on which permission was granted.
object_name
TEXT
Name of database object on which permission was granted.
object_id
INTEGER
ID of database object on which permission was granted.
object_owner_id
INTEGER
User id of the owner of the database object on which permission was granted.
object_owner_user_name
TEXT
Username of the owner of the database object on which permission was granted.
object_permission_type
TEXT
Type of database object on which permission was granted.
object_permissions
TEXT[]
List of permissions that were granted on database object.
Roles
The roles
system table lists all created database roles and contains the following columns:
Column Name
Column Type
Description
role_name
TEXT
Role name.
Tables
The tables
system table provides information about all database tables and contains the following columns:
Column Name
Column Type
Description
database_id
INTEGER
ID of database that contains the table.
database_name
TEXT
Name of database that contains the table.
table_id
INTEGER
Table ID.
table_name
TEXT
Table name.
owner_id
INTEGER
User ID of table owner.
owner_user_name
TEXT
Username of table owner.
column_count
INTEGER
Number of table columns. Note that internal system columns are included in this count.
table_type
TEXT
Type of tables. Possible values are DEFAULT
, VIEW
, TEMPORARY
, and FOREIGN
.
view_sql
TEXT
For views, SQL statement used in the view.
max_fragment_size
INTEGER
Number of rows per fragment used by the table.
max_chunk_size
BIGINT
Maximum size (in bytes) of table chunks.
fragment_page_size
INTEGER
Size (in bytes) of table data pages.
max_rows
BIGINT
Maximum number of rows allowed by table.
max_rollback_epochs
INTEGER
Maximum number of epochs a table can be rolled back to.
shard_count
INTEGER
Number of shards that exists for table.
ddl_statement
TEXT
CREATE TABLE
DDL statement for table.
Dashboards
The dashboards
system table provides information about created dashboards (enterprise edition only) and contains the following columns:
Column Name
Column Type
Description
database_id
INTEGER
ID of database that contains the dashboard.
database_name
TEXT
Name of database that contains the dashboard.
dashboard_id
INTEGER
Dashboard ID.
dashboard_name
TEXT
Dashboard name.
owner_id
INTEGER
User ID of dashboard owner.
owner_user_name
TEXT
Username of dashboard owner.
last_updated_at
TIMESTAMP
Timestamp of last dashboard update.
data_sources
TEXT[]
List to data sources/tables used by dashboard.
Role Assignments
The role_assignments
system table provides information about database roles that have been assigned to users and contains the following columns:
Column Name
Column Type
Description
role_name
TEXT
Name of assigned role.
user_name
TEXT
Username of user that was assigned the role.
Memory Summary
The memory_summary
system table provides high level information about utilized memory across CPU and GPU devices and contains the following columns:
Column Name
Column Type
Description
node
TEXT
Node from which memory information is fetched.
device_id
INTEGER
Device ID.
device_type
TEXT
Type of device. Possible values are CPU
and GPU
.
max_page_count
BIGINT
Maximum number of memory pages that can be allocated on the device.
page_size
BIGINT
Size (in bytes) of a memory page on the device.
allocated_page_count
BIGINT
Number of allocated memory pages on the device.
used_page_count
BIGINT
Number of used allocated memory pages on the device.
free_page_count
BIGINT
Number of free allocated memory pages on the device.
Memory Details
The memory_details
system table provides detailed information about allocated memory segments across CPU and GPU devices and contains the following columns:
Column Name
Column Type
Description
node
TEXT
Node from which memory information is fetched.
database_id
INTEGER
ID of database that contains the table that memory was allocated for.
database_name
TEXT
Name of database that contains the table that memory was allocated for.
table_id
INTEGER
ID of table that memory was allocated for.
table_name
TEXT
Name of table that memory was allocated for.
column_id
INTEGER
ID of column that memory was allocated for.
column_name
TEXT
Name of column that memory was allocated for.
chunk_key
INTEGER[]
ID of cached table chunk.
device_id
INTEGER
Device ID.
device_type
TEXT
Type of device. Possible values are CPU
and GPU
.
memory_status
TEXT
Memory segment use status. Possible values are FREE
and USED
.
page_count
BIGINT
Number pages in the segment.
page_size
BIGINT
Size (in bytes) of a memory page on the device.
slab_id
INTEGER
ID of slab containing memory segment.
start_page
BIGINT
Page number of the first memory page in the segment.
last_touched_epoch
BIGINT
Epoch at which the segment was last accessed.
Storage Details
The storage_details
system table provides detailed information about utilized storage per table and contains the following columns:
Column Name
Column Type
Description
node
TEXT
Node from which storage information is fetched.
database_id
INTEGER
ID of database that contains the table.
database_name
TEXT
Name of database that contains the table.
table_id
INTEGER
Table ID.
table_name
TEXT
Table Name.
epoch
INTEGER
Current table epoch.
epoch_floor
INTEGER
Minimum epoch table can be rolled back to.
fragment_count
INTEGER
Number of table fragments.
shard_id
INTEGER
Table shard ID. This value is only set for sharded tables.
data_file_count
INTEGER
Number of data files created for table.
metadata_file_count
INTEGER
Number of metadata files created for table.
total_data_file_size
BIGINT
Total size (in bytes) of data files.
total_data_page_count
BIGINT
Total number of pages across all data files.
total_free_data_page_count
BIGINT
Total number of free pages across all data files.
total_metadata_file_size
BIGINT
Total size (in bytes) of metadata files.
total_metadata_page_count
BIGINT
Total number of pages across all metadata files.
total_free_metadata_page_count
BIGINT
Total number of free pages across all metadata files.
total_dictionary_data_file_size
BIGINT
Total size (in bytes) of string dictionary files.
Log-Based System Tables
Log-based system tables are considered beta functionality in Release 6.1.0 and are disabled by default.
Request Logs
The request_logs
system table provides information about HeavyDB Thrift API requests and contains the following columns:
Column Name
Column Type
Description
log_timestamp
TIMESTAMP
Timestamp of log entry.
severity
TEXT
Severity level of log entry. Possible values are F (fatal), E (error), W (warning), and I (info).
process_id
INTEGER
Process ID of the HeavyDB instance that generated the log entry.
query_id
INTEGER
ID associated with a SQL query. A value of 0 indicates that either the log entry is unrelated to a SQL query or no query ID has been set for the log entry.
thread_id
INTEGER
ID of thread that generated the log entry.
file_location
TEXT
Source file name and line number where the log entry was generated.
api_name
TEXT
Name of Thrift API that the request was sent to.
request_duration_ms
BIGINT
Thrift API request duration in milliseconds.
database_name
TEXT
Request session database name.
user_name
TEXT
Request session username.
public_session_id
TEXT
Request session ID.
query_string
TEXT
Query string for SQL query requests.
client
TEXT
Protocol and IP address of client making the request.
dashboard_id
INTEGER
Dashboard ID for SQL query requests coming from Immerse dashboards.
dashboard_name
TEXT
Dashboard name for SQL query requests coming from Immerse dashboards.
chart_id
INTEGER
Chart ID for SQL query requests coming from Immerse dashboards.
execution_time_ms
BIGINT
Execution time in milliseconds for SQL query requests.
total_time_ms
BIGINT
Total execution time (execution_time_ms + serialization time) in milliseconds for SQL query requests.
Server Logs
The server_logs
system table provides HeavyDB server logs in tabular form and contains the following columns:
Column Name
Column Type
Description
node
TEXT
Node containing logs.
log_timestamp
TIMESTAMP
Timestamp of log entry.
severity
TEXT
Severity level of log entry. Possible values are F (fatal), E (error), W (warning), and I (info).
process_id
INTEGER
Process ID of the HeavyDB instance that generated the log entry.
query_id
INTEGER
ID associated with a SQL query. A value of 0 indicates that either the log entry is unrelated to a SQL query or no query ID has been set for the log entry.
thread_id
INTEGER
ID of thread that generated the log entry.
file_location
TEXT
Source file name and line number where the log entry was generated.
message
TEXT
Log message.
Web Server Logs
The web_server_logs
system table provides HEAVY.AI Web Server logs in tabular form and contains the following columns (Enterprise Edition only):
Column Name
Column Type
Description
log_timestamp
TIMESTAMP
Timestamp of log entry.
severity
TEXT
Severity level of log entry. Possible values are fatal, error, warning, and info.
message
TEXT
Log message.
Web Server Access Logs
The web_server_access_logs
system table provides information about requests made to the HEAVY.AI Web Server. The table contains the following columns:
Column Name
Column Type
Description
ip_address
TEXT
IP address of client making the web server request.
log_timestamp
TIMESTAMP
Timestamp of log entry.
http_method
TEXT
HTTP request method.
endpoint
TEXT
Web server request endpoint.
http_status
SMALLINT
HTTP response status code.
response_size
BIGINT
Response payload size in bytes.
Refreshing Logs System Tables
The logs system tables must be refreshed manually to view new log entries. You can run the REFRESH FOREIGN TABLES
SQL command (for example, REFRESH FOREIGN TABLES server_logs, request_logs;
), or click the Refresh Data Now button on the table’s Data Manager page in Heavy Immerse.
Request Logs and Monitoring System Dashboard
The Request Logs and Monitoring system dashboard is built on the log-based system tables and provides visualization of request counts, performance, and errors over time, along with the server logs.
System Dashboards
Preconfigured system dashboards are built on various system tables. Specifically, two dashboards named System Resources and User Roles and Permissions are available by default. The Request Logs and Monitoring system dashboard is considered beta functionality and disabled by default. These dashboards can be found in the information_schema
database, along with the system tables that they use.
Access to system dashboards is controlled using Heavy Immerse privileges; only users with Admin privileges or users/roles with access to the information_schema
database can access the system dashboards.
Cross-linking must be enabled to allow cross-filtering across charts that use different system tables. Enable cross-linking by adding "ui/enable_crosslink_panel": true
to the feature_flags
section of the servers.json file.
Last updated