Sto provando a migrare il mio database da MySQL a Cassasndra. Il problema che sto affrontando è con uno dei tipi di colonna definiti come Enum ('GP', 'NGP', 'PGP', 'PAGP')). Cassandra non supporta i tipi di dati Enum (tuttavia supporta le raccolte). C'è un modo per implementare il tipo di dati Enum in Cassandra, in modo che il valore di una colonna debba essere limitato da un insieme di valori? Sto usando Apache Cassandra versione 2.0.7.Tipo di dati Enum in Cassandra
risposta
Per quanto ne so e dopo aver letto la documentazione sui tipi di cql, non è possibile utilizzare direttamente enum nelle istruzioni cql (lo controllo per i client java).
Quindi l'opzione che si ha è convertire l'Enum in stringa per includere il campo in un'istruzione cql. In questo modo, tutte le applicazioni utilizzano l'Enum, ma nel livello di back-end usano la rappresentazione delle stringhe per l'enum.
Sì, nella documentazione non esiste alcun tipo di dati come Enum. Penso di aver bisogno di replicare il comportamento. Ma quale sarebbe l'opzione se ho intenzione di spostare il mio attuale DB da MySQL a Cassandra? – Nayan
Opzioni? Cosa intendi? – ftrujillo
Intendo dire che attualmente sto usando MySQL che supporta Enum. Ma sulla base dei miei determinati fattori di business, potrei migrare a Cassandra. In tal caso, come posso supportare la colonna di tipo Enum nel Cassandra. Può darsi che io non stia interagendo con Cassandra tramite un client, possa interagire direttamente usando CQLSH. In tal caso, come utilizzare la colonna di tipo Enum? – Nayan
stavo affrontando lo stesso problema con un enum intero ... ecco quello che ho fatto:
MappingConfiguration.Global.Define(
new[] {
new Map<Login>()
.TableName("logins")
.PartitionKey(el => el.UserId)
.Column(el => el.UserId, cm => cm.WithName("user_id")),
.Column(el => el.Gender, cm => cm.WithName("gender_id").WithDbType<int>()),
});
con C# 2.5 e driver di DSE 4.7.
v'è più o meno supporto nativo di enumerazioni in Cassandra
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
Per quanto ne so è possibile scrivere i propri serializzatori personalizzati ecc per Cassandra e sarà in grado di capire il vostro enum specifica. Ma quei barattoli dovrebbero essere posti nella cartella Cassandra.
È anche possibile memorizzare come stringa o un valore int ordinale
Vedi datastax cassandra Object-mappatura API,
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
enum Gender { FEMALE, MALE };
// FEMALE will be persisted as 'FEMALE'
@Enumerated(EnumType.STRING)
private Gender gender;
// FEMALE will be persisted as 0, MALE as 1
@Enumerated(EnumType.ORDINAL)
private Gender gender
per Cassandra 3,0
enum State {INIT, RUNNING, STOPPING, STOPPED}
cluster.getConfiguration().getCodecRegistry()
.register(new EnumNameCodec<State>(State.class));
// schema: create table name_example(id int PRIMARY KEY, state text)
session.execute("insert into name_example (id, state) values (1, ?)", State.INIT);
// state is saved as 'INIT'
http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/extras/
- 1. Cassandra tipo di errore
- 2. Come impostare il tipo di dati enum nella dottrina 2
- 3. serializzazione Json.NET personalizzata di un tipo enum con annotazione dati
- 4. Dati serie temporali Cassandra
- 5. SQL Server equivalente al tipo di dati enum MySQL?
- 6. Convertire Enum in tipo sottostante
- 7. membri enum di tipo Int32
- 8. Convertire da enum ordinal a enum tipo
- 9. Enum con dati in swift
- 10. Come cassandra replica i dati
- 11. Annotazione dati Entity Framework "Nome visualizzato" del tipo Enum
- 12. Come rappresentare i dati spaziali in Cassandra
- 13. Parse stringa enum tipo
- 14. lista Postgres ENUM tipo
- 15. Le istanze enum sono "racchiuse" nel tipo enum in java?
- 16. MSVC tipo const enum
- 17. Creazione del tipo di variabile ENUM in MySQL
- 18. Tipo ENUM in SQLAlchemy con PostgreSQL
- 19. metodi get() in tipo enum Java
- 20. Utilizzo del tipo enum in un'istruzione switch
- 21. Schema JSON "non in" tipo enum?
- 22. Streaming di dati da Kafka a Cassandra in tempo reale
- 23. Errore di lettura in cassandra
- 24. Tipo bit sicuro enum flags
- 25. Chiavi di raggruppamento in Cassandra
- 26. Java Enum Tipo di codificazione Convenzione
- 27. Associazione di un tipo generico con Enum in Java
- 28. Ottieni il tipo di enum sottostanti/derivati?
- 29. Dati spaziali con mongodb o cassandra
- 30. Importazione dati da cassandra a solr
Vedere anche [Datastax java driver 3.0.0 Annotazione enumerata non trovata] (http://stackoverflow.com/a/35135223) –