Instalar componentes personalizados pagos ou licenciados para o runtime de integração do Azure-SSIS
APLICA-SE A: Azure Data Factory Azure Synapse Analytics> [! DICA] > Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo em um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!]
Este artigo descreve como um ISV pode desenvolver e instalar componentes personalizados pagos ou licenciados para pacotes do SSIS (SQL Server Integration Services) executados no Azure no runtime de integração do Azure-SSIS e proxy com o runtime de integração auto-hospedada.
Instalar componentes personalizados pagos ou licenciados para o runtime de integração do Azure-SSIS
O problema
A natureza do runtime de integração do Azure-SSIS apresenta vários desafios, o que torna inadequados os métodos de licenciamento comuns usados para a instalação local de componentes personalizados. Consequentemente, o IR do Azure-SSIS exige uma abordagem diferente.
Os nós de IR do Azure-SSIS são voláteis e podem ser alocados ou liberados a qualquer momento. Por exemplo, você pode iniciar ou parar nós para gerenciar o custo ou aumentar e diminuir vários tamanhos de nó. Como resultado, a associação de uma licença de componente de terceiros a um nó específico usando as informações específicas do computador, como endereço MAC ou ID de CPU, não é mais viável.
Você também pode expandir ou reduzir o IR do Azure-SSIS para que o número de nós possa diminuir ou aumentar a qualquer momento.
A solução
Como resultado das limitações dos métodos tradicionais de licenciamento descritos na seção anterior, o IR do Azure-SSIS fornece uma nova solução. Essa solução usa variáveis de ambiente do Windows e variáveis de sistema do SSIS para validação e associação da licença de componentes de terceiros. Os ISVs podem usar essas variáveis para obter informações exclusivas e persistente para um IR do Azure-SSIS, como ID do Cluster e Contagem de Nós do Cluster. Com essas informações, os ISVs podem, em seguida, associar a licença para seu componente ao IR do Azure-SSIS como um cluster. Esta associação usa uma ID que não se altera quando os clientes iniciam ou param, aumentam ou reduzem a escala verticalmente, aumentam ou reduzem a escala horizontalmente ou reconfigurar o IR do SSIS-Azure de qualquer outra forma.
O diagrama a seguir mostra a instalação, a ativação e a associação típicas da licença e os fluxos de validação para componentes de terceiros que usam essas novas variáveis:
Instruções
Os ISVs podem oferecer seus componentes licenciados em várias SKUs ou níveis (por exemplo, único nó, até 5 nós, até 10 nós e assim por diante). O ISV fornece a chave do produto (Product Key) correspondente quando clientes adquirem um produto. O ISV também pode fornecer um contêiner de blob de Armazenamento do Azure que contém um script de instalação do ISV e arquivos associados. Os clientes podem copiar esses arquivos em seu próprio contêiner de armazenamento e modificá-los com sua própria chave do produto (Product Key) (por exemplo, executando
IsvSetup.exe -pid xxxx-xxxx-xxxx
). Os clientes podem, então, provisionar ou reconfigurar o IR do Azure-SSIS com o URI de SAS do contêiner como parâmetro. Para obter mais informações, consulte Instalação personalizada para o runtime de integração do Azure-SSIS.Quando o IR do Azure-SSIS é provisionado ou reconfigurado, a instalação do ISV é executada em cada nó para consultar as variáveis de ambiente do Windows,
SSIS_CLUSTERID
eSSIS_CLUSTERNODECOUNT
. Em seguida, o IR do Azure-SSIS envia sua ID de Cluster e a chave do produto (Product Key) licenciado para o servidor de ativação do ISV para gerar uma chave de ativação.Depois de receber a chave de ativação, a instalação do ISV pode armazenar a chave localmente em cada nó (por exemplo, no Registro).
Quando os clientes executam um pacote que usa o componente licenciado do ISV em um nó do IR do Azure-SSIS, o pacote lê a chave de ativação armazenada localmente e valida em relação à ID de Cluster do nó. O pacote também pode relatar a Contagem de Nós de Cluster para o servidor de ativação do ISV.
Aqui está um exemplo de código que valida a chave de ativação e relata a contagem de nós do cluster:
public override DTSExecResult Validate(Connections, VariableDispenser, IDTSComponentEvents componentEvents, IDTSLogging log) { Variables vars = null; variableDispenser.LockForRead("System::ClusterID"); variableDispenser.LockForRead("System::ClusterNodeCount"); variableDispenser.GetVariables(ref vars); // Validate Activation Key with ClusterID // Report on ClusterNodeCount vars.Unlock(); return base.Validate(connections, variableDispenser, componentEvents, log); }
Habilitar componentes de fluxo de dados personalizados/de terceiros usando o IR auto-hospedado como um proxy
Para permitir que seus componentes de fluxo de dados personalizados/de terceiros acessem dados locais usando o IR auto-hospedado como um proxy para o Azure-SSIS IR, siga estas instruções:
Instale os componentes de fluxo de dados personalizados/de terceiros destinados ao SQL Server 2017 no Azure-SSIS IR através de configurações personalizadas padrão/expressas.
Crie as seguintes chaves do registro DTSPath no IR auto-hospedado, se elas ainda não existirem:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath
definido comoC:\Program Files\Microsoft SQL Server\140\DTS\
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\140\SSIS\Setup\DTSPath
definido comoC:\Program Files (x86)\Microsoft SQL Server\140\DTS\
Instale os componentes de fluxo de dados personalizados/de terceiros destinados ao SQL Server 2017 no IR auto-hospedado no DTSPath acima e verifique se o processo de instalação:
Cria as pastas
<DTSPath>
,<DTSPath>/Connections
,<DTSPath>/PipelineComponents
, e<DTSPath>/UpgradeMappings
, se elas ainda não existirem.Cria seu próprio arquivo XML para mapeamentos de extensão na pasta
<DTSPath>/UpgradeMappings
.Instala todos os assemblies referenciados por seus assemblies de componente de fluxo de dados personalizado/de terceiros no cache de assembly global (GAC).
Veja um exemplo da nossa parceira, a Aecorsoft, que adaptou seus componentes de fluxo de dados para usar nossa configuração personalizada expressa e o IR auto-hospedado como um proxy para o Azure-SSIS IR.
Parceiros do ISV
Você pode encontrar uma lista de parceiros do ISV que adaptaram seus componentes e extensões para o IR do Azure-SSIS no final desta postagem de blog – Enterprise Edition, Instalação Personalizada e Extensibilidade de Terceiros para SSIS no ADF.