Manage the Semarchy xDM native app

This page provides SQL commands for setting up, monitoring, and maintaining the xDM native app on Snowflake.

Snowflake support in xDM is a preview feature. It is not suitable for production environments. Use this feature for testing and evaluation purposes only.

Initial setup and configuration

  • Install the application from the Snowflake Marketplace:

CREATE APPLICATION <native_app_name> FROM APPLICATION PACKAGE <app_package_name>;
  • Verify installation by checking the service status:

CALL <native_app_name>.xdm_public.service_status();
Both containers (server and repository) should show READY status.
  • Configure storage settings:

CALL <native_app_name>.xdm_public.reload_app(
    <volume_size>,
    <volume_iops>,
    <volume_throughput>
);

Below is a detailed description of each parameter:

Parameter

Required

Description

<volume_size>

No

The storage volume size (in GB) used by the repository container (default: 5). For more information, see the official Snowflake documentation.

<volume_iops>

No

The maximum input/output operations per second (IOPS) supported for the repository storage (default: 3000). For more information, see the official Snowflake documentation.

<volume_throughput>

No

The peak throughput (MiB/s) supported for the repository storage (default: 125). For more information, see the official Snowflake documentation.

Daily operations and maintenance

Application monitoring

  • Check current status to verify the application is running correctly:

CALL <native_app_name>.xdm_public.service_status();
  • View the xDM container logs to monitor operations or troubleshoot issues:

CALL <native_app_name>.xdm_public.xdm_server_logs([<number_of_lines>]);
  • View the repository container logs for database-related activities:

CALL <native_app_name>.xdm_public.xdm_repo_logs([<number_of_lines>]);

Backup and recovery

  • Create a named repository database backup to prevent data loss:

CALL <native_app_name>.xdm_public.xdm_repo_backup(<backup_name>);
  • Restore from a backup if needed:

CALL <native_app_name>.xdm_public.xdm_repo_restore(<backup_name>);
Restoring a backup will result in service interruption. This process suspends the container, restores the volume, and then resumes the container.

Application lifecycle management

  • Temporarily pause the application to conserve resources:

CALL <native_app_name>.xdm_public.suspend_app();
  • Resume a paused application:

CALL <native_app_name>.xdm_public.resume_app();
Resuming the application automatically upgrades xDM to the latest image version.
  • Permanently stop the xDM native app, and destroy all containers and volumes:

CALL <native_app_name>.xdm_public.stop_app();
This operation permanently deletes all repository data and cannot be undone.

Application upgrade

  • Create a backup before upgrading:

CALL <native_app_name>.xdm_public.xdm_repo_backup('pre_upgrade_' || TO_VARCHAR(CURRENT_DATE()));
  • Upgrade the native app containers:

CALL <native_app_name>.xdm_public.reload_app(
    [<volume_size>,]
    [<volume_iops>,]
    [<volume_throughput>]);

Below is a detailed description of each parameter:

Parameter

Required

Description

<volume_size>

No

The storage volume size (in GB) used by the repository container (default: 5). For more information, see the official Snowflake documentation.

<volume_iops>

No

The maximum input/output operations per second (IOPS) supported for the repository storage (default: 3000). For more information, see the official Snowflake documentation.

<volume_throughput>

No

The peak throughput (MiB/s) supported for the repository storage (default: 125). For more information, see the official Snowflake documentation.

This operation automatically upgrades xDM to the latest image version.