[Networking] SQL Warehouse + StorageAccount

Si querías leer datos desde un SQL Warehouse dentro de DataBricks pero no tienes lecturas del/los Storage Account... Estas en el lugar correcto.

AZURELVL300NETWORKINGSCRIPTING

6/3/20242 min read

Un componente como SQL Warehouse dentro de Azure Databricks es un recurso de cómputo que permite consultar y explorar datos en la plataforma. La mayoría de los usuarios tienen acceso a almacenes SQL configurados por sus respectivos administradores. Mientras que leeran por todos lados que Databricks recomienda el uso de almacenes SQL serverless mientras y tanto se pueda.

Aquí un error típico, vamos con la verdad de la milanesa! Los pongo en contexto:

  • Que pasa si tengo mi SQL Warehouse (que claramente es serverless) dentro de mi Workspace de Databricks

  • Tengo la necesidad de que lea datos que se encuentran dentro de mi Storage Account

  • A la vez, la seguridad de mi Storage account (si es que lo configure bajo las mejores prácticas de securización). Dentro de su Security/Networking habilité "Enable from selected virtual networks and IP addresses")

Que necesito ahora tener identificado?... y porque:

Al estar queriendo acceder a un serverless, debo indicarle al storageaccount desde donde será consumido, es por esto que debo tener identificado el NW de la zona especifica donde este dado de alta mi SQL warehouse, para atachar las reglas de networking. Ojo! el serverless es un servicio ajeno a nuestra administración!

En mi caso tengo todos los recursos desplegados en East US 2.

Les dejo las zonas AQUI y por otro lado les dejo las subnets admitidas AQUI.

A la hora de configurarlas, lo podemos hacer por bash o Powershell, dejo las líneas:

-
BASH

#!/bin/bash

SUBNETS=(/subscriptions/8453a5d5-9e9e-40c7-87a4-0ab4cc197f48/resourceGroups/prod-azure-eastusc3-nephos2/providers/Microsoft.Network/virtualNetworks/kaas-vnet/subnets/worker-subnet /subscriptions/8453a5d5-9e9e-40c7-87a4-0ab4cc197f48/resourceGroups/prod-azure-eastusc3-nephos3/providers/Microsoft.Network/virtualNetworks/kaas-vnet/subnets/worker-subnet)

for SUBNET in ${SUBNETS[@]}

do

az storage account network-rule add --subscription 9999999-1ff3-43f4-b91e-d0ceb97111111 --resource-group mystorage-rg --account-name myaccount --subnet ${SUBNET}

done

POWERSHELL

Add-AzStorageAccountNetworkRule -ResourceGroupName <resource group name> -Name <storage account name> -VirtualNetworkResourceId <subnets>

No olvides sustituir!

  • <resource group name> con el grupo de recursos de la cuenta de almacenamiento.

  • <storage account name> por el nombre de la cuenta de almacenamiento.

  • <subnets> con una lista de los identificadores de recursos de subred separados por comas.

Gracias por pasarte y leerme!