Dados do IRIS para o Google Big Query - InterSystems Cloud SQL pelo Dataflow
| Como incluir dados do IRIS no seu Data Warehouse do Google Big Query e em suas explorações de dados do Data Studio. Neste artigo, vamos usar o Google Cloud Dataflow para nos conectarmos com o InterSystems Cloud SQL Service e criar um job para persistir os resultados de uma consulta do IRIS no Big Query em um intervalo. Se você teve a sorte de ganhar acesso ao Cloud SQL no Global Summit 2022, conforme mencionado em "InterSystems IRIS: What's New, What's Next", o exemplo será muito fácil. No entanto, também é possível fazer isso com qualquer listener acessível publicamente ou por VPC que você provisionar. |
Pré-requisitos

Ao inspecionar sua implantação, você pode acessar o painel "Conexões externas" na guia de visão geral, criar um URL de conexão e manter suas credenciais. Fomos diretamente para o acesso público (0.0.0.0/0) ao listener e escolhemos não critografá-lo.
Do acima, você divulgará as seguintes informações...
ConnectionURL:
jdbc:IRIS://k8s-c5ce7068-a4244044-265532e16d-2be47d3d6962f6cc.elb.us-east-1.amazonaws.com:1972/USERUser/Pass:
SQLAdmin/Testing12!DriverClassName:
com.intersystems.jdbc.IRISDriver- Provisione um projeto do GCP
gcloud projects create iris-2-datastudio --set-as-default
- Ative o Big Query
- Ative o DataFlow
- Enable Cloud Storage
gcloud services enable bigquery.googleapis.com gcloud services enable dataflow.googleapis.com gcloud services enable storage.googleapis.com
- Crie um bucket do Cloud Storage
gsutil mb gs://iris-2-datastudio
- Faça upload do último driver de conexão para a raiz do bucket
wget https://github.com/intersystems-community/iris-driver-distribution/raw/main/intersystems-jdbc-3.3.0.jar gsutil cp intersystems-jdbc-3.3.0.jar gs://iris-2-datastudio
- Crie um conjunto de dados do Big Query
bq --location=us mk \ --dataset \ --description "sqlaas to big query" \ iris-2-datastudio:irisdata
- Crie uma tabela de destino do Big Query
Aqui, uma vantagem superpoderosa se torna meio incômoda para nós. O Big Query pode criar tabelas dinamicamente se você fornecer um esquema com sua carga útil. Isso é ótimo dentro de pipelines e soluções, mas, em nosso caso, precisamos estabelecer a tabela com antecedência. O processo é simples, já que você pode exportar um CSV do banco de dados do IRIS facilmente com algo como o DBeaver, depois invocar a caixa de diálogo "criar tabela" abaixo do conjunto de dados criado e usar o CSV para criar sua tabela. Verifique se "gerar esquema automaticamente" está marcado na parte inferior da caixa de diálogo.
Isso conclui a configuração do Google Cloud Platform, e deve estar tudo pronto para configurar e executar o job do Dataflow.
Job do Google Dataflow
Se você seguiu as etapas acima, deverá ter o seguinte no seu inventário para executar o job de ler os dados do InterSystems IRIS e ingeri-los no Google Big Query usando o Google Dataflow.
No Console do Google Cloud, acesse o Dataflow e selecione "Criar job a partir do modelo"
Essa é uma ilustração um tanto desnecessária/exaustiva sobre como preencher um formulário com os pré-requisitos gerados, mas indica a origem dos componentes...
... para completar, abra a seção inferior e forneça suas credenciais do IRIS.
Para quem achou essas capturas de tela ofensivas à própria inteligência, aqui está o caminho alternativo para deixar você dentro da sua zona de conforto na CLI para executar o job:
gcloud dataflow jobs run iris-2-bq-dataflow \ --gcs-location gs://dataflow-templates-us-central1/latest/Jdbc_to_BigQuery \ --region us-central1 --num-workers 2 \ --staging-location gs://iris-2-datastudio/tmp \ --parameters connectionURL=jdbc:IRIS://k8s-c5ce7068-a4244044-265532e16d-2be47d3d6962f6cc.elb.us-east-1.amazonaws.com:1972/USER,driverClassName=com.intersystems.jdbc.IRISDriver,query=SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, SELF_REFERENCING_COLUMN_NAME, REFERENCE_GENERATION, USER_DEFINED_TYPE_CATALOG, USER_DEFINED_TYPE_SCHEMA, USER_DEFINED_TYPE_NAME, IS_INSERTABLE_INTO, IS_TYPED, CLASSNAME, DESCRIPTION, OWNER, IS_SHARDED FROM INFORMATION_SCHEMA.TABLES;,outputTable=iris-2-datastudio:irisdata.dataflowtable,driverJars=gs://iris-2-datastudio/intersystems-jdbc-3.3.0.jar,bigQueryLoadingTemporaryDirectory=gs://iris-2-datastudio/input,username=SQLAdmin,password=Testing12!
Após iniciar o job, aproveite a glória de uma execução de job bem-sucedida:
Resultados
Observando a consulta e os dados de origem no InterSystems Cloud SQL...
... e inspecionando os resultados no Big Query, parece que realmente temos os dados do InterSystems IRIS no Big Query.
Depois de ter os dados no Big Query, é simples incluir nossos dados do IRIS no Data Studio ao selecionar o Big Query como fonte de dados... o exemplo abaixo não é muito elegante, mas você pode ver rapidamente os dados do IRIS prontos para manipulação no seu projeto do Data Studio.
