Openflow Connector for Salesforce Bulk API: configurar o Snowflake¶
Nota
O conector está sujeito aos Termos do conector Snowflake.
Este tópico descreve as etapas para configurar o Snowflake para o Openflow Connector for Salesforce Bulk API.
Pré-requisitos¶
Antes de começar, certifique-se de ter concluído o seguinte:
Instalação do Openflow (BYOC ou SPCS). Para obter mais informações, consulte Sobre o Openflow.
Criação de uma implantação do Openflow. Para obter mais informações, consulte Configuração do Openflow - Snowflake Deployment: criação de implantação ou Configuração do Openflow - BYOC.
Criação de um tempo de execução do Openflow. Para obter mais informações, consulte Configurar o Openflow - Snowflake Deployment: criar um tempo de execução ou Configuração do Openflow - BYOC.
Revisão das limitações conhecidas do conector de versão preliminar em Sobre Openflow Connector for Salesforce Bulk API.
Criar um par de chaves¶
Crie um par de chaves que será usado pelo usuário da conta de serviço no conector para interagir com o banco de dados.
Nota
Esta etapa será necessária apenas se você estiver implantando o conector no Openflow BYOC. Ela NOT é necessária para implantar o conector no Openflow SPCS.
Gere uma chave privada. O exemplo abaixo mostra como gerar uma chave privada não criptografada.
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
O conteúdo do arquivo
rsa_key.p8terá a seguinte aparência:-----BEGIN PRIVATE KEY----- MIIE6T... -----END PRIVATE KEY-----
Gere a chave pública fazendo referência à chave privada.
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
O conteúdo do arquivo
rsa_key.pubterá a seguinte aparência:-----BEGIN PUBLIC KEY----- MIIBIjANBgkqh... -----END PUBLIC KEY-----
Copie o conteúdo desse arquivo (sem os cabeçalhos
-----BEGIN PUBLIC KEY-----e-----END PUBLIC KEY-----) que será usado para criar o usuário na próxima seção.
Criar objetos e conceder privilégios¶
Crie uma conta de serviço, uma função, um banco de dados, um esquema e um warehouse para o conector e conceda as devidas permissões.
Use uma função com privilégios
ACCOUNTADMINpara definir a função:USE ROLE ACCOUNTADMIN;
Crie o banco de dados Snowflake de destino, se ele não existir:
CREATE DATABASE IF NOT EXISTS <my_salesforce_db>;
Crie o esquema de destino no banco de dados, se ele não existir:
CREATE SCHEMA IF NOT EXISTS <my_salesforce_db>.<my_salesforce_schema>;
Crie a função usada pelo conector Openflow:
CREATE ROLE IF NOT EXISTS <Salesforce_connector_role_name>;
Conceda os privilégios à função para usar o banco de dados:
GRANT USAGE ON DATABASE <my_salesforce_db> TO ROLE <Salesforce_connector_role_name>; GRANT USAGE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>; GRANT CREATE TABLE ON SCHEMA <my_salesforce_db>.<my_salesforce_schema> TO ROLE <Salesforce_connector_role_name>;
Crie um warehouse para o conector (ou use um existente) e conceda os privilégios de uso à função do conector:
-- Create a warehouse (skip if you wish to use an existing warehouse) CREATE OR REPLACE WAREHOUSE MY_WAREHOUSE WITH WAREHOUSE_SIZE = 'SMALL' AUTO_SUSPEND = 300 AUTO_RESUME = TRUE; GRANT USAGE, OPERATE ON WAREHOUSE MY_WAREHOUSE TO ROLE <Salesforce_connector_role_name>;
Crie o usuário do serviço e atribua a função e a chave pública:
-- Create a service user that the connector will use to interact with Snowflake -- Set default role to <Salesforce_connector_role_name> -- Assign the public key generated with openssl in the previous step (only for BYOC) CREATE OR REPLACE USER <Salesforce_connector_user_name> TYPE = SERVICE DEFAULT_ROLE = <Salesforce_connector_role_name> RSA_PUBLIC_KEY = '<public_key_generated_by openssl_in_step_1>'; -- Grant the role to the user GRANT ROLE <Salesforce_connector_role_name> TO USER <Salesforce_connector_user_name>;
Criar uma regra de rede (somente implantação do Openflow Snowflake)¶
Se você estiver implantando o conector em um tempo de execução que está em uma implantação do Openflow Snowflake, deverá criar uma regra de rede e uma integração de acesso externo e defini-las no tempo de execução.
USE ROLE SECURITYADMIN;
CREATE NETWORK RULE MY_OPENFLOW_SALESFORCE_NETWORK_RULE
TYPE = HOST_PORT
MODE = EGRESS
VALUE_LIST = ('<salesforce_instance_host>:443');
CREATE EXTERNAL ACCESS INTEGRATION MY_OPENFLOW_SALESFORCE_EAI
ALLOWED_NETWORK_RULES = (MY_OPENFLOW_SALESFORCE_NETWORK_RULE)
ENABLED = TRUE
COMMENT = 'External Access Integration to connect to Salesforce';
GRANT USAGE ON INTEGRATION MY_OPENFLOW_SALESFORCE_EAI TO ROLE <openflow_role_name>;
Próximos passos¶
Configurar o conector no Openflow:
Openflow Connector for Salesforce Bulk API: Configuração do conector