Skip to content

Commit 817ec96

Browse files
committed
Updates to handle CTP 2.5 changes
1 parent d0cea10 commit 817ec96

3 files changed

Lines changed: 79 additions & 48 deletions

File tree

samples/features/sql-big-data-cluster/bootstrap-sample-db.cmd

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ set SQL_MASTER_SA_PASSWORD=%3
88
set KNOX_IP=%4
99
set KNOX_PASSWORD=%5
1010
set AW_WWI_SAMPLES=%6
11+
set SQL_MASTER_PORT=%7
12+
set KNOX_PORT=%8
1113
set STARTUP_PATH=%~dp0
1214
set TMP_DIR_NAME=%~nx0
1315

@@ -17,64 +19,64 @@ if NOT DEFINED SQL_MASTER_SA_PASSWORD goto :usage
1719
if NOT DEFINED KNOX_IP goto :usage
1820
if NOT DEFINED KNOX_PASSWORD set KNOX_PASSWORD=%SQL_MASTER_SA_PASSWORD%
1921
if NOT DEFINED AW_WWI_SAMPLES set AW_WWI_SAMPLES=no
22+
if NOT DEFINED SQL_MASTER_PORT set SQL_MASTER_PORT=31433
23+
if NOT DEFINED KNOX_PORT set KNOX_PORT=30443
2024

21-
set SQL_MASTER_INSTANCE=%SQL_MASTER_IP%,31433
22-
set KNOX_ENDPOINT=%KNOX_IP%:30443
25+
set SQL_MASTER_INSTANCE=%SQL_MASTER_IP%,%SQL_MASTER_PORT%
26+
set KNOX_ENDPOINT=%KNOX_IP%:%KNOX_PORT%
2327

2428
for %%F in (sqlcmd.exe bcp.exe kubectl.exe curl.exe) do (
2529
echo Verifying %%F is in path & CALL WHERE /Q %%F || GOTO exit
2630
)
2731

2832
pushd "%tmp%"
29-
md %TMP_DIR_NAME%
33+
md %TMP_DIR_NAME% >NUL
3034
cd %TMP_DIR_NAME%
3135

3236
if NOT EXIST tpcxbb_1gb.bak (
3337
echo Downloading sample database backup file...
3438
%DEBUG% curl -G "https://sqlchoice.blob.core.windows.net/sqlchoice/static/tpcxbb_1gb.bak" -o tpcxbb_1gb.bak
3539
)
3640

41+
set SQLCMDSERVER=%SQL_MASTER_INSTANCE%
42+
set SQLCMDUSER=sa
43+
set SQLCMDPASSWORD=%SQL_MASTER_SA_PASSWORD%
44+
for /F "usebackq" %%v in (`sqlcmd -I -b -h-1 -Q "print RTRIM((CAST(SERVERPROPERTY('ProductLevel') as nvarchar(128))));"`) do SET CTP_VERSION=%%v
45+
if /i "%CTP_VERSION%" EQU "CTP2.4" (set MASTER_POD_NAME=mssql-master-pool-0) else (set MASTER_POD_NAME=master-0)
46+
3747
REM Copy the backup file, restore the database, create necessary objects and data file
3848
echo Copying sales database backup file to SQL Master instance...
39-
%DEBUG% kubectl cp tpcxbb_1gb.bak %CLUSTER_NAMESPACE%/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || goto exit
49+
%DEBUG% kubectl cp tpcxbb_1gb.bak %CLUSTER_NAMESPACE%/%MASTER_POD_NAME%:/var/opt/mssql/data -c mssql-server || goto exit
4050

4151
REM Download and copy the sample backup files
42-
if /i %AW_WWI_SAMPLES% EQU --install-extra-samples (
43-
if NOT EXIST AdventureWorks2016_EXT.bak (
44-
echo Downloading AdventureWorks2016_EXT sample database backup file...
45-
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2016_EXT.bak" -o AdventureWorks2016_EXT.bak
46-
)
47-
echo Copying AdventureWorks2016_EXT database backup file to SQL Master instance...
48-
%DEBUG% kubectl cp AdventureWorks2016_EXT.bak %CLUSTER_NAMESPACE%/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || goto exit
49-
50-
if NOT EXIST AdventureWorksDW2016_EXT.bak (
51-
echo Downloading AdventureWorksDW2016_EXT sample database backup file...
52-
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorksDW2016_EXT.bak" -o AdventureWorksDW2016_EXT.bak
52+
if /i "%AW_WWI_SAMPLES%" EQU "--install-extra-samples" (
53+
set FILES=AdventureWorks2016_EXT.bak AdventureWorksDW2016_EXT.bak
54+
for %%f in (!FILES!) do (
55+
if NOT EXIST %%f (
56+
echo Downloading %%f sample database backup file...
57+
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/%%f" -o %%f
58+
)
59+
echo Copying %%f database backup file to SQL Master instance...
60+
%DEBUG% kubectl cp %%f %CLUSTER_NAMESPACE%/%MASTER_POD_NAME%:/var/opt/mssql/data -c mssql-server || goto exit
5361
)
54-
echo Copying AdventureWorksDW2016_EXT database backup file to SQL Master instance...
55-
%DEBUG% kubectl cp AdventureWorksDW2016_EXT.bak %CLUSTER_NAMESPACE%/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || goto exit
5662

57-
if NOT EXIST WideWorldImporters-Full.bak (
58-
echo Downloading WideWorldImporters sample database backup file...
59-
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak" -o WideWorldImporters-Full.bak
63+
set FILES=WideWorldImporters-Full.bak WideWorldImportersDW-Full.bak
64+
for %%f in (!FILES!) do (
65+
if NOT EXIST %%f (
66+
echo Downloading %%f sample database backup file...
67+
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/%%f" -o %%f
68+
)
69+
echo Copying %%f database backup file to SQL Master instance...
70+
%DEBUG% kubectl cp %%f %CLUSTER_NAMESPACE%/%MASTER_POD_NAME%:/var/opt/mssql/data -c mssql-server || goto exit
6071
)
61-
echo Copying WideWorldImporters-Full database backup file to SQL Master instance...
62-
%DEBUG% kubectl cp WideWorldImporters-Full.bak %CLUSTER_NAMESPACE%/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || goto exit
63-
64-
if NOT EXIST WideWorldImportersDW-Full.bak (
65-
echo Downloading WideWorldImportersDW sample database backup file...
66-
%DEBUG% curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImportersDW-Full.bak" -o WideWorldImportersDW-Full.bak
67-
)
68-
echo Copying WideWorldImportersDW-Full database backup file to SQL Master instance...
69-
%DEBUG% kubectl cp WideWorldImportersDW-Full.bak %CLUSTER_NAMESPACE%/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || goto exit
7072
)
7173

7274
echo Configuring sample database(s)...
73-
%DEBUG% sqlcmd -S %SQL_MASTER_INSTANCE% -Usa -P%SQL_MASTER_SA_PASSWORD% -i "%STARTUP_PATH%bootstrap-sample-db.sql" -o "bootstrap.out" -I -b -v SA_PASSWORD="%KNOX_PASSWORD%" || goto exit
75+
%DEBUG% sqlcmd -i "%STARTUP_PATH%bootstrap-sample-db.sql" -o "bootstrap.out" -I -b -v SA_PASSWORD="%KNOX_PASSWORD%" || goto exit
7476

7577
REM remove files copied into the pod:
7678
echo Removing database backup files...
77-
kubectl exec mssql-master-pool-0 -n %CLUSTER_NAMESPACE% -c mssql-server -i -t -- bash -c "rm -rvf /var/opt/mssql/data/*.bak"
79+
%DEBUG% kubectl exec %MASTER_POD_NAME% -n %CLUSTER_NAMESPACE% -c mssql-server -i -t -- bash -c "rm -rvf /var/opt/mssql/data/*.bak"
7880

7981
for %%F in (web_clickstreams inventory customer) do (
8082
if NOT EXIST %%F.csv (
@@ -84,7 +86,6 @@ for %%F in (web_clickstreams inventory customer) do (
8486
)
8587
)
8688

87-
8889
if NOT EXIST product_reviews.csv (
8990
echo Exporting product_reviews data...
9091
%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, -o "product_reviews.out" -e "product_reviews.err" || goto exit
@@ -103,6 +104,7 @@ echo Uploading product_reviews data to HDFS...
103104
:: del /q product_reviews.*
104105

105106
REM %DEBUG% del /q *.out *.err *.csv
107+
echo .
106108
echo Bootstrap of the sample database completed successfully.
107109
echo You can now login using "root" and Knox password to get the unified experience in Azure Data Studio.
108110
echo Data files for Oracle setup are located at [%TMP%\%TMP_DIR_NAME%].
@@ -118,6 +120,6 @@ goto :eof
118120
exit /b 1
119121

120122
:usage
121-
echo USAGE: %0 ^<CLUSTER_NAMESPACE^> ^<SQL_MASTER_IP^> ^<SQL_MASTER_SA_PASSWORD^> ^<KNOX_IP^> [^<KNOX_PASSWORD^>] [--install-extra-samples]
122-
echo Default ports are assumed for SQL Master instance ^& Knox gateway.
123+
echo USAGE: %0 ^<CLUSTER_NAMESPACE^> ^<SQL_MASTER_IP^> ^<SQL_MASTER_SA_PASSWORD^> ^<KNOX_IP^> [^<KNOX_PASSWORD^>] [--install-extra-samples] [SQL_MASTER_PORT] [KNOX_PORT]
124+
echo Default ports are assumed for SQL Master instance ^& Knox gateway unless specified.
123125
exit /b 0

samples/features/sql-big-data-cluster/bootstrap-sample-db.sh

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -e
33
set -o pipefail
44
STARTUP_PATH=$(pwd)
55
TMP_DIR_NAME=$(basename $0)
6-
USAGE_MESSAGE="USAGE: $0 <CLUSTER_NAMESPACE> <SQL_MASTER_IP> <SQL_MASTER_SA_PASSWORD> <KNOX_IP> [<KNOX_PASSWORD>] [--install-extra-samples]"
6+
USAGE_MESSAGE="USAGE: $0 <CLUSTER_NAMESPACE> <SQL_MASTER_IP> <SQL_MASTER_SA_PASSWORD> <KNOX_IP> [<KNOX_PASSWORD>] [--install-extra-samples] [SQL_MASTER_PORT] [KNOX_PORT]"
77
ERROR_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
@@ -20,12 +20,20 @@ SQL_MASTER_SA_PASSWORD=$3
2020
KNOX_IP=$4
2121
KNOX_PASSWORD=$5
2222
AW_WWI_SAMPLES=$6
23+
SQL_MASTER_PORT=$7
24+
KNOX_PORT=$8
2325

2426
# If Knox password is not supplied then default to SQL Master password
2527
KNOX_PASSWORD=${KNOX_PASSWORD:=$SQL_MASTER_SA_PASSWORD}
2628

27-
SQL_MASTER_INSTANCE=$SQL_MASTER_IP,31433
28-
KNOX_ENDPOINT=$KNOX_IP:30443
29+
# Skip if extra samples doesn't need to be installed
30+
AW_WWI_SAMPLES=${AW_WWI_SAMPLES:=no}
31+
32+
# Use default ports if not specified
33+
SQL_MASTER_PORT=${SQL_MASTER_PORT:=31433}
34+
KNOX_PORT=${KNOX_PORT:=30433}
35+
SQL_MASTER_INSTANCE=$SQL_MASTER_IP,$SQL_MASTER_PORT
36+
KNOX_ENDPOINT=$KNOX_IP:$KNOX_PORT
2937

3038
for util in sqlcmd bcp kubectl curl
3139
do
@@ -43,11 +51,20 @@ then
4351
$DEBUG curl -G "https://sqlchoice.blob.core.windows.net/sqlchoice/static/tpcxbb_1gb.bak" -o tpcxbb_1gb.bak
4452
fi
4553

54+
CTP_VERSION=$(sqlcmd -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -I -b -h-1 -Q "print RTRIM((CAST(SERVERPROPERTY('ProductLevel') as nvarchar(128))));")
55+
56+
if [ "$CTP_VERSION" == "CTP2.4" ]
57+
then
58+
MASTER_POD_NAME=mssql-master-pool-0
59+
else
60+
MASTER_POD_NAME=master-0
61+
fi
62+
4663
echo Copying database backup file...
47-
$DEBUG kubectl cp tpcxbb_1gb.bak $CLUSTER_NAMESPACE/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
64+
$DEBUG kubectl cp tpcxbb_1gb.bak $CLUSTER_NAMESPACE/$MASTER_POD_NAME:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
4865
# $DEBUG rm tpcxbb_1gb.bak
4966

50-
if [ $AW_WWI_SAMPLES == --install-extra-samples ]
67+
if [ "$AW_WWI_SAMPLES" == "--install-extra-samples" ]
5168
then
5269
for file in AdventureWorks2016_EXT.bak AdventureWorksDW2016_EXT.bak
5370
do
@@ -57,7 +74,7 @@ then
5774
$DEBUG curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/$file" -o $file
5875
fi
5976
echo Copying $file database backup file to SQL Master instance...
60-
$DEBUG kubectl cp $file $CLUSTER_NAMESPACE/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
77+
$DEBUG kubectl cp $file $CLUSTER_NAMESPACE/$MASTER_POD_NAME:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
6178
done
6279

6380

@@ -69,7 +86,7 @@ then
6986
$DEBUG curl -L -G "https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/$file" -o $file
7087
fi
7188
echo Copying $file database backup file to SQL Master instance...
72-
$DEBUG kubectl cp $file $CLUSTER_NAMESPACE/mssql-master-pool-0:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
89+
$DEBUG kubectl cp $file $CLUSTER_NAMESPACE/$MASTER_POD_NAME:/var/opt/mssql/data -c mssql-server || (echo $ERROR_MESSAGE && exit 1)
7390
done
7491
fi
7592

@@ -80,7 +97,7 @@ $DEBUG sqlcmd -S $SQL_MASTER_INSTANCE -Usa -P$SQL_MASTER_SA_PASSWORD -I -b < "$S
8097

8198
# remove files copied into the pod:
8299
echo Removing database backup files...
83-
kubectl exec mssql-master-pool-0 -n $CLUSTER_NAMESPACE -c mssql-server -i -t -- bash -c "rm -rvf /var/opt/mssql/data/*.bak"
100+
kubectl exec $MASTER_POD_NAME -n $CLUSTER_NAMESPACE -c mssql-server -i -t -- bash -c "rm -rvf /var/opt/mssql/data/*.bak"
84101

85102
for table in web_clickstreams inventory customer
86103
do

samples/features/sql-big-data-cluster/bootstrap-sample-db.sql

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,28 @@ BEGIN
8080
WITH (LOCATION = 'sqldatapool://service-mssql-controller:8080/datapools/default');
8181

8282
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool')
83+
IF SERVERPROPERTY('ProductLevel') = 'CTP2.4'
8384
CREATE EXTERNAL DATA SOURCE SqlStoragePool
8485
WITH (LOCATION = 'sqlhdfs://service-master-pool:50070');
86+
ELSE IF SERVERPROPERTY('ProductLevel') = 'CTP2.5'
87+
CREATE EXTERNAL DATA SOURCE SqlStoragePool
88+
WITH (LOCATION = 'sqlhdfs://nmnode-0-0.nmnode-0-svc:50070');
8589

8690
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'HadoopData')
87-
CREATE EXTERNAL DATA SOURCE HadoopData
88-
WITH(
89-
TYPE=HADOOP,
90-
LOCATION='hdfs://mssql-master-pool-0.service-master-pool:9000/',
91-
RESOURCE_MANAGER_LOCATION='mssql-master-pool-0.service-master-pool:8032'
92-
);
91+
IF SERVERPROPERTY('ProductLevel') = 'CTP2.4'
92+
CREATE EXTERNAL DATA SOURCE HadoopData
93+
WITH(
94+
TYPE=HADOOP,
95+
LOCATION='hdfs://mssql-master-pool-0.service-master-pool:9000/',
96+
RESOURCE_MANAGER_LOCATION='mssql-master-pool-0.service-master-pool:8032'
97+
);
98+
ELSE IF SERVERPROPERTY('ProductLevel') = 'CTP2.5'
99+
CREATE EXTERNAL DATA SOURCE HadoopData
100+
WITH(
101+
TYPE=HADOOP,
102+
LOCATION='hdfs://nmnode-0-0.nmnode-0-svc:9000/',
103+
RESOURCE_MANAGER_LOCATION='master-0.master-svc:8032'
104+
);
93105
END;
94106
GO
95107

0 commit comments

Comments
 (0)