Client Cassandra và ScyllaDB cho Mac
Duyệt keyspace và table, chạy CQL trong editor, và sửa các dòng được ghi lại theo đầy đủ khóa chính. Cùng một driver còn kết nối tới ScyllaDB và Amazon Keyspaces.
Dùng được trên MacDriver được tải về ở lần đầu bạn chọn Cassandra


Tóm tắt
- Ngôn ngữ query
- CQL
- Driver
- Tải về ở lần dùng đầuDùng chung với ScyllaDB
- Cách kết nối
- Host và port, SSH tunnel, SSL/TLS, AWS IAM
- Port mặc định
- 9042
- Phiên bản tối thiểu
- 3.0, theo tài liệu
- iPhone và iPad
- Không mở được
Kết nối
Nhập một contact point và port của nó, kèm tên đăng nhập và mật khẩu nếu cluster có cấu hình authenticator. Không có ô keyspace: hãy chọn keyspace trong sidebar sau khi kết nối, hoặc ghi nó vào phần path của một URL cassandra:// hay cql:// rồi import URL đó. Việc đổi keyspace diễn ra ngay trên connection đang dùng và danh sách không hiện các keyspace hệ thống, còn những tab đang mở vẫn ở lại keyspace của riêng chúng.
Connection mới để TLS ở trạng thái tắt. Ưu tiên (Preferred) và Required đều mã hóa mà không kiểm tra chứng chỉ, vì driver không có opportunistic TLS. Xác minh CA (Verify CA) và Xác minh danh tính (Verify Identity) cần một file chứng chỉ CA và không bao giờ quay về dùng chứng chỉ gốc của hệ thống. Với mutual TLS, hãy thêm chứng chỉ client, key của nó và passphrase của key. Cluster nằm trong mạng nội bộ được kết nối qua SSH tunnel.
Amazon Keyspaces đăng nhập bằng SigV4 thay vì mật khẩu. Hãy trỏ connection tới endpoint theo region, chẳng hạn cassandra.us-east-1.amazonaws.com ở port 9142, đặt Xác thực (Authentication) sang một chế độ AWS IAM (tiếng Anh) (access key, profile hoặc AWS IAM Identity Center), để trống tên đăng nhập và mật khẩu, rồi bật TLS, vì Keyspaces từ chối kết nối không mã hóa.
Duyệt dữ liệu và chạy CQL
Mở một table từ sidebar để xem trong data grid. List, set, map và tuple hiện dưới dạng collection, user-defined type hiện theo các field của nó, duration hiện như 1d2h30m, vector là một danh sách số và blob ở dạng hex. Kết quả trong CQL editor chỉ đọc, nên muốn sửa dòng thì hãy mở table từ sidebar.
CQL không có OFFSET, nên các trang được đọc lần lượt từ dòng đầu tiên: Next và Previous qua những trang đã xem tốn một lần đọc cho mỗi trang, còn nhảy tới một trang ở xa sẽ đọc mọi trang đứng trước nó. Các dòng đến theo thứ tự token, và bấm vào tiêu đề cột không sắp xếp lại chúng, vì CQL chỉ sắp xếp dòng theo clustering column bên trong một partition. Không có gì được đếm khi mở table; Đếm chính xác (Count Exactly) chạy SELECT COUNT(*), câu lệnh này đọc mọi partition.
Bộ lọc thêm ALLOW FILTERING, nên server đọc mọi partition trừ khi bộ lọc cố định toàn bộ partition key. Contains, starts with và ends with được gửi dưới dạng LIKE, mà Cassandra chỉ nhận trên cột có index SASI hoặc SAI. Những toán tử CQL không diễn đạt được, như not equals hay is NULL, bị từ chối kèm tên toán tử, và các điều kiện chỉ nối được bằng AND, vì CQL không có OR.
Giá trị bạn sửa được gửi theo kiểu CQL của cột, và chỉ cần một giá trị không đọc được là cả lần lưu dừng lại. Mỗi dòng được ghi bằng một câu lệnh riêng, xác định bằng đầy đủ khóa chính. Thêm dòng (Add Row) ghi INSERT … IF NOT EXISTS, nên dòng mới không bao giờ ghi đè lên dòng đang giữ khóa đó. Cột khóa không sửa trực tiếp được: hãy xóa dòng rồi thêm lại.
Cột counter cần UPDATE … SET c = c + 1 trong CQL editor; server từ chối câu UPDATE thông thường mà thao tác sửa trên data grid sinh ra. Thời gian chờ kết nối lấy từ phần Tùy chọn (Options) của connection, còn request CQL giữ thời gian chờ cố định của driver, không đổi theo query timeout của ứng dụng.
Keyspace và table
Tab Structure liệt kê kiểu CQL của từng cột, đánh dấu cả partition key lẫn clustering column là khóa chính, và hiện các secondary index của table. Tab này thêm và xóa cột; mọi thay đổi khác, kể cả index, là một câu lệnh CQL trong editor.
Tab DDL dựng lại CREATE TABLE từ danh sách cột, nên thiếu các tùy chọn của table như compaction, thứ tự clustering và cách chia giữa partition key với clustering key. Hãy đọc định nghĩa đầy đủ bằng DESCRIBE TABLE trong cqlsh. User-defined function và aggregate được liệt kê trong mục Functions.
Di chuyển dữ liệu
TablePro không có import cho Cassandra và ScyllaDB. Export table hoặc kết quả CQL ra CSV, JSON, SQL, XLSX, Markdown, HTML và XML.
iPhone và iPad
Ứng dụng cho iPhone và iPad không có driver Cassandra. Connection Cassandra đồng bộ từ máy Mac vẫn hiện trong danh sách nhưng không mở được.
Giới hạn
- Chỉ sửa được cột kiểu đơn trong data grid. Collection, tuple, user-defined type và duration cần câu UPDATE trong editor.
- Không có thiết lập consistency level. Câu lệnh chạy ở mức mặc định của driver là LOCAL_ONE.
- DataStax Astra DB không kết nối được, vì không nạp được secure connect bundle của nó.
- Materialized view và user-defined type không được liệt kê trong sidebar.
ScyllaDB
Port mặc định 9042Tải về ở lần dùng đầuiPhone và iPad: Không mở được
ScyllaDB có mục riêng trong danh sách loại connection và dùng driver Cassandra qua cùng giao thức CQL native, nên việc kết nối, duyệt, sửa dữ liệu và các giới hạn ở trên đều áp dụng nguyên vẹn. URL scylladb:// hoặc scylla:// tạo một connection ScyllaDB.
Khác biệt nằm ở thanh lọc: ScyllaDB nhận câu LIKE mà contains, starts with và ends with gửi đi trên bất kỳ cột nào, trong khi Cassandra cần index SASI hoặc SAI. ScyllaDB được thiết lập theo hướng dẫn thiết lập Cassandra (tiếng Anh).
Câu hỏi về Cassandra
TablePro có hiển thị trạng thái node hay ring không?
Không. Cassandra và ScyllaDB không có Server Dashboard. Hãy kiểm tra node bằng nodetool status, và dùng TablePro cho keyspace, table và CQL.
Làm sao để xem materialized view và user-defined type?
Chúng không có trong sidebar, nên hãy query keyspace system_schema trong CQL editor, ví dụ SELECT * FROM system_schema.views hoặc system_schema.types.
TablePro có kết nối được Cassandra 2.x không?
Không. Driver đọc schema từ system_schema, mà Cassandra 2.x không có, nên kết nối sẽ thất bại.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên