Tôi cố gắng để di chuyển cơ sở dữ liệu của tôi từ MySQL sang Cassasndra. Vấn đề tôi đang phải đối mặt là với một trong những loại cột được định nghĩa là Enum (enum ('GP', 'NGP', 'PGP', 'PagP')). Cassandra không hỗ trợ kiểu dữ liệu Enum (nó hỗ trợ các bộ sưu tập). Có cách nào để thực hiện kiểu dữ liệu Enum trong Cassandra, do đó giá trị của một cột nên được giới hạn từ một tập hợp các giá trị? Tôi đang sử dụng Apache Cassandra phiên bản 2.0.7.Enum kiểu dữ liệu trong Cassandra
Trả lời
Theo tôi biết và sau khi đọc các tài liệu về các loại CQL, bạn không thể sử dụng trực tiếp enum trong báo cáo CQL (tôi kiểm tra này cho các khách hàng java).
Vì vậy, các tùy chọn mà bạn có là chuyển đổi các Enum để String để bao gồm các lĩnh vực trong một tuyên bố CQL. Bằng cách này tất cả các ứng dụng của bạn sử dụng Enum nhưng trong lớp phụ trợ sử dụng biểu diễn chuỗi cho enum.
Yes trong tài liệu hướng dẫn không có kiểu dữ liệu như Enum. Tôi nghĩ rằng tôi cần phải tái tạo hành vi. Nhưng nó là lựa chọn gì nếu tôi định chuyển DB hiện tại của mình từ MySQL sang Cassandra? – Nayan
Tùy chọn? Ý anh là gì? – ftrujillo
Tôi có nghĩa là hiện tại tôi đang sử dụng MySQL hỗ trợ Enum. Nhưng dựa trên các yếu tố kinh doanh nhất định của tôi, tôi có thể di cư đến Cassandra. Trong trường hợp đó, làm thế nào tôi có thể hỗ trợ cột kiểu Enum đó trong Cassandra. Nó có thể là trường hợp mà tôi đang không tương tác với Cassandra qua một khách hàng, có thể tương tác trực tiếp sử dụng CQLSH. Trong trường hợp đó, làm thế nào để sử dụng cột kiểu Enum đó? – Nayan
tôi đã phải đối mặt với cùng một vấn đề với một số nguyên enum ... đây là những gì tôi đã làm:
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>()),
});
Sử dụng C# tài xế 2.5 và DSE 4.7.
có nhiều hoặc ít hơn mẹ đẻ ủng hộ của enums trong cassandra
http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/crudOperations.html
Theo như tôi biết bạn có thể viết serializers tùy chỉnh của riêng bạn vv cho cassandra và nó sẽ có thể hiểu enum cụ thể của bạn. Nhưng những cái lọ đó nên ở trong thư mục cassandra.
Bạn cũng có thể lưu nó như String hoặc giá trị int thứ
Xem datastax cassandra Object-mapping 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
cho 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. Hadoop trên cơ sở dữ liệu cassandra
- 2. Quy ước tên tệp dữ liệu Cassandra
- 3. Vấn đề sao chép dữ liệu Cassandra
- 4. Làm thế nào để thiết lập kiểu dữ liệu enum trong học thuyết 2
- 5. Kích thước của dữ liệu kiểu enum trong C++ là bao nhiêu?
- 6. Các cách khác nhau để khai báo kiểu dữ liệu Enum trong Julia-Lang
- 7. Kiểu dữ liệu C# so với kiểu dữ liệu MySql
- 8. Enum datatype so với bảng dữ liệu trong MySQL?
- 9. Thiết kế cơ sở dữ liệu thời gian trong Cassandra
- 10. Bao nhiêu dữ liệu cho mỗi nút trong cụm Cassandra?
- 11. Khách hàng kho dữ liệu Cassandra trong ngôn ngữ Go
- 12. commitLog và SSTables trong cơ sở dữ liệu Cassandra
- 13. BigQuery kiểu dữ liệu
- 14. SQL Server 2005 có tương đương với kiểu dữ liệu ENUM của MySql không?
- 15. Mysql Thêm giá trị mới vào cột kiểu dữ liệu enum
- 16. kiểu dữ liệu lớn nhất trong C++?
- 17. Kiểu dữ liệu mảng DC2Type trong mysql
- 18. Đặt kiểu dữ liệu trong Swift
- 19. Nhiều kiểu dữ liệu mảng trong PostgreSQL
- 20. Đặt tên kiểu enum
- 21. Lưu trữ dữ liệu Apache Cassandra trên đĩa
- 22. Giao dịch với mô hình dữ liệu Cassandra
- 23. Lập trình tuôn ra dữ liệu đến cassandra mỗi lần trước khi cassandra tắt
- 24. Python đọc dữ liệu Cassandra vào gấu trúc
- 25. Xuất lượng lớn dữ liệu từ Cassandra sang CSV
- 26. java kiểu dữ liệu byte
- 27. kiểu dữ liệu thứ bậc
- 28. PHP mysqli_fetch_field kiểu dữ liệu
- 29. IN với Dữ liệu Mùa xuân và Cassandra @Query
- 30. x64 SSE kiểu dữ liệu
Xem thêm [không tìm thấy tài xế Datastax java 3.0.0 được liệt kê chú thích] (http://stackoverflow.com/a/35135223) –