2020-09-06 | Notebooks / SQL / Python |
A continuación quiero presentar el resultado de comparar dos alternativas para utilizar Notebooks con SQL Server: Jupyter notebooks en VSCode versus notebooks en Azure Data Studio. Estas herramientas resultan útiles para el análisis de datos y son alternativas al SQL Management Studio (común entre desarrolladores).
Asumiremos que tienes instalado un engine de Python en su equipo (e.g. Anaconda o MiniConda).
Por lo tanto iniciamos instalando la extensión de Python (View>Extensions) como se muestra en la siguiente figura:
Posteriormente se debe seleccionar el interprete o ambiente de Python (View>Command Palette>Python: Select Interpreter)
En la barra de estado del VSCode aparecerá la versión de Python a utilizar: (Python 3.7.6 64-bit(‘base’:conda))
Luego para crear el Notebook podemos utilizar el Command Palette nuevamente y digitar ">Python: Create New Blank Jupyter Notebook":
En VSCode se creará un archivo extensión ipynb donde empezaremos a configurar la conexión al SQLServer:
Dos librería son indispensables para configurar el notebook: ipython-sql y pyodbc; para instalarlos en nuestro ambiente podemos utilizar una celda de código del notebook con las siguientes instrucciones:
!pip install ipython-sql
!pip install pyodbc
Seguidamente habilitamos el módulo de SQL con la instrucción:
%load_ext sql
Sólo hace falta conectarnos a nuestro servidor con un string de conexión de formato SqlAchemy que tiene la siguiente forma para una conexión tipo Windows Authentication:
mssql+pyodbc://NOMBRESERVIDORBD/NOMBREBASEDATOS?driver=ODBC+Driver+13+for+SQL+Server&trusted_connection=yes
Con la conexión establecida podemos utilizar %%sql para hacer un query multilinea o %sql en una sóla línea de la siguiente manera:
%sql SELECT top 5 * FROM [AdventureWorksDW2016].[dbo].[FactInternetSales]
Multilinea:
%%sql
SELECT TOP (1000) [ProductKey]
,[OrderDateKey]
,[DueDateKey]
,[ShipDateKey]
,[CustomerKey]
,[PromotionKey]
,[CurrencyKey]
,[SalesTerritoryKey]
,[SalesOrderNumber]
,[SalesOrderLineNumber]
,[RevisionNumber]
,[OrderQuantity]
,[UnitPrice]
FROM [AdventureWorksDW2016].[dbo].[FactInternetSales]
El notebook utilizado lo encontramos en:
Ahora haremos los mismo con Azure Data Studio.
En apariencia Azure Data Studio simplifica la configuración de la librerías Python para VSCode, sólo vamos a File>New Notebook para crear el notebook con la misma extensión ipynb:
Luego de crear el notebook necesitaremos crear una conexión al servidor.
Y agregammos las mismas consultas que hicimos anteriormente:
En el siguiente video veremos diferencias entre ambas herramientas: