가상 테이블

가상 테이블 (Virtual Tables)

Apache Cassandra 4.0은 가상 테이블을 구현합니다(CASSANDRA-7622). 가상 테이블은 SSTable로 명시적으로 관리·저장되는 데이터 대신 API로 지원되는 테이블이에요. Apache Cassandra 4.0은 가상 테이블을 위한 가상 키스페이스 인터페이스를 구현합니다. 가상 테이블은 각 노드에 특정됩니다.

가상 테이블의 기능 중 일부는 다음 능력입니다:

  • CQL을 통해 메트릭 노출
  • YAML 구성 정보 노출

가상 키스페이스와 가상 테이블은 일반 테이블·키스페이스와 꽤 다릅니다:

  • 가상 테이블은 특수 키스페이스에 생성되며 아무 키스페이스에나 생성되지 않아요.
  • 가상 테이블은 Cassandra가 관리합니다. 사용자는 새 가상 테이블을 만들기 위해 DDL을 실행하거나 기존 가상 테이블을 수정하기 위해 DML을 실행할 수 없습니다.
  • 가상 테이블은 현재 읽기 전용입니다. 다만 이는 나중 버전에서 바뀔 수 있어요.
  • 가상 테이블은 로컬 전용이며 비분산형이라 복제되지 않습니다.
  • 가상 테이블에는 연관된 SSTable이 없습니다.
  • 가상 테이블로 보내는 쿼리의 일관성 수준은 무시됩니다.
  • 모든 기존 가상 테이블은 LocalPartitioner를 사용합니다. 가상 테이블은 복제되지 않으므로 파티셔너는 해시가 아닌 파티션 키 순서로 정렬해요.
  • ALLOW FILTERING과 집계 함수를 사용하는 고급 쿼리는 일반 테이블에서는 권장되지 않지만 가상 테이블에서는 실행할 수 있습니다.

출처: 문서

본문

가상 키스페이스 (Virtual Keyspaces)

Apache Cassandra 4.0은 가상 테이블을 위해 두 개의 새 키스페이스를 추가했습니다:

  • system_virtual_schema
  • system_views

system_virtual_schema 키스페이스에는 세 개의 테이블이 있습니다: keyspaces, columns, tables로 각각 가상 키스페이스, 테이블, 컬럼 정의를 담당해요. 이 테이블들은 가상 테이블에 대한 스키마 정보를 포함합니다. Cassandra가 내부적으로 사용하며 사용자가 직접 접근해서는 안 됩니다.

system_views 키스페이스에는 실제 가상 테이블이 들어 있습니다.

가상 테이블 제한 사항

가상 키스페이스와 테이블을 논의하기 전에, 가상 키스페이스와 테이블에는 몇 가지 제한 사항이 있다는 점을 유의하세요. 이러한 제한은 변경될 수 있습니다. 가상 키스페이스는 변경(alter)하거나 삭제(drop)할 수 없어요. 사실 가상 키스페이스에 대해 어떤 연산도 수행할 수 없습니다.

가상 키스페이스에 가상 테이블을 만들 수 없습니다. 가상 테이블은 변경, 삭제, 잘라내기(truncate)할 수 없어요. 가상 테이블에 대해 이차 인덱스, 타입, 함수, 애그리게이트, 구체화된 뷰, 트리거를 만들 수 없습니다. 만료 수명(TTL) 컬럼을 만들 수 없습니다. 가상 테이블은 조건부 업데이트나 삭제를 지원하지 않아요. SELECT 문에서 애그리게이트를 실행할 수 있습니다.

조건부 배치 문은 가상 테이블에 대한 변경을 포함할 수 없으며, 가상 테이블 문을 로그 배치에 포함할 수도 없어요. 사실 가상 테이블과 일반 테이블에 대한 변경은 같은 배치 테이블에서 일어날 수 없습니다.

가상 테이블

system_views 가상 키스페이스의 각 가상 테이블은 서로 다른 정보를 포함합니다.

다음 표는 가상 테이블을 설명합니다:

가상 테이블 설명
caches 일반 캐시 정보 표시: cache name, capacity_bytes, entry_count, hit_count, hit_ratio double, recent_hit_rate_per_second, recent_request_rate_per_second, request_count, size_bytes
cidr_filtering_metrics_counts CIDR 필터링에 특화된 개수 메트릭
cidr_filtering_metrics_latencies CIDR 필터링에 특화된 지연 시간 메트릭
clients 모든 연결된 클라이언트에 대한 정보 나열
coordinator_read_latency 조정자 읽기에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
coordinator_scan 조정자 스캔에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
coordinator_write_latency 조정자 쓰기에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
disk_usage disk_space, keyspace_name, table_name을 포함한 디스크 사용량 기록, 시스템 키스페이스로 정렬
internode_inbound 인바운드 노드 간 메시징 정보 나열
internode_outbound 아웃바운드 노드 간 메시징 정보
local_read_latency 로컬 읽기에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
local_scan 로컬 스캔에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
local_write_latency 로컬 쓰기에 대한 counts, keyspace_name, table_name, max, median, per_second 기록
max_partition_size 최대 파티션 크기 테이블 메트릭
rows_per_read 읽힌 행에 대한 counts, keyspace_name, table_name, max, median 기록
settings cassandra.yaml의 구성 설정 표시
sstable_tasks 컴팩션·업그레이드 같은 연산에 대해 SSTable에서 현재 실행 중인 작업과 진행률 나열
system_logs logback.xml의 CQLLOG appender로 기록된 경우 Cassandra 로그 표시
system_properties 노드에 설정된 환경 시스템 속성 표시
thread_pools 각 스레드 풀 메트릭 나열
tombstones_per_read 툼스톤에 대한 counts, keyspace_name, table_name, max, median 기록

CASSANDRA-18238부터 사용성 개선을 위해 system_logs를 제외한 모든 테이블에는 CQL 명세에서 요구할 때 쿼리에 ALLOW FILTERING이 암시적으로 추가됩니다.

다음에서 일부 가상 테이블을 더 자세히 논의할게요.

Clients 가상 테이블

clients 가상 테이블은 활성 연결(연결된 클라이언트)을 모두 나열하며 ip address, port, client_options, connection stage, driver name, driver version, protocol version, request count, ssl enabled, ssl protocol, user name을 포함합니다:

cqlsh> SELECT * FROM system_views.clients;

@ Row 1
------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 address          | 127.0.0.1
 port             | 50687
 client_options   | {'CQL_VERSION': '3.4.7', 'DRIVER_NAME': 'DataStax Python Driver', 'DRIVER_VERSION': '3.25.0'}
 connection_stage | ready
 driver_name      | DataStax Python Driver
 driver_version   | 3.25.0
 protocol_version | 5
 request_count    | 16
 ssl_cipher_suite | null
 ssl_enabled      | False
 ssl_protocol     | null
 username         | anonymous

@ Row 2
------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 address          | 127.0.0.1
 port             | 50688
 client_options   | {'CQL_VERSION': '3.4.7', 'DRIVER_NAME': 'DataStax Python Driver', 'DRIVER_VERSION': '3.25.0'}
 connection_stage | ready
 driver_name      | DataStax Python Driver
 driver_version   | 3.25.0
 protocol_version | 5
 request_count    | 4
 ssl_cipher_suite | null
 ssl_enabled      | False
 ssl_protocol     | null
 username         | anonymous

@ Row 3
------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 address          | 127.0.0.1
 port             | 50753
 client_options   | {'APPLICATION_NAME': 'TestApp', 'APPLICATION_VERSION': '1.0.0', 'CLIENT_ID': '55b3efbd-c56b-469d-8cca-016b860b2f03', 'CQL_VERSION': '3.0.0', 'DRIVER_NAME': 'DataStax Java driver for Apache Cassandra(R)', 'DRIVER_VERSION': '4.13.0'}
 connection_stage | ready
 driver_name      | DataStax Java driver for Apache Cassandra(R)
 driver_version   | 4.13.0
 protocol_version | 5
 request_count    | 18
 ssl_cipher_suite | null
 ssl_enabled      | False
 ssl_protocol     | null
 username         | anonymous

@ Row 4
------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 address          | 127.0.0.1
 port             | 50755
 client_options   | {'APPLICATION_NAME': 'TestApp', 'APPLICATION_VERSION': '1.0.0', 'CLIENT_ID': '55b3efbd-c56b-469d-8cca-016b860b2f03', 'CQL_VERSION': '3.0.0', 'DRIVER_NAME': 'DataStax Java driver for Apache Cassandra(R)', 'DRIVER_VERSION': '4.13.0'}
 connection_stage | ready
 driver_name      | DataStax Java driver for Apache Cassandra(R)
 driver_version   | 4.13.0
 protocol_version | 5
 request_count    | 7
 ssl_cipher_suite | null
 ssl_enabled      | False
 ssl_protocol     | null
 username         | anonymous

(4 rows)

clients가 사용될 수 있는 예는 다음과 같아요:

  • 업그레이드 전에 오래되고 호환되지 않는 버전의 드라이버를 사용하는 애플리케이션을 찾고, 업그레이드 중에는 nodetool enableoldprotocolversionsnodetool disableoldprotocolversions로 찾기
  • 너무 많은 요청을 보내는 클라이언트 식별
  • SSL로 또는 SSL에서 마이그레이션하는 동안 SSL이 활성화되어 있는지 찾기

가상 테이블은 DESCRIBE 문으로 설명할 수 있습니다. 그러나 나열된 DDL은 가상 테이블을 만드는 데 실행할 수 없어요. 예를 들어 system_views.clients 가상 테이블을 설명하세요:

cqlsh> DESCRIBE TABLE system_views.clients;

/*
Warning: Table system_views.clients is a virtual table and cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.clients (
  address inet,
  port int,
  client_options frozen<map<text, text>>,
  connection_stage text,
  driver_name text,
  driver_version text,
  protocol_version int,
  request_count bigint,
  ssl_cipher_suite text,
  ssl_enabled boolean,
  ssl_protocol text,
  username text,
    PRIMARY KEY (address, port)
) WITH CLUSTERING ORDER BY (port ASC)
    AND comment = 'currently connected clients';
*/

Caches 가상 테이블

caches 가상 테이블은 캐시에 대한 정보를 나열합니다. 현재 생성된 네 개의 캐시는 chunks, counters, keys, rows입니다. caches 가상 테이블에 대한 쿼리는 다음 세부 사항을 반환합니다:

cqlsh:system_views> SELECT * FROM system_views.caches;
name     | capacity_bytes | entry_count | hit_count | hit_ratio | recent_hit_rate_per_second | recent_request_rate_per_second | request_count | size_bytes
---------+----------------+-------------+-----------+-----------+----------------------------+--------------------------------+---------------+------------
  chunks |      229638144 |          29 |       166 |      0.83 |                          5 |                              6 |           200 |     475136
counters |       26214400 |           0 |         0 |       NaN |                          0 |                              0 |             0 |          0
    keys |       52428800 |          14 |       124 |  0.873239 |                          4 |                              4 |           142 |       1248
    rows |              0 |           0 |         0 |       NaN |                          0 |                              0 |             0 |          0

(4 rows)

CIDR 필터링 메트릭 가상 테이블

cidr_filtering_metrics_counts 가상 테이블은 CIDR 필터링에 특화된 개수 메트릭을 나열합니다. cidr_filtering_metrics_counts 가상 테이블에 대한 쿼리는 아래와 유사한 메트릭을 나열해요.

cqlsh> select * from system_views.cidr_filtering_metrics_counts;
 name                                                   | value
--------------------------------------------------------+-------
                         CIDR groups cache reload count |     2
 Number of CIDR accesses accepted from CIDR group - aws |    15
 Number of CIDR accesses accepted from CIDR group - gcp |    30
 Number of CIDR accesses rejected from CIDR group - gcp |     6

cidr_filtering_metrics_latencies 가상 테이블은 CIDR 필터링에 특화된 지연 시간 메트릭을 나열합니다. cidr_filtering_metrics_latencies 가상 테이블에 대한 쿼리는 아래 메트릭을 나열해요.

cqlsh> select * from system_views.cidr_filtering_metrics_latencies;
 name                                        | max   | p50th | p95th | p999th | p99th
---------------------------------------------+-------+-------+-------+--------+-------
                    CIDR checks latency (ns) | 24601 |     1 | 11864 |  24601 | 24601
       CIDR groups cache reload latency (ns) | 42510 | 42510 | 42510 |  42510 | 42510
 Lookup IP in CIDR groups cache latency (ns) |     1 |     1 |     1 |      1 |     1

CQL 메트릭 가상 테이블

cql_metrics 가상 테이블은 CQL prepared statement 캐싱에 특화된 메트릭을 나열합니다. cql_metrics 가상 테이블에 대한 쿼리는 아래 메트릭을 나열해요.

cqlsh> select * from system_views.cql_metrics ;

 name                         | value
------------------------------+-------
    prepared_statements_count |     0
  prepared_statements_evicted |     0
 prepared_statements_executed |     0
    prepared_statements_ratio |     0
  regular_statements_executed |    17

CIDR 필터링 메트릭 가상 테이블

cidr_filtering_metrics_counts 가상 테이블은 CIDR 필터링에 특화된 개수 메트릭을 나열합니다. cidr_filtering_metrics_counts 가상 테이블에 대한 쿼리는 아래와 유사한 메트릭을 나열해요.

cqlsh> select * from system_views.cidr_filtering_metrics_counts;
 name                                                   | value
--------------------------------------------------------+-------
                         CIDR groups cache reload count |     2
 Number of CIDR accesses accepted from CIDR group - aws |    15
 Number of CIDR accesses accepted from CIDR group - gcp |    30
 Number of CIDR accesses rejected from CIDR group - gcp |     6

cidr_filtering_metrics_latencies 가상 테이블은 CIDR 필터링에 특화된 지연 시간 메트릭을 나열합니다. cidr_filtering_metrics_latencies 가상 테이블에 대한 쿼리는 아래 메트릭을 나열해요.

cqlsh> select * from system_views.cidr_filtering_metrics_latencies;
 name                                        | max   | p50th | p95th | p999th | p99th
---------------------------------------------+-------+-------+-------+--------+-------
                    CIDR checks latency (ns) | 24601 |     1 | 11864 |  24601 | 24601
       CIDR groups cache reload latency (ns) | 42510 | 42510 | 42510 |  42510 | 42510
 Lookup IP in CIDR groups cache latency (ns) |     1 |     1 |     1 |      1 |     1

CQL 메트릭 가상 테이블

cql_metrics 가상 테이블은 CQL prepared statement 캐싱에 특화된 메트릭을 나열합니다. cql_metrics 가상 테이블에 대한 쿼리는 아래 메트릭을 나열해요.

cqlsh> select * from system_views.cql_metrics ;

 name                         | value
------------------------------+-------
    prepared_statements_count |     0
  prepared_statements_evicted |     0
 prepared_statements_executed |     0
    prepared_statements_ratio |     0
  regular_statements_executed |    17

Settings 가상 테이블

settings 테이블은 cassandra.yaml의 모든 현재 구성 설정을 나열하므로 꽤 유용해요. 암호화 옵션은 민감한 truststore 정보나 비밀번호를 숨기기 위해 재정의됩니다. 하지만 구성 설정은 현재 가상 테이블에서 DML을 사용해 설정할 수 없습니다:

cqlsh:system_views> SELECT * FROM system_views.settings;

name                                 | value
-------------------------------------+--------------------
  allocate_tokens_for_keyspace       | null
  audit_logging_options_enabled      | false
  auto_snapshot                      | true
  automatic_sstable_upgrade          | false
  cluster_name                       | Test Cluster
  enable_transient_replication       | false
  hinted_handoff_enabled             | true
  hints_directory                    | /home/ec2-user/cassandra/data/hints
  incremental_backups                | false
  initial_token                      | null
                           ...
                           ...
                           ...
  rpc_address                        | localhost
  ssl_storage_port                   | 7001
  start_native_transport             | true
  storage_port                       | 7000
  stream_entire_sstables             | true
  (224 rows)

settings 테이블은 yaml 파일이 시작 이후 변경됐고 실행 중 구성을 모르거나, jmx/nodetool 또는 가상 테이블을 통해 수정됐는지 찾으려 할 때 정말 유용할 수 있어요.

Thread Pools 가상 테이블

thread_pools 테이블은 모든 스레드 풀에 대한 정보를 나열합니다. 스레드 풀 정보는 active tasks, active tasks limit, blocked tasks, blocked tasks all time, completed tasks, pending tasks를 포함해요. thread_pools에 대한 쿼리는 다음 세부 사항을 반환합니다:

cqlsh:system_views> select * from system_views.thread_pools;

name                         | active_tasks | active_tasks_limit | blocked_tasks | blocked_tasks_all_time | completed_tasks | pending_tasks
------------------------------+--------------+--------------------+---------------+------------------------+-----------------+---------------
            AntiEntropyStage |            0 |                  1 |             0 |                      0 |               0 |             0
        CacheCleanupExecutor |            0 |                  1 |             0 |                      0 |               0 |             0
          CompactionExecutor |            0 |                  2 |             0 |                      0 |             881 |             0
        CounterMutationStage |            0 |                 32 |             0 |                      0 |               0 |             0
                 GossipStage |            0 |                  1 |             0 |                      0 |               0 |             0
             HintsDispatcher |            0 |                  2 |             0 |                      0 |               0 |             0
       InternalResponseStage |            0 |                  2 |             0 |                      0 |               0 |             0
         MemtableFlushWriter |            0 |                  2 |             0 |                      0 |               1 |             0
           MemtablePostFlush |            0 |                  1 |             0 |                      0 |               2 |             0
       MemtableReclaimMemory |            0 |                  1 |             0 |                      0 |               1 |             0
              MigrationStage |            0 |                  1 |             0 |                      0 |               0 |             0
                   MiscStage |            0 |                  1 |             0 |                      0 |               0 |             0
               MutationStage |            0 |                 32 |             0 |                      0 |               0 |             0
   Native-Transport-Requests |            1 |                128 |             0 |                      0 |             130 |             0
      PendingRangeCalculator |            0 |                  1 |             0 |                      0 |               1 |             0
PerDiskMemtableFlushWriter_0 |            0 |                  2 |             0 |                      0 |               1 |             0
                   ReadStage |            0 |                 32 |             0 |                      0 |              13 |             0
                 Repair-Task |            0 |         2147483647 |             0 |                      0 |               0 |             0
        RequestResponseStage |            0 |                  2 |             0 |                      0 |               0 |             0
                     Sampler |            0 |                  1 |             0 |                      0 |               0 |             0
    SecondaryIndexManagement |            0 |                  1 |             0 |                      0 |               0 |             0
          ValidationExecutor |            0 |         2147483647 |             0 |                      0 |               0 |             0
           ViewBuildExecutor |            0 |                  1 |             0 |                      0 |               0 |             0
           ViewMutationStage |            0 |                 32 |             0 |                      0 |               0 |             0

(24 rows)

Internode Inbound Messaging 가상 테이블

internode_inbound 가상 테이블은 노드 간 인바운드 메시징을 위한 것입니다. 처음에는 아무 노드 간 인바운드 메시징도 나열되지 않을 수 있어요. address, port, datacenter, rack 정보 외에도 corrupt frames recovered, corrupt frames unrecovered, error bytes, error count, expired bytes, expired count, processed bytes, processed count, received bytes, received count, scheduled bytes, scheduled count, throttled count, throttled nanos, using bytes, using reserve bytes가 포함됩니다. internode_inbound에 대한 쿼리는 다음 세부 사항을 반환합니다:

cqlsh:system_views> SELECT * FROM system_views.internode_inbound;
address | port | dc | rack | corrupt_frames_recovered | corrupt_frames_unrecovered |
error_bytes | error_count | expired_bytes | expired_count | processed_bytes |
processed_count | received_bytes | received_count | scheduled_bytes | scheduled_count | throttled_count | throttled_nanos | using_bytes | using_reserve_bytes
---------+------+----+------+--------------------------+----------------------------+-
(0 rows)

SSTables Tasks 가상 테이블

sstable_tasks는 실행 중인 작업에 대한 정보를 얻는 데 사용할 수 있어요. 다음 컬럼을 나열합니다:

cqlsh:system_views> SELECT * FROM sstable_tasks;
keyspace_name | table_name | task_id                              | kind       | progress | total    | unit
---------------+------------+--------------------------------------+------------+----------+----------+-------
       basic |      wide2 | c3909740-cdf7-11e9-a8ed-0f03de2d9ae1 | compaction | 60418761 | 70882110 | bytes
       basic |      wide2 | c7556770-cdf7-11e9-a8ed-0f03de2d9ae1 | compaction |  2995623 | 40314679 | bytes

또 다른 예로, SSTable 작업에 남은 시간이 얼마인지 찾으려면 다음 쿼리를 사용하세요:

SELECT total - progress AS remaining
FROM system_views.sstable_tasks;

기타 가상 테이블

다른 가상 테이블을 사용하는 예는 다음과 같습니다.

디스크 사용량이 가장 많은 테이블 찾기:

cqlsh> SELECT * FROM disk_usage WHERE mebibytes > 1 ALLOW FILTERING;

keyspace_name | table_name | mebibytes
---------------+------------+-----------
   keyspace1 |  standard1 |       288
  tlp_stress |   keyvalue |      3211

읽기 지연 시간이 가장 큰 테이블의 쿼리 찾기:

cqlsh> SELECT * FROM  local_read_latency WHERE per_second > 1 ALLOW FILTERING;

keyspace_name | table_name | p50th_ms | p99th_ms | count    | max_ms  | per_second
---------------+------------+----------+----------+----------+---------+------------
  tlp_stress |   keyvalue |    0.043 |    0.152 | 49785158 | 186.563 |  11418.356

예제

  • 키스페이스를 나열하려면 cqlsh에 들어가 CQL 명령 DESCRIBE KEYSPACES를 실행하세요:
cqlsh> DESC KEYSPACES;
system_schema  system          system_distributed  system_virtual_schema
system_auth    system_traces   system_views
  • 가상 테이블 스키마를 보려면 CQL 명령 USE system_virtual_schemaSELECT * FROM tables를 실행하세요:
cqlsh> USE system_virtual_schema;
cqlsh> SELECT * FROM tables;

결과:

 keyspace_name         | table_name                | comment
-----------------------+---------------------------+--------------------------------------
          system_views |                    caches |                        system caches
          system_views |                   clients |          currently connected clients
          system_views |  coordinator_read_latency |
          system_views |  coordinator_scan_latency |
          system_views | coordinator_write_latency |
          system_views |                disk_usage |
          system_views |         internode_inbound |
          system_views |        internode_outbound |
          system_views |        local_read_latency |
          system_views |        local_scan_latency |
          system_views |       local_write_latency |
          system_views |        max_partition_size |
          system_views |             rows_per_read |
          system_views |                  settings |                     current settings
          system_views |             sstable_tasks |                current sstable tasks
          system_views |         system_properties | Cassandra relevant system properties
          system_views |              thread_pools |
          system_views |       tombstones_per_read |
 system_virtual_schema |                   columns |           virtual column definitions
 system_virtual_schema |                 keyspaces |         virtual keyspace definitions
 system_virtual_schema |                    tables |            virtual table definitions

(21 rows)
  • 가상 테이블을 보려면 CQL 명령 USE system_viewDESCRIBE tables를 실행하세요:
cqlsh> USE system_view;;
cqlsh> DESCRIBE tables;

결과:

sstable_tasks       clients                   coordinator_write_latency
disk_usage          local_write_latency       tombstones_per_read
thread_pools        internode_outbound        settings
local_scan_latency  coordinator_scan_latency  system_properties
internode_inbound   coordinator_read_latency  max_partition_size
local_read_latency  rows_per_read             caches
  • 테이블 데이터를 보려면 CQL 명령 SELECT를 실행하세요:
cqlsh> USE system_view;;
cqlsh> SELECT * FROM clients LIMIT 2;

결과:

 address   | port  | connection_stage | driver_name            | driver_version | protocol_version | request_count | ssl_cipher_suite | ssl_enabled | ssl_protocol | username
-----------+-------+------------------+------------------------+----------------+------------------+---------------+------------------+-------------+--------------+-----------
 127.0.0.1 | 37308 |            ready | DataStax Python Driver |   3.21.0.post0 |                4 |            17 |             null |       False |         null | anonymous
 127.0.0.1 | 37310 |            ready | DataStax Python Driver |   3.21.0.post0 |                4 |             8 |             null |       False |         null | anonymous

(2 rows)

더 알아보기 (Learn more)