Carregar dados do Microsoft SQL Server no BigQuery
Observação: para receber suporte ou enviar feedback sobre esse recurso, entre em contato com dts-preview-support@google.com.Para programar transferências de dados recorrentes do Microsoft SQL Server para o BigQuery, crie uma configuração de transferência para especificar quais objetos de dados transferir e com que frequência programar a transferência de dados. Depois de configurar a configuração de transferência, o serviço de transferência de dados do BigQuery transfere os dados mais recentes para uma tabela do BigQuery na programação especificada.
Para saber como funciona uma transferência do Microsoft SQL Server, consulte Introdução às transferências de dados do Microsoft SQL Server.
Limitações
Os jobs de transferência de dados do Microsoft SQL Server estão sujeitos às seguintes limitações:
- Há um número limitado de conexões simultâneas com um banco de dados do Microsoft SQL Server. Portanto, o número de execuções de transferência simultâneas para um único banco de dados do Microsoft SQL Server também é limitado. Verifique se o número de jobs de transferência simultâneos é menor que o número máximo de conexões simultâneas com suporte do banco de dados do Microsoft SQL Server.
- Alguns tipos de dados do Microsoft SQL Server podem ser mapeados para o tipo
STRINGno BigQuery para evitar a perda de dados. Por exemplo, determinados tipos numéricos no Microsoft SQL Server que não têm precisão e escala definidas podem ser mapeados paraSTRINGno BigQuery. Para mais informações, consulte Mapeamento de tipo de dados.
Limitações de transferência incremental
As transferências incrementais do Microsoft SQL Server estão sujeitas às seguintes limitações:- Só é possível escolher colunas
TIMESTAMPcomo colunas de marca-d'água. - A ingestão incremental só é compatível com recursos que têm colunas de marca-d'água válidas.
- Os valores em uma coluna de marca-d'água precisam aumentar monotonicamente.
- As transferências incrementais não podem sincronizar operações de exclusão na tabela de origem.
- Uma única configuração de transferência só pode oferecer suporte à ingestão incremental ou completa.
- Não é possível atualizar objetos na lista
assetapós a primeira execução de ingestão incremental. - Não é possível mudar o modo de gravação em uma configuração de transferência após a primeira execução de ingestão incremental.
- Não é possível mudar a coluna de marca-d'água ou a chave primária após a primeira execução de ingestão incremental.
- A tabela de destino do BigQuery é agrupada usando a chave primária fornecida e está sujeita a limitações de tabelas agrupadas.
- Ao atualizar uma configuração de transferência para o modo de ingestão incremental pela primeira vez, a primeira transferência de dados após essa atualização transfere todos os dados disponíveis da fonte de dados. As transferências de dados incrementais subsequentes vão transferir apenas as linhas novas e atualizadas da fonte de dados.
- Recomendamos que você crie índices na coluna de marca-d'água. Esse conector usa colunas de marca-d'água para filtros em transferências incrementais. Portanto, indexar essas colunas pode melhorar o desempenho.
- Ao fazer uma transferência incremental, é necessário usar o mapeamento de tipo de dados atualizado.
Antes de começar
Antes de programar uma transferência de dados do Microsoft SQL Server, é necessário atender aos seguintes pré-requisitos.
Pré-requisitos do Microsoft SQL Server
Você precisa ter criado uma conta de usuário no banco de dados do Microsoft SQL Server. Para mais informações, consulte Criar um usuário com um login.
Pré-requisitos do BigQuery
- Verifique se você concluiu todas as ações necessárias para ativar o serviço de transferência de dados do BigQuery.
- Crie um conjunto de dados do BigQuery para armazenar os dados.
Funções exigidas
Para receber as permissões necessárias para criar uma transferência de dados do Microsoft SQL Server, peça ao administrador para conceder a você o Administrador do BigQuery (roles/bigquery.admin) papel do IAM no seu projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para criar uma transferência de dados do Microsoft SQL Server. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar uma transferência de dados do Microsoft SQL Server:
-
bigquery.transfers.update -
bigquery.datasets.get
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Configuração de rede
É necessário configurar redes específicas quando um endereço IP público não está disponível para a conexão do banco de dados do Microsoft SQL Server. Para mais informações, consulte as seções a seguir:
- Configurar uma conexão com a Google Cloud instância
- Configurar uma conexão com a AWS
- Configurar uma conexão com o Azure
Configurar uma transferência de dados do Microsoft SQL Server
Selecione uma das seguintes opções:
Console
Acesse a página Transferências de dados.
Clique em Criar transferência.
No campo Fonte da seção Tipo de fonte, selecione Microsoft SQL Server.
Na seção Detalhes da fonte de dados, faça o seguinte:
- Em Anexo de rede, selecione um anexo de rede existente ou clique em Criar anexo de rede.
- Em Host, insira o nome do host ou o endereço IP do banco de dados do Microsoft SQL Server.
- Em Número da porta, insira o número da porta do banco de dados do Microsoft SQL Server.
- Em Nome do banco de dados, insira o nome do banco de dados do Microsoft SQL Server.
- Em Nome de usuário, insira o nome de usuário do usuário do Microsoft SQL Server que está iniciando a conexão do banco de dados do Microsoft SQL Server.
- Em Senha, insira a senha do usuário do Microsoft SQL Server que está iniciando a conexão do banco de dados do Microsoft SQL Server.
- Em Modo TLS, selecione uma opção no menu. Para mais informações sobre os modos TLS, consulte Configuração do TLS.
- Em Certificado PEM confiável, insira o certificado público da autoridade de certificação (CA) que emitiu o certificado TLS do servidor de banco de dados. Para mais informações, consulte Certificado de servidor confiável (PEM).
- Em Ativar mapeamento legado, selecione true (padrão) para usar o mapeamento legado do tipo de dados. Selecione false para usar o mapeamento de tipo de dados atualizado. Se você estiver fazendo uma transferência incremental, esse valor precisará ser false. Para mais informações sobre as atualizações de mapeamento de tipo de dados , consulte 16 de março de 2027. servidor de banco de dados.
- Em Tipo de ingestão, selecione Completa ou Incremental.
- Se você selecionar Incremental (Prévia), em Modo de gravação, selecione Anexar ou Upsert. Para mais informações sobre os diferentes modos de gravação, consulte Transferências completas ou incrementais .
- Em Objetos do Microsoft SQL Server a serem transferidos, navegue pela tabela do Microsoft SQL Server ou insira manualmente os nomes das tabelas necessárias para a transferência.
Na seção Configurações de destino, em Conjunto de dados, selecione o conjunto de dados que você criou para armazenar seus dados ou clique em Criar novo conjunto de dados e crie um para usar como conjunto de dados de destino.
No campo Nome de exibição, na seção Nome de configuração da transferência , insira um nome para a transferência. O nome da transferência pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.
Na seção Opções de programação, realize estas ações:
- Selecione uma frequência de repetição. Se você selecionar a opção Horas, Dias (padrão), Semanas ou Meses, também precisará especificar uma frequência. Também é possível selecionar a opção Personalizado para criar uma frequência de repetição mais específica. Se você selecionar a opção On demand, essa transferência de dados só será executada quando você acioná-la manualmente.
- Se aplicável, selecione a opção Começar agora ou Começar no horário definido e forneça uma data de início e um horário de execução.
Opcional: na seção Opções de notificação, faça o seguinte:
- Para ativar as notificações por e-mail, clique no botão de alternância Notificações por e-mail para a posição ativada. Quando você ativa essa opção, o administrador de transferências recebe uma notificação por e-mail quando ocorre uma falha na execução de uma transferência.
- Para configurar as notificações de execução do Pub/Sub para sua transferência, clique no botão de alternância Notificações do Pub/Sub para a posição ativada. Selecione o nome do tópico ou clique em Criar um tópico para criar um.
Opcional: na seção Opções avançadas, selecione um tipo de criptografia para essa transferência. É possível selecionar uma chave gerenciada pelo Google Google-owned and Google-managed encryption key ou uma chave do Cloud Key Management Service de propriedade do cliente. Para mais informações sobre chaves de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Clique em Salvar.
bq
Insira o comando bq mk
e forneça a sinalização de execução da transferência --transfer_config:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=DISPLAY_NAME \ --target_dataset=DATASET \ --params='PARAMETERS'
Substitua:
PROJECT_ID(opcional): ID do seu Google Cloud projeto. Se a sinalização--project_idnão for fornecida para especificar um projeto específico, o projeto padrão será usado.DATA_SOURCE: a fonte de dados, que ésqlserver.DISPLAY_NAME: o nome de exibição da configuração da transferência de dados. O nome da transferência pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.DATASET: o conjunto de dados de destino na configuração da transferência de dados.PARAMETERS: o parâmetro da configuração de transferência criada no formato JSON. Por exemplo:--params='{"param":"param_value"}'. Confira a seguir os parâmetros de uma transferência do Microsoft SQL Server:connector.networkAttachment(opcional): o nome do anexo de rede para se conectar ao banco de dados do Microsoft SQL Server.connector.database: o nome do banco de dados do Microsoft SQL Server.connector.endpoint.host: o nome do host ou o endereço IP do banco de dados.connector.endpoint.port: o número da porta do banco de dados.connector.authentication.username: o nome de usuário do usuário do banco de dados.connector.authentication.password: a senha do usuário do banco de dados.connector.legacyMapping: definido comotrue(padrão) para usar o mapeamento legado do tipo de dados. Defina comofalsepara usar o mapeamento de tipo de dados atualizado. Se você estiver fazendo uma transferência incremental, esse valor precisará serfalse. Para mais informações sobre as atualizações de mapeamento de tipo de dados , consulte 16 de março de 2027.connector.tls.mode: especifique uma configuração de TLS a ser usada com essa transferência:ENCRYPT_VERIFY_CA_AND_HOSTpara criptografar dados e verificar a AC e o nome do hostENCRYPT_VERIFY_CApara criptografar dados e verificar apenas a ACENCRYPT_VERIFY_NONEpara criptografia de dados apenasDISABLEpara nenhuma criptografia ou verificação
connector.tls.trustedServerCertificate: (opcional) forneça um ou mais certificados codificados em PEM. Necessário apenas se o valor deconnector.tls.modeforENCRYPT_VERIFY_CA_AND_HOSTouENCRYPT_VERIFY_CA.ingestionType: especifiquefullouincremental. As transferências incrementais são aceitas na visualização. Para mais informações, consulte Transferências completas ou incrementais.writeMode: especifiqueWRITE_MODE_APPENDouWRITE_MODE_UPSERT.watermarkColumns: especifique colunas na tabela como colunas de marca-d'água. Esse campo é obrigatório para transferências incrementais.primaryKeys: especifique colunas na tabela como chaves primárias. Esse campo é obrigatório para transferências incrementais.assets: uma lista dos nomes das tabelas do Microsoft SQL Server a serem transferidas do banco de dados do Microsoft SQL Server como parte da transferência.
Por exemplo, o comando a seguir cria uma transferência do Microsoft SQL Server chamada My Transfer:
bq mk \ --transfer_config --target_dataset=mydataset --data_source=sqlserver --display_name='My Transfer' --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":"1520", "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1", "ingestionType":"incremental", "writeMode":"WRITE_MODE_APPEND", "watermarkColumns":["createdAt","createdAt"], "primaryKeys":[['dep_id'], ['report_by','report_title']], "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'
Ao especificar vários recursos durante uma transferência incremental, os valores dos campos watermarkColumns e primaryKeys correspondem à posição dos valores no campo assets. No exemplo a seguir, dep_id corresponde à tabela DB1/DEPARTMENT, enquanto report_by e report_title correspondem à tabela DB1/EMPLOYEES.
"primaryKeys":[['dep_id'], ['report_by','report_title']], "assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
Para executar manualmente uma transferência de dados fora da programação normal, inicie uma execução de preenchimento.
Resolver problemas
Para resolver problemas na transferência de dados, consulte Problemas de transferência do Microsoft SQL Server.
Transferir metadados
Também é possível usar o conector do Microsoft SQL Server para transferir metadados para o Knowledge Catalog. Para mais informações, consulte Carregar metadados do Microsoft SQL Server no Knowledge Catalog.A seguir
- Leia uma visão geral sobre o serviço de transferência de dados do BigQuery.
- Saiba como gerenciar transferências, incluindo informações sobre uma configuração de transferência, como listar configurações de transferência e como visualizar o histórico de execução de uma transferência.
- Saiba como carregar dados com operações do BigQuery Omni.