33set -o pipefail
44STARTUP_PATH=$( pwd)
55TMP_DIR_NAME=$( basename $0 )
6- USAGE_MESSAGE=" USAGE: $0 <CLUSTER_NAMESPACE> <SQL_MASTER_IP> <SQL_MASTER_SA_PASSWORD> <KNOX_IP> [<KNOX_PASSWORD>]"
6+ USAGE_MESSAGE=" USAGE: $0 <CLUSTER_NAMESPACE> <SQL_MASTER_IP> <SQL_MASTER_SA_PASSWORD> <KNOX_IP> [<KNOX_PASSWORD>] [--install-extra-samples] "
77ERROR_MESSAGE=" Bootstrap of the sample database failed. Output and error files are in directory [/tmp/$TMP_DIR_NAME ]."
88
99# Print usage if mandatory parameters are missing
@@ -19,6 +19,8 @@ SQL_MASTER_IP=$2
1919SQL_MASTER_SA_PASSWORD=$3
2020KNOX_IP=$4
2121KNOX_PASSWORD=$5
22+ AW_WWI_SAMPLES=$6
23+
2224# If Knox password is not supplied then default to SQL Master password
2325KNOX_PASSWORD=${KNOX_PASSWORD:= $SQL_MASTER_SA_PASSWORD }
2426
@@ -35,12 +37,41 @@ pushd "/tmp"
3537$DEBUG mkdir -p " $TMP_DIR_NAME "
3638$DEBUG cd " $TMP_DIR_NAME "
3739
38- echo Downloading sample database backup file...
39- $DEBUG curl -G " https://sqlchoice.blob.core.windows.net/sqlchoice/static/tpcxbb_1gb.bak" -o tpcxbb_1gb.bak
40+ if [ ! -f tpcxbb_1gb.bak ]
41+ then
42+ echo Downloading sample database backup file...
43+ $DEBUG curl -G " https://sqlchoice.blob.core.windows.net/sqlchoice/static/tpcxbb_1gb.bak" -o tpcxbb_1gb.bak
44+ fi
4045
4146echo Copying database backup file...
4247$DEBUG kubectl cp tpcxbb_1gb.bak mssql-master-pool-0:/var/opt/mssql/data -c mssql-server -n $CLUSTER_NAMESPACE || (echo $ERROR_MESSAGE && exit 1)
43- $DEBUG rm tpcxbb_1gb.bak
48+ # $DEBUG rm tpcxbb_1gb.bak
49+
50+ if [ $AW_WWI_SAMPLES == --install-extra-samples ]
51+ then
52+ for file in AdventureWorks2016_EXT.bak AdventureWorksDW2016_EXT.bak
53+ do
54+ if [ ! -f $file ]
55+ then
56+ echo Downloading $file sample database backup file...
57+ $DEBUG curl -L -G " https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/$file " -o $file
58+ fi
59+ echo Copying $file database backup file to SQL Master instance...
60+ $DEBUG kubectl cp $file mssql-master-pool-0:/var/opt/mssql/data -c mssql-server -n $CLUSTER_NAMESPACE || (echo $ERROR_MESSAGE && exit 1)
61+ done
62+
63+
64+ for file in WideWorldImporters-Full.bak WideWorldImportersDW-Full.bak
65+ do
66+ if [ ! -f $file ]
67+ then
68+ echo Downloading $file sample database backup file...
69+ $DEBUG curl -L -G " https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/$file " -o $file
70+ fi
71+ echo Copying $file database backup file to SQL Master instance...
72+ $DEBUG kubectl cp $file mssql-master-pool-0:/var/opt/mssql/data -c mssql-server -n $CLUSTER_NAMESPACE || (echo $ERROR_MESSAGE && exit 1)
73+ done
74+ fi
4475
4576echo Configuring sample database...
4677# WSL ex: "/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn/SQLCMD.EXE"
@@ -57,23 +88,29 @@ for table in web_clickstreams inventory customer
5788 DELIMITER=" |"
5889 fi
5990 # WSL ex: "/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn/bcp.exe"
60- $DEBUG bcp sales.dbo.$table out " $table .csv" -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -c -t" $DELIMITER " -e " $table .err" || (echo $ERROR_MESSAGE && exit 3)
91+ if [ ! -f $table .csv ]
92+ then
93+ $DEBUG bcp sales.dbo.$table out " $table .csv" -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -c -t" $DELIMITER " -e " $table .err" || (echo $ERROR_MESSAGE && exit 3)
94+ fi
6195done
6296
63- echo Exporting product_reviews data...
64- $DEBUG bcp " select pr_review_sk, replace(replace(pr_review_content, ',', ';'), char(34), '') as pr_review_content from sales.dbo.product_reviews" queryout " product_reviews.csv" -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -c -t, -e " product_reviews.err" || (echo $ERROR_MESSAGE && exit 3)
97+ if [ ! -f product_reviews.csv ]
98+ then
99+ echo Exporting product_reviews data...
100+ $DEBUG bcp " select pr_review_sk, replace(replace(pr_review_content, ',', ';'), char(34), '') as pr_review_content from sales.dbo.product_reviews" queryout " product_reviews.csv" -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -c -t, -e " product_reviews.err" || (echo $ERROR_MESSAGE && exit 3)
101+ fi
65102
66103# Copy the data file to HDFS
67104echo Uploading web_clickstreams data to HDFS...
68105$DEBUG curl -i -L -k -u root:$KNOX_PASSWORD -X PUT " https://$KNOX_ENDPOINT /gateway/default/webhdfs/v1/clickstream_data?op=MKDIRS" || (echo $ERROR_MESSAGE && exit 4)
69106$DEBUG curl -i -L -k -u root:$KNOX_PASSWORD -X PUT " https://$KNOX_ENDPOINT /gateway/default/webhdfs/v1/clickstream_data/web_clickstreams.csv?op=create&overwrite=true" -H ' Content-Type: application/octet-stream' -T " web_clickstreams.csv" || (echo $ERROR_MESSAGE && exit 5)
70- $DEBUG rm -f web_clickstreams.*
107+ # $DEBUG rm -f web_clickstreams.*
71108
72109echo
73110echo Uploading product_reviews data to HDFS...
74111$DEBUG curl -i -L -k -u root:$KNOX_PASSWORD -X PUT " https://$KNOX_ENDPOINT /gateway/default/webhdfs/v1/product_review_data?op=MKDIRS" || (echo $ERROR_MESSAGE && exit 6)
75112$DEBUG curl -i -L -k -u root:$KNOX_PASSWORD -X PUT " https://$KNOX_ENDPOINT /gateway/default/webhdfs/v1/product_review_data/product_reviews.csv?op=create&overwrite=true" -H " Content-Type: application/octet-stream" -T " product_reviews.csv" || (echo $ERROR_MESSAGE && exit 7)
76- $DEBUG rm -f product_reviews.*
113+ # $DEBUG rm -f product_reviews.*
77114
78115echo
79116echo Bootstrap of the sample database completed successfully.
0 commit comments