Không gian phím trong CassandraVí dụ về Tạo, Chỉnh sửa & Xóa:

⚡ Tóm tắt thông minh

Không gian phím trong Cassandra Đây là vùng chứa dữ liệu bên ngoài cùng, tương đương với cơ sở dữ liệu trong hệ thống quan hệ, và nó quy định cách thức sao chép dữ liệu của mọi bảng bên trong. Trang này hướng dẫn cách tạo, chỉnh sửa và xóa.ping một không gian khóa, cùng với các thuộc tính và không gian khóa hệ thống của nó.

  • 🗄️ Định nghĩa cốt lõi: Keyspace chứa các bảng, chỉ mục và các kiểu dữ liệu do người dùng định nghĩa, đồng thời lưu trữ các thiết lập sao chép mà tất cả chúng đều kế thừa.
  • 🧭 Lựa chọn chiến lược: SimpleStrategy phù hợp với một trung tâm dữ liệu duy nhất; NetworkTopologyStrategy thiết lập hệ số sao chép cho mỗi trung tâm dữ liệu.
  • 🔢 Yếu tố sao chép: Ba bản sao là thiết lập tiêu chuẩn trong môi trường sản xuất, vì nó vẫn hoạt động bình thường ngay cả khi một nút bị lỗi tại QUORUM.
  • ✏️ Thay đổi giới hạn: Chiến lược, hệ số sao chép và ghi bền vững có thể thay đổi; tên không gian khóa thì không thể thay đổi.
  • 💾 Viết bền bỉ: Đặt giá trị này thành false sẽ bỏ qua nhật ký cam kết, đánh đổi khả năng an toàn khi xảy ra lỗi để lấy tốc độ ghi.
  • 🗑️ Hành vi rơi: Rơiping xóa mọi bảng và chỉ mục, sau đó Cassandra Chụp ảnh tự động.

Cassandra Không gian khóa Tạo Sửa Xóa

Không gian khóa trong là gì Cassandra?

Một không gian khóa trong Cassandra Đây là một thùng chứa dữ liệu, tương tự như cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Cassandra Keyspace xác định cách dữ liệu sao chép trên các nút.

Vì cơ chế sao chép được thiết lập trên keyspace chứ không phải trên từng bảng riêng lẻ, nên mọi bảng được tạo bên trong keyspace đều kế thừa cùng một chiến lược và hệ số sao chép. Điều đó khiến keyspace trở thành yếu tố quyết định đầu tiên trong bất kỳ lược đồ nào.

Cách tạo không gian phím trong Cassandra

Không gian khóa là một đối tượng chứa các họ cột, kiểu do người dùng xác định. TRONG Cassandra, Không gian phím tương tự như RDBMS Cơ sở dữ liệu. Không gian khóa chứa các họ cột, chỉ mục, loại do người dùng xác định, nhận thức về trung tâm dữ liệu, chiến lược được sử dụng trong không gian khóa, hệ số sao chép, v.v.

Yêu cầu "Tạo không gian phím” được sử dụng để tạo không gian phím trong Cassandra.

cú pháp

CREATE KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
};

Các thành phần khác nhau của Cassandra không gian phím

  • Chiến lược: Khi khai báo tên chiến lược trong Cassandra. Có hai loại chiến lược được tuyên bố trong Cassandra Cú pháp.
  1. Chiến lược đơn giản: Chiến lược đơn giản được sử dụng khi bạn chỉ có một trung tâm dữ liệu. Trong chiến lược này, bản sao đầu tiên được đặt trên nút do bộ phân vùng chọn. Các nút còn lại được đặt theo chiều kim đồng hồ trong vòng mà không cần xem xét vị trí giá đỡ hoặc nút.
  2. Chiến lược cấu trúc liên kết mạng: Chiến lược cấu trúc mạng được sử dụng khi bạn có nhiều hơn một trung tâm dữ liệu. Trong chiến lược này, bạn phải cung cấp hệ số sao chép cho từng trung tâm dữ liệu riêng biệt. Chiến lược cấu trúc mạng đặt các bản sao vào các nút theo chiều kim đồng hồ trong cùng một trung tâm dữ liệu. Chiến lược này cố gắng đặt các bản sao vào các giá đỡ khác nhau.
  • Yếu tố sao chép: Hệ số sao chép là số lượng bản sao của dữ liệu được đặt trên các nút khác nhau. Để không bị lỗi, 3 là hệ số nhân rộng tốt. Nhiều hơn hai yếu tố sao chép đảm bảo không có điểm lỗi duy nhất. Đôi khi, máy chủ có thể ngừng hoạt động hoặc có thể xảy ra sự cố mạng, sau đó các bản sao khác sẽ cung cấp dịch vụ mà không gặp lỗi.
  • Ví dụ: Đây là ảnh chụp nhanh của lệnh được thực thi “Tạo không gian khóa” sẽ tạo không gian khóa trong Cassandra.

Tạo không gian phím trong Cassandra

CREATE KEYSPACE University WITH replication = {
    'class': 'SimpleStrategy',
    'replication_factor': 3
};

Sau khi thực hiện thành công lệnh “Tạo Keyspace”, Keyspace University sẽ được tạo trong Cassandra Với chiến lược “SimpleStrategy” và hệ số nhân bản là 3. Lưu ý rằng tên chiến lược phải được đặt trong dấu ngoặc kép; giá trị không được đặt trong dấu ngoặc kép sẽ bị từ chối vì lỗi cú pháp.

Thay đổi không gian phím Cassandra

Lệnh “Thay đổi không gian khóa” thay đổi hệ số sao chép, tên chiến lược và các thuộc tính ghi lâu bền trong không gian khóa đã tạo trong Cassandra.

cú pháp

ALTER KEYSPACE KeyspaceName WITH replication = {
    'class': 'StrategyName',
    'replication_factor': 3
}
AND DURABLE_WRITES = true;

Các khía cạnh chính trong khi thay đổi Keyspace trong Cassandra

  • Tên không gian khóa: Tên không gian khóa không thể thay đổi trong Cassandra.
  • Tên chiến lược: Tên chiến lược có thể được thay đổi bằng cách chỉ định tên chiến lược mới.
  • Hệ số sao chép: Hệ số sao chép có thể được thay đổi bằng cách chỉ định hệ số sao chép mới.
  • DURABLE_WRITES: Giá trị của DURABLE_WRITES có thể được thay đổi bằng cách chỉ định giá trị là true hoặc false. Theo mặc định, nó là true. Nếu được đặt thành false, sẽ không có bản cập nhật nào được ghi vào nhật ký cam kết và ngược lại.
  • Thực thi: Đây là ảnh chụp nhanh lệnh đã thực thi “Thay đổi không gian khóa” để thay đổi chiến lược không gian khóa từ 'SimpleStrategy' thành 'NetworkTopologyStrategy' và hệ số sao chép từ 3 thành 1 cho DataCenter1.

Thay đổi không gian phím Cassandra

ALTER KEYSPACE University WITH replication = {
    'class': 'NetworkTopologyStrategy',
    'DataCenter1': 1
};

Sau khi thực thi thành công lệnh “Alter Keyspace”, tên chiến lược sẽ được đổi từ 'SimpleStrategy' thành 'NetworkTopologyStrategy' và hệ số sao chép sẽ được thay đổi từ 3 thành 1 cho 'DataCenter1'.

Quan trọng: Việc tăng hệ số sao chép không tự động sao chép dữ liệu hiện có. Chạy sửa chữa nodetool trên không gian khóa bị ảnh hưởng sau đó, nếu không các bản sao mới sẽ vẫn trống cho đến khi quá trình sửa chữa đọc diễn ra để chạm vào từng hàng.

Cassandra Bỏ không gian phím

Yêu cầu 'Bỏ không gian phím' loại bỏ không gian phím bao gồm tất cả dữ liệu, họ cột, kiểu và chỉ mục do người dùng xác định từ CassandraTrước khi rơiping không gian khóa, Cassandra chụp ảnh nhanh không gian phím. Nếu không gian khóa không tồn tại trong Cassandra, Cassandra sẽ trả về lỗi trừ khi IF EXISTS được sử dụng.

cú pháp

DROP KEYSPACE IF EXISTS KeyspaceName;

Ví dụ

Đây là ảnh chụp nhanh của lệnh đã thực thi 'Thả Keyspace' sẽ loại bỏ Keyspace University.

Cassandra Bỏ không gian phím

DROP KEYSPACE University;

Sau khi thực hiện thành công lệnh 'Thả keyspace University', keyspace University sẽ bị loại khỏi Cassandra với tất cả dữ liệu và lược đồ.

Đây là ảnh chụp nhanh nơi lỗi được trả về khi cố gắng truy cập vào vùng phím không tồn tại.

Cassandra Bỏ không gian phím

Lưu ý: Không có sự khác biệt trong việc thả keyspace và xóa keyspace. Xóa không gian phím bằng với xóa không gian phím.

Thuộc tính không gian khóa và không gian khóa hệ thống

Ngoài việc tạo và bỏpingBa lệnh này bao gồm hầu hết các thao tác xử lý keyspace hàng ngày trong cqlsh.

DESCRIBE KEYSPACES;
DESCRIBE KEYSPACE University;
USE University;

Lệnh đầu tiên liệt kê mọi keyspace trên cụm, lệnh thứ hai in ra toàn bộ lược đồ của một keyspace bao gồm cả các bảng của nó, và lệnh thứ ba thiết lập keyspace hiện tại sao cho tên bảng không còn cần tiền tố nữa.

Cùng với các không gian khóa người dùng, Cassandra Nó vận chuyển một số tệp riêng của mình. Chúng xuất hiện trong kết quả đầu ra của lệnh DESCRIBE KEYSPACES và đáng được nhận biết hơn là xóa bỏ.

  • hệ thống: Trạng thái của nút cục bộ, bao gồm phạm vi mã thông báo và các nút ngang hàng mà nó biết.
  • lược đồ hệ thống: Định nghĩa của mọi keyspace, bảng, cột và chỉ mục trên cụm máy chủ.
  • xác thực hệ thống: Vai trò, quyền hạn và thông tin đăng nhập khi tính năng xác thực được bật.
  • hệ thống phân tán: Lịch sử sửa chữa và các sổ sách khác trên toàn cụm máy chủping.
  • hệ thống_traclà: Câu Hỏi traces bị bắt khi tracing đã được bật.

Hai trong số này cần được chú ý trong quá trình sản xuất. xác thực hệ thống Keyspace được tạo với hệ số sao chép mặc định là một; nếu nút đó bị mất, không ai có thể đăng nhập, vì vậy cần phải tăng hệ số này lên để phù hợp với cụm. lược đồ hệ thống Keyspace giải thích lý do tại sao các thay đổi lược đồ phải được áp dụng từng cái một, vì các thay đổi đồng thời có thể tạo ra các phiên bản lược đồ xung đột giữa các nút.

Các lỗi thường gặp về Keyspace và cách khắc phục

Hầu hết các lỗi liên quan đến keyspace đều tạo ra một thông báo ngắn gọn, dễ nhận biết.

lỗi Nguyên nhân và cách khắc phục
Không gian khóa không xác định Chưa có keyspace nào được chọn. Hãy chạy lệnh USE KeyspaceName, hoặc thêm tiền tố Keyspace.Table vào tên bảng.
Lỗi cú pháp tại 'SimpleStrategy' Tên chiến lược không được đặt trong dấu ngoặc kép. Hãy viết 'class': 'SimpleStrategy' trong dấu ngoặc kép.
Tùy chọn chiến lược không được nhận dạng {replication_factor} replication_factor được sử dụng với NetworkTopologyStrategy. Chiến lược đó lấy một hệ số cho mỗi tên trung tâm dữ liệu.
Không thể thêm keyspace hiện có Không gian khóa đã tồn tại. Thêm IF NOT EXISTS, hoặc xóa không gian khóa cũ trước.
Dữ liệu bị thiếu sau khi tăng hệ số sao chép. Đúng như dự kiến. Hãy chạy lệnh nodetool repair trên keyspace để các bản sao mới được tạo.

Sau khi keyspace được tạo, bước tiếp theo là định nghĩa vùng nhớ bên trong keyspace đó, được đề cập trong phần tiếp theo. Cassandra bàn hướng dẫn.

Câu Hỏi Thường Gặp

Hãy giữ số lượng ở mức nhỏ, thông thường chỉ một cho mỗi ứng dụng. Mỗi keyspace và bảng đều thêm siêu dữ liệu lược đồ và chi phí bộ nhớ trên mỗi nút, vì vậy hàng trăm keyspace sẽ làm giảm hiệu suất của cụm.

Có, nếu chức năng auto_snapshot được bật. Cassandra ghi ảnh chụp nhanh trước khi xóa.pingDo đó, các SSTable có thể được khôi phục bằng sstableloader sau khi tạo lại lược đồ.

Chỉ áp dụng cho dữ liệu có thể được tạo lại, chẳng hạn như bộ nhớ đệm hoặc phân tích dẫn xuất. Bỏ quaping Nhật ký cam kết có nghĩa là các thao tác ghi vẫn còn trong memtable sẽ bị mất nếu nút dừng hoạt động đột ngột.

Dựa trên bố cục trung tâm dữ liệu và mục tiêu về tính khả dụng, AI có thể đề xuất chiến lược và các yếu tố cho từng trung tâm. Hãy xác nhận lại tên trung tâm dữ liệu so với trạng thái của nodetool, vì lỗi chính tả có thể dẫn đến việc sao chép thiếu dữ liệu một cách âm thầm.

Nó xử lý cú pháp thông thường tốt nhưng thường giữ lại những thói quen liên quan đến quan hệ, chẳng hạn như tên chiến lược không được trích dẫn hoặc khóa ngoại. Hãy chạy mọi tập lệnh được tạo ra với một không gian khóa thử nghiệm trước.

Tóm tắt bài viết này với: