From 5af09213a1338f14d5fc3569358754708f7235b6 Mon Sep 17 00:00:00 2001 From: Vicky Harp Date: Tue, 9 Jul 2019 17:06:05 -0700 Subject: [PATCH] Add a sample TSQL notebook to the Azure Data Studio samples directory (#6340) * Initial commit of Sample SQL Notebook * Add wait stats example to sample notebook --- .../Graphics/AzureDataStudioLogo.png | Bin 0 -> 24659 bytes .../notebookSamples/SampleTSQLNotebook.ipynb | 260 ++++++++++++++++++ 2 files changed, 260 insertions(+) create mode 100644 samples/notebookSamples/Graphics/AzureDataStudioLogo.png create mode 100644 samples/notebookSamples/SampleTSQLNotebook.ipynb diff --git a/samples/notebookSamples/Graphics/AzureDataStudioLogo.png b/samples/notebookSamples/Graphics/AzureDataStudioLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f60b4bd1498f1f976f5824fc8a35ebfa8ae450a3 GIT binary patch literal 24659 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\r\n\r\n## SQL Notebooks in Azure Data Studio\r\n\r\nNotebooks allow rich text, images, code, and resultsets to be easily shared. This is a concept that is widely used in data science and which we feel is well suited to SQL work. \r\n", + "metadata": {} + }, + { + "cell_type": "code", + "source": "select \r\n 'Hello SQL World' as [Greetings], \r\n @@servername as [Server Name],\r\n datename(weekday,getutcdate()) as [Today]", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "### Concepts\r\n\r\nNotebooks are saved in a file format of .ipynb and have a couple of logical components.\r\n\r\n**Kernel**\r\n\r\nThe language and execution environment of the notebook. Common examples are Python, R, Scala, and Spark. Azure Data Studio also offers a SQL kernel, which is the focus of this tutorial.\r\n\r\n**Attach To**\r\n\r\nThis is the compute environment for the code - basically, where it will run. For SQL this is exactly analogous to the familiar Connection property of a query.\r\n\r\n**Cell**\r\n\r\nA cell is an editable section of the notebook. Cells can be human-readable text or code. Text cells are edited in the Markdown language to allow formatting and can include rich content including images. In Azure Data Studio, code cells include intellisense where possible. Below is an example of a SQL code cell.\r\n", + "metadata": {} + }, + { + "cell_type": "code", + "source": "select top 5 * from sys.dm_exec_session_wait_stats order by wait_time_ms desc", + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": "(5 rows affected)" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/html": "Total execution time: 00:00:00.163" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "metadata": {}, + "execution_count": 7, + "data": { + "application/vnd.dataresource+json": { + "schema": { + "fields": [ + { + "name": "session_id" + }, + { + "name": "wait_type" + }, + { + "name": "waiting_tasks_count" + }, + { + "name": "wait_time_ms" + }, + { + "name": "max_wait_time_ms" + }, + { + "name": "signal_wait_time_ms" + } + ] + }, + "data": [ + { + "0": "59", + "1": "ASYNC_NETWORK_IO", + "2": "24", + "3": "389", + "4": "347", + "5": "0" + }, + { + "0": "57", + "1": "PREEMPTIVE_XE_GETTARGETSTATE", + "2": "9", + "3": "160", + "4": "102", + "5": "0" + }, + { + "0": "57", + "1": "ASYNC_NETWORK_IO", + "2": "323", + "3": "38", + "4": "2", + "5": "10" + }, + { + "0": "58", + "1": "MEMORY_ALLOCATION_EXT", + "2": "5066", + "3": "25", + "4": "0", + "5": "0" + }, + { + "0": "60", + "1": "PAGEIOLATCH_SH", + "2": "30", + "3": "11", + "4": "0", + "5": "0" + } + ] + }, + "text/html": "
session_idwait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms
59ASYNC_NETWORK_IO243893470
57PREEMPTIVE_XE_GETTARGETSTATE91601020
57ASYNC_NETWORK_IO32338210
58MEMORY_ALLOCATION_EXT50662500
60PAGEIOLATCH_SH301100
" + } + } + ], + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": "**Results**\r\n\r\nCode cells can be executed against the environment specified in Attach To, and their results are saved into the notebook. Once executed and saved, the results can be opened with the file without having be be re-executed. Results may be text, grids, charts, or other visualizations.\r\n\r\n**Trusted vs Non-Trusted**\r\n\r\nSince notebooks can contain HTML and Javascript code, it would be possible for a maliciously formed notebook to execute code simply upon being opened by the user. To prevent this, notebooks have the concept of \"Trusted\" and \"Untrusted.\" Untrusted HTML is sanitized and untrusted Javascript is not executed. Users can mark notebooks trusted if necessary, but in common use cases an untrusted notebook will perform the same as a trusted one. This is similar to the behavior of many other file types when downloaded from the internet.", + "metadata": {} + }, + { + "cell_type": "markdown", + "source": "### Editing Experience\r\n\r\nEditing SQL is the same in Azure Data Studio notebooks as in the Azure Data Studio query editor - the same Intellisense, the same snippet support. Markdown is edited with a custom editor which shows a preview during edit, and only shows the processed markdown when not in edit mode. Code and markdown (text) cells can be added with buttons or through context menus.", + "metadata": {} + }, + { + "cell_type": "code", + "source": "select top 10 * from sys.databases", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "### Code Separation and Context\r\n\r\nThe separate code cells in a SQL notebook are run as separate batches. This is equivalent to having a GO statement between cells.\r\n\r\nThis is an area we're actively innovating in and want to make a little more straightforward! But we'll describe the current behavior.\r\n\r\nIn this code, we're setting the database context to WideWorldImporters and then creating a local variable. We're also setting nocount on, to demonstrate set statement behavior.", + "metadata": {} + }, + { + "cell_type": "code", + "source": "set nocount on;\r\nuse WideWorldImporters;\r\ndeclare @i int;\r\nset @i = 1;\r\nselect @i [Value of @i], db_name() as [MyDatabaseName]", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "The next cell will show an error, since the variable @i is not declared within this cell.", + "metadata": {} + }, + { + "cell_type": "code", + "source": "select @i [Value of @i], db_name() as [MyDatabaseName]", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "In the next cell, we're re-declaring @i, but not setting it, so the value remains null.\r\n\r\nHowever, the previously set database context and nocount settings are maintained as these are durable throughout the session. This is the same behavior as the query editor.", + "metadata": {} + }, + { + "cell_type": "code", + "source": "declare @i int;\r\nselect @i [Value of @i], db_name() as [MyDatabaseName]", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "One upshot of this - not unique to SQL notebooks - is that code cell execution order *does matter*\r\n\r\nWe think this is an area we can innovate in and welcome your suggestions on how to make this easier to work with in a notebook context.", + "metadata": {} + }, + { + "cell_type": "markdown", + "source": "### Multi-language support\r\n\r\nWhile in a SQL notebook you can change to run R and Python on the SQL Server with a special syntax. This allows you to type your raw Python or R and execute it without having to remember how to wrap it up in a stored procedure (provided that the Advanced Analytics Extensions feature is installed and enabled on the target server)", + "metadata": {} + }, + { + "cell_type": "code", + "source": "%%lang_python\r\nprint (\"Hello World\")", + "metadata": { + "language": "python" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": "STDOUT message(s) from external script: \nHello World\r" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/html": "Total execution time: 00:00:21.211" + }, + "metadata": {} + } + ], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "### Use Cases\r\n\r\nWe're envisioning a number of use cases for the SQL notebooks. In many ways it's simply the next generation experience for the query editor, and many of the things you can do in a plain editor can be done as well or better in a notebook. But a few scenarios have jumped out at us:\r\n\r\n- Teaching Tools \r\n- Runbooks\r\n- Business reporting and presentations\r\n- Troubleshooting\r\n- Deployments\r\n- Baselining\r\n\r\nWe're excited to learn what the community can do with them!", + "metadata": {} + }, + { + "cell_type": "markdown", + "source": "**Example Server Information Report**\r\n\r\nRun this report and save it to a known location to maintain a basic point in time inventory.", + "metadata": {} + }, + { + "cell_type": "code", + "source": "--Server basics\r\nSELECT\r\n getutcdate() as DateRun, \r\n db_name() as DatabaseName,\r\n serverproperty('ServerName') as ServerName,\r\n serverproperty('InstanceName') as InstanceName,\r\n serverproperty('ComputerNamePhysicalNetBIOS') as PhysicalName,\r\n serverproperty('Edition') as Edition,\r\n serverproperty('ProductMajorVersion') as MajorVersion,\r\n serverproperty('ProductMinorVersion') as MinorVersion\r\n\r\n--Databases\r\nSELECT *\r\nfrom sys.databases", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": "**More SQL Examples**\r\n\r\n", + "metadata": {} + }, + { + "cell_type": "code", + "source": "DECLARE @i INT, @c varchar(26);\r\nSELECT @i = 65, @c = '';\r\nWHILE (@i < 93)\r\nBEGIN\r\n SELECT @c = concat(@c,CHAR(@i))\r\n SET @i = @i + 1\r\nEND\r\n\r\n\r\nSELECT @c as \"Letters\", len(@c) as \"Count\"", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "code", + "source": "DROP TABLE IF EXISTS [dbo].[MyNotebookTable]\r\nCREATE TABLE [dbo].[MyNotebookTable]\r\n(\r\n [Id] INT IDENTITY NOT NULL PRIMARY KEY, -- Primary Key column\r\n [FirstValue] NVARCHAR(50) NOT NULL,\r\n [SecondValue] NVARCHAR(50) NOT NULL\r\n);\r\n\r\nPRINT 'Success: Created MyNotebookTable'\r\n", + "metadata": {}, + "outputs": [], + "execution_count": 1 + }, + { + "cell_type": "code", + "source": "raiserror('Something bad happened!',0,1) with nowait;\r\nwaitfor delay '00:00:05'\r\nraiserror('Something bad happened... again!',0,1) with nowait;", + "metadata": {}, + "outputs": [], + "execution_count": 1 + } + ] +} \ No newline at end of file