Apigee używa baz danych Cassandra do przechowywania większości danych, w tym danych dotyczących serwerów proxy, pamięci podręcznej i tokenów.
Kompresja to standardowy proces zmniejszania rozmiaru danych przechowywanych w bazach danych, który jest niezbędny do zapewnienia ich sprawnego działania. Cassandra obsługuje różne strategie kompresji. Apigee
zaleca, aby wszyscy klienci korzystający z Edge for Private Cloud używali klastrów Cassandra ze strategią LeveledCompactionStrategy
, a nie domyślną strategią SizeTieredCompactionStrategy
, we wszystkich rodzinach kolumn. LeveledCompactionStrategy
zapewnia lepszą wydajność, lepsze wykorzystanie dysku, bardziej wydajne kompresje i wymaga mniej wolnego miejsca niż SizedTieredCompactionStrategy
.
Wszystkie nowe instalacje Apigee w wersji 4.51.00 lub nowszej automatycznie skonfigurują Cassandra z LeveledCompactionStrategy
. Jeśli jednak używasz starszej wersji Apigee lub zaktualizowałeś/zaktualizowałaś Apigee 4.51.00 ze starszej wersji, Twoja wersja może nadal używać Cassandra z SizeTieredCompactionStrategy
.
Aby dowiedzieć się, której strategii kompresji używa Twoja wersja Cassandra, zapoznaj się z sekcją Sprawdzanie strategii kompresji.
Z tej strony dowiesz się, jak zmienić strategię kompresji na LeveledCompactionStrategy
.
Przygotowanie
Sprawdzanie dotychczasowej strategii kompresji
Aby sprawdzić dotychczasową strategię kompresji w rodzinach kolumn, wykonaj instrukcje podane w sekcji Sprawdzanie strategii kompresji. Jeśli strategia kompresji jest już ustawiona na LeveledCompactionStrategy
, nie musisz wykonywać pozostałych instrukcji na tej stronie.
Kopia zapasowa
Zmiana strategii kompresji powoduje pełny cykl kompresji w węzłach C*, co może spowodować pewną zwłokę wynikającą z obciążenia kompresji i jednoczesnego ruchu aplikacji. Przywrócenie tej zmiany może wymagać cofnięcia zmian w węzłach Cassandra z kopii zapasowych. Aby dowiedzieć się, jak utworzyć kopię zapasową danych przed zmianą strategii kompresji, zapoznaj się z artykułem Jak utworzyć kopię zapasową.
Przepustowość kompresji
Po zmianie strategii kompresji na LeveledCompactionStrategy
kompresja może trwać długo. Czas działania może się różnić w zależności od rozmiaru zagęszczonego zbioru danych. Podczas cyklu kompresji Cassandra może zużywać więcej zasobów systemowych. Aby zapewnić, że kompresja nie będzie zajmować zbyt wielu zasobów systemowych, co mogłoby zakłócać żądania środowiska uruchomienia API, zalecamy ustawienie limitów przepustowości kompresji.
Uruchom na każdym z węzłów to polecenie nodetool
, aby ustawić maksymalną przepustowość kompresji na 128 MB na wszystkich węzłach C*:
nodetool setcompactionthroughput 128
Dobieranie rozmiarów maszyn wirtualnych na potrzeby kompresji
Zanim wprowadzisz tę zmianę, upewnij się, że węzły C* mają wystarczającą ilość zasobów procesora i pamięci. Zanim wprowadzisz tę zmianę, sprawdź, czy żaden z węzłów C* nie wykorzystuje więcej niż 25% mocy procesora.
Po zmianie strategii kompresji powinien zostać uruchomiony pełny cykl kompresji, dlatego zalecamy zmianę strategii kompresji w okresach niskiego natężenia ruchu.
Uruchomienia o różnej długości
Może się okazać, że nie uda Ci się wprowadzić zmian na wszystkich węzłach w ciągu jednego dnia, zwłaszcza jeśli zarządzasz dużymi klastrami Cassandra, ponieważ indeksy trzeba odtworzyć na każdym węźle osobno. Możesz zmienić strategię kompresji jednego schematu lub jednej rodziny kolumn (tabeli) naraz. W tym celu zmień rodzinę kolumn, aby zmienić strategię kompresji, a potem na wszystkich węzłach odtwórz wszystkie indeksy tabeli (jeśli istnieją). Następnie powtórz tę procedurę w przypadku każdej tabeli lub każdej przestrzeni kluczy. Takie uruchomienia dotyczące jednej tabeli lub jednej przestrzeni kluczy można podzielić na różne dni.
Aby na przykład zmienić strategię kompresji rodziny kolumn oauth_20_access_tokens
w schemacie kms
, wykonaj te czynności:
- Zmień tabelę, aby zmienić strategię kompresji:
ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Utwórz ponownie wszystkie indeksy tylko tej tabeli:
nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_app_id_idx nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_client_id_idx nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_refresh_token_idx
Zmiana strategii kompresji
Ogólnie rzecz biorąc, zmiana strategii kompresji to 2 kroki:
- Modyfikować strategię kompresji każdej tabeli.
- Po kolei odtwarzaj wszystkie indeksy w każdym węźle.
Zmień tabelę, aby ustawić nową strategię kompresji
Uruchom podane niżej polecenia języka zapytań Cassandra (CQL) na dowolnym węźle Cassandra, zmieniając strategię dla jednej przestrzeni kluczy naraz. W promptach cql
możesz uruchamiać zapytania CQL. Aby wywołać promptcql
:
/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`
Powinna pojawić się taka odpowiedź:
Connected to apigee at XX.XX.XX.XX:9042. [cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh>
Aby zmienić strategię kompresji, uruchom te zapytania CQL:
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
kms
:ALTER TABLE kms.organizations WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.maps WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.apps WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.app_credentials WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.api_products WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.apiproducts_appslist WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.api_resources WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.app_end_user WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.oauth_20_authorization_codes WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.oauth_10_request_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.oauth_10_access_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.oauth_10_verifiers WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE kms.app_enduser_tokens WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
user_settings
:ALTER TABLE user_settings.user_settings WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
keyvaluemap
:ALTER TABLE keyvaluemap.keyvaluemaps_r21 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
devconnect
:ALTER TABLE devconnect.developers WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE devconnect.companies WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE devconnect.company_developers WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
counter
:ALTER TABLE counter.counters_current_version WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.counters_with_expiry WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.counters WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.key_timestamp_count WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.timestamp_key WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.period_timestamp WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE counter.gateway_quota WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
cache
:ALTER TABLE cache.cache_entries WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE cache.cache_sequence_id_r24 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
ax_custom_report_model
:ALTER TABLE ax_custom_report_model.report_description WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_id_lookup WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE ax_custom_report_model.org_metadata WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE ax_custom_report_model.org_report_lookup WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_created_view WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_viewed_view WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
auth
:ALTER TABLE auth.totp WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
audit
:ALTER TABLE audit.audits WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE audit.audits_ref WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
apprepo
:ALTER TABLE apprepo.organizations WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apprepo.environments WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apprepo.apiproxies WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apprepo.apiproxy_revisions WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apprepo.api_proxy_revisions_r21 WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
apimodel
:ALTER TABLE apimodel.apis WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.apis_revision WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.resource WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.method WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.revision_counters WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.template_counters WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.template WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.credentials WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.credentialsv2 WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.schemas WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.security WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE apimodel.template_auth WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
identityzone
:ALTER TABLE identityzone.IdentityZones WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE identityzone.OrgToIdentityZone WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
dek
:ALTER TABLE dek.keys WITH compaction = {'class' : 'LeveledCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
analytics
:ALTER TABLE analytics.custom_aggregates_defn WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE analytics.custom_rules_defn WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE analytics.custom_aggregates_defn_updates WITH compaction = {'class' : 'LeveledCompactionStrategy'}; ALTER TABLE analytics.custom_rules_defn_updates WITH compaction = {'class' : 'LeveledCompactionStrategy'};
Odbuduj indeksy
Ten krok musisz wykonać po zmianie strategii kompresji. Uruchom podane niżej polecenia nodetool
kolejno na każdym węźle Cassandra.
Aby odtworzyć indeksy, uruchom te polecenia nodetool
:
- Odbuduj indeksy w przestrzeni kluczy
kms
:nodetool rebuild_index kms maps maps_organization_name_idx nodetool rebuild_index kms apps apps_app_family_idx nodetool rebuild_index kms apps apps_app_id_idx nodetool rebuild_index kms apps apps_app_type_idx nodetool rebuild_index kms apps apps_name_idx nodetool rebuild_index kms apps apps_organization_name_idx nodetool rebuild_index kms apps apps_parent_id_idx nodetool rebuild_index kms apps apps_parent_status_idx nodetool rebuild_index kms apps apps_status_idx nodetool rebuild_index kms app_credentials app_credentials_api_products_idx nodetool rebuild_index kms app_credentials app_credentials_organization_app_id_idx nodetool rebuild_index kms app_credentials app_credentials_organization_name_idx nodetool rebuild_index kms api_products api_products_organization_name_idx nodetool rebuild_index kms app_end_user app_end_user_app_id_idx nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_client_id_idx nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_organization_name_idx nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_app_id_idx nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_client_id_idx nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_refresh_token_idx nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_consumer_key_idx nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_organization_name_idx nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_app_id_idx nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_consumer_key_idx nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_organization_name_idx nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_status_idx nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_organization_name_idx nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_request_token_idx
- Odbuduj indeksy w przestrzeni kluczy
devconnect
:nodetool rebuild_index devconnect companies companies_name_idx nodetool rebuild_index devconnect companies companies_organization_name_idx nodetool rebuild_index devconnect companies companies_status_idx nodetool rebuild_index devconnect company_developers company_developers_company_name_idx nodetool rebuild_index devconnect company_developers company_developers_developer_email_idx nodetool rebuild_index devconnect company_developers company_developers_organization_name_idx nodetool rebuild_index devconnect developers developers_email_idx nodetool rebuild_index devconnect developers developers_organization_name_idx nodetool rebuild_index devconnect developers developers_status_idx
- Odbuduj indeksy w przestrzeni kluczy
cache
:nodetool rebuild_index cache cache_entries cache_entries_cache_name_idx
- Odbuduj indeksy w przestrzeni kluczy
audit
:nodetool rebuild_index audit audits audits_operation_idx nodetool rebuild_index audit audits audits_requesturi_idx nodetool rebuild_index audit audits audits_responsecode_idx nodetool rebuild_index audit audits audits_timestamp_idx nodetool rebuild_index audit audits audits_user_idx
- Odbuduj indeksy w przestrzeni kluczy
apprepo
:nodetool rebuild_index apprepo environments environments_organization_name_idx
- Odbuduj indeksy w przestrzeni kluczy
apimodel
:nodetool rebuild_index apimodel apis a_name nodetool rebuild_index apimodel apis a_org_name nodetool rebuild_index apimodel apis_revision ar_a_name nodetool rebuild_index apimodel apis_revision ar_a_uuid nodetool rebuild_index apimodel apis_revision ar_base_url nodetool rebuild_index apimodel apis_revision ar_is_active nodetool rebuild_index apimodel apis_revision ar_is_latest nodetool rebuild_index apimodel apis_revision ar_org_name nodetool rebuild_index apimodel apis_revision ar_rel_ver nodetool rebuild_index apimodel apis_revision ar_rev_num nodetool rebuild_index apimodel resource r_a_name nodetool rebuild_index apimodel resource r_api_uuid nodetool rebuild_index apimodel resource r_ar_uuid nodetool rebuild_index apimodel resource r_base_url nodetool rebuild_index apimodel resource r_name nodetool rebuild_index apimodel resource r_org_name nodetool rebuild_index apimodel resource r_res_path nodetool rebuild_index apimodel resource r_rev_num nodetool rebuild_index apimodel method m_a_name nodetool rebuild_index apimodel method m_api_uuid nodetool rebuild_index apimodel method m_ar_uuid nodetool rebuild_index apimodel method m_base_url nodetool rebuild_index apimodel method m_name nodetool rebuild_index apimodel method m_org_name nodetool rebuild_index apimodel method m_r_name nodetool rebuild_index apimodel method m_r_uuid nodetool rebuild_index apimodel method m_res_path nodetool rebuild_index apimodel method m_rev_num nodetool rebuild_index apimodel method m_verb nodetool rebuild_index apimodel template t_a_name nodetool rebuild_index apimodel template t_a_uuid nodetool rebuild_index apimodel template t_entity nodetool rebuild_index apimodel template t_name nodetool rebuild_index apimodel template t_org_name nodetool rebuild_index apimodel schemas s_api_uuid nodetool rebuild_index apimodel schemas s_ar_uuid nodetool rebuild_index apimodel security sa_api_uuid nodetool rebuild_index apimodel security sa_ar_uuid nodetool rebuild_index apimodel template_auth au_api_uuid
- Odbuduj indeksy w przestrzeni kluczy
dek
:nodetool rebuild_index dek keys usecase_index
Weryfikacja
- Aby sprawdzić, czy zmiana strategii kompresji w schemacie zaczęła obowiązywać, wykonaj instrukcje podane w sekcji Sprawdzanie strategii kompresji.
- Sprawdź, czy po zmianie strategii udało się przeprowadzić kompresję i czy dane zostały skompresowane:
- Na każdym węźle Cassandra uruchom to polecenie
nodetool
, aby sprawdzić, czy wszystkie zagęszczania zostały zakończone i czy nie ma oczekujących zagęszczeń:nodetool compactionstats
- Po sprawdzeniu za pomocą podanego powyżej polecenia, czy nie ma oczekujących kompresji, sprawdź, czy sygnatura czasowa ostatniej modyfikacji plików danych (w katalogu /opt/apigee/data/apigee-cassandra/data/) jest późniejsza niż sygnatura czasowa wykonania polecenia CQL zmiany strategii kompresji.
- Na każdym węźle Cassandra uruchom to polecenie
Wycofaj zmiany
Jeśli chcesz przywrócić poprzednią wersję, możesz wybrać jedną z tych opcji:
Opcja 1. Cofnij zmianę
Wycofaj strategię kompresji do wartości SizeTieredCompactionStrategy
.
Wykonaj te zapytania CQL na dowolnym węźle Cassandra, zmieniając strategię w przypadku jednego klucza przestrzeni. Zapytania CQL możesz wykonywać w promptach cql
. Aby wywołać prompt cql
:
/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`
Powinna pojawić się taka odpowiedź:
Connected to apigee at XX.XX.XX.XX:9042. [cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh>
Aby zmienić strategię kompresji, uruchom te zapytania CQL:
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
kms
:ALTER TABLE kms.organizations WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.maps WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.apps WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.app_credentials WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.api_products WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.apiproducts_appslist WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.api_resources WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.app_end_user WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.oauth_20_authorization_codes WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.oauth_20_access_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.oauth_10_request_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.oauth_10_access_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.oauth_10_verifiers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE kms.app_enduser_tokens WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
user_settings
:ALTER TABLE user_settings.user_settings WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
keyvaluemap
:ALTER TABLE keyvaluemap.keyvaluemaps_r21 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
devconnect
:ALTER TABLE devconnect.developers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE devconnect.companies WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE devconnect.company_developers WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
counter
:ALTER TABLE counter.counters_current_version WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.counters_with_expiry WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.key_timestamp_count WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.timestamp_key WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.period_timestamp WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE counter.gateway_quota WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
-
Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
cache
:ALTER TABLE cache.cache_entries WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE cache.cache_sequence_id_r24 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
ax_custom_report_model
:ALTER TABLE ax_custom_report_model.report_description WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_id_lookup WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE ax_custom_report_model.org_metadata WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE ax_custom_report_model.org_report_lookup WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_created_view WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE ax_custom_report_model.report_viewed_view WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
auth
:ALTER TABLE auth.totp WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
audit
:ALTER TABLE audit.audits WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE audit.audits_ref WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
apprepo
:ALTER TABLE apprepo.organizations WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apprepo.environments WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apprepo.apiproxies WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apprepo.apiproxy_revisions WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apprepo.api_proxy_revisions_r21 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
apimodel
:ALTER TABLE apimodel.apis WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.apis_revision WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.resource WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.method WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.revision_counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.template_counters WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.template WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.credentials WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.credentialsv2 WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.schemas WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.security WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE apimodel.template_auth WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
identityzone
:ALTER TABLE identityzone.IdentityZones WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE identityzone.OrgToIdentityZone WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
dek
:ALTER TABLE dek.keys WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
- Zapytania CQL służące do zmiany strategii kompresji w przestrzeni kluczy
analytics
:ALTER TABLE analytics.custom_aggregates_defn WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE analytics.custom_rules_defn WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE analytics.custom_aggregates_defn_updates WITH compaction = {'class' : 'SizeTieredCompactionStrategy'}; ALTER TABLE analytics.custom_rules_defn_updates WITH compaction = {'class' : 'SizeTieredCompactionStrategy'};
Jeśli po zmianie wszystkich rodzin kolumn już utworzysz ponownie indeksy podczas zmiany strategii kompresji na LeveledCompactionStrategy
, musisz je utworzyć ponownie. Aby odtworzyć wszystkie indeksy, wykonaj te same czynności, co wcześniej. Jeśli indeksy nie zostały wcześniej odtworzone, nie musisz ich ponownie tworzyć podczas cofania zmian.
Opcja 2. Pełne przywracanie danych z kopii zapasowej
Aby przywrócić wszystkie dane, wykonaj instrukcje podane w artykule Przywracanie danych z kopii zapasowej.
Sprawdzanie strategii kompresji
Strategie kompresji są ustawiane w Cassandra na poziomie rodziny kolumn (tabeli). Aby sprawdzić strategię kompresji dla każdej rodziny kolumn, możesz użyć podanych niżej zapytań CQL.
Zapytania CQL możesz wykonywać w promptach cql
.
Aby wywołać prompt cql
:
/opt/apigee/apigee-cassandra/bin/cqlsh `hostname -i`
Powinna pojawić się taka odpowiedź:
Connected to apigee at XX.XX.XX.XX:9042. [cqlsh 5.0.1 | Cassandra 2.1.16 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh>
Aby określić bieżącą strategię kompresji:
- Jeśli strategia kompresji ma wartość
SizeTieredCompactionStrategy
, wyniki zapytań poniżej będą miały wartośćorg.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
. - Jeśli strategia kompresji ma wartość
LeveledCompactionStrategy
, wyniki zapytań poniżej będą miały wartośćorg.apache.cassandra.db.compaction.LeveledCompactionStrategy
.
Aby sprawdzić strategię kompresji, uruchom te zapytania CQL:
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
kms
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'organizations'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'maps'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'apps'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_credentials'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'api_products'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'apiproducts_appslist'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'api_resources'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_end_user'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_20_authorization_codes'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_20_access_tokens'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_request_tokens'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_access_tokens'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'oauth_10_verifiers'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name ='kms' and columnfamily_name = 'app_enduser_tokens';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
user_settings
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'user_settings' and columnfamily_name = 'user_settings';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
keyvaluemap
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'keyvaluemap' and columnfamily_name = 'keyvaluemaps_r21';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
devconnect
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'developers'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'companies'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'devconnect' and columnfamily_name = 'company_developers';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
counter
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters_current_version'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters_with_expiry'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'counters'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'key_timestamp_count'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'timestamp_key'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'period_timestamp'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'counter' and columnfamily_name = 'gateway_quota';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
cache
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'cache' and columnfamily_name = 'cache_entries'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'cache' and columnfamily_name = 'cache_sequence_id_r24';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
ax_custom_report_model
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_description'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_id_lookup'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'org_metadata'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'org_report_lookup'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_created_view'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'ax_custom_report_model' and columnfamily_name = 'report_viewed_view';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
auth
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'auth' and columnfamily_name = 'totp';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
audit
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'audit' and columnfamily_name = 'audits'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'audit' and columnfamily_name = 'audits_ref';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
apprepo
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'organizations'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'environments'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'apiproxies'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'apiproxy_revisions'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apprepo' and columnfamily_name = 'api_proxy_revisions_r21';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
apimodel
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'apis'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'apis_revision'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'resource'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'method'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'revision_counters'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template_counters'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'credentials'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'credentialsv2'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'schemas'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'security'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'apimodel' and columnfamily_name = 'template_auth';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
identityzone
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'identityzone' and columnfamily_name = 'identityzones'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'identityzone' and columnfamily_name = 'orgtoidentityzone';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
dek
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'dek' and columnfamily_name = 'keys';
- Zapytania CQL służące do sprawdzania strategii kompresji w przypadku przestrzeni kluczy
analytics
:SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_aggregates_defn'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_rules_defn'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_aggregates_defn_updates'; SELECT compaction_strategy_class from system.schema_columnfamilies where keyspace_name = 'analytics' and columnfamily_name = 'custom_rules_defn_updates';