Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar a Atividade de Cópia em um pipeline do Azure Data Factory ou do Synapse Analytics para copiar dados de um banco de dados Cassandra. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Importante
O conector Cassandra versão 1.0 está em fase de remoção. Recomenda-se atualizar o conector Cassandra da versão 1.0 para 2.0.
Capacidades suportadas
Este conector Cassandra suporta as seguintes funcionalidades:
| Capacidades suportadas | IR |
|---|---|
| Atividade de cópia (fonte/-) | (1) (2) |
| Atividade de Pesquisa | (1) (2) |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para obter uma lista de armazenamentos de dados suportados como fontes/coletores, consulte a tabela Armazenamentos de dados suportados.
Especificamente, este conector Cassandra suporta:
- Cassandra versões 3.x.x e 4.x.x para a versão 2.0.
- Cassandra versões 2.x e 3.x para a versão 1.0.
- Cópia de dados usando autenticação básica ou anônima .
Nota
Para atividades executadas no Self-hosted Integration Runtime, Cassandra 3.x é suportado desde IR versão 3.7 e superior.
Pré-requisitos
Se o seu armazenamento de dados estiver localizado dentro de uma rede local, uma rede virtual do Azure ou uma Amazon Virtual Private Cloud, é necessário configurar um tempo de execução de integração auto-hospedado para se conectar a ele.
Se o seu armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Tempo de Execução de Integração do Azure. Se o acesso for restrito a IPs aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.
Você também pode usar o recurso tempo de execução de integração de rede virtual gerida no Azure Data Factory para aceder à rede local sem instalar e configurar um tempo de execução de integração auto-hospedado.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.
O Integration Runtime fornece um driver Cassandra integrado, portanto, você não precisa instalar manualmente nenhum driver ao copiar dados de/para Cassandra.
Iniciar
Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- Ferramenta Copiar dados
- portal do Azure
- SDK do .NET
- Python SDK
- Azure PowerShell
- API REST
- Modelo Azure Resource Manager
Criar um serviço vinculado ao Cassandra usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado a Cassandra na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:
Procure Cassandra e selecione o conector Cassandra.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas para o conector Cassandra.
Propriedades do serviço vinculado
As seguintes propriedades são suportadas para o serviço vinculado Cassandra:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type deve ser definida como: Cassandra | Sim |
| versão | A versão que especificares. | Sim para a versão 2.0. |
| alojar | Um ou mais endereços IP ou nomes de host de servidores Cassandra. Especifique uma lista separada por vírgulas de endereços IP ou nomes de host para se conectar a todos os servidores simultaneamente. |
Sim |
| porta | A porta TCP que o servidor Cassandra usa para escutar conexões de cliente. | Não (o padrão é 9042) |
| tipoDeAutenticação | Tipo de autenticação usado para se conectar ao banco de dados Cassandra. Os valores permitidos são: Básico e Anônimo. |
Sim |
| nome de utilizador | Especifique o nome de usuário para a conta de usuário. | Sim, se authenticationType estiver definido como Basic. |
| palavra-passe | Especifique a senha para a conta de usuário. Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. | Sim, se authenticationType estiver definido como Basic. |
| ConecteVia | O Integration Runtime a ser utilizado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, ele usará o Tempo de Execução de Integração do Azure padrão. | Não |
Nota
Atualmente, a conexão com Cassandra usando TLS não é suportada.
Exemplo: versão 2.0
{
"name": "CassandraLinkedService",
"properties": {
"type": "Cassandra",
"version": "2.0",
"typeProperties": {
"host": "<host>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: versão 1.0
{
"name": "CassandraLinkedService",
"properties": {
"type": "Cassandra",
"typeProperties": {
"host": "<host>",
"authenticationType": "Basic",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo sobre conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados Cassandra.
Para copiar dados de Cassandra, defina a propriedade type do conjunto de dados como CassandraTable. As seguintes propriedades são suportadas:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como: CassandraTable | Sim |
| espaço de chaves | Nome do keyspace ou esquema no banco de dados Cassandra. | Não (se "query" for especificado para "CassandraSource") |
| nomeDaTabela | Nome da tabela no banco de dados Cassandra. | Não (se "query" for especificado para "CassandraSource") |
Exemplo:
{
"name": "CassandraDataset",
"properties": {
"type": "CassandraTable",
"typeProperties": {
"keySpace": "<keyspace name>",
"tableName": "<table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<Cassandra linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propriedades da atividade de cópia
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte Cassandra.
Cassandra como fonte
Se você usar a versão 2.0 para copiar dados de Cassandra, defina o tipo de origem na atividade de cópia como CassandraSource. As seguintes propriedades são suportadas na seção de origem da atividade de cópia:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade tipo da fonte de atividade de cópia deve ser definida como: CassandraSource | Sim |
| consulta | Use a consulta personalizada para ler dados. Consulta CQL, ver Referência CQL. | Não (se "tableName" e "keyspace" no conjunto de dados estiverem especificados). |
| nível de consistência | O nível de consistência especifica quantas réplicas devem responder a uma solicitação de leitura antes de retornar dados ao aplicativo cliente. Cassandra verifica o número especificado de réplicas em busca de dados para satisfazer a solicitação de leitura. Consulte Configurando a consistência de dados para obter detalhes. Os valores permitidos são: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM e LOCAL_ONE. |
Não (o padrão é ONE) |
Exemplo:
"activities":[
{
"name": "CopyFromCassandra",
"type": "Copy",
"inputs": [
{
"referenceName": "<Cassandra input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "CassandraSource",
"query": "select id, firstname, lastname from mykeyspace.mytable",
"consistencyLevel": "one"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Se você usar a versão 1.0 para copiar dados de Cassandra, defina o tipo de origem na atividade de cópia como CassandraSource. As seguintes propriedades são suportadas na seção de origem da atividade de cópia:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade tipo da fonte de atividade de cópia deve ser definida como: CassandraSource | Sim |
| consulta | Use a consulta personalizada para ler dados. Consulta SQL-92 ou consulta CQL. Consulte a Referência CQL. Ao usar a consulta SQL, especifique keyspace name.table name para representar a tabela que você deseja consultar. |
Não (se "tableName" e "keyspace" no conjunto de dados estiverem especificados). |
| nível de consistência | O nível de consistência especifica quantas réplicas devem responder a uma solicitação de leitura antes de retornar dados ao aplicativo cliente. Cassandra verifica o número especificado de réplicas em busca de dados para satisfazer a solicitação de leitura. Consulte Configurando a consistência de dados para obter detalhes. Os valores permitidos são: ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM e LOCAL_ONE. |
Não (o padrão é ONE) |
Mapeamento de tipo de dados para Cassandra
Ao copiar dados do Cassandra, os seguintes mapeamentos são utilizados para converter tipos de dados do Cassandra em tipos de dados provisórios usados internamente no serviço. Consulte Mapeamentos de esquema e tipo de dados para entender como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino.
| Tipo de dados Cassandra | Tipo de dados de serviço provisório (para a versão 2.0) | Tipo de dados de serviço provisório (para a versão 1.0) |
|---|---|---|
| ASCII | Cadeia | Cadeia |
| BIGINT | Int64 | Int64 |
| BLOB | Byte[] | Byte[] |
| BOOLEANO | booleano | booleano |
| DATA | Data e Hora | Data e Hora |
| DECIMAL | Decimal | Decimal |
| DUPLO | Duplo | Duplo |
| FLUTUAR | Solteiro | Solteiro |
| INET | Cadeia | Cadeia |
| INT | Int32 | Int32 |
| SMALLINT | Curto | Int16 |
| TEXTO | Cadeia | Cadeia |
| CARIMBO DE DATA/HORA | Data e Hora | Data e Hora |
| Identificador Único Universal de Tempo (TIMEUUID) | GUID | GUID |
| TINYINT | SByte | Int16 |
| Identificador Único Universal (UUID) | GUID | GUID |
| VARCHAR | Cadeia | Cadeia |
| VARINT | Decimal | Decimal |
Nota
Para tipos de coleção (mapa, conjunto, lista, etc.) na versão 1.0, consulte a seção Trabalhar com tipos de coleção Cassandra usando tabela virtual ao usar a versão 1.0 .
Não há suporte para tipos definidos pelo usuário.
O comprimento das colunas binária e de texto não pode ser maior que 4000.
Trabalhar com coleções ao usar a versão 2.0
Ao usar a versão 2.0 para copiar dados do banco de dados Cassandra, nenhuma tabela virtual para tipos de coleção é criada. Você pode copiar uma tabela de origem para o coletor em seu tipo original no formato JSON.
Exemplo
Por exemplo, o seguinte "ExampleTable" é uma tabela de banco de dados Cassandra que contém uma coluna de chave primária inteira chamada "pk_int", uma coluna de texto chamada value, uma coluna de lista, uma coluna de mapa e uma coluna de conjunto (chamada "StringSet").
| pk_int | Valor | Lista | Mapa | Conjunto de Strings |
|---|---|---|---|---|
| 1 | "Valor da amostra 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | {"A", "B", "C"} |
| 3 | "Valor da amostra 3" | ["100", "101", "102", "105"] | {"S1": "t"} | {"A", "E"} |
Os dados podem ser lidos diretamente de uma tabela de origem, e os valores de coluna são preservados em seus tipos originais no formato JSON, conforme ilustrado na tabela a seguir:
| pk_int | Valor | Lista | Mapa | Conjunto de Strings |
|---|---|---|---|---|
| 1 | "Valor da amostra 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | ["A", "B", "C"] |
| 3 | "Valor da amostra 3" | ["100", "101", "102", "105"] | {"S1": "t"} | [A, E] |
Trabalhar com coleções usando tabela virtual ao usar a versão 1.0
O serviço usa um driver ODBC interno para se conectar e copiar dados do seu banco de dados Cassandra. Para tipos de coleção, incluindo mapa, conjunto e lista, o driver renormaliza os dados em tabelas virtuais correspondentes. Especificamente, se uma tabela contiver colunas de coleção, o driver gerará as seguintes tabelas virtuais:
- Uma tabela base, que contém os mesmos dados que a tabela real, exceto para as colunas de coleção. A tabela base usa o mesmo nome que a tabela real que ela representa.
- Uma tabela virtual para cada coluna da coleção, que expande os dados aninhados. As tabelas virtuais que representam coleções são nomeadas usando o nome da tabela real, um separador "vt" e o nome da coluna.
As tabelas virtuais referem-se aos dados na tabela real, permitindo que o driver acesse os dados desnormalizados. Consulte a seção Exemplo para obter detalhes. Você pode acessar o conteúdo das coleções Cassandra consultando e juntando as tabelas virtuais.
Exemplo
Por exemplo, o seguinte "ExampleTable" é uma tabela de banco de dados Cassandra que contém uma coluna de chave primária inteira chamada "pk_int", uma coluna de texto chamada value, uma coluna de lista, uma coluna de mapa e uma coluna de conjunto (chamada "StringSet").
| pk_int | Valor | Lista | Mapa | Conjunto de Strings |
|---|---|---|---|---|
| 1 | "Valor da amostra 1" | ["1", "2", "3"] | {"S1": "a", "S2": "b"} | {"A", "B", "C"} |
| 3 | "Valor da amostra 3" | ["100", "101", "102", "105"] | {"S1": "t"} | {"A", "E"} |
O driver geraria várias tabelas virtuais para representar essa única tabela. As colunas de chave estrangeira nas tabelas virtuais referenciam as colunas de chave primária na tabela concreta e indicam a que linha da tabela concreta corresponde a linha da tabela virtual.
A primeira tabela virtual é a tabela base chamada "ExampleTable" é mostrada na tabela a seguir:
| pk_int | Valor |
|---|---|
| 1 | "Valor da amostra 1" |
| 3 | "Valor da amostra 3" |
A tabela base contém os mesmos dados que a tabela de banco de dados original, exceto para as coleções, que são omitidas dessa tabela e expandidas em outras tabelas virtuais.
As tabelas a seguir mostram as tabelas virtuais que renormalizam os dados das colunas List, Map e StringSet. As colunas com nomes que terminam com "_index" ou "_key" indicam a posição dos dados dentro da lista ou mapa original. As colunas com nomes que terminam com "_value" contêm os dados expandidos da coleção.
Tabela "ExampleTable_vt_List":
| pk_int | Índice de Lista | Valor_da_Lista |
|---|---|---|
| 1 | 0 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 3 | 0 | 100 |
| 3 | 1 | 101 |
| 3 | 2 | 102 |
| 3 | 3 | 103 |
Quadro "ExampleTable_vt_Map":
| pk_int | Legenda do mapa | Valor_mapa |
|---|---|---|
| 1 | S1 | Um |
| 1 | S2 | b |
| 3 | S1 | t |
Quadro "ExampleTable_vt_StringSet":
| pk_int | ConjuntoDeStrings_valor |
|---|---|
| 1 | Um |
| 1 | B |
| 1 | C |
| 3 | Um |
| 3 | E |
Propriedades da atividade de consulta
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Atualize o conector Cassandra
Aqui estão as etapas que ajudam você a atualizar o conector Cassandra:
Na página Editar serviço vinculado , selecione a versão 2.0 e configure o serviço vinculado consultando as propriedades do serviço vinculado.
Na versão 2.0, o
queryna fonte de atividade de cópia suporta apenas a consulta CQL, não a consulta SQL-92. Para obter mais informações, consulte Cassandra como fonte.O mapeamento de tipo de dados para a versão 2.0 é diferente do da versão 1.0. Para saber o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para Cassandra.
Diferenças entre Cassandra versão 2.0 e versão 1.0
O conector Cassandra versão 2.0 oferece novas funcionalidades e é compatível com a maioria dos recursos da versão 1.0. A tabela abaixo mostra as diferenças de recursos entre a versão 2.0 e a versão 1.0.
| Versão 2.0 | Versão 1.0 |
|---|---|
| Suporte para consulta CQL. | Suporte para consulta SQL-92 ou consulta CQL. |
Suporte especificando keyspace e tableName separadamente no conjunto de dados. |
Suporte à edição keyspace quando você seleciona inserir manualmente o nome da tabela no conjunto de dados. |
| Nenhuma tabela virtual é criada para tipos de coleção. Para obter mais informações, consulte Trabalhar com coleções ao usar a versão 2.0. | As tabelas virtuais são criadas para tipos de coleção. Para obter mais informações, consulte Trabalhar com tipos de coleção Cassandra usando tabela virtual ao usar a versão 1.0. |
| Os mapeamentos a seguir são usados de tipos de dados Cassandra para tipos de dados de serviço provisórios. SMALLINT -> curto TINYINT -> SByte |
Os mapeamentos a seguir são usados de tipos de dados Cassandra para tipos de dados de serviço provisórios. SMALLINT -> Int16 TINYINT -> Int16 |
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados suportados como fontes e destinos pela atividade de cópia, consulte armazenamentos de dados suportados.