Files
sql-server-samples/samples/features/sql-big-data-cluster/app-deploy/SSIS/README.md
T

3.6 KiB

About

This is a sample SQL Server Integration Services (SSIS) app, which shows how to run a SSIS package as a scheduled service. This sample creates an app that is called each minute that executes an SSIS package. The SSIS package creates a backup of the DWConfiguration database on the master SQL instance to disk. Also, the package cleans any backup files for the DWConfiguration database that are older than one hour, making sure that maximum 60 backup files will be on disk at any moment.

Refer to installing mssqlctl document on setting up the mssqlctl and connecting to a Aris cluster.

Optional: to see the SSIS package itself, install Visual Studio 2017 if you don't have it already. After that download and install SSDT.

Install SSMS if it is not already installed.

What is in the spec.yaml file

Apart from regular settings, the spec.yaml file in this example specifies options and schedule:

Setting Description
options Specifies any command line parameters passed to the execution of the SSIS package
schedule Specifies when the job should run. This follows cron expressions. A value of '*/1 * * * *' means the job runs every minute.

Pre-requisites

SQL Server big data cluster - CTP 2.3 or later Clone or download this sample on your computer to a folder called mleap (note if you have downloaded it to a different folder then you'll have to modify the folder location appropriately in the information below).

Running the sample

Connecting to SQL Server big data cluster

Log in to the SQL Server big data cluster using the command below using the IP address of the endpoint-service-proxy in your cluster. If you are not familiar with mssqltctl you can refer to the documentation and then return to this sample.

mssqlctl login -e https://<ip-address-of-endpoint-service-proxy>:30777 -u <user-name> -p <password>

Changing the spec.yaml

Replace [SA_PASSWORD] in the spec.yaml file with the password for SQL user sa.

Deploying the application

# drop back-up-db.dtsx and spec.yaml in a folder, e.g. name back-up-db
# edit back-up-db.dtsx, replace the value after "Data Source" in the connection string to "service-master-pool;" if not alread. Then deploy it by:
mssqlctl app create --spec ./back-up-db

Testing the deployment

mssqlctl app list

Once the app is listed as Ready the job should run within a minute. You can check if the backup is created by running:

kubectl -n [your namespace] exec -it mssql-master-pool-0 -c mssql-server -- /bin/bash -c "ls /var/opt/mssql/data/*.DWConfigbak"

You should see a backup being created for every run of the job, with a maximum of 60 backups since the SSIS package cleans up backups older than one hour. You can use any of the .DWConfigbak files to restore the database.

Clean up

# delete app
mssqlctl app delete --name back-up-db --version v1
# delete backup files
kubectl -n [your namespace] exec -it mssql-master-pool-0 -c mssql-server -- /bin/bash -c "rm /var/opt/mssql/data/*.DWConfigbak"