diff --git a/docs/about-us/beta-and-experimental-features.md b/docs/about-us/beta-and-experimental-features.md index c7285d069d6..766e5a2ccbb 100644 --- a/docs/about-us/beta-and-experimental-features.md +++ b/docs/about-us/beta-and-experimental-features.md @@ -66,7 +66,6 @@ Please note: no additional experimental features are allowed to be enabled in Cl | [allow_statistics_optimize](/operations/settings/settings#allow_statistics_optimize) | `1` | | [use_statistics](/operations/settings/settings#use_statistics) | `1` | | [use_statistics_cache](/operations/settings/settings#use_statistics_cache) | `1` | -| [enable_full_text_index](/operations/settings/settings#enable_full_text_index) | `1` | | [allow_experimental_delta_kernel_rs](/operations/settings/settings#allow_experimental_delta_kernel_rs) | `1` | | [allow_insert_into_iceberg](/operations/settings/settings#allow_insert_into_iceberg) | `0` | | [enable_join_runtime_filters](/operations/settings/settings#enable_join_runtime_filters) | `1` | @@ -93,6 +92,9 @@ Please note: no additional experimental features are allowed to be enabled in Cl | [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | | [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | | [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [ast_fuzzer_runs](/operations/settings/settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/operations/settings/settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/operations/settings/settings#allow_fuzz_query_functions) | `0` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | diff --git a/docs/cloud/features/02_integrations.md b/docs/cloud/features/02_integrations.md index a8c5c8f361c..c354c4d4300 100644 --- a/docs/cloud/features/02_integrations.md +++ b/docs/cloud/features/02_integrations.md @@ -23,10 +23,33 @@ import Mongodbsvg from '@site/static/images/integrations/logos/mongodb.svg'; import redpanda_logo from '@site/static/images/integrations/logos/logo_redpanda.png'; import clickpipes_stack from '@site/static/images/integrations/data-ingestion/clickpipes/clickpipes_stack.png'; import cp_custom_role from '@site/static/images/integrations/data-ingestion/clickpipes/cp_custom_role.png'; +import data_catalogs_ui from '@site/static/images/cloud/features/data-catalogs-ui.png'; import Image from '@theme/IdealImage'; ClickHouse Cloud allows you to connect the tools and services that you love. +## Data Catalog Integrations (beta) {#data-catalog-integrations} + +ClickHouse Cloud can connect directly to your open table format data catalogs, giving you access to your data lake tables without duplicating data. By integrating, your catalog's tables will appear as queryable databases inside ClickHouse. Setup is available via SQL command ([DataLakeCatalog](/engines/database-engines/datalakecatalog)) and via the ClickHouse Cloud UI on the Data Sources tab. + +Using the UI: +- Simplifies setup with a form using fields consistent with your Data Catalog objects +- One interface into active data catalog integrations +- Tests connection and credentials when saving to validate connection was successful + +ClickHouse Cloud UI with data catalog integrations + +| Name | Open Table Format Supported | Support | Version | +|------|-----------------------------|---------|---------| +| AWS Glue Catalog | Iceberg | Cloud & Core | 25.10+ | +| Lakekeeper | Iceberg | Core | 26.1+ | +| Microsoft OneLake | Iceberg | Cloud & Core | 25.12+ | +| Nessie | Iceberg | Core | 26.1+ | +| Polaris/Open Catalog | Iceberg | Core | 26.1+ | +| REST catalog | Iceberg | Core | | +| Unity Catalog | Iceberg (UniForm-enabled and managed), Delta | Cloud (Iceberg only) & Core | 25.10+ | + + ## Managed integration pipelines for ClickHouse Cloud {#clickpipes} ClickPipes is a managed integration platform that makes ingesting data from a diverse set of sources as simple as clicking a few buttons. diff --git a/docs/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md b/docs/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md index 519e361e422..b7849daa74f 100644 --- a/docs/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md +++ b/docs/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md @@ -25,7 +25,7 @@ BYOC is designed specifically for large-scale deployments, and requires customer **Supported Cloud Service Providers:** * AWS (GA) * GCP (Private Preview). Please join the waitlist [here](https://clickhouse.com/cloud/bring-your-own-cloud) if you're interested. -* Azure (Roadmap). Please join the waitlist [here](https://clickhouse.com/cloud/bring-your-own-cloud) if you're interested. +* Azure (Private Preview). Please join the waitlist [here](https://clickhouse.com/cloud/bring-your-own-cloud) if you're interested. **Supported Cloud Regions:** All **public regions** listed in our [supported regions](https://clickhouse.com/docs/cloud/reference/supported-regions) documentation are available for BYOC deployments. Private regions aren't currently supported. diff --git a/docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md index 0fd66a80504..9f731022b22 100644 --- a/docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md +++ b/docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md @@ -87,7 +87,7 @@ In order for the `remoteSecure` function to connect to your ClickHouse Cloud ser -## Example 1: Migrating from MySQL to ClickHouse Cloud with an Integration engine {#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine} +## Example: Migrating from MySQL to ClickHouse Cloud with an Integration engine {#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine} We will use the [integration table engine](/engines/table-engines/integrations/mysql/) (created on-the-fly by the [mysql table function](/sql-reference/table-functions/mysql/)) for reading data from the source MySQL database and we will use the [remoteSecure table function](/sql-reference/table-functions/remote/) for writing the data into a destination table on your ClickHouse cloud service. @@ -127,17 +127,3 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');" No data is stored locally on the `clickhouse-local` host machine. Instead, the data is read from the source MySQL table and then immediately written to the destination table on the ClickHouse Cloud service. ::: - -## Example 2: Migrating from MySQL to ClickHouse Cloud with the JDBC bridge {#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge} - -We will use the [JDBC integration table engine](/engines/table-engines/integrations/jdbc.md) (created on-the-fly by the [jdbc table function](/sql-reference/table-functions/jdbc.md)) together with the [ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) and the MySQL JDBC driver for reading data from the source MySQL database and we will use the [remoteSecure table function](/sql-reference/table-functions/remote.md) -for writing the data into a destination table on your ClickHouse cloud service. - -Migrating Self-managed ClickHouse - -### On the destination ClickHouse Cloud service: {#on-the-destination-clickhouse-cloud-service-1} - -#### Create the destination database: {#create-the-destination-database-1} - ```sql - CREATE DATABASE db - ``` diff --git a/docs/cloud/reference/01_changelog/01_changelog.md b/docs/cloud/reference/01_changelog/01_changelog.md index 7dc8d57b4ce..497a0537d7a 100644 --- a/docs/cloud/reference/01_changelog/01_changelog.md +++ b/docs/cloud/reference/01_changelog/01_changelog.md @@ -40,6 +40,9 @@ In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibil ::: +## February 20, 2026 {#february-20-2026} +- **ClickPipes:** Reverse private endpoints in an inactive state will now be automatically removed after a defined grace period. This ensures unused or misconfigured endpoints are not persisted indefinitely in the backend. See the automatic clean up [documentation](/integrations/clickpipes/aws-privatelink#automatic-cleanup) for more details. + ## February 13, 2026 {#february-13-2026} - [BigQuery Connector](/integrations/clickpipes/bigquery/overview) is now in Private Preview. Read this [blogpost](https://clickhouse.com/blog/bigquery-clickpipe-private-preview) for more details and join the [waitlist](https://clickhouse.com/cloud/clickpipes/bigquery-connector) for access. - We are pleased to announce support for PCI deployments for Google Cloud. Regions supported: diff --git a/docs/cloud/reference/03_billing/05_payment-thresholds.md b/docs/cloud/reference/03_billing/05_payment-thresholds.md index 394cd894b56..9788e3dbbc9 100644 --- a/docs/cloud/reference/03_billing/05_payment-thresholds.md +++ b/docs/cloud/reference/03_billing/05_payment-thresholds.md @@ -7,14 +7,34 @@ keywords: ['billing', 'payment thresholds', 'automatic invoicing', 'invoice'] doc_type: 'guide' --- -# Payment thresholds +import Image from '@theme/IdealImage'; +import billing_1 from '@site/static/images/cloud/reference/billing_payment_threshhold.png'; +import billing_2 from '@site/static/images/cloud/reference/billing_payment_threshhold_2.png'; -When your amount due in a billing period for ClickHouse Cloud reaches $10,000 USD or the equivalent value, your payment method will be automatically charged. A failed charge will result in the suspension or termination of your services after a grace period. +## Payment thresholds {#threshholds} -:::note -This payment threshold doesn't apply to customers who have a committed spend contract or other negotiated contractual agreement with ClickHouse. +If you are a pay as you go customer and your amount due in a billing period for ClickHouse Cloud reaches $10,000 USD or the equivalent value, your payment method configured to your organization will be automatically charged. + +:::tip +This default payment threshold amount can be adjusted below $10,000. +If you wish to do so, [contact support](support@clickhouse.com). ::: -If your organization reaches 90% of the payment threshold and is on-track to exceed the payment threshold mid-period, the billing email associated with the organization will receive an email notification. You will also receive an email notification as well as an invoice when you exceed the payment threshold. +A failed charge will result in the suspension of your services after a 14 day grace period. +If you receive multiple invoices within a billing period, all are due upon receipt and must be paid to keep your ClickHouse Cloud organization [compliant](/manage/clickhouse-cloud-billing-compliance). + +If your automatic payment has a failed charge then it may be due to an issue with your configured credit card or that you have not set up an e-mandate on your credit card or your credit card is not compliant with the Reserve Bank of India (RBI) framework for processing of e-mandates for recurring online transactions. +In case your credit cards are not RBI-complaint, you must add a new payment method that is RBI-compliant or continue making manual payments until you are able to set up the e-mandate on your card. + +In the example below, the Billing UI in cloud console is shown: + +Where to find billing in the UI + +Bill + +As you can see from the above example - there was a threshold invoice sent during the Feb 28-March 31 billing period and then there is another invoice sent during the same billing period for the remaining usage over $10,000. + +## Payment threshold notifications {#threshholds-notifications} -These payment thresholds can be adjusted below $10,000 as requested by customers or by the ClickHouse Finance team. If you have any questions, please contact support@clickhouse.com for more details. +If your organization reaches 90% of the payment threshold and is on-track to exceed the payment threshold mid-period, the billing contact email associated with the organization will receive an email notification. +You will also receive an email notification as well as an invoice when you exceed the payment threshold. diff --git a/docs/integrations/data-ingestion/etl-tools/dbt/index.md b/docs/integrations/data-ingestion/etl-tools/dbt/index.md index c0786f007ef..a40e58ce41c 100644 --- a/docs/integrations/data-ingestion/etl-tools/dbt/index.md +++ b/docs/integrations/data-ingestion/etl-tools/dbt/index.md @@ -32,7 +32,7 @@ dbt is compatible with ClickHouse through a [ClickHouse-supported adapter](https | [Features and Configurations](/integrations/dbt/features-and-configurations) | Description of the features and general configurations available | | [Materializations](/integrations/dbt/materializations) | Materializations available and their configurations | | [Guides](/integrations/dbt/guides) | Guides for using dbt with ClickHouse | -| [Materialized Views](/integrations/dbt/materialization-materialized-view) | Specific documentation for the the materialized_view materialization | +| [Materialization: materialized_view](/integrations/dbt/materialization-materialized-view) | Specific documentation for the materialized_view materialization | ## Supported features {#supported-features} diff --git a/docs/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md b/docs/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md index c04ce815495..3f1667b7b04 100644 --- a/docs/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md +++ b/docs/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md @@ -2,9 +2,9 @@ sidebar_label: 'Materialization: materialized_view' slug: /integrations/dbt/materialization-materialized-view sidebar_position: 4 -description: 'Specific documentation for the the materialized_view materialization' -keywords: ['clickhouse', 'dbt', 'materialized view', 'refreshable', 'external target table', 'catchup'] -title: 'Materialized Views' +description: 'Specific documentation for the materialized_view materialization' +keywords: ['clickhouse', 'dbt', 'materialized_view', 'refreshable', 'Materialized Views', 'catchup'] +title: 'Materialization: materialized_view' doc_type: 'guide' --- @@ -278,13 +278,53 @@ To change the target: 1. Update the `materialization_target_table()` call 2. Run `dbt run --full-refresh -s your_mv_model` -### Behavior comparison between implicit and explicit target approaches{#explicit-target-behavior} +### Troubleshooting common issues {#explicit-target-troubleshooting} -| Operation | Implicit target | Explicit target | -| --- | --- | --- | -| First dbt run | All resources created | All resources created | -| Next dbt run | **Individual resources cannot be managed, all happen together:**

**target table**:
changes managed with the `on_schema_change` setting. By default it has the setting `ignore` so new columns are not processed.

**MVs**: all updated with `alter table modify query` operations | **Changes can be applied individually:

target table**:
automatic detection to know if they are target tables from dbt defined MVs. If they are, the columns evolution is managed by default with the `mv_on_schema_change` setting with `fail` value so it will fail if columns changes. We added this default value as a protection layer

**MVs**: Their SQL gets updated with `alter table modify query` operations. | -| dbt run --full-refresh | **Individual resources cannot be managed, all happen together:

target table**:
target table recreated empty. `catchup` available to configure a backfill with the SQL of all the MVs together. `catchup` is `True` by default

**MVs**: all get recreated. | **Changes will be applied individually:

target table:** will be recreated as usual.

**MVs**: drop and recreate. `catchup` available for an initial backfill. `catchup` is `True` by default.

**Note: During the process, the target table will be empty or partially loaded until the MVs are recreated. To avoid this, check the next section about how to iterate the target table.**| +#### Target table is empty while/after `run` is executed {#target-table-empty} +There are a few reasons why this can happen: +- Materialized views may be configured with `catchup=False` or the target table may be configured with `repopulate_from_mvs_on_full_refresh=False`, so no backfill is executed when the materialized views are created or when the target table is recreated. This is the expected behavior, so if you want to reinsert the data using the materialized views SQL, make sure to set `catchup=True` in the materialized view (this is the default value) or `repopulate_from_mvs_on_full_refresh=True` in the target table. Make sure you are not activating both at the same time to avoid duplicates. Check the [configuration section](#explicit-target-configuration) for more details. +- While a `dbt run --full-refresh` is executed, if the materialized views use the `catchup=True` default, the target will get recreated and the MVs will reinsert the data sequentially. To avoid this situation, check the [Full refresh with explicit targets](#explicit-target-full-refresh) + +#### `dbt run --full-refresh` in a target table with `repopulate_from_mvs_on_full_refresh=True` uses the logic from old materialized view versions, not from the SQL that is currently in the project {#full-refresh-with-repopulate-from-mvs-on-full-refresh} +`repopulate_from_mvs_on_full_refresh=True` uses the existing MV SQL that's already defined in ClickHouse. To make sure the new materialized view definition is used, do a `dbt run` for each materialized view before doing a `dbt run --full-refresh` in the target table. + +#### There's duplicate data after a run is executed {#duplicate-data} +Possible reasons: +- Both `catchup=True` on the materialized view(s) and `repopulate_from_mvs_on_full_refresh=True` on the target table may be enabled: Keep only one of them depending on the operations you want to run. Check the [configuration section](#explicit-target-configuration) for more details. +- Target table is not defined with `WHERE 0`: target table should be created empty, but the internal query may insert data if the `WHERE 0` is not included. Make sure the clause is included. + +#### Data loss during active ingestion after a `dbt run --full-refresh` is executed {#data-loss-active-ingestion} +Some rows from the source table are missing in the target table after a `dbt run --full-refresh` is executed. +ClickHouse materialized views act as insert triggers — they only capture data while they exist. During a full refresh, there is a brief window where the MV is dropped and recreated (the "blind window"). Any rows inserted into the source table during this window are not captured. Check the [Behavior during active ingestion](#behavior-during-active-ingestion) section for more details. + +### Debugging techniques {#debugging-techniques} + +#### Check the current target of an MV in ClickHouse {#check-mv-target} + +Query `system.tables` to see where a materialized view is writing: + +```sql +SELECT + name as mv_name, + replaceRegexpOne( + create_table_query, + '.*TO\\s+`?([^`\\s(]+)`?\\.`?([^`\\s(]+)`?.*', + '\\1.\\2' + ) AS target_table +FROM system.tables +WHERE database = 'your_schema' + AND engine = 'MaterializedView' +``` + +#### Check if dbt recognizes a table as a materialized view target {#check-dbt-recognition} +During a dbt run, look for this log message: + +>Table `` is used as a target by a dbt-managed materialized view. Defaulting mv_on_schema_change to "fail" to prevent data loss. + +If this message appears, dbt has detected that the table is targeted by at least one dbt-managed materialized view. If you expect this message but don't see it, verify that: +- The materialized view model defines `{{ materialization_target_table(ref('your_target')) }}` correctly +- The materialized view model has `materialized='materialized_view'` in its config +- Both the materialized view and the target table have been run at least once ### Migrating from implicit to explicit target {#migration-implicit-to-explicit} @@ -348,23 +388,33 @@ select a, b, c from {{ source('raw', 'table_2') }} **3. Iterate them as needed following the instructions in the [explicit target](#explicit-target) section.** -## Behavior during active ingestion {#behavior-during-active-ingestion} +## Behavior comparison between implicit and explicit target approaches{#behavior-comparison} -Because ClickHouse materialized views act as **insert triggers**, they only capture data while they exist. If a materialized view is dropped and recreated (e.g. during a `--full-refresh`), any rows inserted into the source table during that window will **not** be processed by the MV. This is referred to as the MV being "blind." +### How they behave in general {#general-behavior} -Additionally, the **catch-up** (both from the MV's `catchup` or from the target table's `repopulate_from_mvs_on_full_refresh`) process runs an `INSERT INTO ... SELECT` using the MV's SQL. If inserts into the source table are happening at the same time, the catch-up query may include rows that the MV has already processed (or will process right after being created), potentially causing **duplicate data** in the target table. Using a deduplicating engine such as `ReplacingMergeTree` on the target table mitigates this risk. +| Operation | Implicit target | Explicit target | +| --- | --- | --- | +| First dbt run | All resources created | All resources created | +| Next dbt run | **Individual resources cannot be managed, all happen together:**

**target table**:
changes managed with the `on_schema_change` setting. By default, it has the setting `ignore`, so new columns are not processed.

**Materialized views**: all updated with `alter table modify query` operations | **Changes can be applied individually:

target table**:
automatic detection to know if they are target tables from dbt defined materialized views. If they are, the column evolution is managed by default with the `mv_on_schema_change` setting with `fail` value, so it will fail if column changes. We added this default value as a protection layer

**Materialized views**: Their SQL gets updated with `alter table modify query` operations. | +| dbt run --full-refresh | **Individual resources cannot be managed, all happen together:

target table**:
target table recreated empty. `catchup` available to configure a backfill with the SQL of all the materialized views together. `catchup` is `True` by default

**Materialized views**: all get recreated. | **Changes will be applied individually:

target table:** will be recreated as usual.

**Materialized views**: drop and recreate. `catchup` available for an initial backfill. `catchup` is `True` by default.

**Note: During the process, the target table will be empty or partially loaded until the materialized views are recreated. To avoid this, check the next section about how to iterate the target table.**| + +### Behavior during active ingestion {#behavior-during-active-ingestion} + +When iterating your models, you need to be aware of how the different operations interact with the data being inserted: +- As ClickHouse materialized views act as **insert triggers**, they only capture data while they exist. If a materialized view is dropped and recreated (e.g. during a `--full-refresh`), any rows inserted into the source table during that window will **not** be processed by the materialized view. This is referred to as the materialized view being "blind". +- The different `catchup` processes are all based on `INSERT INTO ... SELECT` operations using the materialized views SQL and are independent of how the materialized views work. Once the `INSERT` starts, new data is not captured by it, but it will be captured by the attached materialized view. The following table summarizes the safety of each operation when inserts are actively happening on the source table. -### Implicit target operations {#ingestion-implicit-target} +#### Implicit target operations {#ingestion-implicit-target} | Operation | Internal process | Safety while inserts are happening | |-----------|------------------|------------------------------------| -| First `dbt run` | 1. Create target table
2. Insert data (if `catchup=True`)
3. Create MV(s) | ⚠️ **MV is blind between steps 1 and 3.** Any rows inserted into the source during this window are not captured. | -| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ Safe. The MV is updated atomically. | -| `dbt run --full-refresh` | 1. Create backup table
2. Insert data (if `catchup=True`)
3. Drop MV(s)
4. Exchange tables
5. Recreate MV(s) | ⚠️ **MV is blind during recreation.** Data inserted into the source between steps 3 and 5 will not appear in the new target table. | +| First `dbt run` | 1. Create target table
2. Insert data (if `catchup=True`)
3. Create materialized view(s) | ⚠️ **Materialized view is blind between steps 1 and 3.** Any rows inserted into the source during this window are not captured. | +| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ Safe. The materialized view is updated atomically. | +| `dbt run --full-refresh` | 1. Create backup table
2. Insert data (if `catchup=True`)
3. Drop materialized view(s)
4. Exchange tables
5. Recreate materialized view(s) | ⚠️ **Materialized view is blind during recreation.** Data inserted into the source between steps 3 and 5 will not appear in the new target table. | -### Explicit target operations {#ingestion-explicit-target} +#### Explicit target operations {#ingestion-explicit-target} **Materialized view models:** diff --git a/docs/integrations/language-clients/csharp.md b/docs/integrations/language-clients/csharp.md index 709fdefff57..eb7501a4e70 100644 --- a/docs/integrations/language-clients/csharp.md +++ b/docs/integrations/language-clients/csharp.md @@ -41,9 +41,6 @@ Both APIs share the same underlying HTTP connection pool and can be used togethe `ClickHouse.Driver` supports the following .NET versions: -* .NET Framework 4.6.2 -* .NET Framework 4.8 -* .NET Standard 2.1 * .NET 6.0 * .NET 8.0 * .NET 9.0 diff --git a/docs/integrations/language-clients/java/client/client.mdx b/docs/integrations/language-clients/java/client/client.mdx index 6cfdbdbe562..a655c3b8fa9 100644 --- a/docs/integrations/language-clients/java/client/client.mdx +++ b/docs/integrations/language-clients/java/client/client.mdx @@ -272,7 +272,42 @@ Configuration is defined during client creation. See `com.clickhouse.client.api.
-### Server Settings +### Client Identification {#client-identification} + +There are two fields in a query log that identify application originated a request: `client_name` and `http_user_agent`. Native TCP protocol uses +`client_name` to identify application. HTTP protocol uses `http_user_agent` to identify application. Client builder has method `setClientName` correct values +for both protocols. +The field `http_user_agent` is set according to `User-Agent` header common format: `application-name[/version] [(operating-system; architecture; ...)]`. +This set of values is repeated for each layer: application, client library, http client library. What is set by `setClientName` method comes first in the list. + +For example: +```java showLineNumbers +client.setClientName("my-app-01/1.0"); +``` +will result in the following `http_user_agent` value: +``` +my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 +``` + +Application can set own http header `User-Agent` to identify itself. But part `clickhouse-java-v2/0.9.6-SNAPSHOT` will be appended to the end of the header. + +### Operation Identification {#operation-identification} + +Query log has another two fields `query_id` and `log_comment` that can be used to identify an operation and add additional information to the query log. + +`query_id` is a unique identifier of an operation. It can be set by application by calling `setQueryId` method of the `QuerySettings` class. +```java showLineNumbers +QuerySettings querySettings = new QuerySettings(); +querySettings.setQueryId("some-query-id"); +``` + +`log_comment` is a comment that can be added to the query log. It can be set by application by calling `logComment` method of the `QuerySettings` class. +```java showLineNumbers +QuerySettings querySettings = new QuerySettings(); +querySettings.logComment("some-comment"); +``` + +### Server Settings {#server-settings} Server side settings can be set on the client level once while creation (see `serverSetting` method of the `Builder`) and on operation level (see `serverSetting` for operation settings class). diff --git a/docs/integrations/language-clients/java/jdbc/jdbc.mdx b/docs/integrations/language-clients/java/jdbc/jdbc.mdx index 48939bf9517..984981e095f 100644 --- a/docs/integrations/language-clients/java/jdbc/jdbc.mdx +++ b/docs/integrations/language-clients/java/jdbc/jdbc.mdx @@ -157,6 +157,40 @@ jdbc:ch:http://localhost:8123/?user=default&password=password&client_name=my-app ``` Note: no need to url encode JDBC URL or properties, they will be automatically encoded. +### Client Identification {#client-identification} + +There are two ways to identify application originated a request: set `com.clickhouse.client.api.ClientConfigProperties#CLIENT_NAME` via +connection properties or use `java.sql.Connection#setClientInfo(String name, String value)` method. + +```java showLineNumbers +Properties properties = new Properties(); +properties.setProperty(ClientConfigProperties.CLIENT_NAME.getKey(), "my-app-01"); +Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", properties); +``` + +```java showLineNumbers +conn.setClientInfo(com.clickhouse.jdbc.ClientInfoProperties.APPLICATION_NAME.getKey(), "my-app-01"); +``` + +Both ways will result in the following `http_user_agent` value in the query log: +``` +my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 +``` + +### Operation Identification {#operation-identification} + +JDBC Driver generates `query_id` for each operation (Currently it is included in server exceptions). + +To set `log_comment` for an operation use `com.clickhouse.jdbc.StatementImpl#getLocalSettings` method. This requires +`Statement` or `PreparedStatement` to be cast to `com.clickhouse.jdbc.StatementImpl` first. + +```java showLineNumbers +StatementImpl stmt = (StatementImpl) conn.createStatement(); +stmt.getLocalSettings().logComment("some-comment"); +``` + +**Note:** this approach work for single threaded uses of statement because `localSettings` is shared between threads. + ## Supported data types {#supported-data-types} JDBC Driver supports the same data formats as the underlying [java client](/integrations/java#supported-data-types). diff --git a/docs/integrations/misc/index.md b/docs/integrations/misc/index.md index a05f2d55af1..746b72d1157 100644 --- a/docs/integrations/misc/index.md +++ b/docs/integrations/misc/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/misc -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['visual interfaces', 'GUI', 'proxy', 'third-party integrations'] title: 'Tools' description: 'Landing page for the Tools section' doc_type: 'landing-page' diff --git a/docs/integrations/tools/data-integration/pg_clickhouse/introduction.md b/docs/integrations/tools/data-integration/pg_clickhouse/introduction.md index 8485e36be66..26b96496ec9 100644 --- a/docs/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/docs/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -44,8 +44,6 @@ factor 1; ✔︎ indicates full pushdown, while a dash indicates a query cancellation after 1m. All tests run on a MacBook Pro M4 Max with 36 GB of memory. - - | Query | PostgreSQL | pg_clickhouse | Pushdown | | ----------:| ----------:| -------------:|:--------:| | [Query 1] | 4693 ms | 268 ms | ✔︎ | @@ -58,7 +56,7 @@ memory. | [Query 8] | 342 ms | 156 ms | ✔︎ | | [Query 9] | 3094 ms | 298 ms | ✔︎ | | [Query 10] | 581 ms | 197 ms | ✔︎ | -| [Query 11] | 212 ms | 24 ms | ✔︎ | +| [Query 11] | 212 ms | 24 ms | | | [Query 12] | 1116 ms | 84 ms | ✔︎ | | [Query 13] | 958 ms | 1368 ms | | | [Query 14] | 181 ms | 73 ms | ✔︎ | diff --git a/docs/integrations/tools/data-integration/pg_clickhouse/reference.md b/docs/integrations/tools/data-integration/pg_clickhouse/reference.md index bb9eba19517..04f93f7aaba 100644 --- a/docs/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/docs/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -357,7 +357,7 @@ DROP FOREIGN TABLE uact CASCADE; ## DML SQL Reference {#dml-sql-reference} The SQL [DML] expressions below may use pg_clickhouse. Examples depend on -these ClickHouse tables, created by [make-logs.sql]: +these ClickHouse tables: ```sql CREATE TABLE logs ( @@ -574,6 +574,15 @@ try=# EXECUTE avg_durations_between_dates('2025-12-09', '2025-12-13'); (5 rows) ``` +:::warning +Parameterized execution prevents the [http driver](#create-server) from +properly converting DateTime time zones on ClickHouse versions prior to 25.8, +when the [underlying bug] was [fixed]. Note that sometimes PostgreSQL will use +a parameterized query plan even without using `PREPARE`. For any queries on +that require accurate time zone conversion, and where upgrading to 25.8 or +later is not an option, use the [binary driver](#create-server), instead. +::: + pg_clickhouse pushes down the aggregations, as usual, as seen in the [EXPLAIN](#explain) verbose output: @@ -714,8 +723,16 @@ SET pg_clickhouse.session_settings TO $$ $$; ``` -pg_clickhouse doesn't validate the settings, but passes them on to ClickHouse -for every query. It thus supports all settings for each ClickHouse version. +Some settings will be ignored in cases where they would interfere with the +operation of pg_clickhouse itself. These include: + +* `date_time_output_format`: the http driver requires it to be "iso" +* `format_tsv_null_representation`: the http driver requires the default +* `output_format_tsv_crlf_end_of_line` the http driver requires the default + +Otherwise, pg_clickhouse does not validate the settings, but passes them on to +ClickHouse for every query. It thus supports all settings for each ClickHouse +version. Note that pg_clickhouse must be loaded before setting `pg_clickhouse.session_settings`; either use [shared library preloading] or @@ -773,19 +790,19 @@ shared_preload_libraries = pg_clickhouse Useful to save memory and load overhead for every session, but requires the cluster to be restart when the library is updated. -## Function and Operator Reference {#function-and-operator-reference} - -### Data Types {#data-types} +## Data Types {#data-types} pg_clickhouse maps the following ClickHouse data types to PostgreSQL data -types: +types. [IMPORT FOREIGN SCHEMA](#import-foreign-schema) use the first type in +the PostgreSQL column when importing columns; additional types may be used in +[CREATE FOREIGN TABLE](#create-foreign-table) statements: | ClickHouse | PostgreSQL | Notes | -| -----------|------------------|-------------------------------| +|------------|------------------|-------------------------------| | Bool | boolean | | | Date | date | | | Date32 | date | | -| DateTime | timestamp | | +| DateTime | timestamptz | | | Decimal | numeric | | | Float32 | real | | | Float64 | double precision | | @@ -796,13 +813,136 @@ types: | Int64 | bigint | | | Int8 | smallint | | | JSON | jsonb | HTTP engine only | -| String | text | | +| String | text, bytea | | | UInt16 | integer | | | UInt32 | bigint | | | UInt64 | bigint | Errors on values > BIGINT max | | UInt8 | smallint | | | UUID | uuid | | +Additional notes and details follow. + +### BYTEA {#bytea} + +ClickHouse does not provide the equivalent of the PostgreSQL [BYTEA] type, but +allows any bytes to be stored in [String] type. In general ClickHouse strings +should be mapped to the PostgreSQL [TEXT], but when using binary data, map it +to [BYTEA]. Example: + +```sql +-- Create clickHouse table with String columns. +SELECT clickhouse_raw_query($$ + CREATE TABLE bytes ( + c1 Int8, c2 String, c3 String + ) ENGINE = MergeTree ORDER BY (c1); +$$); + +-- Create foreign table with BYTEA columns. +CREATE FOREIGN TABLE bytes ( + c1 int, + c2 BYTEA, + c3 BYTEA +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Insert binary data into the foreign table. +INSERT INTO bytes +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the results. +SELECT * FROM bytes; +``` + +That final `SELECT` query will output: + +```pgsql + c1 | c2 | c3 +----+------------------------------------------------------------+------------------------------------ + 1 | \x1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | \xae3b28cde02542f81acce8783245430d + 2 | \x5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | \x23e7c6cacb8383f878ad093b0027d72b + 3 | \x53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | \x7e969132fc656148b97b6a2ee8bc83c1 + 4 | \x4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | \x8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +Note that if there are any nul bytes in the ClickHouse columns, a foreign +table using [TEXT] columns will not output the proper values: + +```sql +-- Create foreign table with TEXT columns. +CREATE FOREIGN TABLE texts ( + c1 int, + c2 TEXT, + c3 TEXT +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Encode binary data as hex. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +Will output: + +```pgsql + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b + 3 | 53ac2c1fa83c8f64603fe9568d883331 | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +Note that rows two and three contain truncated values. This is because +PostgreSQL relies on nul-terminated strings and does not support nuls in its +strings. + +Attempting to insert binary values into [TEXT] columns will succeed and work +as expected: + +```sql +-- Insert via text columns: +TRUNCATE texts; +INSERT INTO texts +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the data. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +The text columns will be correct: + +```pgdsql + + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b0027d72b + 3 | 53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +But reading them as [BYTEA] will not: + +```pgsql +# SELECT * FROM bytes; + c1 | c2 | c3 +----+------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------ + 1 | \x5c783162663766306363383231643331313738363136613535613865306335323637373733353339376364646536663431353361396664336437 | \x5c786165336232386364653032353432663831616363653837383332343534333064 + 2 | \x5c783566366539653132636438353932373132653633383031366634623161326537333233306565343064623439386330663062316463383431 | \x5c783233653763366361636238333833663837386164303933623030323764373262 + 3 | \x5c783533616332633166613833633866363436303366653935363864383833333331303037643632383164653333306134623565373238663965 | \x5c783765393639313332666336353631343862393762366132656538626338336331 + 4 | \x5c783465336332653463623735343261343531373361386461633933396464633462633735323032653334326562633736396230663564613266 | \x5c783865663330663434633635343830643132623635306162366232623034323435 +(4 rows) +``` + +:::tip +As a rule, only use [TEXT] columns for encoded strings and use [BYTEA] columns +only for binary data, and never switch between them. +::: + +## Function and Operator Reference {#function-and-operator-reference} + ### Functions {#functions} These functions provide the interface to query a ClickHouse database. @@ -883,6 +1023,7 @@ maps the following functions: * `btrim`: [trimBoth](https://clickhouse.com/docs/sql-reference/functions/string-functions#trimboth) * `strpos`: [position](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#position) * `regexp_like`: [match](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#match) +* `md5`: [MD5](https://clickhouse.com/docs/sql-reference/functions/hash-functions#MD5) ### Custom Functions {#custom-functions} @@ -1040,8 +1181,18 @@ Copyright (c) 2025-2026, ClickHouse [dollar quoting]: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING "PostgreSQL Docs: Dollar-Quoted String Constants" [library preloading]: https://www.postgresql.org/docs/18/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD - "PostgreSQL Docs: Shared Library Preloading + "PostgreSQL Docs: Shared Library Preloading" [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "PostgreSQL Docs: PREPARE notes" [query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse "ClickHouse Docs: Alternatives to prepared statements in ClickHouse" + [underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 + "ClickHouse/ClickHouse#85847 Some queries in a multipart forms don't read settings" + [fixed]: https://github.com/ClickHouse/ClickHouse/pull/85570 + "ClickHouse/ClickHouse#85570 fix HTTP with multipart" + [BYTEA]: https://www.postgresql.org/docs/current/datatype-binary.html + "PostgreSQL Docs: Binary Data Types" + [String]: https://clickhouse.com/docs/sql-reference/data-types/string + "ClickHouse Docs: String" + [TEXT]: https://www.postgresql.org/docs/current/datatype-character.html + "PostgreSQL Docs: Character Types" diff --git a/docs/integrations/tools/data-integration/pg_clickhouse/tutorial.md b/docs/integrations/tools/data-integration/pg_clickhouse/tutorial.md index f8e26a46d18..211a0a1b7c5 100644 --- a/docs/integrations/tools/data-integration/pg_clickhouse/tutorial.md +++ b/docs/integrations/tools/data-integration/pg_clickhouse/tutorial.md @@ -228,54 +228,54 @@ Success! Use `\d` to show all the columns: ```pgsql taxi=# \d taxi.trips - Foreign table "taxi.trips" - Column | Type | Collation | Nullable | Default | FDW options ------------------------+-----------------------------+-----------+----------+---------+------------- - trip_id | bigint | | not null | | - vendor_id | text | | not null | | - pickup_date | date | | not null | | - pickup_datetime | timestamp without time zone | | not null | | - dropoff_date | date | | not null | | - dropoff_datetime | timestamp without time zone | | not null | | - store_and_fwd_flag | smallint | | not null | | - rate_code_id | smallint | | not null | | - pickup_longitude | double precision | | not null | | - pickup_latitude | double precision | | not null | | - dropoff_longitude | double precision | | not null | | - dropoff_latitude | double precision | | not null | | - passenger_count | smallint | | not null | | - trip_distance | double precision | | not null | | - fare_amount | numeric(10,2) | | not null | | - extra | numeric(10,2) | | not null | | - mta_tax | numeric(10,2) | | not null | | - tip_amount | numeric(10,2) | | not null | | - tolls_amount | numeric(10,2) | | not null | | - ehail_fee | numeric(10,2) | | not null | | - improvement_surcharge | numeric(10,2) | | not null | | - total_amount | numeric(10,2) | | not null | | - payment_type | text | | not null | | - trip_type | smallint | | not null | | - pickup | character varying(25) | | not null | | - dropoff | character varying(25) | | not null | | - cab_type | text | | not null | | - pickup_nyct2010_gid | smallint | | not null | | - pickup_ctlabel | real | | not null | | - pickup_borocode | smallint | | not null | | - pickup_ct2010 | text | | not null | | - pickup_boroct2010 | text | | not null | | - pickup_cdeligibil | text | | not null | | - pickup_ntacode | character varying(4) | | not null | | - pickup_ntaname | text | | not null | | - pickup_puma | integer | | not null | | - dropoff_nyct2010_gid | smallint | | not null | | - dropoff_ctlabel | real | | not null | | - dropoff_borocode | smallint | | not null | | - dropoff_ct2010 | text | | not null | | - dropoff_boroct2010 | text | | not null | | - dropoff_cdeligibil | text | | not null | | - dropoff_ntacode | character varying(4) | | not null | | - dropoff_ntaname | text | | not null | | - dropoff_puma | integer | | not null | | + Foreign table "taxi.trips" + Column | Type | Collation | Nullable | Default | FDW options +-----------------------+--------------------------+-----------+----------+---------+------------- + trip_id | bigint | | not null | | + vendor_id | text | | not null | | + pickup_date | date | | not null | | + pickup_datetime | timestamp with time zone | | not null | | + dropoff_date | date | | not null | | + dropoff_datetime | timestamp with time zone | | not null | | + store_and_fwd_flag | smallint | | not null | | + rate_code_id | smallint | | not null | | + pickup_longitude | double precision | | not null | | + pickup_latitude | double precision | | not null | | + dropoff_longitude | double precision | | not null | | + dropoff_latitude | double precision | | not null | | + passenger_count | smallint | | not null | | + trip_distance | double precision | | not null | | + fare_amount | numeric(10,2) | | not null | | + extra | numeric(10,2) | | not null | | + mta_tax | numeric(10,2) | | not null | | + tip_amount | numeric(10,2) | | not null | | + tolls_amount | numeric(10,2) | | not null | | + ehail_fee | numeric(10,2) | | not null | | + improvement_surcharge | numeric(10,2) | | not null | | + total_amount | numeric(10,2) | | not null | | + payment_type | text | | not null | | + trip_type | smallint | | not null | | + pickup | character varying(25) | | not null | | + dropoff | character varying(25) | | not null | | + cab_type | text | | not null | | + pickup_nyct2010_gid | smallint | | not null | | + pickup_ctlabel | real | | not null | | + pickup_borocode | smallint | | not null | | + pickup_ct2010 | text | | not null | | + pickup_boroct2010 | text | | not null | | + pickup_cdeligibil | text | | not null | | + pickup_ntacode | character varying(4) | | not null | | + pickup_ntaname | text | | not null | | + pickup_puma | integer | | not null | | + dropoff_nyct2010_gid | smallint | | not null | | + dropoff_ctlabel | real | | not null | | + dropoff_borocode | smallint | | not null | | + dropoff_ct2010 | text | | not null | | + dropoff_boroct2010 | text | | not null | | + dropoff_cdeligibil | text | | not null | | + dropoff_ntacode | character varying(4) | | not null | | + dropoff_ntaname | text | | not null | | + dropoff_puma | integer | | not null | | Server: taxi_srv FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') ``` @@ -428,9 +428,12 @@ your own SQL query. Time: 36.895 ms ``` -* Retrieve rides to LaGuardia or JFK airports: +* Set display time zone for New York and retrieve rides to LaGuardia or JFK + airports: ```pgsql + taxi=# SET timezone = 'America/New_York'; + SET taxi=# SELECT pickup_datetime, dropoff_datetime, @@ -448,13 +451,13 @@ your own SQL query. WHERE dropoff_nyct2010_gid IN (132, 138) ORDER BY pickup_datetime LIMIT 5; - pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour - ---------------------+---------------------+--------------+---------------------+----------------------+--------------+------+-----+------ - 2015-07-01 00:04:14 | 2015-07-01 00:15:29 | 13.30 | -34 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:09:42 | 2015-07-01 00:12:55 | 6.80 | 50 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:23:04 | 2015-07-01 00:24:39 | 4.80 | -125 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:27:51 | 2015-07-01 00:39:02 | 14.72 | -101 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:32:03 | 2015-07-01 00:55:39 | 39.34 | 48 | 138 | LGA | 2015 | 1 | 0 + pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour + ------------------------+------------------------+--------------+---------------------+----------------------+--------------+------+-----+------ + 2015-06-30 20:04:14-04 | 2015-06-30 20:15:29-04 | 13.30 | -34 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:09:42-04 | 2015-06-30 20:12:55-04 | 6.80 | 50 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:23:04-04 | 2015-06-30 20:24:39-04 | 4.80 | -125 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:27:51-04 | 2015-06-30 20:39:02-04 | 14.72 | -101 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:32:03-04 | 2015-06-30 20:55:39-04 | 39.34 | 48 | 138 | LGA | 2015 | 30 | 20 (5 rows) Time: 17.450 ms diff --git a/docs/integrations/tools/index.md b/docs/integrations/tools/index.md index b100e363480..ae7028416dc 100644 --- a/docs/integrations/tools/index.md +++ b/docs/integrations/tools/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/tools -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['ClickHouse integrations', 'SQL clients', 'data integrations', 'tools', 'third-party'] title: 'Tools' description: 'Landing page for the tools section' doc_type: 'landing-page' @@ -12,4 +12,4 @@ doc_type: 'landing-page' |-----------|---------------------------------------------------------------------------------------------------------------------------------| | [SQL Client](/integrations/sql-clients) | How to integrate ClickHouse with various common database management, analysis and visualization tools | | [Data Integrations](/integrations/tools/data-integrations) | Data integrations for ClickHouse | -| [Misc](/integrations/audit-splunk) | Miscellaneous tooling for ClickHouse | +| [Misc](/integrations/misc) | Miscellaneous tooling for ClickHouse | diff --git a/docs/use-cases/observability/clickstack/alerts.md b/docs/use-cases/observability/clickstack/alerts.md index 4c37b91d11e..adc4bcb5b45 100644 --- a/docs/use-cases/observability/clickstack/alerts.md +++ b/docs/use-cases/observability/clickstack/alerts.md @@ -1,6 +1,6 @@ --- slug: /use-cases/observability/clickstack/alerts -title: 'Search with ClickStack' +title: 'Alerts with ClickStack' sidebar_label: 'Alerts' pagination_prev: null pagination_next: null @@ -24,8 +24,6 @@ import remove_chart_alert from '@site/static/images/use-cases/observability/remo import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -## Alerting in ClickStack {#alerting-in-clickstack} - ClickStack includes built-in support for alerting, enabling teams to detect and respond to issues in real time across logs, metrics, and traces. Alerts can be created directly in the HyperDX interface and integrate with popular notification systems like Slack and PagerDuty. diff --git a/docs/use-cases/observability/clickstack/deployment/_snippets/_setup_managed_ingestion.md b/docs/use-cases/observability/clickstack/deployment/_snippets/_setup_managed_ingestion.md index d04e959318a..3a45c320763 100644 --- a/docs/use-cases/observability/clickstack/deployment/_snippets/_setup_managed_ingestion.md +++ b/docs/use-cases/observability/clickstack/deployment/_snippets/_setup_managed_ingestion.md @@ -38,7 +38,7 @@ To get started quickly, copy and run the Docker command shown. This command should include your connection credentials pre-populated. :::note[Deploying to production] -While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/use-cases/observability/clickstack/production#create-a-user) and modifying your configuration. +While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/use-cases/observability/clickstack/production#create-a-database-ingestion-user-managed) and modifying your configuration. ::: Running this single command starts the ClickStack collector with OTLP endpoints exposed on ports 4317 (gRPC) and 4318 (HTTP). If you already have OpenTelemetry instrumentation and agents, you can immediately begin sending telemetry data to these endpoints. diff --git a/docs/use-cases/observability/clickstack/deployment/managed.md b/docs/use-cases/observability/clickstack/deployment/managed.md index 83ce1dfad59..3f456cf028e 100644 --- a/docs/use-cases/observability/clickstack/deployment/managed.md +++ b/docs/use-cases/observability/clickstack/deployment/managed.md @@ -167,7 +167,7 @@ To get started quickly, copy and run the Docker command shown. **Modify this command with your service credentials, recorded when you created your service.** :::note[Deploying to production] -While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/use-cases/observability/clickstack/production#create-a-user) and modifying your configuration. +While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/use-cases/observability/clickstack/production#create-a-database-ingestion-user-managed) and modifying your configuration. ::: Running this single command starts the ClickStack collector with OTLP endpoints exposed on ports 4317 (gRPC) and 4318 (HTTP). If you already have OpenTelemetry instrumentation and agents, you can immediately begin sending telemetry data to these endpoints. diff --git a/docs/use-cases/observability/clickstack/deployment/oss/all-in-one.md b/docs/use-cases/observability/clickstack/deployment/oss/all-in-one.md index 94d07d092bf..9c91379e0fd 100644 --- a/docs/use-cases/observability/clickstack/deployment/oss/all-in-one.md +++ b/docs/use-cases/observability/clickstack/deployment/oss/all-in-one.md @@ -55,7 +55,7 @@ On clicking `Create` data sources will be created for the integrated ClickHouse HyperDX UI -For an example of using an alternative ClickHouse instance, see ["Create a ClickHouse Cloud connection"](/use-cases/observability/clickstack/getting-started/oss#create-a-cloud-connection). +For an example of using an alternative ClickHouse instance, see ["Using ClickHouse Cloud"](#using-clickhouse-cloud). ### Ingest data {#ingest-data} @@ -114,7 +114,7 @@ docker run -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} -e CLICKHOUSE_USER=defa The `CLICKHOUSE_ENDPOINT` should be the ClickHouse Cloud HTTPS endpoint, including the port `8443` e.g. `https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443` -On connecting to the HyperDX UI, navigate to [`Team Settings`](http://localhost:8080/team) and create a connection to your ClickHouse Cloud service - followed by the required sources. For an example flow, see [here](/use-cases/observability/clickstack/getting-started/oss#create-a-cloud-connection). +On connecting to the HyperDX UI, navigate to [`Team Settings`](http://localhost:8080/team) and create a connection to your ClickHouse Cloud service - followed by the required sources. ## Configuring the OpenTelemetry collector {#configuring-collector} diff --git a/docs/use-cases/observability/clickstack/deployment/oss/docker-compose.md b/docs/use-cases/observability/clickstack/deployment/oss/docker-compose.md index 5d005d7782b..ba33eaab5c2 100644 --- a/docs/use-cases/observability/clickstack/deployment/oss/docker-compose.md +++ b/docs/use-cases/observability/clickstack/deployment/oss/docker-compose.md @@ -68,7 +68,7 @@ You can override the default connection to the integrated ClickHouse instance. F HyperDX UI -For an example of using an alternative ClickHouse instance, see ["Create a ClickHouse Cloud connection"](/use-cases/observability/clickstack/getting-started/oss#create-a-cloud-connection). +For an example of using an alternative ClickHouse instance, see ["Using ClickHouse Cloud"](#using-clickhouse-cloud). ### Complete connection details {#complete-connection-details} diff --git a/docs/use-cases/observability/clickstack/deployment/oss/helm/helm-deployment-options.md b/docs/use-cases/observability/clickstack/deployment/oss/helm/helm-deployment-options.md index 44b6ebcdfae..99ba66a3d23 100644 --- a/docs/use-cases/observability/clickstack/deployment/oss/helm/helm-deployment-options.md +++ b/docs/use-cases/observability/clickstack/deployment/oss/helm/helm-deployment-options.md @@ -167,8 +167,6 @@ hyperdx: existingConfigSourcesKey: "sources.json" ``` -For a complete example of connecting to ClickHouse Cloud, see ["Create a ClickHouse Cloud connection"](/docs/use-cases/observability/clickstack/getting-started/oss#create-a-cloud-connection). - ## External OTEL Collector {#external-otel-collector} If you have an existing OTEL collector infrastructure: diff --git a/docs/use-cases/observability/clickstack/deployment/oss/helm/helm.md b/docs/use-cases/observability/clickstack/deployment/oss/helm/helm.md index 38b2e9a025c..fc099d46293 100644 --- a/docs/use-cases/observability/clickstack/deployment/oss/helm/helm.md +++ b/docs/use-cases/observability/clickstack/deployment/oss/helm/helm.md @@ -103,8 +103,6 @@ On clicking `Create`, data sources will be created for the ClickHouse instance d You can override the default connection to the integrated ClickHouse instance. For details, see ["Using ClickHouse Cloud"](#using-clickhouse-cloud). ::: -For an example of using an alternative ClickHouse instance, see ["Create a ClickHouse Cloud connection"](/docs/use-cases/observability/clickstack/getting-started/oss#create-a-cloud-connection). - ### Customizing values (optional) {#customizing-values} You can customize settings by using `--set` flags. For example: diff --git a/docs/use-cases/observability/clickstack/example-datasets/index.md b/docs/use-cases/observability/clickstack/example-datasets/index.md index 15095149c93..5f59be7d97e 100644 --- a/docs/use-cases/observability/clickstack/example-datasets/index.md +++ b/docs/use-cases/observability/clickstack/example-datasets/index.md @@ -15,3 +15,4 @@ This section provides various sample datasets and examples to help you get start | [Sample Data](sample-data.md) | Load a sample dataset containing logs, traces and metrics from our demo environment | | [Local Data](local-data.md) | Collect local system metrics and logs sending them to ClickStack for analysis | | [Remote Demo Data](remote-demo-data.md) | Connect to our remote demo cluster and explore an issue | +| [Session Replay Demo](session-replay.md) | Instrument a demo web application for session replay and view your interactions in ClickStack | diff --git a/docs/use-cases/observability/clickstack/example-datasets/session-replay.md b/docs/use-cases/observability/clickstack/example-datasets/session-replay.md new file mode 100644 index 00000000000..716a09d20b3 --- /dev/null +++ b/docs/use-cases/observability/clickstack/example-datasets/session-replay.md @@ -0,0 +1,175 @@ +--- +slug: /use-cases/observability/clickstack/example-datasets/session-replay-demo +title: 'Session Replay Demo' +sidebar_position: 4 +pagination_prev: null +pagination_next: null +description: 'Interactive demo application showing how to instrument a web app for ClickStack session replay' +doc_type: 'guide' +keywords: ['clickstack', 'session replay', 'browser sdk', 'demo', 'observability', 'instrumentation'] +--- + +import Image from '@theme/IdealImage'; +import api_key from '@site/static/images/clickstack/api-key.png'; +import demo_app from '@site/static/images/clickstack/session-replay/demo-app.png'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; + +:::note[TL;DR] +This guide walks through instrumenting a web application for session replay using the ClickStack Browser SDK. Unlike other sample datasets that load pre-generated data, this demo provides an interactive application where you generate session data through your own interactions. + +Time required: 10-15 minutes +::: + +## Overview {#overview} + +The [session replay demo application](https://github.com/ClickHouse/clickstack-session-replay-demo) is a documentation explorer built with vanilla JavaScript. It demonstrates how minimal session replay instrumentation can be — one script tag and one initialization call captures all user interactions automatically. + +The repository includes two branches: + +- **`main`** — fully instrumented and ready to use immediately +- **`pre-instrumented`** — a clean version without instrumentation, with code comments indicating where to add it + +This guide uses the `main` branch first to see session replay in action, then walks through the instrumentation code so you can apply the same pattern to your own application. + +For background on what session replay is and how it fits into ClickStack, see the [Session Replay](/use-cases/observability/clickstack/session-replay) feature page. + +## Prerequisites {#prerequisites} + +- Docker and Docker Compose installed +- Ports 3000, 4317, 4318, and 8080 available + +## Running the demo {#running-the-demo} + + + +### Clone the repository {#clone-repository} + +```shell +git clone https://github.com/ClickHouse/clickstack-session-replay-demo +cd clickstack-session-replay-demo +``` + +### Start ClickStack {#start-clickstack} + +```shell +docker-compose up -d clickstack +``` + +### Get your API key {#get-api-key} + +1. Open HyperDX at [http://localhost:8080](http://localhost:8080) +2. Create an account or log in if needed +3. Navigate to **Team Settings → API Keys** +4. Copy your **Ingestion API Key** + +ClickStack API Key + +5. Set it as an environment variable: + +```shell +export CLICKSTACK_API_KEY='your-api-key-here' +``` + +### Start the demo application {#start-demo-app} + +```shell +docker-compose --profile demo up demo-app +``` + +:::note +Ensure you run this command in the same terminal where you exported the `CLICKSTACK_API_KEY` variable. +::: + +Open [http://localhost:3000](http://localhost:3000) in your browser and interact with the app — search for topics, filter by category, view code examples, and bookmark items. + +Session replay demo app + +All interactions are automatically captured by the ClickStack Browser SDK. + +### View your session replay {#view-session-replay} + +Return to HyperDX at [http://localhost:8080](http://localhost:8080) and navigate to **Client Sessions** from the left sidebar. + +Session replay search + +You should see your session listed with its duration and event count. Click the ▶️ button to replay it. + +Session replay + +Switch between **Highlighted** and **All Events** modes to adjust the level of detail on the timeline. + + + +## The instrumentation {#instrumentation} + +The demo application shows how little code is needed to enable session replay. Two additions to the application are all it takes: + +**1. Include the SDK (`app/public/index.html`):** + +```html + +``` + +**2. Initialize ClickStack (`app/public/js/app.js`):** + +```javascript +window.HyperDX.init({ + url: 'http://localhost:4318', + apiKey: window.CLICKSTACK_API_KEY, + service: 'clickhouse-session-replay-demo', + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + +Everything else is standard application code. The SDK automatically captures all user interactions, console logs, network requests, and errors — no additional instrumentation is needed. + +### Try it yourself {#try-it-yourself} + +To instrument the app from scratch, switch to the `pre-instrumented` branch: + +```shell +git checkout pre-instrumented +``` + +This branch contains the same application without any ClickStack instrumentation. Code comments in `app/public/index.html` and `app/public/js/app.js` indicate exactly where to add the two code snippets above. Once added, restart the demo app and your interactions will begin appearing in ClickStack. + +## Troubleshooting {#troubleshooting} + +### Sessions not appearing in HyperDX {#sessions-not-appearing} + +1. Check the browser console for errors +2. Verify ClickStack is running: `docker-compose ps` +3. Confirm the API key is set: `echo $CLICKSTACK_API_KEY` +4. Adjust the time range in the Client Sessions view (try **Last 15 minutes**) +5. Hard refresh the browser: `Cmd+Shift+R` (Mac) or `Ctrl+Shift+R` (Windows/Linux) + +### 401 Unauthorized errors {#401-errors} + +The API key isn't set correctly. Make sure you: + +1. Exported it in your terminal: `export CLICKSTACK_API_KEY='your-key'` +2. Started the demo app in the **same terminal** where you exported it +3. Got the key from the HyperDX UI (not a randomly generated string) + +## Cleanup {#cleanup} + +Stop the services: + +```bash +docker-compose down +``` + +Remove all data: + +```bash +docker-compose down -v +``` + +## Learn more {#learn-more} + +- [Session Replay](/use-cases/observability/clickstack/session-replay) — feature overview, SDK options, and privacy controls +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — full SDK options and advanced configuration +- [ClickStack Getting Started](/use-cases/observability/clickstack/getting-started) — deploy ClickStack and ingest your first data +- [All Sample Datasets](/use-cases/observability/clickstack/sample-datasets) — other example datasets and guides diff --git a/docs/use-cases/observability/clickstack/session-replay.md b/docs/use-cases/observability/clickstack/session-replay.md new file mode 100644 index 00000000000..b8aef5cee4f --- /dev/null +++ b/docs/use-cases/observability/clickstack/session-replay.md @@ -0,0 +1,149 @@ +--- +slug: /use-cases/observability/clickstack/session-replay +title: 'Session Replay' +sidebar_label: 'Session Replay' +sidebar_position: 5 +pagination_prev: null +pagination_next: null +description: 'Capture and replay user sessions in ClickStack to debug frontend issues, understand user behavior, and correlate browser activity with backend logs and traces.' +doc_type: 'guide' +keywords: ['clickstack', 'session replay', 'browser sdk', 'frontend observability', 'user sessions', 'debugging'] +--- + +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; +import trace_to_replay from '@site/static/images/clickstack/session-replay/trace-to-replay.png'; +import clickpy_trace from '@site/static/images/clickstack/session-replay/clickpy-trace.gif'; + +Session replay in ClickStack captures and reconstructs user interactions in your web application, allowing you to visually replay exactly what a user saw and did during their session. Rather than video recording, the SDK records DOM changes, mouse movements, clicks, scrolls, keyboard inputs, console logs, network requests (XHR, Fetch, WebSocket), and JavaScript exceptions — then reconstructs the experience in the browser. + +Because session replays are stored in ClickHouse alongside your logs, traces, and metrics, you can go from watching a user's experience to inspecting the backend traces and database queries that powered it — all in a few clicks. This makes session replay useful for debugging production issues, understanding user behavior, identifying UX friction points, and visually confirming issues reported to support. + +## Instrumenting your application {#instrumentation} + +ClickStack is fully compatible with OpenTelemetry, so you can send browser telemetry (traces, exceptions) using the standard OpenTelemetry JavaScript SDK or any of the [ClickStack language SDKs](/use-cases/observability/clickstack/sdks). However, **session replay requires the ClickStack Browser SDK** (`@hyperdx/browser`), which extends the OpenTelemetry SDK with session recording, console capture, and network request capture. If you only need traces without session replay, any OTel-compatible browser SDK will work with ClickStack. + +The examples below use the ClickStack Browser SDK. Adding session replay to your application takes just three steps: install the package, initialize the SDK, and all user interactions are captured automatically — no further code changes required. + +:::tip +Initialize the SDK in a place that's guaranteed to load when your app starts. For example, in a Next.js application, this could be your root `layout.js`. This ensures session recording begins immediately and captures the full user experience. +::: + + + + +```shell +npm install @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // omit for Managed ClickStack + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +```shell +yarn add @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // omit for Managed ClickStack + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +For applications not using a bundler, include the SDK directly via a script tag. This exposes the `HyperDX` global variable, which can be used in the same way as the NPM package. + +```html + + +``` + + + + +:::note +The `tracePropagationTargets` option is key to connecting session replays with backend traces — set it to your API domain to enable full frontend-to-backend distributed tracing. For a complete list of SDK options including privacy controls, custom actions, React error boundaries, and source maps, see the [Browser SDK reference](/use-cases/observability/clickstack/sdks/browser). +::: + +The Browser SDK also supports [masking inputs and text](/use-cases/observability/clickstack/sdks/browser#options) for privacy-sensitive applications, and [attaching user information](/use-cases/observability/clickstack/sdks/browser#attach-user-information-or-metadata) so you can search and filter sessions by user in the ClickStack UI. + +## Viewing session replays {#viewing-replays} + +Navigate to **Client Sessions** from the left sidebar in the ClickStack UI (HyperDX). This view lists all captured browser sessions with their duration and event count. + +Session replay search view + +Click the play button on any session to replay it. The replay view shows the reconstructed user experience on the right, with a timeline of browser events — network requests, console logs, and errors — on the left. + +Session replay playback + +Switch between **Highlighted** and **All Events** modes to adjust the level of detail shown on the timeline. Errors are annotated in red, and clicking on any event navigates the replay to that point in the session. + +### From session to trace {#session-to-trace} + +When you select a network request or error in the session timeline, you can click through to the **Trace** tab to follow the request through your backend services — seeing the associated logs, spans, and database queries that were triggered by that user interaction. + +This works because the `tracePropagationTargets` configuration links browser spans to server spans via the `traceparent` header, creating a connected distributed trace from the user's click all the way to the database. For a detailed walkthrough of this in practice, including instrumenting both frontend and backend, see [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-nextjs-opentelemetry-clickstack). + +Drilling from a session replay into backend traces in ClickStack + +### From trace to session {#trace-to-session} + +The correlation works in the other direction too. When viewing a trace in the **Search** view, click on it to open the trace detail, then select the **Session Replay** tab to see exactly what the user was experiencing at the time of that trace. This is especially useful when investigating errors or slow requests — you can start from the backend issue and immediately see the user's perspective. + +Session replay trace view + +## How session data is stored {#data-storage} + +Session replay data is stored in a dedicated [`hyperdx_sessions`](/use-cases/observability/clickstack/ingesting-data/schemas#sessions) table in ClickHouse, separate from logs and traces. Each session event is a row with a `Body` field containing the event payload and a `LogAttributes` map storing the event metadata. The `Body` and `LogAttributes` columns together hold the details of the actual session events that are used to reconstruct the replay. + +For the full table schema information, see [Tables and schemas used by ClickStack](/use-cases/observability/clickstack/ingesting-data/schemas). + +## Try it out {#try-it-out} + +There are two ways to see session replay in action: + +- **Live example** — visit [clickpy.clickhouse.com](https://clickpy.clickhouse.com), interact with the app, then view your session replay at [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com) under the **ClickPy Sessions** source. For details on how ClickPy was instrumented, see the blog post [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-your-app-with-otel-clickstack). +- **Local demo** — the [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) walks through instrumenting a demo application step by step, including running ClickStack locally and viewing your replays. + +## Learn more {#learn-more} + +- [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) — interactive local demo application with step-by-step instructions +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — full SDK options, source maps, custom actions, and advanced configuration +- [Search](/use-cases/observability/clickstack/search) — search syntax for filtering sessions and events +- [Dashboards](/use-cases/observability/clickstack/dashboards) — build visualizations and dashboards from session and trace data +- [Alerts](/use-cases/observability/clickstack/alerts) — set up alerts on errors, latency, and other signals +- [ClickStack Architecture](/use-cases/observability/clickstack/architecture) — how ClickHouse, HyperDX, and the OTel collector fit together diff --git a/docs/whats-new/roadmap.md b/docs/whats-new/roadmap.md index e35f0381d88..e22bf155359 100644 --- a/docs/whats-new/roadmap.md +++ b/docs/whats-new/roadmap.md @@ -11,10 +11,11 @@ keywords: ['roadmap', 'future features', 'development plans', 'upcoming releases The current roadmap is published for open discussion: -- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) +- [2026](https://github.com/ClickHouse/ClickHouse/issues/93288) ## Previous roadmaps {#previous-roadmaps} +- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - [2024](https://github.com/ClickHouse/ClickHouse/issues/58392) - [2023](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2022](https://github.com/ClickHouse/ClickHouse/issues/44767) diff --git a/gt-lock.json b/gt-lock.json index fad63a554ca..f99152cb6d6 100644 --- a/gt-lock.json +++ b/gt-lock.json @@ -49,19 +49,19 @@ }, "a8710471f3f4af77c39b30a518f52a8deb6584069b4bfb8e64158f30627b4792": { "zh": { - "updatedAt": "2026-02-19T02:24:08.940Z", + "updatedAt": "2026-02-24T10:49:32.546Z", "postProcessHash": "58e391c6b83b50541b0ab2717c7787cd6dfc1e3f0aa5d2d22d12fdd368bfc698" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.944Z", + "updatedAt": "2026-02-24T10:49:32.551Z", "postProcessHash": "1916f9d39874e963ab3fb599821dbb2e0435db0500c05a966589397c779263b9" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.943Z", + "updatedAt": "2026-02-24T10:49:32.550Z", "postProcessHash": "e7c36fe1c22cc7d3ad92962171296e1e477ddf2f31004e6bb0486e588433a963" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.987Z", + "updatedAt": "2026-02-24T10:49:32.595Z", "postProcessHash": "4d8ac66774a9cb64640f28a08c873a80038dbeefd9b4ff33ae5b676c1be96ae8" } } @@ -69,19 +69,19 @@ "24bb0ca99917fdfda706556c75c640db16b12f966ea7bd58e1e9a8bdf4be5146": { "40c867ec4bd9ff53ca41f19ef2fb11bce1cd4d6f82211f50a350bacfd56350a1": { "jp": { - "updatedAt": "2026-02-19T02:24:09.008Z", + "updatedAt": "2026-02-24T10:49:32.619Z", "postProcessHash": "c2b159034204cbe9194f226815c59581e141b4b1d9a0888360d2731c9c4135b6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.008Z", + "updatedAt": "2026-02-24T10:49:32.620Z", "postProcessHash": "b4503160878c2254ab49f0007d23321ddb2c942c64c94db664bf33828e16dd60" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.997Z", + "updatedAt": "2026-02-24T10:49:32.610Z", "postProcessHash": "0b1764d2530de07a912c6cd1024488b3c16f566eeb57af1c8868eeefc7807027" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.043Z", + "updatedAt": "2026-02-24T10:49:32.655Z", "postProcessHash": "066c8e51c705c741a602bd4f5e0501f65ea8c5d736b3f1ea6286d711db8c1751" } } @@ -103,19 +103,19 @@ }, "b071a82e0beea536e345481d05cefa989ec3fffbdb715f9e71e1cce092af673a": { "ru": { - "updatedAt": "2026-02-19T02:24:08.946Z", + "updatedAt": "2026-02-24T10:49:32.553Z", "postProcessHash": "ceac81f16addfad27d2bcee51417a9b73aa9a01933b7f112446724679c9f0438" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.947Z", + "updatedAt": "2026-02-24T10:49:32.554Z", "postProcessHash": "2dbf4beb209bde27a8d177803afccd7842a4739423cb12c334aac2ef08199329" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.947Z", + "updatedAt": "2026-02-24T10:49:32.555Z", "postProcessHash": "66b397b9b239a4c85ad2d61f4d67c3b756b674519e4917fc0b44f699353b2874" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.046Z", + "updatedAt": "2026-02-24T10:49:32.658Z", "postProcessHash": "167492cbfb5442073c04af214612e3023bbda0261dc809d158f4b21870fb65ac" } } @@ -123,19 +123,19 @@ "37e1e1dcfe884bd88e97aa22d6ed7fc14323b326449d12f0a5644f15bd4ba087": { "bd75344d33495d82bb1ddbeeb77d5b1f53a6ecb5f788cb9eadaa606a67b5ba96": { "jp": { - "updatedAt": "2026-02-19T02:24:09.003Z", + "updatedAt": "2026-02-24T10:49:32.615Z", "postProcessHash": "e5e905d07be28050aa66dd55c4896d833e812f116fe9120eac294829456f1242" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.004Z", + "updatedAt": "2026-02-24T10:49:32.616Z", "postProcessHash": "14fd8bc4cbc9f61c5655f504fcb346fba3a806f8c548844bcee5bfcd9af0a0d8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.009Z", + "updatedAt": "2026-02-24T10:49:32.621Z", "postProcessHash": "9612a6ad02b86e775c0c30373bfa9bb267b079c3b296aa1f0e67771a11e06161" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.039Z", + "updatedAt": "2026-02-24T10:49:32.651Z", "postProcessHash": "717f50d5633b5f59c8675d1cd29e3a7dd384e7df96203d36162169aa106f5c0a" } } @@ -143,19 +143,19 @@ "49041ac358e6a0f1cdae73923da607add5f9d37fe3320250b5457924d09bcecc": { "d61c6739096f5de9a1f340500324926cc206fe878ab16df77def05d0ba746d3c": { "jp": { - "updatedAt": "2026-02-19T02:24:09.010Z", + "updatedAt": "2026-02-24T10:49:32.621Z", "postProcessHash": "149a40e0765161d19187178d9990fd73e946694b6e51ef1bceeb283543a9878d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.004Z", + "updatedAt": "2026-02-24T10:49:32.616Z", "postProcessHash": "cd0d063215a756503aad7cc467ee44c6563646559dd30c885f70e8bec46f5f9b" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.999Z", + "updatedAt": "2026-02-24T10:49:32.612Z", "postProcessHash": "e699a728dbcdf02df448087277a49c8f5dc1a48548622121ebcb3031f826f9e9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.046Z", + "updatedAt": "2026-02-24T10:49:32.658Z", "postProcessHash": "78c2b081bac6b6d498f5ed3f53b3b43030252b0dfc99622f2dae60a446ff50b3" } } @@ -163,19 +163,19 @@ "4abc97ebd23c7b3dacc0e18e77499272b51b908bd0c2a7a823d153d3c00f7613": { "7817d141aff4e4b1ceaca87c554c551bc1add23bd534611e2704fba56223fbfe": { "jp": { - "updatedAt": "2026-02-19T02:24:09.003Z", + "updatedAt": "2026-02-24T10:49:32.615Z", "postProcessHash": "527ce7cbe58aa319ab05e565a6fe49cb82ea6cd4e17366423cbd60e886732393" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.007Z", + "updatedAt": "2026-02-24T10:49:32.618Z", "postProcessHash": "983ce7e98f025ebbe40cef5c1c243223acbc01c78d010ead9d3f0320f8a35209" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.998Z", + "updatedAt": "2026-02-24T10:49:32.610Z", "postProcessHash": "42c1f2e1ab6e097cce135c282ebaed5580447772d65fa6a2cf17df13d6c0b4da" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.041Z", + "updatedAt": "2026-02-24T10:49:32.653Z", "postProcessHash": "66456b4baae05fe76977f2a63792a2a649b201c12e0e2004420b5f0250309239" } } @@ -183,19 +183,19 @@ "4e7333f7ff430819ccfae5b1f2b2ee97508f58db11c3e67c31430385b0618503": { "1a899ad20af5d3dc3c495e6ddc0c3ff5aacc9df838675e487a6910da0a531675": { "jp": { - "updatedAt": "2026-02-19T02:24:08.884Z", + "updatedAt": "2026-02-24T10:49:32.480Z", "postProcessHash": "fd1bdd7b6e449b3cbaf8f23a4182989d10bbc66d3ce3c6c561d3fbf04cc8e28b" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.929Z", + "updatedAt": "2026-02-24T10:49:32.537Z", "postProcessHash": "038d54fa6b85511e210bc6b1bdda410d6d87e969f204285acb9ec4c4226a8559" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.928Z", + "updatedAt": "2026-02-24T10:49:32.536Z", "postProcessHash": "cd462723c30c034c02ad63b2a30a43c01f4a41aefbee9c256545bc9f2b0db080" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.979Z", + "updatedAt": "2026-02-24T10:49:32.587Z", "postProcessHash": "57ae13d0fa25cbbcfe9653cca87422e14283ccc520947f567a05e299bb889320" } } @@ -203,19 +203,19 @@ "6f13745927dfcaff0a5b759cdfc9dc47aba26e811ab26776ee363cd821f7d585": { "be6c5629590606c77cd44d60b8cb153a6e8b1ae6d9f710967b3ea692cfc8cb6d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.001Z", + "updatedAt": "2026-02-24T10:49:32.613Z", "postProcessHash": "41ac3d39aa09bac8cde829d981d3feafcc427ae50b12a5ddab4f526608a02d23" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.999Z", + "updatedAt": "2026-02-24T10:49:32.611Z", "postProcessHash": "049ba85e4c87c348a3e669ed4b331203275570c47be8b31481a7a35435f561a7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.000Z", + "updatedAt": "2026-02-24T10:49:32.612Z", "postProcessHash": "0d87f7d349ae6e58126c41a418eefa79b58acb3ea6d84c86755369bd25696c27" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.042Z", + "updatedAt": "2026-02-24T10:49:32.654Z", "postProcessHash": "1748501626915243a9bb4274f8c227b8846ba35d21e3794832b08139c2d53853" } } @@ -223,19 +223,19 @@ "8ad40f5399ed36401edb12df869b1d441ff2d635581938c63d4f0a611fb977ae": { "16565c6a0928275a3a601a45f18823227dc886a00aad5531244bec633d3e8af4": { "jp": { - "updatedAt": "2026-02-19T02:24:09.018Z", + "updatedAt": "2026-02-24T10:49:32.631Z", "postProcessHash": "8bcf3ff641396e2d8c5da52dc58e751584d107f6d1d805c90988dec22c114a38" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.019Z", + "updatedAt": "2026-02-24T10:49:32.631Z", "postProcessHash": "e625c4b6b53d8b1fa5873b15f2f5c571c9d49edf455c2dd316216095bd77654d" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.994Z", + "updatedAt": "2026-02-24T10:49:32.606Z", "postProcessHash": "f170d3dd3162329051742b675cbd0ffe6828303ed835195e7fe76a8adcc5f156" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.057Z", + "updatedAt": "2026-02-24T10:49:32.669Z", "postProcessHash": "2f0931ecce746e0337d425e461488f8c2bda32046e463706e589f848c34fc5eb" } } @@ -243,19 +243,19 @@ "a3ea3f0c344313a1d3ad7969f1c82ef13af419e6eec98da91153c8735fd46730": { "df3510130e5bdcdacd162718bb228e62987c548fea96f8a9e94123cc6b9a78d5": { "jp": { - "updatedAt": "2026-02-19T02:24:08.885Z", + "updatedAt": "2026-02-24T10:49:32.481Z", "postProcessHash": "2c670901840457d43631271d798d948ad1808ea3e3a0768832448fa5291a14fb" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.923Z", + "updatedAt": "2026-02-24T10:49:32.528Z", "postProcessHash": "34866960754235413e8855a940c78ea424a1dcba2dc6cbd96e6a8e4c3a88aef5" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.883Z", + "updatedAt": "2026-02-24T10:49:32.480Z", "postProcessHash": "ad7050ee90633a3a2cea8936df2c98ec9f52bde0487b44993cd64636741aa3dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.980Z", + "updatedAt": "2026-02-24T10:49:32.588Z", "postProcessHash": "ef80a2161a04db97a4101c7dbe8f3a5c06be5984a4cf58c18b2639baf368a483" } } @@ -277,19 +277,19 @@ }, "2238fca025f8e9d9a09644498cfe3e176bfb878fc9eef1ce9eac653ac5609d62": { "jp": { - "updatedAt": "2026-02-19T02:24:09.022Z", + "updatedAt": "2026-02-24T10:49:32.635Z", "postProcessHash": "9d1fff2335500fea94d3724975766ef29f9d2969dcaa6b1b263acae18dd2a6a4" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.023Z", + "updatedAt": "2026-02-24T10:49:32.635Z", "postProcessHash": "c4560376ecf7b29d362fc413002dcaa4fe08ac89e477221c6ce3d767912d8a1d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.027Z", + "updatedAt": "2026-02-24T10:49:32.641Z", "postProcessHash": "f7be08bff036a4fcae66b8f5cb941e26a0dc9df82fec5705e5f308daf214123a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.044Z", + "updatedAt": "2026-02-24T10:49:32.656Z", "postProcessHash": "b992fe142e3f66c5faecd6548c3303d342cbe6d3580368702d564a3c7500ab06" } } @@ -311,19 +311,19 @@ }, "7da4f03c5e6ec725a42884072cfd75a488c9a0ada6a1fbab23da6e4493eb565d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.023Z", + "updatedAt": "2026-02-24T10:49:32.636Z", "postProcessHash": "0bf7b55d68e8c32760083a4f0974e76e1788681abe8d2621dcc0328bf6e01fba" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.024Z", + "updatedAt": "2026-02-24T10:49:32.637Z", "postProcessHash": "9fa6e7df16ec5380e9bc1597b072fdde81dc77cbbbf6923dd05c8c922e4b41e1" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.030Z", + "updatedAt": "2026-02-24T10:49:32.644Z", "postProcessHash": "1ab88928e6d5bd19ba5c78dbc583c3a0f5dd74ef8024b486b6fe7a1b8961794b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.040Z", + "updatedAt": "2026-02-24T10:49:32.652Z", "postProcessHash": "110026f583cc1fa21b007078789adc02564c458e97b99514308568b73bc25e9a" } } @@ -331,19 +331,19 @@ "c2811557e4f56ffd6e37b0f9f6558971e9d45005c22c3c19ebaef586f1591687": { "b9aea39ae1b4e63fef7a92d27750dfc746ac0ac174e77a895050ed0d24ff1ea7": { "jp": { - "updatedAt": "2026-02-19T02:24:08.856Z", + "updatedAt": "2026-02-24T10:49:32.453Z", "postProcessHash": "19178cfc82839ab319418e4b91ad31ae9222eee7448b47ac426d1c9895c27c74" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.925Z", + "updatedAt": "2026-02-24T10:49:32.529Z", "postProcessHash": "878c1dc25229057f04f7329f68cb107a1201e7aa26d991a76ee0a06c56193108" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.883Z", + "updatedAt": "2026-02-24T10:49:32.479Z", "postProcessHash": "9bebddceea95f25c2a31fffd2b390fdc0e4f6da032b26213db1b4b9cfbb349ae" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.984Z", + "updatedAt": "2026-02-24T10:49:32.592Z", "postProcessHash": "940b4323ff4933f2a43c4b6bed0028a67cb345acc7f25d927e1dd6eff941d52e" } } @@ -373,19 +373,19 @@ }, "a4c073207b34a9e6e51079c57f0e06190c406d676367e982df527e7379cf105d": { "jp": { - "updatedAt": "2026-02-19T02:24:08.942Z", + "updatedAt": "2026-02-24T10:49:32.549Z", "postProcessHash": "ff303f2b0d311f20ad669c58bc15125429853af64ca78154fd1374f61c38453a" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.941Z", + "updatedAt": "2026-02-24T10:49:32.548Z", "postProcessHash": "f3001102441020d90b9e6c86da492d499d04e864b59ae0f09958cbd55d2ce95d" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.940Z", + "updatedAt": "2026-02-24T10:49:32.547Z", "postProcessHash": "fd96d37b54caf1307bf3bad13bcecde833999af80b673620ae7feb5d0438530d" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.983Z", + "updatedAt": "2026-02-24T10:49:32.591Z", "postProcessHash": "d707a1a46362942db8ca96acb1e274028d6e37677b15df3fbadbc8452b3f557c" } } @@ -407,19 +407,19 @@ }, "d00bb1a1aad83498fff4cc2754cfe74a978e084470452c38fe9f465d112d1c98": { "jp": { - "updatedAt": "2026-02-19T02:24:08.952Z", + "updatedAt": "2026-02-24T10:49:32.558Z", "postProcessHash": "1da247e74d18cd435ac6aacdc4fdd1bf3360964523a624d93f3ee3243e283723" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.954Z", + "updatedAt": "2026-02-24T10:49:32.560Z", "postProcessHash": "2677a15eafb3267407541742b099d35f807853ba50698ab34c19c2ec970e44c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.959Z", + "updatedAt": "2026-02-24T10:49:32.566Z", "postProcessHash": "c563990ef0a3d1b09005841332cb571cd67f96f856e0dc395925105b3ab7fe6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.041Z", + "updatedAt": "2026-02-24T10:49:32.653Z", "postProcessHash": "28b23642b46f9705b47ed56ec86e9890038ffb452bfc9221dcaf8fa2c567e9d2" } } @@ -427,19 +427,19 @@ "d89bc73ed23da882f0c45593180a3989cb6844bd38d6496ab6cb5ab328d51083": { "42fe50c1e729beb1bfa14d29e80c4f579a068ebbfa39aa1ffe25b2bb963a815a": { "jp": { - "updatedAt": "2026-02-19T02:24:08.930Z", + "updatedAt": "2026-02-24T10:49:32.538Z", "postProcessHash": "12f93ea3d3825950e2a35a701ba23d5b5980e8037ee63d9b1ff2aa3d53099049" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.929Z", + "updatedAt": "2026-02-24T10:49:32.537Z", "postProcessHash": "b60b4485e60c8f6adc554d776d4af299bd72a7a8d51d6a27533f2e91f527ed1d" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.927Z", + "updatedAt": "2026-02-24T10:49:32.535Z", "postProcessHash": "0e9d71f429e1c54a12237acf88146995423cfc66ebb3f75a38f5d87d6affccd0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.055Z", + "updatedAt": "2026-02-24T10:49:32.666Z", "postProcessHash": "1689894018096ee05057a5fa139f27be5d6dbfe2647b20372469d8fe5d18b50f" } } @@ -461,19 +461,19 @@ }, "14ef182d26554339e45ede025255a1088650ab3f386f801cc0ee243388269127": { "jp": { - "updatedAt": "2026-02-19T02:24:09.026Z", + "updatedAt": "2026-02-24T10:49:32.640Z", "postProcessHash": "ba385665bc7c8e1e7c7638d1b5b2387ec5b153e6e0b8ef275ce9b212301ef043" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.026Z", + "updatedAt": "2026-02-24T10:49:32.640Z", "postProcessHash": "b7af9ffc49a74c9b249b617800854b0a3ba15c876feab64d94ef2d1255855946" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.031Z", + "updatedAt": "2026-02-24T10:49:32.645Z", "postProcessHash": "9fc70f3ff9c8ad4b4369433925b69776b42e153c032445df547301e9216926be" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.043Z", + "updatedAt": "2026-02-24T10:49:32.654Z", "postProcessHash": "69407d383153e6c5fffaac478b0902e6b6fac7d49d148617d5bcb618e0651f1b" } } @@ -481,19 +481,19 @@ "e92405c74b1c19a280775296a5640f2c7646bfabd9d6af48d6359d9a4f09c9d8": { "c9015dfa533bb72f0fe4f1f5a455b0a5497c12b645e908ee88d9686adff07027": { "jp": { - "updatedAt": "2026-02-19T02:24:09.002Z", + "updatedAt": "2026-02-24T10:49:32.614Z", "postProcessHash": "3e7c51f6cf75f0c9024617ce473a061249536a1e27d3108362f9e644f167a533" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.000Z", + "updatedAt": "2026-02-24T10:49:32.612Z", "postProcessHash": "65c70bfa5c1066d61400754e3ecc5dd1c4e562f91e8c9218778f1727353a4b95" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.010Z", + "updatedAt": "2026-02-24T10:49:32.622Z", "postProcessHash": "5a3f0ee08f15587cd66d919be56646cc7b54ff0d7cf1c9649472a45344eac53a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.048Z", + "updatedAt": "2026-02-24T10:49:32.660Z", "postProcessHash": "e71b7c3963f5d0641dd7734926d1f4cbee550c50cdf9be95d255dd115ed02dad" } } @@ -501,19 +501,19 @@ "ea04f6329e37f5487414c9b64a5e1602d705f1fc914807a5e16d95932f4ded16": { "c2794c8cfb2c5d8f3ad408c1a6ee6d92accd0948ff2682cca78897d7cef83daf": { "jp": { - "updatedAt": "2026-02-19T02:24:08.924Z", + "updatedAt": "2026-02-24T10:49:32.528Z", "postProcessHash": "ce1b605ce2b1ae82d27709000792b1ac93e1eba6e73f5533b512c8b56e18e7a5" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.927Z", + "updatedAt": "2026-02-24T10:49:32.535Z", "postProcessHash": "0d0e7fd0b767b57d7ddd40e8d11ec9798dad57ba34de0d5baee0f319d61ace2a" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.925Z", + "updatedAt": "2026-02-24T10:49:32.533Z", "postProcessHash": "676e2eabc488330faa0641994a889b14becfadcdf8b6d6d1d45501c8f229e56c" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.980Z", + "updatedAt": "2026-02-24T10:49:32.588Z", "postProcessHash": "727feba88325bd547eee76ce554686032dad43a0a2b880dfb9a5cbb481bc17a2" } } @@ -535,19 +535,19 @@ }, "0f44fcd1ceaa7b07a1d6e642ac21ab03af07fd348abe93504f1e6a33a283f3ea": { "jp": { - "updatedAt": "2026-02-19T02:24:08.964Z", + "updatedAt": "2026-02-24T10:49:32.570Z", "postProcessHash": "fc0c96c762de6319f540b172b4f057eb718ed15fb616639738c375745a156b0e" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.970Z", + "updatedAt": "2026-02-24T10:49:32.576Z", "postProcessHash": "c5e5f705f4ec29059445ee1f1f8c91e4b6e99d2ade1294fbd8175e161938f1bf" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.971Z", + "updatedAt": "2026-02-24T10:49:32.577Z", "postProcessHash": "2e3abb38ddf37601a006893161ff5c32d0ad5cf5c0624701b09eb32c43a1fd24" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.978Z", + "updatedAt": "2026-02-24T10:49:32.585Z", "postProcessHash": "2637116cc12e6a20a05916c1930f954c8907a2bfd60fe1c1ac90bc244be230bd" } } @@ -555,19 +555,19 @@ "ef555d903b99c706a7fbc048a6888f3d3743693968bc76912f338d53af846b0c": { "c84825f7cf888bad7b7b5ec57d4a3941f8dc40c7526398600864fd18a77516ef": { "zh": { - "updatedAt": "2026-02-19T02:24:09.002Z", + "updatedAt": "2026-02-24T10:49:32.614Z", "postProcessHash": "5e8fbc5025e237e43a50093550836e281b05664d90bfc7aca7c95ad3f88f75cd" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.005Z", + "updatedAt": "2026-02-24T10:49:32.617Z", "postProcessHash": "9de8b7fc3937676407d7db0f252d6cd511a8673a3934d3470e8181db3e3271c9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.001Z", + "updatedAt": "2026-02-24T10:49:32.613Z", "postProcessHash": "c1a2637d3b784bb1961182c0efed5a3e6c20c514f1fcee3d69b6bb993f387238" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.120Z", + "updatedAt": "2026-02-24T10:49:32.720Z", "postProcessHash": "9a2fd22bb6af064355cda6b652a2a8045f24b3d52b80a31c70b94baf3d0c8000" } } @@ -575,19 +575,19 @@ "fb2a4bdb7f2883fa7ac9878a6d4e978def652c408e4ef95784547eef9e313dbb": { "20e4763f0f7057430907de10bf00a918aa2e762becf34af686b125a9da4fe458": { "jp": { - "updatedAt": "2026-02-19T02:24:08.855Z", + "updatedAt": "2026-02-24T10:49:32.451Z", "postProcessHash": "066c343903fc8f105322a8b7d2482f81cf1d3b4db8c650f4095546602c9998d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.855Z", + "updatedAt": "2026-02-24T10:49:32.452Z", "postProcessHash": "b3cb903f920b0efabfd2d2b8989b14439fc616dd236f7385108983931d029bf9" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.926Z", + "updatedAt": "2026-02-24T10:49:32.534Z", "postProcessHash": "2447d25dc0f1696c6aaf1c6ae2d72db63375857928f0a721731f9c1facd8b816" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.981Z", + "updatedAt": "2026-02-24T10:49:32.589Z", "postProcessHash": "547f6939c737622062fbec26a93405c44a227b7e4f870b046b9a62cba66c9a42" } } @@ -609,19 +609,19 @@ }, "b8b38bda8493b815b803e175f5606a3ed4d90f534bfb1e50c7f31f1be7377c03": { "zh": { - "updatedAt": "2026-02-19T02:24:09.352Z", + "updatedAt": "2026-02-24T10:49:32.953Z", "postProcessHash": "82edc3d963288e1603537a6bd61117d826cfefec3f90fcd2da7b4b08b0c96b29" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.353Z", + "updatedAt": "2026-02-24T10:49:32.954Z", "postProcessHash": "3240d1ee755ac14e9f933e91c416c46086e521472b24f55bfe59947073c8f1e1" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.354Z", + "updatedAt": "2026-02-24T10:49:32.955Z", "postProcessHash": "4488a075b7798cd1c3dd710c4a9f1b0e967074383fc7acbae256079783f74f9c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.369Z", + "updatedAt": "2026-02-24T10:49:32.990Z", "postProcessHash": "197ef518f4b978ecb30d77dca1177d967a1feb8bc505539b7bdb289dea31fbbb" } } @@ -629,19 +629,19 @@ "3e38c1623307fe1538f034436996c45b6ce42cebe6a35b146ba34a354e7b226a": { "7d9c49d88230712b6849bcab6640651373295cad7888223291eb46da868626e3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.380Z", + "updatedAt": "2026-02-24T10:49:33.006Z", "postProcessHash": "adbf3470ec4df46143250be3ba2cd128011d0cc073401f47468887ef78f214bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.379Z", + "updatedAt": "2026-02-24T10:49:33.004Z", "postProcessHash": "e5b3c3f5ea30fa4103f558f85732c4c901802a7b6b272cdd2800d3183e33172a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.378Z", + "updatedAt": "2026-02-24T10:49:33.003Z", "postProcessHash": "42a5cca9d425a028e47cc62bff77488d51a89f7c1aa4217fc17fa7ff4a57d2c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.423Z", + "updatedAt": "2026-02-24T10:49:33.056Z", "postProcessHash": "a411c92e3661d2c2854f5b8ee14efca592e8aa3f17eea79759b905d915243adc" } } @@ -663,19 +663,19 @@ }, "ac45208a229b0b7ebfd99a918142b95fe819d4c916a059f4ec4b30684048af63": { "ru": { - "updatedAt": "2026-02-19T02:24:09.392Z", + "updatedAt": "2026-02-24T10:49:33.025Z", "postProcessHash": "03deb34deb3c69862a3c00d2a39ec3af46166144b538e3eae7de6ffcc909bb7a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.394Z", + "updatedAt": "2026-02-24T10:49:33.028Z", "postProcessHash": "9829bb0ddb78e49af756ac371c9416380c5ea294911ff41ec90dea0226b87aa2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.396Z", + "updatedAt": "2026-02-24T10:49:33.029Z", "postProcessHash": "36f773c6d8a12f43ab9e881c81367b88259fa405199540ea3df954e7923b37c9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.427Z", + "updatedAt": "2026-02-24T10:49:33.062Z", "postProcessHash": "e0bae769c7e48ffde4d9af81fbd4aaf5399cbb4f7256815655c2b0af4215cb84" } } @@ -683,19 +683,19 @@ "4fa6a5d68016ad855e418c2e88b5a37793256913a0caceaf33014edf61107509": { "1ed9748c6ebe33e1898f694a866a318e321540cc9186ac29b7621da0715118c5": { "jp": { - "updatedAt": "2026-02-19T02:24:09.381Z", + "updatedAt": "2026-02-24T10:49:33.008Z", "postProcessHash": "4b28de374793ac2ccec45b9f32a3d9415caa8b274547ca0c9cb4a128aaaabec8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.383Z", + "updatedAt": "2026-02-24T10:49:33.010Z", "postProcessHash": "9fe0d9723b9570ba1b159dd3ca7bb497d138ecb29e10eb2a09663e445b759bdf" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.374Z", + "updatedAt": "2026-02-24T10:49:32.997Z", "postProcessHash": "fa14cb3b1b996a1b7c8ac10227955be037bb2067631054e18dd2880e6eb9d045" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.424Z", + "updatedAt": "2026-02-24T10:49:33.059Z", "postProcessHash": "f0fd65738bcd4e9f9a3be6005190b54607e7f73047c3c2606e2dd897b990254d" } } @@ -717,19 +717,19 @@ }, "e7551227efa5e635101403f863799146fc9029506c0a7eeed42d83eea630fe92": { "jp": { - "updatedAt": "2026-02-19T02:24:09.345Z", + "updatedAt": "2026-02-24T10:49:32.948Z", "postProcessHash": "98de1fa0f824db18057222b5c3af7114a783cac728dddd4f73421c62d47d6c93" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.346Z", + "updatedAt": "2026-02-24T10:49:32.949Z", "postProcessHash": "7923bc53b3575bb76eb9cae1385c1f78de1e8366a87855a32ba5dc36877f0009" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.348Z", + "updatedAt": "2026-02-24T10:49:32.950Z", "postProcessHash": "5e754240f300dc95396bed0fcf36a5e03b697e79a19e592bbad674b373a2e49e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.365Z", + "updatedAt": "2026-02-24T10:49:32.985Z", "postProcessHash": "07298037c089a5ed71e442f202aab782e5b60d133873ac586758612ff5a1e3b9" } } @@ -812,24 +812,42 @@ "updatedAt": "2026-02-19T02:24:09.129Z", "postProcessHash": "bc3a1040e63bbdcbbc3a3295dd01e59436ef3ca5253e744e747bba1a06cc6445" } + }, + "7481ac442ff1db2bcd387c51cd3beacaa177c09f50f499deec18210fea829a87": { + "zh": { + "updatedAt": "2026-02-24T10:49:32.721Z", + "postProcessHash": "b8068ffb29176d6a42190ca37caa6afc5be640db556ef38d6c61d5e563181a6c" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:32.723Z", + "postProcessHash": "fc2750e338a9dc66c22142fdfa6f436e9a1dc059a4225e20f6169295eae500f2" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:32.726Z", + "postProcessHash": "9b6bd16ceafb2e972f8bc05f8f658d43fd34269a0d9fe4ea9b2db05263496f7d" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:32.730Z", + "postProcessHash": "a2061dd406e4f930193e607dbbb8b6791a336755b9dcf8bcc49c9088929960c3" + } } }, "69aa1e22d1867f2dd9082998e597234169f92ed3ba4c3d6af26b34ffa82e4a48": { "aea97333102d80bfe523bef5b3932706938c1ab2307337cf20451a0633f0d7a0": { "jp": { - "updatedAt": "2026-02-19T02:24:09.338Z", + "updatedAt": "2026-02-24T10:49:32.940Z", "postProcessHash": "3ca330ec7d12194cd8d43155f7aeb26c13a9b53e3f683fd8a6732f0be0319a76" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.336Z", + "updatedAt": "2026-02-24T10:49:32.938Z", "postProcessHash": "0756612fabd749f0c52b94a55937f26d5083fc138d02b2c62e504e6281b3aa1e" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.378Z", + "updatedAt": "2026-02-24T10:49:33.003Z", "postProcessHash": "0f12b8f141c59d2672d963aa025bede85dba80176b0e9610ebc70db0068ed783" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.429Z", + "updatedAt": "2026-02-24T10:49:33.063Z", "postProcessHash": "5a7c9a9b3706dd15db3dd38a5530c12700d5aea526dde472223c26ec98c9e327" } } @@ -865,19 +883,19 @@ }, "063689e1eaf2c0302acdbc699df44df6039a4382a07508437deffe895ac9df6d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.345Z", + "updatedAt": "2026-02-24T10:49:32.948Z", "postProcessHash": "b9dd9f46d0b9423672c7f5f5182aef850928f9a1daf40794f70a3e031ff6ef6e" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.346Z", + "updatedAt": "2026-02-24T10:49:32.949Z", "postProcessHash": "33bbbdaf5929b7a235630bd2e2e671e626a528f75743a3d5e809c00f3a487217" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.347Z", + "updatedAt": "2026-02-24T10:49:32.950Z", "postProcessHash": "7d00fd00b6a03f3008dabc851d7da6a58b9b2690b47194790338d7a779e362db" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.365Z", + "updatedAt": "2026-02-24T10:49:32.984Z", "postProcessHash": "ba79c8eb567c5e24dd71b6009eebcec96dbc41f341345b1e0b99f3d97a0705f2" } } @@ -927,19 +945,19 @@ }, "1c75420ef858d3fd3fe2e628e163987eab7d0a3d2256900bde11589ef6c25c53": { "zh": { - "updatedAt": "2026-02-19T02:24:09.396Z", + "updatedAt": "2026-02-24T10:49:33.030Z", "postProcessHash": "191b4e77c976778ecb5ed164bd1ea4b012f65a4c93a9f61ed46592ba2c444f3d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.404Z", + "updatedAt": "2026-02-24T10:49:33.038Z", "postProcessHash": "a1570be16d9bca1ccc0bf4454488fd3417d32bba57a422f45803dc64284ce2bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.405Z", + "updatedAt": "2026-02-24T10:49:33.039Z", "postProcessHash": "2b27afca8cc62f8849ac89592efcdc1a6680c0e159cc3ac47483b6dcb9b01d1a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.424Z", + "updatedAt": "2026-02-24T10:49:33.058Z", "postProcessHash": "ae87c83aa357bcc837745b1966c17cb290f9716f48bc2d4f2d69d45e6fc75e01" } } @@ -947,19 +965,19 @@ "8d9acd4ed372d08f28519dfb01b6900545df9f42502ac21f0ef6bd86b724c724": { "3ca361084040c6efbaef261b3b4c88e38d022539f3e58645a4023be45b9ed7f2": { "jp": { - "updatedAt": "2026-02-19T02:24:09.383Z", + "updatedAt": "2026-02-24T10:49:33.011Z", "postProcessHash": "6953961a2646a8ba9086b4de8c85bf1675ce1e9fbaa756900ca53568a50b942a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.376Z", + "updatedAt": "2026-02-24T10:49:33.000Z", "postProcessHash": "0d3169e3982c50a1af0140de3dbe66b0a27f9c549609525ea3f3eeca871789db" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.336Z", + "updatedAt": "2026-02-24T10:49:32.939Z", "postProcessHash": "1ee4ad34a8c447f681641d606c9f7f7cc555af7de87f35a1570190b32797a165" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.426Z", + "updatedAt": "2026-02-24T10:49:33.061Z", "postProcessHash": "58262ce46aa7a9556de0fc619db6a1033f752ead1099c55cab5aca64ba2764b7" } } @@ -967,19 +985,19 @@ "902fba8b39d6b163ee66698d8bd12433740962a53ec93d756ebdc9d11cc5c531": { "dc72366dcf698c0d7f7b5eed229fd9a7dbb9776362cc9399cf927769376a9098": { "jp": { - "updatedAt": "2026-02-19T02:24:09.338Z", + "updatedAt": "2026-02-24T10:49:32.941Z", "postProcessHash": "1f1ec41d23e63bd76de22c2cf8888b283f10a1b8b787d63b0b9d0495709e9d49" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.339Z", + "updatedAt": "2026-02-24T10:49:32.942Z", "postProcessHash": "69c4f5372057ca46e67c0ffbd84fc38f696c6441ef42b3690952dd20899f8b3c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.339Z", + "updatedAt": "2026-02-24T10:49:32.941Z", "postProcessHash": "ce58780af5fcd724a09d992cdad2a8b119596ea6f092bcadd56d6d3210a87474" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.366Z", + "updatedAt": "2026-02-24T10:49:32.987Z", "postProcessHash": "5645fb9231f27ccebacd8549c6d3e1c9ecf51ea2841145d64f87ac473164f5b3" } } @@ -1076,6 +1094,24 @@ "updatedAt": "2026-02-19T02:24:09.131Z", "postProcessHash": "5211120feae8f0d1905f7591387a9a514e9d670be32849ea727cc81a59da54f9" } + }, + "6649723a968b98d9d5bf5d0483d57a95ade504a54171aa30a4dd1a51e73409b0": { + "ko": { + "updatedAt": "2026-02-24T10:49:32.724Z", + "postProcessHash": "09c62a21c40e9fa68061b835c27f53ee5b281abed5de1fb82204b9e01318b3c5" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:32.725Z", + "postProcessHash": "ea68d0c6f012b48a2803440f67c13aebcbb498743c8b981f232d0115bde39c30" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:32.728Z", + "postProcessHash": "7f0fb398893dfdc75a2e49e23f1a750b3d4ad6b9060f8887fd64fc2b82638868" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:32.729Z", + "postProcessHash": "6ed08528046879c752bc46f7d5ad81c09a984eaa2b819f928d4037fec20dd6e5" + } } }, "9ac02f1c2289520aeb58725683781053f5ba6bf828b2e8585540596060f1f416": { @@ -1095,19 +1131,19 @@ }, "ff4ae5a1f573be1a072b4b09e365f022836a2f75586f997d01c700c728f24d96": { "zh": { - "updatedAt": "2026-02-19T02:24:09.342Z", + "updatedAt": "2026-02-24T10:49:32.944Z", "postProcessHash": "7d24cbb8e49be73c4f0753b2a9c29b893ca591f44672641a073b6cc0de444b1d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.342Z", + "updatedAt": "2026-02-24T10:49:32.945Z", "postProcessHash": "be1c2e4608f92ae1f387fb676c9bfa195d4a518df6a9a9e7815892c858bf2419" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.343Z", + "updatedAt": "2026-02-24T10:49:32.945Z", "postProcessHash": "34d857b91ad5a6be3d5caa5fd87cd296cc611b29bdb615c5a508fd291fd9e4c7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.361Z", + "updatedAt": "2026-02-24T10:49:32.963Z", "postProcessHash": "30d6d2cf35f465d0a373b25c5389e52fe6fb6be4fc27a567b039ca268583f61e" } } @@ -1115,19 +1151,19 @@ "9c7cf003973e27e4edaecd818b57b1e653cdfc8e936c45c67e314eb7123327be": { "1bca9e04eb1cf2d68b948ebb6ff7b813d50c8faada3f1ee2a8c561e9d96d6882": { "jp": { - "updatedAt": "2026-02-19T02:24:09.006Z", + "updatedAt": "2026-02-24T10:49:32.618Z", "postProcessHash": "7643936e64d9421b1100b3e03f96f1d86566f298b013156b2294fa0e8090765d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.007Z", + "updatedAt": "2026-02-24T10:49:32.619Z", "postProcessHash": "9771d7374750e9391c577cc6ab4783afc3355df8bd5cac0e3e6d811fad3c77ad" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.006Z", + "updatedAt": "2026-02-24T10:49:32.617Z", "postProcessHash": "88267ee69616a7f62783d0cdf785584ff6f8c4d6b4fa617cd7985731fdd30fbd" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.119Z", + "updatedAt": "2026-02-24T10:49:32.720Z", "postProcessHash": "8c138207193b814d4361dc5a478c7e0a01bf0f7bbd64de4527af7ffbfbb45ac7" } } @@ -1149,19 +1185,19 @@ }, "9e7671ad913d100dc6259a8a88ad3dc0f24da9531d485f16da8c48b3c253ffad": { "zh": { - "updatedAt": "2026-02-19T02:24:09.398Z", + "updatedAt": "2026-02-24T10:49:33.031Z", "postProcessHash": "7fc407f7575b33ad9fd6662f408f9b231eb42039a6af0e988cbc8cfd2fcc8be9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.406Z", + "updatedAt": "2026-02-24T10:49:33.039Z", "postProcessHash": "2738f01cd381d8b7cef6abe9e3bb16da7e5929061f64168f1e714bb521b4d095" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.408Z", + "updatedAt": "2026-02-24T10:49:33.041Z", "postProcessHash": "a0e65d90c4a80a5e492daacfac96ac9f6f39845a8c86a7310e28ad0e1c2fe44f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.428Z", + "updatedAt": "2026-02-24T10:49:33.063Z", "postProcessHash": "6534090e1adf124595ed4dac5c84e95ba0f13a6f559bdb274d7a29ede9532829" } } @@ -1198,24 +1234,42 @@ "updatedAt": "2026-02-19T02:24:09.371Z", "postProcessHash": "08cefe6644881e553b33c944ecfd8174ac5616b87fd3828792e8244e0c318634" } + }, + "6f4a9eeb23c55bdda88610b7fe2365c8a0c0764b98c8f0019a72be4e8c936d2d": { + "ru": { + "updatedAt": "2026-02-24T10:49:32.993Z", + "postProcessHash": "f758e4a82812ef42dc3855c14b4ef1dec06ae874b9b37ac1d25276d3c1feaa27" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:32.994Z", + "postProcessHash": "311ee19c45041a600e7c8eb0cefd2e082dc4c16c75bdb9d2eb8c2d0917c788ae" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:32.995Z", + "postProcessHash": "97cd2fe61970ec477db8baf525eb291ab2999ac720a48f35c8b5f71edfd2f4b3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:32.995Z", + "postProcessHash": "0e4da3ce91a235e10f91667b35aa4ee659d35254be3f21a8b09cec9bfa8638c9" + } } }, "ad7599fbe857ed33f8231ed240a179e73c2e77cfa5e658ffca7502e66d2eeb8d": { "fadc1396d5e8d2ef81e08c49dd8a08b01468ff70c1b1463a692904b2403b88dc": { "jp": { - "updatedAt": "2026-02-19T02:24:09.380Z", + "updatedAt": "2026-02-24T10:49:33.005Z", "postProcessHash": "44910143b45db082421bddece0c77ce6eb9daa860e18caabf9cacf483a485159" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.385Z", + "updatedAt": "2026-02-24T10:49:33.014Z", "postProcessHash": "d157b05509d68f4be9ac8b25f813ecbe2a411ba42e4158758c0c7cee9487900a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.384Z", + "updatedAt": "2026-02-24T10:49:33.013Z", "postProcessHash": "2de41e57c41f827c5c19512f45683267ef7ce70532b093120e5d99113b840571" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.423Z", + "updatedAt": "2026-02-24T10:49:33.057Z", "postProcessHash": "3577836a7f092e7e6beeb0e2aedb40b44e1b7a03bd405642a8a08ba9821d4249" } } @@ -1237,19 +1291,19 @@ }, "240bcb760a2c4908e61321e7eb27581f2d4e10bfec4f6e09d2d8e4e3c1b2aff9": { "zh": { - "updatedAt": "2026-02-19T02:24:09.402Z", + "updatedAt": "2026-02-24T10:49:33.036Z", "postProcessHash": "f9b7a65de0c7b9d0a4fad0b5b6cd6e3d20a42ae97318ac5c3ec1c3be6cfc8995" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.408Z", + "updatedAt": "2026-02-24T10:49:33.041Z", "postProcessHash": "124a3e2ef9f22284438c43dadd8d8f66148b610bd88b59533d43ce92b8c23711" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.413Z", + "updatedAt": "2026-02-24T10:49:33.047Z", "postProcessHash": "d2b73a366c6d3ac67899e574fd53c42602e42a10e494c0807952c46a17fdaa11" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.428Z", + "updatedAt": "2026-02-24T10:49:33.063Z", "postProcessHash": "387ef57bf1ee2e766110ee6bbf1b971444cfd00e54c87124f5d05fb9160f7b26" } } @@ -1257,19 +1311,19 @@ "b776eb4f7e91ceadeb1cd902e4a72be31912c8f40357421634f01d720427d7cf": { "a157eb7d7ffd46e8626bd3b8ed555fd32deed480e675bf80cec9536c2cc53b70": { "jp": { - "updatedAt": "2026-02-19T02:24:09.377Z", + "updatedAt": "2026-02-24T10:49:33.002Z", "postProcessHash": "8f62360a1333252926b93344e084faf3a2d313d1f86c675edcf721a34d00b4d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.337Z", + "updatedAt": "2026-02-24T10:49:32.939Z", "postProcessHash": "0d157bcf10f26887dfd385a982438b02933943ea782b88f143a3ea53b8bcf340" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.381Z", + "updatedAt": "2026-02-24T10:49:33.007Z", "postProcessHash": "96dfbb21076c6bd7e79b4aeefcb9f48571db2fc947d54a63f61d2f146a877ad1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.425Z", + "updatedAt": "2026-02-24T10:49:33.060Z", "postProcessHash": "129b2f03076a54e29f58f80852c4a328c587ce8a5a5c7738451773ed12db1ed5" } } @@ -1277,19 +1331,19 @@ "d294fb78df318396bfabb26180e94ed0286f348799a54a338dbcac4df2d501a8": { "2c1ad0e8f79ff31317243d7b0ba63abc05a794bb4cf50ddf3ab6a05a73136433": { "jp": { - "updatedAt": "2026-02-19T02:24:09.341Z", + "updatedAt": "2026-02-24T10:49:32.943Z", "postProcessHash": "be318ae360c1d29705be2cf93319f52929d503fdcdfa2561bb566e17974de7a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.340Z", + "updatedAt": "2026-02-24T10:49:32.942Z", "postProcessHash": "5ec3e4574c801f8838f9e7a5d5c97085e859655e2841277ec4633f3e0da01e56" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.340Z", + "updatedAt": "2026-02-24T10:49:32.943Z", "postProcessHash": "b7a6784acfc96479e8668f637a1405f43cd9895d66bcbb50729900122a577480" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.366Z", + "updatedAt": "2026-02-24T10:49:32.986Z", "postProcessHash": "8035fe75812105a34f004ef57a809271b683e76fce92593880bca1ca69a4828b" } } @@ -1311,19 +1365,19 @@ }, "f971169458c840a32fc61e6f9288db6a4246f244c6313a257be897f4aac0bfff": { "jp": { - "updatedAt": "2026-02-19T02:24:09.391Z", + "updatedAt": "2026-02-24T10:49:33.023Z", "postProcessHash": "384f77d61cdd799ee5beda912afb98ab3501001229f173812f6b65bb3aa52103" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.393Z", + "updatedAt": "2026-02-24T10:49:33.025Z", "postProcessHash": "e77cf2f7b9016f400eaa03059cfa03346471dc1973b7bd19bfbd8caf4a2815cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.393Z", + "updatedAt": "2026-02-24T10:49:33.026Z", "postProcessHash": "7289d47879e43b2cca3b78f39b387b1fe80ebf621af4cc306b3aa18dd6edc318" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.425Z", + "updatedAt": "2026-02-24T10:49:33.060Z", "postProcessHash": "f4b4f29bb0f76b0bdbd6318606725e79b14b541def41cb0604e1aeb159793c4a" } } @@ -1331,19 +1385,19 @@ "08c0c301774aaa88b81ec6aa095f55e7824eafa1cbace5b623dc7c79a65127d2": { "69fd950d01a73a4628cd2ff26fd88bc864432af7ec9c2a0b214e105e41696130": { "jp": { - "updatedAt": "2026-02-19T02:24:09.373Z", + "updatedAt": "2026-02-24T10:49:32.996Z", "postProcessHash": "e6b95fe15b73769c8c942b025e34bc6c9b796b7e3023974439110c46303b35b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.382Z", + "updatedAt": "2026-02-24T10:49:33.008Z", "postProcessHash": "c2cc203d1b4acc4f016c9abe4519f61634fafa96714c3f0e7b1ee5cee96564c1" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.375Z", + "updatedAt": "2026-02-24T10:49:32.999Z", "postProcessHash": "283cdfce3f052ca1b4058952ad56aa7bec051d8a2ab543cf07880fd7987ec784" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.479Z", + "updatedAt": "2026-02-24T10:49:33.105Z", "postProcessHash": "f76bf24fea55fccbb0fc780786108d833f8f474d1927eb14c426db2a55f44ae8" } } @@ -1869,6 +1923,24 @@ "updatedAt": "2026-02-19T02:24:09.500Z", "postProcessHash": "efe0f9d4d0233ef184c1297c6a47d04be659279b753f01b8c07e0f3b320bd567" } + }, + "66217408da5dfc6810fe88605c1da44b01c96fd21ae0da25bb6c5bfa7ce41e3f": { + "zh": { + "updatedAt": "2026-02-24T10:49:33.141Z", + "postProcessHash": "c8655aa0ba3334ba2f1b8506f7f8ce30ac0a17840fa0625e4f318bd654b80e27" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:33.142Z", + "postProcessHash": "f5ed0016982fa90406623d6de6ba807ceddc31ee5fbbe432af683198f90a4ce8" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:33.143Z", + "postProcessHash": "395c23974a7c5b18c58cac84059b84ce73ba24235b4bc7ea29dc4b87bf11530a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:33.143Z", + "postProcessHash": "26417a643275d265ffc4bf663963479d69db3fae21e3f9cdef1ce4522f96fb60" + } } }, "3a3e4cf73cd863c0103607437eb8b4f6836337cfd7e83bdd562015c4ed9cdd6d": { @@ -1888,19 +1960,19 @@ }, "323995cdad7e027483926c2b7c8fc0e600c1c22ca3c6b97e6adc9cd27e26b7d0": { "ru": { - "updatedAt": "2026-02-19T02:24:09.398Z", + "updatedAt": "2026-02-24T10:49:33.032Z", "postProcessHash": "6d3989696502362aa9196da107fddb4df2a10c0703d56ab059e22ea759fb4e83" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.411Z", + "updatedAt": "2026-02-24T10:49:33.045Z", "postProcessHash": "a95580b2fa3bca3d8490d5879870a8c32dccf88586cb4cd6c92ac4154b651f1c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.412Z", + "updatedAt": "2026-02-24T10:49:33.046Z", "postProcessHash": "ded32af6ef73ef019d8aba65b639295650598b6e07c12b852c0213db9a4b105e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.481Z", + "updatedAt": "2026-02-24T10:49:33.110Z", "postProcessHash": "592bb425d3fec8f34786fdf2d8ea2ebc452543d67db019f753567670b1feb62d" } } @@ -1965,19 +2037,19 @@ }, "044050e63fae155e05884e02f42faa9e8c6cdb832dffa300a97b982b9b8924ca": { "zh": { - "updatedAt": "2026-02-19T02:24:09.505Z", + "updatedAt": "2026-02-24T10:49:33.134Z", "postProcessHash": "d4c18a7b65232b97314d641ab7a719b6eabfdfdf16d919828e5c815d500e2334" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.508Z", + "updatedAt": "2026-02-24T10:49:33.137Z", "postProcessHash": "913753b2e34648774c06fe4adddc2be8de04980a2aa3d80389d89d464b22ba23" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.510Z", + "updatedAt": "2026-02-24T10:49:33.139Z", "postProcessHash": "160482527fac9d6f0802214f2076895bb1969f060baa0f6963c80382381393bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.513Z", + "updatedAt": "2026-02-24T10:49:33.141Z", "postProcessHash": "c999ea0a2cfda95027cb3a58313441488cdcb237d7799eb0dd403240f2525f40" } } @@ -1985,19 +2057,19 @@ "490be0352814516ee6591ee5f8e07875e2139020d864d540140e0fa494298d5d": { "d23d41d10643691da14255ad0f85c7b97475432325af1c17be68df9efc12be5a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.386Z", + "updatedAt": "2026-02-24T10:49:33.017Z", "postProcessHash": "a1472cd491fcdac11079c0318039328a461286dc0be6fe70091c8fdf7cd26456" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.387Z", + "updatedAt": "2026-02-24T10:49:33.018Z", "postProcessHash": "561a123dd963a434fc3611a776745a1ffe11dfa4caa1b2d798faa970ebe7db76" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.386Z", + "updatedAt": "2026-02-24T10:49:33.016Z", "postProcessHash": "55407b7037976833d2027967432645a7c7476b2359f681fd7a88d5bb396f0c26" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.498Z", + "updatedAt": "2026-02-24T10:49:33.128Z", "postProcessHash": "7690944da354a3ed3bde5fe1f303b4c316dd92da5a104138ac7cc4d63fa930ff" } } @@ -2005,19 +2077,19 @@ "55b28fab1ba94c3606d033461bcc70376b43d613080d008d80ef6eeee311b377": { "256a3209f20639b3de6006d270d351fa95df57bd7f581ffda6773fd8eba690c7": { "jp": { - "updatedAt": "2026-02-19T02:24:09.384Z", + "updatedAt": "2026-02-24T10:49:33.012Z", "postProcessHash": "919624eab94fba3748d270154145bc58ee239b00afd9183cecd42e40abd9a1a8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.372Z", + "updatedAt": "2026-02-24T10:49:32.996Z", "postProcessHash": "c0d28920c5b77af1172deb24a7f3b2a31bf06dd11deec2825a8244d90d9484de" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.375Z", + "updatedAt": "2026-02-24T10:49:32.998Z", "postProcessHash": "10ab1ff10f0c0604fb12c18f8e6484cd9470bfd6b15daa195bf75ca78194bb35" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.483Z", + "updatedAt": "2026-02-24T10:49:33.113Z", "postProcessHash": "1214d7e26f126fc7fdb49ac5677d6f900b57b99a0e5ee29f59e78babf58e987b" } } @@ -2039,19 +2111,19 @@ }, "e5779c059343c20e3b973eb481eff8f68de93c783455729d4f2ada853363970d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.392Z", + "updatedAt": "2026-02-24T10:49:33.024Z", "postProcessHash": "6c18be3bb0aaa18e41d70502386853e6fdbdc41e2675acbedc4730da2efe613c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.394Z", + "updatedAt": "2026-02-24T10:49:33.027Z", "postProcessHash": "3e10bea28cfb25000df9d6e8300955f7bc44500e11a8fa378f00ba04f9bcb76a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.395Z", + "updatedAt": "2026-02-24T10:49:33.029Z", "postProcessHash": "e339f40cb09c03741b24b47eb4db7009f6652bba9f7340d278feceaceceabcfc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.485Z", + "updatedAt": "2026-02-24T10:49:33.115Z", "postProcessHash": "574ebb1a412644bd9420de8f8ae191f4017385ce63bf9e5e994a717f9205d62b" } } @@ -2101,19 +2173,19 @@ }, "5a75224799666b9a269c0f82cbbbe49d85e050796186f411136e436433fdb680": { "ru": { - "updatedAt": "2026-02-19T02:24:09.410Z", + "updatedAt": "2026-02-24T10:49:33.044Z", "postProcessHash": "04bb634c5582f9d349d1ba66f516e7b0ee9aaf3927ed518fd308f5e6060573ca" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.415Z", + "updatedAt": "2026-02-24T10:49:33.049Z", "postProcessHash": "50bf17e07c1d9f7c2222eb896bbf3e6bcdf6bc28ac61956998f2f2d62ea11411" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.417Z", + "updatedAt": "2026-02-24T10:49:33.051Z", "postProcessHash": "40c82d398212ed13a208908ada99bf3f0dd0acbcaceec0614962037fc38f8cae" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.486Z", + "updatedAt": "2026-02-24T10:49:33.116Z", "postProcessHash": "303d53b3d5e5bd89d43b58f81e1ae83a53ac36174d195bd3059221bbdf260fd7" } } @@ -2135,19 +2207,19 @@ }, "67b1fb5a14f13e90582993b829f13b783d85a9afb73727e4e0e1add4f18fa13c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.403Z", + "updatedAt": "2026-02-24T10:49:33.037Z", "postProcessHash": "81d8ca9b8dfc6097d56f52f306bdc4e3d3fc5ff04fc379f5d16da947dc968d7f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.407Z", + "updatedAt": "2026-02-24T10:49:33.041Z", "postProcessHash": "13777c9979d3b3bca68153a8a9af259a8b2c5400af6b9d75bfb6a88415b386e1" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.409Z", + "updatedAt": "2026-02-24T10:49:33.043Z", "postProcessHash": "7be0797bad62e0a44d052fc01011e59a7240db6653e0d94f3f13120e8f2400b1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.490Z", + "updatedAt": "2026-02-24T10:49:33.120Z", "postProcessHash": "b0529a84abe0a03c4036a47ae81b439f6ae6b7e81bf9e124e5bde4f7ddb73747" } } @@ -2169,19 +2241,19 @@ }, "1544e8fb833c15836515b12e745ace5b2760d551ce1d3e6ef880821cad5e8347": { "ru": { - "updatedAt": "2026-02-19T02:24:09.397Z", + "updatedAt": "2026-02-24T10:49:33.030Z", "postProcessHash": "7c3488ad862fb019112eaf4a05daea9c1795baa8474d66894fbd6a79b0e4c8c4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.404Z", + "updatedAt": "2026-02-24T10:49:33.038Z", "postProcessHash": "cdcef18737de614827b984003f3c66a5a41cae0524bf8474b294737f97151794" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.409Z", + "updatedAt": "2026-02-24T10:49:33.042Z", "postProcessHash": "1140797eccd2bdff578f889659f5a7faa9917b5a999010e3f3dbfafc0abad6e3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.422Z", + "updatedAt": "2026-02-24T10:49:33.055Z", "postProcessHash": "b7d1d813e38be56b038ff1a7bfe0a93e613c5123d3bc8b48d45b0d26c76b1ed9" } } @@ -2203,19 +2275,19 @@ }, "8f5332d10f7738eafd5308edb250c3cf33c28a30eb29d000134907c2fccd4a88": { "zh": { - "updatedAt": "2026-02-19T02:24:09.414Z", + "updatedAt": "2026-02-24T10:49:33.048Z", "postProcessHash": "4ccb94c3537db27b83d5ccf33b9dbc6e43ee763c4a9ee951e1661bd5b444ef9a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.417Z", + "updatedAt": "2026-02-24T10:49:33.050Z", "postProcessHash": "a1039aba0402d98d15b1ffc3b235a7c729228704ab955639ef2c717e3cdd6993" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.418Z", + "updatedAt": "2026-02-24T10:49:33.051Z", "postProcessHash": "2bc25bc21fd95ae6279f958ee468b04dec4370481b3d4276190f6714908537ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.500Z", + "updatedAt": "2026-02-24T10:49:33.129Z", "postProcessHash": "141713f7f1da182a3807cc0a97d699e9e2b3f688fe6bb1a0fa0ae913f1b37c4d" } } @@ -2239,19 +2311,19 @@ "a1bad3f4a716dc84c050e5be3e8486b6c74375173ac25b4b6faa1e07928f68dc": { "2ea331fabd4829ebc7e1af163a669bd7da7ebae75dc79796126ab275fd4d3c95": { "jp": { - "updatedAt": "2026-02-19T02:24:09.376Z", + "updatedAt": "2026-02-24T10:49:33.000Z", "postProcessHash": "15485de315d5836a55c258e03b15354c0613cba0e4b50e218228c71fa8926665" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.374Z", + "updatedAt": "2026-02-24T10:49:32.997Z", "postProcessHash": "8956ae6ba4a61c654d671ce6ea354ac3327c88d6fd2f32e94a595ced7846e7b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.385Z", + "updatedAt": "2026-02-24T10:49:33.014Z", "postProcessHash": "fdb406fd6ef9bae12b9029650e02d374aa31031a8dc29af43b762daa733d58b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.421Z", + "updatedAt": "2026-02-24T10:49:33.054Z", "postProcessHash": "ef4486355cce6c600fe5746a546019d1228abf040094f2424c479a0cbcbee7dc" } } @@ -2301,19 +2373,19 @@ }, "92d7e8b6ffaf89baa98c4fb1d403feb94353f7309fad924bde3b1439dffc9cb8": { "ru": { - "updatedAt": "2026-02-19T02:24:09.399Z", + "updatedAt": "2026-02-24T10:49:33.033Z", "postProcessHash": "0525d304da648d45798f9d9e19e3b536a57d201f239a9ae1948d34dd36dabb02" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.401Z", + "updatedAt": "2026-02-24T10:49:33.035Z", "postProcessHash": "bf2715247d695e35c9473175c2ee3e62cb17402338e49358f54962bc2edbfe5b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.418Z", + "updatedAt": "2026-02-24T10:49:33.052Z", "postProcessHash": "8355bde962dfaf32c98096f2735793dffb941ebbee791087ed8594454c054f73" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.486Z", + "updatedAt": "2026-02-24T10:49:33.116Z", "postProcessHash": "6d47fac267e5d856ef2497a55009217f3d0cdac4577274e514964400a76afa3e" } } @@ -2349,19 +2421,19 @@ }, "ad8d5e8e6e3eaf7a0295bfa01305201075b7925c9dcf67219efdb1d1c16f29d1": { "zh": { - "updatedAt": "2026-02-19T02:24:09.389Z", + "updatedAt": "2026-02-24T10:49:33.021Z", "postProcessHash": "2b74f6a9ea8094984ecfb020b2c6f960f14d5288f987e2c041a2c37ac660f7f6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.390Z", + "updatedAt": "2026-02-24T10:49:33.022Z", "postProcessHash": "d26022ddfa0fe75c88a092a378f727d9fc950ea605ebcfc36571bf1273993002" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.391Z", + "updatedAt": "2026-02-24T10:49:33.022Z", "postProcessHash": "d62df147280b6281ceb41f9858d0f80226f2c5487c0749d34da1f445d4a1d67e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.496Z", + "updatedAt": "2026-02-24T10:49:33.127Z", "postProcessHash": "ebd06151e472191b14f489c3d4a1638f97c83b99091a91eb69f088b9d1c6b6d2" } } @@ -2369,19 +2441,19 @@ "c369c0aa928f8264daf73b2cb8b5d20b0f760cd84c596ca63fb6e80bf182b3ac": { "081e5ae543866b5886ecf7decd8d4a80af7f854626b8b8136631cf04a6c7a9f8": { "jp": { - "updatedAt": "2026-02-19T02:24:09.382Z", + "updatedAt": "2026-02-24T10:49:33.009Z", "postProcessHash": "970e83a15a6ea3eeacbb8e156d00618857f8824b5ffa4ade4a97f5b2c71dc576" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.377Z", + "updatedAt": "2026-02-24T10:49:33.002Z", "postProcessHash": "8dd0323d81e8cff6d565d213896df667a459a80ca058470ccb4b010826d9b69e" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.379Z", + "updatedAt": "2026-02-24T10:49:33.004Z", "postProcessHash": "27da05977f37b3b0642b34cd8d30808105faa5a644fc01060797966fc7be5568" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.481Z", + "updatedAt": "2026-02-24T10:49:33.110Z", "postProcessHash": "71dc807b9c608e30663fe191eb52ec703a1ffe624691b4339840af0b47141017" } } @@ -2417,19 +2489,19 @@ }, "f69e04379f84ef529ec736dcd60ec5113a55c479d25cb667942eedaa5aa02b27": { "ru": { - "updatedAt": "2026-02-19T02:24:09.399Z", + "updatedAt": "2026-02-24T10:49:33.033Z", "postProcessHash": "4bba7277100c03a414206c0254ea5eb769a65a6a42bde4ff64c85728841ff93d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.413Z", + "updatedAt": "2026-02-24T10:49:33.046Z", "postProcessHash": "db1adcf73145288c10edeeff167f6c26005f42d38a31a9ef2115e22cddd3e2a5" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.416Z", + "updatedAt": "2026-02-24T10:49:33.050Z", "postProcessHash": "1f0a4360a3bca5996f0e3dab3e572042f0c3a7008f5d67a40c73167aacc015a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.495Z", + "updatedAt": "2026-02-24T10:49:33.127Z", "postProcessHash": "4413d92fc473f859248bab66abc5701bcd73871f697bdac74d8450c503c63e2d" } } @@ -2451,19 +2523,19 @@ }, "ffff945a49e65cb81d26b1d25050fccbf1bac39ab2a83fa4884b934ef4a378d3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.388Z", + "updatedAt": "2026-02-24T10:49:33.018Z", "postProcessHash": "306c3d42ac03540b509299a00b5d565ff3b39f1381f5f5d9471139f74bfeb6d5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.388Z", + "updatedAt": "2026-02-24T10:49:33.019Z", "postProcessHash": "ea929ccde673385e98795ea63e327c02bae6f2026a825c9cbd183e10ba66e897" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.389Z", + "updatedAt": "2026-02-24T10:49:33.020Z", "postProcessHash": "ed3305106e4dca18e1ed3d05f11fedb544bb338a3141ebd518e6d1e9c55508a2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.484Z", + "updatedAt": "2026-02-24T10:49:33.114Z", "postProcessHash": "1a5664b69aa4f55ee5b55b60777dddc7a5315180cb8270eb70345fd04debd181" } } @@ -2485,19 +2557,19 @@ }, "7c16c1953c914516518732bf6d4e6c9983290daaad9a4b5e8c9decab058a931d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.402Z", + "updatedAt": "2026-02-24T10:49:33.036Z", "postProcessHash": "578eaff567044b576bfd8e4bab251b77439e84c2038ec37a9981859489b68663" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.407Z", + "updatedAt": "2026-02-24T10:49:33.040Z", "postProcessHash": "7004c9e5a784d3881e88638381c33eac1f1e70b4a183c6efa6640fd1a8185e6c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.411Z", + "updatedAt": "2026-02-24T10:49:33.044Z", "postProcessHash": "39936badc6a3c1a9d3a1c20b66495c2366523a180756d3890407f4c7c3d1aead" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.420Z", + "updatedAt": "2026-02-24T10:49:33.053Z", "postProcessHash": "bf6456c3839fdb209ccf4c44ab1eb2604a65fc6fbb56e37751494f1fa7bdc004" } } @@ -2519,19 +2591,19 @@ }, "23ad9ed8488bda3b8c3c2070e3acd9e489882f7ed491b22fd3035f71b10c5917": { "jp": { - "updatedAt": "2026-02-19T02:24:09.400Z", + "updatedAt": "2026-02-24T10:49:33.034Z", "postProcessHash": "e74f323e0326c245608db3f2977f269016ebc0ad867ad3a7fe42fb8081c1d74e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.410Z", + "updatedAt": "2026-02-24T10:49:33.043Z", "postProcessHash": "639113873896772a7ce29e932d1c1706206f6f84d81c704584b8f6ce26658ce4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.414Z", + "updatedAt": "2026-02-24T10:49:33.048Z", "postProcessHash": "08b2cccc240dff88ad8696e144fa64727998f5662fc9ed54b39af7050a7dc5c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.420Z", + "updatedAt": "2026-02-24T10:49:33.054Z", "postProcessHash": "9e1c7aefb60622a3f977641183990c578c4df3a75960527399eada61b41e45d0" } } @@ -2553,19 +2625,19 @@ }, "eaec8e0aab4e6ff8548197ce33e0d52bd02fa563e9115ac37c01affaea8230e3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.400Z", + "updatedAt": "2026-02-24T10:49:33.034Z", "postProcessHash": "c38419d127f58261f3e08988e08753b83587585af775b381c711ed39c7ec2e0b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.405Z", + "updatedAt": "2026-02-24T10:49:33.039Z", "postProcessHash": "adcdedc2aceff68a729528a8dee3fe66024070cd52de7cdade2f21d1c0e5e64c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.412Z", + "updatedAt": "2026-02-24T10:49:33.045Z", "postProcessHash": "9b922dbb18d534fe3d92fe2d786df964c99b1189e9002fe919f5dadf38737d02" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.422Z", + "updatedAt": "2026-02-24T10:49:33.054Z", "postProcessHash": "f3c4835a74b88c2feb306e465ee74cd64c11e4de7a94b9c8052a4f9447bbb643" } } @@ -2587,19 +2659,19 @@ }, "516d5012cc2904082d85680e46bb3f2d03b3d52f7542a6fd014ebfb0939e20f6": { "zh": { - "updatedAt": "2026-02-19T02:24:09.547Z", + "updatedAt": "2026-02-24T10:49:33.179Z", "postProcessHash": "56e0652c1236a636df1304de76ccd7d483b65ebd2d106a39a0a4db329b353f6c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.550Z", + "updatedAt": "2026-02-24T10:49:33.181Z", "postProcessHash": "ecd43e08bc35775fbbd12e8ac1f372595ff680cd108a6b8d4b856e863d413004" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.558Z", + "updatedAt": "2026-02-24T10:49:33.192Z", "postProcessHash": "9fd2de53de1f48cd56068767fd1572f66212224c1bcdd71437981e589cda9b49" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.575Z", + "updatedAt": "2026-02-24T10:49:33.206Z", "postProcessHash": "ede293d480e4fc1dc056e01a0cf6be89c2f8a31279191794d9f019a9d9645d1b" } } @@ -2621,19 +2693,19 @@ }, "2a27339c4e4eb76af7e43d5740bb01e422d0a11ad2a751db617e657fae320a99": { "ru": { - "updatedAt": "2026-02-19T02:24:09.434Z", + "updatedAt": "2026-02-24T10:49:33.067Z", "postProcessHash": "ef68b476ad27a717b2c87a2a238452fc0e2b54c8fb351d8b0eaa46969c5b8fe9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.434Z", + "updatedAt": "2026-02-24T10:49:33.068Z", "postProcessHash": "705e8341389a8fcaa02e84b43c17647bb68e9635223114216af19176a02333e6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.435Z", + "updatedAt": "2026-02-24T10:49:33.069Z", "postProcessHash": "5edb107321d22a20c02c4b674ff7d0e4d8b03f6fbe5490765189682014abd346" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.482Z", + "updatedAt": "2026-02-24T10:49:33.111Z", "postProcessHash": "199700df55ca02b167e076c888e386c2d7c448ffeca2720956275c6a95660efc" } } @@ -2641,19 +2713,19 @@ "2317505b4b1b1557458b6ec9caf09937e43cf133543d04e2637e9cd6e0693bc2": { "8b6d58a1ca1a770a40180a524a20350aef1a747a1a0f59ef6bd9eb53764a7d1b": { "jp": { - "updatedAt": "2026-02-19T02:24:09.448Z", + "updatedAt": "2026-02-24T10:49:33.076Z", "postProcessHash": "c322bf1d00df5801de06e13cfb76846a061d60b27c3fc81ce4954d9e292a7003" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.442Z", + "updatedAt": "2026-02-24T10:49:33.072Z", "postProcessHash": "74d8e7ceba3502ca3457cbe286b4f65a588838527edd5cb9b434a78595025b10" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.447Z", + "updatedAt": "2026-02-24T10:49:33.075Z", "postProcessHash": "8fd6c3c9fb7d066bfe7f21dbf26c550ad1f4a437e791c87ed9023c0756ecff8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.493Z", + "updatedAt": "2026-02-24T10:49:33.124Z", "postProcessHash": "efdc66e6748683b2543d3886ae2d73205612e0eeb46e66a8b4f79ee3c3368e34" } } @@ -2715,6 +2787,24 @@ "updatedAt": "2026-02-19T02:24:09.635Z", "postProcessHash": "9d13846ddbcaa760eaf99ed20f950fcd2272dc185fabc8ca3b040209e55208cf" } + }, + "1a3f332834f3a802a20592ac50322d15aa786c3d6aedcdc6180bb97868a12114": { + "ru": { + "updatedAt": "2026-02-24T10:49:33.286Z", + "postProcessHash": "61e6ac23c5d6cfa520eb9e6b021565ca280a08f0eb62d3c1f9c68e93b12f6662" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:33.288Z", + "postProcessHash": "0e458d17fc333ab8a77b74ded5ecfad95758537e81d2d7e9a500e524fb728a42" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:33.289Z", + "postProcessHash": "447125c6d569a837ed6874f6145810d059da21ee7b9d829a4c6f28764be0d61f" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:33.290Z", + "postProcessHash": "92fc6069bada3e75f3f435bee82aebfe476a1862b511d6a29c2b65da59128db3" + } } }, "3371d95238c92603c162eaed8138395ca44e47b22ad969c5099f7e599ec16c22": { @@ -2734,19 +2824,19 @@ }, "05be5c89628b4d8fd07d5cf54b6bcdf5a5df24e1eee5ce95cfe09570141a3e87": { "jp": { - "updatedAt": "2026-02-19T02:24:09.455Z", + "updatedAt": "2026-02-24T10:49:33.083Z", "postProcessHash": "acda004399f743e40cfc172a473d73961467f56aebc953085d28c3ab56117dfb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.461Z", + "updatedAt": "2026-02-24T10:49:33.089Z", "postProcessHash": "912870286e9ab98a98b57e863d44bcbb300d205f058b30877cd8cc984cc0769c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.469Z", + "updatedAt": "2026-02-24T10:49:33.096Z", "postProcessHash": "844682665500558f57467a3e0cea74f806abf6595bcf2ab403c8ef079affe856" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.489Z", + "updatedAt": "2026-02-24T10:49:33.118Z", "postProcessHash": "87333584a581dd5e4350ab2148811c18771c675c21fbee80db76ffb6fdc93b64" } } @@ -2782,19 +2872,19 @@ }, "5e1d3db77147d3330494334e53df162b1d61d155a900c553aa92dbb824c0b734": { "zh": { - "updatedAt": "2026-02-19T02:24:09.502Z", + "updatedAt": "2026-02-24T10:49:33.130Z", "postProcessHash": "c90c3bf3f0557220073b9706ec3a7adbb8ecbaf3b943af0de8b71e08710fa79b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.502Z", + "updatedAt": "2026-02-24T10:49:33.131Z", "postProcessHash": "42ef28dfad494a09659612daeaab64b742a3c91d8c7ad194205b4bdcab21057c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.503Z", + "updatedAt": "2026-02-24T10:49:33.131Z", "postProcessHash": "e885994bc3a059ad66759e0f4b43db25853ceab07b7931800fcfc82ae063f23d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.501Z", + "updatedAt": "2026-02-24T10:49:33.129Z", "postProcessHash": "98dcdf336c4c5eb07fbe3291e621efc76074c60471fddb05a543fea392452591" } } @@ -2816,19 +2906,19 @@ }, "2b4c6a1cb3cfce2ae66be7a79177061db453a180185ae37b842bd3099be8ee58": { "ru": { - "updatedAt": "2026-02-19T02:24:09.462Z", + "updatedAt": "2026-02-24T10:49:33.091Z", "postProcessHash": "81049255c0970b247bb159e5b74c8a5ee2f7e295d3896573c96befa6055525e7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.467Z", + "updatedAt": "2026-02-24T10:49:33.095Z", "postProcessHash": "891cefb58aa31cef705a421092e83d796afddc41e29d9727827ab8dfd8cf2eac" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.468Z", + "updatedAt": "2026-02-24T10:49:33.096Z", "postProcessHash": "46cafc69dbdffb4853730500a2225bbbf9ef4a86f72f4f815471071dfd7d2842" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.482Z", + "updatedAt": "2026-02-24T10:49:33.112Z", "postProcessHash": "df780d608627e8ae7a3875b49cb42498aaf2912d24898d226a88f2e926dda9c8" } } @@ -2864,19 +2954,19 @@ }, "bdab6b023010d09bb773cc5c65aa9ab536ca984c6f0f127058e36158053521f1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.475Z", + "updatedAt": "2026-02-24T10:49:33.102Z", "postProcessHash": "f2df749d69e3494c88ac6017694d810a0224a86db52985a1af8924790096fb69" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.476Z", + "updatedAt": "2026-02-24T10:49:33.103Z", "postProcessHash": "89fe93e2d8b1bb1b091bad5a8caf12a22d8798e5a572f108b8103b15497a763b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.477Z", + "updatedAt": "2026-02-24T10:49:33.105Z", "postProcessHash": "112c30d5f54e5d182123fcca75266a21ae9a4ea2beadf0ab2a16215d70f5e59b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.491Z", + "updatedAt": "2026-02-24T10:49:33.122Z", "postProcessHash": "a21715ba8b13cb291d731bfad73a209871ec568a63701b170ed21d66ebf2bb56" } } @@ -2912,19 +3002,19 @@ }, "126cbd8cf03ba18ebd9a05617ece00af4bf8debe7435d6da6ae9518504181344": { "ru": { - "updatedAt": "2026-02-19T02:24:09.419Z", + "updatedAt": "2026-02-24T10:49:33.052Z", "postProcessHash": "33d59a941c15929eb46d21f42091881621924f5459cca61bf248452f731431c8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.473Z", + "updatedAt": "2026-02-24T10:49:33.101Z", "postProcessHash": "eef18405c8cdaa0ff907e749eabf2c3b5f852af288c6a5afa433e700396a7ca9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.476Z", + "updatedAt": "2026-02-24T10:49:33.104Z", "postProcessHash": "79d81ba31a9f180325e979f73b430648773904fbcd59bd1550baaaed444f5b57" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.493Z", + "updatedAt": "2026-02-24T10:49:33.123Z", "postProcessHash": "4a9602af2366e58574b9f2462b21a37a4fb88803022088b17f91abae75439b43" } } @@ -2932,19 +3022,19 @@ "67113cbc50d80beb99c25a836c1c97bf312030d10537561666f2d9afcf9f3145": { "bc5d1e200e64a767369cc0ffad68cd1dc62da9a6230b0c00c0c10c90dcbef298": { "jp": { - "updatedAt": "2026-02-19T02:24:09.449Z", + "updatedAt": "2026-02-24T10:49:33.078Z", "postProcessHash": "846937fc31a261e194b887b499ce67209ff80f3c4ebeabe5a28c1c3dcd29ee60" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.450Z", + "updatedAt": "2026-02-24T10:49:33.079Z", "postProcessHash": "3602ef105a89349ace463eab71b186320aa430d64846335bfc4e3ab56e1b2521" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.449Z", + "updatedAt": "2026-02-24T10:49:33.077Z", "postProcessHash": "8b9bc24b36742c38da7dbb80f338365aef0308abc4295cb8d21be87323b50971" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.480Z", + "updatedAt": "2026-02-24T10:49:33.106Z", "postProcessHash": "5a4c49407bc6c24b509c76c1bbfa6e5e637552467600bd2b5db62dc1288e1bdb" } } @@ -2966,19 +3056,19 @@ }, "fb4dc2e9ab2f50c13488124fbaba290c6778e5b0fb61fc18067bef5f170c8025": { "ru": { - "updatedAt": "2026-02-19T02:24:09.464Z", + "updatedAt": "2026-02-24T10:49:33.092Z", "postProcessHash": "66e5d56697ad0551f22f81cdade6816d7b931e17513166eec99ca42a95f71d3b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.472Z", + "updatedAt": "2026-02-24T10:49:33.100Z", "postProcessHash": "a1bafc8560e3b53d546b0663a2038955b2950a1f13b0a680672948764c471dd1" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.473Z", + "updatedAt": "2026-02-24T10:49:33.101Z", "postProcessHash": "2f6880211423498c2e6fcfb5cbd73aea3a664d97daf82cc616120dabb391ab38" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.494Z", + "updatedAt": "2026-02-24T10:49:33.125Z", "postProcessHash": "c892a0e9a1f7819db21dd7df9bae4fd61609df554c2c7492bf5a4adf55e1ccbf" } } @@ -3014,19 +3104,19 @@ }, "4e93e9fe5944fc7ea56a302afc93abe26771cff9f9bc62cf62fc27059ce75d1d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.457Z", + "updatedAt": "2026-02-24T10:49:33.085Z", "postProcessHash": "a2a1c2c12df5a19bc032b91a72cd4442a0a9c81e220db1296a24338e95264fd8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.460Z", + "updatedAt": "2026-02-24T10:49:33.088Z", "postProcessHash": "56130a61d952f702975d0f36f9127090636f6e51cb00407d59f858da2a90fb6c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.471Z", + "updatedAt": "2026-02-24T10:49:33.098Z", "postProcessHash": "c390315f6650910698abff444a48fe696818e78d529db183d7e18dd8601fd9d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.499Z", + "updatedAt": "2026-02-24T10:49:33.128Z", "postProcessHash": "f9ee28d5ee6fef9b67425c4f61dc98dfbead0de61a3f1f2d500dd79768d28b24" } } @@ -3034,19 +3124,19 @@ "a5aac8ce0e37bc2df7af5f69708607c2c9b46cbe068e3172847b3191394faffe": { "38d2828e9bd727652c3233af76ea089e954aba2db55328f8cf1f43ca609f19ff": { "jp": { - "updatedAt": "2026-02-19T02:24:09.441Z", + "updatedAt": "2026-02-24T10:49:33.071Z", "postProcessHash": "c265593726c56f342401885eee2b20633bbddb53946063237f1cfde80381fc01" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.446Z", + "updatedAt": "2026-02-24T10:49:33.074Z", "postProcessHash": "70d9b08faa21763d411c045ec08d9f8d4aca2d07cf15b9e30142fa45dc53dec8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.442Z", + "updatedAt": "2026-02-24T10:49:33.073Z", "postProcessHash": "a05eabbb60f25a0f893c0c5c537bffaedf4b2b63c0e422c0aa9c3324e31f4e1d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.480Z", + "updatedAt": "2026-02-24T10:49:33.108Z", "postProcessHash": "97b389b3c3050d8b9603291682c4014785a7e912226f7211f5d94f34e220c893" } } @@ -3082,19 +3172,19 @@ }, "5df3e0bbb1f3f7281f09f2e550bc0b9293ceef753d2ce6bee44ed8fc996dc351": { "zh": { - "updatedAt": "2026-02-19T02:24:09.546Z", + "updatedAt": "2026-02-24T10:49:33.178Z", "postProcessHash": "7d106a18e11b1547ef78d6139b44b3461f79b2d773c26cd8564ba4c81019dc4e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.553Z", + "updatedAt": "2026-02-24T10:49:33.183Z", "postProcessHash": "2a2879d25aa3460158ee66ebe29c4a3b006f02fc7e4231dafe7f69452f5f5fb7" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.555Z", + "updatedAt": "2026-02-24T10:49:33.185Z", "postProcessHash": "99a8fe7364bc286d2c6dbd2f24d42415597f45f62196841dffa9f68f647ca18c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.574Z", + "updatedAt": "2026-02-24T10:49:33.204Z", "postProcessHash": "64a45444a2bd539f2fe161a03474705ce1f69cb6905604b0b5ecbcb87ba02f09" } } @@ -3130,19 +3220,19 @@ }, "b6b78bcb98be9fdd3dccef176d4d162edf11ecfebe0f6892f084ab016095ad4c": { "jp": { - "updatedAt": "2026-02-19T02:24:09.464Z", + "updatedAt": "2026-02-24T10:49:33.093Z", "postProcessHash": "a92a1aa753969de380909e1585fead9b55b95631dfe070ee2be5e4c5b9603252" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.470Z", + "updatedAt": "2026-02-24T10:49:33.097Z", "postProcessHash": "d05d6ab9d784096b5e7ed1d0a8973bb7e8ab60e8717ae9fb88d5f1d8872fe1be" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.470Z", + "updatedAt": "2026-02-24T10:49:33.098Z", "postProcessHash": "8171721c3a6a96c1e3221062a45814064fc0e9c78da0b412f182c0ae52f428c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.494Z", + "updatedAt": "2026-02-24T10:49:33.126Z", "postProcessHash": "4019d873e93ca90f198c684e489be9c972c7b6512fb7a6db0ee43c2c2683fe89" } } @@ -3150,19 +3240,19 @@ "b721aaf83ea7701a82587311ffcd215fa0fddd0ac9d459193fd26188e0680183": { "906c00a6ef80e7715d21aae24374b2b2d044fcdc7b9d5c6c2c7341ecd0753821": { "jp": { - "updatedAt": "2026-02-19T02:24:09.436Z", + "updatedAt": "2026-02-24T10:49:33.070Z", "postProcessHash": "f8fccdad4355400866118dde3418a4741e52620861b6c3d527f60d3ba9865414" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.447Z", + "updatedAt": "2026-02-24T10:49:33.075Z", "postProcessHash": "f0e12311b51ca73e132406cdb80aace0fde45bfb42f8c3c1d3d7b4f193ecbb8c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.446Z", + "updatedAt": "2026-02-24T10:49:33.074Z", "postProcessHash": "6a5c9221d66d6a1175ddaa96d31ee0ce0bc070aefb56cd177cbe7eba92614895" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.481Z", + "updatedAt": "2026-02-24T10:49:33.109Z", "postProcessHash": "c6aa550e6385b3eb994ed4d0a1bb943e7f8b092b1c702696faabbde8e5d75d43" } } @@ -3198,19 +3288,19 @@ }, "22863a9e842dc6e3275ef676025678899423fb71d012722f422fc22cc1b9ffb4": { "ru": { - "updatedAt": "2026-02-19T02:24:09.454Z", + "updatedAt": "2026-02-24T10:49:33.083Z", "postProcessHash": "fd23ab0571e5c4792b092c6eadff253984820a4aa4c2d3030b2a373c5bd27c67" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.459Z", + "updatedAt": "2026-02-24T10:49:33.086Z", "postProcessHash": "43ee88d68b615b57c136bd1040a491858d92c8241c05f0de95f5673f93d6109e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.465Z", + "updatedAt": "2026-02-24T10:49:33.094Z", "postProcessHash": "3c30361f14db3ad362525decdd5eab0ac58ca8f2afeee7fdceb5b6b2bade270a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.487Z", + "updatedAt": "2026-02-24T10:49:33.117Z", "postProcessHash": "ec233717c89cd49acb2bb4c1e5fc26b69d290507635e03d1fde124f4ff2c92a1" } } @@ -3260,19 +3350,19 @@ }, "4bd9d1a9edbd396345aa388c98986074503bb41ce8a3930c2372b8cd7179f109": { "zh": { - "updatedAt": "2026-02-19T02:24:09.462Z", + "updatedAt": "2026-02-24T10:49:33.090Z", "postProcessHash": "c30c15404e9d516a0d731dde52f3370aa2ce292ee1728970f71e0795bbce6f66" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.463Z", + "updatedAt": "2026-02-24T10:49:33.092Z", "postProcessHash": "92f4d6786ded6e0f659cfa173714db179c1b1de7be60f3dc5b7392264915af40" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.471Z", + "updatedAt": "2026-02-24T10:49:33.099Z", "postProcessHash": "8e393e1071def854a44349eb3d7607838f5bc12ca06c2da5720dd4e38bd68c5c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.492Z", + "updatedAt": "2026-02-24T10:49:33.123Z", "postProcessHash": "85554f9bae9aa658e870e71fe1847ceb917191674d17dfc7eedbeeef1dccd54f" } } @@ -3280,19 +3370,19 @@ "f56b183aebaa9c102a1630d41b724bdd0ef7984c2f5be9f15f51bb83994e0265": { "0e4b6a498cb6259a81c3b89b57fc27d109c9f7c4517473e5f6371c0a4d14e7e7": { "jp": { - "updatedAt": "2026-02-19T02:24:09.515Z", + "updatedAt": "2026-02-24T10:49:33.154Z", "postProcessHash": "62d9ea75f9b9e8fe62a53b013478740c91b3d07b18588d1f9a62ae9a35dddcba" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.515Z", + "updatedAt": "2026-02-24T10:49:33.153Z", "postProcessHash": "1a4d47aebdcbf3ae1fd06d9d6d93afff5de4d4aa92dcd06b4008970ca268a3fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.525Z", + "updatedAt": "2026-02-24T10:49:33.154Z", "postProcessHash": "dddf6c4f75de915b23f6aea6c5da272f65b4f8a2b45fcfe2695cdb9ce0a5dff1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.646Z", + "updatedAt": "2026-02-24T10:49:33.282Z", "postProcessHash": "bd11e68bed2b4aac6be5ac9aeb5e50fe50f902c948ce7c14e1a9a7dc9bc966d1" } } @@ -3328,19 +3418,19 @@ }, "64b21d114f75be76b4430cf52edbeccd2f042f032d5e26b3170dabd21657d79d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.455Z", + "updatedAt": "2026-02-24T10:49:33.084Z", "postProcessHash": "11fe6bada768727d8ca76aeb95db9a16748368d9f7d420d0e9993f86e86095ae" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.461Z", + "updatedAt": "2026-02-24T10:49:33.088Z", "postProcessHash": "b1e0a9de72714122fa3758ebe2ab4e95fa8cca517a57b297d8c60fcecd944f57" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.467Z", + "updatedAt": "2026-02-24T10:49:33.095Z", "postProcessHash": "d64c94868f284d28d58882b411525df18e1b78cd590b58b1833cd235eb8798c4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.490Z", + "updatedAt": "2026-02-24T10:49:33.121Z", "postProcessHash": "1915b0dbc382108c834deb16a6ae5da64e14b3058e6974c07759106719f5471f" } } @@ -3362,19 +3452,19 @@ }, "5433c29db7b369936a7edc664cc09ed0f3aed1f34881963b2957cd111e4e5da4": { "jp": { - "updatedAt": "2026-02-19T02:24:09.547Z", + "updatedAt": "2026-02-24T10:49:33.179Z", "postProcessHash": "aa01c7221a2e95022b44dbd371f21586d23683555d375749c61daa4ff195acdd" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.556Z", + "updatedAt": "2026-02-24T10:49:33.187Z", "postProcessHash": "422b789245f141eb48d14e2d8bb7c081181b5229e0661c1abb2ea2e872dda4e4" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.557Z", + "updatedAt": "2026-02-24T10:49:33.188Z", "postProcessHash": "4d8f95b6e449ec2a5b0bcb452a03d0fd3ecb4b4db93079982ee11df37415efa6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.638Z", + "updatedAt": "2026-02-24T10:49:33.273Z", "postProcessHash": "70512f6bc5afe7a8b6a3ae8b68d6006c2b51cb7f86c0ecee9a66ebef31d1f033" } } @@ -3424,19 +3514,19 @@ }, "a4b542589636426ede0e6311f1d470a944fc409f83fd00b07949c7f0968fdffb": { "jp": { - "updatedAt": "2026-02-19T02:24:09.456Z", + "updatedAt": "2026-02-24T10:49:33.085Z", "postProcessHash": "fd11461a9c19d280bcb5244c09269feb452edf4167e77051df2b80cf7cbfa4ae" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.458Z", + "updatedAt": "2026-02-24T10:49:33.086Z", "postProcessHash": "3680cb0146975b46ec392d64cd2c903ccfd2eb43ca8a922fdebb25f8d73e7fe6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.459Z", + "updatedAt": "2026-02-24T10:49:33.087Z", "postProcessHash": "ee3802f616c096e7639c1247298a9f02763f7d9487fb7077be1c61dd0da00bb8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.489Z", + "updatedAt": "2026-02-24T10:49:33.119Z", "postProcessHash": "2376e1fa2290eede6e44dbc87161ea52dd886444a48c3708a248a94214e24625" } } @@ -3472,19 +3562,19 @@ }, "b8d188b15cf0f6d6f86109c0a523e1be580bc0eb4023564f4e2d96efef3b9d65": { "jp": { - "updatedAt": "2026-02-19T02:24:09.556Z", + "updatedAt": "2026-02-24T10:49:33.186Z", "postProcessHash": "e9d64ff0f4e86e74b22cfdc7ce4d9821b5fd600a1674248d4e93e4a80acb65ca" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.558Z", + "updatedAt": "2026-02-24T10:49:33.191Z", "postProcessHash": "a79b96b8ae43c5ecfd05ad3f8b76b9805f743366d8b192d46ca09875a4c97212" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.565Z", + "updatedAt": "2026-02-24T10:49:33.199Z", "postProcessHash": "42623cf960920ef418aff454d1ef210134af6fe4b46a1919037927dbcbb3a510" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.644Z", + "updatedAt": "2026-02-24T10:49:33.278Z", "postProcessHash": "76e553fc9feda2b21812d0e7a1988311456e87f4f3e23392c7e50b144a072b23" } } @@ -3520,19 +3610,19 @@ }, "90eae81bd9fa9c7e128e07a33e24a68213fdb8fbb3ec060318d76c7d7b9c514c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.549Z", + "updatedAt": "2026-02-24T10:49:33.180Z", "postProcessHash": "96b917c1d5d832b679e114735beadfb9851923f0a31efa457d179fee14deeda9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.552Z", + "updatedAt": "2026-02-24T10:49:33.183Z", "postProcessHash": "79a6843d994c73ceecbf81dfee7a59757c7cf982c45e16aa52982b8bf61c05cb" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.559Z", + "updatedAt": "2026-02-24T10:49:33.193Z", "postProcessHash": "2673657e1feca14a83adf30c1f54bd0b169cdb232f81a3f22034ee4a77cc02e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.573Z", + "updatedAt": "2026-02-24T10:49:33.203Z", "postProcessHash": "1a0d744244d8b5643f459a90768cda856d26fe0588c822bdbe9f1a5f29e4d886" } } @@ -3540,19 +3630,19 @@ "16a9baec9aea4c6dd78355c05288783f630be08b0af1a257fb205b45c7adc066": { "b1a72f898456e3c08b49f6f0e73a4fc33fa3bad39fab513c1db89294a3fb923a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.592Z", + "updatedAt": "2026-02-24T10:49:33.224Z", "postProcessHash": "ebfe58bac3d5f35830372ec45f3d692db3e7039f91d0ae788b3072e898cd9185" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.590Z", + "updatedAt": "2026-02-24T10:49:33.222Z", "postProcessHash": "9fa3d5efe0bb41ec6884a7aab70f65503074f2863ab21146a3e5f40c3ed5c3f2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.592Z", + "updatedAt": "2026-02-24T10:49:33.223Z", "postProcessHash": "11e3601582fd9c42faaa7c871a675e12d5b3ab9acec999679f94825fb54010b4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.629Z", + "updatedAt": "2026-02-24T10:49:33.267Z", "postProcessHash": "f71bc0e0b5acf9cd9b534f5ccc6d107be9dcb14bcf796d6b478635172fb02d01" } } @@ -3588,19 +3678,19 @@ }, "74f0f1b06ffe8eddafa36584f4c369558e8ebdc6996423fb8853c169293727cf": { "ru": { - "updatedAt": "2026-02-19T02:24:09.693Z", + "updatedAt": "2026-02-24T10:49:33.327Z", "postProcessHash": "36d9901e29fe6c9501242c5273962081ec3e8440abe7d49efde5ddc83c469b76" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.693Z", + "updatedAt": "2026-02-24T10:49:33.328Z", "postProcessHash": "dcf2a275d74d765d7c561fbd59b7f1dd6b333c150d33e92168476d66f8232b8f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.698Z", + "updatedAt": "2026-02-24T10:49:33.332Z", "postProcessHash": "b63189cd7a833a4df79a4cfdc994b1746dd7e8193164fe91975a8c57de4d29dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.707Z", + "updatedAt": "2026-02-24T10:49:33.340Z", "postProcessHash": "fdc4038739afc434713f887be2826252b8ec5b841dbe086f112798b44d17b41e" } } @@ -3622,19 +3712,19 @@ }, "076bcd32f1cacb3ed9960866f2add328d296dbbac8330958a1f58f52234bdfca": { "zh": { - "updatedAt": "2026-02-19T02:24:09.681Z", + "updatedAt": "2026-02-24T10:49:33.317Z", "postProcessHash": "faaf9f07aae4c2e9de09c2eef4ea2b8ae9f0a5f1a093a0574b5bdb7bc85bdee0" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.684Z", + "updatedAt": "2026-02-24T10:49:33.320Z", "postProcessHash": "823fa88eaedda30f828db8470178bcd8f01e9f9c3b1670d8e0a9974db67997d2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.687Z", + "updatedAt": "2026-02-24T10:49:33.322Z", "postProcessHash": "f3a4c8428051313a0a220cf0a8c77c14685673b7e43d83f78509b390ad76818b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.709Z", + "updatedAt": "2026-02-24T10:49:33.341Z", "postProcessHash": "c8f57c5c17d9983624700fc04df880c7344b20307dd27a26688d44d9c04453e4" } } @@ -3684,19 +3774,19 @@ }, "6a518a92ae9cdabf059851645380da0e820ced8d609e313bb57952c9bff79110": { "jp": { - "updatedAt": "2026-02-19T02:24:09.554Z", + "updatedAt": "2026-02-24T10:49:33.184Z", "postProcessHash": "b9cfb32a004a9b5f05524e4d4cdc283e2647a978ae377c806f8cffe151bcba72" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.554Z", + "updatedAt": "2026-02-24T10:49:33.185Z", "postProcessHash": "cfbc128bd5f5c4c7f06063b5faa876046c05fee6cea37e54b20b09dd4c95d5cd" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.565Z", + "updatedAt": "2026-02-24T10:49:33.200Z", "postProcessHash": "e66e93b747d97daa037a025629e64c4272e25d84a2cffadeec9cb48d56126e0c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.636Z", + "updatedAt": "2026-02-24T10:49:33.208Z", "postProcessHash": "7c0bc24e98caeec57c61e1a2209740022fc2f9eff3cedb69252d4c33f6fdcf1f" } } @@ -3718,19 +3808,19 @@ }, "63c7afb1ad7b7072666c636006ae6cf975f2096f3f940b3912e498ffc94d288c": { "jp": { - "updatedAt": "2026-02-19T02:24:09.620Z", + "updatedAt": "2026-02-24T10:49:33.257Z", "postProcessHash": "45f295327ca4ecc3e6edcf70f6a4ff4cc922ef6f0ec3e2ada9dfe65b76fb775a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.623Z", + "updatedAt": "2026-02-24T10:49:33.260Z", "postProcessHash": "d9e1d1d8baa37685d65ffbab64146fcbd96974f7949ce0e742899a7a0c5cde74" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.627Z", + "updatedAt": "2026-02-24T10:49:33.265Z", "postProcessHash": "7ae5fe21068783fa96bfa6f263ec618203cdcf14db94c3ec6be6018cceab420e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.639Z", + "updatedAt": "2026-02-24T10:49:33.274Z", "postProcessHash": "750c929d5de5dc686717c2781930f046ecc2759a0cb3965aeb30abceb28d5d34" } } @@ -3752,19 +3842,19 @@ }, "91119622bd1467714fa95388a43b00b34bc15f05ed7a19c87fabe4db31e1d40c": { "ru": { - "updatedAt": "2026-02-19T02:24:09.622Z", + "updatedAt": "2026-02-24T10:49:33.259Z", "postProcessHash": "1034fe74f6b125bc240b13ed84eb158483bb3947527c17951b60551586ee12a0" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.624Z", + "updatedAt": "2026-02-24T10:49:33.261Z", "postProcessHash": "b505be33a95fb595dbc7aec1bac60ef996f411278528df40e3d764d6642e72ec" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.626Z", + "updatedAt": "2026-02-24T10:49:33.264Z", "postProcessHash": "7179ba10490c75c8f06155ded4487f911cfa61641d15b168dad07b74bde15d36" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.632Z", + "updatedAt": "2026-02-24T10:49:33.270Z", "postProcessHash": "8e4038a226d9450786872faeac6d24df7081066df249a0ba9c6bb03a9a5560bd" } } @@ -3814,19 +3904,19 @@ }, "feb25bfa28d0e460ba56c2ffdf7a51e4043d0672a091fd5012e5d73032ad55be": { "jp": { - "updatedAt": "2026-02-19T02:24:09.694Z", + "updatedAt": "2026-02-24T10:49:33.329Z", "postProcessHash": "40709de0d55b52a85680fdb108edb72a110d925d6668888c8bf056a0f2a38c61" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.698Z", + "updatedAt": "2026-02-24T10:49:33.332Z", "postProcessHash": "a2221d893da68f52b236105e92c1e00c83276f131386c7d944c19a3099765a48" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.699Z", + "updatedAt": "2026-02-24T10:49:33.333Z", "postProcessHash": "545b2d6b3b3d99987ceaa4bf99386ebd839188c6d2ce35dbccf2347159d82a67" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.771Z", + "updatedAt": "2026-02-24T10:49:33.395Z", "postProcessHash": "dc21ad2fcc4ac6c90aa2a59fff4555ec1b9ce2d59adada33f5874b1f80885d94" } } @@ -3848,19 +3938,19 @@ }, "676abc1dd5f860a8119a6b5df46fba8624a8b7e573870dd0d3fbed81dcab864d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.683Z", + "updatedAt": "2026-02-24T10:49:33.318Z", "postProcessHash": "a1767ef469f9c71d956e756b51e1a746cc96463ef2627054254aa449a64d0a85" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.685Z", + "updatedAt": "2026-02-24T10:49:33.320Z", "postProcessHash": "a801c8f641d7a112162720fc779ceaa784449d86f11690ae3681c696d1d9307e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.686Z", + "updatedAt": "2026-02-24T10:49:33.321Z", "postProcessHash": "4c0f684009d350d73cd6ea232aff9fa6fffeea4e25318f68514aa8e0b0881482" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.771Z", + "updatedAt": "2026-02-24T10:49:33.394Z", "postProcessHash": "9641b0c314a7235e29d2de4b6d80498dc79ff945d8e6a43db769d62734f77682" } } @@ -3882,19 +3972,19 @@ }, "e046a01b2513c68c233b96b68040cafba3a6341975b040b0f82577daaf635afd": { "zh": { - "updatedAt": "2026-02-19T02:24:09.678Z", + "updatedAt": "2026-02-24T10:49:33.315Z", "postProcessHash": "8ded98c611af425c0e870a81c6b5bc520ee804fcee2cc6b16d42f839b7ea623b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.679Z", + "updatedAt": "2026-02-24T10:49:33.316Z", "postProcessHash": "38373910a7f580e64c400bf675f4079481b6ccb71c5c62372fe8b40b0a4de411" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.685Z", + "updatedAt": "2026-02-24T10:49:33.321Z", "postProcessHash": "5b553f4f1055c3c15c26ca09a011cef227d7b6a56d69b2a8b1512e8f628beaca" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.709Z", + "updatedAt": "2026-02-24T10:49:33.342Z", "postProcessHash": "ae6dadec2b1ddae4170047782310d187957d25ae878f90704bb483ad2b2d2619" } } @@ -3916,19 +4006,19 @@ }, "11ca88940183f46c3a380bf1e567c5c3119b42aff1aa14f589c06b92a88db148": { "zh": { - "updatedAt": "2026-02-19T02:24:09.622Z", + "updatedAt": "2026-02-24T10:49:33.259Z", "postProcessHash": "34a9d83d3e16c14f982120eb5d68c1de1be6a7e9cf80cced167b83af0efcc6e1" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.625Z", + "updatedAt": "2026-02-24T10:49:33.262Z", "postProcessHash": "6400509d3a916bca8a45136abdfecb4d6698e0b10e9f0db11f9feae3d9186395" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.626Z", + "updatedAt": "2026-02-24T10:49:33.264Z", "postProcessHash": "de76985cb914ab8b09f18fc58a421db65066cfb2e7d09de371ff816aad2dab4c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.631Z", + "updatedAt": "2026-02-24T10:49:33.268Z", "postProcessHash": "03545c071f17ca88b95f6595b5a5f3b3fc5acd3db9ba618ab60ebe074c757463" } } @@ -3950,19 +4040,19 @@ }, "50a687b93a81100118674d748b6ada86d97a07ecf82de08712863bdf1e15c863": { "ru": { - "updatedAt": "2026-02-19T02:24:09.621Z", + "updatedAt": "2026-02-24T10:49:33.258Z", "postProcessHash": "8d6b49272814eb6ecddaa366958469c90ef807fb4421ee5c4a1f16aa77175422" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.624Z", + "updatedAt": "2026-02-24T10:49:33.260Z", "postProcessHash": "f1b1a6ebe93cc8f7286fcd16a3710d9eebbc28c276defb8c983f42334ecd9d34" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.625Z", + "updatedAt": "2026-02-24T10:49:33.263Z", "postProcessHash": "e0fceeb07ac916a009674f5106d08f25c599a2ca050f28946e7766e1e896089a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.637Z", + "updatedAt": "2026-02-24T10:49:33.272Z", "postProcessHash": "b4635bb7242c9680428bc2c0937b60e1eb90f372c31489568871c3bf0cf470ef" } } @@ -3998,19 +4088,19 @@ }, "bcc807d08cbfd16d6e38f638cafeefa93c9a1a1c754736327fec9cc420e870bd": { "ru": { - "updatedAt": "2026-02-19T02:24:09.551Z", + "updatedAt": "2026-02-24T10:49:33.182Z", "postProcessHash": "3cb2ef6e8af09d300a4426e1643d2ada41bb1bc67f35ee7b356b593fc6f23d2c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.559Z", + "updatedAt": "2026-02-24T10:49:33.192Z", "postProcessHash": "89a36c30534ecb6c05c7ca2776bc7349b8e0a5143bd2cc75cadd4ba50892a84d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.564Z", + "updatedAt": "2026-02-24T10:49:33.198Z", "postProcessHash": "61a13f4a4eac3b1037955078472ff09a443f2d8645e60f8241b457082abdac26" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.641Z", + "updatedAt": "2026-02-24T10:49:33.275Z", "postProcessHash": "a0b38289bd5df3b4de66f8532653d6666026787fe7722d2efa6d8f25737dafc9" } } @@ -4046,19 +4136,19 @@ }, "837348b479a6c7ace8c32dfd68a8ca5c89ae3b24ecca265b507b02af5efd1339": { "zh": { - "updatedAt": "2026-02-19T02:24:09.700Z", + "updatedAt": "2026-02-24T10:49:33.333Z", "postProcessHash": "8fb05fed702a41599583686bab397ef5060495bec9e550541dd47f3a6ec78995" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.701Z", + "updatedAt": "2026-02-24T10:49:33.334Z", "postProcessHash": "374758803c8ee855b21936974101051d42d76da2790f032bb8209378a5302afd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.703Z", + "updatedAt": "2026-02-24T10:49:33.335Z", "postProcessHash": "368bb8b260f27264ab7f868b90ace8b10db03f5a523a1ed0e1eb94b54703ee96" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.757Z", + "updatedAt": "2026-02-24T10:49:33.349Z", "postProcessHash": "bd36c98e717741ffbb53665a12d939230bf39f2f3d08f9cf88f8e5d6d59ba1e1" } } @@ -4094,19 +4184,19 @@ }, "d125f35b597744666d4864cb6b719f8f7b1e99f136007e7a9da4fbc81cddc4d9": { "ru": { - "updatedAt": "2026-02-19T02:24:09.613Z", + "updatedAt": "2026-02-24T10:49:33.250Z", "postProcessHash": "6404a2c8da08c31e352f7c4d55bc304b575508119a40ef7fedb67557b17f5908" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.614Z", + "updatedAt": "2026-02-24T10:49:33.251Z", "postProcessHash": "1b4ee36c0dccde0c9f9de43f38ffc24cca52e93ecb8fda341e5450d030f1b377" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.614Z", + "updatedAt": "2026-02-24T10:49:33.251Z", "postProcessHash": "a3d1e55f74bb2f3413039cf2ab2d1b119ba24b892763176d5f4e6a61313bf85e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.641Z", + "updatedAt": "2026-02-24T10:49:33.276Z", "postProcessHash": "0e6b25211c004c7663c64e2e889c368f437f199f91030bd3ead8a0d61d6f8499" } } @@ -4114,19 +4204,19 @@ "b581e8a0971d1d07fd92c09611201fbc0ec1f2ad10e9a9e9462297b6dbe79f67": { "49ae124d0469e31fa1e3318ed468a02b4e75af99b0ad807441a4e18f29afb644": { "jp": { - "updatedAt": "2026-02-19T02:24:09.590Z", + "updatedAt": "2026-02-24T10:49:33.222Z", "postProcessHash": "b885b782a21fd53e3fd121f5fed4bdb1cccd227b4aa46814c1977053006e2207" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.591Z", + "updatedAt": "2026-02-24T10:49:33.223Z", "postProcessHash": "3b9337910f6e934135a223ccda9f7a366f2351e0ea2b79f52f3a96b5405afcc3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.589Z", + "updatedAt": "2026-02-24T10:49:33.221Z", "postProcessHash": "d3e4f0a7ae8538b6020cd27f4c69af03c8858ced178dc40a91dd945e80bebbfc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.635Z", + "updatedAt": "2026-02-24T10:49:33.271Z", "postProcessHash": "418ee86bef8312d5aaad75abb0eaa568b2baa51be8ab376340ff624837b4ea69" } } @@ -4148,19 +4238,19 @@ }, "2240881a55c7cf25021959b31d28b138fa3518ce13fdaa37c242d4bf3f3b7892": { "jp": { - "updatedAt": "2026-02-19T02:24:09.513Z", + "updatedAt": "2026-02-24T10:49:33.144Z", "postProcessHash": "25927beefc38668badfe94b487a0f20cabd9d6798f7a2586d75ab8810c048181" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.514Z", + "updatedAt": "2026-02-24T10:49:33.144Z", "postProcessHash": "40f2a2a2fce6fda4e12cc946a0be0b74f4c6a3a9305dd31e4487407638e08c39" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.514Z", + "updatedAt": "2026-02-24T10:49:33.152Z", "postProcessHash": "f91d413d70dcb7d2f7b7a53bc701d01b3cc689d42682e949cfc243888090c009" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.645Z", + "updatedAt": "2026-02-24T10:49:33.281Z", "postProcessHash": "e21d8a053606fd6e02e68136e6e60c53b91134e48f9a169757338d2a1e5c991f" } } @@ -4210,19 +4300,19 @@ }, "4338ba3267281111b7f867ed4b8b1743b1e40021a7d27a25543f7e55097dcd92": { "ru": { - "updatedAt": "2026-02-19T02:24:09.692Z", + "updatedAt": "2026-02-24T10:49:33.327Z", "postProcessHash": "656c1d073f1a9cc9dbed73139b5917fc33958b71a81ff9b2c8bde714bc755023" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.694Z", + "updatedAt": "2026-02-24T10:49:33.328Z", "postProcessHash": "489f20b96a9e2fd39e6532a83017ee0a0a5cb83ab1fe95b03a3e9329eecb5eb8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.699Z", + "updatedAt": "2026-02-24T10:49:33.332Z", "postProcessHash": "6a54e559c50b5526412056061d88e4d73a568ba71408a5957ee7d2847970a93d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.708Z", + "updatedAt": "2026-02-24T10:49:33.340Z", "postProcessHash": "1a01a52d558cee35c16ce1c81c1bdfe0bb11cae1bae4848fd649d17efd56dfa4" } } @@ -4244,19 +4334,19 @@ }, "85c977ff2c68bbc2ee235617cf8378b4dfe8f6fb0d131c487986abfd398f23b4": { "zh": { - "updatedAt": "2026-02-19T02:24:09.550Z", + "updatedAt": "2026-02-24T10:49:33.182Z", "postProcessHash": "c3f6a64dcbfef58603a7a2a23e40c5c8cf897992e05615d7d7e7f6a00b384927" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.553Z", + "updatedAt": "2026-02-24T10:49:33.184Z", "postProcessHash": "8f5b076307237de05c86d294a405839a08bfd00c38d41361063fe1e5a1afeb58" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.557Z", + "updatedAt": "2026-02-24T10:49:33.189Z", "postProcessHash": "8304f8302bb20922c073062d269dcb0acf4ed50c8d6e57f87821b87e30800531" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.630Z", + "updatedAt": "2026-02-24T10:49:33.205Z", "postProcessHash": "4fe797b33c94c5e714d69da1d060d841185a342782dbac3f4fe98c08555a44a7" } } @@ -4278,19 +4368,19 @@ }, "ca1c012e905ebc85cb2f933afe7e811b84e0936b4d260a0bf6999ff359580b04": { "ru": { - "updatedAt": "2026-02-19T02:24:09.679Z", + "updatedAt": "2026-02-24T10:49:33.316Z", "postProcessHash": "115be90bf00d2ea2881a838b7179e71117c23bf807ad57b690a6bfd3bd21750b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.683Z", + "updatedAt": "2026-02-24T10:49:33.319Z", "postProcessHash": "1045cd07af06035ab84d295654aeefb55f1e7f3eee4b26f2010e089bcbdd7bca" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.686Z", + "updatedAt": "2026-02-24T10:49:33.322Z", "postProcessHash": "34159a54648248194a5d72e153dff28e481646e8aee07bfc4df01482ce04c0fa" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.752Z", + "updatedAt": "2026-02-24T10:49:33.346Z", "postProcessHash": "eddd010580a088738c78bf0d417a57e5f10490a167af985d66e52f53c389c65f" } } @@ -4312,19 +4402,19 @@ }, "57fff4b85c3df9cad5099f97d1d7ff71a15de30dde068e95306e9a838dbfda79": { "ru": { - "updatedAt": "2026-02-19T02:24:09.697Z", + "updatedAt": "2026-02-24T10:49:33.331Z", "postProcessHash": "1b4c8cae0828279b09ac7403e94c60fa4bf55df10e9ba56ca8cbc0dd319424a8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.703Z", + "updatedAt": "2026-02-24T10:49:33.336Z", "postProcessHash": "b1fa9e1c75fc72a1ea50dfb2a8465bda43a27940620e569548d7b702f6d32f66" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.704Z", + "updatedAt": "2026-02-24T10:49:33.336Z", "postProcessHash": "759437d3f750ee7026e86fe04d708642e5201d47f0f8ddf9f909d89a13b5b034" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.758Z", + "updatedAt": "2026-02-24T10:49:33.351Z", "postProcessHash": "51a2a9a9a42b30b9a9b5a8b14a2abf7a134df7876a48c5fc1c6a88616f4fa78b" } } @@ -4346,19 +4436,19 @@ }, "5cdf36d7434b303a7653b3264a52ba57bf1886f9975ddffe13384adfa340d306": { "zh": { - "updatedAt": "2026-02-19T02:24:09.674Z", + "updatedAt": "2026-02-24T10:49:33.312Z", "postProcessHash": "be7ad39e811b3c0e866bc6c0e8a479863e1742fabfb09317b3b524627e4eadaf" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.677Z", + "updatedAt": "2026-02-24T10:49:33.314Z", "postProcessHash": "af84fa29c0c52dc0230331f8d3e00a03250259a02126f3f7640e0625ed0cc228" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.677Z", + "updatedAt": "2026-02-24T10:49:33.314Z", "postProcessHash": "bd5362849b253e6d73d07590fbdf8d5b130c183e47b83cc12c529186979a870b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.711Z", + "updatedAt": "2026-02-24T10:49:33.344Z", "postProcessHash": "479426daa5fc3d7ae28cb1a7ffb57d7f9a450e775fbeb3fe57aff7293f142b95" } } @@ -4381,6 +4471,24 @@ "updatedAt": "2026-02-19T02:24:09.704Z", "postProcessHash": "f8d6ae74c679021ef1cdc76b6301acf37ca6e475f9aa4098fb9e9c280ef7405d" } + }, + "a69f4f27c5b1cae74fbc8c9561d18730cc5d2dae86ae03a8d3c06077856e1b81": { + "ko": { + "updatedAt": "2026-02-24T10:49:33.425Z", + "postProcessHash": "cbba67a5eb0f45160e17fb8b4c8253958284353a923c1f8a9b6f9f2a75cdbbe1" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:33.425Z", + "postProcessHash": "35fdb971029d315e7e2b4c331cd45f5d4a437ccb73c184a78ec24b068456ab5a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:33.426Z", + "postProcessHash": "24dfa8d3f787207a3ab555c9b4a336d3d18d2bd3dd138517fe64ac926226d827" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:33.426Z", + "postProcessHash": "3c486014861894559d96ddb041a282a900e78525cb7461d033bd98b1b039363a" + } } }, "3b5e4827235bde4cab69ea0d512c4769c70579291411c713544bf464dec162c8": { @@ -4414,19 +4522,19 @@ }, "202c3ccbd0f5e0b94dd7e851609064cd5b82f34bd4c2753fda2bd09069ecbda9": { "jp": { - "updatedAt": "2026-02-19T02:24:09.695Z", + "updatedAt": "2026-02-24T10:49:33.330Z", "postProcessHash": "fe30d11faab6f858072513228ee887e3810f2662fe8d46eb026aba30a88cf095" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.696Z", + "updatedAt": "2026-02-24T10:49:33.330Z", "postProcessHash": "89085310949dc10379416fc6b965da0cd05bd669f86887e4e0ea09f763878a61" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.702Z", + "updatedAt": "2026-02-24T10:49:33.334Z", "postProcessHash": "ad884a754ee8632c08a8f5ac624552813f77b16834cebb0ccdc58a96d46149e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.775Z", + "updatedAt": "2026-02-24T10:49:33.399Z", "postProcessHash": "4199cb603cce3c6c36166f29d8f98389d7a6342c0f32b46ed2c3e1b6ae2e8b3d" } } @@ -4448,19 +4556,19 @@ }, "34724725dac9963ff2773d389d93c6bddeb0445ee1b65b79e151d1e8a9b461a8": { "zh": { - "updatedAt": "2026-02-19T02:24:09.731Z", + "updatedAt": "2026-02-24T10:49:33.366Z", "postProcessHash": "68e8fc9792d8a34f20bb73d96b1122b5b540b140fba62fea281279cdb62c2c44" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.731Z", + "updatedAt": "2026-02-24T10:49:33.367Z", "postProcessHash": "0ec7969a747788b5c83fb0e5863a0e20c3fac12e092fd8c8fb9007d5794a886c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.732Z", + "updatedAt": "2026-02-24T10:49:33.367Z", "postProcessHash": "ae9513a7ae5c9ee91f5996a1109609c066bee4ff2653ec8e96a5f2705c5add1f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.754Z", + "updatedAt": "2026-02-24T10:49:33.388Z", "postProcessHash": "3e232fde2abed02025e17ebd7d0708e030008f23885599c284dc1c8cee674040" } } @@ -4468,19 +4576,19 @@ "51ffd052b5e18acec3f8c2fc6fc9f2de6d509c5f9b55c4e653df085e2f4cce96": { "e67a2d890c9d442e3c7a7f02a0d5c6afcdb1928ff906f575bbf304c7f7799b2f": { "jp": { - "updatedAt": "2026-02-19T02:24:09.656Z", + "updatedAt": "2026-02-24T10:49:33.297Z", "postProcessHash": "f188478a7fd6a11af77a912e73998e498ff6d3c9adf7ae96e4cbc9fd2c28e166" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.656Z", + "updatedAt": "2026-02-24T10:49:33.296Z", "postProcessHash": "80a0ea657d91fa7e7d8683417949a95c25791cbc34674b6e40333863b7bacefc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.657Z", + "updatedAt": "2026-02-24T10:49:33.297Z", "postProcessHash": "6a8b7474a3c1dd6ef29095b5aa06c0c3cba750e56d6d64fb6ccd7e977a4ce165" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.770Z", + "updatedAt": "2026-02-24T10:49:33.392Z", "postProcessHash": "e0b87f681c07e2279a2fe141e67ec4480973421d061b1326c57362554099f154" } } @@ -4488,19 +4596,19 @@ "58660987b73352ad4963dda3033196dbfd0c791f7ea7184da7b8ed72a70d23c7": { "e6384b2ee9b82af275d9a7823132ca573a701a7955a267deaca2eba7848c0139": { "jp": { - "updatedAt": "2026-02-19T02:24:09.725Z", + "updatedAt": "2026-02-24T10:49:33.361Z", "postProcessHash": "c50649c2117c8affc398ca7366a98e112506776a5c75b3f1bb88a19d9c3e934e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.727Z", + "updatedAt": "2026-02-24T10:49:33.362Z", "postProcessHash": "94591553ce1a6219fb077733033c0dd83962ab05e696e9b5c7c40efde2dc3fdf" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.726Z", + "updatedAt": "2026-02-24T10:49:33.362Z", "postProcessHash": "54a7b2ea45360a9764b6de7fa2e9695784ef4241fd9e5acd7b7b088929cba9e8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.745Z", + "updatedAt": "2026-02-24T10:49:33.379Z", "postProcessHash": "e5d769ddb0db32c7afa8e4028917c9e904ad43b66167fcad4dbe8a3ce37b2960" } } @@ -4508,19 +4616,19 @@ "5ae00fffd365a54fbda628a19a927576375cc455c591c16a26e7ed16b919a10f": { "2c1fe0f08e90b42f0362e7d55eb555bccf6bc9522b4eee5aa410eecb5a6ff63a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.813Z", + "updatedAt": "2026-02-24T10:49:33.438Z", "postProcessHash": "3470552356f68070a28e325e080b000a30aa4fe69cd81d1689cf3b1bdcbd4cbe" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.815Z", + "updatedAt": "2026-02-24T10:49:33.441Z", "postProcessHash": "18e0a8471b22a75f2d8d06752f2118b1e86e5f691d1a942ed5a266e2844347b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.811Z", + "updatedAt": "2026-02-24T10:49:33.435Z", "postProcessHash": "1e63e1690cdefc2e59e2ef1a1363db37ea6f2fdaa0f997c284895a2bfe74fc4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.830Z", + "updatedAt": "2026-02-24T10:49:33.455Z", "postProcessHash": "604aaf5d22258d5f7d1a397d1c5cd9aebb8faf3ac4e584f0b53072ccaf54e287" } } @@ -4528,19 +4636,19 @@ "62a28a91cc967d2076cb4a8ae68eb32bb7dc0a91eac1089fc166676f54731dc3": { "4fb613d98fb6ff221944b46d4a102b8b41af0362055b5e31a68dcbedb5e8be6b": { "jp": { - "updatedAt": "2026-02-19T02:24:09.724Z", + "updatedAt": "2026-02-24T10:49:33.360Z", "postProcessHash": "e707a8ccbdc57b567febde1d27f63f094ff8d99cbe93fc9208f50f21fed5e94c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.724Z", + "updatedAt": "2026-02-24T10:49:33.360Z", "postProcessHash": "a5ac70c1db3977c93fcba2079aa3b426a804b1e1f39dbb142e52547b66ea2afe" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.723Z", + "updatedAt": "2026-02-24T10:49:33.359Z", "postProcessHash": "add865fc6bcf8e0e67633efde7356433b66407f5cdab059cd27c50bcee069acc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.755Z", + "updatedAt": "2026-02-24T10:49:33.389Z", "postProcessHash": "705bdcf0be8c808c9f5bb65264b0dccd97903a30e1be7d7be7a379ff91b28da0" } } @@ -4562,19 +4670,19 @@ }, "fa82ad9cb7aa300f354bc17531045f59b47938883b21d463b84f67857cd9d154": { "zh": { - "updatedAt": "2026-02-19T02:24:09.727Z", + "updatedAt": "2026-02-24T10:49:33.363Z", "postProcessHash": "0b8feed1e08149e9a3abc5c3c3bb69d6991501b1a9acf72f9f3e6a1cf0c9a761" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.728Z", + "updatedAt": "2026-02-24T10:49:33.364Z", "postProcessHash": "ee3b10ca15a143d6ab30d04505dfcfa6f3b5f90b1cdf78bd259366ef0e3ac941" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.728Z", + "updatedAt": "2026-02-24T10:49:33.364Z", "postProcessHash": "f1b7cb7b02cab87179074ed359932bcaf71eba5bca611036393ccdf0caf82373" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.740Z", + "updatedAt": "2026-02-24T10:49:33.375Z", "postProcessHash": "b6713022a10f7ae97e53f52a51c4302b3706b49651db9d163b6126a5dbdfc615" } } @@ -4582,19 +4690,19 @@ "64c029683442a95f0d9971d2c2a2f011b21167a916369b96ea20390f74a96eb2": { "27ea13a9d6a87686196565d791a629223843e1c311b9bff9edf44c593e511703": { "jp": { - "updatedAt": "2026-02-19T02:24:09.818Z", + "updatedAt": "2026-02-24T10:49:33.444Z", "postProcessHash": "42ef2730971ee800b821718ec8764c8fd57ced786b4173c42cbb2e02db8b4e17" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.816Z", + "updatedAt": "2026-02-24T10:49:33.442Z", "postProcessHash": "0eb3255493c6af3cc01a1a864541ba1ac454e5599a8461bc31000f216581ecb0" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.809Z", + "updatedAt": "2026-02-24T10:49:33.433Z", "postProcessHash": "27dcdc6e9c33b63593f0070ce40716ee1a17fe01f216f9ab6639c672dfc45fd3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.834Z", + "updatedAt": "2026-02-24T10:49:33.460Z", "postProcessHash": "09a3cb9497a44350a363964add46fbfdbec482ea840f94e0e881f06990eed4bd" } } @@ -4630,19 +4738,19 @@ }, "f795c91c6dbfbfe7ccb46ec0d3284772589a1019d58449643a7345859d079f5b": { "jp": { - "updatedAt": "2026-02-19T02:24:09.675Z", + "updatedAt": "2026-02-24T10:49:33.312Z", "postProcessHash": "d22a21874a6da1ddcdadbb1f17a45d09dbbceb51e77cd79def5e07a4e390a9b7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.676Z", + "updatedAt": "2026-02-24T10:49:33.313Z", "postProcessHash": "950b7b578d5a1d81803c464f9697da092109a56e907a7dcc617be9fb6296fb0b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.680Z", + "updatedAt": "2026-02-24T10:49:33.317Z", "postProcessHash": "43c16a45ee2292d67532a7e21883f2ac65df0567b834a67cd7bef104c91fa9f3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.712Z", + "updatedAt": "2026-02-24T10:49:33.345Z", "postProcessHash": "aca0cb0a9885516ef4358b32a43a43f11bb5489e9fa41ea23b269e4864c30b1a" } } @@ -4678,19 +4786,19 @@ }, "268e27aacaa0cf7139b911ea250e10a4acb8beb69192309e9af033190f689b67": { "zh": { - "updatedAt": "2026-02-19T02:24:09.734Z", + "updatedAt": "2026-02-24T10:49:33.369Z", "postProcessHash": "406a8573d5c78363a1bcb8cac564e921364fae560a152444fd326ac1234b6397" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.734Z", + "updatedAt": "2026-02-24T10:49:33.369Z", "postProcessHash": "56d467a66c7129d99958560ae3f70e09b3d1542a5fe7e7935580e240f653b81e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.735Z", + "updatedAt": "2026-02-24T10:49:33.371Z", "postProcessHash": "2390fc4ca2648320c6b47b95b29abf7eacea8b181fa1ccfefce9e86775a43384" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.748Z", + "updatedAt": "2026-02-24T10:49:33.382Z", "postProcessHash": "c4c77f4117394e4ddc512a3ae985093a55428cd5abeeb4bb2f6561eab78e56d1" } } @@ -4712,19 +4820,19 @@ }, "f2542aaaf3d257af967ef16645650ffd26f357b01a66d034f544735422318c1d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.861Z", + "updatedAt": "2026-02-24T10:49:33.479Z", "postProcessHash": "cc39540bdbf06349eaac29cc62a02165919a6ffe1a8453fe26ea3a93cce634fb" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.861Z", + "updatedAt": "2026-02-24T10:49:33.479Z", "postProcessHash": "afb34237c2af1a9160a66d9b2a8556c6cdbd7a3ff6ecf2a3ce0db52d8d5e3e98" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.862Z", + "updatedAt": "2026-02-24T10:49:33.480Z", "postProcessHash": "d9e6da88722d212410fd3e57c333407a76a5369a07b9ee3ccacd1dd05f08292b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.754Z", + "updatedAt": "2026-02-24T10:49:33.388Z", "postProcessHash": "ece44140699c150bc38fa3984b66a19e62a9aafeb5d9373b655084d2bcd6f31f" } } @@ -4757,19 +4865,19 @@ }, "fd1f8e090bb4000c9b0d9c440888308f15fa96fe0ecb2ada72c322e877857a46": { "jp": { - "updatedAt": "2026-02-19T02:24:09.737Z", + "updatedAt": "2026-02-24T10:49:33.372Z", "postProcessHash": "7d237d99590ad538c62e30b27fc585283e56666011ea3a8d7c4e818ad5300beb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.738Z", + "updatedAt": "2026-02-24T10:49:33.373Z", "postProcessHash": "5cdc6d748e5f81f74a7dbf62b59b42672bd76c531c741137e543106b6c9188a7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.740Z", + "updatedAt": "2026-02-24T10:49:33.375Z", "postProcessHash": "732eadb9a5f7cf1c32a371ea68e91fc092d33bf5e94b4a9739a5b11d3e133ef1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.773Z", + "updatedAt": "2026-02-24T10:49:33.397Z", "postProcessHash": "411103edd385ef2aa903d656267f25113d311383c7dc8cdd6c32525871e95555" } } @@ -4807,19 +4915,19 @@ }, "268a7e01865bfa967935e831e2796928008d59b0f13dfd89df3d95229dd82f8d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.729Z", + "updatedAt": "2026-02-24T10:49:33.365Z", "postProcessHash": "0bb9eec0a41e8870f671b439e9563795a77e4ce5a3906e7b00d5c9fe30e27bfd" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.729Z", + "updatedAt": "2026-02-24T10:49:33.365Z", "postProcessHash": "d7fbf5e47e20ca0de009e9ada5a0b11a364db3196639dd1dc4b0a089ab819092" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.730Z", + "updatedAt": "2026-02-24T10:49:33.366Z", "postProcessHash": "6eb66fdefe85821c25b001b7493b87185ea22f7fade828668e4a36c0c1415b14" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.774Z", + "updatedAt": "2026-02-24T10:49:33.398Z", "postProcessHash": "86bc8e24f1302c6966491d30a54016da675878d044a9f77b1cc43ca579849bbd" } } @@ -4827,19 +4935,19 @@ "ba6c4ca640fe7b3f714cda5b21aa83f56d6987a93c06b0f52403fcf16442d4a3": { "73a0749a7a37be27b2b679011c93ceeaf5407fff6130ef17dcbbbc612aee0d5f": { "jp": { - "updatedAt": "2026-02-19T02:24:09.817Z", + "updatedAt": "2026-02-24T10:49:33.443Z", "postProcessHash": "c4b10072c2dc8ee855212cad36d9c1646551e6c61102b10cf388933667814f3b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.810Z", + "updatedAt": "2026-02-24T10:49:33.434Z", "postProcessHash": "d816890c558a2b5fbfc270dd334b44032e89bff56296f5fe48e3bba633c4d0a0" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.816Z", + "updatedAt": "2026-02-24T10:49:33.441Z", "postProcessHash": "983afb2a58fbd4cc0c41da80aeb548608ded5e11470eb3170d47e8b4fe3f7f86" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.836Z", + "updatedAt": "2026-02-24T10:49:33.461Z", "postProcessHash": "ee5b223a1cc9e3309d7455986267225a2671760ffaf357e2e594e45c9a4fc0cd" } } @@ -4847,19 +4955,19 @@ "c85686859f3f25046db0082f882182fadaaa53c9674e2b8421280d74f206eb40": { "add68d9d7c2384a1f4236b30131c64724392237b73f94a4430f8fd215046f46f": { "jp": { - "updatedAt": "2026-02-19T02:24:09.811Z", + "updatedAt": "2026-02-24T10:49:33.436Z", "postProcessHash": "d27846b68a888c13e0474dbf30715cdd4ff7bbe5fc71adec699e77c50021bf58" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.820Z", + "updatedAt": "2026-02-24T10:49:33.446Z", "postProcessHash": "4a916177853153ca9ba7f0d5bcc85d2d06a9251a41983ab40ccf131887d6a039" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.819Z", + "updatedAt": "2026-02-24T10:49:33.444Z", "postProcessHash": "bdfdd29c44db53669b50a4f044808987df4595fda1dd7e08013bfbb739d16ca9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.833Z", + "updatedAt": "2026-02-24T10:49:33.459Z", "postProcessHash": "eeb46e5e2eee3e66b7eca8bbe13a78038bb0aeecf30576ef27cf760f273ee670" } } @@ -4867,19 +4975,19 @@ "e58beba1ecf7893bfe1389d8eb8c6388801ea9f76c74eaadcbaa400a86832dc0": { "80e13888b6bfca7d175470bafcc2e30a1e88dcbbdaa15cac209fa66c4f44bddb": { "jp": { - "updatedAt": "2026-02-19T02:24:09.813Z", + "updatedAt": "2026-02-24T10:49:33.438Z", "postProcessHash": "ad9010758a89026f4e5ca62571e42d0a980fb1566aa79787b94040e1baf1cb92" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.812Z", + "updatedAt": "2026-02-24T10:49:33.436Z", "postProcessHash": "b56837175e3873738f70c4494bc04d7ddfd1d81425dd3280d824753cbb849edd" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.814Z", + "updatedAt": "2026-02-24T10:49:33.439Z", "postProcessHash": "5853ba1fdc058e2cf7d3a4f1f086c9e8a6f7b0939d93eba82e632a6b5fd10a1a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.832Z", + "updatedAt": "2026-02-24T10:49:33.458Z", "postProcessHash": "6d286087cd7598eb40934b5f9700115b030379f5881ca0c9811a53a3bc4b3249" } } @@ -4887,19 +4995,19 @@ "f437d5d62e24e71773573d12295d6070b2013b4f10635e752fc5e0c0c6f3d5b6": { "69df1b4df06653852e7ced5d6197d910291dedd2d1b27599cd5608fd1b4a5214": { "jp": { - "updatedAt": "2026-02-19T02:24:09.649Z", + "updatedAt": "2026-02-24T10:49:33.293Z", "postProcessHash": "872602a98938a05ac42d8a6d09fa654af66cebf04e415f18790f3196a4fe0905" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.653Z", + "updatedAt": "2026-02-24T10:49:33.294Z", "postProcessHash": "191ea904ec76a8f2b9af4e7d06620277328ae21307fa13414cab7696f241936c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.655Z", + "updatedAt": "2026-02-24T10:49:33.295Z", "postProcessHash": "54144fccf84826433452738228f0cb80264bb98d3fe9ec5525dc7149e91b3582" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.710Z", + "updatedAt": "2026-02-24T10:49:33.343Z", "postProcessHash": "7c82a60a2a05b3b78a5cb7007ccb8a0ac1978688117ec5590c3a7df823880fc2" } } @@ -4935,19 +5043,19 @@ }, "117832d10e00288fe662094477d7e07175a229028af749f7f7906fb2c3366451": { "zh": { - "updatedAt": "2026-02-19T02:24:09.905Z", + "updatedAt": "2026-02-24T10:49:33.521Z", "postProcessHash": "1ef57ec675fbf403cf2f99c7fe8d44dd2ea47df1fb89715d6ff56d599ed963a2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.907Z", + "updatedAt": "2026-02-24T10:49:33.524Z", "postProcessHash": "6fb6aa43f15f847e29bc9f00d05ead16ed9dacd8c63db6afbbcfcee9b68ff10e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.911Z", + "updatedAt": "2026-02-24T10:49:33.528Z", "postProcessHash": "cab0c484aece43b9f88eb95a4c3ed7cab0a5e96166c3bf1415def0e70a2c2aeb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.915Z", + "updatedAt": "2026-02-24T10:49:33.533Z", "postProcessHash": "d0a061ca74d37923de14ce1934721b2e2157a83ec7c97811499378a9db24315d" } } @@ -4983,19 +5091,19 @@ }, "3b53569f1dd1b1822c35e19f443726d3cd22516fdc37b4aee4110aa7cca7e1ab": { "ru": { - "updatedAt": "2026-02-19T02:24:09.827Z", + "updatedAt": "2026-02-24T10:49:33.452Z", "postProcessHash": "51e5800f1d4cbd17656523176337e7dde974198dc62b9ead3ce2b88764db3110" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.828Z", + "updatedAt": "2026-02-24T10:49:33.453Z", "postProcessHash": "bf5e3069a38499b36201f150782c0338e399ef8be1068f706cfc0fb070a9064b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.828Z", + "updatedAt": "2026-02-24T10:49:33.454Z", "postProcessHash": "e6f2640ccb8241144bf160f0c22179e5135aacebcd296458f99b3063d4e1b597" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.836Z", + "updatedAt": "2026-02-24T10:49:33.462Z", "postProcessHash": "ac2e1fbe004bd72d0400a6859728753922a4f05b17f77d99d93ec291fb0e5ab6" } } @@ -5031,19 +5139,19 @@ }, "49775ee904620e4f7671e3b8a466334686b323c1a1dd1e7f5f0945e7cdbc3985": { "zh": { - "updatedAt": "2026-02-19T02:24:09.895Z", + "updatedAt": "2026-02-24T10:49:33.512Z", "postProcessHash": "3f292d0f94689a99c1c34bbd82e68f4e98188adda8895d560b672eb2479b50ac" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.898Z", + "updatedAt": "2026-02-24T10:49:33.515Z", "postProcessHash": "15300426a7da77f470466a48540bef56077c70bc7de17ce7b5836614cda9724b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.907Z", + "updatedAt": "2026-02-24T10:49:33.524Z", "postProcessHash": "bd0b0e679ab210f4bfd708e0f1f7edadb18eb48e33172a56e48e6aab712c727f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.920Z", + "updatedAt": "2026-02-24T10:49:33.538Z", "postProcessHash": "d06bdc90d5f41e570564957df5b1554c018edefb493ff6e60bfc32039697d491" } } @@ -5065,19 +5173,19 @@ }, "61207cac7f171e564095fe70dbc56cc028002c0b8bcc83158152a493fecfa786": { "ru": { - "updatedAt": "2026-02-19T02:24:09.824Z", + "updatedAt": "2026-02-24T10:49:33.449Z", "postProcessHash": "4567ea782a303c3485b0f3869a9570b5e38d7aa8bd2c44c5d59ba88d969cab81" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.825Z", + "updatedAt": "2026-02-24T10:49:33.450Z", "postProcessHash": "47ca396cfaf447b8e3a26c29a21e240683f267f0f773693f649b7c0ec5fc3654" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.826Z", + "updatedAt": "2026-02-24T10:49:33.451Z", "postProcessHash": "7b01824c39c384b887731fcba6054f842b5eaf4a1f3b13aaafb6abddfe36e63b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.831Z", + "updatedAt": "2026-02-24T10:49:33.456Z", "postProcessHash": "41a825aa3dce265e33f8818b01d251673b959b72ae883c2903c7d11cf4839878" } } @@ -5099,19 +5207,19 @@ }, "3cbcbe09143ba2ade3433531af7424a1502ef28454ab4600dba3a316c7c1788f": { "zh": { - "updatedAt": "2026-02-19T02:24:09.884Z", + "updatedAt": "2026-02-24T10:49:33.501Z", "postProcessHash": "6c38fde28c568558ca4d942b99ece81cd69814482ed3f9bb84e0208e3dfb8212" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.884Z", + "updatedAt": "2026-02-24T10:49:33.502Z", "postProcessHash": "5336f0bf51efc41081a3d3b3a0c632b29bdf9caa850b0cccdd1f0ed13708a330" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.885Z", + "updatedAt": "2026-02-24T10:49:33.503Z", "postProcessHash": "dcfbab700639d3faebe1b2edc54afc4f9c1d853b3a68a504133328dfe52e5d89" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.913Z", + "updatedAt": "2026-02-24T10:49:33.531Z", "postProcessHash": "de09ff93dc70b242d82d2acb499c90b0ef5978682f29d07680f24145a62e44d5" } } @@ -5119,19 +5227,19 @@ "3cb23211e097156c0f1a78ad405746a39a30a7fca3e113e221a2bbde60fc5c66": { "30bc5b33601dc47abebcade817fd66b12ac5351751c6ed875945668d80c959b2": { "jp": { - "updatedAt": "2026-02-19T02:24:09.810Z", + "updatedAt": "2026-02-24T10:49:33.434Z", "postProcessHash": "c09bb1e7065c3cf33af3b2f65cfeff02362863d455543c282e5e549d07b86532" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.815Z", + "updatedAt": "2026-02-24T10:49:33.440Z", "postProcessHash": "1e00dd72cad3fed38f1bb24890e79cda8e19b586ed6d3638c3c60f766aef5507" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.807Z", + "updatedAt": "2026-02-24T10:49:33.432Z", "postProcessHash": "36a46ea5bb8c07fdcc6159bfbd8c57bb713cba63f38874ab2d01d41e936dd331" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.831Z", + "updatedAt": "2026-02-24T10:49:33.457Z", "postProcessHash": "9fb1af7358ec32997638dc4a4b0c06ac2635cf49f00f7dc74514cb929186b45e" } } @@ -5181,19 +5289,19 @@ }, "87b7b79bcd89bc96e7bb720b8e29a68618375ce5caada142a3a9d83a95ca9364": { "zh": { - "updatedAt": "2026-02-19T02:24:09.897Z", + "updatedAt": "2026-02-24T10:49:33.513Z", "postProcessHash": "9a98a04d064447cfb1b49d9f81551aa439bee16c2227ae171e633610162e8c5d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.903Z", + "updatedAt": "2026-02-24T10:49:33.520Z", "postProcessHash": "7ea6993f0532e95131cfa068e21ed2487d4842d69d29a2faf3552c1bcc392b7a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.909Z", + "updatedAt": "2026-02-24T10:49:33.526Z", "postProcessHash": "77d51addbe77803362733db29cdf10304de1fafa291d975d22abe19dacfb4e61" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.915Z", + "updatedAt": "2026-02-24T10:49:33.533Z", "postProcessHash": "b88a0bdbbb1a6022f2b2d49c0b30b0b1674f3717127e4c7337427b3b2b738f78" } } @@ -5215,19 +5323,19 @@ }, "6f27471fe2d0cc61ad43ac921f39c4332cee757c28a51e5f67616b2f3a93506e": { "zh": { - "updatedAt": "2026-02-19T02:24:09.872Z", + "updatedAt": "2026-02-24T10:49:33.490Z", "postProcessHash": "83b2dc1bb343dc2f011e9c7ffbb7492c94c79e3c22459e87c161324f30937a81" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.873Z", + "updatedAt": "2026-02-24T10:49:33.491Z", "postProcessHash": "dd38a1c15a531e894b873ca5e0bcb61dd46ea405e3812b2a7f22c652d47b6d46" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.874Z", + "updatedAt": "2026-02-24T10:49:33.492Z", "postProcessHash": "1521daa85ab945ce448986a351f56acc6176d7a89dce6519d64cc90f96578f8c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.971Z", + "updatedAt": "2026-02-24T10:49:33.593Z", "postProcessHash": "937bcf92b0321ced8998ff45e3db6ace05ef9b4debdee320b109fa2055cfe74b" } } @@ -5251,19 +5359,19 @@ "8c4b511502097e5142007ba6bf89d86ef9d582ca174f395180742175d5bd4f05": { "f3274830262e5f01f74d8474761446b9f8a9c83ae245d4cee233a6cd17284b39": { "jp": { - "updatedAt": "2026-02-19T02:24:09.817Z", + "updatedAt": "2026-02-24T10:49:33.443Z", "postProcessHash": "f290b4b3636eed3beb023d96c103e8206a8fa17d0f8cfa34478eccb4b1721034" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.809Z", + "updatedAt": "2026-02-24T10:49:33.433Z", "postProcessHash": "2700a4aaff8d7474edaf84df46a4d0ee5e7bca17e52d3e20b263e1956fcc5120" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.814Z", + "updatedAt": "2026-02-24T10:49:33.439Z", "postProcessHash": "3adf4619340cdd0514dcdfcc4911d2afd2ec78e21d7a2c2ce2777073d1e20c7b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.833Z", + "updatedAt": "2026-02-24T10:49:33.459Z", "postProcessHash": "a55c7a7b5aa19b69d6ee34f0839ef017faf649094e0812d634082eac5652787a" } } @@ -5299,19 +5407,19 @@ }, "33d98eb8962e3b11696d95a31686de8d081e3eed33ef246c33812c5cc01e20af": { "jp": { - "updatedAt": "2026-02-19T02:24:09.904Z", + "updatedAt": "2026-02-24T10:49:33.521Z", "postProcessHash": "4a5e493a370e55795f0ee9b686a5c8de4fa06dabc9562bb8a13a0309c2ae0c04" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.905Z", + "updatedAt": "2026-02-24T10:49:33.522Z", "postProcessHash": "a500fcaeddefee2d5e341318ac36d547ff8a8d0ba54d04559bd6828a4f56acd7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.908Z", + "updatedAt": "2026-02-24T10:49:33.525Z", "postProcessHash": "b4ea6bcbc795e42493d4561779d191fbaa6dc2542e4617b370ba2dfe15655f5e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.917Z", + "updatedAt": "2026-02-24T10:49:33.535Z", "postProcessHash": "3aaf5987ba992afeb8a2feb550c5d2e4dc7c893106df620db9fc0dcae2736bac" } } @@ -5449,19 +5557,19 @@ }, "748c30cc9d988759e1e0ff5272e3cd375879e532713a732700c0d1e9f523d567": { "jp": { - "updatedAt": "2026-02-19T02:24:09.921Z", + "updatedAt": "2026-02-24T10:49:33.539Z", "postProcessHash": "f83bf98ce0661fff6c6b6589e08854802c4dda3ddd20cf31bb9a09915f11737f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.921Z", + "updatedAt": "2026-02-24T10:49:33.539Z", "postProcessHash": "38ffed8076fdf407481a4c2dcb4803a3b0acd1b3ff13fd5a9deb602c08bbbc46" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.922Z", + "updatedAt": "2026-02-24T10:49:33.540Z", "postProcessHash": "eb5427755b896fc6a0f2cb84dbfb8f319c170980e92ebda16610d5692e936ee3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.923Z", + "updatedAt": "2026-02-24T10:49:33.541Z", "postProcessHash": "abb1c916320fffdbca7a9358d414b88ef4ed46eccc922a2b7a0d408a433a86e5" } } @@ -5469,19 +5577,19 @@ "94747a3cb7498dd41f7f7aaed2f670f003087b3543cf7752be3b39b62c021927": { "f7bca2db0af5de7e2c67ebc1c65c226c309288e7f073d34318c2747b6d1e9327": { "jp": { - "updatedAt": "2026-02-19T02:24:09.803Z", + "updatedAt": "2026-02-24T10:49:33.427Z", "postProcessHash": "303f063c889027de70b5be2e04aa27b1d58e67dbeeb65152fc3a4cbc92f0ef6e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.806Z", + "updatedAt": "2026-02-24T10:49:33.431Z", "postProcessHash": "a0ed8ed6ca3f93d905ebb6e605f938f1b831bfa26344bb00cd76939e641f8e15" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.806Z", + "updatedAt": "2026-02-24T10:49:33.430Z", "postProcessHash": "9b9052479db603ccd58855fbfa676e70b60c36a04e17aa0a91896a1c86de0341" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.835Z", + "updatedAt": "2026-02-24T10:49:33.461Z", "postProcessHash": "21a49929f183fdc3e632d6b00802717bd6abecec647c07132fb11056c93a8358" } } @@ -5503,19 +5611,19 @@ }, "b2a020d4641a625a7d32f09f597a79e79af168d56327e73598396921704cb0dc": { "ru": { - "updatedAt": "2026-02-19T02:24:09.886Z", + "updatedAt": "2026-02-24T10:49:33.503Z", "postProcessHash": "5ef9d3557fbc2348fde9ff4438c3f1a340d2da8341e57618d1c3c7420f8d8bec" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.886Z", + "updatedAt": "2026-02-24T10:49:33.504Z", "postProcessHash": "ead170b94ae4f39d0a0ea06f0e31ba5a701311bd6b8dcce7bc05d713acee5b8c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.888Z", + "updatedAt": "2026-02-24T10:49:33.505Z", "postProcessHash": "f2203de0c5f5e4b480ae5eafe6bb60b53875cadef65b626dd21a0921b3c5cb65" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.919Z", + "updatedAt": "2026-02-24T10:49:33.537Z", "postProcessHash": "4f2dbc7d2c6b9fe3572d20ef56bf3ac8161658d6baa16b50897f4a35d32f3416" } } @@ -5523,19 +5631,19 @@ "ba0db243d349404c81abcb5ac1b3df54c29742957ec4ab33b24830ddab68f7a2": { "1f879e7772ed8e095b07f85578bd401df3a64cd4e5498296092756cccd875121": { "jp": { - "updatedAt": "2026-02-19T02:24:09.812Z", + "updatedAt": "2026-02-24T10:49:33.437Z", "postProcessHash": "f9afae0926a14c77b3928769b0c3c8c03774da75c824aea4256ecf7608468f64" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.805Z", + "updatedAt": "2026-02-24T10:49:33.429Z", "postProcessHash": "26705e56e63a25acfc85bf50b4861ef27a61e47fc75c98ce0b81d96d9ffbeafc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.807Z", + "updatedAt": "2026-02-24T10:49:33.431Z", "postProcessHash": "9b271e677db8a214cf45ad39fb0b08a2ad10d221eea598f3a8acdddf4e38f21c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.834Z", + "updatedAt": "2026-02-24T10:49:33.459Z", "postProcessHash": "f4721e4682fef173e110c49a27adb012dc80f17f4544ecb02f0b1740cbc0152c" } } @@ -5543,19 +5651,19 @@ "cb8f8c1219ce7a92277d5329ae659c90b78edb06139fda7cb67e9143f6a4f1a8": { "708faeaebbf5c4dabd6c9a9eb715cafd5178cbb6ceacc376b982a574ba6496b0": { "jp": { - "updatedAt": "2026-02-19T02:24:09.866Z", + "updatedAt": "2026-02-24T10:49:33.484Z", "postProcessHash": "98d606493baa4f0810cc5013d19c5bfabadf8c2e8e618d3eb9ce4afd2f9a22eb" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.867Z", + "updatedAt": "2026-02-24T10:49:33.485Z", "postProcessHash": "6a1915d2f4e2a7a3e6fc21fd9a5e4570a9ee769604cdeb01b6266d2537fe608a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.871Z", + "updatedAt": "2026-02-24T10:49:33.489Z", "postProcessHash": "8a9fd17dc0c4d50254cd9b02dde416aacef804448349c3c573f3af3350fd6f25" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.912Z", + "updatedAt": "2026-02-24T10:49:33.530Z", "postProcessHash": "89d8423da318fc3da2875f47f5a237f4bd329e11a32c0d3938508a1917389b29" } } @@ -5563,19 +5671,19 @@ "cf42c21f80f60055d0087c0e795d8976b1d91223e0fe30f342746b23878b6c6d": { "6d3f845905f3f2b2a1be610957281c22628e8585866ee195f1e005cecbd69e88": { "jp": { - "updatedAt": "2026-02-19T02:24:09.819Z", + "updatedAt": "2026-02-24T10:49:33.445Z", "postProcessHash": "f7d25aa2f57de1b7e84f637a05fe53266e2ce7545ed5dc5bd4fb6f70fc140709" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.821Z", + "updatedAt": "2026-02-24T10:49:33.447Z", "postProcessHash": "ff8c59b8c9260147d422ff8f4a17a1aa8e6d403af10a0afe1dd71699f9f898e8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.821Z", + "updatedAt": "2026-02-24T10:49:33.447Z", "postProcessHash": "ce6adb9ac2bc5b92b02c5a9e468e7d6aa70efdbb1443b87d4af6f1ac47e39eb9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.832Z", + "updatedAt": "2026-02-24T10:49:33.457Z", "postProcessHash": "2ea397ba075d1e7e9dabab76fcdd6ff02e65b706b3b071b4b4b9da952f1ef10c" } } @@ -5583,19 +5691,19 @@ "d0e7cc516637ef8ff263a061c7c16bafdf014cfae7ce60448c7e0fcce8c6dfd7": { "e57a30777e558c8d76cfdd0c7355a7d8d9e150e93787b8eaedcd4f95150f489f": { "jp": { - "updatedAt": "2026-02-19T02:24:09.871Z", + "updatedAt": "2026-02-24T10:49:33.489Z", "postProcessHash": "d6da15d080aa6e47d68dde8490daaf1d80d2b6b3c85fa3ba5a25a2422b89a43b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.867Z", + "updatedAt": "2026-02-24T10:49:33.485Z", "postProcessHash": "4d04cdece0b4497d208aa688aa7953a859e9c005acbef9dc488a0c32e830fb8c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.869Z", + "updatedAt": "2026-02-24T10:49:33.487Z", "postProcessHash": "d48b531dadde6fbd6dfc87c99b3577f9c21006b2e1ac362f0dc8904bd554f97c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.976Z", + "updatedAt": "2026-02-24T10:49:33.600Z", "postProcessHash": "0ac176c0bdeef4f9cc1e05b009f737e566e92b14058e61f1a13fb52bd8d775cb" } } @@ -5603,19 +5711,19 @@ "dc560181da04dee98b254f616102cfdbf1969c4c794080bd3b5dd88e33f63287": { "f7b3da6309249ba57146453a20fb02f1da444cc9f6b9ff15796e49d19986d9d8": { "jp": { - "updatedAt": "2026-02-19T02:24:09.820Z", + "updatedAt": "2026-02-24T10:49:33.445Z", "postProcessHash": "3c637161ccdb2fcf3c3f3175eeb772378cbf5592d7f63939996e38afb6352575" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.818Z", + "updatedAt": "2026-02-24T10:49:33.444Z", "postProcessHash": "324dfc9c0f276821ab30ca6bba9ba5acb0bf1c06951fafec5c2ad6ac5faec627" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.808Z", + "updatedAt": "2026-02-24T10:49:33.432Z", "postProcessHash": "d7879c34580f74097a7553340d09a4a3244fb191e8e81e3259ccb3ccee44702d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.833Z", + "updatedAt": "2026-02-24T10:49:33.458Z", "postProcessHash": "c49569627402565c83585c0642ae285c30f639ec634eb061bdee4b724b4982a6" } } @@ -5637,19 +5745,19 @@ }, "b4b1f3d0d1f1a29db6ed49724ba39974c6a5dddd07202ba858b258ca9f9fab7f": { "ru": { - "updatedAt": "2026-02-19T02:24:09.822Z", + "updatedAt": "2026-02-24T10:49:33.447Z", "postProcessHash": "4948385b70b0ada527a2ae53da186a04a4d44a4dcec60796db5e731fa615f6d7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.823Z", + "updatedAt": "2026-02-24T10:49:33.448Z", "postProcessHash": "6d9acf4729f63d00984e0363f63e9c9ae92b88ee85fe06755012324dab999569" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.823Z", + "updatedAt": "2026-02-24T10:49:33.449Z", "postProcessHash": "f419625d68b253bd10c1c61efd9add57ba30781474542ef4e7c3756e729326b2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.835Z", + "updatedAt": "2026-02-24T10:49:33.461Z", "postProcessHash": "d0e9cfe47956b598a7d6f4dd43c823f576f502f96e053325a1919e86454ef228" } } @@ -5657,19 +5765,19 @@ "f362b87c61313b355b28fda5f77765651cb599066809f44030b3c1010865fa5c": { "498198cf31ab4d64e31b4a2d37da8c4597bed364756e0feb2aad51f2859ac1fb": { "jp": { - "updatedAt": "2026-02-19T02:24:09.813Z", + "updatedAt": "2026-02-24T10:49:33.437Z", "postProcessHash": "33d5a00e241c526b0a1e1309d496ea54f083f35b002f9d28ab3b85f2327aea58" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.805Z", + "updatedAt": "2026-02-24T10:49:33.429Z", "postProcessHash": "d0adaab362b9530944d514a397bdac0ca0638ba7032eecbd9dac6d0bdb71fa65" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.804Z", + "updatedAt": "2026-02-24T10:49:33.428Z", "postProcessHash": "0eb06e1385a90f669877f0239605b43cdefc42579e0eb2c2817c3e19fd6d9baf" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.829Z", + "updatedAt": "2026-02-24T10:49:33.454Z", "postProcessHash": "8e34e88e5ed0d51bb3cbb87064187cb399dcaf0d1cc3747cc2439c6a01bf7588" } } @@ -5691,19 +5799,19 @@ }, "7b5302e1655b03cd8bd48f7bfd86504063853cbf1fcaee4ec746ddadde20e5a1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.825Z", + "updatedAt": "2026-02-24T10:49:33.450Z", "postProcessHash": "1e1beb7bde9c69a57640543df3a251bc573203455f817cfbe34e5aad9431112b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.826Z", + "updatedAt": "2026-02-24T10:49:33.451Z", "postProcessHash": "a252434b523873c34175856c3c72ed10fbcee90c599a4e330bcea2cb3524fd2a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.827Z", + "updatedAt": "2026-02-24T10:49:33.452Z", "postProcessHash": "bf098709f8b4eda6afa734b0b0a3b6a941f62e1d20615733b609559f3ab34140" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.830Z", + "updatedAt": "2026-02-24T10:49:33.455Z", "postProcessHash": "0fa53942bdb45b7a239419a58955eb4d46ddb61a4ad4f893808bd2d063514357" } } @@ -5711,19 +5819,19 @@ "1370f12b87482a2e8d057a8b41e9ea94795da80127f778fde4628181bbdcc429": { "f8146d175696fd61b1124db8aa052124a23329de9472ab05df373240407f0ecd": { "jp": { - "updatedAt": "2026-02-19T02:24:09.941Z", + "updatedAt": "2026-02-24T10:49:33.562Z", "postProcessHash": "1e873d86309f85574f32383efecdb9fb930b011282f56e265513a398ae89a9e8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.930Z", + "updatedAt": "2026-02-24T10:49:33.548Z", "postProcessHash": "301c95022874df76d8e1154bb4cb35cb4601ac84ce474053ea023f698c181389" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.003Z", + "updatedAt": "2026-02-24T10:49:33.646Z", "postProcessHash": "82f6d803a81eba9638792c86bccc9d9f2390448b9749679ca64bac4eb6bab7d9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.035Z", + "updatedAt": "2026-02-24T10:49:33.675Z", "postProcessHash": "f9137bc179bed7552d24041d57c5a13164ce88a2e9ab5e0ae63d2967952c7c36" } } @@ -5745,19 +5853,19 @@ }, "38713d249b1de45d362b99c7e34a4877b25e7108956f5e06f59387d2cbe1dfc9": { "zh": { - "updatedAt": "2026-02-19T02:24:09.952Z", + "updatedAt": "2026-02-24T10:49:33.573Z", "postProcessHash": "f06db9859f69d4a21335f1375ead3366935debf54062713543a4e24b5f5d58ac" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.958Z", + "updatedAt": "2026-02-24T10:49:33.580Z", "postProcessHash": "e5d894aa81b4473ff17e151297eb91f136c71be034111fa415b12e9d9fcefb1e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.963Z", + "updatedAt": "2026-02-24T10:49:33.586Z", "postProcessHash": "7348c293cdd89b89557697ad2eca7975fa803e35dbfd7b031811804103cec0f7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.974Z", + "updatedAt": "2026-02-24T10:49:33.598Z", "postProcessHash": "8b0fa7788752d545f1cad0abfb3e03d9329fa755ee3143d146c18142ecfec7b1" } } @@ -5818,19 +5926,19 @@ }, "c1c634d92d802cabf1b71de606922f875038ca4936ad0d36adc199662053cf37": { "jp": { - "updatedAt": "2026-02-19T02:24:09.900Z", + "updatedAt": "2026-02-24T10:49:33.516Z", "postProcessHash": "ed068ac12f6bb5b80627410e19ee139e87ed40fdce2ff1a3d85f21a086bdb778" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.906Z", + "updatedAt": "2026-02-24T10:49:33.523Z", "postProcessHash": "5ca174c35151924b4536ce75910b801805bbf7fd3986222c8ebcbfc4c222a063" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.953Z", + "updatedAt": "2026-02-24T10:49:33.574Z", "postProcessHash": "d4fc462c3309987af8750c0a19802b83e69b1c09105e7b934eba06d54f899b3d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.964Z", + "updatedAt": "2026-02-24T10:49:33.586Z", "postProcessHash": "ffb2b0997bacbcea59548fd7ce972a0c3f5f902229967eb1fb48927945c31fba" } } @@ -5838,19 +5946,19 @@ "376f1f3d79070d024492b0852fcc46275cc6894795ef5c9378fe6a8039d04b64": { "57d1e9d86f14ce94f3b9606be0c45891a1cddf024b0cd28892082e2bebf224ff": { "jp": { - "updatedAt": "2026-02-19T02:24:10.001Z", + "updatedAt": "2026-02-24T10:49:33.645Z", "postProcessHash": "f66af2a2d4d43bb0953ee1ff7dcd2f410db623f701eb66d908d91dd216068a3a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.008Z", + "updatedAt": "2026-02-24T10:49:33.651Z", "postProcessHash": "dbe20e409bcacce5c6f500b81718769393ec4e9e4abca63de753a633f2be6091" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.938Z", + "updatedAt": "2026-02-24T10:49:33.558Z", "postProcessHash": "9a72ab91e0f29977095788254634ba6a52f18294acfdca2ded42f4d311240629" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.039Z", + "updatedAt": "2026-02-24T10:49:33.680Z", "postProcessHash": "32bd3efefe6661944de56669a4f5c790708bafa7206b5f9a2128b1f418724c25" } } @@ -5872,19 +5980,19 @@ }, "ba291f866998b73f4610686f041677c669c6535be19b9880a4168894431c5f6e": { "ru": { - "updatedAt": "2026-02-19T02:24:10.021Z", + "updatedAt": "2026-02-24T10:49:33.662Z", "postProcessHash": "5a1b75382f0dc6f509d53e9186bb2563730a2aee88119b752ddb1c5ca8ac5c7d" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.028Z", + "updatedAt": "2026-02-24T10:49:33.667Z", "postProcessHash": "ee8194237f167e438fb8688636f4e96dfd2cdcf7518028e381ec20b0c4b63f3d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.030Z", + "updatedAt": "2026-02-24T10:49:33.669Z", "postProcessHash": "b6abe3b7946dc432245c139cc100aeec1a19504fcf91ff858cd1fdb9f9b34f68" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.041Z", + "updatedAt": "2026-02-24T10:49:33.681Z", "postProcessHash": "90cb28be5d0e763fac0ff54890b5ebe1474d71a4eb456b5002dfcc2823534cde" } } @@ -5892,19 +6000,19 @@ "5315751710a23b80f9bf1ed7f31831d089dbe93c3c8fb90d20b7744073d0bf57": { "a66560c3d607504cdffd12261e02d0e673e576056f78a84ca9ecdf329603c56d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.940Z", + "updatedAt": "2026-02-24T10:49:33.560Z", "postProcessHash": "570fe747b07ba15910f402c6319bcdc3475ba87a80ef9dee4ffb5862aba2e526" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.944Z", + "updatedAt": "2026-02-24T10:49:33.565Z", "postProcessHash": "3166ffb9566517b88f910059f21f9dc965da60d5fbc1784c47e0f8e7e95f6eb6" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.943Z", + "updatedAt": "2026-02-24T10:49:33.565Z", "postProcessHash": "546fc325a01631f2ccf6db8eeaf2288ae0c5ae19231534c9d583881a8981a961" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.973Z", + "updatedAt": "2026-02-24T10:49:33.597Z", "postProcessHash": "3020d52ee40bfaf67848d9268e1a0b2c8a8042398383f9df2f61da1c80c956de" } } @@ -5912,19 +6020,19 @@ "8d92e8b825b034ea42c644cd23567811b46adb33b6d540b842b64c0196ff3b53": { "292f22bc13c3bd83386dc5ae82bec9ed457e6f79b25efab444ce03844d88e825": { "jp": { - "updatedAt": "2026-02-19T02:24:09.868Z", + "updatedAt": "2026-02-24T10:49:33.487Z", "postProcessHash": "3139e848f823d8cf6faf30a0f791bc7acfe6ec26be44ec2face02027f463f055" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.870Z", + "updatedAt": "2026-02-24T10:49:33.488Z", "postProcessHash": "21c8eca4facca5ad3501d1bb7d130dab97dfdf2cd9d8d1b2375f434eef4d86e0" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.870Z", + "updatedAt": "2026-02-24T10:49:33.488Z", "postProcessHash": "2bf8550e8078ca3b4d7217ab52eb82b39381bfea98673594ce5a9986b0da32ff" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.981Z", + "updatedAt": "2026-02-24T10:49:33.622Z", "postProcessHash": "9cae27c93a1823624519226cb52aae1b2b2367d7484569beb94cb88926e04843" } } @@ -5932,19 +6040,19 @@ "9845c4be459de6543c79bb52ebef31089a7b6dde5c4bcbf294e6b614cb8b73ef": { "f7ab2f792dc532d79e54d2172ab842ea8bb45d24fbea3c48d921219d21bb9a5d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.869Z", + "updatedAt": "2026-02-24T10:49:33.487Z", "postProcessHash": "93bce4d32ab5db2f91b371f21d628cd155e2a3d0248a193c722214cd2c16a0aa" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.868Z", + "updatedAt": "2026-02-24T10:49:33.486Z", "postProcessHash": "0178a1ef1a6d4fba521c24b96fa05d478c2b574553222bcd8ef20d94f9b86462" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.872Z", + "updatedAt": "2026-02-24T10:49:33.490Z", "postProcessHash": "b7b6a2a6d015e954123b5acc10604441daa7447003ac52dd9e216e43deaab86b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.970Z", + "updatedAt": "2026-02-24T10:49:33.593Z", "postProcessHash": "6d126d4908b94307860f71504b1d2b202da481a04450377a0fd78c37102cbe3a" } } @@ -5966,19 +6074,19 @@ }, "5f4a434da6b62dd9c4a06726cd92c8a661090c4983038dd32ee28fae18303bff": { "zh": { - "updatedAt": "2026-02-19T02:24:09.954Z", + "updatedAt": "2026-02-24T10:49:33.576Z", "postProcessHash": "d14c3383866ce78b46aa8792ebef65ae3b4d8e992ca637dffaa4c8e116954be9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.955Z", + "updatedAt": "2026-02-24T10:49:33.576Z", "postProcessHash": "7922d0786af8225169a8e187d155d1b8e828984acdcba0cb695b550303a66f79" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.955Z", + "updatedAt": "2026-02-24T10:49:33.577Z", "postProcessHash": "519b6c84465491baa63bb76c2edc8007ceb632375eac06a031e4e919727248ad" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.975Z", + "updatedAt": "2026-02-24T10:49:33.599Z", "postProcessHash": "d13ad35ab040947234e1a0042d45c3114e493c064694ab0d2d3d72b1b077585e" } } @@ -5986,19 +6094,19 @@ "9e812084882765188d8e23b9cfcbf9a3edeb29e9461a1cec110df416342b0289": { "e16e8324972fb51ec759f18c31f84b12438b5b468badc9732e3a35eecb40c277": { "jp": { - "updatedAt": "2026-02-19T02:24:09.937Z", + "updatedAt": "2026-02-24T10:49:33.557Z", "postProcessHash": "9a19284c66c3a6db1b31c936163d2af92c933dd6c100b2900ffe5023ff15615c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.005Z", + "updatedAt": "2026-02-24T10:49:33.648Z", "postProcessHash": "649bbba1a864bfdc4a1eec5b5805fd5dde5519441d272a7df87eca21c84dc2cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.998Z", + "updatedAt": "2026-02-24T10:49:33.641Z", "postProcessHash": "c4121be06ea555322fa7323f1ef84bd4240190790f9a5fcc1ed81e8e11e3f7ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.037Z", + "updatedAt": "2026-02-24T10:49:33.677Z", "postProcessHash": "4afeb921637cd5ff77a32d7c159db7d8b983e36af16b97633c9a5f1414da2917" } } @@ -6045,19 +6153,19 @@ }, "9c09ba6f54347fd86f9489de423f75cb92ee32cb9a1576f176af38d2503eea4b": { "ru": { - "updatedAt": "2026-02-19T02:24:09.900Z", + "updatedAt": "2026-02-24T10:49:33.516Z", "postProcessHash": "e93c91ec72f65556b3a8974ccb6f7922b1a0a8ddc489d5208020e2d915add67a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.903Z", + "updatedAt": "2026-02-24T10:49:33.519Z", "postProcessHash": "25086db364c44c77e17710899a916d624f3e4f06a3903b846fe4ec21685e024f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.951Z", + "updatedAt": "2026-02-24T10:49:33.572Z", "postProcessHash": "27a5b406891d5202f76d7abb4629ceb507c4c0b6180990dba18b61e1ba9a926e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.983Z", + "updatedAt": "2026-02-24T10:49:33.625Z", "postProcessHash": "5686cc0f5360b64efac57e08775cc7aa5f48c4cc2c1bb91404ddeaec844e5750" } } @@ -6065,19 +6173,19 @@ "a9a515c52dba44d2cbab844922d2f769a5af11a34775d83c1bd8d9c97e4bb6f3": { "85a2a4117446131c96b792674a9cf5594566bfe0b7f1098d2210537e80d0fb0d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.943Z", + "updatedAt": "2026-02-24T10:49:33.564Z", "postProcessHash": "77a98847fa5b5c163f6bd524aaca559688db487609597a5996b5913acf085de1" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.991Z", + "updatedAt": "2026-02-24T10:49:33.635Z", "postProcessHash": "fa5dd71e092cf2f909c05cf1d92c8a815cca3b5d5ee23ecd63dcef4e2eee3c5c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.993Z", + "updatedAt": "2026-02-24T10:49:33.637Z", "postProcessHash": "58eb9f1ece293ea70f12a055e70d41fa9ef1d75f9760c4f4e8615e852299857f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.036Z", + "updatedAt": "2026-02-24T10:49:33.676Z", "postProcessHash": "4c4f7cb55683f3af544ee396544dabeacef5f1779546ce0039ae752752a23a1c" } } @@ -6099,19 +6207,19 @@ }, "20cb0ab4e34893f9564bda3c9da018393e11a5ce8c29cdf79c61709e6f2c1af3": { "ru": { - "updatedAt": "2026-02-19T02:24:09.949Z", + "updatedAt": "2026-02-24T10:49:33.570Z", "postProcessHash": "16597a6316af86382d0bc318b01ef0fb3d1beb3886c0398be49b666bc75cbc43" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.953Z", + "updatedAt": "2026-02-24T10:49:33.575Z", "postProcessHash": "d2f589fbbb99a296409e0dfdb6ad691da78aca2246941e0eaeb779405fe0736c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.958Z", + "updatedAt": "2026-02-24T10:49:33.580Z", "postProcessHash": "9ee6c5de9d326e4609d6c93ca09652c4f99094bf6d37e83509dff96081c13445" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.969Z", + "updatedAt": "2026-02-24T10:49:33.592Z", "postProcessHash": "0456ea9c25d423a2879db225e7ec35e9433a8ad9dfb6a1b5cfa0f3ef15689202" } } @@ -6133,19 +6241,19 @@ }, "5eff6b219e27c9cc8e862e8b2772856e9b061e242fad9550648504808a51987b": { "jp": { - "updatedAt": "2026-02-19T02:24:09.894Z", + "updatedAt": "2026-02-24T10:49:33.512Z", "postProcessHash": "a39bce585def3d8993c21c13294d1c34300c812b30d033d5919c6664357dd867" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.899Z", + "updatedAt": "2026-02-24T10:49:33.515Z", "postProcessHash": "ce5d12084886188458cd20a68af3f995527a36d47f36640d2649cdb57f5be17f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.957Z", + "updatedAt": "2026-02-24T10:49:33.579Z", "postProcessHash": "6b82013b9dc6087cb7a9781ea9b872a6c54479000b624c3f35cdef15a9fbc60c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.965Z", + "updatedAt": "2026-02-24T10:49:33.587Z", "postProcessHash": "72930192c9c14c0ca0bebf739e5a4725ba7a8954ef7047a924d12ecac1ed8303" } } @@ -6153,19 +6261,19 @@ "bf09040d678e6760987c57861f7d46d0c83dc84b582441fa87e7ac9756c76f6b": { "ee66bac04fe1df0381e777810c8adb5c9d16229f663ce7ef30a2a0506899ac5c": { "ru": { - "updatedAt": "2026-02-19T02:24:09.993Z", + "updatedAt": "2026-02-24T10:49:33.636Z", "postProcessHash": "614ac053d7bfa3090f5d147aa204a6567f7c6ab6ea2e99ffbae92d9626115460" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.000Z", + "updatedAt": "2026-02-24T10:49:33.644Z", "postProcessHash": "bcec8581ddc49010b3017519ff2d1aa75e341d1426247f2e03b4e47dc0b5ced4" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.003Z", + "updatedAt": "2026-02-24T10:49:33.647Z", "postProcessHash": "3e3df195336eba4b0b7a53dd0c8b2b40b82bcfe8d10aeeb3900ad2e4cac237ff" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.037Z", + "updatedAt": "2026-02-24T10:49:33.677Z", "postProcessHash": "94aa7cf3fe899db46be509d13989f9bf363da411d25d8ca20115fcb873e097c9" } } @@ -6173,19 +6281,19 @@ "c50d8bd0ecc6ee24b7f928b73255956cae71fabfe25096539cdb974c7f167191": { "f1fb2f5d8ab4009a1d0458d1d0604ea822a372927443fb49fae37168711e0dc8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.011Z", + "updatedAt": "2026-02-24T10:49:33.654Z", "postProcessHash": "e3280b0c50af74d6bbfe726c2d9d07e7eda19e207281a7ee7c57e07e5af7ce73" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.010Z", + "updatedAt": "2026-02-24T10:49:33.652Z", "postProcessHash": "57819f5ea1ec87e765c1c9615800484d6c6a97263bbcb97b81530d7d1ad7d7fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.007Z", + "updatedAt": "2026-02-24T10:49:33.650Z", "postProcessHash": "bff67c9735785bfcfb6edc5e93988131c02b21b28471ba436015420238afde4c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.040Z", + "updatedAt": "2026-02-24T10:49:33.681Z", "postProcessHash": "102823a47d12883dd364001f1acba70c68fa1ee802767b791ce760fd2b312717" } } @@ -6207,19 +6315,19 @@ }, "a5cb1320a980bfd48d98c91a3b92609db8a0c92c2c9058b89669d8867479890d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.873Z", + "updatedAt": "2026-02-24T10:49:33.491Z", "postProcessHash": "e0b61fd299fda0b08d4af41c2973db3753b38aa3b146ef32761392645f72cf4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.874Z", + "updatedAt": "2026-02-24T10:49:33.491Z", "postProcessHash": "0a53eb91c0529925388822c7b2c5f4d236076f93a166a5dcc3f697731112041e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.875Z", + "updatedAt": "2026-02-24T10:49:33.492Z", "postProcessHash": "ebed3b96be28bbb8368ff2303bfbd13ded2f5b775f0b84aaaa01f9f9a83c29cd" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.972Z", + "updatedAt": "2026-02-24T10:49:33.595Z", "postProcessHash": "8bb120ff10940fa0a60290a0a1202f9d1d04aa38c4d6a812895a13f9017623fb" } } @@ -6266,19 +6374,19 @@ }, "1bee1cdf40f7662f7ead69abe38b4b9aee07d3df248b669bef04665b661cab5f": { "ru": { - "updatedAt": "2026-02-19T02:24:09.951Z", + "updatedAt": "2026-02-24T10:49:33.572Z", "postProcessHash": "b2a4cd6a1dc6fec2638c0b374bab2abc54939a667a4962ab249160bebf3cb055" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.954Z", + "updatedAt": "2026-02-24T10:49:33.575Z", "postProcessHash": "ce63e531733e90862ce3442573587181e67273e929da00ae7b0a21d4e5479aa3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.960Z", + "updatedAt": "2026-02-24T10:49:33.582Z", "postProcessHash": "a5117c0071b323ae7c8ffee38c8a7bf15e309f638ee87367dde4c07841217bc5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.978Z", + "updatedAt": "2026-02-24T10:49:33.602Z", "postProcessHash": "b2a666b05b7e50b7fe264b5b249b44941145e68029e90c10bb8e63b0c7a7e2cd" } } @@ -6314,19 +6422,19 @@ }, "62ce5f401ca72a35e8d69c8698f837afdaddb0a60f05f96721abd88d4eb2ddba": { "jp": { - "updatedAt": "2026-02-19T02:24:09.902Z", + "updatedAt": "2026-02-24T10:49:33.518Z", "postProcessHash": "8c40a2b959865f7dc0a71187bb9c088c7ec476d46801b66bddbd8512e6e8508b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.950Z", + "updatedAt": "2026-02-24T10:49:33.571Z", "postProcessHash": "70f66beb07a44ae4ae74f1ed2f12555d02bb3fb1826bb8133e944b8cc2c5cc12" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.960Z", + "updatedAt": "2026-02-24T10:49:33.583Z", "postProcessHash": "f4559bd46a45b68eccd09af9a8a40c8215fe7f3aedea3b46fa7f583997feed05" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.977Z", + "updatedAt": "2026-02-24T10:49:33.601Z", "postProcessHash": "380b1ee774dfd1ca6780062470f1914236d58a65937cc0c3a70da9617018d09c" } } @@ -6348,19 +6456,19 @@ }, "ba2541d7efdc1c0c588f238baa8b58bd3ff2e0a4f97c3685ff7a6d83cf6a383b": { "zh": { - "updatedAt": "2026-02-19T02:24:10.021Z", + "updatedAt": "2026-02-24T10:49:33.662Z", "postProcessHash": "ec9b0d1ee46b09f05d405deff6608793fc2d3e9813b3b9654e82b1cd53e2f2b7" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.024Z", + "updatedAt": "2026-02-24T10:49:33.664Z", "postProcessHash": "ebfb512b44e4e3de16f83532e589da4590870d7153fae2e8b4599a28bbd05a41" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.026Z", + "updatedAt": "2026-02-24T10:49:33.666Z", "postProcessHash": "290b3d1cdaea1959b653ebaf7e5e98ba3a749354a2231f2964b1fe9670869a93" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.035Z", + "updatedAt": "2026-02-24T10:49:33.676Z", "postProcessHash": "bf86d8546ca58bb827c3a4b9ac8519441a08e223679faebe19d87f9f55a743b4" } } @@ -6396,19 +6504,19 @@ }, "0242d2b27eb08ce6296753361ae0cc501d2915d53e833d4333714e093c789647": { "zh": { - "updatedAt": "2026-02-19T02:24:09.957Z", + "updatedAt": "2026-02-24T10:49:33.579Z", "postProcessHash": "fe110f5a3c1871ef708f8b41fd99851301bac2d2225e70f7a8a9954f03786ca7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.959Z", + "updatedAt": "2026-02-24T10:49:33.581Z", "postProcessHash": "da598f1c884509013d847cebfa577c1cdc355774e8169642749cb8e45a2e53bd" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.962Z", + "updatedAt": "2026-02-24T10:49:33.585Z", "postProcessHash": "6813be3741d6f9346aad4ad24d7fccfe534cfdd92c52b3a4da79f0bd60474476" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.975Z", + "updatedAt": "2026-02-24T10:49:33.598Z", "postProcessHash": "a7e290c868bdffd353c572c9375cc81db0610b97ad473c25b9271b38aabcea2f" } } @@ -6416,19 +6524,19 @@ "02291322e0d8f494b80f9d8e9c482282d8b548c6ae56afa37d022b164b99b054": { "14c2feb63b9f987820db166804e40ef404c44c5a695f647c2463bc6c7919d96e": { "jp": { - "updatedAt": "2026-02-19T02:24:09.996Z", + "updatedAt": "2026-02-24T10:49:33.639Z", "postProcessHash": "5e5c67095c734f24d6e7ff365c17d7aabfdff2adea17be77f8cfda48dbddc485" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.990Z", + "updatedAt": "2026-02-24T10:49:33.634Z", "postProcessHash": "9581f352971084ee1275d058f81e9a47707bb8ca63f0e1bfaf7147864d9dced7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.996Z", + "updatedAt": "2026-02-24T10:49:33.640Z", "postProcessHash": "75fd7ed0068c40da7df300cc15b0677209e7c604f8653f8903dc32033e8a7537" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.094Z", + "updatedAt": "2026-02-24T10:49:33.743Z", "postProcessHash": "0557d008581ec51e7e55df3f365c55a9ede0541e72195d4255d0444572376ebb" } } @@ -6436,19 +6544,19 @@ "13dade465ba8d6e7014eb44c3923f9c834a481123903922ddf6e33bb4ee775db": { "d6e6aa07741897774555a1f0eac0954dd331322344f830c9f304dbdca6fc532c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.010Z", + "updatedAt": "2026-02-24T10:49:33.653Z", "postProcessHash": "1d4b950ad68d2b86ecbf209b6a7545afa9cc7d9843a3c226931a4216bfda0ef3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.012Z", + "updatedAt": "2026-02-24T10:49:33.654Z", "postProcessHash": "d1ed33721e33a587992736fe1212104fd85f477543c6f245230a55a0e4292b97" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.012Z", + "updatedAt": "2026-02-24T10:49:33.655Z", "postProcessHash": "05ced7253e9c0bea926d82d0a15e355177c74db07ec2e7e6b82ecded10b6c1aa" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.101Z", + "updatedAt": "2026-02-24T10:49:33.750Z", "postProcessHash": "621e7d3115fcfa308c6539589c3a1e2c4983d7dc0057d506dc41ae49f0cad8a7" } } @@ -6456,19 +6564,19 @@ "1e6a9268be90fc10ba5ab851817ae61b0167c3ce6990f2a5d9ebdb1ee6eec11d": { "986717639b58978e5f1cc565ca5bcaef17e4babedbaaace23e272cc8c401372c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.011Z", + "updatedAt": "2026-02-24T10:49:33.653Z", "postProcessHash": "7948e89ada41458a1f5954917d7553866a04d6313a93a28c1ad855d2b7eb8316" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.008Z", + "updatedAt": "2026-02-24T10:49:33.650Z", "postProcessHash": "d4ba5b2ef553cde5ac60a19144ba1e724a3e2ffe7ff36f33758243baf3e9070c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.009Z", + "updatedAt": "2026-02-24T10:49:33.651Z", "postProcessHash": "adfe32d306e081b3aa4a1afa2b83929a2c592f08b4568fc5718705060741083d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.088Z", + "updatedAt": "2026-02-24T10:49:33.736Z", "postProcessHash": "4f88026ca843785aae3da937a90cdb3ef880649dfa41089b1f373fb82b74873c" } } @@ -6476,19 +6584,19 @@ "290372a9e8da36b9b0dbc38f3a77bf8307b785738d5ba00a31fddfd12681d63a": { "435164419830229ab742e3ae11858464c9c8878bcf4a2bb3d6166ec4642f545e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.014Z", + "updatedAt": "2026-02-24T10:49:33.656Z", "postProcessHash": "74407332eb129b6ff709101898c9ed0a5fe6e588d8e8ce270dc15566481dc729" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.014Z", + "updatedAt": "2026-02-24T10:49:33.656Z", "postProcessHash": "50f882d5ee4ef4630347ca3c5afd5bc2b6f2ceebeecab7b86e34f9ae613ec1a5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.006Z", + "updatedAt": "2026-02-24T10:49:33.649Z", "postProcessHash": "b54b2c6916cb59d9a6c305f444861e3d8ddeaca1cb8db32cdd65ffb7b4ac8b12" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.099Z", + "updatedAt": "2026-02-24T10:49:33.748Z", "postProcessHash": "4b0a50d3db3c343cb0dfafe4621292c3ada64f9e3f33f924c94462ea77fd6e7c" } } @@ -6510,19 +6618,19 @@ }, "eb7af1668d6e8bc3e3b978306336f1cac73e5d2fc573047aa4a8270631252ffd": { "zh": { - "updatedAt": "2026-02-19T02:24:10.024Z", + "updatedAt": "2026-02-24T10:49:33.663Z", "postProcessHash": "93b6eed85eb9da922af32d1ef2408b1760e762e11b73c9bf7074f358610b3779" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.026Z", + "updatedAt": "2026-02-24T10:49:33.666Z", "postProcessHash": "1758d6bca93f3e60c20cfc548fe2db6406443002eb98dc0ecc9ba765cb9e7fa6" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.031Z", + "updatedAt": "2026-02-24T10:49:33.669Z", "postProcessHash": "30e8ee7aac14a68a4c85456d1ab0181435a46c46e05157a7845a832f7640fc10" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.042Z", + "updatedAt": "2026-02-24T10:49:33.683Z", "postProcessHash": "059d685725cd0338150586a8ce594af88a3f91759301e3bca5f2d64562e651b5" } } @@ -6530,19 +6638,19 @@ "381da73f1de48015917a484d7c2e45bb2557d1a326b8ff4560cb55a72d1de6ce": { "58f15d2dfce6c37907b066f99ba2b6b1bad2cefdd56e52bb79e7839fed922624": { "jp": { - "updatedAt": "2026-02-19T02:24:10.009Z", + "updatedAt": "2026-02-24T10:49:33.652Z", "postProcessHash": "796b9f3aaa34a8f6a731a0d9c198105bdde4e478999393ff3ece9b310724fa72" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.002Z", + "updatedAt": "2026-02-24T10:49:33.645Z", "postProcessHash": "7a58759a71149c2e9a86b209f1880797fb5de0a6d4b347308f70d185b25b6fa3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.990Z", + "updatedAt": "2026-02-24T10:49:33.633Z", "postProcessHash": "aa917a6ed2b6f2f770a6cb59bb30f2f860c4aab75eaa3cb48b5ed1a711072f55" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.085Z", + "updatedAt": "2026-02-24T10:49:33.732Z", "postProcessHash": "b7d0059cd28e41716ed83ec2c41578d728aadeaa73d1fbeb8852882de0bf9fd5" } } @@ -6550,19 +6658,19 @@ "40b25bc5f9906b1b6c1e3fb64539dfc6d270a427153142c668cd16a039ebcb00": { "957d995119871468184ae861bc8fb42689e205013b5a1a037710ce22110de58f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.002Z", + "updatedAt": "2026-02-24T10:49:33.646Z", "postProcessHash": "6ccb116ad481982190fdbc99f2de47c5ec37865c6a194824eed4eeeea01ca9cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.000Z", + "updatedAt": "2026-02-24T10:49:33.643Z", "postProcessHash": "a2e59a4eb32d309f7e88c05b53c7f5853e25fd24b71e8e94606b103886f0cfd1" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.997Z", + "updatedAt": "2026-02-24T10:49:33.640Z", "postProcessHash": "4ed6c3f9c3ec913a4c0979964612e05b8f55d9f4e1481048063d21a6ac5636d2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.093Z", + "updatedAt": "2026-02-24T10:49:33.741Z", "postProcessHash": "ceb7838214eaa04a295311a902a98b751bf8391e1d06b04fe0449ff558490c7f" } } @@ -6570,19 +6678,19 @@ "52853976e012785457c250daee6b0280f9e8e88fcbc6a4a02eaf7315f2758fc9": { "35936f5dd5b5ed9baf260d39b24862296fecf4c8c909f41e2a0999a8db0a3772": { "jp": { - "updatedAt": "2026-02-19T02:24:09.992Z", + "updatedAt": "2026-02-24T10:49:33.636Z", "postProcessHash": "723a23da436a4ce10b94d77243f92b49d581d4ce7885222506a89cae52498e01" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.994Z", + "updatedAt": "2026-02-24T10:49:33.638Z", "postProcessHash": "16de56cbb392711088de02fc488bc63441726fa552f5a989122f0705628a1ed7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.004Z", + "updatedAt": "2026-02-24T10:49:33.647Z", "postProcessHash": "5928c3b65a2a3180cb6591e12198142eb5103c61996c5eff2a67e34d29b11318" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.084Z", + "updatedAt": "2026-02-24T10:49:33.732Z", "postProcessHash": "18cb502b8606c34b50f072cbfe4f4dbab77c8008edff4b5f014c203b1ea62492" } } @@ -6590,19 +6698,19 @@ "5a2a174332bfb9a0cdf7cfe65d8e91568153937327d15d632b2c09aba2aba728": { "e8ae2af14396db3064dca28b82c864d44d320c9ce456d8e334f9b158902bf4fe": { "jp": { - "updatedAt": "2026-02-19T02:24:09.942Z", + "updatedAt": "2026-02-24T10:49:33.564Z", "postProcessHash": "06387f183c0be3e026b1042838b13f42af9edeefb0d0dbfb1e8e07d53f3f75f9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.006Z", + "updatedAt": "2026-02-24T10:49:33.649Z", "postProcessHash": "d4ecb1a4e4a999f3e4a6a8e0ad6c574a53c7d062aad0b94473c9cdafaf8d6b4d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.999Z", + "updatedAt": "2026-02-24T10:49:33.643Z", "postProcessHash": "38e8dd39c3a7ad96f100491e18ba3c52ef5a2773a8397fd813385c7ca2fed785" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.038Z", + "updatedAt": "2026-02-24T10:49:33.678Z", "postProcessHash": "feaa2ee7bc322fab90816978627a1f3194b2794280fb25280bac69030a12f22b" } } @@ -6624,19 +6732,19 @@ }, "d995c1fa66038fb4b1db03ddc9316229f7db5e4f0db9144c170218a916d3cb73": { "jp": { - "updatedAt": "2026-02-19T02:24:10.020Z", + "updatedAt": "2026-02-24T10:49:33.661Z", "postProcessHash": "d7f2758fc83d80385f0e0de9625ac4dcdc075f35dc48d646dead5924e829d317" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.025Z", + "updatedAt": "2026-02-24T10:49:33.664Z", "postProcessHash": "3287d488714e7ad02ac7abd9e558b2fba568fff449a393a3c252eb13cbc145d3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.025Z", + "updatedAt": "2026-02-24T10:49:33.665Z", "postProcessHash": "7ce52787aa1dc802b4cb3f458072787ce1cc7851dcd9347416fe772ecb7f206d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.092Z", + "updatedAt": "2026-02-24T10:49:33.741Z", "postProcessHash": "e33c8bdd80e4d33020b9d695291e7df3a259c3ec6ddef2b6b206c2d65d93684e" } } @@ -6658,19 +6766,19 @@ }, "eaf3146033cfafad9c15d7344c47636883755c2e93107f06f03665529902f1cd": { "ru": { - "updatedAt": "2026-02-19T02:24:10.015Z", + "updatedAt": "2026-02-24T10:49:33.657Z", "postProcessHash": "3e7d45f10f690db9ba714877e5895e32b5cdcbaa7367ee34bb93ab6793524853" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.015Z", + "updatedAt": "2026-02-24T10:49:33.657Z", "postProcessHash": "e47201623d00b493d0bc6af2a30421046745b8226e1201796183e1fd46ff9285" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.016Z", + "updatedAt": "2026-02-24T10:49:33.658Z", "postProcessHash": "ff0b7d8bbe033080aad44990d9ada71cc837cb84310dad5957be871194a05f2e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.038Z", + "updatedAt": "2026-02-24T10:49:33.678Z", "postProcessHash": "47d0f2a4b48fc330124c2e27c4126b6d6d5b02679cee8130e9ef9ebfa9b15dd7" } } @@ -6692,19 +6800,19 @@ }, "c69c62ff3a848969d71d1cd2bfa4019e8ad1bf4d7634d0a9edb2f78777fbf163": { "zh": { - "updatedAt": "2026-02-19T02:24:10.023Z", + "updatedAt": "2026-02-24T10:49:33.663Z", "postProcessHash": "f0cc604ba59560dfa56328964d7ddb2bac61e8aa393113d2519cffeef2f3c321" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.029Z", + "updatedAt": "2026-02-24T10:49:33.668Z", "postProcessHash": "ed3738e7a1481f1e7081a21208c450383a6cff06065d0820f7b43460a433055f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.068Z", + "updatedAt": "2026-02-24T10:49:33.673Z", "postProcessHash": "ad0b52c50ee3f7a87517eefc3e07d2b7dabb999749f395e4e9804020f7d96db5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.086Z", + "updatedAt": "2026-02-24T10:49:33.734Z", "postProcessHash": "862296c3e897204cf00a23a4d9b9f467b6a85acf0da1a41d50caa24abb7addff" } } @@ -6726,19 +6834,19 @@ }, "5eed1182dba6abe4cc91917f7706ddfbddd873377f41ede8a4ac404f8d9a84f5": { "zh": { - "updatedAt": "2026-02-19T02:24:10.016Z", + "updatedAt": "2026-02-24T10:49:33.658Z", "postProcessHash": "38a8f52570fef8b21959b9ffa5e96705b27e650aa582e03384d34680760cd3f2" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.019Z", + "updatedAt": "2026-02-24T10:49:33.660Z", "postProcessHash": "6c4cec5302665776099f5fc1e30215bd2cad14c6aa56b15ace34eca0805d76cc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.020Z", + "updatedAt": "2026-02-24T10:49:33.661Z", "postProcessHash": "0527f8341b1e09ff4dcb6916602e3cc745fbfbdd91856c25cc184aca704c3d06" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.098Z", + "updatedAt": "2026-02-24T10:49:33.747Z", "postProcessHash": "a0456cfd97d538652ea0bb1df146d39070c0976aac54474484b8ca9433dd6d5f" } } @@ -6746,19 +6854,19 @@ "81e55d728a63e9d9620a0aa9a0f3152c86d8f4228a2480791e9cad5a8de39a05": { "0a7dd0ec6b5989e1b77f3754697c20347971441c557b816d890bf2b9648ca561": { "jp": { - "updatedAt": "2026-02-19T02:24:09.988Z", + "updatedAt": "2026-02-24T10:49:33.630Z", "postProcessHash": "8033643e3d7fd14e6bf2f9fde05016f75df55da8da55ae75c80782aabad53775" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.987Z", + "updatedAt": "2026-02-24T10:49:33.630Z", "postProcessHash": "78a73c41ac58b791b78bb7aa641114e81719f2d845ec2579b7e38a6e75331156" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.989Z", + "updatedAt": "2026-02-24T10:49:33.632Z", "postProcessHash": "fe4c3778fc8f5117e94f336f4ec8e6a609a3163c6431e5c6e941de7f0ae99c2e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.095Z", + "updatedAt": "2026-02-24T10:49:33.744Z", "postProcessHash": "b35b35bc6aaa8b717a6e4dd1030144ba5f7474573ad4282459295fef1e9e1af3" } } @@ -6766,19 +6874,19 @@ "99dad4c2046d97de9c9a10225dad41defe9ab46dd46ee1ebf18685fa87671a2e": { "06b367fa8b09d7fd9415ccb9f2fa0fb03df266adda026a80d2f81729bad14302": { "jp": { - "updatedAt": "2026-02-19T02:24:09.927Z", + "updatedAt": "2026-02-24T10:49:33.546Z", "postProcessHash": "f38d9898ed91027192d16418b313041197d7d1c50f7b22690203046a834ae9b7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.940Z", + "updatedAt": "2026-02-24T10:49:33.560Z", "postProcessHash": "a97b7f1b2b2f4ece6d71ddd8ca70ebaca24bc70238f2228df1cad6586f4b5a68" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.013Z", + "updatedAt": "2026-02-24T10:49:33.655Z", "postProcessHash": "1e3ea7652ab01e152ab3a38650faebb3a2157535a5e793eff9eb76295b394ae9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.036Z", + "updatedAt": "2026-02-24T10:49:33.677Z", "postProcessHash": "6d2653dd87d038152ae90fbbd3fb89669730bb7e2ac03a8955813f9545f3aaac" } } @@ -6800,19 +6908,19 @@ }, "d38a9fe78d6204fe82091f52ac28f219f510594c5b8fe4c865d49e67f534c121": { "zh": { - "updatedAt": "2026-02-19T02:24:10.027Z", + "updatedAt": "2026-02-24T10:49:33.666Z", "postProcessHash": "12f16c9e7a8163d8026a5a8d271d6cc91701ace38831b12faa013272b9f58b2a" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.032Z", + "updatedAt": "2026-02-24T10:49:33.670Z", "postProcessHash": "9369447bda5ef2414921653be5809c40e9d42405038726e7023d05f09a6a8cd1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.034Z", + "updatedAt": "2026-02-24T10:49:33.674Z", "postProcessHash": "3ed623dd13e089b59be712afe1ba884560335d500ad79e720dc484a2cc266092" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.039Z", + "updatedAt": "2026-02-24T10:49:33.679Z", "postProcessHash": "55ffc3241fc4cb33918bbd85e6ca49e1303dc88af6549bc39a8cbec6b6adfdca" } } @@ -6834,19 +6942,19 @@ }, "983434585127751b38e37325e5b9b465d9ea21879f99a44a81db2f0e1e091dba": { "zh": { - "updatedAt": "2026-02-19T02:24:10.028Z", + "updatedAt": "2026-02-24T10:49:33.667Z", "postProcessHash": "a50531ad414cfc236b79076f6421e78590dc030a9a99a55b14de34aca191c1a3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.032Z", + "updatedAt": "2026-02-24T10:49:33.670Z", "postProcessHash": "c235e48eeba15c32788056a8d75d20c6a9c33129db8c6b4336d15226cdb02273" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.034Z", + "updatedAt": "2026-02-24T10:49:33.672Z", "postProcessHash": "e312d0fe0890dcde4856706e84326c7436555ac08b03d8bc0a4d2f803f4da392" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.040Z", + "updatedAt": "2026-02-24T10:49:33.680Z", "postProcessHash": "ff112e8bbb67a206ac6db00a4ff25d97839962df481268e317090ce17edea96c" } } @@ -6854,19 +6962,19 @@ "cd73972a4d037347d81b6309d5ebdd4973e65b4708a5a1c61e961a7e349f0783": { "9206b8172e5adaad17f8c6eb0cded1360735c838b0a3363c600dce6cc6abbcef": { "jp": { - "updatedAt": "2026-02-19T02:24:10.017Z", + "updatedAt": "2026-02-24T10:49:33.659Z", "postProcessHash": "0e563ecf42aef999d5290c3cb2d28c0a69e4fa818ce4b709dff126851595f4ec" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.017Z", + "updatedAt": "2026-02-24T10:49:33.659Z", "postProcessHash": "f1babfd323a2560752cb92eb77bbac663cc8cef6d6dbe37cfac6daaf411aba25" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.018Z", + "updatedAt": "2026-02-24T10:49:33.660Z", "postProcessHash": "d429322ba8e52e3c62bdd27cfa3b388a9776744ac7ffcf87e95d147bcde3d75c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.084Z", + "updatedAt": "2026-02-24T10:49:33.731Z", "postProcessHash": "15d4e8c73acdd5b3952378214beeef003f0b5dce8e0f4c0a7d712f1bc517531e" } } @@ -6888,19 +6996,19 @@ }, "036e5e6550af52cab62cabd57827d93d481671bb67b8070a21e703d4f0d3f507": { "zh": { - "updatedAt": "2026-02-19T02:24:10.029Z", + "updatedAt": "2026-02-24T10:49:33.668Z", "postProcessHash": "c4a8668b58edc205ea350ef540e99ce3f5fd450bc0bfaa6bba3e30b82672fe56" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.033Z", + "updatedAt": "2026-02-24T10:49:33.671Z", "postProcessHash": "8cd0a66ef038e3f3b2a63bfd174050dc7b31ad5ff49c78cffd42a0c8592c4f23" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.067Z", + "updatedAt": "2026-02-24T10:49:33.672Z", "postProcessHash": "b62b762bdd553bb083a4cf264408eb2e62c1797af620e2f7e20e90ba8ef29fef" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.100Z", + "updatedAt": "2026-02-24T10:49:33.749Z", "postProcessHash": "3aaa3d4f7871ff1b593d1af74ad4de50289e4780144446774361f7a7f037e1b0" } } @@ -6908,19 +7016,19 @@ "fd4807eb1e777b66ccc79335d7b822af7ba8bb6dcbbf18e3ae8c53f548f20928": { "455e4d7b70315644264125e3a1e3a329d14b945c29bd48454b379b5247f97bdd": { "jp": { - "updatedAt": "2026-02-19T02:24:09.998Z", + "updatedAt": "2026-02-24T10:49:33.641Z", "postProcessHash": "ea4b9ff946a8d205811d1c655e3308eed9c53192b956c9e1d604c7d816e057d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.999Z", + "updatedAt": "2026-02-24T10:49:33.642Z", "postProcessHash": "f871d027c4aeabc46b7e8215d1a95a313ee72fcb9d8028d702cf5eb788b94b8b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.991Z", + "updatedAt": "2026-02-24T10:49:33.634Z", "postProcessHash": "715f0c4139d7984bc9eabbfa98a8f1972608d6e624357d9751437a887b18f472" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.035Z", + "updatedAt": "2026-02-24T10:49:33.675Z", "postProcessHash": "03dc173437056973e0073a2e160db464b71778911b04a366b77b11adce51e892" } } @@ -6928,19 +7036,19 @@ "fdc92b085b658968ee987d63323feb976df8a0ac7995cde6f13318c84abd0c59": { "7843455825f9c1828f408c376329311aba7d3c1e14b345e73ef9ad5b93e5b005": { "jp": { - "updatedAt": "2026-02-19T02:24:10.005Z", + "updatedAt": "2026-02-24T10:49:33.648Z", "postProcessHash": "91807a28ac9fb453bd52adcf7ea0400a5bc6f1002dc37b04f006e052481a57b6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.001Z", + "updatedAt": "2026-02-24T10:49:33.644Z", "postProcessHash": "54cadf0879dcf1b8b9649dbcadec3e11d0058eda2d9dddc8e721b8b4052514a2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.995Z", + "updatedAt": "2026-02-24T10:49:33.638Z", "postProcessHash": "d6561b177e35f6df00d05a19ea568939b7b80b18f70ca6ab2e5dfcafeb1e0b93" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.041Z", + "updatedAt": "2026-02-24T10:49:33.682Z", "postProcessHash": "a3f05c1dc42c60e6df39a9364f43112bb008b897c2f0caaf93435e8872f364e5" } } @@ -6962,19 +7070,19 @@ }, "f73d712822089e63e2f8ffccda26344c2d30777b35194de58ec2e20c9df3c975": { "zh": { - "updatedAt": "2026-02-19T02:24:10.058Z", + "updatedAt": "2026-02-24T10:49:33.704Z", "postProcessHash": "7c98c612259540f38fee8639408e233c41cae7331edfc16230307f31e70cf85a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.062Z", + "updatedAt": "2026-02-24T10:49:33.709Z", "postProcessHash": "c004e4f6cc6c6b0993d057f5424488b5b8ea59afd26218d91ad904fa534ab24c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.062Z", + "updatedAt": "2026-02-24T10:49:33.709Z", "postProcessHash": "7f9f5da17d0622c972a2181950fdd2e5edacfe692fdad85da998b4ad8bdbefa3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.101Z", + "updatedAt": "2026-02-24T10:49:33.750Z", "postProcessHash": "da8d1989ca21a49b3a57d7131eec8e629d93a283de65124ffa14a3de3ee77de7" } } @@ -6996,19 +7104,19 @@ }, "707ef06b299a5c16f78c7cd87992248d24e4234e7f727eb9f6dc98364d5c4691": { "zh": { - "updatedAt": "2026-02-19T02:24:10.077Z", + "updatedAt": "2026-02-24T10:49:33.724Z", "postProcessHash": "988b26dbfea933f11175351b9110c83c196ebe4ea3d39e6bf7698d388aec5578" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.081Z", + "updatedAt": "2026-02-24T10:49:33.728Z", "postProcessHash": "1a0707cb9834e34a9ffb3cb13e8c4208273cc9b9612123d926c86b3153616451" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.069Z", + "updatedAt": "2026-02-24T10:49:33.716Z", "postProcessHash": "8989dd7684eb0989081f3791e55468a48ce62a9b68303e81c4bebef197abe96b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.099Z", + "updatedAt": "2026-02-24T10:49:33.749Z", "postProcessHash": "1002e78af49eb6973f271199a5d2d0e5454760329823a02f8fd1bef1175def11" } } @@ -7030,19 +7138,19 @@ }, "b8fead293721fcbaf1150c08c162709243591e9622ce7f6f75e2672a54701a27": { "jp": { - "updatedAt": "2026-02-19T02:24:10.070Z", + "updatedAt": "2026-02-24T10:49:33.717Z", "postProcessHash": "ac49c4520fe9523467b6ce38ab7c80de5998736db401195d1b18ef9994c7ab72" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.073Z", + "updatedAt": "2026-02-24T10:49:33.720Z", "postProcessHash": "d27f13db901e0ffd8793409d0c7711588d4e32839a35f836e11d6c7006c57e56" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.076Z", + "updatedAt": "2026-02-24T10:49:33.723Z", "postProcessHash": "79a48d02a9ac8877f6a343840be00ae20c5215876e0094204783b470314dec51" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.097Z", + "updatedAt": "2026-02-24T10:49:33.747Z", "postProcessHash": "93259ac916632fefd34ccc0a444b5bb4a54aeff0cb2934205a022b4837c8fce2" } } @@ -7092,19 +7200,19 @@ }, "3c05aeb53c2372e823ad16af8ffb8c89b32cc7545276aa057d677006c0525992": { "zh": { - "updatedAt": "2026-02-19T02:24:10.065Z", + "updatedAt": "2026-02-24T10:49:33.712Z", "postProcessHash": "4da375d67f31c714b4f71f61c7a746e3ebb86b187387c784a9de21a47b95fbc9" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.065Z", + "updatedAt": "2026-02-24T10:49:33.713Z", "postProcessHash": "eb91587d37ad8e521a2fe5b3a44ec0bb5316f60566cc43c10d989c3030a39fca" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.066Z", + "updatedAt": "2026-02-24T10:49:33.714Z", "postProcessHash": "4276d25c450019578e868200c63b09300d5929f0f18f396d952178c86ab1d3f5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.087Z", + "updatedAt": "2026-02-24T10:49:33.734Z", "postProcessHash": "a5af392022ca97232e31c70a957cf9229836bfdd950edeebfe484c810b45ca8c" } } @@ -7112,19 +7220,19 @@ "3e5df6c1938919084ef3c24cc3aa0a9f834e4dc5475270adb64943fc1f2c818e": { "a27fbee07ebfb6548a8a222874fceb3def1e176c740f36e8bb3fa452c9d32b53": { "jp": { - "updatedAt": "2026-02-19T02:24:10.054Z", + "updatedAt": "2026-02-24T10:49:33.698Z", "postProcessHash": "ffadb25eb9d51fdfc9d4f2cb18c4b6bf5aba37df97dbe707f416e9143ec8f517" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.050Z", + "updatedAt": "2026-02-24T10:49:33.693Z", "postProcessHash": "919a5042c1007e7c456a200212f780c7491813685bc313662057f347e55d9f11" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.049Z", + "updatedAt": "2026-02-24T10:49:33.692Z", "postProcessHash": "2f271e1a7beab8b688c8d1a770752e15dfa7fdaa464470359ff1f276ca09b1fa" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.086Z", + "updatedAt": "2026-02-24T10:49:33.733Z", "postProcessHash": "d76378a284b8c719e380c694781d8d206aef4e8422ade376b59cb49a0df6244f" } } @@ -7132,19 +7240,19 @@ "44b3f5422fc4c4f447ece76e0f8066bb34f3affc30e7419ca74089bfa8055925": { "b2e193e55be108c5582fcb93204b7255923583e86eda8e23c2ec5a7fb530f958": { "jp": { - "updatedAt": "2026-02-19T02:24:10.046Z", + "updatedAt": "2026-02-24T10:49:33.688Z", "postProcessHash": "c7e691a28edb674f2adaa1e365cce55f51cfdaaed040ddcc76ff0b5fd1eb057a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.048Z", + "updatedAt": "2026-02-24T10:49:33.690Z", "postProcessHash": "58f74551fe99693f2d2584ec891bb5946be8831cfa5f6fcb08709d6c56112241" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.046Z", + "updatedAt": "2026-02-24T10:49:33.688Z", "postProcessHash": "10da1772efc4f97a3c93ae6dd1e74b262a69be8803cad9d676c411ca94f56916" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.087Z", + "updatedAt": "2026-02-24T10:49:33.735Z", "postProcessHash": "e5b33f5229efb73591a12ec4b0a99eaa47993240e5ff44ef2add46e6c03020ee" } } @@ -7181,6 +7289,24 @@ "updatedAt": "2026-02-19T02:24:10.102Z", "postProcessHash": "a4b07eac0c4d25857c60788194bee2f3dccac3aab08ca92648829d4072746444" } + }, + "d52bfb53957b273483bdc16ebd33a17d8df5be6eb9ab6d3a9e1ada36f11fb27c": { + "zh": { + "updatedAt": "2026-02-24T10:49:33.751Z", + "postProcessHash": "acb75cd6d79b5ceca4fc0ec7deaaf9ad79ac2bf07b11a140587dd3c9bdc4d29d" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:33.752Z", + "postProcessHash": "3fe2543352d3e33e73d0b01bee5ec5ad9222d07f36aac2dd6caedf4c887d3d76" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:33.752Z", + "postProcessHash": "9d826aa33666c17d6b33a98cc088c28a0aa117754222300ac9bc619a5909cb24" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:33.753Z", + "postProcessHash": "79248f5577e6fe936c9a312266f81a34b5f3f192fb0788c90092bbae7d30bde6" + } } }, "80d3d6543dd83a7957930d9045025b4815c1307c41a15c290f7acf0eae734cda": { @@ -7200,19 +7326,19 @@ }, "820f633ff52cd3e2c5081f641383ede4c90dc56f071ee1cd29396f147a6a5105": { "jp": { - "updatedAt": "2026-02-19T02:24:10.073Z", + "updatedAt": "2026-02-24T10:49:33.721Z", "postProcessHash": "012545ea61907ab694b52ff3138b3b232cd94f7f571bcb1a863218f77b287c8a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.077Z", + "updatedAt": "2026-02-24T10:49:33.724Z", "postProcessHash": "5e3d3d81ee4a5af32b0ab1124852a12c1922320aebb809c6e87bc2a2a6a44ae7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.082Z", + "updatedAt": "2026-02-24T10:49:33.729Z", "postProcessHash": "f6e37d9e9dc19a9698ca937aa037127fdb969fd9c7a33154bcfdcdbe98216f12" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.091Z", + "updatedAt": "2026-02-24T10:49:33.740Z", "postProcessHash": "714c2810c0248ef3a49957b78612beeb4acef6e1d8ac82015d6d960291ae901b" } } @@ -7248,19 +7374,19 @@ }, "61f8ef2b6831079ab996ce158643ceba96b06dfbf87002c1466e516238692b72": { "jp": { - "updatedAt": "2026-02-19T02:24:10.066Z", + "updatedAt": "2026-02-24T10:49:33.715Z", "postProcessHash": "e4b5ae3dbb00cd7c58a0d332e6146c59632a60a4acb2c7b7099824b5171e8e4a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.071Z", + "updatedAt": "2026-02-24T10:49:33.718Z", "postProcessHash": "d6d4cd951983c00d59be56514850309351205a30efa79631047c493e098b3276" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.074Z", + "updatedAt": "2026-02-24T10:49:33.721Z", "postProcessHash": "93467d5a5c8e51c862fb6a0b5088d04ed6b41609117ef91e76352b5827f36ece" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.089Z", + "updatedAt": "2026-02-24T10:49:33.736Z", "postProcessHash": "cfc28179a9a2b7da70dd831a55eaf5ff856aa3e38dc29102dac3ba98ce7aa0a2" } } @@ -7282,19 +7408,19 @@ }, "068b866e905fa187dc260851cad1758bc6071a6e8a843fc9d5142233d965f268": { "ru": { - "updatedAt": "2026-02-19T02:24:10.081Z", + "updatedAt": "2026-02-24T10:49:33.727Z", "postProcessHash": "a3fed9f6271c768e93439dcc590f637d6ddda8f51f28139d30ab814d31abea46" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.082Z", + "updatedAt": "2026-02-24T10:49:33.729Z", "postProcessHash": "696965858cecb36c6ff723284cd774f34981568f62135b1b9a210106d0629981" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.083Z", + "updatedAt": "2026-02-24T10:49:33.730Z", "postProcessHash": "150987d213143530ad89788b583f0fdb4babe4009ffc903e417bb18f4a973342" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.093Z", + "updatedAt": "2026-02-24T10:49:33.742Z", "postProcessHash": "7506a216353a62eeccecf6cffe2f0eae742db37857dedcb7e2c0a9b3602a56c4" } } @@ -7302,19 +7428,19 @@ "99393522afef2d07d814a10cdd78d55ffbbf63cbc84caf67a25cbbb6702d7b29": { "df2e38e726ad5701168a107a3233f7e582b27aaddc17196034ab06c247a2cbb1": { "zh": { - "updatedAt": "2026-02-19T02:24:10.049Z", + "updatedAt": "2026-02-24T10:49:33.691Z", "postProcessHash": "ac5e7665efd5a4780ec15b114360f595c32fc99891e093410cec5c95123ba9cd" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.128Z", + "updatedAt": "2026-02-24T10:49:33.777Z", "postProcessHash": "e8e2d44df597d429ffdd5a854273e06c3c7d6d70069b70ed4d8581ecd71f7746" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.050Z", + "updatedAt": "2026-02-24T10:49:33.692Z", "postProcessHash": "346355fe27488ccfe9eb890dc7ab00d0825d720b19df3d9ce8fc3dbe876dc009" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.166Z", + "updatedAt": "2026-02-24T10:49:33.840Z", "postProcessHash": "044a0216034d0bdc13272bc75f28044d3bc45604c14ae1ee6a95bffa20be107f" } } @@ -7364,19 +7490,19 @@ }, "c2773eced9fa3075a53037c7785ba372be3de0b83f8d621d6ef0dea76d4a58cf": { "jp": { - "updatedAt": "2026-02-19T02:24:10.140Z", + "updatedAt": "2026-02-24T10:49:33.806Z", "postProcessHash": "619d29c36642fe73712b30b1d1aa0e34156e6452905b7a6ab948719091e62cb3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.142Z", + "updatedAt": "2026-02-24T10:49:33.809Z", "postProcessHash": "b5dd6f779cad20c3dee5d9c207f6e6abc193956d6d0746f034815021f1cca975" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.147Z", + "updatedAt": "2026-02-24T10:49:33.813Z", "postProcessHash": "dab55bea869c63f0e75f7d8b65c15a1acafb20feb2f2bc3abb4c5cdb1705313f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.165Z", + "updatedAt": "2026-02-24T10:49:33.839Z", "postProcessHash": "a1f7a87b0e5a1e4150e42bcba0bdfa2db9be03ae273e64f87ade1e36ec116f8c" } } @@ -7426,19 +7552,19 @@ }, "5988c1343986ecbbd8dce592c64e305303391363b7b1bbe175f6a497542e866f": { "zh": { - "updatedAt": "2026-02-19T02:24:10.135Z", + "updatedAt": "2026-02-24T10:49:33.785Z", "postProcessHash": "0db7ee18487741950db4c14ce49d8b8ad368660d3901c62adf3ad08af0f4981a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.138Z", + "updatedAt": "2026-02-24T10:49:33.787Z", "postProcessHash": "09bcd6d7cced24f86c5fff25d6d36b64315f17690249a2b60b479b984f1c050e" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.140Z", + "updatedAt": "2026-02-24T10:49:33.805Z", "postProcessHash": "96543a14a0332233ccac918e6715860073777084ff3f44fe6e60704d78660e45" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.167Z", + "updatedAt": "2026-02-24T10:49:33.841Z", "postProcessHash": "171d19b4c08f8e531255dbdb1449254f437768bc5eb7d8041d92235d4351f5e3" } } @@ -7460,19 +7586,19 @@ }, "12e59e032091e2786538e461d5926f9a1c99fcefa8f9512d7441bcfa56a9d71c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.033Z", + "updatedAt": "2026-02-24T10:49:33.671Z", "postProcessHash": "9d78e3252d11c8921dd9cf398f6fe0fdb22b55d8a0043f3ea25b8cec347492e0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.072Z", + "updatedAt": "2026-02-24T10:49:33.674Z", "postProcessHash": "6d3c93b8f0b7af6e4435a16a788b74a6c885c5aae04c913c5741bd8eac899196" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.075Z", + "updatedAt": "2026-02-24T10:49:33.722Z", "postProcessHash": "1c27e1a34d9798dba6825b61132a411b760b3c5762089ef6b3e384cb2495688e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.094Z", + "updatedAt": "2026-02-24T10:49:33.744Z", "postProcessHash": "d6b781dbbf71351079089a84fc61c6457888ee82f81c5411c94ee9509b30446a" } } @@ -7508,19 +7634,19 @@ }, "54c86e8565c314f3f35b5092abb02160c07be322b7b625440fa3e79caec1a93f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.072Z", + "updatedAt": "2026-02-24T10:49:33.719Z", "postProcessHash": "961596e7877f7318f8e6aaba2cbcdaff27f527935f2c4c23a5d48ed81eae8252" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.079Z", + "updatedAt": "2026-02-24T10:49:33.726Z", "postProcessHash": "1d5f558e2ac1713570a0565e7453ff6a03be9e6ade3bf4a58e00280a63c3f676" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.080Z", + "updatedAt": "2026-02-24T10:49:33.727Z", "postProcessHash": "fb179eb82d7d573d7e228624b3a008850db8361c269f34a2e56a017d18c69933" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.097Z", + "updatedAt": "2026-02-24T10:49:33.746Z", "postProcessHash": "dd793bcf60bdaab86eb53df66abbd0240eb49a2c605d7af4ccfd9f4ef1e05a27" } } @@ -7570,19 +7696,19 @@ }, "f0af9a16658cd62f97a372fa62140a7c14096a5cb036c708ac0e89d8b912ac73": { "jp": { - "updatedAt": "2026-02-19T02:24:10.067Z", + "updatedAt": "2026-02-24T10:49:33.715Z", "postProcessHash": "b01c5f11906c4ee199db6ea4e514732160d06db9ad495a305cd313c6016fcd8c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.069Z", + "updatedAt": "2026-02-24T10:49:33.717Z", "postProcessHash": "437dc9276e3c09193a29bc0808691c6bba5dc867451256d9e11ae2144b702c4b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.076Z", + "updatedAt": "2026-02-24T10:49:33.722Z", "postProcessHash": "a10d44cb7dd31f5b1071b31247df597fc89fdd993f128dda2b72907d16834b40" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.089Z", + "updatedAt": "2026-02-24T10:49:33.737Z", "postProcessHash": "9700b8082fb46d9974da369230986f66d35022895330cd4cae545300807f1b9c" } } @@ -7601,19 +7727,19 @@ }, "c658b35c333a9b84fce26b6d52d08ee2316bee590e65f60012410d5d45a42663": { "jp": { - "updatedAt": "2026-02-19T02:24:10.054Z", + "updatedAt": "2026-02-24T10:49:33.698Z", "postProcessHash": "e0974bb614b3678e21c660b33dc1d12fc111fd563867d68b154f2510f7d8bfba" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.055Z", + "updatedAt": "2026-02-24T10:49:33.699Z", "postProcessHash": "75799a8025173b554a22476df3db3901f742a6f11bd7781a132970f20dda3048" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.064Z", + "updatedAt": "2026-02-24T10:49:33.711Z", "postProcessHash": "37e74b94a3a686dc49959fa5fbf412f76aa921c667bf8bcf242ac128c2a0af88" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.096Z", + "updatedAt": "2026-02-24T10:49:33.745Z", "postProcessHash": "389bd25aafbd5d53adf24876c0824475ceb2d11347ad2c6a43b852ed08b1f877" } } @@ -7635,19 +7761,19 @@ }, "0ae7e345a21808fb5a67a1ab5d1e20ccca5d21810c5dd2e589efa11084568019": { "ru": { - "updatedAt": "2026-02-19T02:24:10.057Z", + "updatedAt": "2026-02-24T10:49:33.703Z", "postProcessHash": "a6663b323d1c4a5168c7ec32edef587c04d35f690abcee0d663c220efe3d9977" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.059Z", + "updatedAt": "2026-02-24T10:49:33.705Z", "postProcessHash": "a47a015247f45bb0467ba8533160904f9d77412bd813fcd30de153ed3fd456ea" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.064Z", + "updatedAt": "2026-02-24T10:49:33.711Z", "postProcessHash": "ca3cad9609256e002363421125839a9f773837cc8441b469fab874f3a101a187" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.090Z", + "updatedAt": "2026-02-24T10:49:33.738Z", "postProcessHash": "4b1d79cefd5e659cf0f7243e73a545cf8dc37232e8e5d93680c4a2f934f286a6" } } @@ -7669,19 +7795,19 @@ }, "5abeb1dbb1f64ec85deb1db71d4f6eab26d9716ed8764781b43c3ed01a9580fe": { "jp": { - "updatedAt": "2026-02-19T02:24:10.059Z", + "updatedAt": "2026-02-24T10:49:33.706Z", "postProcessHash": "e83efb82a1ff9c18e341d4763db5da37ac95f97db1e25a846d0fd047b7bb5f74" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.061Z", + "updatedAt": "2026-02-24T10:49:33.707Z", "postProcessHash": "61d0b4127e628ed6fc28a7583708a0e62a9979ac9b317f359c441a0e394706fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.061Z", + "updatedAt": "2026-02-24T10:49:33.708Z", "postProcessHash": "6c95d1ab7cbe536559c7a2e2a0eab26b90d8c56fbc70683ffa1432379907cd51" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.091Z", + "updatedAt": "2026-02-24T10:49:33.739Z", "postProcessHash": "279d413ebdb1a761a07e0bb92d6850a74ba21b34f01249a29e9a9441f9bb94ad" } } @@ -7689,19 +7815,19 @@ "ea52d1bf57d6eca260482d6e9db0b3e4ba187ca46f787a3ec41ccbabccdafc29": { "7792c45b9f12363c758a86312cea564fda8789130772fc2a238a348aa77232bb": { "jp": { - "updatedAt": "2026-02-19T02:24:09.987Z", + "updatedAt": "2026-02-24T10:49:33.629Z", "postProcessHash": "67cb1bf38bf4f68a98a027ec428c9f5cb650b88e09886da54a10b52d8b691caa" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.986Z", + "updatedAt": "2026-02-24T10:49:33.628Z", "postProcessHash": "511a63c44b7f0d3cd3751db19efc8ff1198754ee03149dd785a74d144f384e4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.988Z", + "updatedAt": "2026-02-24T10:49:33.632Z", "postProcessHash": "c5fdceb61a73106218b9fafae029ad625690e7063b490206cb8da29c53877bdd" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.083Z", + "updatedAt": "2026-02-24T10:49:33.730Z", "postProcessHash": "17f977288372e147d3e1c2f2bc5b98cdadf3e2885d4bf34696129f1b1aac937b" } } @@ -7723,19 +7849,19 @@ }, "ac123f20ad425d66139f30caa4fdd649e9c03e7529fc4f04b5468188937f7f6a": { "zh": { - "updatedAt": "2026-02-19T02:24:10.055Z", + "updatedAt": "2026-02-24T10:49:33.700Z", "postProcessHash": "c8582590d71acd06ea50484e7bd1e8c8140ae52baee7cecfb83578a1f3f84a3b" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.056Z", + "updatedAt": "2026-02-24T10:49:33.701Z", "postProcessHash": "9676d096f4d9e0f2f88507d9ca3e3e1b6c623b29bea41f406f1b1e39d62ac4f5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.056Z", + "updatedAt": "2026-02-24T10:49:33.702Z", "postProcessHash": "38d3ec0f9883179397aa56404b93457c59ddb62d6a8ed5c0ddd372e491fa7d70" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.090Z", + "updatedAt": "2026-02-24T10:49:33.739Z", "postProcessHash": "ebcfafd90a6b35dc482db92a682d1723c84867e34f16eba5181106e628a2864e" } } @@ -7757,19 +7883,19 @@ }, "3b0b6bfe05ba817088e95945a7287ba991074d5aa3d610afbe7f1bff50762247": { "jp": { - "updatedAt": "2026-02-19T02:24:10.057Z", + "updatedAt": "2026-02-24T10:49:33.702Z", "postProcessHash": "9b16b61488f1cd4eba2b3568220146eaa48fa4cc96386ff1349b791e6e1ad71f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.060Z", + "updatedAt": "2026-02-24T10:49:33.707Z", "postProcessHash": "102f4fa2b5986cbd7060145a29f521c79dcac6e2bd9df7e874d00bd192edd97f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.063Z", + "updatedAt": "2026-02-24T10:49:33.710Z", "postProcessHash": "f76a8eb6ca71aa1773c79f65af652b56894b7331d86d374b402e82d36fc3abae" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.092Z", + "updatedAt": "2026-02-24T10:49:33.741Z", "postProcessHash": "65abab18011652fa1962c2bc4fd932fde7b98c6f1d630f0a4f2038d9d80e8633" } } @@ -7777,19 +7903,19 @@ "046cf4465fa1fb7186678766ac47cbd78704f28064400523e5b59a245d53c970": { "b13281a5fbb00f880845872b5516d8f9e9039198c4bf031942d0ceec737def68": { "jp": { - "updatedAt": "2026-02-19T02:24:10.111Z", + "updatedAt": "2026-02-24T10:49:33.764Z", "postProcessHash": "d048601ebc083f130a666e195fc2e15bef8b4208d033c7e3ba2f579774dfcce2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.119Z", + "updatedAt": "2026-02-24T10:49:33.769Z", "postProcessHash": "355168d1b10fa59e286971b001d0f8c84494736354652c15211efdd4f1aa0672" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.107Z", + "updatedAt": "2026-02-24T10:49:33.759Z", "postProcessHash": "bcabb8c382ea4d19d3b7323129a2446dfee3a100ce1b1e85272e7e846a9a396c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.159Z", + "updatedAt": "2026-02-24T10:49:33.830Z", "postProcessHash": "cdcf300b5106f24750947cc426d6d0e4318ee3aefbeb7079c2b01bec9902a79f" } } @@ -7797,19 +7923,19 @@ "0cdb3f54f81ff077472e66fb0a57247ee5bf3d2a93abeb493538e948840b724c": { "2beff12ea84429b1b15d3cd9ba939104aa74a91c9770800974ecc16582d6d010": { "jp": { - "updatedAt": "2026-02-19T02:24:10.109Z", + "updatedAt": "2026-02-24T10:49:33.762Z", "postProcessHash": "f6f1e41c2670ae8d50cdea7d15d969a3daac0f0bfa8426b1d685b0c73e220470" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.108Z", + "updatedAt": "2026-02-24T10:49:33.761Z", "postProcessHash": "196d86037310e9c6ec330f5a320ad193ac920fcbce51dee60b65c98097a77777" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.118Z", + "updatedAt": "2026-02-24T10:49:33.768Z", "postProcessHash": "93d98f792a702a2d0dd159956e3b86c06f6a772a66caefd147b37d9fd90d95c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.163Z", + "updatedAt": "2026-02-24T10:49:33.837Z", "postProcessHash": "c8014dcfb1919070f9e9af4c2eb1f7c5aced18d2a94d065a894cb6561a96f8eb" } } @@ -7831,19 +7957,19 @@ }, "5c9a86027021d4fe9f63e489c5f5de7259482bb6679bdc66221680ae0cd2ecb3": { "zh": { - "updatedAt": "2026-02-19T02:24:10.141Z", + "updatedAt": "2026-02-24T10:49:33.808Z", "postProcessHash": "5b2537c7845ae811457e873ea03e4cee9989aba7ca95159efbc8f503c5513570" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.143Z", + "updatedAt": "2026-02-24T10:49:33.809Z", "postProcessHash": "78de8a09f058bb17486d9d85f0d436b9a6af08ecdb6672719710aca36c364a7f" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.145Z", + "updatedAt": "2026-02-24T10:49:33.811Z", "postProcessHash": "94cd5e4dd7789be38d62adc2d4f8787bd41e6ad5bfbee8a816ee64adfc5b3e8b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.160Z", + "updatedAt": "2026-02-24T10:49:33.831Z", "postProcessHash": "31473f27dc4e19cc3efa7b02576342449503a2b43617cc9a45367670d3c92226" } } @@ -7851,19 +7977,19 @@ "2a7b92dadf95743e702b18a30f74eb67e67fef5ea4124220e608f258c6950c9e": { "c66b9e2d0f4d5e382ea43aee7020fd1c7ff170725159ddc185d674bc64b0d24b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.051Z", + "updatedAt": "2026-02-24T10:49:33.695Z", "postProcessHash": "afc108898171185e56cc785a491d1b7fb5963544aff304a7c9234298446d28b7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.052Z", + "updatedAt": "2026-02-24T10:49:33.696Z", "postProcessHash": "14ba3e5e781aac133077f908c553b87ffebe4ed5fcbd38ffb86aff0533132881" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.053Z", + "updatedAt": "2026-02-24T10:49:33.696Z", "postProcessHash": "33fd046aa0df0dad145c1f0b7ed950393fe0947d1a092df8f639bf15048029a3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.158Z", + "updatedAt": "2026-02-24T10:49:33.830Z", "postProcessHash": "87315a071721c76a17803e8ed5af97d39be9b62bfa89fb3c3ab6b660c4063976" } } @@ -7871,19 +7997,19 @@ "2f0873b2704cad58fd2172ec86c842a8262cb2a7c1e6cfbf1e9851fa843f4357": { "d4282945578d91a5ae49277f6ca146ca130e3b3df3c0341a5de3414625c2c903": { "jp": { - "updatedAt": "2026-02-19T02:24:10.124Z", + "updatedAt": "2026-02-24T10:49:33.773Z", "postProcessHash": "f57539ecf926d81785496f6d8ca44c294b3245e06d7ed8769f8df77b64e40bc1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.112Z", + "updatedAt": "2026-02-24T10:49:33.765Z", "postProcessHash": "ba70038e8c9b42cb918cd17ba65c187adc7f6582d0696ce412b0e41e616a8e83" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.111Z", + "updatedAt": "2026-02-24T10:49:33.764Z", "postProcessHash": "f162187a1b711095ce7647c7eff0aa4de0d2add53b0aef67e6a2b2ee24ff8d94" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.158Z", + "updatedAt": "2026-02-24T10:49:33.829Z", "postProcessHash": "d1c16cd4ecbb77d81ecd5263fce17e67df5e1acb2780865a624a14ff405f06e9" } } @@ -7891,19 +8017,19 @@ "583a274e308afe89671f40f27b3be757e2c9e98eeb513765c802185f5ec14e29": { "17f1e539b1b6e7759a4aa628833db4667a7e74444abb42880111b4568a28ffe6": { "jp": { - "updatedAt": "2026-02-19T02:24:10.043Z", + "updatedAt": "2026-02-24T10:49:33.684Z", "postProcessHash": "f1d4084294e021000c02574dfe7b76a8d0d86cf77c794678450c270db6f9d3d0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.042Z", + "updatedAt": "2026-02-24T10:49:33.683Z", "postProcessHash": "22f383300e6fc8457e445bccf094a34a8d19b5d70a66032c2fa808b3407ef1b9" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.053Z", + "updatedAt": "2026-02-24T10:49:33.697Z", "postProcessHash": "73965d355e4b340404b97ff3e107e6b5bfb90ef69ffb72f1d7e51532c54c115e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.155Z", + "updatedAt": "2026-02-24T10:49:33.823Z", "postProcessHash": "bb71bcff8c6194d45a8e16564fb9a6c08df95427072d2e53fd8ffe57c1917b0b" } } @@ -7911,19 +8037,19 @@ "60a5d6b5624fc995f6807d15e66c5a5b6bc86dc212e1745ef8bef3f5dc15c3df": { "c3d809b05c72707e6bb1947b6db7f23f641f83155cd0f83a5e6deedee8d07adc": { "jp": { - "updatedAt": "2026-02-19T02:24:10.121Z", + "updatedAt": "2026-02-24T10:49:33.771Z", "postProcessHash": "e88f7f99394e8a814600d55fab7b7cb28f91cc3288b88e611d9a79fdfe947ff5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.109Z", + "updatedAt": "2026-02-24T10:49:33.761Z", "postProcessHash": "20bdcc381d83b27f0cd36eeeb114197041262306f5582ac43b80c16bb3041d53" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.108Z", + "updatedAt": "2026-02-24T10:49:33.760Z", "postProcessHash": "1665fd8e8be66e5286e7e3730b43cd1e965b44b65b2abb2b8df647143a1df4c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.162Z", + "updatedAt": "2026-02-24T10:49:33.836Z", "postProcessHash": "768d21081e7a7294a7c2cd22b7944573d0a2b202954d3266c472e00ff33fa441" } } @@ -7931,19 +8057,19 @@ "65c3d5357d49f1617e6e959d8e29071102eaf8d0d9e4d1c2fb7cad70b6173a35": { "4cc1991c7b87b22d25ccb176e3b79b021cdde65ce0a2f2e4414efe519cc65f89": { "jp": { - "updatedAt": "2026-02-19T02:24:10.047Z", + "updatedAt": "2026-02-24T10:49:33.689Z", "postProcessHash": "4698eddf1c144579b363f7ad6eaaeee994010e9f8b92c77c3353a3a90cd2c436" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.044Z", + "updatedAt": "2026-02-24T10:49:33.685Z", "postProcessHash": "6ddf7f1294145d7c80ef298f29eb8acbaebd8910a189477614c61f53a4f3e133" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.043Z", + "updatedAt": "2026-02-24T10:49:33.684Z", "postProcessHash": "e21b6d31baa62c3830c18252b891c745a3e6884c7f9806241f5ff1bd46421715" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.164Z", + "updatedAt": "2026-02-24T10:49:33.839Z", "postProcessHash": "d9e2fdacf0bf6bef2d58991d6fa28db613b352c723d0572a4a53decbcd032ad1" } } @@ -7951,19 +8077,19 @@ "6e5e66ee5bbbba58fcfeffbe0603dfd55d38dd278fbff14d70aa5595ee971bd7": { "c4a33214adceb28be9e704611bd58cf7f2b17ce705ec29ba0ffd552d82a3d73f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.107Z", + "updatedAt": "2026-02-24T10:49:33.759Z", "postProcessHash": "7934894812ab8dd37af9fda996912f128d15b5ef4974832153a9e5734e8a723e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.104Z", + "updatedAt": "2026-02-24T10:49:33.755Z", "postProcessHash": "aa6c58538c24ad5230c56e2539ca3b47a4c02753be3c3df8bcb0252b301c7388" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.051Z", + "updatedAt": "2026-02-24T10:49:33.694Z", "postProcessHash": "ae5911f0723bcd9c07a8be53f50176547b8064aec1e21158a03b40fd1918cf7d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.159Z", + "updatedAt": "2026-02-24T10:49:33.831Z", "postProcessHash": "cda3dae5e957fbe5b9be392a315682278adffac64516835b6a7fbc8e445bca44" } } @@ -7999,19 +8125,19 @@ }, "4b49846b352f28aba3a56d9ad199e6693fee9fbef164f92c6c3e32f07f913809": { "zh": { - "updatedAt": "2026-02-19T02:24:10.130Z", + "updatedAt": "2026-02-24T10:49:33.779Z", "postProcessHash": "97561d284ba7b5a3c7e09334087402bb6644baaa4330ec4055811c4b0b3137d2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.132Z", + "updatedAt": "2026-02-24T10:49:33.782Z", "postProcessHash": "40dbb0e6bf1867caf2e9a8d0641911145120e53e7cacabf54869386a88fac53b" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.133Z", + "updatedAt": "2026-02-24T10:49:33.783Z", "postProcessHash": "e71631bbfbe56b922cc5b4c1d483553f6109c6bc1916b69666c5c09cfeda32e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.223Z", + "updatedAt": "2026-02-24T10:49:33.914Z", "postProcessHash": "e9302b15298761d3f6a11cc647d5640c5953cc06115408bae0f3bead441d6239" } } @@ -8019,19 +8145,19 @@ "907c6e7bab21d938402f694e7407939915297c82eafd1730100c830df4918778": { "c3a2fac6bf16acdaf76f1ef65dc3317e37696c35df4e8526e1bb887fa5cfdeb2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.106Z", + "updatedAt": "2026-02-24T10:49:33.758Z", "postProcessHash": "aa78ebda4b74f413aea7558aa44924094f6130ccf074966e72a9fbef35639e67" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.106Z", + "updatedAt": "2026-02-24T10:49:33.757Z", "postProcessHash": "d686717d86bd8df1da7b8e8a51015db018b7f39af96a32de178ffd0fd48b91aa" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.110Z", + "updatedAt": "2026-02-24T10:49:33.762Z", "postProcessHash": "444956a8bc2aaf6d366dd649c4aae26166db62a77e0fd05ddb1be3e80d6828ce" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.220Z", + "updatedAt": "2026-02-24T10:49:33.910Z", "postProcessHash": "e920ab581686113619fa79ef8890ae66944f7f22fa0f2965fd7e443a3b1bf3f6" } } @@ -8039,19 +8165,19 @@ "9840f3c84ffc8a8f881de9eca8454a7e8de6c5bd5c30b6a27784816805453183": { "491cb45d3cfae94c2b0cdeaaaf82b4ad9d2198ed681060717d4f79378fc92714": { "jp": { - "updatedAt": "2026-02-19T02:24:10.119Z", + "updatedAt": "2026-02-24T10:49:33.768Z", "postProcessHash": "94db1353c16cb1af7e481e37d53606c66deadf6ce21d885f493ecf19416cd601" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.122Z", + "updatedAt": "2026-02-24T10:49:33.771Z", "postProcessHash": "e8d8735c23e9f38886189fe5e7406e5127e9ec027759c969ab66864c7dc124b1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.104Z", + "updatedAt": "2026-02-24T10:49:33.755Z", "postProcessHash": "7b3a5a9e929fcafc336f7ae5f7a409b5cb2917b782d57c99fada20da41d666e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.222Z", + "updatedAt": "2026-02-24T10:49:33.912Z", "postProcessHash": "7a3d44c780bc2a0fb564f683880122c7b0675ac22b1fc2709d44d80f8940839c" } } @@ -8059,19 +8185,19 @@ "acee1d54d44425817e527bc2a3215f623d6ebd68804cdb7f18541efb76fb830f": { "53b8019634b145bda892aa14cca4d68066dd9ed1223e68c1450a60c3d6af3368": { "jp": { - "updatedAt": "2026-02-19T02:24:10.052Z", + "updatedAt": "2026-02-24T10:49:33.695Z", "postProcessHash": "72972c6ecf003db1d4784ae9ef4696cc86677e0ea8dc40467b07246f6bdf6d39" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.125Z", + "updatedAt": "2026-02-24T10:49:33.774Z", "postProcessHash": "a0a20793419c07b3555fbef9c0561eb1132fb3868f1f894452027d54b65f1491" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.113Z", + "updatedAt": "2026-02-24T10:49:33.766Z", "postProcessHash": "85ac1bb864fd45919f48fdf26181cc62e85e7aaec4d55a3dbcecde7bd0aeb101" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.157Z", + "updatedAt": "2026-02-24T10:49:33.828Z", "postProcessHash": "2daf108d73e01648d7bbd56f91028966266a2f1dbd65aca69bcb15ce172207b4" } } @@ -8079,19 +8205,19 @@ "b66cad86246e7e672bea77de5487ab3238a0cbd0d829ebb54fd0e68f3cbcee09": { "9cf089c5df430ee74bddf608da84394fafc963e1bd03cd0e94fe2c6c179ecce7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.105Z", + "updatedAt": "2026-02-24T10:49:33.756Z", "postProcessHash": "19d2a099f9a5950aa401e46fbd7e7e967ebce0c3b42817bfe21ea033cd251490" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.107Z", + "updatedAt": "2026-02-24T10:49:33.760Z", "postProcessHash": "36328d3e8561914a8d70fc1b9b899f3a15866373c51ea3ad15ee8c9519f0cd1a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.123Z", + "updatedAt": "2026-02-24T10:49:33.772Z", "postProcessHash": "1a4de4bea2534121914e1c65cd6f6f2902f347742d4fa521459c060565945cc4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.160Z", + "updatedAt": "2026-02-24T10:49:33.832Z", "postProcessHash": "d7b7eb1edbd5d4e4f6db9219251cbd01b66e4ab5d771ce446fd87f5946ff00ee" } } @@ -8127,19 +8253,19 @@ }, "969d941a2d49b2667f5e9534ac309f3204d339a37b5a0d8c3a9038b471939148": { "zh": { - "updatedAt": "2026-02-19T02:24:10.136Z", + "updatedAt": "2026-02-24T10:49:33.785Z", "postProcessHash": "66d3f5357647aeee0ee5a7f3ef028fd308c700bbd952316fe9d9a2604c71ca7c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.141Z", + "updatedAt": "2026-02-24T10:49:33.807Z", "postProcessHash": "7643256bfca4d09cd5e55996e19b8168f54fecae57da0e4b3f855420afc41795" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.144Z", + "updatedAt": "2026-02-24T10:49:33.811Z", "postProcessHash": "a1e945542533730e4a96a02e884df52856b7c178b203474fe2156bd8739d0583" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.164Z", + "updatedAt": "2026-02-24T10:49:33.838Z", "postProcessHash": "23948b6bc3d4bf966d1af62ad946984e17e5ba5b03ff30208ad8f07d01a977f6" } } @@ -8161,19 +8287,19 @@ }, "63df4b0ede3f18097f08b54c39e6bd1d03713da873c16172e09ede4f502cd267": { "jp": { - "updatedAt": "2026-02-19T02:24:10.130Z", + "updatedAt": "2026-02-24T10:49:33.780Z", "postProcessHash": "7572b644bb29bdfb47e16bc12792faf5a7b5fb26027bee994cca9a2f70b1ba7c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.131Z", + "updatedAt": "2026-02-24T10:49:33.781Z", "postProcessHash": "9bc3d63940d346924677e6384f25bdd9473d1a41a1a815fd111961ab56bec270" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.132Z", + "updatedAt": "2026-02-24T10:49:33.782Z", "postProcessHash": "91090cd1ddb9d4eea230e07cd3f633a27c5cf5e28e32a3a33e27d5c99c6a1c59" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.163Z", + "updatedAt": "2026-02-24T10:49:33.837Z", "postProcessHash": "1e43e76a56a723f473500f7443ec5017fb4e772261ca168dd701c498dc351c93" } } @@ -8181,19 +8307,19 @@ "d259b209c3435b62d81021240a05134c0eea6d95e4ac914c175f7122e5bcdbb9": { "2336e34b998efec4cc83f0643bbd8fc97a4fb0afa00c3343a22139925e777a12": { "jp": { - "updatedAt": "2026-02-19T02:24:10.103Z", + "updatedAt": "2026-02-24T10:49:33.754Z", "postProcessHash": "40f31dc20c4bfe072c4370dfcf544d4064ff6534036d8ff024f7c259b304b4b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.128Z", + "updatedAt": "2026-02-24T10:49:33.777Z", "postProcessHash": "ec97dbe76ee1c7f4d9807853a01d52554343c29f22bce718896e355794121048" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.127Z", + "updatedAt": "2026-02-24T10:49:33.776Z", "postProcessHash": "767b3ed847bafbba738cc5498b52e5233bb90e590f3762560e84a8139e7130d7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.157Z", + "updatedAt": "2026-02-24T10:49:33.827Z", "postProcessHash": "9684fb7c5d96b8ee484c107292cdd4aded0a9edab03f541d60ae658c6f7f1bc3" } } @@ -8215,19 +8341,19 @@ }, "975e7b395b8902369cb0435f5a96c742f09c9d617aee99d91216868870ba76fd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.231Z", + "updatedAt": "2026-02-24T10:49:33.921Z", "postProcessHash": "8c1b683c398e590737be248f1fd5dcc7fcb5e54dad5ce478dee904fecc20c93c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.152Z", + "updatedAt": "2026-02-24T10:49:33.818Z", "postProcessHash": "fae9ee5e53bc102526d60aa0cac421e010774fa428781a07555e7cbab6f676c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.230Z", + "updatedAt": "2026-02-24T10:49:33.920Z", "postProcessHash": "cc4e92ad7aaa1d98ed0463eee2f4199eb3fb64dc01f581fe8d806857b3d6a735" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.232Z", + "updatedAt": "2026-02-24T10:49:33.921Z", "postProcessHash": "1f2cc47021f05926f745cb1a8f1c8eb3362cc723e0126e411a4fa4f2d3e50908" } } @@ -8235,19 +8361,19 @@ "eac642db564baa4ce1f75ca03dc5a23f44db2e588ad4390c7c3cb746e81f695a": { "4bcedeede08560e01db76c1f8f3c871bd8e8aebd281853aeef86bbc3841fd68e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.110Z", + "updatedAt": "2026-02-24T10:49:33.763Z", "postProcessHash": "1b2f8d66e7ae16772e969f1037ff20fb84172e15604299d73707346fc0a48560" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.112Z", + "updatedAt": "2026-02-24T10:49:33.765Z", "postProcessHash": "0c9ab96dae93b6505e17cd7c22f6750b075c72d405547b841789eaee04edb086" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.105Z", + "updatedAt": "2026-02-24T10:49:33.757Z", "postProcessHash": "99f9557e87f09bd2946feefefc7f5bad26452348453cfb0b9cc2af9f7d495f36" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.161Z", + "updatedAt": "2026-02-24T10:49:33.835Z", "postProcessHash": "1eb5320cf9c04c6f47b9a112045c59909080286f1bdd06a5cf462738a7333db4" } } @@ -8255,19 +8381,19 @@ "f5ec5f1c0bd0776f9a2a7bff868a443e7cbb090161004e7da40277d9999a5e0f": { "1d3bbb34461ec824f8f745ff89fbbe7930bf3ca75ffcf25386fa8e097845e074": { "jp": { - "updatedAt": "2026-02-19T02:24:10.103Z", + "updatedAt": "2026-02-24T10:49:33.754Z", "postProcessHash": "276a47a8cea0773d7ab1b7faf852327042c190cd29494d2b5f11815c2abb2eca" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.112Z", + "updatedAt": "2026-02-24T10:49:33.764Z", "postProcessHash": "4af16cef9597591b53ec296dc5ff9c0c72d9356aa144fbf32f1501d21e27e890" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.113Z", + "updatedAt": "2026-02-24T10:49:33.766Z", "postProcessHash": "8a01efac34375649fb0f6a70803cc5e4fead16bce8971298a9aa4015c15564ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.219Z", + "updatedAt": "2026-02-24T10:49:33.909Z", "postProcessHash": "dbbb639735d13e182cf39c2efcade088c1307d6b3b8a8f1544a38beec7aec9a3" } } @@ -8275,19 +8401,19 @@ "faf7c1208ac6cebd805f74b867ef0352238bb675f4e78c25744706e43a0bbf35": { "067bee4f308eb8fb0ee42187bb88647c1df461930299cda269dae6be1e92e2b2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.044Z", + "updatedAt": "2026-02-24T10:49:33.686Z", "postProcessHash": "f938803cbe858f13e1e3c804babe5a470022286a8ba78fb3df063111308f3ff1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.045Z", + "updatedAt": "2026-02-24T10:49:33.687Z", "postProcessHash": "523f310d175f1ab9fa687562729f8d30eb2e3cb0a282bcf4ada6c0f97c6ac6e0" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.047Z", + "updatedAt": "2026-02-24T10:49:33.689Z", "postProcessHash": "3c06dee87ac93a95d760285d044f458ab0f18382e3a7720ae8013912c7d07198" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.162Z", + "updatedAt": "2026-02-24T10:49:33.837Z", "postProcessHash": "3785bc286d3c9fca892743a02b333870468fe87a418435ae9257065676a62e63" } } @@ -8323,19 +8449,19 @@ }, "d716e214f14fa3bae29d0657d9743f72de49116d340d502a0c958fa9514d69af": { "ru": { - "updatedAt": "2026-02-19T02:24:10.150Z", + "updatedAt": "2026-02-24T10:49:33.817Z", "postProcessHash": "c5cdffec1b554b60f7671a05740e0c7f0a5f6f789b88ad7fcbbec93fea1f1e8b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.153Z", + "updatedAt": "2026-02-24T10:49:33.820Z", "postProcessHash": "f706164e416016ac15658890845d99699e5014c638af4ccc5f26cbf365017393" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.154Z", + "updatedAt": "2026-02-24T10:49:33.823Z", "postProcessHash": "6d89ea2c309c173295394595f82fb5e9a4551f375a12370af1bdbfbb7f1d32bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.229Z", + "updatedAt": "2026-02-24T10:49:33.919Z", "postProcessHash": "7d69b951413ee926bcf71fb094895b95add90b67e83daf9bee20cac595a33287" } } @@ -8343,19 +8469,19 @@ "050352a11ca817f5bab4911101cd95e7ae7dc5d8954cd551028380c728411a57": { "6cc2916b976989ba2663dd50f541fbe9751c56f179ac300fc3381ca3479e452b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.125Z", + "updatedAt": "2026-02-24T10:49:33.774Z", "postProcessHash": "3246ab30af9325d217a9652f4d892d1c6307525bfdc34b716cb5675bd8294794" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.123Z", + "updatedAt": "2026-02-24T10:49:33.772Z", "postProcessHash": "b84977949917dfcdff9f3dd50ab2f4f76e42ffc75bda8e236f4caf7e7e9c49f1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.120Z", + "updatedAt": "2026-02-24T10:49:33.769Z", "postProcessHash": "db6b7370f1a1c23f2b92e4c4592daa53eeee4ad4208f0949191527cd970d97e7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.223Z", + "updatedAt": "2026-02-24T10:49:33.913Z", "postProcessHash": "aca85bcc67217554dd19532f6d31e8bf6ed24a91ec83fc0f1ddc7e2c34f52049" } } @@ -8363,19 +8489,19 @@ "09a42960aa106a95a5cbe49be7b12f9120aefe3ef067ddb1c1b026342239f3be": { "eb1dc019fb90478f30509956caa9e4f342a6e2b031332733edb6a6b927bc71e8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.121Z", + "updatedAt": "2026-02-24T10:49:33.770Z", "postProcessHash": "e5dc52f731acd6ca13b0860ed03874cc861e5c9a8aba3f457e8ef4ebaf8ee74e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.118Z", + "updatedAt": "2026-02-24T10:49:33.767Z", "postProcessHash": "523fd7c08850425e3f0e0b76b70d81eccab98347e7b94fe4b1e1d5a2ef3d724e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.122Z", + "updatedAt": "2026-02-24T10:49:33.771Z", "postProcessHash": "2aac35d30ac8203b78249ceab122fba2533455f6a33f2cc2101cf7bc794ffc85" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.162Z", + "updatedAt": "2026-02-24T10:49:33.836Z", "postProcessHash": "88ec54ce333100d61d20ffbbccb67741143207386438c73f5ba0e03c33b212cc" } } @@ -8411,19 +8537,19 @@ }, "b57a3f6bbe790052e42608865831ee1b740a87eab897f839564a7d5a1d8b7e2a": { "ru": { - "updatedAt": "2026-02-19T02:24:10.200Z", + "updatedAt": "2026-02-24T10:49:33.879Z", "postProcessHash": "e7d530c54522f8ee8e8d367aa0e7a632528110921588f4264ee441e79c803901" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.204Z", + "updatedAt": "2026-02-24T10:49:33.882Z", "postProcessHash": "90a37edb270da62f54f5fac64fd42051eea8b50035e79f6d42156417485afa8b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.209Z", + "updatedAt": "2026-02-24T10:49:33.888Z", "postProcessHash": "86f4129e09e1ecbae821821129ddb5fa93635b9679958e1a82ab78cfdd1a7202" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.221Z", + "updatedAt": "2026-02-24T10:49:33.911Z", "postProcessHash": "908a89f5f239f6f6dc92708ece18397bcdf2656713f80bf449dafca68eb56b14" } } @@ -8445,19 +8571,19 @@ }, "45bd8c1633d2cd4ff72aff8d2d61bb29bc74f60ade25a01a4cbccda1149ffeb7": { "zh": { - "updatedAt": "2026-02-19T02:24:10.205Z", + "updatedAt": "2026-02-24T10:49:33.883Z", "postProcessHash": "386237d091c16b655fc30f13bba647ef35e6f57105aaeb17579d9de5a76e1ae1" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.206Z", + "updatedAt": "2026-02-24T10:49:33.885Z", "postProcessHash": "ec4ec03c5d882a2f20388581f8c211920b9785516b7012a180b14f9ac5d98de1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.207Z", + "updatedAt": "2026-02-24T10:49:33.886Z", "postProcessHash": "fc1d817c13ed7e7a4df481aa0fb23fc3a2375451aefc7af766b5bf3cdac0fb4e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.218Z", + "updatedAt": "2026-02-24T10:49:33.908Z", "postProcessHash": "73b41f00efaf55944ab15869ebf7c765b54d68729f71613e08e3ec73d39a5590" } } @@ -8493,19 +8619,19 @@ }, "6857ee7256e1a8b508147d6f118b6863c4deea0fd8c62540701c25f8f97192da": { "jp": { - "updatedAt": "2026-02-19T02:24:10.211Z", + "updatedAt": "2026-02-24T10:49:33.889Z", "postProcessHash": "5531a47e78909e11dae24278c9b4b3b9e2e886fc1c0b25e02f1d602c4bab4c52" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.211Z", + "updatedAt": "2026-02-24T10:49:33.891Z", "postProcessHash": "2a8957fcc81f7651498375e7a5a584a04f99222cb1fbf8088e25341eb0e227c7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.213Z", + "updatedAt": "2026-02-24T10:49:33.892Z", "postProcessHash": "3b957de073a8841aac3bfbc02f2f819d1b93fa2517772c1683ecb25a79a6d8dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.226Z", + "updatedAt": "2026-02-24T10:49:33.916Z", "postProcessHash": "d4036454cb47c01ac8564593e635d9282ebb2b101e5d16ebdada5dee5c2f32e0" } } @@ -8555,19 +8681,19 @@ }, "6b86595eec34a36a9b1f98f07a0443a7b929c4afbaba59f8ddfcb9e2501c1e5d": { "zh": { - "updatedAt": "2026-02-19T02:24:10.144Z", + "updatedAt": "2026-02-24T10:49:33.810Z", "postProcessHash": "4cf518c486b43119ae14f616b15dc9d0e15035118593e211b710e27eb93ccc64" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.146Z", + "updatedAt": "2026-02-24T10:49:33.813Z", "postProcessHash": "28e0f6ab3eb2856647d17ae9935d2c2d0edd2f11d185795b9bba07f32e6cfe30" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.151Z", + "updatedAt": "2026-02-24T10:49:33.817Z", "postProcessHash": "defc1ab787610a7b612724e881a4674b03c8bdd93dae7c5a16a55902f9ff7c6f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.230Z", + "updatedAt": "2026-02-24T10:49:33.919Z", "postProcessHash": "777db3d801002487c8f5d2a89077b7e72af93b5ca3cfee8761098219e9b71739" } } @@ -8589,19 +8715,19 @@ }, "5ba05b11bb2c73e935dbc67105d1d913ee51fddcf5715e9df421a07d651b8e8c": { "zh": { - "updatedAt": "2026-02-19T02:24:10.194Z", + "updatedAt": "2026-02-24T10:49:33.870Z", "postProcessHash": "b7aa36fcc960ab3ba14b39c7b6a5b2505e5cd3db2cfd7f6f2ff4b83733c44816" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.198Z", + "updatedAt": "2026-02-24T10:49:33.873Z", "postProcessHash": "7bb17ef934c8accc3b58197ebabf5e7bf9b010180d441fc3c2244f8c233948c7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.200Z", + "updatedAt": "2026-02-24T10:49:33.877Z", "postProcessHash": "26771f90dbeb240246d05f7a04ae6569fc49077a151a4237b11f36893215a487" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.217Z", + "updatedAt": "2026-02-24T10:49:33.897Z", "postProcessHash": "02656e4900763f25f99e50519b1d141e0204c942d5259c655f8998a111e0427e" } } @@ -8623,19 +8749,19 @@ }, "e6c8ae6e9d572a20d219ad3d4800fa6ac77b9871cf5360cbe762113f2a06d9b7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.191Z", + "updatedAt": "2026-02-24T10:49:33.867Z", "postProcessHash": "14b3eebf2724fbbfb4f3317b7da027d28506258af0b52ab6e786cf1a08e18463" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.194Z", + "updatedAt": "2026-02-24T10:49:33.870Z", "postProcessHash": "4a5befe736180f27558e1c5fa91eabb3886205baaf08a07020f26d4fef510dcf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.196Z", + "updatedAt": "2026-02-24T10:49:33.871Z", "postProcessHash": "eeca4244019654fa8e4310d5f5d8ed3456c2ac31fdc4a3b89dad81e10ddf9c95" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.214Z", + "updatedAt": "2026-02-24T10:49:33.893Z", "postProcessHash": "27414ea127ebeaa872dc295e575dc4ad2ff9153c00ef1e45075e9564cac9dfc5" } } @@ -8643,19 +8769,19 @@ "4c1ad3942b4184430a7d30de866388373d48c1a27718ee8712e351668b5b2c7b": { "7f0ff3de1f2f3ef36f7c5bcbadc179455a3ae55c4a9e388b8148b18a4dfe6b7b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.124Z", + "updatedAt": "2026-02-24T10:49:33.773Z", "postProcessHash": "377b3307e807408bc87818f2b82b8c419aef71acb7b1cb861322dffb58de734f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.126Z", + "updatedAt": "2026-02-24T10:49:33.775Z", "postProcessHash": "19cbfba3c0fcc8961063636b7aa2a10d7a4f2979167df634670c7a09af578a8a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.127Z", + "updatedAt": "2026-02-24T10:49:33.775Z", "postProcessHash": "29a259b582e800e7ecce23cbbce59757d311b698e52281fb5d63671727b1ee18" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.225Z", + "updatedAt": "2026-02-24T10:49:33.915Z", "postProcessHash": "ed79995a68bd1b0d7ff861694f5e06a57c5116cb65e6f38850acdca9ff7fda1c" } } @@ -8677,19 +8803,19 @@ }, "0e359696d3b5565865b0d0d40d0ee373fdcf2f84dbb9f43953d20943f6fc8881": { "ru": { - "updatedAt": "2026-02-19T02:24:10.188Z", + "updatedAt": "2026-02-24T10:49:33.865Z", "postProcessHash": "4f4816dba937ba654a11ac5957195a0db61c10fdaa35ac67c4ab976ff07fe336" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.189Z", + "updatedAt": "2026-02-24T10:49:33.866Z", "postProcessHash": "a540b60b2f84eae61a578d1ab374f344f643fc3024d73420c42e938a56f640e8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.190Z", + "updatedAt": "2026-02-24T10:49:33.866Z", "postProcessHash": "774bc3096d3abbbde7c0bf2c72b43b5fcc98e9d54299ddbe14f69c7596a45c2e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.219Z", + "updatedAt": "2026-02-24T10:49:33.909Z", "postProcessHash": "26826ded791af80b3a6f0d4c95b08facf3abb38f63f2c6483839bd2b45423e12" } } @@ -8697,19 +8823,19 @@ "ac35f8f55935d4ecd0e3d7d6c02b398d04b18c830570d65f6551b9b4ff45bb74": { "09c8a0f7de8fedbc086a20b8603b6ad2439fbb800e29c34ecc840908cfa41148": { "jp": { - "updatedAt": "2026-02-19T02:24:10.169Z", + "updatedAt": "2026-02-24T10:49:33.843Z", "postProcessHash": "90f2c4922a7f86a0fd024dbe4bb3dbb6482f25b7f08f94137e4b69dae26e131d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.173Z", + "updatedAt": "2026-02-24T10:49:33.847Z", "postProcessHash": "53079436557cce2b97757a30e5615dabf3a0aed3dff0ef70f5e4229ad32f8c8f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.175Z", + "updatedAt": "2026-02-24T10:49:33.850Z", "postProcessHash": "4f0559149c4057d0830afc58da4ee78644deb51f97a1afe4423ee45c04971872" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.215Z", + "updatedAt": "2026-02-24T10:49:33.895Z", "postProcessHash": "159876e180fda39e1ff67a5473bedecec2bf8e3ca7aa416cb74096cbc739c4e9" } } @@ -8731,19 +8857,19 @@ }, "023bd58d5dbb729c65156edf2e70ea8ded80a74f692e01fc1afa4bd9c061101c": { "ru": { - "updatedAt": "2026-02-19T02:24:10.192Z", + "updatedAt": "2026-02-24T10:49:33.868Z", "postProcessHash": "8136955dbb7116510c1cfa708022ca9e2d7c0cf256cbc7143fea45949bb5eecb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.199Z", + "updatedAt": "2026-02-24T10:49:33.877Z", "postProcessHash": "ad5f26dea38e970c088b98d24873f63981b013a68482791feb6f964f348f4861" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.208Z", + "updatedAt": "2026-02-24T10:49:33.887Z", "postProcessHash": "328d4ac1daa86763f66e4d76c2d49edf837ae823afd91e87fd591ead875cb337" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.216Z", + "updatedAt": "2026-02-24T10:49:33.895Z", "postProcessHash": "d59cf15b06a611e3c9a3077a8284dcd117e0a00abf74084ffd68881941237db1" } } @@ -8751,19 +8877,19 @@ "cba0abc4ab65e9d030139163304a053ef5b1fe651a26215e77c9e551fe3b8191": { "62328876676efd5312772f4062f7342ab3fbcced0fec39177d7de554d93c9005": { "jp": { - "updatedAt": "2026-02-19T02:24:10.168Z", + "updatedAt": "2026-02-24T10:49:33.842Z", "postProcessHash": "f46a0be96af319e5c6ba45db98bb06c87c070f23f00ca363341afe0d287ea871" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.170Z", + "updatedAt": "2026-02-24T10:49:33.844Z", "postProcessHash": "65d62d010947a43a854c0a51814366547f7d9955f8fc0cb1366f39b894f6fc6d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.171Z", + "updatedAt": "2026-02-24T10:49:33.845Z", "postProcessHash": "e89140cc0ad6b29daf0caa2fa47312aa32e8115460c78513f1b9727d4203bbff" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.220Z", + "updatedAt": "2026-02-24T10:49:33.910Z", "postProcessHash": "41f21612e43d08ed97a3fea5db137e9e6c90d1b005b695783a01f4ac5c4f228b" } } @@ -8799,19 +8925,19 @@ }, "f9ed051a867c71282d17b42aa7cb69bac783599ff80b349263ab5e4f3a728128": { "zh": { - "updatedAt": "2026-02-19T02:24:10.145Z", + "updatedAt": "2026-02-24T10:49:33.812Z", "postProcessHash": "a21218a7c556de6d5b36f79160cfb10420742b47b976f4d8ce447935c975cae1" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.149Z", + "updatedAt": "2026-02-24T10:49:33.815Z", "postProcessHash": "f0b6a6285e72bf3e1f0592e14cea1676aaccf3b3f799a772b8e1fd09b82bab3c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.153Z", + "updatedAt": "2026-02-24T10:49:33.821Z", "postProcessHash": "b789a3d9139880497f8e9e0b5f2a954e0759b488be3d7ad9df1e2c18898fe7e8" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.222Z", + "updatedAt": "2026-02-24T10:49:33.912Z", "postProcessHash": "bc76b636dee0c68716c890937a8481880dbb6c3f3a6e00b42dd29db872d76421" } } @@ -8847,19 +8973,19 @@ }, "e0ba83606dce165e7c40cf45ef466101c8eeb767afaf426eb4693237bae10b9d": { "ru": { - "updatedAt": "2026-02-19T02:24:10.196Z", + "updatedAt": "2026-02-24T10:49:33.872Z", "postProcessHash": "4126b23433cd9cfb5ddf1ad5a7192f233becf7fd2dca21a46bef9ac30e72cfed" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.202Z", + "updatedAt": "2026-02-24T10:49:33.879Z", "postProcessHash": "0c8d8934500ed21c382a14cb4a704a4095c18cbaad2b2aefcf7fe604f967863a" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.204Z", + "updatedAt": "2026-02-24T10:49:33.882Z", "postProcessHash": "2e79d76cdc247044635f8777757e1330aee05429a16159c72b8012432137ebcf" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.227Z", + "updatedAt": "2026-02-24T10:49:33.917Z", "postProcessHash": "a8c4ce0e6f42a2dea6c2b41df22a3bd9ecc608173157407e3c48967f7b130ba1" } } @@ -8897,19 +9023,19 @@ }, "2e576ccf893189201b09ea5e4d53cd97a1c1d5b2ba0aae9ce65a666babf2ece2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.136Z", + "updatedAt": "2026-02-24T10:49:33.786Z", "postProcessHash": "3c34167e397c14dac95406c6a6a1b21e0065c643875159ecbb1fffce19f2e47b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.148Z", + "updatedAt": "2026-02-24T10:49:33.814Z", "postProcessHash": "90182b50ccf09ce2009a2149df600d6e9984c9457547bb06d51866962f342b41" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.148Z", + "updatedAt": "2026-02-24T10:49:33.815Z", "postProcessHash": "0d0330e17a0a2cfc03a42b13d1a3f30120a5bc1d117331189e30a7d726d0bf72" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.156Z", + "updatedAt": "2026-02-24T10:49:33.826Z", "postProcessHash": "6a5cd3c87997284e3d974457e7baac21d07e97b49a5bc4f6003438fbaeefde2f" } } @@ -8931,19 +9057,19 @@ }, "675b7621dceb4543e238b1c79d6f4ad111b8c466f54d535e016e4ae4d136d07e": { "zh": { - "updatedAt": "2026-02-19T02:24:10.195Z", + "updatedAt": "2026-02-24T10:49:33.870Z", "postProcessHash": "bf7e51b7de4aa3f927e4c76be0327bf2af62a9f792c551253474c3d366e3b528" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.191Z", + "updatedAt": "2026-02-24T10:49:33.867Z", "postProcessHash": "928e3d8804a73969b790ad8284387092cf6798e65ec9034fe4a195e36af968b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.203Z", + "updatedAt": "2026-02-24T10:49:33.881Z", "postProcessHash": "2792ef6acac323bf898cde1a1772ab09364156879b64c82d2e46fee702c02b02" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.224Z", + "updatedAt": "2026-02-24T10:49:33.915Z", "postProcessHash": "0dea68346e2cfff445fd146bb8cffd78144c92ff53dcb2991947489673d19b47" } } @@ -8965,19 +9091,19 @@ }, "cbb821b75fad0a65506c5e481774e8047590a4626cb6a7a3b996cad104a7e3ed": { "ru": { - "updatedAt": "2026-02-19T02:24:10.197Z", + "updatedAt": "2026-02-24T10:49:33.873Z", "postProcessHash": "656ee1600605f78e1f396ae6fba18042d46fda4826e3bbad04179d3c2acb79f9" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.209Z", + "updatedAt": "2026-02-24T10:49:33.888Z", "postProcessHash": "45d65cd1fb5f0561a594dece9be1ccdc649c6daaa61d9532fba2d3ba92e84965" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.212Z", + "updatedAt": "2026-02-24T10:49:33.892Z", "postProcessHash": "602ed16d73f32ca4320d5fdd4eedf1118f1c20381e081937733beeec3e71965e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.228Z", + "updatedAt": "2026-02-24T10:49:33.918Z", "postProcessHash": "ce0e4dcebcf4501704014a05e6509428c0cb1016ab8157ac19e6353d7214e0c8" } } @@ -9013,19 +9139,19 @@ }, "b2dcb07fb9a764ebd817e0714a12c266c16b2065357611682534de45d17e1d3e": { "zh": { - "updatedAt": "2026-02-19T02:24:10.193Z", + "updatedAt": "2026-02-24T10:49:33.869Z", "postProcessHash": "0940da260a5627ca68d107179b54fa75c9a8a41488e1dcb55dff13c5de6ceade" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.199Z", + "updatedAt": "2026-02-24T10:49:33.875Z", "postProcessHash": "ebb9894c99fb7b45aeef1e11c5cb0055dbee088c4e19dc367cc593740100fbcc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.201Z", + "updatedAt": "2026-02-24T10:49:33.879Z", "postProcessHash": "9faec91683c8a56dc0f6babcec19b9c65a88172d0a14a8ab1318d9aca610908d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.226Z", + "updatedAt": "2026-02-24T10:49:33.916Z", "postProcessHash": "a6c9aa5da96ad6cb19f101c4a489f8f476bd9887669f366aaf39cb482d3f179e" } } @@ -9033,19 +9159,19 @@ "00f878a9534e344ca38d2f13a2d0b58a40257c9f7c696adfbc337ee5148c5894": { "d7ae2149e8a1eca5c76f2e499f9ddf19c90a2c840a153acd2e820b96f79c4e3d": { "jp": { - "updatedAt": "2026-02-19T02:24:10.177Z", + "updatedAt": "2026-02-24T10:49:33.852Z", "postProcessHash": "09750ee1b8c4862a547e770e96d4d5d2a997ab831fcaa0db7280efab6eb162c4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.178Z", + "updatedAt": "2026-02-24T10:49:33.855Z", "postProcessHash": "b1af9a8b49cdbdbe321a06071e945dc090446f7db4e0910a736896e78a60b5f7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.178Z", + "updatedAt": "2026-02-24T10:49:33.853Z", "postProcessHash": "c9aef1d1218cdc834d85013c8c8827700ad331835dec31018917890b8811cb03" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.296Z", + "updatedAt": "2026-02-24T10:49:33.971Z", "postProcessHash": "0b2be0b4fe0a0f9689ab153ab25524c9476db218d513e8985fcc90e3ab0bf359" } } @@ -9081,19 +9207,19 @@ }, "f4b554753cd9ae3501a2d06cfa0e454ea4088ad41c122f9b6dae521f8cb21809": { "ru": { - "updatedAt": "2026-02-19T02:24:10.247Z", + "updatedAt": "2026-02-24T10:49:33.932Z", "postProcessHash": "17d8234b44c2a511bd5b2219ad3d12c9da8eefc153fc782ec2cf47108edbf249" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.255Z", + "updatedAt": "2026-02-24T10:49:33.936Z", "postProcessHash": "999e8113c64a019ee527ba32658c7b8dd8d26770f2dc8c651e53e542dc03cfe8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.267Z", + "updatedAt": "2026-02-24T10:49:33.943Z", "postProcessHash": "cec1ccf3782c55803ee4c97c881ec2305fdbc5d996c2afde6b2c80aab840e2d6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.296Z", + "updatedAt": "2026-02-24T10:49:33.971Z", "postProcessHash": "7cb3bd6e8040dee73be3b6e9afd99c22efcbdd83db12464d89144852ad17bd80" } } @@ -9115,19 +9241,19 @@ }, "a6e0a2dd1872403295bc8f8837a2b730ee2edbe4b14aeaf5edb9619e6a5f78a1": { "ru": { - "updatedAt": "2026-02-19T02:24:10.238Z", + "updatedAt": "2026-02-24T10:49:33.928Z", "postProcessHash": "8be0dc0bd556ff2f2f589b653c1d6cf480cb76593a414a41f887f3ef9380824a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.239Z", + "updatedAt": "2026-02-24T10:49:33.929Z", "postProcessHash": "89a8ec5a29baaad1208da462a1d7ff46178a960ce247edb39848ef46e9547dc3" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.240Z", + "updatedAt": "2026-02-24T10:49:33.929Z", "postProcessHash": "eec52cdabafc239d5052a6f07609b4d7b4be309e93f506dbefa19126b67ff264" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.292Z", + "updatedAt": "2026-02-24T10:49:33.968Z", "postProcessHash": "5e06e5d369fb248dfd8c5164524c93d378c107c8d436bcf29d9d124aff69a54d" } } @@ -9149,19 +9275,19 @@ }, "7d88267c0a672044c4e2fe74165d59fee38051404b6b4d67faf87ba0ae59e4e5": { "zh": { - "updatedAt": "2026-02-19T02:24:10.184Z", + "updatedAt": "2026-02-24T10:49:33.858Z", "postProcessHash": "a20e99d43028a0fe9261f05c9d14ad5a28ceead0f225d4d7f545fc1c45aba585" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.185Z", + "updatedAt": "2026-02-24T10:49:33.859Z", "postProcessHash": "dc1019b01afa7c15f9e022ff984b2155d2f0fa1d8a0861467bcd164e62b2bd4c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.186Z", + "updatedAt": "2026-02-24T10:49:33.860Z", "postProcessHash": "a69babab7c6f02b21350958cecad2a2d20d54aa1efa0bf43028390d9576615f2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.294Z", + "updatedAt": "2026-02-24T10:49:33.970Z", "postProcessHash": "bd0016a0ecd3fde5c63ca8e5d4d6b4769bc8e461b75443bdef79fc6be7715bcf" } } @@ -9211,19 +9337,19 @@ }, "61dac9e01e6f8707ed114f3469753613e1de2c3a4715acbeff22c35ffbc2dba2": { "ru": { - "updatedAt": "2026-02-19T02:24:10.186Z", + "updatedAt": "2026-02-24T10:49:33.861Z", "postProcessHash": "faf151290911d4df321b4389e265d7824ce779097b66275250227d04b966a3eb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.187Z", + "updatedAt": "2026-02-24T10:49:33.861Z", "postProcessHash": "537367687dfb50b8a4d12bd5b3da219c8c5ccff8e4eeb19b8302c390ae2b5558" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.187Z", + "updatedAt": "2026-02-24T10:49:33.862Z", "postProcessHash": "b8624b021512738186ef532b3b8f6276207898b72e76bb5a969c1fb5668f69fe" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.302Z", + "updatedAt": "2026-02-24T10:49:33.977Z", "postProcessHash": "2fdff929ea7406938b719e68078b82ede83e3cdcef27b6f8c8d0d5d15b8a1fce" } } @@ -9245,19 +9371,19 @@ }, "997eae44ed582f492dced0852802d0310ce18d96f91eb208785b1a4edc2d38a7": { "zh": { - "updatedAt": "2026-02-19T02:24:10.270Z", + "updatedAt": "2026-02-24T10:49:33.947Z", "postProcessHash": "4a17b17732c4f08edae65979f6df872bf168907f4803f37741d624aef1a583b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.280Z", + "updatedAt": "2026-02-24T10:49:33.956Z", "postProcessHash": "d7c577a49cb286dc50f64c385c9cc95a2f533bcb8d5d8cbd7dd23733a2229191" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.282Z", + "updatedAt": "2026-02-24T10:49:33.958Z", "postProcessHash": "28f10be8d9ff66c5f0d4ace2de3ef662a0eb03cde4b3e943e43bcbcb43c708a6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.291Z", + "updatedAt": "2026-02-24T10:49:33.966Z", "postProcessHash": "4a8edde6d8aa51294cee7609c9144d7eb5033b86e2303052a809685af1cfadf7" } } @@ -9293,19 +9419,19 @@ }, "3cd575e6f4339e948534ca4af1e44cf6344409e1e4b512d36cc94c86b15ec036": { "ru": { - "updatedAt": "2026-02-19T02:24:10.258Z", + "updatedAt": "2026-02-24T10:49:33.937Z", "postProcessHash": "4d1b33713670bdfb4afae511d7716a967eb817492be34d7277fb8a0896ee4104" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.271Z", + "updatedAt": "2026-02-24T10:49:33.948Z", "postProcessHash": "691359e452858e5f7d72b05e779f167ccd7c836756629e18b5c4fe55fe636d71" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.272Z", + "updatedAt": "2026-02-24T10:49:33.949Z", "postProcessHash": "85de224dc23d4a492768241069a82c5598d116211ff9e3705760a009faa2c04b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.297Z", + "updatedAt": "2026-02-24T10:49:33.972Z", "postProcessHash": "fec55f954f6370dcc69196e9da324783669717f1544600434fb73c897d13e06b" } } @@ -9327,19 +9453,19 @@ }, "7d28b8ed8b03540f6d57f3029b982d467996ac452e2673f185ec33516a1b0573": { "jp": { - "updatedAt": "2026-02-19T02:24:10.238Z", + "updatedAt": "2026-02-24T10:49:33.928Z", "postProcessHash": "912311a8294730dd12a62fc3ef408dc7801dfb66827cb28751ae67e9dc4b9042" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.239Z", + "updatedAt": "2026-02-24T10:49:33.928Z", "postProcessHash": "db6075e2baa82318cb2c26b5fb602877916b823bb479fbc2f927697d572a837a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.240Z", + "updatedAt": "2026-02-24T10:49:33.930Z", "postProcessHash": "9fba72ea28648f6a09e2b9ad851645f3747e8a1615f77576b23b788f77421290" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.293Z", + "updatedAt": "2026-02-24T10:49:33.968Z", "postProcessHash": "37f6e3c342898ec944d12e69bbfffdb65e82d5bb2d095253c9868cc6656b980d" } } @@ -9347,19 +9473,19 @@ "65f86c7c3a06da5be6ca7c02d2ebc67707b92772d464e19a9f17a4ed1f5068e0": { "816a9dda53486f2f740142aa953a0c567c672d1d673898a9ad9493dd248c9c0b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.169Z", + "updatedAt": "2026-02-24T10:49:33.842Z", "postProcessHash": "7e11ed0c5dcb0c6e76dc391775ef3e9c74d1a5e48a5004f371dda96f913e9623" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.171Z", + "updatedAt": "2026-02-24T10:49:33.845Z", "postProcessHash": "62edd7029884c10ee1282b11c818559ead4e77f96745f0fd1259fec0c4fd795e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.170Z", + "updatedAt": "2026-02-24T10:49:33.844Z", "postProcessHash": "0b8436350b4cb1bc60cf44ffc071f14e2b4bee8eebf50f09a600c52cbd6b8171" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.299Z", + "updatedAt": "2026-02-24T10:49:33.974Z", "postProcessHash": "cd10cb7ec24be149a7db947c1c1895ebc9e6bfcad3bb5bdd8a333c034daf6bc5" } } @@ -9381,19 +9507,19 @@ }, "e19f84fa332a03b0b04600f351fcd7571d8605643877feae6504dd2259afb383": { "zh": { - "updatedAt": "2026-02-19T02:24:10.246Z", + "updatedAt": "2026-02-24T10:49:33.932Z", "postProcessHash": "bdc09ef9d6ac1269d1170dec9ae63caea9305c54a3d37ba20760f1fdffd0ba47" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.252Z", + "updatedAt": "2026-02-24T10:49:33.935Z", "postProcessHash": "2c2d211edcf9ba814daff395f8081823e41a632cfbfd7bcfcff98a4a313e404b" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.275Z", + "updatedAt": "2026-02-24T10:49:33.952Z", "postProcessHash": "d5ac3cda4362a8098ddce4f77f99903f6ede0f6d1b3e206e260ea0ca3689cdcc" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.288Z", + "updatedAt": "2026-02-24T10:49:33.964Z", "postProcessHash": "b83c6113e0b3c879be105d527ebba07e18326736f916a98e586cf87281ae5882" } } @@ -9415,19 +9541,19 @@ }, "86d29edfe0e45babf83d289f53a2bbd74efd6f96df83f271c306e36dd9d2bca3": { "zh": { - "updatedAt": "2026-02-19T02:24:10.192Z", + "updatedAt": "2026-02-24T10:49:33.869Z", "postProcessHash": "2c265de4d897c2a36c7754084271ea4b31cf53802888eb24a3fdeb15262d6edb" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.195Z", + "updatedAt": "2026-02-24T10:49:33.871Z", "postProcessHash": "f4c5b69d26bd40b219868ed2a51ba37c349c3af96333b0407aeb804add0101b5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.206Z", + "updatedAt": "2026-02-24T10:49:33.886Z", "postProcessHash": "f700aaf7b220ca95d133996bb80dcba20e871cfd15bfccca573006324d5247a2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.214Z", + "updatedAt": "2026-02-24T10:49:33.894Z", "postProcessHash": "c360e91867596c426444a903e5af67d515fe5010c747110a552f3676ab954dbe" } } @@ -9464,6 +9590,24 @@ "updatedAt": "2026-02-19T02:24:10.289Z", "postProcessHash": "229872264e4cc8000f16af9ba2c49705f94be77a75be267e1459b85a8645cc97" } + }, + "2831d7518051a262be4233283336eccd536ae10f603e2fa96fe3d43e34f6a609": { + "jp": { + "updatedAt": "2026-02-24T10:49:33.978Z", + "postProcessHash": "58b1f831a498711cad7869e8f3066b22fd4cc3555a52aced2e0cc337e2a57a09" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:33.978Z", + "postProcessHash": "e65206aecb7ab4a3eb5a0dc09d4ef599c811ad1523832d09404c7d6a11f7e163" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:33.979Z", + "postProcessHash": "b5e57c5348784aa68f03d8432edba667e4ab1af7b87ae9726ea950e23953b219" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:33.980Z", + "postProcessHash": "640a566018ec2a8d5d9fe0775abf4a91482df11858518ba25172450a2d00e229" + } } }, "8a737109d61aff4ff62c3cea1b972f0a7863c8fef9c1f3658e42f4cb31df1392": { @@ -9483,19 +9627,19 @@ }, "be39b54c39e988a07847f71dd47ea931cf3b8fe285a2f57923837791feb226eb": { "jp": { - "updatedAt": "2026-02-19T02:24:10.249Z", + "updatedAt": "2026-02-24T10:49:33.934Z", "postProcessHash": "dfd62f9298979074038ee6b649c59b5d16e2f49317bb1df87b2b6a9c17429f43" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.265Z", + "updatedAt": "2026-02-24T10:49:33.941Z", "postProcessHash": "f78f3d92b02dc946f152f99f152347f68582bafa9013fff3df00f48f37a6f693" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.269Z", + "updatedAt": "2026-02-24T10:49:33.946Z", "postProcessHash": "6e365ac1a9fca172a2e3df5736df96ee130eeceab34a9756f01119f4ef52849d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.289Z", + "updatedAt": "2026-02-24T10:49:33.964Z", "postProcessHash": "1cd550c7411679f0a4cfe797d745d38fc2ecdba31f01c9c0364c6d7964a9a314" } } @@ -9517,19 +9661,19 @@ }, "b93a8fc23058f234021d08d0c3e7e3c08ed968fc280c102ace4ff6ec4fb832ee": { "ru": { - "updatedAt": "2026-02-19T02:24:10.179Z", + "updatedAt": "2026-02-24T10:49:33.856Z", "postProcessHash": "da570b6b45865e1ece74e58417785b6d733b4c0e08e7bde88240a950eb4574e6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.179Z", + "updatedAt": "2026-02-24T10:49:33.856Z", "postProcessHash": "4e504f35730705119ca18d46a9ff73a8f57fccb182491a1f9d50f50988f0eff5" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.180Z", + "updatedAt": "2026-02-24T10:49:33.857Z", "postProcessHash": "8fff83ee28279c4b82d09826a74587d0761d90cbafaa4a2ba3042a40b3567f8b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.292Z", + "updatedAt": "2026-02-24T10:49:33.967Z", "postProcessHash": "7e11bd5d28047e2c45cab7af53a7e6e5d33b632f9098a6a8118b57d8ff5c2a33" } } @@ -9565,19 +9709,19 @@ }, "65535192d207d49d2c9da980b29a6b9c6e92ac014cbfdbe7b8e244097b11fd0a": { "jp": { - "updatedAt": "2026-02-19T02:24:10.244Z", + "updatedAt": "2026-02-24T10:49:33.930Z", "postProcessHash": "5634214577a58d47355ef762b08c70ac4347f37d871ecf505ebbe2bec769b6cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.244Z", + "updatedAt": "2026-02-24T10:49:33.931Z", "postProcessHash": "78b7c35f72877f7de78c511688335c1e5ad4deeeccbb46eae1a8925dd5ced439" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.245Z", + "updatedAt": "2026-02-24T10:49:33.931Z", "postProcessHash": "df9bd6cd3cc257c6e5e6c32bbf8770901082e4c6bce68ba4d90d1e1f9bfca9ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.303Z", + "updatedAt": "2026-02-24T10:49:33.977Z", "postProcessHash": "9d4d23dab5df6acd6419aacd3e54df3654b2b28a5ea929e752fa009d35e2593b" } } @@ -9599,19 +9743,19 @@ }, "81ca6a60d96a82b190fa592040b71a47fc7670c09760ef5ca991c297e94b9848": { "ru": { - "updatedAt": "2026-02-19T02:24:10.261Z", + "updatedAt": "2026-02-24T10:49:33.938Z", "postProcessHash": "22715f7ad67ec221da5c1a14575676a990f5623a5a310d6246a8a049af20812d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.267Z", + "updatedAt": "2026-02-24T10:49:33.943Z", "postProcessHash": "c85d3e545ee581683f24d21521fa3bd9ef6dcc6f438c3c2c3ac6117d2d7eacf2" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.277Z", + "updatedAt": "2026-02-24T10:49:33.954Z", "postProcessHash": "e29b2394ca5284ed4131f707c01e122708acc4bff703b395a41b0edabc81bc68" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.287Z", + "updatedAt": "2026-02-24T10:49:33.963Z", "postProcessHash": "ed6c6fc3260c0d02a8556a127b56fc315be4722c5ab07e585da8f391c012b35e" } } @@ -9647,19 +9791,19 @@ }, "6fd771cd9c79a899864206e1edf436925ab9e59f04a7b726cc38d28467f48057": { "zh": { - "updatedAt": "2026-02-19T02:24:10.263Z", + "updatedAt": "2026-02-24T10:49:33.939Z", "postProcessHash": "85c4eb0702e781842465ac83762c86d098810f607b53b689020bbf2c81ceeed6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.271Z", + "updatedAt": "2026-02-24T10:49:33.948Z", "postProcessHash": "57a8cbadac7a12ab38df85f32def77dc6e306ed23af160aac26c04d278635cad" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.279Z", + "updatedAt": "2026-02-24T10:49:33.955Z", "postProcessHash": "2a0ea7685d1ccd4166931ee02509e1626db9b00d7e66408b0091a50c4dc966f1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.300Z", + "updatedAt": "2026-02-24T10:49:33.975Z", "postProcessHash": "7df9da36b8ee1ea8f5b3233ba02fcf9c7bffb0107083c88e46646d2b611f9c17" } } @@ -9695,19 +9839,19 @@ }, "ac44af1e09ef6df3a9faac8fa240f5c039a2f5e6396e0bcb5d8555c5ff6bdae6": { "zh": { - "updatedAt": "2026-02-19T02:24:10.241Z", + "updatedAt": "2026-02-24T10:49:33.863Z", "postProcessHash": "2b88e515d8c84449bf6be94f851fa623380b72ce5e6a2257a03d8cd1632cfb82" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.242Z", + "updatedAt": "2026-02-24T10:49:33.864Z", "postProcessHash": "1228b19470c765c8d11da27036a87389a0c7871c3d3c414ec0710e311c0e8097" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.243Z", + "updatedAt": "2026-02-24T10:49:33.864Z", "postProcessHash": "a98bda1842b8a31ce44908440dcdc3f2e4041badfdd53dd1b3623f7e96460878" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.300Z", + "updatedAt": "2026-02-24T10:49:33.974Z", "postProcessHash": "1b8a4f01884747fbbf7eaf0a69cdd45fe8c00dcb75ed1f59a8f413bc254b11ad" } } @@ -9729,19 +9873,19 @@ }, "c87a86b470f93336f37743fb7676c5b8b03562d3a65b8dd3314dedbdbb424680": { "ru": { - "updatedAt": "2026-02-19T02:24:10.181Z", + "updatedAt": "2026-02-24T10:49:33.857Z", "postProcessHash": "44e57733b578464d2ff7e50b0eba60452ac52cbdd574b65eb0dc9ca761c7d085" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.183Z", + "updatedAt": "2026-02-24T10:49:33.858Z", "postProcessHash": "9b6b28d5d648fb0638387dab2fd5f43df65240b2d3a6b6e5325ad48a2a2b0482" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.185Z", + "updatedAt": "2026-02-24T10:49:33.860Z", "postProcessHash": "e19e06958b4dadb976b9c56f543aa7f8d95a8184da80f666559f82483ae59db6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.294Z", + "updatedAt": "2026-02-24T10:49:33.969Z", "postProcessHash": "f371c390e2bd05329e56b997cb3f16ecf1930c6533c9c154edca9af98cdd22da" } } @@ -9749,19 +9893,19 @@ "ca7eb037869880c9ebb1a34c0000cdbfc8fdc9225de1f230ad67b8fceeb858de": { "fb2d804909b58e74a6d190031cfb86ce2cfa560d0444d3bb3d0a0af94da23268": { "jp": { - "updatedAt": "2026-02-19T02:24:10.173Z", + "updatedAt": "2026-02-24T10:49:33.849Z", "postProcessHash": "7adef56a9c57f6616e24ecc290ec66d9f28864107431a78bd3ea2b6bb9ea3f5a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.174Z", + "updatedAt": "2026-02-24T10:49:33.849Z", "postProcessHash": "dabab5f1aed2bba71dea04c8cc1cc80dfdb1699c28c6f5c07b7e0233740a008c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.172Z", + "updatedAt": "2026-02-24T10:49:33.846Z", "postProcessHash": "8d2d028a04d16d36af130415b78c5c5d2ebe46b83066a3a72d02de41d65081d0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.290Z", + "updatedAt": "2026-02-24T10:49:33.965Z", "postProcessHash": "b7eebb3702ddcd862cd8810a68a8b137d7ef6e9c198a14088765f39e80f8ffdf" } } @@ -9783,19 +9927,19 @@ }, "c35d8833441f6759b166f2eb1bd599fef9bbf686151f645e123a5ad0dbf050cd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.190Z", + "updatedAt": "2026-02-24T10:49:33.867Z", "postProcessHash": "48b554e492b8cdb19bc83cc9f09fa0332f8f76d5914cd6ddb464d6c0163553b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.202Z", + "updatedAt": "2026-02-24T10:49:33.880Z", "postProcessHash": "5e05f537736da612a5514690e7fd874afb6f98f994e86eea670c911271aa4a1e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.210Z", + "updatedAt": "2026-02-24T10:49:33.888Z", "postProcessHash": "5306d42f820ca532ed6abc1c611530257cfdaac1d08b88f8c8589147e93d4e4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.218Z", + "updatedAt": "2026-02-24T10:49:33.897Z", "postProcessHash": "1413cd90d1cbd887465d494e539106ac48904dfd871cf15cbf383d6de8a5cc3d" } } @@ -9803,19 +9947,19 @@ "ddcf8dfb6b1a4d5a1ed98c2017cdd7ae1fe774db2009725b2bf3d5ca4a50b322": { "4f4dfdc7521283f8c0348d0878aa061e186e3e3aad4e92d55841f1902f00e3d3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.176Z", + "updatedAt": "2026-02-24T10:49:33.851Z", "postProcessHash": "d372914ca4b7b264cc526d5be61d5c53e2167de04eadf3b9db238072e1bb7269" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.176Z", + "updatedAt": "2026-02-24T10:49:33.851Z", "postProcessHash": "cdfd58dbdb9476ce731e980bd3cdfa9824680df8077904747ca666546a40bedf" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.175Z", + "updatedAt": "2026-02-24T10:49:33.850Z", "postProcessHash": "dc9a850d99b918228dab18de14168fabf4bece93b8c985bc30d120b6fd66b30c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.216Z", + "updatedAt": "2026-02-24T10:49:33.896Z", "postProcessHash": "c5adb2a9ff9325433b29f20dd890468a20f9f79ba5c6cfa9498c6ecba167fc32" } } @@ -9838,6 +9982,24 @@ "updatedAt": "2026-02-19T02:24:10.401Z", "postProcessHash": "984a9b55d40e9d62490b2304c07bb0a9abb4ed77199b7b151a9ea29b7abe83f5" } + }, + "cbdf26fe14fdac5b6c6107d7e67511807e4fceec70abadaa0f185efea349567b": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.098Z", + "postProcessHash": "3189d6a068e7d4a5bca94913c0b2a89a554f5f627d3a7e4f6b25910df56be2f5" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.099Z", + "postProcessHash": "493a510faf48e3d2b9009d4734c4d25112fdcefe08b06391d252c78fbbf267db" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.099Z", + "postProcessHash": "cc392bcd3d0fb769789e0a59566354ae46f1a5facc0ef107cd2ed39dcd116400" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.100Z", + "postProcessHash": "aacbe6a6df8854a6b0e0868fd1d48f802568fd7b07f4e6d90d068407ab3bfd25" + } } }, "0e59ff691e81e6bb5df727b7bb1a30005ab315602d293b41cb391ed4b5409e8e": { @@ -9871,19 +10033,19 @@ }, "b74b001f1cea24a62d696de0ab7c7a8a48227d727078393b0d8314b2621f3f6a": { "ru": { - "updatedAt": "2026-02-19T02:24:10.340Z", + "updatedAt": "2026-02-24T10:49:34.014Z", "postProcessHash": "c5f7af5aeb34aaabdcb97ce037477f724f919afa1b40fef22799d307711de386" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.341Z", + "updatedAt": "2026-02-24T10:49:34.015Z", "postProcessHash": "893c8bc0b6cddc23571be08067f7e725dbfdafc2b7ee7b09f0526c0d9c7ed953" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.346Z", + "updatedAt": "2026-02-24T10:49:34.021Z", "postProcessHash": "bb7c52698ac1e1c6f762fe6abbc91c7f37cccf48fbc97f6795285473649a73d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.358Z", + "updatedAt": "2026-02-24T10:49:34.029Z", "postProcessHash": "84a1b0027cf3010c69bdb527cedf10c8383fc18c15140957d841467e834aa224" } } @@ -9891,19 +10053,19 @@ "1be2e6251cf6bfefceeb9a1d2a2cdfcbca4f3dc24d4303c2a666b520ce7dbc5e": { "79ae2db2ede93c3db9f3aa10741077dfe47e966f67fbb578af090bc05ef54683": { "jp": { - "updatedAt": "2026-02-19T02:24:10.322Z", + "updatedAt": "2026-02-24T10:49:33.996Z", "postProcessHash": "ddb29fd87e6c912f3c2b90c15394dc05723f2666d56852589370a0a1ffdc0185" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.325Z", + "updatedAt": "2026-02-24T10:49:33.996Z", "postProcessHash": "ee73e4ac8c906b84e2173a0df64feebb577b36a1c84bbd8f4896e98ed49a4256" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.304Z", + "updatedAt": "2026-02-24T10:49:33.981Z", "postProcessHash": "c67d6bb449ecfc515d10fefc1ec7d1e7f18619615b76dc58c3de72b227a48664" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.351Z", + "updatedAt": "2026-02-24T10:49:34.024Z", "postProcessHash": "ebc84f647f4072c6ceb87071e12a655bf01fe5948d0646a3c223f30c31c3f04a" } } @@ -9926,6 +10088,24 @@ "updatedAt": "2026-02-19T02:24:10.352Z", "postProcessHash": "f066291b0b3e02ea100c336935779d74eb9ef0766db75c688da9722b650d7766" } + }, + "f61340073664032af3647789b8f0f0e8b42f17ec8fd379cac24187175b487b15": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.040Z", + "postProcessHash": "ad23f3c47a2a2522ac5960054b02c19ca24c51ef1ba4d45762c5b4c1814360cd" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.040Z", + "postProcessHash": "f5f85cbcd5bddae74bd974ac9d9583115b055a96775aa8d99661df4f13670ad2" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.041Z", + "postProcessHash": "6088124b929ca2c5103b21d1759599df133c3b1e8e03884ef43679ff3e3bcbf0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.042Z", + "postProcessHash": "c143cfc13cf2caad5e5111389e2ddfbf776a3f9f5a77036975275c8847948f17" + } } }, "327d9de85dcf4e9908ef639e81f0b4c26211261cdc7427d31c00d57a68f9ea57": { @@ -9959,19 +10139,19 @@ }, "e9f388bef3be106d7dce61abbe071ddc2e36499e7b7b69506eca33c944ca8f01": { "zh": { - "updatedAt": "2026-02-19T02:24:10.345Z", + "updatedAt": "2026-02-24T10:49:34.020Z", "postProcessHash": "1832d726df6d92deec5d007886d580cf7dc3ee940acc742963156b1fbc302970" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.347Z", + "updatedAt": "2026-02-24T10:49:34.022Z", "postProcessHash": "78e7a9cb05df4525a8ee3cc1657251c51ac552d9df2d0575092ceb2fec1b71b3" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.348Z", + "updatedAt": "2026-02-24T10:49:34.023Z", "postProcessHash": "199cdc29d3dc1cf7e4dbe27975f2eccf84983bc08e6d7b5d698acfe0874a974d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.360Z", + "updatedAt": "2026-02-24T10:49:34.031Z", "postProcessHash": "26b391fd154e9f041284aa80ec276a23755dc257d19693e8ef0443fa0e121369" } } @@ -9979,19 +10159,19 @@ "34fc130494be0d69639ef51384f698c85712275c82f72ea0884fc912c61fdf98": { "92c9764efaeac8ae2150358dd44c1bb27f41eb7fecfcbaeaa5223b274ca6abf2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.311Z", + "updatedAt": "2026-02-24T10:49:33.986Z", "postProcessHash": "9cf516517856f060f76aa8de685899016baa20d871998cbf6430ae6c88c7c639" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.308Z", + "updatedAt": "2026-02-24T10:49:33.983Z", "postProcessHash": "f6c106fc14ed26e6fc946486d96a04b4ffc22924a4868500550c2f154c67915f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.310Z", + "updatedAt": "2026-02-24T10:49:33.986Z", "postProcessHash": "5e36fc80058ca713277fa795d235c32348c24066755c172e3e899ffd486fe13b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.361Z", + "updatedAt": "2026-02-24T10:49:34.032Z", "postProcessHash": "e4a5169d59b75ebef657b8ec42c5256103ef735fbf8f1315e599beb27b866714" } } @@ -10027,19 +10207,19 @@ }, "f78cf84db45e5ddb9ecf232e50105d19966831878a56bcfdbbeb73c64e1c4fd2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.335Z", + "updatedAt": "2026-02-24T10:49:34.008Z", "postProcessHash": "fd9f77d74c7cd1a94696a3991cbfbb23ef5886c739c5300d6690a8cc69060c43" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.335Z", + "updatedAt": "2026-02-24T10:49:34.010Z", "postProcessHash": "6ddc8324e2b8914b387c7799dcafb3bb4e045bd9fd4c073053dbcbbc9784bf6c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.337Z", + "updatedAt": "2026-02-24T10:49:34.012Z", "postProcessHash": "22da1ede3d94973f71f76cd5d067c077855406ba04c3b9df4e513b6438b1dfa5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.354Z", + "updatedAt": "2026-02-24T10:49:34.026Z", "postProcessHash": "6fff3923ffe2f3e3ecb17b3289cb93ebe3e112d2ebe4b6946ead4d6254e610d3" } } @@ -10061,19 +10241,19 @@ }, "dd735cc8d91200ad8dcbaea8d7f1cd530fb2fa005512b67e8b90598f7e64e3f8": { "ru": { - "updatedAt": "2026-02-19T02:24:10.329Z", + "updatedAt": "2026-02-24T10:49:34.003Z", "postProcessHash": "2f03f5e26b89570efcfb090796d16b2129e2b5126949bd0cadc95f5b4bdc0614" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.330Z", + "updatedAt": "2026-02-24T10:49:34.003Z", "postProcessHash": "8be64311f328c25c1a180f2140f171e1dd59e66800747f4559372ee0ff01e961" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.330Z", + "updatedAt": "2026-02-24T10:49:34.004Z", "postProcessHash": "26f4127a80a424346511ec9f833ff18ee09a53eb21453e29584b64c23d26b50e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.356Z", + "updatedAt": "2026-02-24T10:49:34.028Z", "postProcessHash": "68696fa4fd434b9db7a416653dd42769f1b06581713dc62e21c46744820cc19e" } } @@ -10095,19 +10275,19 @@ }, "dd732d7ce7fb7087100cf0df54bcccb3d8672b2bed6daa7b9d9fe9cf2246beef": { "ru": { - "updatedAt": "2026-02-19T02:24:10.485Z", + "updatedAt": "2026-02-24T10:49:34.145Z", "postProcessHash": "457212cb126bf31d9a7e694300aeba62b29fd2d10a0b9a53a8c390c0b324c5b5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.486Z", + "updatedAt": "2026-02-24T10:49:34.146Z", "postProcessHash": "4e67bb3786189cf1091fe9fa60691376e297ce68bd3c6a5eaaf8482dabc22659" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.486Z", + "updatedAt": "2026-02-24T10:49:34.146Z", "postProcessHash": "80e06d059e5a825bddd8ff633ffc01a75aeb4fbe540892e2c4709524204d2441" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.497Z", + "updatedAt": "2026-02-24T10:49:34.157Z", "postProcessHash": "0ccd8a95f92ddac282326e80620607232b63f098ec5c7bdeadb73731c5b5c47e" } } @@ -10129,19 +10309,19 @@ }, "e9f2de8ab3913fdff708a867d2de78917376d233add296c2866da454ccc725a1": { "jp": { - "updatedAt": "2026-02-19T02:24:10.395Z", + "updatedAt": "2026-02-24T10:49:34.074Z", "postProcessHash": "421132c8a07fa5457ee1ca669674ad2aec2dbc864205ac8a228e29955a470f0e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.396Z", + "updatedAt": "2026-02-24T10:49:34.075Z", "postProcessHash": "67d7560e99e8bc1df6ecedb8087e7e1e3f6e3a45f1a4330d0acf9eba04c59718" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.396Z", + "updatedAt": "2026-02-24T10:49:34.075Z", "postProcessHash": "f66e9160b9bf88cb7e1afc8bf6001892526a6996ca446e7721e0ec6e11fea3a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.401Z", + "updatedAt": "2026-02-24T10:49:34.079Z", "postProcessHash": "32b4bac3f79dda098530d4056f289c47e9733fd048d9cea7f6250f9abe50809f" } } @@ -10177,19 +10357,19 @@ }, "c2875c079a4c147a05f15a10bb3d2f8baa2c75839e94d75894563ab146468b15": { "ru": { - "updatedAt": "2026-02-19T02:24:10.336Z", + "updatedAt": "2026-02-24T10:49:34.010Z", "postProcessHash": "5a0734e4a05e8d33641eacc1e48a450fc3191f2cb3033cb914cbd82c781ecd98" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.339Z", + "updatedAt": "2026-02-24T10:49:34.013Z", "postProcessHash": "438af44478826261ee6dc6e6d195c59dbb63a0148bbbcc488f679a862c463072" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.342Z", + "updatedAt": "2026-02-24T10:49:34.016Z", "postProcessHash": "08ddbf5bb2608700b03ab4909ec7cf29ea17cd92f970842b30124f81d717cb39" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.352Z", + "updatedAt": "2026-02-24T10:49:34.024Z", "postProcessHash": "2ecefe2a5b32150c8c7f715306958ba2bdc8908aafab401d4e1ced5ca05b3e8a" } } @@ -10197,19 +10377,19 @@ "742de82015fab9560f32bc67cc0f07a9ca9e1ed3e7aeb11eb4303fa8a580185f": { "e8e388627f1d46545b74abb196d0b01e87cea3cc02063cec9c7cf6835a4f7d7b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.309Z", + "updatedAt": "2026-02-24T10:49:33.984Z", "postProcessHash": "340d61541e72a53f9289c87a2813288a6dafe8460e3577d74b53328bc6f4c850" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.309Z", + "updatedAt": "2026-02-24T10:49:33.985Z", "postProcessHash": "b4fc8a886062a73c95553fa76149f8457042ea6a864c0a39cf156d6e87325e4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.308Z", + "updatedAt": "2026-02-24T10:49:33.984Z", "postProcessHash": "06f9a98ca9d574acfe00c99c9c2ebaa8171aa830a3bda2e4f4bb487d9fcc697c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.354Z", + "updatedAt": "2026-02-24T10:49:34.026Z", "postProcessHash": "feb89a8ca79723fae7c9493d85d43673788db827e96788c7de04723792aac434" } } @@ -10245,19 +10425,19 @@ }, "a0c29b72298bd8a3026f9938035bf63a3a5865e9211e305fb15681773f1ff393": { "zh": { - "updatedAt": "2026-02-19T02:24:10.253Z", + "updatedAt": "2026-02-24T10:49:33.936Z", "postProcessHash": "3c601a5bddc2ff4aab4a23cbce8554614f99119f7aea81b7929322418d6ae46c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.273Z", + "updatedAt": "2026-02-24T10:49:33.950Z", "postProcessHash": "233b16220fffeb314c9f3890b11745d6f83c6a092afb1caca61cb1feba998af7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.275Z", + "updatedAt": "2026-02-24T10:49:33.952Z", "postProcessHash": "a6bd010a52ab646d089c0045c5c585981385aaa59d1b226cbe25661d205289f6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.302Z", + "updatedAt": "2026-02-24T10:49:33.976Z", "postProcessHash": "4cae1447e4cfd3393d13aaa0d07c88ebc5a707d375dce6c8c7b9c350bd52975e" } } @@ -10293,19 +10473,19 @@ }, "05779de7932706c00f12f4608a0a7fbcb8418180ab1931f6226555ce72a6249c": { "zh": { - "updatedAt": "2026-02-19T02:24:10.338Z", + "updatedAt": "2026-02-24T10:49:34.013Z", "postProcessHash": "a72bb278ae893d8f08e281c67097302b1d92472dccac01b14b23cf9a39aef4d4" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.342Z", + "updatedAt": "2026-02-24T10:49:34.017Z", "postProcessHash": "38bbcb49e6cde30d30cc570b62e3c413445545733a996a0ae11ed5388d3d466a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.343Z", + "updatedAt": "2026-02-24T10:49:34.018Z", "postProcessHash": "3825d1d3a50be0d077e27d34eeddc3ee65ab395660276c9358304b8736b445c4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.359Z", + "updatedAt": "2026-02-24T10:49:34.030Z", "postProcessHash": "9e58a3b8e52e78481ab96f13c837d3133c49870466f7a94406c51b3ea8b16a96" } } @@ -10355,19 +10535,19 @@ }, "91bdad46b88c29bbc5d48a903ecb05661a4aebd8a85ac387fc72f66e9007f92b": { "zh": { - "updatedAt": "2026-02-19T02:24:10.399Z", + "updatedAt": "2026-02-24T10:49:34.077Z", "postProcessHash": "a381050998e8367beba85088334d8a9f595654af80293d26283cab9ee5291a41" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.399Z", + "updatedAt": "2026-02-24T10:49:34.078Z", "postProcessHash": "af7bff8ad398f73cf000fcd2ee13984ad257452178ae42f2526270ce238eda52" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.400Z", + "updatedAt": "2026-02-24T10:49:34.079Z", "postProcessHash": "e1452ccfc06a5d33ba3d7ba3d129a3c3bb9cdfb2a96ef215add18f5203d49d81" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.405Z", + "updatedAt": "2026-02-24T10:49:34.082Z", "postProcessHash": "2dc5d6da8ec7c17a9572c4ae509d40c1a704f21c09b6d92141ee02546d0d7337" } } @@ -10443,6 +10623,24 @@ "updatedAt": "2026-02-19T02:24:10.361Z", "postProcessHash": "cb52a16290df446ffd5d0ba269d70457ae9a1006d58df79c198840b4e411e361" } + }, + "366be82d9dec1b0998988c82097e8dba622951ea0295d94d873392aee22a3a52": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.036Z", + "postProcessHash": "f70685d317909acc596b17b86881bf79bca97d0d88a12e82c151107af087ab12" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.037Z", + "postProcessHash": "edf05ed23998287782f6953a178bf505280eb38d8521365103c49086111494c3" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.038Z", + "postProcessHash": "6952d31f6dad5d713fd18e34b94d8e0f2592e3ba9600c48b1bfa71a62312fd8e" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.039Z", + "postProcessHash": "08d52d9fb733fd56100c0ea35ee356fc0898fc540e8ebe65949ee5b51fef7dfd" + } } }, "af79bbae5029e0964764673ad906f12ea5d0cbd9f6358c69ef5ef5e1e2abf9c8": { @@ -10476,19 +10674,19 @@ }, "d427bac7ec908e5a4a9a07b5884ff6526c4d480fb817ca53a881cef9b22b54ab": { "jp": { - "updatedAt": "2026-02-19T02:24:10.343Z", + "updatedAt": "2026-02-24T10:49:34.017Z", "postProcessHash": "749d33a70b40798857bfa536585dda8b62cc3f3fc4157c5ddeab53e7289a5872" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.344Z", + "updatedAt": "2026-02-24T10:49:34.019Z", "postProcessHash": "88a9d973d0210d17ea8a40f534c0472b2314d6f87118d31829d423b274fd3cc8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.344Z", + "updatedAt": "2026-02-24T10:49:34.019Z", "postProcessHash": "87a95a5112d77360cf58719105517c442d55dbf0e32d45ef9747d6ea11c30a82" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.355Z", + "updatedAt": "2026-02-24T10:49:34.027Z", "postProcessHash": "1c972b1bdd7d81e2d2221c686d3ffe5b58a27b37a6867a59e04803ae98c65c27" } } @@ -10524,19 +10722,19 @@ }, "24048c24eb329217daf7bc92e5ea4b50d53826a390c581cdeb44524a2cb3287e": { "ru": { - "updatedAt": "2026-02-19T02:24:10.332Z", + "updatedAt": "2026-02-24T10:49:34.006Z", "postProcessHash": "61daa265d4f6a8ff3d27dc6088c93d3f85dc75f253b83066e1c9be91d825555e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.333Z", + "updatedAt": "2026-02-24T10:49:34.007Z", "postProcessHash": "5c46dfe3deafc759158e59e343afde9aa55a8f8002d7ea4fd35b44c34aed950d" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.339Z", + "updatedAt": "2026-02-24T10:49:34.014Z", "postProcessHash": "99147f61f3ab3d973d99659becff0cf276c7fdf28786e89fa00f9d13b5b0b235" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.358Z", + "updatedAt": "2026-02-24T10:49:34.030Z", "postProcessHash": "d20c3ebafcef59cac5130f5e5f3f648c6193d118608c770c446fd6e71999c212" } } @@ -10586,19 +10784,19 @@ }, "62ab4d71c7d1892e11bc7df0ffafb53b86ed5bebf4392690dc8186be7b3d1626": { "jp": { - "updatedAt": "2026-02-19T02:24:10.251Z", + "updatedAt": "2026-02-24T10:49:33.934Z", "postProcessHash": "0a592b12ea7970a94cb9f3d98199bb047598267ddc016e6dcc7dc727b6f6d8f2" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.269Z", + "updatedAt": "2026-02-24T10:49:33.945Z", "postProcessHash": "6e55750361030232ee08de952246643c4d1b70c914b4049d3d1f98643f614fd8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.276Z", + "updatedAt": "2026-02-24T10:49:33.953Z", "postProcessHash": "7a8cb04943365c493da1eac269b2e82d1916ae01f3722c3749ffbe44f286c7d6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.287Z", + "updatedAt": "2026-02-24T10:49:33.962Z", "postProcessHash": "ab692aafb6c85561b633cc8af26f043c85f7c1a7c2a5e585c0483daf0b59f9e2" } } @@ -10634,19 +10832,19 @@ }, "dc50ad050aa37bfe91b9c62560ed4ecbb63affcd936d6085c89dc219f8a12e13": { "jp": { - "updatedAt": "2026-02-19T02:24:10.487Z", + "updatedAt": "2026-02-24T10:49:34.147Z", "postProcessHash": "b01cab70c92e038cf45bda2799fe456ff2b9d4e3569431bc99d90a3a1d733a56" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.487Z", + "updatedAt": "2026-02-24T10:49:34.148Z", "postProcessHash": "cd60f1b7920fd740dde96ecc8ad366e1d5fa2b2a13f0ebb5b318fe54e8572dd8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.488Z", + "updatedAt": "2026-02-24T10:49:34.148Z", "postProcessHash": "4a839aaa12c3336ae4bb394bd43460b11da716ccca8d956e323dff515fba0642" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.495Z", + "updatedAt": "2026-02-24T10:49:34.155Z", "postProcessHash": "2afd6e5537e4df3149400855e3efc6d43460378e5d882bdf94ff837f419eab62" } } @@ -10654,19 +10852,19 @@ "dc33a2eb5786282387491dfbb49c8ff622ea41f11b3278436c7f82ab857f0228": { "6d34c7aa55a8fa5def4e3f2bff389c666852c48291ebab26dbe11069e1977d67": { "jp": { - "updatedAt": "2026-02-19T02:24:10.234Z", + "updatedAt": "2026-02-24T10:49:33.923Z", "postProcessHash": "ae13a67967801dd0ce929234eb48c37996727ad87512119ee28f7e75c96bfeea" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.232Z", + "updatedAt": "2026-02-24T10:49:33.922Z", "postProcessHash": "5ecf9be18c26e6e6006bc03b2d43213a51202464e783db76b3d3b08c391f6f65" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.233Z", + "updatedAt": "2026-02-24T10:49:33.923Z", "postProcessHash": "8e9e0527abf15656c594e43103810fe9eb5712adeefd4d501cf7f1b615cb0781" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.291Z", + "updatedAt": "2026-02-24T10:49:33.967Z", "postProcessHash": "ecbc775c36d65fb6709e4c6103715844c0ac5b4339ff16468bb7189d425ffd8e" } } @@ -10688,19 +10886,19 @@ }, "2edbeb25eb89b5ccbcfaf48ed113b51c77c643a66ceaf81170f2bb75f681b80e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.458Z", + "updatedAt": "2026-02-24T10:49:35.120Z", "postProcessHash": "fdccd98e3c721e8440d1695a5937e9ed2503e542be3f5f874da0c3536c618b65" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.459Z", + "updatedAt": "2026-02-24T10:49:35.121Z", "postProcessHash": "9fac1d06e3e794e56017742196f70982cdf606a90398e544f39675f18d3851fa" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.460Z", + "updatedAt": "2026-02-24T10:49:35.122Z", "postProcessHash": "0823c89d2b42434a33ee6179a30a7027b255fc8cb2758bdf964dfbafd68b0283" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.559Z", + "updatedAt": "2026-02-24T10:49:35.208Z", "postProcessHash": "545d9f135bd1be373e93aebc372f45c1254796a5ffc1c3bd5e6f3a01b8c74334" } } @@ -10708,19 +10906,19 @@ "13e624cf649963b0430c85b33066c42e9a463e53696049fdef557841854d666d": { "81c2903aa8b7c3295234e5c1b7fdf2be7dbc55fdc9edac19c3d4675fd1215205": { "jp": { - "updatedAt": "2026-02-19T02:24:11.357Z", + "updatedAt": "2026-02-24T10:49:35.110Z", "postProcessHash": "215e92d8d8311d8574e72d1c97fd6bfd44b8d75004dde2adcd8be18c0574a4ba" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.358Z", + "updatedAt": "2026-02-24T10:49:35.111Z", "postProcessHash": "35d559bbecd6c474927a619cbddcd459f94a79f4aa1881da6b1a742be685a3d5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.453Z", + "updatedAt": "2026-02-24T10:49:35.114Z", "postProcessHash": "c38684d640da58dc894a708e2740349c2094b927b008971e003b71875b8351bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.554Z", + "updatedAt": "2026-02-24T10:49:35.203Z", "postProcessHash": "317e1ee1a9e9ac29c9bd632c62ffa8b86bec73888e11b88441303e67bb2ef7cd" } } @@ -10742,19 +10940,19 @@ }, "c3ff551589fda47e6c34b9f2aa403ca812c988d973825e4965e4a4e9de583998": { "ru": { - "updatedAt": "2026-02-19T02:24:10.873Z", + "updatedAt": "2026-02-24T10:49:34.556Z", "postProcessHash": "387feacf5b4f19ffa3451f10d288c7ad6a765b7f74dbbc362d7d96fb4889c467" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.874Z", + "updatedAt": "2026-02-24T10:49:34.556Z", "postProcessHash": "ffe290d8a07c86d6ab1f3893a213150472a87bb861d333d1f257bba4349114ca" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.874Z", + "updatedAt": "2026-02-24T10:49:34.557Z", "postProcessHash": "8caf11a8114e24a3b05b8b5f58c0b56bfa803a43cb113fa91a4077a53c247431" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.893Z", + "updatedAt": "2026-02-24T10:49:34.575Z", "postProcessHash": "9d201ae35fecc076efa4c82b89e7f60ebc9f5d577856d5ea3efdb236d773a771" } } @@ -10790,19 +10988,19 @@ }, "e539bbb21f74172a015ece4f8895e969a11e3a83ac6f53c04e3e814961408a54": { "zh": { - "updatedAt": "2026-02-19T02:24:11.536Z", + "updatedAt": "2026-02-24T10:49:35.189Z", "postProcessHash": "71d06605cffd7c44b79cc590dc79502fdb3ed9375de60b6abc9777cdbe348c21" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.537Z", + "updatedAt": "2026-02-24T10:49:35.190Z", "postProcessHash": "0e1e346d8d4bdea1efa154a01f9c746b8fa4c0af3e291ef5b2217e7079ec3f94" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.538Z", + "updatedAt": "2026-02-24T10:49:35.191Z", "postProcessHash": "f00e72042c265e4b085c8b3e60aa02f4b1158bc9f0195c9c040844a466fc5788" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.562Z", + "updatedAt": "2026-02-24T10:49:35.210Z", "postProcessHash": "9b90d2537f58cfd06aa3163b5d0ed88a05bc09ee7dbd250a732d30a764b21636" } } @@ -10810,19 +11008,19 @@ "3ea83a8ef84ec6bbe25f2090619db1abe347ff2b73bca590d6c93d68a42e4e64": { "d03f731b06fef8fcaf928f6e3faf509894d47eaf5b4921a111e9884783dfaf7d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.359Z", + "updatedAt": "2026-02-24T10:49:35.111Z", "postProcessHash": "10d84339fafb2aea4258da0497bb1ac96827df3689d5c30a873f6d852d808442" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.452Z", + "updatedAt": "2026-02-24T10:49:35.114Z", "postProcessHash": "d3cb3d44eab419ec194df942d631ad96d267988aab46b00187ec6f6dc1d46dc0" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.452Z", + "updatedAt": "2026-02-24T10:49:35.113Z", "postProcessHash": "68605f3e258bfd7e769fd24205866c909d5535e3ee0d10316c5f6c60bb1cd549" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.557Z", + "updatedAt": "2026-02-24T10:49:35.206Z", "postProcessHash": "3e7464205dd75fa318b54f6ea658648b524bc96fb3907c8f169e2e5b3fbb0819" } } @@ -10858,19 +11056,19 @@ }, "c06bd70167e2b20e12f579e7cf03c32b1a24f990a8aead7a79dcd7a1b004e6be": { "jp": { - "updatedAt": "2026-02-19T02:24:11.540Z", + "updatedAt": "2026-02-24T10:49:35.191Z", "postProcessHash": "2abc78cf968d3e2929b3080fc819a1881c014b911f15bf562dbedb7edbda513e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.541Z", + "updatedAt": "2026-02-24T10:49:35.192Z", "postProcessHash": "6a340e2befa510650c5bd944cf6be49b8e8ee7bc992cdf96749095e6addc5510" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.543Z", + "updatedAt": "2026-02-24T10:49:35.194Z", "postProcessHash": "623001228ae3cb4d2f3a3357dd20ad88e66c8f7e2878957ba192cd14c6697007" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.555Z", + "updatedAt": "2026-02-24T10:49:35.204Z", "postProcessHash": "0efe64df84b4468c53c680f1730f97b352f3aad6bbfe65dd63c47f1bfe019a1e" } } @@ -10892,19 +11090,19 @@ }, "b0d2e021f7c1f8394b15e9cbe15bf61975378484737246106735251da6e0377e": { "zh": { - "updatedAt": "2026-02-19T02:24:11.541Z", + "updatedAt": "2026-02-24T10:49:35.192Z", "postProcessHash": "1bdefc2c14eca838f2445d35aec6834ea3bc7f7741286ffb759076a230eedfba" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.542Z", + "updatedAt": "2026-02-24T10:49:35.193Z", "postProcessHash": "eb24972ac3464c243e123471b4bb66a441ab7ff33e0612a54a6cb9f0ef1404c3" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.542Z", + "updatedAt": "2026-02-24T10:49:35.193Z", "postProcessHash": "a77c75cefe2342ce012ec005f32aeda04becfcfe4f8ca7cad584d863665897b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.556Z", + "updatedAt": "2026-02-24T10:49:35.204Z", "postProcessHash": "263ae41bbbe7487dc676fe2d0678ef3de1f1924772b00aa30ce320a3867924bb" } } @@ -10912,19 +11110,19 @@ "5e4520555f04067ffa7eb5af85e61960bb9ef0b5e53db65b7b0471c0eb67e3ca": { "7bb096151a00169df14ef9af359bf6d8949aae217704606f9a6b10a44d8ed7c0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.358Z", + "updatedAt": "2026-02-24T10:49:35.110Z", "postProcessHash": "b89c67a7681989a123d985b1389eacc149ca3a09c2aa8915d1ea7b63d460518c" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.451Z", + "updatedAt": "2026-02-24T10:49:35.112Z", "postProcessHash": "6479b7ae35f8a1c2d0566216f1124a1636a259c3e5aa8e4dcb036e7fc001e63e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.451Z", + "updatedAt": "2026-02-24T10:49:35.113Z", "postProcessHash": "4332fbebfc20d966117922e53ee916a8bcfb9b031177d82ca224c6a664a6a888" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.559Z", + "updatedAt": "2026-02-24T10:49:35.209Z", "postProcessHash": "f220a45d11648aa4d300af1cc00b691f55787dde0ff1bc0b31f47408116ff7ca" } } @@ -10946,19 +11144,19 @@ }, "e1dad8d5d5ac31090d7a88fdb0d3d68d2dac5a8431ba5dfe0fae2b9f53df176f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.538Z", + "updatedAt": "2026-02-24T10:49:35.066Z", "postProcessHash": "2da733158d1d9653ee99e70a11076f3d3066f7170b50f297bf84260adef16fc1" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.539Z", + "updatedAt": "2026-02-24T10:49:35.066Z", "postProcessHash": "f40b1b8336f00d8a5fabb74209d38fc06de3ac1780ea286af5409ccf1f2be251" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.539Z", + "updatedAt": "2026-02-24T10:49:35.067Z", "postProcessHash": "4224c6191b8670ede654cc0530f4a6848a95cc399af16795d2dd0b585c87cc61" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.560Z", + "updatedAt": "2026-02-24T10:49:35.089Z", "postProcessHash": "2ad072845a49083f1bfd4ccfc01388f9ae27368ba3deddea859722b32937a7f2" } } @@ -10966,19 +11164,19 @@ "78374142cbe93e8f6c7c78c21fae25fb7304d36492b6bf841f120cb0b757622b": { "8c65e21fe9e7b63afe26dee2f144ad334fde661179f2df54cde98ef19f746770": { "jp": { - "updatedAt": "2026-02-19T02:24:10.432Z", + "updatedAt": "2026-02-24T10:49:34.111Z", "postProcessHash": "33bbf26be7963ff5ddd789b9725c63d08099ae3b7ef66d9ee77d5e19d7bf3974" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.431Z", + "updatedAt": "2026-02-24T10:49:34.110Z", "postProcessHash": "60fecb25094c9d568e17efad847ccc1d5e2132c5a78ce0e9646d77d4eaf9d0cf" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.431Z", + "updatedAt": "2026-02-24T10:49:34.110Z", "postProcessHash": "49af3737faf0124ef76846a69709213ec5ecf0f816f7b54c9ec7e57e4d3f6e58" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.491Z", + "updatedAt": "2026-02-24T10:49:34.151Z", "postProcessHash": "907a0a2207f217d46971337bb96dc8d849e0a630bab7126b8c8f1825e5d31780" } } @@ -10986,19 +11184,19 @@ "7d77ec1ad6a5f022e0b46f5c3c3ce2c3fea37ff042d1b5dc03023407e067e3da": { "a014826091cc7de6ffe26de700b6870df49479656119a1c4582ab3ba9f32f66c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.839Z", + "updatedAt": "2026-02-24T10:49:34.520Z", "postProcessHash": "bdf232c57867ef6e40e777a8cf58361fed52524203af2c7b16f4784d93ef5b64" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.838Z", + "updatedAt": "2026-02-24T10:49:34.519Z", "postProcessHash": "0fe36b02eb3956d33e261314cfc9943b21fdbfb0fb863b3621bbe9e0b3bba79a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.840Z", + "updatedAt": "2026-02-24T10:49:34.521Z", "postProcessHash": "6abe93cbf17531635d41e1ff6993f1a356045c639b575531476c10d5e9a1d24f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.879Z", + "updatedAt": "2026-02-24T10:49:34.562Z", "postProcessHash": "a75a5230f02e38ed1a6ab5a689a807be26690cfab2e45d54eb158dc297f3a7f7" } } @@ -11020,19 +11218,19 @@ }, "56c2924502a1a956a95c47e532f5dbbe0c9d69ca771ee632dd44b75e72a3adca": { "zh": { - "updatedAt": "2026-02-19T02:24:10.870Z", + "updatedAt": "2026-02-24T10:49:34.553Z", "postProcessHash": "fac7c60380ec23b45e8d2a58eab9d0e3c0e2e8d9c86da9179004208ba25e74a6" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.868Z", + "updatedAt": "2026-02-24T10:49:34.551Z", "postProcessHash": "ffce2dca50cda85948a11b66fa58b4f73f169bba7388829ccf7b467a16a22a16" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.872Z", + "updatedAt": "2026-02-24T10:49:34.555Z", "postProcessHash": "f3962152629a0b62f993010fcff16719e8b8177583fa5c0aeff6e93389b6a695" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.886Z", + "updatedAt": "2026-02-24T10:49:34.569Z", "postProcessHash": "87bfc8584087ebc53633cdeab9ba77c3a471b5d50315cda02dd5f555957e8a29" } } @@ -11068,19 +11266,19 @@ }, "647fa80275f2f87ace747adbf3e4fb3e79db6a03597690a0dc888b72c8144184": { "ru": { - "updatedAt": "2026-02-19T02:24:11.404Z", + "updatedAt": "2026-02-24T10:49:35.068Z", "postProcessHash": "e4666acd0f899ab90109f5f85635d1e3aca4e218df5c3ecfb33730903ca4b43a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.405Z", + "updatedAt": "2026-02-24T10:49:35.068Z", "postProcessHash": "41898697bd305b612ab6cabbba181b5814913a778b2937082278337e992b7b31" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.407Z", + "updatedAt": "2026-02-24T10:49:35.070Z", "postProcessHash": "58e304049cea7b3766c9aa5e311ffb41fbdbe4004ff4459a7028e157ab90cee5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.412Z", + "updatedAt": "2026-02-24T10:49:35.079Z", "postProcessHash": "2d1ed3fa9611ed5a889c6b4ec620544e8d7fcf2d206f5d891163ba53514c06d9" } } @@ -11102,19 +11300,19 @@ }, "0b5088ed4874ee6944dcc9494a8a6e8bcdd02660bbb98ebcddf6f42802271c3f": { "zh": { - "updatedAt": "2026-02-19T02:24:11.546Z", + "updatedAt": "2026-02-24T10:49:35.072Z", "postProcessHash": "9f0005905cf5f6711772a311c0020d35c66dfd1e1d549ae464e7635f242f51b7" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.548Z", + "updatedAt": "2026-02-24T10:49:35.072Z", "postProcessHash": "55d1ed995d168790bfba8d90e0843ebdb39c1a1c19ed37219e57554180b7d4d5" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.549Z", + "updatedAt": "2026-02-24T10:49:35.073Z", "postProcessHash": "49d2ad916ff27dc65701b544a756f5d9041e9ad50f202f4145cf0d028b91e2ca" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.558Z", + "updatedAt": "2026-02-24T10:49:35.083Z", "postProcessHash": "514cac5425b3125e471e93c94a81a81cf8b134cbbd00a6fe4aa488b01e629d56" } } @@ -11150,19 +11348,19 @@ }, "cfbaa661c8504f2c18fc22452bd05114c88710d072a92f0bc44fda91bf0c0e70": { "ru": { - "updatedAt": "2026-02-19T02:24:11.399Z", + "updatedAt": "2026-02-24T10:49:35.060Z", "postProcessHash": "99432c4c896aee938219caea52dbc22233013f33a5ea9507f1bad0504dc5f156" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.400Z", + "updatedAt": "2026-02-24T10:49:35.060Z", "postProcessHash": "92055daa3ede8f635cb316fb6ebe79c04b1392b5df431348e6e974efb3da6241" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.400Z", + "updatedAt": "2026-02-24T10:49:35.061Z", "postProcessHash": "47ed80a6499cb2cae334bc1cf6be924c05196d68cb881fd1b47c5fbe1482f036" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.562Z", + "updatedAt": "2026-02-24T10:49:35.096Z", "postProcessHash": "d63994dff924985d1f1b4b55f9c02ef3a939601d1a71849ab041803064d5c82b" } } @@ -11198,19 +11396,19 @@ }, "f30664afc267d308587dfa09fa68e249fc5ffbe2bbe9606905baef0d771309a4": { "jp": { - "updatedAt": "2026-02-19T02:24:10.868Z", + "updatedAt": "2026-02-24T10:49:34.551Z", "postProcessHash": "92c2acbf9da835db4fe19de9b7c81605c2805485fca83f2e045f788472db9c77" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.869Z", + "updatedAt": "2026-02-24T10:49:34.552Z", "postProcessHash": "3cdfac823a353b11057196c4beb3b8e27f78cd6aab6005f96a86c551202e360a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.871Z", + "updatedAt": "2026-02-24T10:49:34.554Z", "postProcessHash": "ff8f843f3bf7ab68aaeb327c997a6ee953533eee1418c1e798acd0b88d353c19" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.875Z", + "updatedAt": "2026-02-24T10:49:34.558Z", "postProcessHash": "37695fcc5d03fc46c071975249f6399cba4ec1a8a8ab778d3931178e8c75cc48" } } @@ -11260,19 +11458,19 @@ }, "0ba3b4b27363a8111e86b1006d28539a08103191e1b864a99b760288b3464ca9": { "ru": { - "updatedAt": "2026-02-19T02:24:11.547Z", + "updatedAt": "2026-02-24T10:49:35.197Z", "postProcessHash": "dd2fb3cdcd4ce31a0373db5f12adc9795002d22623b23ea5d2b7c20df2ea24b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.550Z", + "updatedAt": "2026-02-24T10:49:35.199Z", "postProcessHash": "87b511b62f3b7726ffd77df1af73cdb1781461eec8c73ce09a488d8d4d471c59" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.552Z", + "updatedAt": "2026-02-24T10:49:35.200Z", "postProcessHash": "dcd6910f40b81116c780eb7ee5aa098f953976cee127e5f1fdc2aedc8501ac10" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.555Z", + "updatedAt": "2026-02-24T10:49:35.203Z", "postProcessHash": "cfd4914fa1f02698c14c20401ac46c47f9e39c9e29ed7a3e65cd7463fd06e40b" } } @@ -11308,19 +11506,19 @@ }, "00fd0db8f2461f2f277d9a38dbceeb4320932c571532d6f55489e8942bcbf2c1": { "zh": { - "updatedAt": "2026-02-19T02:24:11.564Z", + "updatedAt": "2026-02-24T10:49:35.212Z", "postProcessHash": "9e1157ca3192c90547dbab4ac0d8a7b8789e814600d7c4de381dcf56ada07448" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.564Z", + "updatedAt": "2026-02-24T10:49:35.213Z", "postProcessHash": "eaf3aa527b9959ff51ed78ef63c6a1650072d4ebda67e81f986dd535c358ece8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.565Z", + "updatedAt": "2026-02-24T10:49:35.213Z", "postProcessHash": "d8303ecf4dd06dcd508dda5425d0b9f14ee0c49d1546bbae14d1e28c3cc36dc2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.558Z", + "updatedAt": "2026-02-24T10:49:35.207Z", "postProcessHash": "d2606ca63198f31d4402389d4a477791e6760189f19bf092552330bea942752b" } } @@ -11356,19 +11554,19 @@ }, "63320fad756ce589eb7a55f248e2543b43b3942e4705627c4ebff22be4d30e94": { "ru": { - "updatedAt": "2026-02-19T02:24:10.869Z", + "updatedAt": "2026-02-24T10:49:34.552Z", "postProcessHash": "86522d7a547df1d4285bd7ab7a1dbdbdffb800b3ced1501a1d0513341e585ce7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.871Z", + "updatedAt": "2026-02-24T10:49:34.554Z", "postProcessHash": "92d57f4e37f3b26b7c3dd3261eb1fc175522a33a6013fc8979b1678f25c6f465" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.872Z", + "updatedAt": "2026-02-24T10:49:34.555Z", "postProcessHash": "95e034da623cd909c7575bc44f4bdce475f8aac6c290332a46f9a8dc246e6415" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.892Z", + "updatedAt": "2026-02-24T10:49:34.574Z", "postProcessHash": "4ee1bb83c104abb602311abf26ae0b0ba25e0707fa0e1efeea59890966ca2a7f" } } @@ -11390,19 +11588,19 @@ }, "c07ea006ce7ea6ab55de95e381b1a6b4176e07e61bafc8612b554282b09b28f5": { "ru": { - "updatedAt": "2026-02-19T02:24:10.459Z", + "updatedAt": "2026-02-24T10:49:34.138Z", "postProcessHash": "cd55a933196f62d521be4253f50f7b4dbdc020fe26175c2ecacbd57a47246c40" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.460Z", + "updatedAt": "2026-02-24T10:49:34.139Z", "postProcessHash": "75ebe3318240c961e11223e2c2b60c794a9c54492e8945538b9a69ec841a06de" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.460Z", + "updatedAt": "2026-02-24T10:49:34.139Z", "postProcessHash": "31e5ab17c42dcc91a4c269282fe5a0973ab5ea969e773ab571cf961640e9342d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.491Z", + "updatedAt": "2026-02-24T10:49:34.152Z", "postProcessHash": "d1a238fdc1a59bf2504fdefc6f3ae24cb896df887b2e0f456e7736a230c9c727" } } @@ -11438,19 +11636,19 @@ }, "41c2db4e0eb9d92d0bfa95c8f6d5db9dd096ea983bec912080fdf75f823abc9c": { "zh": { - "updatedAt": "2026-02-19T02:24:11.548Z", + "updatedAt": "2026-02-24T10:49:35.198Z", "postProcessHash": "da2a2e2cffd5e34bffc4b629857662b0e117c9a012cb3b3841724dcd2923120a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.551Z", + "updatedAt": "2026-02-24T10:49:35.200Z", "postProcessHash": "ae259d6ebbe2b2873b24e98c7b9c4302410bd8023e4ae848311460294de3ea1e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.553Z", + "updatedAt": "2026-02-24T10:49:35.201Z", "postProcessHash": "180edc4b34033356a5509db69a03cf422ba3427a0190dcd0a5279e3f081be768" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.563Z", + "updatedAt": "2026-02-24T10:49:35.210Z", "postProcessHash": "49edc4ad09397f959ba2dd3568db5a700ce013be721d693ef2b6c3cac79578e4" } } @@ -11472,19 +11670,19 @@ }, "d10011e2d9345d7d9ce6826807d3516a81c890e723664298a6c7f8aa8e89a601": { "zh": { - "updatedAt": "2026-02-19T02:24:11.502Z", + "updatedAt": "2026-02-24T10:49:35.160Z", "postProcessHash": "9e7298d2ebd6fd1f2b83707e5ada8ec0813590c14cd6ed4269b20e9051c5b1c5" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.503Z", + "updatedAt": "2026-02-24T10:49:35.162Z", "postProcessHash": "633395b6e91912287554878f673c49ea01a0e58ed61ccdbd5bfa8cea6c98e5b2" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.508Z", + "updatedAt": "2026-02-24T10:49:35.166Z", "postProcessHash": "39e7071131170d58c8e2b3716af98272dab37a3ff6040c86cd0ac184ef1abe85" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.656Z", + "updatedAt": "2026-02-24T10:49:35.212Z", "postProcessHash": "96bf275df8070e3577338af632de49d2d268aba1d903f09ecd5a2efe61c0f7f0" } } @@ -11506,19 +11704,19 @@ }, "d9ed38115e2376c3246f88bbad7ab56616ae3bbc77bfee10429e87a82a52847d": { "zh": { - "updatedAt": "2026-02-19T02:24:11.604Z", + "updatedAt": "2026-02-24T10:49:35.250Z", "postProcessHash": "3fa79ab2052ca007d1b1d4ab58ba6837e2b07afefb3b939f4b1cb2a110a50b32" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.606Z", + "updatedAt": "2026-02-24T10:49:35.252Z", "postProcessHash": "81088d7e6b63e23b995a1de8333237be1050f7272483b378d6ac8998f0ebc9bc" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.607Z", + "updatedAt": "2026-02-24T10:49:35.253Z", "postProcessHash": "993e3a4878b047c037f6949a637c9df835e1c9f37ab568bfb8552dc1e541ab73" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.619Z", + "updatedAt": "2026-02-24T10:49:35.266Z", "postProcessHash": "6b010b9751a85a4eb7a5b774c85c6c185cc2b0a651f711c46414fcc4e7011367" } } @@ -11526,19 +11724,19 @@ "24ff6950696e941c133754804fa0f7502ed10e3f273f7828f34d0ec98cc69169": { "9ffff4baa30bb8aedc5b7c4bed60c32432037227f50854a8cf0a554ca74b6742": { "jp": { - "updatedAt": "2026-02-19T02:24:11.457Z", + "updatedAt": "2026-02-24T10:49:35.119Z", "postProcessHash": "b98841ca52239d2d03122bca7b4a8742a0661c9cc906494ad2b61f87d1d0f891" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.456Z", + "updatedAt": "2026-02-24T10:49:35.118Z", "postProcessHash": "4236110728c98ce4cdcffaf40730ad5a49db004d7aa38b58098d7ea46b57476a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.455Z", + "updatedAt": "2026-02-24T10:49:35.117Z", "postProcessHash": "5ee40a64256ea1e6925ef1986c721ff7ee77e18a2b78033996613e99a9275ecf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.615Z", + "updatedAt": "2026-02-24T10:49:35.262Z", "postProcessHash": "2cccf74913a4ad3a81f27b82235e2980bdb5d413373c304968bca643008ed0e1" } } @@ -11560,19 +11758,19 @@ }, "49be655a5ffb136b60d2830bf0bd59776fee3b4ab3a2e1c84bdd41ece46e6fc3": { "ru": { - "updatedAt": "2026-02-19T02:24:11.598Z", + "updatedAt": "2026-02-24T10:49:35.245Z", "postProcessHash": "6556581319ca6f95d2e09569fb21ac869997ae3df344b3e8fdeeaebaba0574b0" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.603Z", + "updatedAt": "2026-02-24T10:49:35.249Z", "postProcessHash": "3f32f1e7ef8ec8cc9a21c72f34335949afb25d73d572219ac31192147138602e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.604Z", + "updatedAt": "2026-02-24T10:49:35.250Z", "postProcessHash": "c46f1bc5b19ad3201e5b51fc0db7c2898a1faa5d7e08e42edcd49adb1ca9f79c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.619Z", + "updatedAt": "2026-02-24T10:49:35.265Z", "postProcessHash": "f6da88bcdb41b14fcd26d3a887ba6bf2b4b917b0c6680a880967183837642365" } } @@ -11608,19 +11806,19 @@ }, "2c546e8a5ca63f12fd3a8f026a5ddec8567856d733fba1e4c6e6a993388d2215": { "zh": { - "updatedAt": "2026-02-19T02:24:11.572Z", + "updatedAt": "2026-02-24T10:49:35.223Z", "postProcessHash": "a142628ca44ad1363247678befd721d610aae83e28da9059435040c6d21d3268" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.573Z", + "updatedAt": "2026-02-24T10:49:35.224Z", "postProcessHash": "a7717c3c6612bdcd1769dbd25849df8e5a1d607166602496fb66a8700cfa7cdf" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.573Z", + "updatedAt": "2026-02-24T10:49:35.224Z", "postProcessHash": "87f99108adc60afcce897b26fa1d9016faadac41aa022af5c8672810a143b61a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.611Z", + "updatedAt": "2026-02-24T10:49:35.257Z", "postProcessHash": "acfc8028d2939d1924cad556b9229ce177826e4b139f60859a19f17f4d73432b" } } @@ -11670,19 +11868,19 @@ }, "2d8e45ed58bd8bc160376a43688ebeceb3a23a1befe47de78ac266891f42a4b2": { "ru": { - "updatedAt": "2026-02-19T02:24:11.475Z", + "updatedAt": "2026-02-24T10:49:35.139Z", "postProcessHash": "11066d532e7be40f590d53d36fec19103759f5e3f322511ddf2e5a26d9c9a64d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.477Z", + "updatedAt": "2026-02-24T10:49:35.142Z", "postProcessHash": "603e3ca048457f858709d786b1c950b1592830d72e8fd35912f6061144d6f37f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.489Z", + "updatedAt": "2026-02-24T10:49:35.154Z", "postProcessHash": "4bd7c89d6f3fec7700122302fd56800d0384d13c1926fe69f721cc5d8b1b5a7d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.654Z", + "updatedAt": "2026-02-24T10:49:35.298Z", "postProcessHash": "97c90651cdfce8451641e9f6bcba2359daf66cc18ebd94125e23c267ee345db2" } } @@ -11704,19 +11902,19 @@ }, "6eeac11681de5506035f986d0265b1afe4eeed6a2dbb214ae4c6dac1d94a24b0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.459Z", + "updatedAt": "2026-02-24T10:49:35.120Z", "postProcessHash": "49ffa8380a93a87e48b60472d2bb3cf2a3b87b3f7e4059d3a40ba56084950634" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.460Z", + "updatedAt": "2026-02-24T10:49:35.122Z", "postProcessHash": "303defd528eb896ef33d5a27b077d448ac776eca62fe284e5c08b7db67513da7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.461Z", + "updatedAt": "2026-02-24T10:49:35.123Z", "postProcessHash": "8d34c0f97f0cfe963f0a385e3ca70242017e4a44fbf7abc0084e8e021a5133e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.612Z", + "updatedAt": "2026-02-24T10:49:35.258Z", "postProcessHash": "2be5e9a0b65009425e26a4a800f150be877a2737550b8c20149c0e7539b49090" } } @@ -11738,19 +11936,19 @@ }, "d5bc29c48611da115e15565b3383f623922e54b4710dec786c545f29068e2c4f": { "ru": { - "updatedAt": "2026-02-19T02:24:11.499Z", + "updatedAt": "2026-02-24T10:49:35.158Z", "postProcessHash": "9c4b227aabe82abbae44b2ff21f5bcac567fae111f5ceee0b7ae00c287a9ac95" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.500Z", + "updatedAt": "2026-02-24T10:49:35.158Z", "postProcessHash": "5581f3fdefedc469ed0649651d2f8663f3f65049dc743906d44a61134646a26d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.501Z", + "updatedAt": "2026-02-24T10:49:35.159Z", "postProcessHash": "cc65b823996ed4b555401ff7e8c9e16df012f276a9fef39b116529a41911759f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.610Z", + "updatedAt": "2026-02-24T10:49:35.207Z", "postProcessHash": "52af23be6b050c8ecdd8b94342c7f55f31ccffd7c384a543c8628b58b7cc52ac" } } @@ -11778,19 +11976,19 @@ }, "bbfd805effcf17ac7384b869d8ad2e25a369b61d46d330e3ba3824759f93c643": { "zh": { - "updatedAt": "2026-02-19T02:24:11.480Z", + "updatedAt": "2026-02-24T10:49:35.145Z", "postProcessHash": "93b322521ff42c5a33ee4809e5b986b76d048a63e8136f72eeb28c3e8c015eba" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.507Z", + "updatedAt": "2026-02-24T10:49:35.166Z", "postProcessHash": "b174a39361d6e44ff7d6e04657434bbdcb710846db12a4f576fb2aadf9adccb4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.511Z", + "updatedAt": "2026-02-24T10:49:35.169Z", "postProcessHash": "e93926e0a99e416bc1ae21a2cde6eb537f3a2eec4f7203a80221d6878c1657e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.649Z", + "updatedAt": "2026-02-24T10:49:35.292Z", "postProcessHash": "f752595dc831b0a7f803f55c06cbd0734b1308f9a2331eb153a4cb2678bed532" } } @@ -11840,19 +12038,19 @@ }, "c32c59101dec715cf663988dfb5eac14f2b0bfda7a12fd1380f31523f5dd27c6": { "ru": { - "updatedAt": "2026-02-19T02:24:11.464Z", + "updatedAt": "2026-02-24T10:49:35.126Z", "postProcessHash": "2da1fcac62fd86ded18e11fd529075e886666447714eed8e1a7557975f113601" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.471Z", + "updatedAt": "2026-02-24T10:49:35.135Z", "postProcessHash": "ffaee662d3d839495c5028b5df7f33354673f28904b21c9759fba910c54dd914" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.491Z", + "updatedAt": "2026-02-24T10:49:35.157Z", "postProcessHash": "a63b7c8bf0aacc5b0323bb0ec3c0a6cb45db2c43c96ee24cdffbf59f07dbd8ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.642Z", + "updatedAt": "2026-02-24T10:49:35.287Z", "postProcessHash": "cab61a8ed1920438de5ccc67627e68f38c553432e87978993aec50a3122a940b" } } @@ -11860,19 +12058,19 @@ "745a92a844b6497c0310ad16eb03df90d655cde8d7482e58f32d1af9a9c6e68c": { "ed4640fd150472b99b01119068e79ab5dce8af8145d98d8e1f847e482439180c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.458Z", + "updatedAt": "2026-02-24T10:49:35.119Z", "postProcessHash": "834cdf2aeea8606afce8d11b518738cbc178cfcb22b158a30844e1d950f1d9ed" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.454Z", + "updatedAt": "2026-02-24T10:49:35.116Z", "postProcessHash": "473ad1e30146b55408b0ae612f6d3b93a05eae4c12bf35597f100219f1b6b841" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.456Z", + "updatedAt": "2026-02-24T10:49:35.117Z", "postProcessHash": "c3b3532ef5eaf7d30dbe8a544993b0bfd5440d73a37336946b7512d61db9fdca" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.554Z", + "updatedAt": "2026-02-24T10:49:35.202Z", "postProcessHash": "556cc315a4e4accf5b8dcb212b5a19568228fc171463e7d67efdbf4e5b6c0fe6" } } @@ -11894,19 +12092,19 @@ }, "ada875994684a8c861fdacee5e726d4581c23e87935a4ef26224ea8feefdfd23": { "jp": { - "updatedAt": "2026-02-19T02:24:11.468Z", + "updatedAt": "2026-02-24T10:49:35.131Z", "postProcessHash": "dcd464ba8d82cd384a62af8f7153f0d00f6b1240f152a675fb23465eb0f915e4" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.468Z", + "updatedAt": "2026-02-24T10:49:35.132Z", "postProcessHash": "ee01805ae397ec23146190218a6fab763b9a1b8f7a70776e7542fb87a16c3eee" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.471Z", + "updatedAt": "2026-02-24T10:49:35.135Z", "postProcessHash": "5e640829948c435b27c5cd3f6b4194300ddcd3d2ccc16b7817059d2f83ec7587" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.612Z", + "updatedAt": "2026-02-24T10:49:35.259Z", "postProcessHash": "08ed70047df1cf7a5d99e013ddbda0270bc4ae8bc8ccc46e178c8c8981caaf5e" } } @@ -11928,19 +12126,19 @@ }, "58d9796554c2ece3d65dfe41c3745c9c78f86c93601313aa6e9e164acbb50711": { "zh": { - "updatedAt": "2026-02-19T02:24:11.522Z", + "updatedAt": "2026-02-24T10:49:35.179Z", "postProcessHash": "4d279d5c259e4213fca148b22cfe7d3aa89d156fa0d8b9e783a9f5e285ada699" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.527Z", + "updatedAt": "2026-02-24T10:49:35.185Z", "postProcessHash": "054de0cebc6ac4f592a662064ef245317d47cf0dd2d26243731d5d5834c35681" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.536Z", + "updatedAt": "2026-02-24T10:49:35.188Z", "postProcessHash": "75a1de5b9cc1728cd25f53899e11fae319f59505562d30ac7121af9fae9edb06" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.634Z", + "updatedAt": "2026-02-24T10:49:35.271Z", "postProcessHash": "13250b205b3fbdce158086bce51dd37eef52d800362ea77c1c7e88a1089e1cc5" } } @@ -12040,19 +12238,19 @@ }, "f64f9e45871bd1056c9f6587d2894f9c92fa708a74d25b351b42e6b01e98c990": { "jp": { - "updatedAt": "2026-02-19T02:24:11.583Z", + "updatedAt": "2026-02-24T10:49:35.236Z", "postProcessHash": "7a15c8c4e223ecd2fd8068dfe410bebc9678cf5bf572c881374a6410ef2d2e7a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.584Z", + "updatedAt": "2026-02-24T10:49:35.237Z", "postProcessHash": "c22eea36f5d1138d23abfc8b15a0224b1910c9e0991bab7520e450172acc7c0e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.591Z", + "updatedAt": "2026-02-24T10:49:35.240Z", "postProcessHash": "f0063c8c15546cde07dc3ca189731d003f4e24b567fe141e4d060664f6e2953d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.657Z", + "updatedAt": "2026-02-24T10:49:35.300Z", "postProcessHash": "130215c8412210df866e2aa69160e03cec079c6d38fa570a048bb784872f5044" } } @@ -12102,19 +12300,19 @@ }, "538cdf279ccb44bccf3948aaede29c6226b92e981e6322b75c737464d81d5efe": { "jp": { - "updatedAt": "2026-02-19T02:24:11.599Z", + "updatedAt": "2026-02-24T10:49:35.245Z", "postProcessHash": "5ee13f765da404737c3085242f27b97b0f41729a3c51559e517022208f904bcd" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.600Z", + "updatedAt": "2026-02-24T10:49:35.246Z", "postProcessHash": "56917a6e1126632a80d17be73165af77274061eb94010c76abf321bb270f47fb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.605Z", + "updatedAt": "2026-02-24T10:49:35.251Z", "postProcessHash": "11f31d7c4969d33b6f34425822c81513b5b62b3dbda2f4f3532cb3f64aa7919e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.615Z", + "updatedAt": "2026-02-24T10:49:35.262Z", "postProcessHash": "9ba6b3ba1ff744c73988f6cb1806895d8e54ad11ad7a27dab7baf998637eecc7" } } @@ -12164,19 +12362,19 @@ }, "aea5ac7a748d31640ce71af7538dc8670e75247599e8b9f4c917dd584489cb1f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.467Z", + "updatedAt": "2026-02-24T10:49:35.131Z", "postProcessHash": "f4ff2680ef340e6fbe21d453c23cdc91779be09e0e72ec8969e4808932d410ef" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.482Z", + "updatedAt": "2026-02-24T10:49:35.148Z", "postProcessHash": "6b219124d2d8ee6ac543c93f1e53b5d9b1ba84f14a795fa1502776a0e48e0f9a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.486Z", + "updatedAt": "2026-02-24T10:49:35.151Z", "postProcessHash": "6c5d6f212946af4a443aec53ff434942828a677efda9799423924b45eec17b22" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.652Z", + "updatedAt": "2026-02-24T10:49:35.295Z", "postProcessHash": "877523e34ab41c16d1247b9ddb9a26e310e9f0e3d7411d3b54e0243ca61c5b6d" } } @@ -12198,19 +12396,19 @@ }, "cf95029519554fdb2230d018a8625821b908a3fb6f59ee0813486c80bb36467b": { "jp": { - "updatedAt": "2026-02-19T02:24:11.513Z", + "updatedAt": "2026-02-24T10:49:35.171Z", "postProcessHash": "4d6cd4469782dbf55fcdd3577ffce73ee84a5d5f80706cd00e1c0281452e0b28" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.515Z", + "updatedAt": "2026-02-24T10:49:35.173Z", "postProcessHash": "51104e8b29f7d8ea10e7e43ff2bcb6c6e7b4cccb87a5f6ff9b134259fe8d9311" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.517Z", + "updatedAt": "2026-02-24T10:49:35.176Z", "postProcessHash": "76eb1dfab3cc61a0e2f9ffb4191d928c3ecae16bc010f03d66936d62654aafb3" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.644Z", + "updatedAt": "2026-02-24T10:49:35.289Z", "postProcessHash": "ac1f6e6f0f79819c5e77e89081fbc6a2a8787db0c2884019cd26262fe866deea" } } @@ -12232,19 +12430,19 @@ }, "95eb374114e63cab0f3099c90fe80059d60aeb4611c47fa1a230abc89038fe2e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.595Z", + "updatedAt": "2026-02-24T10:49:35.241Z", "postProcessHash": "14f1c2b6e3184eeeac98392061b3433df2d1d6eefbee82482bb2eaeca57cdde7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.595Z", + "updatedAt": "2026-02-24T10:49:35.242Z", "postProcessHash": "752b5b16c3733cb5160ff0343f94dbdf66be49beb1d0e72f4103d01ce38b71ab" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.608Z", + "updatedAt": "2026-02-24T10:49:35.254Z", "postProcessHash": "aeef82cd291d3d7429ab7e9d040b90da02cf3c58ba9fbba875ddd90359287f3d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.617Z", + "updatedAt": "2026-02-24T10:49:35.263Z", "postProcessHash": "03c95903dec5adab17bbfbad99b478891b44b6bad888e5326022afe75ab5dcd1" } } @@ -12266,19 +12464,19 @@ }, "242dbb4d3d22498cd219aac8c3e2b90e16d4a23bd9b1097d12602fd253cfc36a": { "ru": { - "updatedAt": "2026-02-19T02:24:11.546Z", + "updatedAt": "2026-02-24T10:49:35.196Z", "postProcessHash": "bf5444e8501d6466d9408f92763f794be5de01e42f8ac0149f31d58f9693b0a5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.550Z", + "updatedAt": "2026-02-24T10:49:35.199Z", "postProcessHash": "61e61cb56b41f771be155e91402f2825cd7465459611011500b54e4b75745313" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.552Z", + "updatedAt": "2026-02-24T10:49:35.201Z", "postProcessHash": "9233a2873e3321e5fd5dd8e48c204d6d7f9e66b2156692521584cdecc33e439b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.556Z", + "updatedAt": "2026-02-24T10:49:35.205Z", "postProcessHash": "154f4c0d893a2c65640c8f87d1c53abbb0011710088a8db7fb8cc2704fb09b70" } } @@ -12300,19 +12498,19 @@ }, "d994e858671badb73dd91db9cb73f38003d7da720f157c7ad3a2ec268f74ad25": { "ru": { - "updatedAt": "2026-02-19T02:24:11.544Z", + "updatedAt": "2026-02-24T10:49:35.194Z", "postProcessHash": "64426e40c29253fb4db90e2140c03f07a572c49c29250296febed52397970fc4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.544Z", + "updatedAt": "2026-02-24T10:49:35.194Z", "postProcessHash": "f82c608c85eca8c50ffa8e2c1116394179721471501979590f2f3530791e2570" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.545Z", + "updatedAt": "2026-02-24T10:49:35.196Z", "postProcessHash": "ddb17ad0e73355ecb87b87fc6571537855da1ddceac15ab6ace0564859417917" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.557Z", + "updatedAt": "2026-02-24T10:49:35.205Z", "postProcessHash": "df1f3c9b83a2d6a483ac110fcaa9c589630d708086ded91e914b6ce4c2cc3569" } } @@ -12320,19 +12518,19 @@ "f4614a808acf58ed3907dbc80a1d159bc107dde839623cbee9705514996e1fc7": { "ad253066ead1dba2ae292160fbbd6c6d76963231fdc98e27296a51ffab627b05": { "jp": { - "updatedAt": "2026-02-19T02:24:11.457Z", + "updatedAt": "2026-02-24T10:49:35.118Z", "postProcessHash": "a53d4fbcc3b815037ae072a6ed4e5561f75416003951ab8e784817a6b31d3d57" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.453Z", + "updatedAt": "2026-02-24T10:49:35.115Z", "postProcessHash": "f3686ac5c4c89bb95381d8fe75f283f0b666ca9f5ae03f35419e74c248e6e81c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.454Z", + "updatedAt": "2026-02-24T10:49:35.116Z", "postProcessHash": "48adb87b68132b026afda0d2b4932b98a40461a913d16e32e3afd2124a3121a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.561Z", + "updatedAt": "2026-02-24T10:49:35.209Z", "postProcessHash": "c069e03f7ef03efc148ff3f1a20dd8a8b0d32ed4624ad6f63413b27c1f6bd642" } } @@ -12368,19 +12566,19 @@ }, "6a3e770a2f0986369ccd6c4fb2abf1cbcccd109fd6ae5bb4b6be63d3fc1b3c54": { "zh": { - "updatedAt": "2026-02-19T02:24:11.571Z", + "updatedAt": "2026-02-24T10:49:35.188Z", "postProcessHash": "e3a098e1363452f8a4839f1f0d103e61f4ece2163cfa482be6200a577e0416f6" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.571Z", + "updatedAt": "2026-02-24T10:49:35.189Z", "postProcessHash": "620c1a26950e87405e357bece7b53279064ccdfb227d9bae97ee6312b970a8bf" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.572Z", + "updatedAt": "2026-02-24T10:49:35.221Z", "postProcessHash": "a713c4fe1e13cee55f09f5bad7bda3220665169ee12f713cd5c9d16af2e8614c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.611Z", + "updatedAt": "2026-02-24T10:49:35.257Z", "postProcessHash": "e1dc4741e56591835aed049fc4cb73d86ca123f2f308d060c1d7f6a7ceaec876" } } @@ -12416,19 +12614,19 @@ }, "3a0e0d166871f4fc69f6813a73db3cf1f69c4144013d93ab72c77c37b4b5dad5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.594Z", + "updatedAt": "2026-02-24T10:49:35.241Z", "postProcessHash": "9916a8c9e41db37b2c0d4f329d1e8c670d9334498059bbeaca145832ed23dc0e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.596Z", + "updatedAt": "2026-02-24T10:49:35.243Z", "postProcessHash": "afabb65ce3754769003a5f5843a93b0fe4e7f5e7c3bb5b063edbe1ce8ae225b5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.597Z", + "updatedAt": "2026-02-24T10:49:35.243Z", "postProcessHash": "09618ac11e91b68ffe65f989cb6a22bea374b41c9474dd3140549aca2a6c90c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.620Z", + "updatedAt": "2026-02-24T10:49:35.267Z", "postProcessHash": "184d591cefe93478be9faaf5547d236ef2e78d5a63858c1556d213d5f164f13e" } } @@ -12464,19 +12662,19 @@ }, "6fa748026b877c2cf4a9155871b1a57a643dd3b49d50de3d4b86ce6d252e801a": { "zh": { - "updatedAt": "2026-02-19T02:24:11.683Z", + "updatedAt": "2026-02-24T10:49:35.332Z", "postProcessHash": "5b18c09f8c96c29cef76a9288b26bc057ede7d2761b550fd3053eb22d3113977" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.683Z", + "updatedAt": "2026-02-24T10:49:35.332Z", "postProcessHash": "bae163f5831ef2953e523a875d6cd2d62ab8bb896c83f726e3f39274d2674ed9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.684Z", + "updatedAt": "2026-02-24T10:49:35.333Z", "postProcessHash": "1881398b54daeb43b46927d738e93a8d4625a6c8817f2260347dc7a90838ffa1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.713Z", + "updatedAt": "2026-02-24T10:49:35.363Z", "postProcessHash": "0c3241762626d6eb27623a1af17cd8b61d408854b2376d95ad0a6cf7cda22492" } } @@ -12498,19 +12696,19 @@ }, "4b5ba5a51a59b4c9e5aa9030637044e12afaa0234348847934227600c6ccf524": { "jp": { - "updatedAt": "2026-02-19T02:24:11.702Z", + "updatedAt": "2026-02-24T10:49:35.347Z", "postProcessHash": "5033fc7b774f09af5d8504d65f0406e35a8384fb40f54231c140f140f7a6164d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.707Z", + "updatedAt": "2026-02-24T10:49:35.354Z", "postProcessHash": "916bba0011aa4719e82091d093d81220250748916da688f3503ac8b3a7ddb1ce" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.708Z", + "updatedAt": "2026-02-24T10:49:35.356Z", "postProcessHash": "fb0261e24d47344cb9dd1aff3c3bfa78a761201f25ad5f6e5ff3effdafb9e2fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.715Z", + "updatedAt": "2026-02-24T10:49:35.366Z", "postProcessHash": "6d5b5dd7c7a618a0ead242aae193bc6abe8d2d8b414dbfcc0ce036474c72c78f" } } @@ -12560,19 +12758,19 @@ }, "2d71ffc79143bdec4be784f03a4ab72a06b85be563bdfa889d304b626b239a9c": { "zh": { - "updatedAt": "2026-02-19T02:24:11.601Z", + "updatedAt": "2026-02-24T10:49:35.247Z", "postProcessHash": "4d19192644141d43da98605ffa5eb33a0159872a1dde54d0ea196a7a1a790140" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.608Z", + "updatedAt": "2026-02-24T10:49:35.254Z", "postProcessHash": "e42446eabb90c2bb6913335f6d3a0d2538ba762a3bafb0d92d9df2e5adaacb3d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.609Z", + "updatedAt": "2026-02-24T10:49:35.255Z", "postProcessHash": "eb7785cc71c7b601d7cfed75665236d930ce69f916dee8ed487961b0b66339fb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.620Z", + "updatedAt": "2026-02-24T10:49:35.267Z", "postProcessHash": "a8c6a4c630b2ea4543c677435b8c8d2214a3978eac2c003b012a5f6fa31bfddc" } } @@ -12605,19 +12803,19 @@ }, "0a36faaed58f087352899aa48ccb33c212a078c3827e97bf4241d3732427730f": { "ru": { - "updatedAt": "2026-02-19T02:24:11.688Z", + "updatedAt": "2026-02-24T10:49:35.229Z", "postProcessHash": "a289244ff653aa2039c3638b46e6ecaf678038f1bbf03e9330ef89443e2a2db0" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.691Z", + "updatedAt": "2026-02-24T10:49:35.230Z", "postProcessHash": "9ec63bee10587035ea599ecf871263c852fe03adb9253f29aa793fa466733484" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.692Z", + "updatedAt": "2026-02-24T10:49:35.230Z", "postProcessHash": "db83d5ff2c41b6942d9b47e2437f8aeb8ce3d77e2bec419164cd8e8f989a21e5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.716Z", + "updatedAt": "2026-02-24T10:49:35.284Z", "postProcessHash": "b8975a78e5d0f706cfc3e58fb9b923d4607dd46f0e6bddd2a80305f17858a31d" } } @@ -12639,19 +12837,19 @@ }, "f65cc61c3e2e6eea41d827ed6bb728f9cd2af2f586098f2912adeabf140ae5fe": { "ru": { - "updatedAt": "2026-02-19T02:24:11.675Z", + "updatedAt": "2026-02-24T10:49:35.324Z", "postProcessHash": "57949d4e52b17bedc67c401829c3841353b345b218a6c7f52a4e7562e823465d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.676Z", + "updatedAt": "2026-02-24T10:49:35.325Z", "postProcessHash": "5bba88205d71c16c28689e5e3cb9cc415fa518bc10b76ed1f8cc2e8099ee2eba" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.676Z", + "updatedAt": "2026-02-24T10:49:35.325Z", "postProcessHash": "ffc84d16f1107990dd9895ecba024dd91ebb30f63757f69b87925ad7cf3dc45b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.711Z", + "updatedAt": "2026-02-24T10:49:35.360Z", "postProcessHash": "77ec80bb6747b35a08c4309405e281e921809128b94a2170bdaa83de3bef1ec8" } } @@ -12673,19 +12871,19 @@ }, "869f77577d16fd9e927ff7187e45cfdbc567e020cac55a9c2bb50b05e6f0184d": { "ru": { - "updatedAt": "2026-02-19T02:24:11.689Z", + "updatedAt": "2026-02-24T10:49:35.333Z", "postProcessHash": "ced2c06a7ee7285b9ffc9cb793b1a1e45e64345c331678495ac5a55fb3f9cee0" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.694Z", + "updatedAt": "2026-02-24T10:49:35.338Z", "postProcessHash": "4289849c767a1f72042bf08fedb796e2d75596b0970d9040b7346b4d3d07448b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.695Z", + "updatedAt": "2026-02-24T10:49:35.339Z", "postProcessHash": "47b1e9067f9f2b82d9796f8adcfcc793ea687e94ae5ee931848b455055c09fd7" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.710Z", + "updatedAt": "2026-02-24T10:49:35.359Z", "postProcessHash": "f0111585af6eed31a2cfe1db664e9249ed4c6028fd3120c85e9b4589a9bd169e" } } @@ -12707,19 +12905,19 @@ }, "8dcac023c8e5792531831e32cc8846fb9a443a0b17db513f6fdbe18aeb09aafc": { "zh": { - "updatedAt": "2026-02-19T02:24:11.681Z", + "updatedAt": "2026-02-24T10:49:35.329Z", "postProcessHash": "403f111e565288601e1e8f57613154664e5f7ff7b39970b05ed20dc3058d538d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.681Z", + "updatedAt": "2026-02-24T10:49:35.330Z", "postProcessHash": "07aff917c73cc3b9cbc811c2e11467873be6799c706f1d16788d860c259fc40d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.682Z", + "updatedAt": "2026-02-24T10:49:35.331Z", "postProcessHash": "63024ae937aa47a6379d1f6f1d0b4de3e895962b59bc62085ab87bfac1e2e327" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.711Z", + "updatedAt": "2026-02-24T10:49:35.359Z", "postProcessHash": "07fe2a64ef0f4daaf5e04e4b2a5ab5133c59ec590a302517d7053572349a12b3" } } @@ -12822,19 +13020,19 @@ }, "a490701361995bf4e53b3d1ca5192995984dd14fb1baab3f859b7d6817713e4c": { "ru": { - "updatedAt": "2026-02-19T02:24:11.703Z", + "updatedAt": "2026-02-24T10:49:35.349Z", "postProcessHash": "87697a92eafc1028086fdbabe9ad3aa0bbd0c0cff0d30d03205bab528c3443e2" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.705Z", + "updatedAt": "2026-02-24T10:49:35.352Z", "postProcessHash": "e489db3df72047a24acb0468f2db3b2f01e6c6923b318703bc904651f71def96" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.706Z", + "updatedAt": "2026-02-24T10:49:35.352Z", "postProcessHash": "bf04fd339f4e568329098b7e58cf5bab3959099c13df60b7089c68895ca22910" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.715Z", + "updatedAt": "2026-02-24T10:49:35.365Z", "postProcessHash": "29b38a3b62e63d624a686ea631e1abbccf1b11687903b805b5ddd136842cd334" } } @@ -12856,19 +13054,19 @@ }, "afd6f57564f1e340af647804e661750fd8e86e6354c55a74c6797236dfdccb90": { "jp": { - "updatedAt": "2026-02-19T02:24:11.678Z", + "updatedAt": "2026-02-24T10:49:35.222Z", "postProcessHash": "63da98a9eeb5851d127538ef59ed7542b1b0cca28b2b3d5de4dfe4274fe2c7dd" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.680Z", + "updatedAt": "2026-02-24T10:49:35.222Z", "postProcessHash": "67c8a0a8c9ec592c1ef47d654d418bf00842779e6f2e49d11dfe4fbed22938fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.682Z", + "updatedAt": "2026-02-24T10:49:35.223Z", "postProcessHash": "9ccd5aa3156902f635306922a059f18e804327d40a0ee88e0a66ed6fe82b3b7a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.709Z", + "updatedAt": "2026-02-24T10:49:35.255Z", "postProcessHash": "a0b09b9484c38e3a0b93ffcfe26fe9c1079b21b59340aa27c7b23a4b0c20dd6b" } } @@ -12876,19 +13074,19 @@ "818f1c114e04624a9ce346e723231683afc9efb77f488e698cfae3f76123798c": { "7802fce1dd531f1d9274394e1014f26f608015405f1fca427d28159a91303ceb": { "jp": { - "updatedAt": "2026-02-19T02:24:11.567Z", + "updatedAt": "2026-02-24T10:49:35.217Z", "postProcessHash": "314e76c3e76e5cacfa2c47795ead57344aab199343600fbbfed5c98ae997faeb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.569Z", + "updatedAt": "2026-02-24T10:49:35.218Z", "postProcessHash": "a46aea925c8aa3c2954ea5771b744811d5adff38c432f1f5c8a4c88ad528a3c8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.566Z", + "updatedAt": "2026-02-24T10:49:35.217Z", "postProcessHash": "a38c04f6b4ebde36ced2e3255381ce7e02bafa6affe24a29aa8688f9e7eddec8" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.710Z", + "updatedAt": "2026-02-24T10:49:35.358Z", "postProcessHash": "41cf373af694ac04622fe5c27328cad61f44787726ad3059e4b27dc55e0f375c" } } @@ -12896,19 +13094,19 @@ "89be4ef20c9e5fe95e7e9565ff5aa903eef3eacf9ef5bbff1fa371c4ce7dca62": { "a6c4756c4f81974e9497aa328cf4f067d2e218a364817e6b3353285d9d897dbf": { "ru": { - "updatedAt": "2026-02-19T02:24:11.666Z", + "updatedAt": "2026-02-24T10:49:35.310Z", "postProcessHash": "8ade432b8d134ffa3754988c1029e2c249c8fb6cc7a628a8ff316859039d5ab5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.669Z", + "updatedAt": "2026-02-24T10:49:35.314Z", "postProcessHash": "b726b1181f8a40b81a5c34f688cb66fc396f836cd1cef759fee8a21f32a2bdd5" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.666Z", + "updatedAt": "2026-02-24T10:49:35.309Z", "postProcessHash": "15fde7ec3aeeec5c8c9fa85d55a2c2c66c9b00cbe47e83aa27b94dfa5c1be458" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.770Z", + "updatedAt": "2026-02-24T10:49:35.403Z", "postProcessHash": "fd0a1174464225b60149b1512cb3d0c4d81c8891727c1ba20c6103dccabc751b" } } @@ -12944,19 +13142,19 @@ }, "1260414af03fc8ad62ab50799cc51704b602f2f8aa9ea8548dbdf2c76a7b33f1": { "jp": { - "updatedAt": "2026-02-19T02:24:11.697Z", + "updatedAt": "2026-02-24T10:49:35.341Z", "postProcessHash": "8ba74a18ecc64a1f4dcf56d0d07d595e503431bad128bb00d69315721bba2989" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.701Z", + "updatedAt": "2026-02-24T10:49:35.346Z", "postProcessHash": "f0d4b43a3fcc4777049fc0a6bccda05725c41bfa36b357860039d3b4df3719c2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.705Z", + "updatedAt": "2026-02-24T10:49:35.351Z", "postProcessHash": "3620e01681cc3aed2b0272e666a3e377509453d504f63e34ce65f7b3fe10f707" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.714Z", + "updatedAt": "2026-02-24T10:49:35.365Z", "postProcessHash": "217a41a436f18b4513f203bb98d25c4dbca71f61356c4b145a3482a8fe1bde9b" } } @@ -13006,19 +13204,19 @@ }, "83b0182f6dece0219f753ef42c317c521587856b763f360d29704ee451c9a5d1": { "ru": { - "updatedAt": "2026-02-19T02:24:11.692Z", + "updatedAt": "2026-02-24T10:49:35.336Z", "postProcessHash": "e53422e23e8d07a410abdb872ebf6a476f493a82644ebb3dd06bf523346e6e6d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.694Z", + "updatedAt": "2026-02-24T10:49:35.338Z", "postProcessHash": "f19b006812005aa8e4e04bd391440c75b33beb23c13f4cef4aebc579d42074e4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.703Z", + "updatedAt": "2026-02-24T10:49:35.348Z", "postProcessHash": "c163a25572def90a62137e6be2813eff7c27ac977100112953214438355c2dc3" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.712Z", + "updatedAt": "2026-02-24T10:49:35.361Z", "postProcessHash": "671fba6ed080cc3cdc3575b55da466e888f4c87e90be7083e3073d4f548e9894" } } @@ -13040,19 +13238,19 @@ }, "7fdafcd77e2081a00f64fba7c153cb94fab6db1380f438a69e4981cb57acce7c": { "zh": { - "updatedAt": "2026-02-19T02:24:11.580Z", + "updatedAt": "2026-02-24T10:49:35.233Z", "postProcessHash": "bb47e0b35c8c29ac18d58aad3139be8224515cf757ee0c0642383d98e189cb35" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.598Z", + "updatedAt": "2026-02-24T10:49:35.244Z", "postProcessHash": "d542a97e5688861b1ae72928110ca9ef1c84d48a3da207ad37d009044c2460dd" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.606Z", + "updatedAt": "2026-02-24T10:49:35.252Z", "postProcessHash": "68d5a056ce7875172496b33c1ff189f61cf6660a3bf4fa1116cb37bd8868b482" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.618Z", + "updatedAt": "2026-02-24T10:49:35.264Z", "postProcessHash": "da11c69e5b71c4bebfba52e85845e6886b416fc65503c67d211c828c9ba74f8b" } } @@ -13088,19 +13286,19 @@ }, "199499be1870dd878f1d9c95401ab8a3a994a474d3018c7ce703423f3862936d": { "ru": { - "updatedAt": "2026-02-19T02:24:11.600Z", + "updatedAt": "2026-02-24T10:49:35.246Z", "postProcessHash": "02c93c9e51f3a2d14f9671ccfa4d815c162fecf7a121d71163928e5da37cb1e2" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.601Z", + "updatedAt": "2026-02-24T10:49:35.248Z", "postProcessHash": "44aa1e32b1c378a18af8c861b05a0d6ff3b5e49dd1042eb642395e09bc0a40e2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.602Z", + "updatedAt": "2026-02-24T10:49:35.248Z", "postProcessHash": "ec866bdb49ad09a6da9770cf91c90f3c2aeb93861289d7a4b2a89a1ff5625c1f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.614Z", + "updatedAt": "2026-02-24T10:49:35.260Z", "postProcessHash": "65613a6b67d29aad02c12cdf4398057c90d54a7191c91a48add7bff939fd72f1" } } @@ -13136,19 +13334,19 @@ }, "6fbd4a03dfec0f0da3405d3c80e3b2cdd23776ccd87b54cb8a46d3816deec429": { "ru": { - "updatedAt": "2026-02-19T02:24:11.578Z", + "updatedAt": "2026-02-24T10:49:35.231Z", "postProcessHash": "286fbea4aef73801eb49a08fe2c1b7b029b85c1c8df7f9cda810f0405484d858" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.580Z", + "updatedAt": "2026-02-24T10:49:35.232Z", "postProcessHash": "0e7b2662236fa5a3e6cc1a7067c45f4546e24a7bf9f270c267efa9d2e2a5fbf5" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.594Z", + "updatedAt": "2026-02-24T10:49:35.240Z", "postProcessHash": "04ce3deb62574c7a7b351135025393c80192f61e74f9eab9e2dc1b9edb55e9bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.617Z", + "updatedAt": "2026-02-24T10:49:35.264Z", "postProcessHash": "f5a4703920bc6eb61dd1313567716c37d9411fd8ddff17831fdc2b8785b04d1d" } } @@ -13184,19 +13382,19 @@ }, "bad7cfcb2e0fd7faa0d0065b58a27d91f2f2c5672035afc8f40c9492d7639426": { "zh": { - "updatedAt": "2026-02-19T02:24:11.577Z", + "updatedAt": "2026-02-24T10:49:35.228Z", "postProcessHash": "d5d88d67f9b1fd8ee7af21a0d59e246caba8db4dbe7629e330b4c74c9d1ea766" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.581Z", + "updatedAt": "2026-02-24T10:49:35.234Z", "postProcessHash": "a36335418d78b2d6abadf417a97a540db20e922d5aa070f1952755486781c2de" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.603Z", + "updatedAt": "2026-02-24T10:49:35.249Z", "postProcessHash": "f089f4c5d3500705ecfbef18019134d54a11fd2a35c87abc318bfb347ec7883e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.613Z", + "updatedAt": "2026-02-24T10:49:35.260Z", "postProcessHash": "db4f812492a3650e20b08c1197b9b7ccfd057f11216a474eb81891cb9f891c2e" } } @@ -13229,19 +13427,19 @@ }, "16dad15f9b5a43191f4ee9dafc9326bcb183f282467fd9ef94fae54a3de0a107": { "zh": { - "updatedAt": "2026-02-19T02:24:11.673Z", + "updatedAt": "2026-02-24T10:49:35.320Z", "postProcessHash": "a7144faffdbbb02249409cd3a738e7b69256e5f455e4c34d3e5988e314e3a7ac" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.674Z", + "updatedAt": "2026-02-24T10:49:35.321Z", "postProcessHash": "efb3f7031a1ad6a5d370ce7a8650b601e7777ddefc32172ee73d353f01dd3786" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.675Z", + "updatedAt": "2026-02-24T10:49:35.322Z", "postProcessHash": "a2364948d7d536e99aa5be712acd63efd1a5226e419149d75952f76f77224e98" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.781Z", + "updatedAt": "2026-02-24T10:49:35.413Z", "postProcessHash": "4ad96b2dfbec5ce657b431ced599fb595a0968c5ec20ce04659d678a7850354a" } } @@ -13263,19 +13461,19 @@ }, "894695ecc539be760c165f9f10a02a36d25b2906c1d3e3b70e2620c2f67854fd": { "zh": { - "updatedAt": "2026-02-19T02:24:11.569Z", + "updatedAt": "2026-02-24T10:49:35.219Z", "postProcessHash": "fa334129b0c1f5e6c4d1d5a860a5877415e53c04f212a941baa2aa5d36e1f574" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.673Z", + "updatedAt": "2026-02-24T10:49:35.320Z", "postProcessHash": "01190f8a953bcfff2040234efb66722d944adae5414de7ef73a27ff1b3a194fc" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.674Z", + "updatedAt": "2026-02-24T10:49:35.321Z", "postProcessHash": "e7c222b7bb420c1c5e3e7595b5a99d32b3170fb1cd6bf187aea634dad8a7a28b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.709Z", + "updatedAt": "2026-02-24T10:49:35.358Z", "postProcessHash": "f2851bf86a0378f44937b155c44b8098dc0467109f12b1de580c1b5796585910" } } @@ -13308,19 +13506,19 @@ }, "64a417c78bf874133b81475f86a123fbaf7842f673ec9a8c1510509cd68584f6": { "zh": { - "updatedAt": "2026-02-19T02:24:11.698Z", + "updatedAt": "2026-02-24T10:49:35.343Z", "postProcessHash": "ae967363a40d0d0bae739efd4e74a401c21947e1d75813899f3ca2765335b68f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.699Z", + "updatedAt": "2026-02-24T10:49:35.345Z", "postProcessHash": "1147148ce7ae224f06ca10c6aedcd45e5734648b4c97726ab5ac5937177f332c" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.707Z", + "updatedAt": "2026-02-24T10:49:35.355Z", "postProcessHash": "7ad81b640660878b8583d183c4f46dbbd7c0afc910aecc49e24550cab4ad76b1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.716Z", + "updatedAt": "2026-02-24T10:49:35.366Z", "postProcessHash": "c9f77038ae08ddbab39cde06c0268b08cd76e3131aae01000763370b005b216b" } } @@ -13356,19 +13554,19 @@ }, "ccdf7cff0bcaae11774da04e864e78db5129963a138bb8e60c6c2cab96557fcb": { "ru": { - "updatedAt": "2026-02-19T02:24:11.679Z", + "updatedAt": "2026-02-24T10:49:35.328Z", "postProcessHash": "0b272ac55f96d8050ea6e6f060ad7af5aa2c06db941c147c48fd853965bfcac2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.679Z", + "updatedAt": "2026-02-24T10:49:35.328Z", "postProcessHash": "a9900cf03073db226a194d4c352382bc1ce82972f72370e7ecb92a3e5a9ff515" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.680Z", + "updatedAt": "2026-02-24T10:49:35.329Z", "postProcessHash": "5fcd04119ed81555d4a5cc9a2298863be8c926dabff0eafe06032a702122130b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.779Z", + "updatedAt": "2026-02-24T10:49:35.411Z", "postProcessHash": "1dab514b9ce2a456457d7ac8e5c709f2d8082b23e06f36cb2515646160043c92" } } @@ -13376,19 +13574,19 @@ "242c81539a7d39347e31852ff01c14ca7481b428f62ec2a9a8ef8923e319fd70": { "ff718abf7b9337cb72f9728d2ee59f8366fc732135cec35be718b34d911ff036": { "jp": { - "updatedAt": "2026-02-19T02:24:11.863Z", + "updatedAt": "2026-02-24T10:49:35.649Z", "postProcessHash": "8d26340be0347b811cc4732ce0e8cb373d433ba77f146985836b0158c43b01b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.854Z", + "updatedAt": "2026-02-24T10:49:35.553Z", "postProcessHash": "0bed4132e68fa59700c11258bfd3d859db23cca4cbc30706e6824e2c2063b8ee" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.928Z", + "updatedAt": "2026-02-24T10:49:35.654Z", "postProcessHash": "dfaa3902b539f3f0643d33597d39a37b8503ac587b35215b3798378e951c653f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.949Z", + "updatedAt": "2026-02-24T10:49:35.680Z", "postProcessHash": "e9b8e8493225f3c12bd21558b5c3e0246d7e3c2fdf52ccad0f66cb31bc482836" } } @@ -13396,19 +13594,19 @@ "2ca1f06020b55585ef361cf2b43c9aa9e23ed32e9d0a80f58141cb6b357e2508": { "e8f70f164f2c79a05e20f2ea7598ea71abec4dd9a196fd990cb3b9f5f5250252": { "jp": { - "updatedAt": "2026-02-19T02:24:11.669Z", + "updatedAt": "2026-02-24T10:49:35.313Z", "postProcessHash": "2306a73a336f998344e49fbf3a4fc1d31758f954b3396efa8235202db13fcb0f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.667Z", + "updatedAt": "2026-02-24T10:49:35.311Z", "postProcessHash": "4d257980dcef6966ed9b97f3aa478be6fe189c8b099e241d34cfb9d8f6dc3e52" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.667Z", + "updatedAt": "2026-02-24T10:49:35.311Z", "postProcessHash": "09a82fb55dc48f44a608af5c337b26f45a275fd98ab18426beb3d25e9965f638" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.778Z", + "updatedAt": "2026-02-24T10:49:35.410Z", "postProcessHash": "9399a8b9b7240eeb04f0ed4d388ba6c4cec5ec849cb1fc0881a0fb68475de742" } } @@ -13427,19 +13625,19 @@ }, "6e3e04cc7119c0602d04810abb60bd15340766476b6dd90c89c802891040b74f": { "ru": { - "updatedAt": "2026-02-19T02:24:11.671Z", + "updatedAt": "2026-02-24T10:49:35.316Z", "postProcessHash": "9bef4214305ec79ce58b157cc7c22d16b58135cee792621992f476cd5f77586e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.671Z", + "updatedAt": "2026-02-24T10:49:35.315Z", "postProcessHash": "f32f1a4ecf1533a76e88266272c48a5145e97839707283d5870252663faf563b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.670Z", + "updatedAt": "2026-02-24T10:49:35.315Z", "postProcessHash": "b517b5e51e85fdaec7be23105d8cbb1d9a93f0ae2e01389d8b415a9f4ca9949a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.783Z", + "updatedAt": "2026-02-24T10:49:35.416Z", "postProcessHash": "970fa3eeafb2e359b2b29a955fc451cf712eea104f07fca43ea4cf439edc229f" } } @@ -13461,19 +13659,19 @@ }, "bee1d1b76367da08729042b4ae516d4de270673e464568ca4e0a8466442032b3": { "ru": { - "updatedAt": "2026-02-19T02:24:11.885Z", + "updatedAt": "2026-02-24T10:49:35.588Z", "postProcessHash": "edfe86a93c08d5c9910700a50fc7745c3d923edbeb8d92549aaac63de673fe6e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.886Z", + "updatedAt": "2026-02-24T10:49:35.590Z", "postProcessHash": "6d24595c95533622e8fc5a159d75eae9d72b21066556e5cc350546618d63a605" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.886Z", + "updatedAt": "2026-02-24T10:49:35.590Z", "postProcessHash": "fc05cab765f53b5646836695e7ad19247bec71f2d1f543a1352e3b8c4db44cc5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.897Z", + "updatedAt": "2026-02-24T10:49:35.608Z", "postProcessHash": "3822de51b3e7f6f80b9cdbf11369a084af360e47cea2f629c9a4529d572de099" } } @@ -13509,19 +13707,19 @@ }, "6c06a104cfdddc58199e6d41cf1e9cc88f161d0ecd6bffcfe0913a8988daf5d5": { "zh": { - "updatedAt": "2026-02-19T02:24:11.883Z", + "updatedAt": "2026-02-24T10:49:35.585Z", "postProcessHash": "15d3a7500a8089c416524f65d05b3f0ed722e31d5391895af97824e7d1e3919b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.884Z", + "updatedAt": "2026-02-24T10:49:35.586Z", "postProcessHash": "7f30383459ab8049792b562bb56d5f41343d8f5a59b8053b217a1860e1c0c660" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.885Z", + "updatedAt": "2026-02-24T10:49:35.587Z", "postProcessHash": "c63cd2e96bf995d745e26abaf2a015b9fb2904c01a4b6fbfb8303f93b932080e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.890Z", + "updatedAt": "2026-02-24T10:49:35.594Z", "postProcessHash": "0a48567447f36b4fb1de2a36c85a6bd0b79c0d2824b47af99e9a03752d75a943" } } @@ -13557,19 +13755,19 @@ }, "a708d0a2e6766acb747d0a82ee280348f53064aef4973aed004705f3d068c4ec": { "zh": { - "updatedAt": "2026-02-19T02:24:11.763Z", + "updatedAt": "2026-02-24T10:49:35.357Z", "postProcessHash": "f9c0cfe4b2aa9a6a4d1d4f0e6d1880d71ab82637497fa74e21328cce590a5d03" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.764Z", + "updatedAt": "2026-02-24T10:49:35.398Z", "postProcessHash": "086e7c9047840e152d0dcd81382ad1bd3964176e0dc236551b15dbba97dee8cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.764Z", + "updatedAt": "2026-02-24T10:49:35.399Z", "postProcessHash": "af815b94b60e7eb4162a1422099c6a21a843cf0ddb4f9d76989da4595175bb6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.784Z", + "updatedAt": "2026-02-24T10:49:35.417Z", "postProcessHash": "ffcdb6200bfd0a3d56e6d83a6ecff8ccfa17ffe884636aa9c3404cb47b1132c9" } } @@ -13591,19 +13789,19 @@ }, "ebee3f2791e883f5589d29c1b9c5d8b5fc993c9b905b5f59749e24a2254e4525": { "jp": { - "updatedAt": "2026-02-19T02:24:11.941Z", + "updatedAt": "2026-02-24T10:49:35.667Z", "postProcessHash": "c43d6ec6fa8a7f1bb98d8798637f014bbfa5caeed5b99eb1b59b71f3aa228913" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.944Z", + "updatedAt": "2026-02-24T10:49:35.671Z", "postProcessHash": "48ac4cc2c2807bb7ed8b18701347cb9e989889ca6a91407941b74d05a2b5df84" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.945Z", + "updatedAt": "2026-02-24T10:49:35.673Z", "postProcessHash": "b59020530892b4aa66832618d0a1ff4373f5188c96d548228cb99c4dc9ad729e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.958Z", + "updatedAt": "2026-02-24T10:49:35.689Z", "postProcessHash": "849302fc07db1468d452019dd295167a41bf6ef47b097f5204c19431b61bb62c" } } @@ -13611,19 +13809,19 @@ "671c3c038f46cc2a350b67ff548f3064f3440f0912e1cada9cdbe60cb9c2971b": { "35a6b4b0da582ffce53ec6d62ecfa840b3fd54894bd3063441a0fb637cfcebb0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.566Z", + "updatedAt": "2026-02-24T10:49:35.306Z", "postProcessHash": "9c7684a372ef9d36f9de20b17407405e2b6d6d8059d3010feb6ada3ebcf17d23" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.568Z", + "updatedAt": "2026-02-24T10:49:35.308Z", "postProcessHash": "f19aae74ee22a58fb368b4eb8450470ba4a0338914c79f7a4175de54eaeeca5b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.567Z", + "updatedAt": "2026-02-24T10:49:35.307Z", "postProcessHash": "8a6974dd1361db06762535627d14c703b89035b5276dc6b11b84a6a2dd6a889c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.777Z", + "updatedAt": "2026-02-24T10:49:35.407Z", "postProcessHash": "4282c75694f4108f60d56c90d05ef6d768a8d7e03ef8c0437ccdfd6c08b05540" } } @@ -13645,19 +13843,19 @@ }, "3247204e2684411b0cd381d027a76001b6741fa110da389a95ad4810543fd70a": { "zh": { - "updatedAt": "2026-02-19T02:24:11.941Z", + "updatedAt": "2026-02-24T10:49:35.668Z", "postProcessHash": "1cf1ed13a8152c4900be6aae5ea1cd9f0f82c32d12c25d1ee96799bdd487fda1" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.943Z", + "updatedAt": "2026-02-24T10:49:35.671Z", "postProcessHash": "459b46a408f83e715b010a3dccd5a6bc0202410d73f693934f85f1cb4a350447" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.946Z", + "updatedAt": "2026-02-24T10:49:35.673Z", "postProcessHash": "ee3f2a9e072d1fa829de995d5052735e249f221f556cba20f1e7eea9bab89dd7" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.959Z", + "updatedAt": "2026-02-24T10:49:35.690Z", "postProcessHash": "bc557add61bd3b90016111b491b574cb2544651fa139330938536517b1c4e0c5" } } @@ -13665,19 +13863,19 @@ "85b69398b5611cad0ed97b26cf9ee7ab54989a0ec7615bc3aaabc2e0ae3c33ba": { "3069fe2c05efa1690a8fd9f6e9519528b8d09fe75d6fe914e613400f223a3e0c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.864Z", + "updatedAt": "2026-02-24T10:49:35.651Z", "postProcessHash": "0472dd958852c76ea9cbe82408a06d51721d69394804c1f4d9638a816c8bcc3d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.858Z", + "updatedAt": "2026-02-24T10:49:35.558Z", "postProcessHash": "4adc0db7b996b0a49f29b8a6d920a9f52db7f4e98511f859e112c54d6b1bde35" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.927Z", + "updatedAt": "2026-02-24T10:49:35.652Z", "postProcessHash": "c7c1629b34d04127ac0e21337598f6f20b8b293fdcd56fae0420bd2e468e3054" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.956Z", + "updatedAt": "2026-02-24T10:49:35.686Z", "postProcessHash": "9954a49a19aff51f1304a7ac69d38947c8e1e077c52627793a3601cb4c25ec2e" } } @@ -13699,19 +13897,19 @@ }, "043aa88b2d4a1d628bcc7c0c859e57cbe61fe265d65cc609dc2bbbcbde903cfe": { "zh": { - "updatedAt": "2026-02-19T02:24:11.672Z", + "updatedAt": "2026-02-24T10:49:35.318Z", "postProcessHash": "30916dacf02e230afca84f85b225278b8130d924191da0cbae1d281d1673e85d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.672Z", + "updatedAt": "2026-02-24T10:49:35.319Z", "postProcessHash": "f0910e0fb013088424f37091433e5b19852ed08f147ff7db7213147e05822120" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.672Z", + "updatedAt": "2026-02-24T10:49:35.319Z", "postProcessHash": "09f31960b43c46fe5ab1ee694a4204031ce69d491087dd97afd3102a5d5c46c9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.770Z", + "updatedAt": "2026-02-24T10:49:35.402Z", "postProcessHash": "989bbf53c9c65e84171c3d2fe7b4f9092ea66dc24eaa6b84b06f459776ccb0f0" } } @@ -13815,24 +14013,42 @@ "updatedAt": "2026-02-19T02:24:11.785Z", "postProcessHash": "ebfe7f96547992e2deaf8f89a1213755dcb69b5687212d08928919e107d91446" } + }, + "9312b8c70619cb0c5c410204bd251835244461d7fc77ea85709bf3b41dc81b79": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.428Z", + "postProcessHash": "5fa5a922e9a9e4e95993b60e977928bdc3d642712629c8672b0a4edc7dd39d74" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.430Z", + "postProcessHash": "66bc82ff6f645d3951e956f6f84fdc4b531fd1e7f0804a4ffbb3c99a470527e3" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.434Z", + "postProcessHash": "03c6ff9d9b867b7332d04fd98e6d6323fdc32a5f0317d12b17ec0ab2d4fc8331" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.435Z", + "postProcessHash": "4e8d7c89b192839e6fc09994755eb8fbd7b8a42ac1c615c3da1aa0326b1922be" + } } }, "b326d89975e77fc4fe5e09c43f7d7dd72353ad2de4c76604cfa709d60f39cee1": { "41f6f44d6560ff4b7b4a8919ea06169035e1ab5f00669a7875013466734ef23e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.859Z", + "updatedAt": "2026-02-24T10:49:35.559Z", "postProcessHash": "e280242754076657752cf9b59ddf197e15e5cf28ac590857b7394191c24c7e0a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.856Z", + "updatedAt": "2026-02-24T10:49:35.555Z", "postProcessHash": "b76a0421fd579f5a38a91500a3a0f0470104bb86fe349e7e0d1c698b23965717" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.858Z", + "updatedAt": "2026-02-24T10:49:35.557Z", "postProcessHash": "c86666dd247b36a0097c8c7660223b65c9064ff077448dfb00a0b880656fec47" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.952Z", + "updatedAt": "2026-02-24T10:49:35.683Z", "postProcessHash": "33bff3a97e9fcf33e60ff3bc43afd55013c286917c629929ca709c6c77c102bf" } } @@ -13840,19 +14056,19 @@ "c0388925c5cbd757f80d526185840b27148d3d9f44442adba2d651d360e9f8f2": { "fe663d93e8ac7ca2bac8f4753fad3eb0d0150631ba2d2c4e3a85eb5fdd27dcf5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.668Z", + "updatedAt": "2026-02-24T10:49:35.313Z", "postProcessHash": "99c7dc120b57856939c44dab24531054d323df80cfa6002e597d30524596bf15" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.668Z", + "updatedAt": "2026-02-24T10:49:35.312Z", "postProcessHash": "a7f0c44743066b576425ef08cef1079baa68333ec5c053cbba667d6b34d04ade" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.568Z", + "updatedAt": "2026-02-24T10:49:35.308Z", "postProcessHash": "ed3d60f9d1678751b9d26b507197a9dfa360709b59aa0e942779d0d6514cc18c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.776Z", + "updatedAt": "2026-02-24T10:49:35.407Z", "postProcessHash": "bdceb9b209ee75ed6b01ce7a50ad2dfe28ce9ccc537badf0e70d01e57ee0f26f" } } @@ -13874,19 +14090,19 @@ }, "7a73b3d4bdb8f3ddf01cbf35ba21bc2cc75e04a8cc5565e04595b1961ee013b4": { "zh": { - "updatedAt": "2026-02-19T02:24:11.677Z", + "updatedAt": "2026-02-24T10:49:35.326Z", "postProcessHash": "5fbe2302626067fe7cbe651cb199748ce64e32b55fd379fb2436cd8f0773b662" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.677Z", + "updatedAt": "2026-02-24T10:49:35.326Z", "postProcessHash": "ec440ee67a0bb6cf7801efafffe5e0a9d1abfda773fba098d938006c747948b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.678Z", + "updatedAt": "2026-02-24T10:49:35.327Z", "postProcessHash": "3422509885c7fdb7d50897befae13ad3f6753355592f112c99fbc8ac160f3ad0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.777Z", + "updatedAt": "2026-02-24T10:49:35.408Z", "postProcessHash": "eb03058549833f7e5809682027abc5d83db93cecc7da659c5f15fa43006ba96c" } } @@ -13908,19 +14124,19 @@ }, "7125479c7da0a14cd74d143bf6d75d8c6453f6335e28fc34ddd31b32f8a9761a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.882Z", + "updatedAt": "2026-02-24T10:49:35.584Z", "postProcessHash": "2ceef3eacabf2dea2b790868e5727f058ea2391a4373c45fa9e7106e412ef4ff" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.883Z", + "updatedAt": "2026-02-24T10:49:35.584Z", "postProcessHash": "5ca85f664cf3bac35034b7a8dcd4629ce2a40726dc8c86bea7267f6627ab76ff" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.884Z", + "updatedAt": "2026-02-24T10:49:35.586Z", "postProcessHash": "1462f1f9c2deeee67b97fda45eab5ae35cf2d0ee0935a53d7b9285afc5fac9bf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.894Z", + "updatedAt": "2026-02-24T10:49:35.603Z", "postProcessHash": "ecf260a5a7277aeabf0500feb2a30fbaddbcb77afa15a6a94396f63df966ccd8" } } @@ -13942,19 +14158,19 @@ }, "accdc3ea67a7de8752940f90e095e50e37a16c87ba10fe299faee2260918cb13": { "ru": { - "updatedAt": "2026-02-19T02:24:11.689Z", + "updatedAt": "2026-02-24T10:49:35.334Z", "postProcessHash": "9a30ccda5a62059d36e2fc114dc6f54d9dd8c44431b03f02e96c95570eff1b5d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.706Z", + "updatedAt": "2026-02-24T10:49:35.353Z", "postProcessHash": "4198845a9c7d8617611ed14d8a73f6ed8ce84376bd0e55e72d0e22922ca59df7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.763Z", + "updatedAt": "2026-02-24T10:49:35.354Z", "postProcessHash": "398315a374e5db676c28cf0ae0467e96497c9462a62568585e3b120c7a698cac" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.773Z", + "updatedAt": "2026-02-24T10:49:35.405Z", "postProcessHash": "18d8336d82b02b0eaf8ad9085c84d235bbbe031c27183a618d63a6aac42c462e" } } @@ -13976,19 +14192,19 @@ }, "2cee32e9e5e21ce73d522cbacb7741f41867f6ef30a229fe7c2ac9990a8e84c0": { "zh": { - "updatedAt": "2026-02-19T02:24:11.939Z", + "updatedAt": "2026-02-24T10:49:35.665Z", "postProcessHash": "60a28f225e13b2f54da03ff1da4b4b5b1375c5d3e5e783d6def124a68ff88396" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.942Z", + "updatedAt": "2026-02-24T10:49:35.669Z", "postProcessHash": "af70757042cc9ed8996bea86fe5b1fed2d36d090fef868f9d25f2554fc5acd80" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.945Z", + "updatedAt": "2026-02-24T10:49:35.672Z", "postProcessHash": "8453e2cfabeccd0abd761a8ec49934c88aa4f61085a6c27ce35ff3a2fc4c31c9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.957Z", + "updatedAt": "2026-02-24T10:49:35.688Z", "postProcessHash": "47fd7363cb451d7112b08fb5e686464e99e1542e28ca63d147b4f774b89b34ca" } } @@ -14024,19 +14240,19 @@ }, "b60772df789954014f12678781b0e7ec7be02d6eb21a480f00372d39fa2fcf0c": { "zh": { - "updatedAt": "2026-02-19T02:24:11.940Z", + "updatedAt": "2026-02-24T10:49:35.587Z", "postProcessHash": "1e497c1cf33bc536af8f2749232333fddcf1b8fd95cb2b167b7d2c35af57df26" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.943Z", + "updatedAt": "2026-02-24T10:49:35.588Z", "postProcessHash": "e1bbfb14d6278475d19971bc085c1d3c83194a33588660669717a32513ba148b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.944Z", + "updatedAt": "2026-02-24T10:49:35.589Z", "postProcessHash": "1d796731c0b0113e9cff3d07e1d9c6f1318f1efedf139a1328caf9cc2d75b31a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.960Z", + "updatedAt": "2026-02-24T10:49:35.607Z", "postProcessHash": "f6bf6f95a0ffec303471b16e6afe8c2ae4c2ef406ec49a6e99a99765458f6575" } } @@ -14072,19 +14288,19 @@ }, "c69197e729b45b83172b07b5fdd3645b88db8046bf5bb31a68cd682c6d051941": { "zh": { - "updatedAt": "2026-02-19T02:24:11.942Z", + "updatedAt": "2026-02-24T10:49:35.669Z", "postProcessHash": "e3955804863d02d0f6cfaa240645b703f1e3a6922cf09ea661aa202f00516a67" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.946Z", + "updatedAt": "2026-02-24T10:49:35.677Z", "postProcessHash": "6c0432058f1ae8bc36419626b2f02e47347a5292dd4a751efa69db28eddd5820" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.947Z", + "updatedAt": "2026-02-24T10:49:35.677Z", "postProcessHash": "12798d4740bc2ee11f08161d50d416fea78511ad94e5c2d44891793083780398" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.959Z", + "updatedAt": "2026-02-24T10:49:35.689Z", "postProcessHash": "2ef903200c60588ea616e1f7ce0a49b54e0fc52658a646fb6c72b86164b40cc8" } } @@ -14106,19 +14322,19 @@ }, "58984220866e43f02a740745ebb06432bbb947599b76ebac94285e9ac90b8b4b": { "zh": { - "updatedAt": "2026-02-19T02:24:11.936Z", + "updatedAt": "2026-02-24T10:49:35.659Z", "postProcessHash": "b7ec62c679e5131ba5d07853d9d67d468343a0071c82e9231659b65c603ce212" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.937Z", + "updatedAt": "2026-02-24T10:49:35.662Z", "postProcessHash": "9ff7f67313d365b8433e82f603284d486332e62f9b8d186b9695f5dca8c75a6b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.938Z", + "updatedAt": "2026-02-24T10:49:35.663Z", "postProcessHash": "89f03a3ada1a5dcf3611d6f4793408d6698e3f02eb5c98ebaf7487a9aa393f17" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.006Z", + "updatedAt": "2026-02-24T10:49:35.735Z", "postProcessHash": "36b40085499d9e1bd02267a999bc635794ed5352adf9e0df078ca365b9b3c50c" } } @@ -14126,19 +14342,19 @@ "24ceb06f47cf82806e35ac32dfe18ca24087b06cffbe5021739286a56c793b1d": { "4ace68b0458a094405f4c0fd1dc60a5ef026a1a8639846623e86fdff84ae8507": { "zh": { - "updatedAt": "2026-02-19T02:24:11.923Z", + "updatedAt": "2026-02-24T10:49:35.642Z", "postProcessHash": "95bbd330bdc93d2c879a9cfcc548d00a455b3724327f737244ba6b3ddda163b0" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.916Z", + "updatedAt": "2026-02-24T10:49:35.634Z", "postProcessHash": "50a1926780cf09ddc3fc494e40d3fbe6ce7f0d3ef36a5351f5703a6443ba7b77" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.912Z", + "updatedAt": "2026-02-24T10:49:35.629Z", "postProcessHash": "f9454865fa72743a65b5c279ebea98c2b7b104a7ed9c073bc965b47ed483b3e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.954Z", + "updatedAt": "2026-02-24T10:49:35.685Z", "postProcessHash": "06386a5dae5da300df8f0cd443f714d935bf436e787e520b15668bf473ede058" } } @@ -14160,19 +14376,19 @@ }, "b02dd95ce2017cb8d131861063e4af017bf701d798b1e45de1134d84ca311ad5": { "ru": { - "updatedAt": "2026-02-19T02:24:11.939Z", + "updatedAt": "2026-02-24T10:49:35.666Z", "postProcessHash": "f48de2dbfa1bb581aa08a40fe165e901d91d196825c511cf149d7eac217fc2a9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.940Z", + "updatedAt": "2026-02-24T10:49:35.666Z", "postProcessHash": "5f32c5e4f8b3d7624a5fdd4d672d7547300b34f6310b3f94819bf4361b7f0275" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.948Z", + "updatedAt": "2026-02-24T10:49:35.679Z", "postProcessHash": "be7565f39d969927841efbd65d3cfdb40248ee35df83c1ec8226873e4e854dc0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.957Z", + "updatedAt": "2026-02-24T10:49:35.687Z", "postProcessHash": "86deec40f1753450a47799af6cee59ae27362e6f390e123ade135b2aa3eabe52" } } @@ -14180,19 +14396,19 @@ "4a932aa16f4947c7ef17e42150e4a316f1ffcde90dd8415e4c6bf929ba835846": { "49a5dd5634212d8130c73ae1cd817b3917e322d14b3c96754d53df3d228cd836": { "jp": { - "updatedAt": "2026-02-19T02:24:11.861Z", + "updatedAt": "2026-02-24T10:49:35.562Z", "postProcessHash": "234b7a1b61fb329c308813bff055023e71cbe006fed0f5e9298f684020ce4acd" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.862Z", + "updatedAt": "2026-02-24T10:49:35.562Z", "postProcessHash": "a911e05bfbcb6400eb609565501393fe75160c9487a06ff9e6f035eddde8cb5e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.930Z", + "updatedAt": "2026-02-24T10:49:35.656Z", "postProcessHash": "b6373f3498f20a02ab7828b779fdb01b77061a0af27336b906ba773e2bf901a6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.955Z", + "updatedAt": "2026-02-24T10:49:35.686Z", "postProcessHash": "512f0cecf8a3265a16850cca6de980765e5953bc7935854dff6d94b258cd8f3d" } } @@ -14200,19 +14416,19 @@ "4ca74029aba5db691ad0ec824ca43ed7d92a4d5b9aa1573bc7116ad308b92cde": { "f97238d94d5bdc95a6129e0715198e8a6b955a58fbaa7da4e12e9dfa1348f135": { "jp": { - "updatedAt": "2026-02-19T02:24:11.915Z", + "updatedAt": "2026-02-24T10:49:35.632Z", "postProcessHash": "09a6db0b137c4937915239af04fc4d603d95fd97f8a3be3fb21103e67d488748" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.915Z", + "updatedAt": "2026-02-24T10:49:35.633Z", "postProcessHash": "7ff4b9e7665297da9c230b7ffd59c85f8ee2fc673184fc9ca4460f00cb1d0550" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.918Z", + "updatedAt": "2026-02-24T10:49:35.636Z", "postProcessHash": "c32b40c23010d18f512809d587e33feaa50588036a2c8bb5a696be7b655839bf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.951Z", + "updatedAt": "2026-02-24T10:49:35.682Z", "postProcessHash": "f30910ea876cdf378d208e21b2e766845ddefad1d937d74fdebfb318feccc365" } } @@ -14220,19 +14436,19 @@ "4dec7d00a7f493694d866154c843363d42ed6db4abc5dfbd010fdd90bfcaf67d": { "97c6b3e272815f6b0861c69df01e35d4daeb9dd3a1b81af896dc36740a178f9c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.930Z", + "updatedAt": "2026-02-24T10:49:35.656Z", "postProcessHash": "9c20fb3956291e3b28bee84454cf4197aaec4f8550c9e0645d5457f1b67fd18d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.857Z", + "updatedAt": "2026-02-24T10:49:35.555Z", "postProcessHash": "45ef89be1ce46e6b6bfffa6dcbeb7417839c7547d1f65be5a1197edd00f8092c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.860Z", + "updatedAt": "2026-02-24T10:49:35.560Z", "postProcessHash": "8c032c4751f4c1cddd6d7f12315dcc383996f9df6d854dc78df866f1806844d6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.953Z", + "updatedAt": "2026-02-24T10:49:35.684Z", "postProcessHash": "81929c8f3e14af52b7460a078627af3ab9bfd60a2d6d064944934002575f356c" } } @@ -14240,19 +14456,19 @@ "51e35897aeb6c746cdd097c39d7d3d876e62dfc0623f6a3c97974b88226b3a00": { "07eab7fc4983c7ac1da23e4f9c0e0aaefbcbbf2c5cf96b5e1af6a93d9eab9a6e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.919Z", + "updatedAt": "2026-02-24T10:49:35.637Z", "postProcessHash": "6c1c2110d9c54d6d3aa4fc04a689c6b3928350bfd55107d75d5bf448c9da73f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.926Z", + "updatedAt": "2026-02-24T10:49:35.647Z", "postProcessHash": "4488b760e4bb547e33811809b1ce24cff4a027ae215501478a38f22dedf98b25" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.922Z", + "updatedAt": "2026-02-24T10:49:35.641Z", "postProcessHash": "c2585578fcdaa0b967c1f21405eba5b2e68aa15b06a7e83305324feff2c45a5c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.949Z", + "updatedAt": "2026-02-24T10:49:35.681Z", "postProcessHash": "6d2cc4faa8f267e1971a7bd15a7c39baf86a658c47248423a81572ae69987ca8" } } @@ -14274,19 +14490,19 @@ }, "c4ec31a681b1c37d614804cffe1af05c84b7167a496747c8126322b8061086ed": { "zh": { - "updatedAt": "2026-02-19T02:24:11.937Z", + "updatedAt": "2026-02-24T10:49:35.660Z", "postProcessHash": "e3dee79ef9e5d535d51dc5919a837aa8362df3cc1113288848adc84705dd1e9d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.938Z", + "updatedAt": "2026-02-24T10:49:35.663Z", "postProcessHash": "6587bcd5b17c4bac0c3dc74033eb14cb16917fd2f618c3bbb13e00f9f6d7a622" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.938Z", + "updatedAt": "2026-02-24T10:49:35.664Z", "postProcessHash": "12df198f2fdd118988b70e54c6748fdd82a3263bcaadae1fac21fd639e648f50" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.013Z", + "updatedAt": "2026-02-24T10:49:35.741Z", "postProcessHash": "bf6dd13ba97c686446da666122049555d9808dc946e92e99ad4cdb40c3d6e721" } } @@ -14294,19 +14510,19 @@ "765183c2f979cd15300174a6cbeab761c53e4a2b979f9c1c628c55c69015ae5b": { "aaedfcb72829b8339998ff9e62eb6e54a69755858854804557b9efc3496e73f9": { "jp": { - "updatedAt": "2026-02-19T02:24:11.926Z", + "updatedAt": "2026-02-24T10:49:35.648Z", "postProcessHash": "dcc36999a9d1f18bd85d1beaccdfdde892efc1786b9bb77a10c44036c8f34baf" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.913Z", + "updatedAt": "2026-02-24T10:49:35.631Z", "postProcessHash": "0503e4406832f53b4f221c88eb05bed37b4c17afba32bfe7096ea93fca01c764" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.926Z", + "updatedAt": "2026-02-24T10:49:35.646Z", "postProcessHash": "76a08055514c78390a18524c498b4fac82ce6d8e900d7f013a4d2e1e910ba11e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.952Z", + "updatedAt": "2026-02-24T10:49:35.683Z", "postProcessHash": "ca10ffa12c33fedbe784651c9089068cb650a3e5addc4a73fdda9826b160f9df" } } @@ -14314,19 +14530,19 @@ "9bd2367031f4ad3ccaa40d2eab23421bb90a176c87631c89d0565908c1c8129d": { "a3d661f00c76cbebde5bfa666feb5af47a4620862c09e2ad2d7ea88d84d8c98d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.921Z", + "updatedAt": "2026-02-24T10:49:35.559Z", "postProcessHash": "7a712d2749e806e6af85dc650dd2a81c4bb5b396decbb3a22539e42a579406b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.924Z", + "updatedAt": "2026-02-24T10:49:35.561Z", "postProcessHash": "f3d8bbbbf86baa3aa577a9e78fa4dfd9b702e604bb934e9e53262d39f79cc331" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.920Z", + "updatedAt": "2026-02-24T10:49:35.557Z", "postProcessHash": "4e34cbb55d5e020b4f91d81531b043aeedf89e05b72bfdc97fd3a69e1ba74ffe" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.011Z", + "updatedAt": "2026-02-24T10:49:35.688Z", "postProcessHash": "a96a89b06473ebbc151382ad04062fbd15fcf1a5162999599b670de04751e187" } } @@ -14334,19 +14550,19 @@ "a61623fa5c7f672b85c730754446bc1a65a53fbfc1fa7eb64e0779690ac3049a": { "e82d7f23954deebeb66e19daaed4363f0e28569d3a42d1de12ffdce2ad3976fb": { "jp": { - "updatedAt": "2026-02-19T02:24:11.931Z", + "updatedAt": "2026-02-24T10:49:35.658Z", "postProcessHash": "2d32aba266207980b913bba99d81c189ad8b714e091572489283383ad1fdfa6f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.929Z", + "updatedAt": "2026-02-24T10:49:35.655Z", "postProcessHash": "72ca81762fd2398482eb4adb831282a028ef37d9b0786761b3aff1ef52637dff" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.924Z", + "updatedAt": "2026-02-24T10:49:35.643Z", "postProcessHash": "48a32e0d03d0d9f822c367719c5a742cefb4d2b3dc5314db597b549cb7c6c913" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.950Z", + "updatedAt": "2026-02-24T10:49:35.681Z", "postProcessHash": "a20c967574d4174301559064ef9bad963130c5659bf9d288f6b6bf394aeca5ce" } } @@ -14354,19 +14570,19 @@ "b0c4a6145c3f1c781d51adb03f8e4996331d1159cb14cba9c81b851b728253ee": { "d161896a6a88f3dc7f188f95f5ef37b65e50579afa43c7f21b1656e07c5010a7": { "jp": { - "updatedAt": "2026-02-19T02:24:11.925Z", + "updatedAt": "2026-02-24T10:49:35.644Z", "postProcessHash": "a6aa5365d0badead41655877c845af035cabb227a331f2793c70fdda80214126" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.927Z", + "updatedAt": "2026-02-24T10:49:35.651Z", "postProcessHash": "d8d21c12de05e3efebe82e74c44afd5c0417e70810daecd0cc41b40e8b1786bb" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.931Z", + "updatedAt": "2026-02-24T10:49:35.657Z", "postProcessHash": "63715b01829a2bc33cbe28afeaba706598bd65f6e3b2cb7dce4cd0314588f017" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.948Z", + "updatedAt": "2026-02-24T10:49:35.680Z", "postProcessHash": "dd8728f98a050f80ef4cebedbda84050c5ef6932a3ad759a0b455974163c5aea" } } @@ -14374,19 +14590,19 @@ "b6071010708dd9f91932364b3060488201176aeb008d6ba6dceaee25a82a0a2d": { "2007a45c3bc14f5333a4866ed3de37e1c4ce663c0e2b1fd31fbf2030fed127e0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.929Z", + "updatedAt": "2026-02-24T10:49:35.654Z", "postProcessHash": "541757236bb048447a381ec5f2642bd93f4b30d27942395009cf92cdff485797" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.925Z", + "updatedAt": "2026-02-24T10:49:35.645Z", "postProcessHash": "0267845e0ea8f16712ad745e7051266fe58c1541e07200a4d78d1e9c76424e61" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.922Z", + "updatedAt": "2026-02-24T10:49:35.640Z", "postProcessHash": "9c6ef013627b818a34bf348cb37c9ea10bdba63c16c7431246a25f65268d0ed5" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.007Z", + "updatedAt": "2026-02-24T10:49:35.736Z", "postProcessHash": "b87233e6fcc0fb942f6d5ffff7ac0686ca162f4497c4d81011be468dc9604a7c" } } @@ -14394,19 +14610,19 @@ "bf4425dd6cb86116b19753768a5420c28985c1fcb442ecd1b5e1d37e6ca2f98f": { "e1eae6052323b0cc1ddca82febd2af06bef603d4809bc06fe09b3e2b0880ed2e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.927Z", + "updatedAt": "2026-02-24T10:49:35.653Z", "postProcessHash": "cd8cd1ceee70aa8a077076f81a12de70fdde8f569cd2b0df1be014e52df437bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.865Z", + "updatedAt": "2026-02-24T10:49:35.652Z", "postProcessHash": "b34b98a610935fab52d86f83d60b4e073172bb9b053b2fdd12062de6ef456c35" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.859Z", + "updatedAt": "2026-02-24T10:49:35.558Z", "postProcessHash": "f93f0d8ea07facbbcb2082ccd160189bdf2e342ed42c06de7ad52483c74e2298" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.950Z", + "updatedAt": "2026-02-24T10:49:35.681Z", "postProcessHash": "9912a4d2f40c3507419bb0fcbaa4d742422a541ee25f139966e5fcfa14f6ae6b" } } @@ -14414,19 +14630,19 @@ "cdab7bf0d8c24f10d2d5dc375305c22f728e0f36fa1e29fdd04c99781fbc6cd5": { "083150d2c3def0d0736d5dbb6a695b7ea5c691ce94fcb5f5e84487727895f4ff": { "jp": { - "updatedAt": "2026-02-19T02:24:11.857Z", + "updatedAt": "2026-02-24T10:49:35.556Z", "postProcessHash": "c10d8f832abe74b4ff75bb372f263a74bdb5d716b9edbbd0a1c66e33f6d5ec8d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.863Z", + "updatedAt": "2026-02-24T10:49:35.648Z", "postProcessHash": "2b0c83e8af4ccef48737a37e30190687deafe3f71f00d7fce5720dfb96d44319" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.864Z", + "updatedAt": "2026-02-24T10:49:35.650Z", "postProcessHash": "0e1118d746faab27b858018224d014e7741815662bbfc44527371046abb6f7cb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.952Z", + "updatedAt": "2026-02-24T10:49:35.683Z", "postProcessHash": "96b8111191539837b7841e81a6b75db50294d620680546984a6dd6c80511421e" } } @@ -14434,19 +14650,19 @@ "e93967fcdbac2bba7b89b4164ea987452cd09d1070238a59a238036fd94e8618": { "94a465a749cb716926a6ad2a66382c7591719aa2f9d792d5910f48efdc1e20e5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.855Z", + "updatedAt": "2026-02-24T10:49:35.628Z", "postProcessHash": "3d3929129c1db39e07510dafeb9a17b1f7494b60dd8c1b8f6f829c1f1ca0fa96" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.923Z", + "updatedAt": "2026-02-24T10:49:35.642Z", "postProcessHash": "821dfb70ac92cd29441fbe9e6a6a804829e545935a40d5fe470b337198f31be9" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.919Z", + "updatedAt": "2026-02-24T10:49:35.637Z", "postProcessHash": "515511b7784d414d372385b8a5e63de43a560271cda4663e1646bb9439ec8c90" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.012Z", + "updatedAt": "2026-02-24T10:49:35.740Z", "postProcessHash": "ed0e135358a4d4d75a1d0e4e77c6f8f671a258bcf572b6a253fbc0705c6b75fd" } } @@ -14454,19 +14670,19 @@ "f0e219e3fb45c878fc0c3bc00fdeef1c5dd9c6ab75d1a093efffa9a0a6f002d6": { "f70bbeacf6050f44afacc1a4872c5eb1d3c4e9df491f0c452fdbd869057adb57": { "jp": { - "updatedAt": "2026-02-19T02:24:11.929Z", + "updatedAt": "2026-02-24T10:49:35.655Z", "postProcessHash": "d79a636b06609e24b1b0162b786ca8abddaf3da80b6bd038db39fdde1c3dc55b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.860Z", + "updatedAt": "2026-02-24T10:49:35.560Z", "postProcessHash": "f05566051f38173e7d729ca519698c75d362ffb909905e195c1f957378fe8562" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.860Z", + "updatedAt": "2026-02-24T10:49:35.561Z", "postProcessHash": "b19746e2a746b59dd6278c63827d2e882855349e23a80402cf4aad23b2bf6297" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.954Z", + "updatedAt": "2026-02-24T10:49:35.685Z", "postProcessHash": "2904d715d305c0abbd254827c6addec9f5d88d50f591d4f61d6fb4946f210ddb" } } @@ -14474,19 +14690,19 @@ "f39b12efbc001a35d87891fb78f7cc37fe27f3e15abe1f7329d97a2afc1e55dc": { "abf20812398c31c2895cbc7f3902a957857e45b0abdb831d7765f7268fac0928": { "jp": { - "updatedAt": "2026-02-19T02:24:11.917Z", + "updatedAt": "2026-02-24T10:49:35.635Z", "postProcessHash": "8a004b6b10ae328e7aebb48d8f2ac0b59e44bc1de53332fbcca3efbdeda027ce" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.921Z", + "updatedAt": "2026-02-24T10:49:35.638Z", "postProcessHash": "c812b4e6b926b56f1a31c341044b19bbb630bbd38f4b872c7563897074be2796" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.914Z", + "updatedAt": "2026-02-24T10:49:35.632Z", "postProcessHash": "a762f592ef3a41ba4135d5f6da4b77582a215cae6504aba7334d622aadb21566" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.955Z", + "updatedAt": "2026-02-24T10:49:35.686Z", "postProcessHash": "bdc5bd4b43767b313339d925f2cf41b38e3957cbb24396c9c1d4410dce08ac27" } } @@ -14494,19 +14710,19 @@ "f44395a43048118c7fe3d4525c225cb5397a7fe3c98ed8d8b8fcfa08e86d5620": { "9d5c04c8e9de527ab629ee91b9ebf0d572f7863c4f88f5651c671a5fff9df8fe": { "jp": { - "updatedAt": "2026-02-19T02:24:11.925Z", + "updatedAt": "2026-02-24T10:49:35.646Z", "postProcessHash": "06c3d80eeab962f5d7047de4c6a3d9c1c3969223f7c179847523a220e547fec7" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.922Z", + "updatedAt": "2026-02-24T10:49:35.639Z", "postProcessHash": "31a09c250d23ca8d38420f7f7afd1b9c62db85f704ca8bc2a77ceb47a8881bb7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.856Z", + "updatedAt": "2026-02-24T10:49:35.628Z", "postProcessHash": "d0025d91d2c8dc9f151d2d585508014a2bf19c81ff04fe1731e1dac4119e775d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.007Z", + "updatedAt": "2026-02-24T10:49:35.736Z", "postProcessHash": "1af03996b7a2f7a94ee36db8f5717cf1a24e23fd96dc1a0dc12f9115b7d0fa27" } } @@ -14514,19 +14730,19 @@ "f646fb33e6fccf32e79c0ff130a3e33907e8822e1555b98aa42e7679988ce2ef": { "9c48604413e046bab5cde9bba416d6f9bcc6a7ded493b091e329a27c18ad8b0a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.913Z", + "updatedAt": "2026-02-24T10:49:35.630Z", "postProcessHash": "4092cfd66f9d66b572ab875b4f19e7f3006c8cf74de94d4ad5443f1595549a2b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.920Z", + "updatedAt": "2026-02-24T10:49:35.638Z", "postProcessHash": "8a6be9e369010243e1aa7a698248f25faca0129ccc9a01f3c1e3fe7d59fefd8b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.914Z", + "updatedAt": "2026-02-24T10:49:35.631Z", "postProcessHash": "e061e6334398aab3281a551e01d7cfc80f1d597270d7827ebbc1fd0cd124d437" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.006Z", + "updatedAt": "2026-02-24T10:49:35.735Z", "postProcessHash": "fcffe2ff720de188ca9bbf6062016b73084cc2bfdb69ce40f80d1524ec33ec5f" } } @@ -14534,19 +14750,19 @@ "fb8e6138536700f07eca78b5f157d45b6036f77f52782711c91ba183897b4c9a": { "85d1f9adecaf2dd9004cd1e79d1ecdd61c68f65285973b86e6e2ba31e2eadf2f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.862Z", + "updatedAt": "2026-02-24T10:49:35.562Z", "postProcessHash": "14faabc7bd2c62a22ca70a034dc40738bc79f8864d1fe5c083dde63ffd266bf5" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.864Z", + "updatedAt": "2026-02-24T10:49:35.649Z", "postProcessHash": "15e455cc8b86ff2883c4defa5843b0eba7e41e133ea32b10c990f98c632be31c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.928Z", + "updatedAt": "2026-02-24T10:49:35.654Z", "postProcessHash": "616273bc82cda7439988d4751d231f7cf33b996c19c0c2bf4251ad54170c88a2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.953Z", + "updatedAt": "2026-02-24T10:49:35.684Z", "postProcessHash": "c131238cff0c3d480c99d1a59e961c6b6cd5d8d06193290ff3c3dd12bdf1f4cb" } } @@ -14554,19 +14770,19 @@ "fd9477b10ed7d16ef2358b8d1e49ae2377cc94b7a2aa1d03cbf8e6ee55954611": { "36f5cb32c3341f1b52d0987870b8e971b48d9b4ccb72422d895a8e8de42aa565": { "jp": { - "updatedAt": "2026-02-19T02:24:11.854Z", + "updatedAt": "2026-02-24T10:49:35.552Z", "postProcessHash": "beb62e51b1625161790e4d2c2c02c891224facebc3c91642df8ff903c0ac9584" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.918Z", + "updatedAt": "2026-02-24T10:49:35.556Z", "postProcessHash": "14d07ac39965d281e977e468e612ef370b83d87a4ab13e5f05b4f357cd42a4d2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.855Z", + "updatedAt": "2026-02-24T10:49:35.553Z", "postProcessHash": "b320daec98a5d29fcf653cce048d2d121a9fd78be60bbf27fad902dcffa1256e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.010Z", + "updatedAt": "2026-02-24T10:49:35.687Z", "postProcessHash": "d796ac4642a6a98b3ef208dbacd7c44da59315e1194e9b6176ff64bf116efe03" } } @@ -14602,19 +14818,19 @@ }, "61e05aa7307e811aa618ca94ea4ab7ba61d5b513787d400c1e5254ca8cb1c7f0": { "zh": { - "updatedAt": "2026-02-19T02:24:11.989Z", + "updatedAt": "2026-02-24T10:49:35.720Z", "postProcessHash": "29ede7ea89ca0ec87f8f1510c76195fef459844d31c6d48b4a08d2e0e429452f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.990Z", + "updatedAt": "2026-02-24T10:49:35.721Z", "postProcessHash": "1b4f6f63030c3f8c694a799a72219e135652ea773e0365cff278b569d7f36ed3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.995Z", + "updatedAt": "2026-02-24T10:49:35.726Z", "postProcessHash": "e02c654fd9b3708b0f93771f238920b5414fdc35bc25305cf39d0b9e93a2ef4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.005Z", + "updatedAt": "2026-02-24T10:49:35.734Z", "postProcessHash": "dd26e8790c01e44f5711f3d7f5bcb26e1abbfed7f361ada029d7a5dce6afb473" } } @@ -14678,19 +14894,19 @@ }, "7f07bf80ad2373ac8cb883d06a4e07e0ad7b670a5d8b30a950eb5ccd92c142ca": { "ru": { - "updatedAt": "2026-02-19T02:24:12.029Z", + "updatedAt": "2026-02-24T10:49:35.756Z", "postProcessHash": "7956761e1ffcf4ea1731c9c3cecc0b0dd61ea96e99da15106c7d1ccc93fe2a4c" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.034Z", + "updatedAt": "2026-02-24T10:49:35.760Z", "postProcessHash": "7d9a7f59bad168afe9d206dabff7c8c624cdfc48dd9442e14bc6a2131b3708e8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.042Z", + "updatedAt": "2026-02-24T10:49:35.768Z", "postProcessHash": "9b6beaf85ea3e0af493354ae186c7b02ea05980ee370cab92904d944e44ad2df" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.078Z", + "updatedAt": "2026-02-24T10:49:35.824Z", "postProcessHash": "dfec72097bba4fc106ed0953db149bc0968b9af431dce08477698161881894f6" } } @@ -14726,19 +14942,19 @@ }, "c2fbaf14aa1297ec6d0444352396eb030a810efe9a341930f12e5f7e55b531a3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.992Z", + "updatedAt": "2026-02-24T10:49:35.722Z", "postProcessHash": "b85eb1129c84b926287d8d10c02c10e48157e8ce78d459aac88ba1321fddc3f9" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.992Z", + "updatedAt": "2026-02-24T10:49:35.723Z", "postProcessHash": "b9fa7ce6f70453e84b82728a32480aba7184c45fa9b31e9c1916c1b33cd957ee" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.993Z", + "updatedAt": "2026-02-24T10:49:35.723Z", "postProcessHash": "0e49b5c79b1da6ebdc970d544b0114abbd3d51125ee4492a4c359b43c109b27a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.005Z", + "updatedAt": "2026-02-24T10:49:35.734Z", "postProcessHash": "91cbfac0eee1c80149cc2160584c6e90edf9d499b0a90259decdb6a762e53ddd" } } @@ -14746,19 +14962,19 @@ "1fa73f7fb3f17cb73adf9d2fd3672fb7b1bcea959cdfa4cc1cebebf9783e8493": { "68781891b0d87b8b7fc619dd4fa0e041668116f49851eeb31c8f510173e044b5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.916Z", + "updatedAt": "2026-02-24T10:49:35.634Z", "postProcessHash": "0489920d9687406ed5c4e66b994acb844577c7db44e5aef89729c5495a34912d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.917Z", + "updatedAt": "2026-02-24T10:49:35.635Z", "postProcessHash": "2b0c5cbc84e1d275810349396f6de82c983a443354e34cd5ab6525bcbe7e9be2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.916Z", + "updatedAt": "2026-02-24T10:49:35.633Z", "postProcessHash": "1e22edf39514064a757b543f6e848c747d3b84ffd99f680247f4871af013bd95" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.951Z", + "updatedAt": "2026-02-24T10:49:35.682Z", "postProcessHash": "cfb384ca6a1537569179e9a2a68135c00f8a75af15d6410ea9ab7f5205b4d847" } } @@ -14836,19 +15052,19 @@ }, "68f116f3f3d17736ef54d0114e281249a0d018553b7149d872117b7a90e89123": { "jp": { - "updatedAt": "2026-02-19T02:24:12.037Z", + "updatedAt": "2026-02-24T10:49:35.720Z", "postProcessHash": "1bb73d5494f4fac1925d9d02e338ae11f7d7f349e9ea194d16fd5b9f2baadd59" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.050Z", + "updatedAt": "2026-02-24T10:49:35.725Z", "postProcessHash": "4ddfa28242efc4900d48bf9db95957d6bab716a28df7e6752cea03de7c01d59e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.056Z", + "updatedAt": "2026-02-24T10:49:35.728Z", "postProcessHash": "8132f1459fb489d52fcb2d53de76c120830c88127a60aafd4d833c5a41d73a86" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.072Z", + "updatedAt": "2026-02-24T10:49:35.740Z", "postProcessHash": "ba581186e76434ecfad71b099d3fc539809f9400710adbd35cbf6d3479e56fc2" } } @@ -14884,19 +15100,19 @@ }, "987313de1a80506724716d71cf474da7cd84eb84e08e9d7d9f42577c216c1611": { "jp": { - "updatedAt": "2026-02-19T02:24:11.985Z", + "updatedAt": "2026-02-24T10:49:35.716Z", "postProcessHash": "e729480964cb672e6f4dc9ac317c99e5cc7b6a5e1dbeafbabed5a55af6437c70" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.986Z", + "updatedAt": "2026-02-24T10:49:35.717Z", "postProcessHash": "e9f224630535aeef5ccd8533b252e30adf3081cffbb5a5d6e010757862621d4a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.987Z", + "updatedAt": "2026-02-24T10:49:35.718Z", "postProcessHash": "1a1cae192eaf426ce6c3242b7806c4b590923f8509e1c0ea669f6f779a8eadb0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.010Z", + "updatedAt": "2026-02-24T10:49:35.739Z", "postProcessHash": "3fdeb61918524512fc52f74eea92a77b8817501b2b6d7d978d7cb99be73c49cd" } } @@ -14971,19 +15187,19 @@ }, "e2f4068d76a230695063b5612815cecf537115c6e91123f19f73c9b2c721738b": { "zh": { - "updatedAt": "2026-02-19T02:24:11.998Z", + "updatedAt": "2026-02-24T10:49:35.729Z", "postProcessHash": "8ac6a52e0565e001c0f2a7478738e06c582c7dcced7b7fcc4edf291904756d81" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.999Z", + "updatedAt": "2026-02-24T10:49:35.730Z", "postProcessHash": "160540f9472556eebdeafbd57aa8c9cecb06fa233e50623db75047e2abea2bdb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.003Z", + "updatedAt": "2026-02-24T10:49:35.732Z", "postProcessHash": "28d197ddaa315ebb430d08616c0f2b948b39eb5cd269121d788a8ca295f68c65" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.019Z", + "updatedAt": "2026-02-24T10:49:35.747Z", "postProcessHash": "5c0cafa2874d1b00c915055426f5df761513e41b519c71211ef132f5cf810017" } } @@ -15005,19 +15221,19 @@ }, "b278ad0991eafb01ae1c04522ebb6410ade9d12d563f296a8208e522fb1ec9e4": { "ru": { - "updatedAt": "2026-02-19T02:24:12.000Z", + "updatedAt": "2026-02-24T10:49:35.675Z", "postProcessHash": "827822615319f8fe068ec115ff28bb5d6c758000e1ce0e9f047ff3ccd8eea2d2" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.001Z", + "updatedAt": "2026-02-24T10:49:35.676Z", "postProcessHash": "ed8b431f2f7db8139d58ea6263c3f9e6f1ac3c5c92d7b32502a0e304e1c7dcd8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.004Z", + "updatedAt": "2026-02-24T10:49:35.678Z", "postProcessHash": "f813f9d3ba2ae83d7f41f3fe89142ba058ba55d25b00280621c5a19be82e15df" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.018Z", + "updatedAt": "2026-02-24T10:49:35.746Z", "postProcessHash": "9b01bdf650693faaf56120be8e8dc6912618eee5559636806d67a03203de7f5e" } } @@ -15039,19 +15255,19 @@ }, "5fab1af569d0848a1643df4ad8ca309439e4d7f122c8ba417bda1682660f5b41": { "ru": { - "updatedAt": "2026-02-19T02:24:11.932Z", + "updatedAt": "2026-02-24T10:49:35.699Z", "postProcessHash": "019ae5830995f0e7dae30e24e530ebf8d6333c7e234a0f6cfef0c2138ff7eae2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.973Z", + "updatedAt": "2026-02-24T10:49:35.704Z", "postProcessHash": "636a983071f60c435f53077569da5fc104270374c78053f4aee097c989371815" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.974Z", + "updatedAt": "2026-02-24T10:49:35.706Z", "postProcessHash": "1d3906e87b7e70bbe02ce845129394fa94933a8eef2398ccaf7c6c841ac9a31c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.008Z", + "updatedAt": "2026-02-24T10:49:35.737Z", "postProcessHash": "f69e5c4b31deb2e37c5b898869ec1bc0de8cf54f6990acc15a16a72430c47701" } } @@ -15147,19 +15363,19 @@ }, "25d834843beaa92a97e657e4c4761d83a0788955f9ed7b634a00d21b0a7b1993": { "zh": { - "updatedAt": "2026-02-19T02:24:11.988Z", + "updatedAt": "2026-02-24T10:49:35.719Z", "postProcessHash": "62c2b8abbbd7d528851ce5ee8c74462fb2828a75370e1ff5222d63800f0b9c69" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.989Z", + "updatedAt": "2026-02-24T10:49:35.719Z", "postProcessHash": "4d272658bf845919763c720c6c64337ab6320ed7ad89ec83c413dbad8115060d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.990Z", + "updatedAt": "2026-02-24T10:49:35.722Z", "postProcessHash": "c0de9b1951629340c2d5b71f1cd4fd06963bf79a320128ca40af7ece2512caa9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.014Z", + "updatedAt": "2026-02-24T10:49:35.742Z", "postProcessHash": "17af69baf795001189a0765baf395a740d41efb74a80071cd51e7d1b32dc2606" } } @@ -15181,19 +15397,19 @@ }, "2d2806f3a1690fe7f44529bd860c32c6e8addc528507468ae9fd85accceae998": { "jp": { - "updatedAt": "2026-02-19T02:24:11.933Z", + "updatedAt": "2026-02-24T10:49:35.700Z", "postProcessHash": "14021aa3182aefc47a7230dbe00eefc0c524e89040b9af80a40453ede840adde" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.971Z", + "updatedAt": "2026-02-24T10:49:35.703Z", "postProcessHash": "5e5142c98cd5e6599f80946362aa89df7408bbf1edc10521cf79c51c1145bf34" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.972Z", + "updatedAt": "2026-02-24T10:49:35.704Z", "postProcessHash": "78669cda9bc64f6e17bf8f02dbbfe35f3bb535140b185a9cc53fd7b174d59cb4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.009Z", + "updatedAt": "2026-02-24T10:49:35.737Z", "postProcessHash": "d38c1130e2570bd0be5b575c8948411eb23707ecd4d661bde0e4663c4e68c99d" } } @@ -15229,19 +15445,19 @@ }, "9c5a67b449e9b9aa528824a2a09df99ec51b6603450bb17c102c30e762e6499c": { "zh": { - "updatedAt": "2026-02-19T02:24:11.970Z", + "updatedAt": "2026-02-24T10:49:35.701Z", "postProcessHash": "89fc0f9f2af534d7269d77247867824af1eab3c970aacb9c78e7e9dd2352af18" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.971Z", + "updatedAt": "2026-02-24T10:49:35.703Z", "postProcessHash": "b0d892fff269268d91def32dffb44bdfcbb3a1dab1367ecac4391c3396fed3af" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.974Z", + "updatedAt": "2026-02-24T10:49:35.706Z", "postProcessHash": "f266ad77d745f13281478dcb95ef39e0daf008853d70d920c243fb16a6f8a0dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.060Z", + "updatedAt": "2026-02-24T10:49:35.733Z", "postProcessHash": "c840e88fdeb42ce1000e03d44c8ea6474efac4c3e72a13228c3c3d10e2b7e8ea" } } @@ -15277,19 +15493,19 @@ }, "981e7db17967b13afb2404fff14e5574f04f917d8bab5b29129db937ff0b102f": { "zh": { - "updatedAt": "2026-02-19T02:24:11.987Z", + "updatedAt": "2026-02-24T10:49:35.718Z", "postProcessHash": "9cd2688d1342ebab6210c0f4ff88d1ac4ffb227e0953201484a2219ff6fa9b33" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.991Z", + "updatedAt": "2026-02-24T10:49:35.722Z", "postProcessHash": "97edb4dde23f4241005d2435f1e92a9f6cb8a0ac4a251483583484054c643b5b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.993Z", + "updatedAt": "2026-02-24T10:49:35.724Z", "postProcessHash": "41f844ded7ceebd4ce3739edc385a6462aa6318a55b9fac1a88330640dd6d537" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.014Z", + "updatedAt": "2026-02-24T10:49:35.742Z", "postProcessHash": "c4fe4d633cb826268b3e30950d271bb401b13bead94a46d0ea07d0ff42e4ca77" } } @@ -15369,19 +15585,19 @@ }, "aa58fb5d98c323a2830c31973e3c908ba082662cf486efb800bef94a41e3cbdd": { "zh": { - "updatedAt": "2026-02-19T02:24:11.933Z", + "updatedAt": "2026-02-24T10:49:35.701Z", "postProcessHash": "fcf6123c003bb3ac1016a55c00c6920e229d0b22d0bfc07840fd0c349862967a" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.934Z", + "updatedAt": "2026-02-24T10:49:35.702Z", "postProcessHash": "6b6cc789e9cb430bf297659576b92c3fabf02d6de7b376e14b4a0029c84442c5" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.973Z", + "updatedAt": "2026-02-24T10:49:35.705Z", "postProcessHash": "13ab73b2d35751b668e2c3bc3c16be7c68dcf49542067cef94127f7e55644238" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.016Z", + "updatedAt": "2026-02-24T10:49:35.744Z", "postProcessHash": "8b77df48a10cef4a86d50f98bf6d6497f6f5340a876b5a8be381435176bc64ec" } } @@ -15389,19 +15605,19 @@ "b676683ed68be73eb9635273495e9731122ee184bb63d7293df2bdf22ebad7d0": { "81117b826442551d1cf5856c822f3d1c75ce597cd1faec68ca4ca0233ff5b395": { "jp": { - "updatedAt": "2026-02-19T02:24:11.968Z", + "updatedAt": "2026-02-24T10:49:35.697Z", "postProcessHash": "bd54a2b9f7bb9c91d373b9bf48d94b02292cec227adcfd286fab1e3fd5fa8d9a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.967Z", + "updatedAt": "2026-02-24T10:49:35.696Z", "postProcessHash": "a5e6019a6775a163e4c5e5a2ad78e91b0a73a255936c0b7713d4d986cfcf83e3" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.964Z", + "updatedAt": "2026-02-24T10:49:35.694Z", "postProcessHash": "2209abacfa4127258bce32b48753ed37a0c03d7004518f337da2ff37d5a4b744" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.068Z", + "updatedAt": "2026-02-24T10:49:35.802Z", "postProcessHash": "21dfe0cea6b9cbc14c5fa8f8b0a958318e2f487d315734a8568ce0fc101cb2f7" } } @@ -15423,19 +15639,19 @@ }, "a061d71f4a7800216116f494fb736a57776a3a61817e350bef9543005ffcc93a": { "zh": { - "updatedAt": "2026-02-19T02:24:11.975Z", + "updatedAt": "2026-02-24T10:49:35.707Z", "postProcessHash": "62473c4b444d3987f0102b1f7fe90791bfab2b17da66418b84f25e1882b129e9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.976Z", + "updatedAt": "2026-02-24T10:49:35.708Z", "postProcessHash": "82eb7e49729c52ee5a56743604e4bb7d59054a5097bf347b69b30eb52cace0d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.976Z", + "updatedAt": "2026-02-24T10:49:35.708Z", "postProcessHash": "6e4475050f0bb7ab20f5c0ad4a179377426cc19c1855be863738fe8251c042cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.017Z", + "updatedAt": "2026-02-24T10:49:35.745Z", "postProcessHash": "691377f18fce3b047139690f742ca7bd25f7ca77b09018a7acfc29f78e62148b" } } @@ -15457,19 +15673,19 @@ }, "d3e8ae63f05e0ca1999e7b8eec47ee3689f49eec5c82f54170512c2b8fef37f5": { "ru": { - "updatedAt": "2026-02-19T02:24:12.029Z", + "updatedAt": "2026-02-24T10:49:35.755Z", "postProcessHash": "5190299e4569e6f4a033db70ac78b3b925a1d54075adb8d4448de60e8f2cd5d0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.030Z", + "updatedAt": "2026-02-24T10:49:35.756Z", "postProcessHash": "9965fc91475d5f7691b77bc78b951bf5e094768cec064389774fe5d29d1867f8" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.031Z", + "updatedAt": "2026-02-24T10:49:35.757Z", "postProcessHash": "e15d79c641c15843ef727f851719d4ed0bb2f9e72f5a517dc60ae9536809e37f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.066Z", + "updatedAt": "2026-02-24T10:49:35.797Z", "postProcessHash": "673190cae7d9eaef70a240b6f3a8ee0bdbad8c2ac5cd6e48dda41402e5211c3b" } } @@ -15491,19 +15707,19 @@ }, "6bdf7d5d6ad4a8dbfe31b2277f61adeabdcecc83797a329a14adb0af875f2803": { "jp": { - "updatedAt": "2026-02-19T02:24:11.994Z", + "updatedAt": "2026-02-24T10:49:35.726Z", "postProcessHash": "7a2c9ae04e525a7d65ee79c910479cfc358f16c308c55ee5e6f839e966530db4" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.995Z", + "updatedAt": "2026-02-24T10:49:35.727Z", "postProcessHash": "1d692027a178cd1772feb1f4d466e65a2cd0200b9fffc91afff6b8a54c8d41f3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.002Z", + "updatedAt": "2026-02-24T10:49:35.731Z", "postProcessHash": "9400499b9523a5b3c5e75833f89adc5da57dc248f2ce4a3c441bc4c77243bfdf" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.012Z", + "updatedAt": "2026-02-24T10:49:35.741Z", "postProcessHash": "8ace2922fb28e7c75e7d50b08893dfb78f52d2fe0b6f146a7837e779fcda13f9" } } @@ -15539,19 +15755,19 @@ }, "98c2d2851d078cc170bc7d6b0b825ac900946b5cd47a95347e328c2692893025": { "zh": { - "updatedAt": "2026-02-19T02:24:12.028Z", + "updatedAt": "2026-02-24T10:49:35.755Z", "postProcessHash": "94350e0f446baecb3cda01bcec54cb88b1bb0499dfefcaf7a3312d4d71b49b73" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.041Z", + "updatedAt": "2026-02-24T10:49:35.767Z", "postProcessHash": "8839c1700262d08827202b148bd3482e10c52a75b5d187f5be1ba6eea702efd0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.055Z", + "updatedAt": "2026-02-24T10:49:35.783Z", "postProcessHash": "7f3f3a9e735fd4dbfbb7b8e45d290741e1f7d1c9eb7d94c62ac2b6ca61161898" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.067Z", + "updatedAt": "2026-02-24T10:49:35.800Z", "postProcessHash": "ce177c39d9faefa1c083a6152dfa6a215c68612f7abee1502a49b1f830648ff6" } } @@ -15587,19 +15803,19 @@ }, "ebfe321f8ce43c5b6b3d1f039437c049a4b3734d90fd4ef555aacf1d5040ff0d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.043Z", + "updatedAt": "2026-02-24T10:49:35.769Z", "postProcessHash": "49ba7eef07b4fd8ff59db043f9cc0aa9ed6763b32ac133176c8fa28135c83ea1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.046Z", + "updatedAt": "2026-02-24T10:49:35.774Z", "postProcessHash": "54ceaa73cf4da74dda3db3a7c331270c1fb81d94dc304a7784207e391ce819ca" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.049Z", + "updatedAt": "2026-02-24T10:49:35.777Z", "postProcessHash": "bd03fab48d4d14bf48ed23b72b507d71a71ba96080dad726edf0302bb10e6705" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.068Z", + "updatedAt": "2026-02-24T10:49:35.801Z", "postProcessHash": "3e0c5e7784b02559421b170e71f3ce218bfabebd3d35e3b4eca5242be9b95eb8" } } @@ -15621,19 +15837,19 @@ }, "de115719ef179dcbe1866e17e8a48ac574ba6140e2a7d2e10fb34c478341b478": { "ru": { - "updatedAt": "2026-02-19T02:24:12.048Z", + "updatedAt": "2026-02-24T10:49:35.776Z", "postProcessHash": "799f0927bfb6341a327011a9d0eb1c3be9889254119d408d2867a61998ec29a1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.058Z", + "updatedAt": "2026-02-24T10:49:35.787Z", "postProcessHash": "f4a814650c2267abe24e0bea00e10a742436e44b0ca95ef594ef28308fb58c8d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.058Z", + "updatedAt": "2026-02-24T10:49:35.788Z", "postProcessHash": "7d661469a08ba042b177ea01f7f7f216de474f66cc0584d8513587180436aeeb" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.077Z", + "updatedAt": "2026-02-24T10:49:35.822Z", "postProcessHash": "df57fd8ca32a7482164e89ec4cca81d4a2a68e42f1a68e639c7426bdbfdc6d95" } } @@ -15641,19 +15857,19 @@ "29f7d7e079a392736f8e8414574847d7fc12094c29074c197529b77eafd97a46": { "ee468e104feb8b3c7b0aa6d6f466b62ccd0c40d76c88efce2ee623e95b1737ef": { "jp": { - "updatedAt": "2026-02-19T02:24:11.968Z", + "updatedAt": "2026-02-24T10:49:35.697Z", "postProcessHash": "6196a2d515f16a98416541b0d29757351bda3d72afb4d5f02de562768f7fe7bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.967Z", + "updatedAt": "2026-02-24T10:49:35.696Z", "postProcessHash": "7ffbd6a4dfc89b0838687c814c8e616f062c9cd14a3c8050c6d24262f7a3788a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.968Z", + "updatedAt": "2026-02-24T10:49:35.696Z", "postProcessHash": "be657064a2067b695c6333e6a6a2793004affbb877f92897789b4f1001f541de" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.071Z", + "updatedAt": "2026-02-24T10:49:35.811Z", "postProcessHash": "c32126e2a868589d16ddbf98dc259b3dff63ffc0df9a6c9d2deaba6590ae6537" } } @@ -15675,19 +15891,19 @@ }, "dfa7d0a0c4f397d0dcb8d46009cf5d8bcc4fe1fd3796465dea668e339a0d0450": { "zh": { - "updatedAt": "2026-02-19T02:24:12.038Z", + "updatedAt": "2026-02-24T10:49:35.763Z", "postProcessHash": "d3bb362bfc2cc8544378b521c31e73b9fc638d43861c808db6d431b18f05a973" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.039Z", + "updatedAt": "2026-02-24T10:49:35.764Z", "postProcessHash": "082654d34b9a027bee90ee13b167b9c1a379d0e3bb620a2fa19746cfd0c19b69" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.042Z", + "updatedAt": "2026-02-24T10:49:35.767Z", "postProcessHash": "eb82b947786b49854d33cd58700f0ca2218d7cefca46a57378f78dcb9cd58c78" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.074Z", + "updatedAt": "2026-02-24T10:49:35.819Z", "postProcessHash": "73d6c31978dcbb991d1e0b824cec45f178c953d2e98d6e9266191125cacea8da" } } @@ -15723,19 +15939,19 @@ }, "579b03aead2c4453894d808099cd6265e7adb486fc5dd91fd6b6e979df16b1d2": { "ru": { - "updatedAt": "2026-02-19T02:24:11.984Z", + "updatedAt": "2026-02-24T10:49:35.715Z", "postProcessHash": "d3bd8fa56a09a8cce600cb22526bd09029cb5ecdcfafca1f3c979999ccd1b624" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.032Z", + "updatedAt": "2026-02-24T10:49:35.759Z", "postProcessHash": "983c999eab7c307974b23f87843c8c10d3ddae8cb97a34cc46e91642b82f28da" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.052Z", + "updatedAt": "2026-02-24T10:49:35.780Z", "postProcessHash": "f09ba50ecceeb76e03c631d241087d4f5917a173c460d4163aa544dc61f1200c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.073Z", + "updatedAt": "2026-02-24T10:49:35.812Z", "postProcessHash": "037c73c8624c98c05f159722c2ab4c511c07349c935899952deb0927fb935564" } } @@ -15743,19 +15959,19 @@ "492356529ca75008f683673b06635e91f3cb2d7f1097826262a7957c6cd78136": { "ea6eed1ae135ae1362375bc54a6abf4d9bda82f9cd56e95b97e329d6dfceb889": { "jp": { - "updatedAt": "2026-02-19T02:24:11.963Z", + "updatedAt": "2026-02-24T10:49:35.693Z", "postProcessHash": "8bec17c1ba8cc74c707adb0e817d1c16e7688bb6b7ee8ebf2895f72fd89d507e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.962Z", + "updatedAt": "2026-02-24T10:49:35.692Z", "postProcessHash": "f048fcdbbcea058b029324f23fcd5736f0cf079acb8d2bff778047dea858e12a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.966Z", + "updatedAt": "2026-02-24T10:49:35.695Z", "postProcessHash": "161f73fa8a2c2bff218780c9875364a1a397a0063bb67ee30d068afa1d46c7ad" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.064Z", + "updatedAt": "2026-02-24T10:49:35.796Z", "postProcessHash": "190a6e77d0d8ed4a7da7e4545888ce4d7d9ba89c068e5c5976be86f859d2b6cf" } } @@ -15763,19 +15979,19 @@ "576c74bc00a8723ea19c093ffe6b3a472b9236e8f3bfcb0b95955083f9cadb86": { "351824c23a3d30665651f9a8eb9f4b521f17129ca1d202c38cbde960046a5d97": { "jp": { - "updatedAt": "2026-02-19T02:24:11.963Z", + "updatedAt": "2026-02-24T10:49:35.692Z", "postProcessHash": "3f20173781bede392d23906b646e30c0642483d7dcc2272fc9ef9ec53e750a76" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.965Z", + "updatedAt": "2026-02-24T10:49:35.695Z", "postProcessHash": "6f50eaf5477310ffb75c09e27e58875d34cd81eb07b74d25e8432a9b623494c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.964Z", + "updatedAt": "2026-02-24T10:49:35.693Z", "postProcessHash": "e3b1f6aa37b8540cb97319402addc8193d41b0f1976d5542b6224336871dcaec" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.069Z", + "updatedAt": "2026-02-24T10:49:35.802Z", "postProcessHash": "9875b98be1da1aef307d3935914a80728de1e925cb49fd10c2230f8324b411d2" } } @@ -15797,19 +16013,19 @@ }, "0f227c55e49e6f5c972ea085b14c7cdd5c1d425529447ab7499db13690c7cabb": { "zh": { - "updatedAt": "2026-02-19T02:24:12.025Z", + "updatedAt": "2026-02-24T10:49:35.751Z", "postProcessHash": "fb9fa2f3cd1818d0833cdda622c7afc2547ba508d7ad2947d37e582c1020fdb0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.026Z", + "updatedAt": "2026-02-24T10:49:35.753Z", "postProcessHash": "0796811873ea0fd4fec778b2b9f1546c5fc6095ad6669b81ceac2e2a946fee41" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.027Z", + "updatedAt": "2026-02-24T10:49:35.753Z", "postProcessHash": "f9ca8c5eec042566e8acefd238088b5ea80a33f307a53e1619248e65cffc4ca5" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.065Z", + "updatedAt": "2026-02-24T10:49:35.796Z", "postProcessHash": "18f8df17e866d52733c622b21d0c129d22efe8308157e4a51b642e90052ea361" } } @@ -15831,19 +16047,19 @@ }, "1846fe104b21314834767b00493a9c59280c9bf80d908c4beba4e4881186139d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.023Z", + "updatedAt": "2026-02-24T10:49:35.750Z", "postProcessHash": "3095f3852a77e08a6adb22d8b029fc348c308206c6b7ad408b775cb9e47b790b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.025Z", + "updatedAt": "2026-02-24T10:49:35.752Z", "postProcessHash": "67a9290e61987585d2f6e87611d7c318d298906044547d4c1c271b7b43e8afb2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.027Z", + "updatedAt": "2026-02-24T10:49:35.754Z", "postProcessHash": "a1ec0a19a7de76a6e28fd4ca0016ebce8f80bfe32d1b2af87c93559a597d5cc4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.062Z", + "updatedAt": "2026-02-24T10:49:35.794Z", "postProcessHash": "0c9500b0df8a38ded650b3e8646d5b8614742a66f72eb002805d6b9f9337b3c1" } } @@ -15865,19 +16081,19 @@ }, "5b2cae824a71bab5176a9a1a707bcb359fe7362a75b3241c39ed44d9133385ad": { "jp": { - "updatedAt": "2026-02-19T02:24:12.023Z", + "updatedAt": "2026-02-24T10:49:35.750Z", "postProcessHash": "0ee5e756db00941753e27239728a16129392bc3c60bda16317a20d3d1e72f8b1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.024Z", + "updatedAt": "2026-02-24T10:49:35.751Z", "postProcessHash": "4d14ac2ec19e9d1c3cfd5830bdab7e627a0564e2efe25a104edb9612990dbe10" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.026Z", + "updatedAt": "2026-02-24T10:49:35.752Z", "postProcessHash": "c813699f63d99ff57526d3a5c62aac4e80bb7cc8d100218bafb50140fa49a838" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.065Z", + "updatedAt": "2026-02-24T10:49:35.797Z", "postProcessHash": "185fb50db078762fec3f927de6d5379f8168bfb3f15060129832d70f2c436240" } } @@ -15899,19 +16115,19 @@ }, "2d7448b1256b990683593af69121a30f10b025d70e12a2e426ebd0e796175892": { "ru": { - "updatedAt": "2026-02-19T02:24:11.980Z", + "updatedAt": "2026-02-24T10:49:35.712Z", "postProcessHash": "81339c2d82fcbb7d3d954dd37a2ce7b6bab580488ea7d0474ec88e97e36ef16e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.980Z", + "updatedAt": "2026-02-24T10:49:35.712Z", "postProcessHash": "24ca517c10c4696fd8790915b9a7ed53643618b3cd1948c736d091837365ca64" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.981Z", + "updatedAt": "2026-02-24T10:49:35.713Z", "postProcessHash": "aa796aeb526580ecda729b72b559f54593e687594c3f6bf3963df694100d291a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.070Z", + "updatedAt": "2026-02-24T10:49:35.804Z", "postProcessHash": "4b6ef9b9d0c8d0a44b876cebd445e6c2c8f0669025e8b9d6c82aa8127245b142" } } @@ -15933,19 +16149,19 @@ }, "1f1a7f876cce70abd56ae1ef7c65e338edda5e29cc20b6f2a35a26d4fe74246f": { "ru": { - "updatedAt": "2026-02-19T02:24:12.048Z", + "updatedAt": "2026-02-24T10:49:35.776Z", "postProcessHash": "f86614c08e0799f951a48d7c7ff78d594c0b6756cbc68b9092ee46ba409ed0a5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.054Z", + "updatedAt": "2026-02-24T10:49:35.781Z", "postProcessHash": "f03fd750a91b167dc92412d345f62afd28bce8d11444af7c129618ba328cb4f6" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.060Z", + "updatedAt": "2026-02-24T10:49:35.790Z", "postProcessHash": "750dfdc387456d18f2722854bc19ea2e485f6feebbb2881d9ff3aa4a55a735fd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.074Z", + "updatedAt": "2026-02-24T10:49:35.818Z", "postProcessHash": "c20bee1aeafed4947ccd37332355ad6244b2223c5ca4c52d74ee69dbd2daaa87" } } @@ -15967,19 +16183,19 @@ }, "ab7770cd6ae6fd553e7227a7dfa97deb01876cd4b0f8731b61fdc4e3fce18b60": { "ru": { - "updatedAt": "2026-02-19T02:24:12.050Z", + "updatedAt": "2026-02-24T10:49:35.778Z", "postProcessHash": "b81022cf21f1788559ab95930e18ed7491840702a3e22238de0e35870035826d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.059Z", + "updatedAt": "2026-02-24T10:49:35.790Z", "postProcessHash": "9b822bef21bc8597d835a588d10791baa325479113834a832e86e482d29100e0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.032Z", + "updatedAt": "2026-02-24T10:49:35.758Z", "postProcessHash": "0a1a621f06ebc63c65148894e8c991da08d8a416c1a8f4f150b883f95bc4f653" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.072Z", + "updatedAt": "2026-02-24T10:49:35.812Z", "postProcessHash": "bae1af877557001043d747deaa29bb76d990a7a74cc8bac5ca01cc0f7236985d" } } @@ -16001,19 +16217,19 @@ }, "a68fc8e0c95e6a169cb57d98b41afc7e19253940893fa5fae7d20cbb66d297d9": { "ru": { - "updatedAt": "2026-02-19T02:24:12.047Z", + "updatedAt": "2026-02-24T10:49:35.775Z", "postProcessHash": "1f4d8d65eca7aa749802406a71d5c9d014bd0960a6b0dd993f77faa1cd778f62" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.056Z", + "updatedAt": "2026-02-24T10:49:35.785Z", "postProcessHash": "99bb94b3b06d4837eb29dbe0ff5228ea74d18f4917869613e17b9cd0cef50056" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.059Z", + "updatedAt": "2026-02-24T10:49:35.789Z", "postProcessHash": "a3e5e9d8222932fe01a413cf103dd6a14c5723d63f1e06c2e4260d202c5bf71b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.071Z", + "updatedAt": "2026-02-24T10:49:35.810Z", "postProcessHash": "b0b1608ad61bdaa249b5b8940e215a05389e6351642f6300bf0b00cab9f3f23d" } } @@ -16049,19 +16265,19 @@ }, "ad33c9f6014472eca6430767020ad40d78d337638d86d637d95468bc7e179126": { "ru": { - "updatedAt": "2026-02-19T02:24:12.040Z", + "updatedAt": "2026-02-24T10:49:35.765Z", "postProcessHash": "f237920588ed45f24992c2f34b80a667bd6112c0ac9e9eefa052d65d873d5f97" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.044Z", + "updatedAt": "2026-02-24T10:49:35.770Z", "postProcessHash": "74a982ea4e6b57e2215a4bf81d5b70fe3a82b9a3686b7d9ade30d22f41423cb3" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.045Z", + "updatedAt": "2026-02-24T10:49:35.771Z", "postProcessHash": "78f7caa4ca46024f23df9bc6ed161a7ee6480baf2e2248eea45af72b5089ded8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.077Z", + "updatedAt": "2026-02-24T10:49:35.821Z", "postProcessHash": "1c78fd3c8011c13ddab09fa72edfe36dbce5a684373eb5568b7db1284f20bc7b" } } @@ -16083,19 +16299,19 @@ }, "93724ae160de6bb8779c120bdef49a2960f1384eb417d32065afa0c977ae80ee": { "zh": { - "updatedAt": "2026-02-19T02:24:12.031Z", + "updatedAt": "2026-02-24T10:49:35.757Z", "postProcessHash": "87d4b5ffd3a1c8315e9e6db169f59448007fedcdb1dc415e236bbf3ff5c548b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.982Z", + "updatedAt": "2026-02-24T10:49:35.714Z", "postProcessHash": "997fdcb709ee8b09ae8def2632552a3831bac3e2ad01b1813387a787b82e7f3d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.983Z", + "updatedAt": "2026-02-24T10:49:35.714Z", "postProcessHash": "cb0b4818c9eb35a2f873791a45e3f4f8d8be2ff6b4d3391ebfc0ad310a991f5c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.061Z", + "updatedAt": "2026-02-24T10:49:35.793Z", "postProcessHash": "f3b97d4ba8644a74f2c96dbd6f06ba371848c8b49c38104e6453fd263f040ebe" } } @@ -16117,19 +16333,19 @@ }, "df6bfe396ac5e67b3d55d64f2a17e1efb293f9ec2447bc30209b934be5e67d6e": { "ru": { - "updatedAt": "2026-02-19T02:24:11.969Z", + "updatedAt": "2026-02-24T10:49:35.698Z", "postProcessHash": "54eb58b5990db52c572a00c3d60e7be2c51a5883f5271a73f9228f25388a4677" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.969Z", + "updatedAt": "2026-02-24T10:49:35.698Z", "postProcessHash": "fdb80bd4bbce140361f10e6d68223c7c631408e2dd0a67d927393245463b402e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.970Z", + "updatedAt": "2026-02-24T10:49:35.699Z", "postProcessHash": "ab6e0123f2c3ed96f0dab16c984771f38dfc5309c6cd917d32d3bf15f9480819" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.069Z", + "updatedAt": "2026-02-24T10:49:35.803Z", "postProcessHash": "528484b5bfa6cb7df9a816a706d8f1938818759631cf23467d204e265140b479" } } @@ -16151,19 +16367,19 @@ }, "771c94433b93b8c7592540baa38d8627727ca442ab75c7423caf4cd2905d4ec9": { "zh": { - "updatedAt": "2026-02-19T02:24:11.983Z", + "updatedAt": "2026-02-24T10:49:35.715Z", "postProcessHash": "d78437fda5cf7ebdb5faceea8c8aa7ce157588114f7626dd9af8949034110f0f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.033Z", + "updatedAt": "2026-02-24T10:49:35.759Z", "postProcessHash": "b1215d1d71665ad7bd5da66d1dcfeb524b0ef988b47c4026e9322d57cb09c6bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.033Z", + "updatedAt": "2026-02-24T10:49:35.760Z", "postProcessHash": "eb8d070564ddc51620927767e5ca7c5bbbbd84ac4735667a23201e5da81ee3e3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.063Z", + "updatedAt": "2026-02-24T10:49:35.795Z", "postProcessHash": "67906828833f4cfd98afe9b49d6e22097b3f5271b11e858f0d6b41c345d0a385" } } @@ -16185,19 +16401,19 @@ }, "f0fbde9d66f7dcba2d47475067dc3353b677f4d4b0e79d02ee62a1ad1fd6f592": { "ru": { - "updatedAt": "2026-02-19T02:24:12.036Z", + "updatedAt": "2026-02-24T10:49:35.762Z", "postProcessHash": "12204938747898d96b833215418e7f8e794045a1829e16d236d8f1d36f4865b2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.038Z", + "updatedAt": "2026-02-24T10:49:35.763Z", "postProcessHash": "27674cc934b485afbc8834ff63c7ae7a10e46f8164f8aacb60c75a4523a7ec7b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.040Z", + "updatedAt": "2026-02-24T10:49:35.766Z", "postProcessHash": "ee9a59cf873ff8d33d93f529f922f0e008473ba94e7b3372188ef54e4a756e48" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.073Z", + "updatedAt": "2026-02-24T10:49:35.817Z", "postProcessHash": "fa028597e03a0c205e44fe8693b5040f071333a0ec1a8db0cad2799a33658291" } } @@ -16205,19 +16421,19 @@ "ff2e4c3baefa9017265684effd06b1ae64d9d7d79efa83110c92a11de95d2c62": { "7e68dd457179debb6b3b8c9690002e92f3cfcc5539913ccfbd1d0632617d6548": { "jp": { - "updatedAt": "2026-02-19T02:24:11.960Z", + "updatedAt": "2026-02-24T10:49:35.690Z", "postProcessHash": "670638f0db36abcc26e40752d17cd0fc06808867b51d7c21268141107c12ba75" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.961Z", + "updatedAt": "2026-02-24T10:49:35.691Z", "postProcessHash": "7b1ab48913e7836765f80eb6197b420128724839e375281c593a06ec4e41adbe" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.962Z", + "updatedAt": "2026-02-24T10:49:35.691Z", "postProcessHash": "98fdc5cc9cf4cd68d69372c9e94b2e1bb9f7450a4d7b170ab1e2ce56400caf18" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.061Z", + "updatedAt": "2026-02-24T10:49:35.793Z", "postProcessHash": "69bc683ad09e8baecc36063e29651ef4d21710c607c0e84c6475667f7e8856b9" } } @@ -16239,19 +16455,19 @@ }, "8d32570758998235f95a156df45efbc6d893f7158d090e4708055f3dfcecf2f3": { "jp": { - "updatedAt": "2026-02-19T02:24:12.082Z", + "updatedAt": "2026-02-24T10:49:35.830Z", "postProcessHash": "e713f5434a90c5911c9b09debc4cc0d3fc14d16f191deb13db0f3d27323d7720" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.084Z", + "updatedAt": "2026-02-24T10:49:35.831Z", "postProcessHash": "1225181fb09b4d3136abd27a061cfcd0117ad7527b45626a5b2bf95fdd8ce7ee" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.088Z", + "updatedAt": "2026-02-24T10:49:35.835Z", "postProcessHash": "75d78a59a2e15940efe97155870e95aa6ebd026bb6134fb043dcaffa49e3787a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.130Z", + "updatedAt": "2026-02-24T10:49:35.893Z", "postProcessHash": "efdf4c198e1f24949141859985592ac6ce10ad597a8c0b1bdee05db68f631eea" } } @@ -16273,19 +16489,19 @@ }, "b4315dbe475d6b48a042b12c11b5dddfd9a77bdde0901103c89afd0325df6667": { "ru": { - "updatedAt": "2026-02-19T02:24:12.083Z", + "updatedAt": "2026-02-24T10:49:35.830Z", "postProcessHash": "ed68e733c72399da3356568222d402313a87da27b31d61dd5c9973534fc8c8dd" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.085Z", + "updatedAt": "2026-02-24T10:49:35.833Z", "postProcessHash": "b4ec810cde4676c280b5dfde0258a3dc06bc50842188d81d9973863a0fd161c1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.092Z", + "updatedAt": "2026-02-24T10:49:35.842Z", "postProcessHash": "df3c8d7bc79510d207180b91ed21296627fd7ed11d72eebc1ffb271a3a27e602" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.128Z", + "updatedAt": "2026-02-24T10:49:35.891Z", "postProcessHash": "1f2e01813e4e29b5fa9251aff9d764bfce9ab302452cd3afe680b455dbfd992b" } } @@ -16321,19 +16537,19 @@ }, "2d23ed0c306e795cd46498744bd0be3916d829f85db11147b7e7f5d0c4dbd88a": { "ru": { - "updatedAt": "2026-02-19T02:24:12.095Z", + "updatedAt": "2026-02-24T10:49:35.845Z", "postProcessHash": "4981d60d0b18d4932b6c24ef312fcebfff469e9763b1f82d19b6d527da0fdcd1" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.098Z", + "updatedAt": "2026-02-24T10:49:35.852Z", "postProcessHash": "1546a902dd0acfb42ff9eae8efc7eea08ba203afea28faff63e4edd04e7780db" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.122Z", + "updatedAt": "2026-02-24T10:49:35.887Z", "postProcessHash": "17d50df72654a0a1d4425d6a0168a82ce27a0c323a3a9dacb1c085412eb01424" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.129Z", + "updatedAt": "2026-02-24T10:49:35.893Z", "postProcessHash": "7d8bff8a407b27a433e2c5115994b0e3fbd165d37aac88de3b1157a3b1b43ded" } } @@ -16371,19 +16587,19 @@ }, "bae2d8dc339a9a440d5e00f0a8f3ba31b851b69eaf473e64de823848037ef6b5": { "zh": { - "updatedAt": "2026-02-19T02:24:12.028Z", + "updatedAt": "2026-02-24T10:49:35.827Z", "postProcessHash": "c2f05c0a94db27606c88eac62ee104ee298d4f193264cc29c7aefdcb6d150084" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.084Z", + "updatedAt": "2026-02-24T10:49:35.832Z", "postProcessHash": "12fae27cff898dbc0e32f6c617b0f43be5825de102f7a46dde9435abda056e55" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.090Z", + "updatedAt": "2026-02-24T10:49:35.838Z", "postProcessHash": "ae542b80f8bc7551b0770fe8732e1460cf89e34be0b7e3753289331d03898d4f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.129Z", + "updatedAt": "2026-02-24T10:49:35.892Z", "postProcessHash": "b7d5877a9ed8ea3fe6b45454787f15da40e5cd85f4ffafd68a26edda3d953375" } } @@ -16451,19 +16667,19 @@ }, "37042cf8c243a547963b0e8718fee2ac0c3f6e51305cc09a1b5348a8e8ab5dbc": { "zh": { - "updatedAt": "2026-02-19T02:24:12.107Z", + "updatedAt": "2026-02-24T10:49:35.766Z", "postProcessHash": "9ccfca741b32a1e199ee837b0a4160f2fb032a10ed5fcbecd3f95b58b141cc66" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.115Z", + "updatedAt": "2026-02-24T10:49:35.772Z", "postProcessHash": "8b886d444f7da35fbb56615f2a51d0c71de1d0de17f6ea030ddba7e800463bcb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.119Z", + "updatedAt": "2026-02-24T10:49:35.774Z", "postProcessHash": "614a8f5ded734493afee8ad687e28b775eee8c20de773b991d5abf4ca33a9704" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.134Z", + "updatedAt": "2026-02-24T10:49:35.822Z", "postProcessHash": "f40768d25645bd254bbfb8553d4e377cc1950944bae888e7c3e4d670091942d3" } } @@ -16517,19 +16733,19 @@ }, "3f408d41083f96bc5d270bc8208111b2dd8afee8ce8505324c42af8337b04d48": { "zh": { - "updatedAt": "2026-02-19T02:24:12.043Z", + "updatedAt": "2026-02-24T10:49:35.768Z", "postProcessHash": "a1a1160ae1f95404ebbae4c1b7350c14d2fec11853ccd4f54a25ad54114cc225" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.051Z", + "updatedAt": "2026-02-24T10:49:35.779Z", "postProcessHash": "0a4f1f5d1ab3e9af29402f5cade35d3444cc2e2864172d872c1d8919780731f0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.057Z", + "updatedAt": "2026-02-24T10:49:35.787Z", "postProcessHash": "dfb584fa3b0ca1706d02938dcca825f96d88cb2080e84d8b32a843ac76f92a8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.075Z", + "updatedAt": "2026-02-24T10:49:35.819Z", "postProcessHash": "16915f909f5c2e55ea78a1c92ad7e1103a2c458f77315c9d0474e30e6384ecba" } } @@ -16565,19 +16781,19 @@ }, "0c4ea6fb79e92995248e040a2494a09ce0302ccb303e6a6651ea2ca24f3e09f3": { "zh": { - "updatedAt": "2026-02-19T02:24:12.036Z", + "updatedAt": "2026-02-24T10:49:35.762Z", "postProcessHash": "c1c06bddc6ed4b8039f82dbf41854ef9fcc45bdb5bc4774012b7695988996871" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.049Z", + "updatedAt": "2026-02-24T10:49:35.777Z", "postProcessHash": "c2725dfad9a2684d50f4d8058debcc144f54b085c373e8c077a66e079cd13593" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.052Z", + "updatedAt": "2026-02-24T10:49:35.779Z", "postProcessHash": "a1e8bedf1296e75d7adb2a933c4a3d3ebbff1de4b0a0da6945271cf5c1c6a506" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.066Z", + "updatedAt": "2026-02-24T10:49:35.798Z", "postProcessHash": "344ca5cef5e229611b58cbe30987b8650c8061461c6be8317c94734fc35fe9c3" } } @@ -16627,19 +16843,19 @@ }, "c1092fd87b5d2e15c16db6f9c8125681929a6dfac57d8eb2cb18b4a6f4e74c1e": { "ru": { - "updatedAt": "2026-02-19T02:24:12.124Z", + "updatedAt": "2026-02-24T10:49:35.784Z", "postProcessHash": "56b5525f6b30e99217e4bcb114c4fa97efbad8c578aad47c36bdc226050ff049" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.125Z", + "updatedAt": "2026-02-24T10:49:35.791Z", "postProcessHash": "2421e0b04dd4b9d5833af4ea5af644224b06c1f806a6c91a4252d7e4ec375125" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.126Z", + "updatedAt": "2026-02-24T10:49:35.792Z", "postProcessHash": "860369120715ef397526dd9c32cd25703f9d845b4ed7b98efcb0ae200943debc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.144Z", + "updatedAt": "2026-02-24T10:49:35.823Z", "postProcessHash": "e6f0bb4e6cb5ae36c8b9fd66550be6104ba7dbcb511c27680781aad23f99dc04" } } @@ -16723,19 +16939,19 @@ }, "c7f303ec99bea55f5eca9d8646a5f520b493d1dc6b0837fb3da015ae968eb62a": { "zh": { - "updatedAt": "2026-02-19T02:24:12.084Z", + "updatedAt": "2026-02-24T10:49:35.832Z", "postProcessHash": "511081be38c4db3add7854b222061b5effd13ee8735acc713b7bb754b36fb008" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.087Z", + "updatedAt": "2026-02-24T10:49:35.835Z", "postProcessHash": "54e7ebbd526bc13ec51255d5b5524bbd881520b17d7eb48d2ff3fc3e292649d4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.087Z", + "updatedAt": "2026-02-24T10:49:35.835Z", "postProcessHash": "2cdc078eef8e68a38ddb5893c7bb1a700fd47ed2fc542fc9c888574a97e47c12" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.127Z", + "updatedAt": "2026-02-24T10:49:35.890Z", "postProcessHash": "598b13149a6e6a138787b6ee512f6c326111faf5f76057781b9e7598eb343b22" } } @@ -16759,19 +16975,19 @@ "ced28404e4ce6c34312f58e0fa21dc44dc32726f8881c1adb6ed189087c1b289": { "946529a7ef15a484b25d74b9a9f179b04a186b82780a2ea1059020ee8785a2e4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.019Z", + "updatedAt": "2026-02-24T10:49:35.748Z", "postProcessHash": "3601ab1aa89ff7623886b7d0ee2d1b1255db1939f93c2a28b4f3985a3372651b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.966Z", + "updatedAt": "2026-02-24T10:49:35.748Z", "postProcessHash": "976854adc1e4f637c2fa00981dd8d9dcd9640ca059755cdc39f73d31cfe47fdc" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.020Z", + "updatedAt": "2026-02-24T10:49:35.749Z", "postProcessHash": "6e0b6fc33613af8726913820022d8c8250da2862e8a9ad4a9b3bad77c33021da" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.062Z", + "updatedAt": "2026-02-24T10:49:35.795Z", "postProcessHash": "98ec1a6de6c44c691a2f9462ea41488a504f9b76ae86a026c9de3baba9abcd90" } } @@ -16779,19 +16995,19 @@ "dd5f0d309844443578b1e477b78c685d87f106d689eab41fab33f12709affeef": { "d85b73cbceb154602514bc5dd5ccb07827a65d84bacf59d65c5ddc95c14947c5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.022Z", + "updatedAt": "2026-02-24T10:49:35.826Z", "postProcessHash": "54dc87015250ede89c92ddd6180bb9f9c9a735583ad27cb442b4d09032c853b2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.021Z", + "updatedAt": "2026-02-24T10:49:35.825Z", "postProcessHash": "7ca79b4affee7f6d72a5cb71fe5aea58f2f0c70e569882eab3f89f87520eb108" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.021Z", + "updatedAt": "2026-02-24T10:49:35.826Z", "postProcessHash": "4505e28cbef6ad8d2c6229bec56f27c46ff1c59df9e2bd4ca8bab8f9ee60de62" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.132Z", + "updatedAt": "2026-02-24T10:49:35.895Z", "postProcessHash": "06d89b3fcd1e1805ef3f64d3a1fddfc12006d8b18c949ca39033e4220f9404f3" } } @@ -16857,19 +17073,19 @@ }, "cf7f7061adbfb07293f826f76e7b31ceb09235a0e7067d80374ae2717d1c7875": { "jp": { - "updatedAt": "2026-02-19T02:24:12.100Z", + "updatedAt": "2026-02-24T10:49:35.853Z", "postProcessHash": "6b9342352e7ebaf6437db1e53ff027f875264b17eb55ec9082d8c2dc2b9d61ec" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.113Z", + "updatedAt": "2026-02-24T10:49:35.875Z", "postProcessHash": "4b1958dca4ee2c3951c02164e4945921d02cd55343a90691a0f47cb61565bd5f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.123Z", + "updatedAt": "2026-02-24T10:49:35.889Z", "postProcessHash": "a0444e986dfffb6b0a28da5292502e8382f3c2b561e3a029aa82c63e0053a2ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.133Z", + "updatedAt": "2026-02-24T10:49:35.896Z", "postProcessHash": "eec0936b82245db23fa38f38b5acb93066ed14ed9b34f0c80860a54a139faf39" } } @@ -16905,19 +17121,19 @@ }, "d8b5b521aa6d31e73478eb84a2d4bb768a20f26687b1890743e4f0a79c054f06": { "zh": { - "updatedAt": "2026-02-19T02:24:12.092Z", + "updatedAt": "2026-02-24T10:49:35.842Z", "postProcessHash": "94b639a58bbc07cea176f279ff3ca9bbb5c5e7590d3dee2acf80effdc0676966" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.114Z", + "updatedAt": "2026-02-24T10:49:35.877Z", "postProcessHash": "786d3d1f84f8721913a0694a2f60eb4906431f4a6df7b10441c41e0c1c20100a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.172Z", + "updatedAt": "2026-02-24T10:49:35.888Z", "postProcessHash": "b130e663dc6f7eb9e9d00658bf6f6ae7c877ccca28d803451ebd6f0cc77e72de" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.193Z", + "updatedAt": "2026-02-24T10:49:35.898Z", "postProcessHash": "39dd7084f09561aad567eba06a7089bc4cf2a0faf232134031768ef7f50ad088" } } @@ -16953,19 +17169,19 @@ }, "c42b21b9c2e3899c0f3299a372a55e194877f9bed2a443d6947cde5aaa89069d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.097Z", + "updatedAt": "2026-02-24T10:49:35.848Z", "postProcessHash": "f7bbb3de1249f2d22a2d08cf0d4093154a9334f64e75b8895212501af46fed55" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.101Z", + "updatedAt": "2026-02-24T10:49:35.859Z", "postProcessHash": "dfee3b83344ddfd525ac037749ec96a3c2c3cad9011ea713d281d67f99daa82d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.104Z", + "updatedAt": "2026-02-24T10:49:35.862Z", "postProcessHash": "94a4003556c819681b51b5bb67497d1e021e17be632532ece01d88ca3bae5347" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.190Z", + "updatedAt": "2026-02-24T10:49:35.942Z", "postProcessHash": "319d68a0fe01dd204d42a95a1261644d9ce15569c3a52636b37a43b896f67ac1" } } @@ -17001,19 +17217,19 @@ }, "56bb6becb312894df584347295b4108e30cf25106bfd224aaf5d8f257c9ebe0c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.099Z", + "updatedAt": "2026-02-24T10:49:35.852Z", "postProcessHash": "7691fd350472199a6b030216ad689eb563c0f80bd41d9c8d86712980dbdd3307" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.102Z", + "updatedAt": "2026-02-24T10:49:35.859Z", "postProcessHash": "88cb50775a95e66b99646c585d5a12cc165fbaf17536c85372e286efca480cc1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.103Z", + "updatedAt": "2026-02-24T10:49:35.861Z", "postProcessHash": "081ae029c4792165b3a294a33a52a5aa1306c0aaab32680563cfea0747bb9d6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.127Z", + "updatedAt": "2026-02-24T10:49:35.891Z", "postProcessHash": "ba0c9bc490d32eca2cf1bbb9c4560e0880d83ee24c52311b5f5fb1e68944acc7" } } @@ -17049,19 +17265,19 @@ }, "bab9fbb333b5a3f0776b9446c3df7604bbfc63f3adcedcca591dcae602c7973d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.120Z", + "updatedAt": "2026-02-24T10:49:35.884Z", "postProcessHash": "eb859aa7e490ff66c72a681720317a1ec5dae7c6e37e8d452092b54ae47c6afb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.120Z", + "updatedAt": "2026-02-24T10:49:35.884Z", "postProcessHash": "0788ff70e0ece89a00b2b06e9308259a7a38e58854082521da90ae6b1ca5af0e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.178Z", + "updatedAt": "2026-02-24T10:49:35.929Z", "postProcessHash": "03a9af3c7576028f87bd0cbc50cd3dc0a1fc738a63369a7c62b60e761fd7c995" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.192Z", + "updatedAt": "2026-02-24T10:49:35.944Z", "postProcessHash": "2d05298fa5bfce9a505918ebf97b441d5aa6d0419199db3061f01bb5f7199b9c" } } @@ -17083,19 +17299,19 @@ }, "7e2230293b488a9b30e15d2f8268b48cd19c8fa4bfce352c7fad80b804d92a66": { "zh": { - "updatedAt": "2026-02-19T02:24:12.105Z", + "updatedAt": "2026-02-24T10:49:35.863Z", "postProcessHash": "39d4613e7f74f145f640448127d5931e0f5ed6f61d609a274ff4bdfeed4f188d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.111Z", + "updatedAt": "2026-02-24T10:49:35.873Z", "postProcessHash": "2fd8c8f0b070d2c223706737d0cb6d362a3cb41665e45fc3ea99ff2ad07a40c5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.181Z", + "updatedAt": "2026-02-24T10:49:35.932Z", "postProcessHash": "86c8d5d2019048d1c7aad5058b7e12018814cf678576a560052952eb3643e424" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.183Z", + "updatedAt": "2026-02-24T10:49:35.934Z", "postProcessHash": "61803ba720186500104cbfb0972fc5bc98b3ea5710056defde76d7577b9eb894" } } @@ -17117,19 +17333,19 @@ }, "c7634de4c2f9077560d6c004b61bd850f807d9543ff9705d9eea15b190bf4542": { "zh": { - "updatedAt": "2026-02-19T02:24:12.107Z", + "updatedAt": "2026-02-24T10:49:35.867Z", "postProcessHash": "65a83733e39c18da9a63f3f1feb892b1f8f38cedf36318e72ce4953a96670d67" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.119Z", + "updatedAt": "2026-02-24T10:49:35.883Z", "postProcessHash": "e9f9f62234b80bea5b7946e466ef08839fa140fbfd495efc5800c906d798cfcb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.175Z", + "updatedAt": "2026-02-24T10:49:35.926Z", "postProcessHash": "629c5016691860dae83735a7465041d105fa972fad8223ac61789a8b90c815c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.196Z", + "updatedAt": "2026-02-24T10:49:35.947Z", "postProcessHash": "7d0f69688c3321bc308bad48be2950f864878a9951e8248301c83b9e5bb25607" } } @@ -17165,19 +17381,19 @@ }, "e31ba4329a7edfafc22b772859b492e5436cf7a119fe3529fadb20ed344b3db6": { "zh": { - "updatedAt": "2026-02-19T02:24:12.109Z", + "updatedAt": "2026-02-24T10:49:35.870Z", "postProcessHash": "7c56a7c8201ee9fdde6fda87dfafea55f3e5858d0c28d6608d58e6ef5340b831" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.175Z", + "updatedAt": "2026-02-24T10:49:35.926Z", "postProcessHash": "5221e46b8a186e5f62ccc027d2881465a56b2019180e0e278856e3aa34f3bbf2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.179Z", + "updatedAt": "2026-02-24T10:49:35.930Z", "postProcessHash": "7852e3051f669f05515b74ca6551d1ff45aae403f26f16cc75c3891e78b45904" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.193Z", + "updatedAt": "2026-02-24T10:49:35.945Z", "postProcessHash": "8174b373b5015567f8e754fc447cb7a5c2ad084e26bc5e286bc489bf03c25171" } } @@ -17199,19 +17415,19 @@ }, "ac44440e11e65fca112ccdbfa88616ae017685cce3dc8eb088d6c784f4c0db1f": { "ru": { - "updatedAt": "2026-02-19T02:24:12.172Z", + "updatedAt": "2026-02-24T10:49:35.878Z", "postProcessHash": "db2cf52d0304c65bf92e3e46f2caefd261c6bb4bb124b600b03896310dbb667b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.173Z", + "updatedAt": "2026-02-24T10:49:35.888Z", "postProcessHash": "e466c3c6e6f16a5479b76850e4ec155931eb6b173f0ff6f9491f7eb2097da064" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.182Z", + "updatedAt": "2026-02-24T10:49:35.933Z", "postProcessHash": "71fc063652459f54217c1dbbc23f265cc889a142d8054ed6b8f543112e57bf5b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.195Z", + "updatedAt": "2026-02-24T10:49:35.946Z", "postProcessHash": "2450e2f0cb62d765e69ba6a6cbd7a1e83eec6df51e25f2eec0676e5436eba6d9" } } @@ -17247,19 +17463,19 @@ }, "510b3a4976bce0d95f3c22927254299ad6fa3c7d21d153ed1fe010fb71e37a8a": { "zh": { - "updatedAt": "2026-02-19T02:24:12.102Z", + "updatedAt": "2026-02-24T10:49:35.860Z", "postProcessHash": "5506776664efa0a39289215a1dd1aa94aef23726780696c50f495a1d5c867277" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.108Z", + "updatedAt": "2026-02-24T10:49:35.869Z", "postProcessHash": "1ba1a6d5af1fbf308c20c680e8e840466289fc38fc3cc558e1805975d6e887d7" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.121Z", + "updatedAt": "2026-02-24T10:49:35.886Z", "postProcessHash": "0b19849373675ca29b6d0bd2ccb7ffe01c66bc36e66154d7ef48d6bbe32afe17" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.189Z", + "updatedAt": "2026-02-24T10:49:35.942Z", "postProcessHash": "f1934407e7c44410a6fe71b459980bc96af424539fd44351be3269bf70d2cad0" } } @@ -17281,19 +17497,19 @@ }, "aab96e1df99af931815fa0fe34065a42d85bb4d04976ec4de6bf4126adbec31e": { "zh": { - "updatedAt": "2026-02-19T02:24:12.086Z", + "updatedAt": "2026-02-24T10:49:35.834Z", "postProcessHash": "2c4b70ad9a518d2038f85d4e31c336e249c051254fa1a978ea966f6f2013547e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.089Z", + "updatedAt": "2026-02-24T10:49:35.837Z", "postProcessHash": "527b8ea626d2168cfba0b81df9c3037ac175b5a640dff02698c313e3c13d4dd4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.090Z", + "updatedAt": "2026-02-24T10:49:35.839Z", "postProcessHash": "7dbde5350e74e0e6469fe13dcac41381eaf9f076f1be51b294f7e91fa67172b9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.130Z", + "updatedAt": "2026-02-24T10:49:35.894Z", "postProcessHash": "6be0eacc9b694370871d41061ef669d974bafdf715de0cf9f22e6d4143e28050" } } @@ -17315,19 +17531,19 @@ }, "bb9fa3660deadcab9b7be51bb9c2d81ecb645bd170745c1d9de85d5969cfc17d": { "ru": { - "updatedAt": "2026-02-19T02:24:12.168Z", + "updatedAt": "2026-02-24T10:49:35.847Z", "postProcessHash": "5bb847ac0c373d32f33451307fd011cb44a4309a1325f71f3b62cd7271ab559a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.169Z", + "updatedAt": "2026-02-24T10:49:35.855Z", "postProcessHash": "167b80e7380983a33bc1b5bc94cb161f7ff9de498616fc86598aa5a954f4df5a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.171Z", + "updatedAt": "2026-02-24T10:49:35.869Z", "postProcessHash": "38d6609d11bdd816843f021091b0bd086953f8d2542434ae4b481e7db3bc912c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.199Z", + "updatedAt": "2026-02-24T10:49:35.950Z", "postProcessHash": "6d6bf3eb68224686cef5287d00902a682c6cab3be333804f0f1ad4e1f02b8955" } } @@ -17363,19 +17579,19 @@ }, "3b465f09a48ba7a06e0dd94ee03a791abad0b937fdbfe5da3931a010c5320292": { "zh": { - "updatedAt": "2026-02-19T02:24:12.099Z", + "updatedAt": "2026-02-24T10:49:35.853Z", "postProcessHash": "8776cd849ba184ce248ebc51dc13c86905265a68ccbb6ba4166e3b517b6de4c0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.174Z", + "updatedAt": "2026-02-24T10:49:35.925Z", "postProcessHash": "e772be003130e93520af128f4de40df3f679961fd4f03e21431085f68a099308" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.177Z", + "updatedAt": "2026-02-24T10:49:35.928Z", "postProcessHash": "3e4cebb4bb797434f3516bef7bc47bd1dcf398ddd868bf83b3575720c8ba0349" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.200Z", + "updatedAt": "2026-02-24T10:49:35.951Z", "postProcessHash": "ef8a6a496bca27f73803e61dfb913d18846e4cfcffa81dde39fe91feb280fc31" } } @@ -17425,19 +17641,19 @@ }, "ae9048dc1acecbbea30998f64234a2724110ea6996db4e61dbdf9090e42f2d77": { "jp": { - "updatedAt": "2026-02-19T02:24:12.103Z", + "updatedAt": "2026-02-24T10:49:35.862Z", "postProcessHash": "621a0015c85f6a708a77fe4a566c8830eb431532351692a26e09d92313b1fd26" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.122Z", + "updatedAt": "2026-02-24T10:49:35.886Z", "postProcessHash": "b6bf3331619b3ce6447fee9e47893ac1bea3bc8eb1a3f716e3e0a1b512c1cf3a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.173Z", + "updatedAt": "2026-02-24T10:49:35.924Z", "postProcessHash": "edd7d06ac7ac8836e384294b3e1c7b55409336f437cec32d4e90101fc1485156" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.196Z", + "updatedAt": "2026-02-24T10:49:35.947Z", "postProcessHash": "520910cf7e5cb5ce56060c01d09128b5a38b576588dbbe891fc9dfde0f483a69" } } @@ -17459,19 +17675,19 @@ }, "308443b0fc36d73757debdefdf675a07283a3d35d774356b551476e051a28f05": { "zh": { - "updatedAt": "2026-02-19T02:24:12.085Z", + "updatedAt": "2026-02-24T10:49:35.833Z", "postProcessHash": "0f0a22adfe39f2ceb9782fcc47f5bead35004c562b49cf6334d2093ad5c2e0df" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.089Z", + "updatedAt": "2026-02-24T10:49:35.838Z", "postProcessHash": "344b1e7ce9a703f0f9e6cb015037f865d344a778267d7636dd8f15b5a1533a19" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.091Z", + "updatedAt": "2026-02-24T10:49:35.839Z", "postProcessHash": "affe493ce323e0ea886627849b9b3b5caa0c118f5748fe7dd2985a4a7b716904" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.128Z", + "updatedAt": "2026-02-24T10:49:35.892Z", "postProcessHash": "ca3a8643d9a36a51cce429ebc197f1ac83c56f200e999fb7c5b98cc849d8c609" } } @@ -17493,19 +17709,19 @@ }, "772d6d53da2ff21c250422983565c260e6d6e9203002280d1938bc1409b9429d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.088Z", + "updatedAt": "2026-02-24T10:49:35.836Z", "postProcessHash": "127fd46fce1bbff2c0a14b3603c02657c93c0a07b5e5dc57668eeef6c3f2dfd0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.078Z", + "updatedAt": "2026-02-24T10:49:35.824Z", "postProcessHash": "41d3f5ece43957dcf7b3f8b6c274173b2ab63af4033a45e58881c5ec401c1183" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.091Z", + "updatedAt": "2026-02-24T10:49:35.840Z", "postProcessHash": "c46247316701928b30d52e2d9706503c0ee6e9a921d8a347d0c10ca9261c8210" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.188Z", + "updatedAt": "2026-02-24T10:49:35.941Z", "postProcessHash": "4d64cd488a18f8c9ea01c8b2f94683ca07cbdef916b92067fe4fe8b9f47b0827" } } @@ -17527,19 +17743,19 @@ }, "da6a3f34c9788af64c41e486b933a4ad33a54ad59a1abb8582fe7b79f2f28d55": { "zh": { - "updatedAt": "2026-02-19T02:24:12.116Z", + "updatedAt": "2026-02-24T10:49:35.879Z", "postProcessHash": "5ab4d21987052bbccc47fd9880ed5d2aabca2b2cac99e7e661106b2c1319a497" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.176Z", + "updatedAt": "2026-02-24T10:49:35.927Z", "postProcessHash": "18a79c2d671be00df44cbd8e871737cccf81df0108b913373ce4a3071218e5ed" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.178Z", + "updatedAt": "2026-02-24T10:49:35.929Z", "postProcessHash": "1e67113bba0cc9371f37c0b192f3a8253b49328343d605f00cf261a9b5deb71e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.197Z", + "updatedAt": "2026-02-24T10:49:35.948Z", "postProcessHash": "b96b2f383bc98f381b26c2045eeaa066c7b64c8c695759295ec1187d3996bd85" } } @@ -17575,19 +17791,19 @@ }, "b515f934e60c1251e993b3aeb50a645677cb1aaa942110507240f0a73ae82602": { "ru": { - "updatedAt": "2026-02-19T02:24:12.094Z", + "updatedAt": "2026-02-24T10:49:35.844Z", "postProcessHash": "7f2727e3dbfe85f3b2e54059a88aa9b97c02ae84c2843af882a379978fee8894" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.106Z", + "updatedAt": "2026-02-24T10:49:35.866Z", "postProcessHash": "60fe4419bdafca5ccaaab05143f4d080d0f19dc903d20c91d592cfd6c6fa8ff1" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.177Z", + "updatedAt": "2026-02-24T10:49:35.928Z", "postProcessHash": "ed72fe4bad8365c4d0a7472353155294f5f516f25d0716033451dc7310353309" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.189Z", + "updatedAt": "2026-02-24T10:49:35.941Z", "postProcessHash": "cab71facd39c5968ca38dd91f0d35f442bd0a71dac37e513ade21c2547d57760" } } @@ -17665,19 +17881,19 @@ }, "e33d2df1408e91c81c87086031aba2a848d38cb6677dda9aed5a9cd3064c6beb": { "ru": { - "updatedAt": "2026-02-19T02:24:12.110Z", + "updatedAt": "2026-02-24T10:49:35.872Z", "postProcessHash": "71077551c10eef75f248ddbc8693e13bdc78d75b38368c9e60c9a07392bcb749" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.112Z", + "updatedAt": "2026-02-24T10:49:35.874Z", "postProcessHash": "c56f3f353dabd2ad8f76187afe564023a8ee7c997cf7b61c7f00b956a8941cb3" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.114Z", + "updatedAt": "2026-02-24T10:49:35.877Z", "postProcessHash": "8c8cd046e069c2eb6590ec0e20f543b802df66def93ceba2efb12a7418edbce8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.198Z", + "updatedAt": "2026-02-24T10:49:35.949Z", "postProcessHash": "47bd24ec6a6e8cf7c22e4aa887fdebd6ba2f2e66c9ebfd9d88ccfa2890ae2ad3" } } @@ -17699,19 +17915,19 @@ }, "5993d1bcae1448762c9a5990ef796fe6d56a08fe3c67fea61e82c05bc4698e43": { "zh": { - "updatedAt": "2026-02-19T02:24:12.081Z", + "updatedAt": "2026-02-24T10:49:35.827Z", "postProcessHash": "2a20bf867953289a52932a22ed8969f3aa0169543524967800e6c97acc692524" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.081Z", + "updatedAt": "2026-02-24T10:49:35.828Z", "postProcessHash": "6d1f5b9efca0558e4e5276bde483b56b063d93a41b1ed141f29cca43ef8aa8d8" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.082Z", + "updatedAt": "2026-02-24T10:49:35.829Z", "postProcessHash": "1af5a952d5dad0a071157bca0fa7c817588a3940c44f48bfc488713e4e87eda1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.190Z", + "updatedAt": "2026-02-24T10:49:35.943Z", "postProcessHash": "b56475ce5a42746259c2b285a4ac587efa0650b2a4714c4b821e69fa4e3818b1" } } @@ -17747,19 +17963,19 @@ }, "147ec6311828fded0ab2a81ea4e453a343e9582ec943b571a6e70bb1f270bc8a": { "jp": { - "updatedAt": "2026-02-19T02:24:12.105Z", + "updatedAt": "2026-02-24T10:49:35.864Z", "postProcessHash": "1e66abec8dd3ed0df185f928021f9d21e3c3e7f41b1755765cde3411eecd4409" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.106Z", + "updatedAt": "2026-02-24T10:49:35.864Z", "postProcessHash": "147c50834aa206f179f85db713b76b0ebf655f1b1441d10556094ff303f2ffa9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.118Z", + "updatedAt": "2026-02-24T10:49:35.882Z", "postProcessHash": "d65742064efec7772d80892032c554a96eb5a618cd8fdd06bb79db2d5c0e2f9b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.134Z", + "updatedAt": "2026-02-24T10:49:35.897Z", "postProcessHash": "61e561e42b694c8488c23262568d9e2f3fc3f23213a8607ddceb5df3cce9765b" } } @@ -17809,19 +18025,19 @@ }, "1017e1acf7fcd42d7b38a3230d59608df970c31cec83a7da41bb7b5147f3d9e5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.093Z", + "updatedAt": "2026-02-24T10:49:35.843Z", "postProcessHash": "c2030f041da1dddc097e70572d7bbea04f82ba5f84f2ade93e565c4db423c4c2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.095Z", + "updatedAt": "2026-02-24T10:49:35.846Z", "postProcessHash": "99630d67b645d44a133bf8d771ef8e56b7a7b2580a53dd05275b709bdb7f7a34" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.098Z", + "updatedAt": "2026-02-24T10:49:35.849Z", "postProcessHash": "edd46ef6635500b9024f6197674227b80b743cf64ce32c52f8f2cf009412d33c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.187Z", + "updatedAt": "2026-02-24T10:49:35.940Z", "postProcessHash": "5ef89985b0d01e1c485fb87de21bf8b04cd8c59939aa070d656e106fb91ce2f1" } } @@ -17843,19 +18059,19 @@ }, "4857f9fa01d490664bb279eef11a8d79e7558678f244068dd004a857449546fc": { "ru": { - "updatedAt": "2026-02-19T02:24:12.345Z", + "updatedAt": "2026-02-24T10:49:36.098Z", "postProcessHash": "d7d82650cd7173611493e2613d5c2400462664b0664da08d137ca50ba5918bd4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.346Z", + "updatedAt": "2026-02-24T10:49:36.099Z", "postProcessHash": "feeaa4eacc76e2e243446248328bccede723fa7e6088148ec4506da3659ecdf1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.347Z", + "updatedAt": "2026-02-24T10:49:36.100Z", "postProcessHash": "1d307483c16ce70b8509ecb945e1ce32102014b64337aacdb4f823a4cee3344d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.352Z", + "updatedAt": "2026-02-24T10:49:36.106Z", "postProcessHash": "d63654af8acc17be45cd2282838fe22bfe626ea1e7b96cd2edbb3491380fa9c6" } } @@ -17891,19 +18107,19 @@ }, "c6a73f8a8b6a35f3073d21540aa41319e66279062ca8af62509e6c63cb8a1397": { "jp": { - "updatedAt": "2026-02-19T02:24:12.865Z", + "updatedAt": "2026-02-24T10:49:36.595Z", "postProcessHash": "3525fcf3b59eefe3dba5dd6b3f25763c1804c731aab221be6478611bbb701994" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.875Z", + "updatedAt": "2026-02-24T10:49:36.602Z", "postProcessHash": "c3a489351e7ebac114fde7c67e19a16425740b12433f3c539834e7dd7f019a3c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.876Z", + "updatedAt": "2026-02-24T10:49:36.604Z", "postProcessHash": "7b8af5dd8dd8375c5d7bd04eedf924e6cdaf1243d143138d5ae2fb0ae1a35a8a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.948Z", + "updatedAt": "2026-02-24T10:49:36.622Z", "postProcessHash": "d887e26be4f4fbfafb87e3d73bdd277018697c645a9d48052d6603edf86f2adf" } } @@ -17911,19 +18127,19 @@ "32a2dfa24b35817a5fedbfc4895185da11ba73834f024a8c145cb60b3ee324a3": { "8f13f0e888bb91b30f7b56131bf3728f2950f55c2375b05eab6a6c9cabcab037": { "jp": { - "updatedAt": "2026-02-19T02:24:12.769Z", + "updatedAt": "2026-02-24T10:49:36.513Z", "postProcessHash": "65d0916f6e64fa585d416924b8dba7fb0d6fd703d441e2de522c65230aa7afe2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.839Z", + "updatedAt": "2026-02-24T10:49:36.516Z", "postProcessHash": "1db43c546632df23b664d50cd4180ea66c5af3467af2acc0bb9e8e450a4eccd3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.839Z", + "updatedAt": "2026-02-24T10:49:36.515Z", "postProcessHash": "248873f4f64c13277558eedfc900c08d92240754f74b09953cca94c7b0af8150" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.948Z", + "updatedAt": "2026-02-24T10:49:36.622Z", "postProcessHash": "7852b23edd0122cd8ffb88e25ad03e1c826c6051d2e6d48d553601cafb72be7a" } } @@ -17987,19 +18203,19 @@ }, "60c0a138f9c8339ad707c3b460e6628461412a52e628c14d6752c4e59fadd2be": { "jp": { - "updatedAt": "2026-02-19T02:24:12.873Z", + "updatedAt": "2026-02-24T10:49:36.601Z", "postProcessHash": "1321b6e47e2a65bc2166cabbf27a7b5599b9f5f43c82a2bc56e0bf367dc65272" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.874Z", + "updatedAt": "2026-02-24T10:49:36.601Z", "postProcessHash": "0c483ae70979c524df3d39f4c4be8a87152322cb2db4a7932180b0526479b297" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.874Z", + "updatedAt": "2026-02-24T10:49:36.602Z", "postProcessHash": "a3d545c466a2498d2409f56ca02b5d6895af2ac562c37f42edc02544a32a704d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.947Z", + "updatedAt": "2026-02-24T10:49:36.621Z", "postProcessHash": "0d2afd007b175571323dc731be688089e60a7065789a9219d080015b796fbc3c" } } @@ -18021,19 +18237,19 @@ }, "e9c9bdb5fe16fd891cd4e9ec637f38df52a671b6818d2a7024b201f54838e722": { "jp": { - "updatedAt": "2026-02-19T02:24:12.859Z", + "updatedAt": "2026-02-24T10:49:36.589Z", "postProcessHash": "9756e5b6048836b6e51b9b924a1b480cded6e6b063006c967760c04a3b070fbe" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.859Z", + "updatedAt": "2026-02-24T10:49:36.590Z", "postProcessHash": "9e1b7cffe976d78faa6502c9870e4698cbd2ad2aa9e2cbb6c207da749b9556e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.860Z", + "updatedAt": "2026-02-24T10:49:36.591Z", "postProcessHash": "ebbd4f8b4bc7abbcbec6bc5c7801d09cf9288fdaf88944cda5627663d5ced434" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.888Z", + "updatedAt": "2026-02-24T10:49:36.615Z", "postProcessHash": "4f279fef35041ab18ada52fa3129090ebb7b14b9654141db07446bf25029ecef" } } @@ -18055,19 +18271,19 @@ }, "dc8de69fe1188ae1143e5413b0f421a017a92b769f0e341347a0a8f4aecb3460": { "ru": { - "updatedAt": "2026-02-19T02:24:12.345Z", + "updatedAt": "2026-02-24T10:49:36.097Z", "postProcessHash": "bc574dba311329752d5704578502238ab936a72460c5ec72dde612934745181b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.345Z", + "updatedAt": "2026-02-24T10:49:36.098Z", "postProcessHash": "df3b6a46d61232202de613cd76fb25c414f87feff5949e1652dcf29cb36c5885" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.349Z", + "updatedAt": "2026-02-24T10:49:36.102Z", "postProcessHash": "b6ddd50e1fd8808aec2cd503c37af600139a7a90b0ba8ec31b8e39f0f1d8b1b0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.355Z", + "updatedAt": "2026-02-24T10:49:36.110Z", "postProcessHash": "27ccbf0a3ccf524af794baa3e26f99822f69fab5895bf20c15302b29d6034533" } } @@ -18089,19 +18305,19 @@ }, "56413d48fcb6f03b584bade4de4d14a7952751a966a337c8b3eec809b8a87585": { "zh": { - "updatedAt": "2026-02-19T02:24:12.170Z", + "updatedAt": "2026-02-24T10:49:35.923Z", "postProcessHash": "17ff2898e57bff505aa5a2a77f9e97af2a1b71c05fc1eb0701b2dd94fcc98e6e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.170Z", + "updatedAt": "2026-02-24T10:49:35.923Z", "postProcessHash": "f94768fcf1d904cafbeb5bdb562076e3b6d773908b65ac730b9d10d8d7c8138a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.179Z", + "updatedAt": "2026-02-24T10:49:35.930Z", "postProcessHash": "b25d230422c77ecd99d2515122db787e541bc9451f54b92b4bf4b6c08c39bbaa" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.194Z", + "updatedAt": "2026-02-24T10:49:35.945Z", "postProcessHash": "b4f059c3a11578935434bc763b694583e181f58f4ecc1735843c0c305923e620" } } @@ -18109,19 +18325,19 @@ "7aeb5a3c848c3ac6401e3621b9731a411c3ffe53b1ec386f511089c819780c4c": { "1f0a4b693ba5e0ec268fafbbe5f0a583b29cfd716f04abb61d43c5813b6ad612": { "jp": { - "updatedAt": "2026-02-19T02:24:12.838Z", + "updatedAt": "2026-02-24T10:49:36.566Z", "postProcessHash": "65e6bc5cc8fb35caca398553725c133b41f659e859ecd2a73a0721666110d09a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.775Z", + "updatedAt": "2026-02-24T10:49:36.563Z", "postProcessHash": "3dfe1418ec9ca42909feaa349b051d9dc6827fcc4ac4f64823ffe39814675884" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.836Z", + "updatedAt": "2026-02-24T10:49:36.565Z", "postProcessHash": "ac8834bd2928cb375e7af315d432ab7dd6b3c24a69cfb4c3af55cc287e3be37c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.942Z", + "updatedAt": "2026-02-24T10:49:36.618Z", "postProcessHash": "04c267226c0ce041ef1e5c5af6ea67467249a9b4895d30203ad35d331b110324" } } @@ -18143,19 +18359,19 @@ }, "32c078a0d7dbd924908cf7620b31b7da2c18426fe86dd0ae355b33ba6ba8791d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.875Z", + "updatedAt": "2026-02-24T10:49:36.603Z", "postProcessHash": "eafe73c1571fae108828b0bde50ec0bd4a4fc8fd59edef4dd15159a6559b5245" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.877Z", + "updatedAt": "2026-02-24T10:49:36.604Z", "postProcessHash": "95a90407548b773a371097d07f4be340d5e2a403ac5d6e1e8791b141f07e4074" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.878Z", + "updatedAt": "2026-02-24T10:49:36.605Z", "postProcessHash": "3b03c56972372be74faffff86022aaf8c6960809a42711c693c851ea31184d56" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.891Z", + "updatedAt": "2026-02-24T10:49:36.618Z", "postProcessHash": "3f3ba85f7f9fa5ccdd83fa0689f5263de3814b6e4deb47964ef1c52ff5e8e889" } } @@ -18177,19 +18393,19 @@ }, "e0be6dab63fb50941926b24a3636eaceb158d2241efa9922c4481b8c47d5c195": { "zh": { - "updatedAt": "2026-02-19T02:24:12.167Z", + "updatedAt": "2026-02-24T10:49:35.922Z", "postProcessHash": "a61c3ceb1bc402c612ad58327531bfe06cd4e1f885abf4c9e298a0d9a5f33a1e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.168Z", + "updatedAt": "2026-02-24T10:49:35.922Z", "postProcessHash": "476de9cbeb857ce3d116a3ae29d4415c00ad6990abd61b04722e817657e946ba" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.171Z", + "updatedAt": "2026-02-24T10:49:35.924Z", "postProcessHash": "1189f1de244c98904db85db2c900372d5b4944dd8076d447d07fd1a603271694" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.195Z", + "updatedAt": "2026-02-24T10:49:35.946Z", "postProcessHash": "ab8eeef94efa7cbda678de5ae28ba6aca86ba75045302c63b8ba3c3c3b016f98" } } @@ -18225,19 +18441,19 @@ }, "56de18028a887173ca46e1460647390b65796aaabfc96248948604c8ac178efd": { "jp": { - "updatedAt": "2026-02-19T02:24:12.176Z", + "updatedAt": "2026-02-24T10:49:35.927Z", "postProcessHash": "c4a59602f6e1726104aa94c60aae22ae0d94999e37daa864ba244ab3c8106d7d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.180Z", + "updatedAt": "2026-02-24T10:49:35.931Z", "postProcessHash": "72a805e8ee473f76f932f91b679adbe530c192965210ac8306777dd3ac530699" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.181Z", + "updatedAt": "2026-02-24T10:49:35.932Z", "postProcessHash": "a2d87a98814d9979797b1d486a39b82098d8dc327a5d16f73d712ef65e9413b7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.201Z", + "updatedAt": "2026-02-24T10:49:35.952Z", "postProcessHash": "1843848f78d040360f3d5195255d7807b4103e39d0c5114159d526a15409b817" } } @@ -18245,19 +18461,19 @@ "a2ec760009faa1e1eff2c135a3d4deb7afa6a079dda0c6d9f99db627647062d5": { "4f03a97491bdbb54d341d453335aff270c60976e7c3ad96cb719e9003ee5ad0c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.839Z", + "updatedAt": "2026-02-24T10:49:36.566Z", "postProcessHash": "aa09cf8440b748fecbef83bff7a456a7952d6755dc5e6b67d99655ea7c44039d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.774Z", + "updatedAt": "2026-02-24T10:49:36.563Z", "postProcessHash": "a8148225708487248ee6923cfebec58e4b8c83c539005f7a30cbca274f66133a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.837Z", + "updatedAt": "2026-02-24T10:49:36.565Z", "postProcessHash": "cd415fe2a595ce9ddb07d6b50c40c09d8903e80fcca717ce49637fdd0ad9595c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.883Z", + "updatedAt": "2026-02-24T10:49:36.610Z", "postProcessHash": "a37aaceee95a370711dc60a6834fa6b4d5f802ddcc2c3647797e11a81e92bea7" } } @@ -18279,19 +18495,19 @@ }, "8be1bc1f7085d8c75b3b6a6dbcb544f912173729ea56a8a918f286c0f977fe53": { "ru": { - "updatedAt": "2026-02-19T02:24:12.348Z", + "updatedAt": "2026-02-24T10:49:36.101Z", "postProcessHash": "cb2fb376e0e4badce6893f4c2b8abda0bdbbda55a4b5b4f53719b919fb29f861" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.348Z", + "updatedAt": "2026-02-24T10:49:36.102Z", "postProcessHash": "fe4cf16635e1597f0c20aa0526a3fd5833c4ca197e6a60ad21898e04cdc12328" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.350Z", + "updatedAt": "2026-02-24T10:49:36.103Z", "postProcessHash": "32c0daeb591f374f52690f80c6485d2aac9da4d908b1cdb118fe5df773609f91" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.404Z", + "updatedAt": "2026-02-24T10:49:36.114Z", "postProcessHash": "045cedab3b9c7da64f7f4958dc82532dcd4872c5ce06902291a7a934c19db270" } } @@ -18299,19 +18515,19 @@ "a8b3a4c7be16228ce7b50cb870cc58cfe39f8c34bd28a3aca5822b90b0f42830": { "f2435d45557de24d303d66a742aeff55e64e2f4b580432c1d1d9f8eaeb1f5d17": { "jp": { - "updatedAt": "2026-02-19T02:24:12.159Z", + "updatedAt": "2026-02-24T10:49:35.913Z", "postProcessHash": "f97f64dbe65700d21ad400cc1c9967e75801e746348fa783643becc9bebea5eb" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.160Z", + "updatedAt": "2026-02-24T10:49:35.914Z", "postProcessHash": "0f2ce375d02c6679b16e702e9618cefc47054f7cec517c216103bee275078cee" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.159Z", + "updatedAt": "2026-02-24T10:49:35.913Z", "postProcessHash": "658e48e685b24cc2b05f6c1b0fdc08d19a7865d667e261baff027a1ab1e469d7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.185Z", + "updatedAt": "2026-02-24T10:49:35.937Z", "postProcessHash": "bc64e5a779c55b80d46743652d776deaa46c32a39df447b17dee89d64aad88bb" } } @@ -18333,19 +18549,19 @@ }, "377c03687033028b02e95eaebb9679aae50f37e0a0c6173586720db43ee0bf90": { "zh": { - "updatedAt": "2026-02-19T02:24:12.346Z", + "updatedAt": "2026-02-24T10:49:36.099Z", "postProcessHash": "5effbffaeff18e54c5c6e90c499c034df203ba5d122433e12cfe1d4235878180" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.349Z", + "updatedAt": "2026-02-24T10:49:36.102Z", "postProcessHash": "7424ae00099ad654b47cea5fa63c1113b36f6aa17844563247eab13b74ca1e73" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.350Z", + "updatedAt": "2026-02-24T10:49:36.103Z", "postProcessHash": "1d01233022de791b913c4f6c0c0363198ba43ac2bbd93e734f8fac4ea10f5337" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.360Z", + "updatedAt": "2026-02-24T10:49:36.115Z", "postProcessHash": "085bd698ee5126f19b58ded6aca11f187fa14e9a0aaa0fbcccac3ed96d0b7ac6" } } @@ -18367,19 +18583,19 @@ }, "bf2bac2c6fdc17bb623aa2bb9b3f01d971cf696db6e4ac08b216657095b2d8fc": { "zh": { - "updatedAt": "2026-02-19T02:24:12.344Z", + "updatedAt": "2026-02-24T10:49:36.096Z", "postProcessHash": "afedcc4d54386c3169d681343741d6b5dd591e2f5fe69c69d4b83f9a32d2dbd7" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.344Z", + "updatedAt": "2026-02-24T10:49:36.097Z", "postProcessHash": "79aac25948ebaf0a0eb927d41821ab341f469cb49e79e3b9d9ca3deebd47726a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.347Z", + "updatedAt": "2026-02-24T10:49:36.100Z", "postProcessHash": "2368438d63b4b467fc179501f662986a39b1d516940330d6fb3f116f9da823a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.352Z", + "updatedAt": "2026-02-24T10:49:36.106Z", "postProcessHash": "68b843d6c649ebaf9c4cc60e40714495cb442e65dec07af962560de827161e97" } } @@ -18401,19 +18617,19 @@ }, "868c58a2537ad736940425cd07e038b5a898807fa48a3ab685b994e4f07e1bbf": { "ru": { - "updatedAt": "2026-02-19T02:24:12.872Z", + "updatedAt": "2026-02-24T10:49:36.599Z", "postProcessHash": "945ece6ee9ff49f6a2727b957a80d75d0caa71a44aa00eb6ab2e0bbd9a962fe0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.872Z", + "updatedAt": "2026-02-24T10:49:36.600Z", "postProcessHash": "0e884e259e670d9e008a365b66d983691fa0a34e8e53c023eddbf58a269d7aad" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.879Z", + "updatedAt": "2026-02-24T10:49:36.606Z", "postProcessHash": "c080bf9129c6fe7f855b75bc09b7a51d2a8d2a1dc5222732f06e4895fb865203" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.890Z", + "updatedAt": "2026-02-24T10:49:36.617Z", "postProcessHash": "6e52a7d4eeb21ad1536de6ce3553714577a74ce2dc37945cd2faed3b769ee628" } } @@ -18421,19 +18637,19 @@ "e72fb86764359e026d92c8940ee6175f5febdbd710006033850bb2ad8aa43023": { "10e1df69f27be8e1de4c2159ec11f7a83395eb9a20a7b729e0fbe4c2bc8bb473": { "jp": { - "updatedAt": "2026-02-19T02:24:12.776Z", + "updatedAt": "2026-02-24T10:49:36.564Z", "postProcessHash": "d6c9fda6027083f8d37563c66f2df1718c49e69147e556c72f98407fa586961f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.836Z", + "updatedAt": "2026-02-24T10:49:36.564Z", "postProcessHash": "7101ab105f78322a351029f15006b2264c717d0a00d3579fb4fcd18c1cefa3b3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.838Z", + "updatedAt": "2026-02-24T10:49:36.566Z", "postProcessHash": "226df0607df69cfed9718c84e6fc3ebc37ecd25e5d7b8c9025bf37a2189abae0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.942Z", + "updatedAt": "2026-02-24T10:49:36.619Z", "postProcessHash": "782014708a0fa8c2b735a686e0c042d1e1eb39248af52ed31f4284c72fda2611" } } @@ -18455,19 +18671,19 @@ }, "d2eca22763326cb8bfc8fc3f2c7b02af4490de74f2fbaf402c11e3dca6080d67": { "jp": { - "updatedAt": "2026-02-19T02:24:12.865Z", + "updatedAt": "2026-02-24T10:49:36.595Z", "postProcessHash": "3db9806e5e5c4b93d1350fdcf966559c6f6d7dfe1d1cbd057e65f8987ae70eb5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.868Z", + "updatedAt": "2026-02-24T10:49:36.597Z", "postProcessHash": "c7c3bdb435472d1faa9217f6d6e9002548161f59f5084f5cc8f46fa8bc6e65f1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.869Z", + "updatedAt": "2026-02-24T10:49:36.598Z", "postProcessHash": "f12aaa0ce806e89792d8b072c9baa507c38c72b5934eb912f10fcc9259948fd3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.889Z", + "updatedAt": "2026-02-24T10:49:36.616Z", "postProcessHash": "b5401e0b5f39e440c42ff074b7cf723916197e58c44a454cbd9785519f8e3c38" } } @@ -18564,6 +18780,24 @@ "updatedAt": "2026-02-19T02:24:12.943Z", "postProcessHash": "9de6635773fb2fd55d718e383d1f73ff6d1ce7ac8e2f25d7ed96d97b1caa8ebb" } + }, + "9c62057a8c847a3f08f164d8e7a2c7686722ca4826af51afc0542b1ec51040f8": { + "jp": { + "updatedAt": "2026-02-24T10:49:36.679Z", + "postProcessHash": "2c2fbc90e6933e782e576aef75aff991c53c289bd838f91eb282c2de8cef6ac0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:36.679Z", + "postProcessHash": "b725079c9ba98f11dac92eb0a453a31ac40673b5aa384446edfe4f9d5ac0d1c1" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:36.680Z", + "postProcessHash": "9da785ffe0418105d095b84e0af31a224a55e1d7029566bebe36da12096e6def" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:36.681Z", + "postProcessHash": "0d4ada984abf6be54f4d7347ceae98b677391d5d1ff47576c4782ae42f49001c" + } } }, "0c936deece1cfa87a5970fb553569967ce05687698de65a98ef0315477967bbd": { @@ -18597,19 +18831,19 @@ }, "0eeb8e037c140bbab6709483e5529da12ab09ef779763e4cb9e5028fa36f486d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.913Z", + "updatedAt": "2026-02-24T10:49:36.648Z", "postProcessHash": "22224d44f062e8f93cabe6342b75b0e658adfe1cf7fa94c7252a8389fc188b7c" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.914Z", + "updatedAt": "2026-02-24T10:49:36.649Z", "postProcessHash": "734037cdd8564201db6e8f83bc5f869d89a3fd5ab36dd8f77af54c6337e34325" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.916Z", + "updatedAt": "2026-02-24T10:49:36.651Z", "postProcessHash": "82956817c1bb14d51c417d6cb6d6278e27dc727196a2f5794ebe61cc4762548b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.939Z", + "updatedAt": "2026-02-24T10:49:36.668Z", "postProcessHash": "9c51e3c68ca176b7ae57c7059879f0cb2c46032408e0929c619778ff3ea7c433" } } @@ -18645,19 +18879,19 @@ }, "a5fe5bf8b8cb5742e21be5dda1b1c7c87cd360cc6ad36e163ba15fe93755c713": { "jp": { - "updatedAt": "2026-02-19T02:24:12.915Z", + "updatedAt": "2026-02-24T10:49:36.650Z", "postProcessHash": "40965bf639605d8f4cbd40252ea8e7d575d161c35e70efae7a683412cbdce520" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.920Z", + "updatedAt": "2026-02-24T10:49:36.653Z", "postProcessHash": "b8c442c0cc6d5bce3ba2636051b2c9cb35c43dbd3aecfc9c1abc15c5137ca65a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.924Z", + "updatedAt": "2026-02-24T10:49:36.656Z", "postProcessHash": "9425d204a28700a489acab6d1b5d06cb6a6aad8ab6fcbf0ad4a20b7a2776832b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.940Z", + "updatedAt": "2026-02-24T10:49:36.669Z", "postProcessHash": "a081d4979a52661303b982502bcd66ce8687eab41b35bdbcf57372c1f229f5f8" } } @@ -18679,19 +18913,19 @@ }, "6a64b6f4a9a1cf7d2ace5967c242c3551c1ac5d6e1af2e2e06e3dd0a69e3e2cb": { "zh": { - "updatedAt": "2026-02-19T02:24:12.852Z", + "updatedAt": "2026-02-24T10:49:36.576Z", "postProcessHash": "c902ab48fed3fe0735d29ab5fcd4448350902e99c7802dc07102c10903d0d931" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.853Z", + "updatedAt": "2026-02-24T10:49:36.576Z", "postProcessHash": "67d614a20aa383d6a5ed17f6d3a9aa8ebb1840ea7ef97087072a51c92714c571" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.853Z", + "updatedAt": "2026-02-24T10:49:36.577Z", "postProcessHash": "b775a45ea5c6ffb9f9719c5d31c4db3d4f7cb6ee3aaaab4b9ab4e557def73152" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.891Z", + "updatedAt": "2026-02-24T10:49:36.617Z", "postProcessHash": "2df96f6bcab71173cf59cc57ac8c4922ebecd6f5309637245a3287ca9c0e9670" } } @@ -18755,19 +18989,19 @@ }, "dea2d0b22f5858e7c47ed619e03ca87d3998ba2f2cbc3d166c6436b3b1827239": { "zh": { - "updatedAt": "2026-02-19T02:24:12.968Z", + "updatedAt": "2026-02-24T10:49:36.705Z", "postProcessHash": "59267c6ec1b70944bd50da7c21474e8c0dc7280b472a86a5982101d1400541a8" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.970Z", + "updatedAt": "2026-02-24T10:49:36.707Z", "postProcessHash": "bce830fae46895bc7cd7c8bff149d22861f11bec1ac70dbc874e4addb7e38ef2" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.979Z", + "updatedAt": "2026-02-24T10:49:36.716Z", "postProcessHash": "01ce435a34b93cdafac1a154f68189a17ca31ccb0caf5f5a4b90d6d1fa8fa069" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.996Z", + "updatedAt": "2026-02-24T10:49:36.728Z", "postProcessHash": "09b2f5dce667d7083d59a3978bb0cfc1d352e33c02359d4ae5fb0ba25e0a7cef" } } @@ -18803,19 +19037,19 @@ }, "a7f4e7d7e6fea0e41169c079b9c3fb7742d4959a968513a4fc8261c7f82d09f6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.931Z", + "updatedAt": "2026-02-24T10:49:36.661Z", "postProcessHash": "96b1c506447106de6ebeed3f8675c2babd692a39841688ec825bc48f65dcfc74" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.932Z", + "updatedAt": "2026-02-24T10:49:36.662Z", "postProcessHash": "740df7ac33b6c45ea0176b8c8579e60b7d66b29be474271ed1817fcc658dac65" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.933Z", + "updatedAt": "2026-02-24T10:49:36.663Z", "postProcessHash": "621cea17572816104fd24fcd65e2115707cafadb8601de44b37801c0d7a13a78" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.944Z", + "updatedAt": "2026-02-24T10:49:36.672Z", "postProcessHash": "34c93ec27e1e2e23fe22d5f648abd3b746c6cd01002368b119ef8e3f73b70acb" } } @@ -18865,19 +19099,19 @@ }, "834879c7e1c74d7761d525c59f86c2bd79273a9f14383bbe1030c1c851d8cf9e": { "zh": { - "updatedAt": "2026-02-19T02:24:12.923Z", + "updatedAt": "2026-02-24T10:49:36.655Z", "postProcessHash": "fd93d87eacdec7c4a424e22954df2f14f5bd65d6e59af99031eb68d2932a305b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.933Z", + "updatedAt": "2026-02-24T10:49:36.664Z", "postProcessHash": "7a5592271b975d8c8cff98b5d5e3a2c1cc691724715f454b72da8123b24aa514" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.938Z", + "updatedAt": "2026-02-24T10:49:36.666Z", "postProcessHash": "57305c89b47a54d2992095a4901b5d3dc7e19f604e832bbf0ee701668a86430f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.950Z", + "updatedAt": "2026-02-24T10:49:36.674Z", "postProcessHash": "9c79493d4a11f38308081ef669013b3f511934eebc42834712583f1d8099d166" } } @@ -18913,19 +19147,19 @@ }, "267cb9d75ce19f469fa5b76d68bb618607cb094efc7683fc36bb5ac54b8794b2": { "zh": { - "updatedAt": "2026-02-19T02:24:12.972Z", + "updatedAt": "2026-02-24T10:49:36.709Z", "postProcessHash": "f07654416ffad638711b1adb1038fbbe3d4d4104f2b786868119717c46cb72ae" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.978Z", + "updatedAt": "2026-02-24T10:49:36.714Z", "postProcessHash": "6ea3bfa88fbde6bf03b849510416c9ab4b9454a86edddf4cced952786a47f15e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.979Z", + "updatedAt": "2026-02-24T10:49:36.715Z", "postProcessHash": "2130aae3c02c39498338679b893f39b87b86bce8492dcaee5d9476eba7a19b9b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.990Z", + "updatedAt": "2026-02-24T10:49:36.723Z", "postProcessHash": "e1d0a679f952ef7b01110947614da6e293566d10df9632a65381c18ad1696d6b" } } @@ -18961,19 +19195,19 @@ }, "ebcb0ff192c45079add3e9d371cb4a822ef90822925a00b3a69500052af1bdbd": { "ru": { - "updatedAt": "2026-02-19T02:24:12.863Z", + "updatedAt": "2026-02-24T10:49:36.593Z", "postProcessHash": "c9f3e0e984aa187d5908a269d7bd14a405a79854e8d6043ad7bfa975a4578020" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.868Z", + "updatedAt": "2026-02-24T10:49:36.598Z", "postProcessHash": "15376d9a98fd34576859b925f77b634bd6a37cf4d312ebb51e9a12442f4f599c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.878Z", + "updatedAt": "2026-02-24T10:49:36.606Z", "postProcessHash": "467da22e82a41d5b0264a49bb433b15202f59fce3feb7f6acd8c0ae06fb0aef9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.949Z", + "updatedAt": "2026-02-24T10:49:36.623Z", "postProcessHash": "704730d9e1947c2a4b504379715ff4810f204d370ff61438a2bb6e2f50bb5eb1" } } @@ -19009,19 +19243,19 @@ }, "4e906e75b0ab47caa5124523a4ad540e0aa3d39e19a8eca3a5cf466af062636a": { "zh": { - "updatedAt": "2026-02-19T02:24:12.919Z", + "updatedAt": "2026-02-24T10:49:36.596Z", "postProcessHash": "25f53f24dee156626f1fd8962da79ac3fda54be3d95b90d0b12ab8d75dca8e5a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.920Z", + "updatedAt": "2026-02-24T10:49:36.597Z", "postProcessHash": "0dc5ed76ba40950b706c2d49f4f599b9e26e6ce3e4c74b7038b82fe4cd4c5311" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.925Z", + "updatedAt": "2026-02-24T10:49:36.600Z", "postProcessHash": "ab57537edd722231b3a0c5858f49ea8566092c2428a6ef0f0562bbe7581d9f0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.940Z", + "updatedAt": "2026-02-24T10:49:36.612Z", "postProcessHash": "7b1052336003f0968ce9eaf8c03c7ea02c402ef8cbf3c3ede11dfd41711a9199" } } @@ -19043,19 +19277,19 @@ }, "b78c8fb3fd3ca82a06d7b5e1eb71237a40ffaa81872fa71ac9e905e8c0298135": { "ru": { - "updatedAt": "2026-02-19T02:24:12.905Z", + "updatedAt": "2026-02-24T10:49:36.640Z", "postProcessHash": "06352ad240cef2dac5575aae8c070331995023cab2e2e76b9c0db73094ae5254" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.906Z", + "updatedAt": "2026-02-24T10:49:36.640Z", "postProcessHash": "9e4d90e728d86e76cfe85c8b9159ada8015ead90139d4040e891b4a4f00850e1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.906Z", + "updatedAt": "2026-02-24T10:49:36.641Z", "postProcessHash": "aa9ea865ef9a74fd0403c13740154b4683b116cf2be151eb36e4d903df8e43cd" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.000Z", + "updatedAt": "2026-02-24T10:49:36.731Z", "postProcessHash": "292a21554791fb1d83d084515bf1a1f888ad44a747eecdc3ead895667099f8bb" } } @@ -19091,19 +19325,19 @@ }, "6dc8fd3088ed4f08deedcd5f0394465af405eadc6203052897402931add1fb4d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.864Z", + "updatedAt": "2026-02-24T10:49:36.594Z", "postProcessHash": "e43f54194970928b8d2b302f1351b9e3d4f442e98c5e340649248d280d113d6a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.864Z", + "updatedAt": "2026-02-24T10:49:36.594Z", "postProcessHash": "1c23b1e82e1d97167bc6f64e0fb52422c5539ae6c850c1b92d847e3f21ce22e6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.866Z", + "updatedAt": "2026-02-24T10:49:36.596Z", "postProcessHash": "b33b2390cb4e519818423c791dd0933ea15bb81c4b95c1cddbffdd3de00a48fd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.886Z", + "updatedAt": "2026-02-24T10:49:36.613Z", "postProcessHash": "e549512be440a8282c9714eb6f4ababd77d6ec5e7625b650001d01883735cfe7" } } @@ -19125,19 +19359,19 @@ }, "98c573ac06c8759538fcd02a1c10d0230d7de907f589fb9543a0cf6319f46001": { "zh": { - "updatedAt": "2026-02-19T02:24:12.908Z", + "updatedAt": "2026-02-24T10:49:36.643Z", "postProcessHash": "ee273d9be595cbe724fe1709ceb01964f54312cbf44f18e124d17a8b89c586fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.909Z", + "updatedAt": "2026-02-24T10:49:36.643Z", "postProcessHash": "ff5146ed0bbc2686b03ae65de3e45fd32a20022161066411ad3e09cb972f021d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.909Z", + "updatedAt": "2026-02-24T10:49:36.644Z", "postProcessHash": "b5edf9eeb6a28b1d8e8ccecf9547cef80bc547fc586b1d426177c50efecb9a1e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.945Z", + "updatedAt": "2026-02-24T10:49:36.673Z", "postProcessHash": "fa2e2e3ed96541757d4c94f23949928ad21cb2feed333aaa3b9fc557d5b193a3" } } @@ -19213,6 +19447,24 @@ "updatedAt": "2026-02-19T02:24:12.946Z", "postProcessHash": "9831c983cd934d99b5c327a10a166494e9de9384060b854c8582fbee1ccc8159" } + }, + "8d05adf3db47e86c6cd4f66fc9c4bfbd04faa6291c5791be84046da045eb0f52": { + "ko": { + "updatedAt": "2026-02-24T10:49:36.675Z", + "postProcessHash": "708266ae5d9cfaf40c92abd95ea8bfaaac92451593fc4d72a451d302fff737ff" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:36.676Z", + "postProcessHash": "52821eb9724916f71f6605ab57fed6e8892fb5d2d1e19bb690ee00b469d977d8" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:36.677Z", + "postProcessHash": "091e992f819e8a25d1ed31e91710834c137629c6639d3c3c45ff2fdd823a0e43" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:36.678Z", + "postProcessHash": "f81ab5e8f564454d9e4bbece531dd21d21a6f8515789c502947fe6a09967ec66" + } } }, "9d935527c3051f00d3c44516b5c5b43d9ec31ba4d1ca19553b784a772963e4d6": { @@ -19246,19 +19498,19 @@ }, "c60512dfb71a6a2aa364ece3cc56b9dfeb51c57e10318212785d1787eb63939c": { "zh": { - "updatedAt": "2026-02-19T02:24:12.919Z", + "updatedAt": "2026-02-24T10:49:36.653Z", "postProcessHash": "41ba6244a5c60f86ede46fc83b3ccc4c77b455c6df77f4a4b148adf21eed4f00" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.925Z", + "updatedAt": "2026-02-24T10:49:36.656Z", "postProcessHash": "4bad5b885f7e7eb5f36a3bac0323b3db7381aee4a263fdf21d063a5237d835eb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.929Z", + "updatedAt": "2026-02-24T10:49:36.659Z", "postProcessHash": "dc3aba28373f0ccf111016e99495d4dbef48a0655defc4d413310239fa6eb6ea" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.941Z", + "updatedAt": "2026-02-24T10:49:36.671Z", "postProcessHash": "0e62d26a562717b421324785614314b3839d902e6dc1eeaa2b69cb205c6c17e4" } } @@ -19330,19 +19582,19 @@ }, "fb1d44da08d6ee25b354475d41d0531149084aea67c0886a1239f97be1bd7f68": { "jp": { - "updatedAt": "2026-02-19T02:24:12.910Z", + "updatedAt": "2026-02-24T10:49:36.645Z", "postProcessHash": "af2574f44819b6aca471a051e59a11d4f7ff2122b7fce29c5bad7e955371ae1e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.917Z", + "updatedAt": "2026-02-24T10:49:36.651Z", "postProcessHash": "cc743ed9e26ad9ca80a572817673c9a3de8eafdf614f9192920ae1b3a7b07b61" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.921Z", + "updatedAt": "2026-02-24T10:49:36.654Z", "postProcessHash": "c7dcb7bd3eaf04576a551b00e1f456c173a0aef37b5ae72e51254c6792864893" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.945Z", + "updatedAt": "2026-02-24T10:49:36.672Z", "postProcessHash": "b1e5c522cee8a5d4e9dd90af0ca8dc94aa8fa79c71e5c12d2c6c3a15fd9615bb" } } @@ -19364,19 +19616,19 @@ }, "5fca8bf39e6d30b2a0660f71523bf990f807dc38d35972280ac8cb08ecf47124": { "jp": { - "updatedAt": "2026-02-19T02:24:12.904Z", + "updatedAt": "2026-02-24T10:49:36.638Z", "postProcessHash": "c6661226a3af55082aedd204145980d87d72edc98198152e72cbf40e0fab0056" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.904Z", + "updatedAt": "2026-02-24T10:49:36.639Z", "postProcessHash": "3dfb0a06f3072c943a1b6bcd3194b15fd9ff920ca0e9ad72940399666c4a07fc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.905Z", + "updatedAt": "2026-02-24T10:49:36.639Z", "postProcessHash": "bda31d5f2d972a3555de99fd9d1bfb89932ef848753a56f576f46695116c0a64" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.947Z", + "updatedAt": "2026-02-24T10:49:36.673Z", "postProcessHash": "f8dd8bc7783a9a639e86625dad130aba3c1bbe5b5d702196d194473a16d9d77f" } } @@ -19412,19 +19664,19 @@ }, "734856dcecc70492cf97a41d444e632afa49b462f288992b05fd0ac7e05c5372": { "zh": { - "updatedAt": "2026-02-19T02:24:12.877Z", + "updatedAt": "2026-02-24T10:49:36.605Z", "postProcessHash": "cb25500925a59246be7e0bb0fb9aa4053f49b7094f14dd38effd71a2291e4f08" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.880Z", + "updatedAt": "2026-02-24T10:49:36.607Z", "postProcessHash": "b3e71191753866eade2a42f124f7c323f976fbf7ddc63c01e504e1a3f4587d8e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.881Z", + "updatedAt": "2026-02-24T10:49:36.608Z", "postProcessHash": "50c6a9df5bf128ba208c9c9157120386270b8ab0dbab030339f3c71a1ae4410c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.950Z", + "updatedAt": "2026-02-24T10:49:36.624Z", "postProcessHash": "9848138123e3af3d283e0ec1c3b09457cf423b8f4289039747feb884bc08548b" } } @@ -19432,19 +19684,19 @@ "dbd0d5161d0bd3efeb5fcda68e773df51262f2852a70440882d847c3e8ed79ff": { "558ea55eedb29b8236de463bdebed17358b2ffd17236ba1c7d0c9758543b7b74": { "jp": { - "updatedAt": "2026-02-19T02:24:12.899Z", + "updatedAt": "2026-02-24T10:49:36.632Z", "postProcessHash": "81db81396dd00d9f34ba6b8c1faa4c8213db41aecfd1d13c06aea786d559288c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.895Z", + "updatedAt": "2026-02-24T10:49:36.628Z", "postProcessHash": "f93c7ebe2cf37d8a860b2a3274a2013751e7ce5e06657216050e6365b738b3c2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.898Z", + "updatedAt": "2026-02-24T10:49:36.631Z", "postProcessHash": "083fe1d66b08d7f95564664a1d9755ef4ea1f6712c084068ccab164a24b377a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.989Z", + "updatedAt": "2026-02-24T10:49:36.723Z", "postProcessHash": "b8f0f5c1ca6966c8fc3ecea51c37ded32ac5ca1a976088fd2314d93b6f23ee16" } } @@ -19521,19 +19773,19 @@ }, "cbf89381749a29ae9f4c92d5cd2e82e931857e78129d969e0cd8a9ee34b2be55": { "zh": { - "updatedAt": "2026-02-19T02:24:12.928Z", + "updatedAt": "2026-02-24T10:49:36.659Z", "postProcessHash": "ce3c31bf63828c7e25c032696e07a7e3255382ba2153196bb4beff6d66b4a96d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.935Z", + "updatedAt": "2026-02-24T10:49:36.665Z", "postProcessHash": "20c0656a85824a885d1b7cf5ca6e05b7fa4f6c5abb5c721ec2d84d440b3f1593" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.937Z", + "updatedAt": "2026-02-24T10:49:36.666Z", "postProcessHash": "a016614a4171a7e2a2dc633cdf945851647d6e2126c76bacd458fe4ab93700b1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.949Z", + "updatedAt": "2026-02-24T10:49:36.674Z", "postProcessHash": "b2001dff9d2559a4fec4e52f9b88ae45dde0c4dfc371b37e556c4897f87baf5f" } } @@ -19585,19 +19837,19 @@ }, "756ec3c9e8b547bd15f9ee52a3fa1dcd25fb99b1d6199ac6c79cd0b0b4542e67": { "ru": { - "updatedAt": "2026-02-19T02:24:12.972Z", + "updatedAt": "2026-02-24T10:49:36.709Z", "postProcessHash": "7dd60007af32a518544dba5a87d19736dcf620885dfe604b151d20f21f52f963" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.982Z", + "updatedAt": "2026-02-24T10:49:36.718Z", "postProcessHash": "5049ebc688ff81797096255cdd29582b6ca74b17c6b9ff84ca324b886bd5e22d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.984Z", + "updatedAt": "2026-02-24T10:49:36.719Z", "postProcessHash": "c77c767a2d15cf38bab624c530d443fcfd68c99fde2ee6448cb46443241aa992" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.002Z", + "updatedAt": "2026-02-24T10:49:36.734Z", "postProcessHash": "59a647e9b42ca8629b2f1e576aaa47060aa30902314bbf1889a549be27b5fc40" } } @@ -19619,19 +19871,19 @@ }, "1a8969873f7e4c66f6d48c504cae9068579bcef26f0ef3e78f4bded6f1a51274": { "ru": { - "updatedAt": "2026-02-19T02:24:12.962Z", + "updatedAt": "2026-02-24T10:49:36.697Z", "postProcessHash": "2bdbf4a013514e2b02bab3f8384ffbe41aa281d87675523782de72a0c5e83a0a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.962Z", + "updatedAt": "2026-02-24T10:49:36.698Z", "postProcessHash": "5092242cea73b45a4a306cb694633346e8db374479c6f06500248a17d15e8fa1" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.963Z", + "updatedAt": "2026-02-24T10:49:36.698Z", "postProcessHash": "88aff9ae45d2bc8b6cfa770e6af1e06af282b1ade7ecc32ab715aafab7ebc616" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.994Z", + "updatedAt": "2026-02-24T10:49:36.726Z", "postProcessHash": "904e6563eacb280a5539e645b33c5df788611dadd3b4e9d2438d0186a38c4eb7" } } @@ -19667,19 +19919,19 @@ }, "ffdd7c5adcaeafc7c0a1c1e98ef0b9ef723102b71053496e30595502810ce18c": { "zh": { - "updatedAt": "2026-02-19T02:24:12.911Z", + "updatedAt": "2026-02-24T10:49:36.646Z", "postProcessHash": "f1386826f158f9fbbba3c396751b6a7fbe6ff49fafdde5516768a6e81c9b0c4d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.913Z", + "updatedAt": "2026-02-24T10:49:36.647Z", "postProcessHash": "5b5b0cfce0019e5841f0a6d5448939e9ab7dcaf42db6af60cc276960233a971f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.974Z", + "updatedAt": "2026-02-24T10:49:36.711Z", "postProcessHash": "00caeee71f48dd1c6550b823abe30b65a9560282a394173358e3115fc16aa222" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.989Z", + "updatedAt": "2026-02-24T10:49:36.723Z", "postProcessHash": "34bcc75135ddd57d106fe5aa2efbb5cb98ec1382a834bcce51e8bf076c98199f" } } @@ -19701,19 +19953,19 @@ }, "d065a9f4fd510c23b184777f1708b29ce7318db216ef6281a0dec1a803db5fd1": { "zh": { - "updatedAt": "2026-02-19T02:24:12.961Z", + "updatedAt": "2026-02-24T10:49:36.696Z", "postProcessHash": "100a0147fd365e870d5864f25f0ea851598f195d1d7df0dfbc058ee4a6df021d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.961Z", + "updatedAt": "2026-02-24T10:49:36.696Z", "postProcessHash": "a05c03d16850e54b2c6d32620d795d5620b14638b8c0a31b5dbfb469e8287b78" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.961Z", + "updatedAt": "2026-02-24T10:49:36.697Z", "postProcessHash": "5f25d9d749618a6e8a79ecd6ea57ff3b51df1dc5d342043ddb317691ca4b6585" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.990Z", + "updatedAt": "2026-02-24T10:49:36.724Z", "postProcessHash": "acb0616d8c522dfa7219622dddd3bceb0c0fb467596278bcaaef289106b36d13" } } @@ -19737,19 +19989,19 @@ "501db638650e5304a9dba8ff4612de47b5da82aaad0a722bd89c11c68a35eb5d": { "f925e25aa54c252061995e84db9939551b2e2035ef3360d06582d778617a054f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.954Z", + "updatedAt": "2026-02-24T10:49:36.630Z", "postProcessHash": "b22113fc223156109ccabbbc62a77193698c84cdd508506008f1bff4132341c1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.956Z", + "updatedAt": "2026-02-24T10:49:36.633Z", "postProcessHash": "a20d4a8d395f65c8cbc6705b36ea7d95cbd81d136c2e721aea7668542d6cd925" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.953Z", + "updatedAt": "2026-02-24T10:49:36.629Z", "postProcessHash": "7ee7b69c9d4066e4a2c1b33074c5a8d304c18a79e313e85a2dd97c5d3ac4c02f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.001Z", + "updatedAt": "2026-02-24T10:49:36.733Z", "postProcessHash": "20620f2ca0cb8b8b0d3f04c406c9bda6179a823b76886a67d7832e2d8c271eff" } } @@ -19757,19 +20009,19 @@ "5391d9361d8de859f55fc623438785f034d27921eaf51522b1cfec0b8ae6d057": { "4c5301e6bd068db1c39c7442930c97eb64fc020a710f75519ea91e088c153887": { "jp": { - "updatedAt": "2026-02-19T02:24:12.895Z", + "updatedAt": "2026-02-24T10:49:36.687Z", "postProcessHash": "fbf72f6b36bf42da1cffa4ffb93fa3962df81260d381f4d07b3753ff4de0c630" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.896Z", + "updatedAt": "2026-02-24T10:49:36.687Z", "postProcessHash": "82b5a6ae5bc0d6c6e81b82b5602be265080200264f795e9a21f144ca3e20ae22" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.953Z", + "updatedAt": "2026-02-24T10:49:36.688Z", "postProcessHash": "5bcb53f9bac59dc2e5aeb6527451914cb8600cdd8abd2d82207b15e6903e7f59" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.997Z", + "updatedAt": "2026-02-24T10:49:36.729Z", "postProcessHash": "c59de87b074a77199077dc70869dc56be1b402d03380315a6e6f963c29ec4b20" } } @@ -19805,19 +20057,19 @@ }, "ba2c35ee6fe2c724c332582d6704551136be5814990fa953244d4542017d01ae": { "zh": { - "updatedAt": "2026-02-19T02:24:12.976Z", + "updatedAt": "2026-02-24T10:49:36.712Z", "postProcessHash": "964d37b3694d260b3218047795d9fec46cf558a553eca948cc34677e49cf70e6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.981Z", + "updatedAt": "2026-02-24T10:49:36.717Z", "postProcessHash": "e7e574c78be7e8150c0b293f40582a9840db6ee0db81896779d76218b0ad8be9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.985Z", + "updatedAt": "2026-02-24T10:49:36.720Z", "postProcessHash": "ce0c03edbb8be5e4a190b3f3ee3ca6e3c5da98f15f62796e4498ee6adb6e4061" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.004Z", + "updatedAt": "2026-02-24T10:49:36.735Z", "postProcessHash": "b220ec4448b22a478414244a3230ba8909c3eba38dc530116c9237312ef6be34" } } @@ -19853,19 +20105,19 @@ }, "a54e4f87fc7b2f9f9fd83bf1205b56983fc9a336cd4efd790b2008c872345313": { "ru": { - "updatedAt": "2026-02-19T02:24:12.964Z", + "updatedAt": "2026-02-24T10:49:36.700Z", "postProcessHash": "9ea8c018460ebed0f69011348a1301f871bda2f0361453a06c205bb5779a9ce3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.966Z", + "updatedAt": "2026-02-24T10:49:36.703Z", "postProcessHash": "dabe7a7001c05ed4fe818746130b96e59daf401869606eab7b8a5d7a8bc860a9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.973Z", + "updatedAt": "2026-02-24T10:49:36.710Z", "postProcessHash": "f6d89ae744de90d730c922c21a35990d0e9ad797f405508ef04c1633130ef221" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.004Z", + "updatedAt": "2026-02-24T10:49:36.735Z", "postProcessHash": "b641ad4bdc1c80665ec654db211531a810862a210b1eb3ceb85f52a98b82a611" } } @@ -19887,19 +20139,19 @@ }, "9bdf3eb7fbb415eaa2f2371552915388a97b0833ebc19d385270a13a728489d3": { "zh": { - "updatedAt": "2026-02-19T02:24:12.912Z", + "updatedAt": "2026-02-24T10:49:36.647Z", "postProcessHash": "5661c635a2e351f547326295a9197b37441e0979a1843ee691d392a49f355559" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.980Z", + "updatedAt": "2026-02-24T10:49:36.716Z", "postProcessHash": "f7e8f9dced7833cd1e49196d255cff45c825e1c06d58610a931929c334fe3d17" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.983Z", + "updatedAt": "2026-02-24T10:49:36.718Z", "postProcessHash": "ee9610f3e9279b7123f44d5191ecf28dae57a79d40c3da113fb845e5d6cae6b7" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.005Z", + "updatedAt": "2026-02-24T10:49:36.736Z", "postProcessHash": "eada8458564c35e5b87e20dd12867c9070d855755ae96c0b802f7552a863ab65" } } @@ -19921,19 +20173,19 @@ }, "56ac89ec4354fc243449744ccce8bfa7ea6856a7854a0a9b43bac5d9b2b56935": { "ru": { - "updatedAt": "2026-02-19T02:24:12.964Z", + "updatedAt": "2026-02-24T10:49:36.644Z", "postProcessHash": "ba737b07a06b01578b6eb0d635c6fa4e7cf7836d97e988b332a982e30c462572" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.967Z", + "updatedAt": "2026-02-24T10:49:36.705Z", "postProcessHash": "f1fa5c2899d5994b6215f2e157383525ddf44b4dfc3baad276bf19ed593a7220" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.974Z", + "updatedAt": "2026-02-24T10:49:36.712Z", "postProcessHash": "78a45cc7dc5f53b3eb3f19a89caface21fdf071533e1ba255d0d2aa99a562b26" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.995Z", + "updatedAt": "2026-02-24T10:49:36.727Z", "postProcessHash": "bed674f6fb0ccf285581226bd753081693651f05a1d520f635902fb0577678ec" } } @@ -19983,19 +20235,19 @@ }, "6fab42a7d13e2ef9f9132b88e11120e1226357e10fdace41b591e4efce816cce": { "jp": { - "updatedAt": "2026-02-19T02:24:12.922Z", + "updatedAt": "2026-02-24T10:49:36.655Z", "postProcessHash": "08f4b418757dbd4080f4897d845334a9ace79276b500aaaf0f74b9d7e46e0a91" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.922Z", + "updatedAt": "2026-02-24T10:49:36.704Z", "postProcessHash": "2463b57808e47d01458f56e91be492114b6fa99c4aa295a978f9beaaec8a92c7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.970Z", + "updatedAt": "2026-02-24T10:49:36.706Z", "postProcessHash": "8b4ddd1277d12f09f529d6ccd10fc7c2ae4904384d1d2d45d280f552cb5e2668" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.004Z", + "updatedAt": "2026-02-24T10:49:36.735Z", "postProcessHash": "e7954dc8f0193390735db40ac8eb6d0e3864499d88fe591c239b0967685c36be" } } @@ -20017,19 +20269,19 @@ }, "c8d09ad79e54ea9e191374955b59695827e814ce95834db2529118c2e784b636": { "zh": { - "updatedAt": "2026-02-19T02:24:12.986Z", + "updatedAt": "2026-02-24T10:49:36.720Z", "postProcessHash": "6376714fb5f0ecba73fdc3127fb4871523235e0213176b2898b24a0502777ec0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.986Z", + "updatedAt": "2026-02-24T10:49:36.721Z", "postProcessHash": "f9be703158d729956b44b0f44d72dae24c215b355fd228c3d94a1779d585e872" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.987Z", + "updatedAt": "2026-02-24T10:49:36.721Z", "postProcessHash": "17515a929fc347751ac2ba1b53ce4b20e6238332e6f421258e871f747c42fa87" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.001Z", + "updatedAt": "2026-02-24T10:49:36.731Z", "postProcessHash": "16d590af9d8f23dda2052bf43b42300cdb4ce2fd0d137c92d1c64434f0481dc7" } } @@ -20079,19 +20331,19 @@ }, "46e9bb85c6eacb4b8f00788f826c52b19f87d29111a025235486f526772ccf47": { "ru": { - "updatedAt": "2026-02-19T02:24:12.965Z", + "updatedAt": "2026-02-24T10:49:36.702Z", "postProcessHash": "c3b85d80a6fb563f20c50e4bb1525c29aac10906553851df7f5fa412d034a40b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.977Z", + "updatedAt": "2026-02-24T10:49:36.713Z", "postProcessHash": "5ba6d6ca9b5be67ea2520f5d82e8d97ee018de5afa18686baff5bc9087c665da" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.983Z", + "updatedAt": "2026-02-24T10:49:36.719Z", "postProcessHash": "35359e2c8768dbc52b8fd4de1c369039e54f0314bff052cb271d13b8a99f1e64" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.000Z", + "updatedAt": "2026-02-24T10:49:36.731Z", "postProcessHash": "deca7a884efda2fdec06af5e0e6f753d44b47e482700da130cf969bcadd42714" } } @@ -20113,19 +20365,19 @@ }, "1209f1c828ccbdcd8c106b1840e2d2e40024640272c14e5152da90e8dd351e47": { "ru": { - "updatedAt": "2026-02-19T02:24:12.957Z", + "updatedAt": "2026-02-24T10:49:36.691Z", "postProcessHash": "dc95d42eda54b435dff1bd6c6b1882989aa022966357d9148164e396a0189986" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.957Z", + "updatedAt": "2026-02-24T10:49:36.691Z", "postProcessHash": "63f76ba55d6aae03f545e41781c52a275bf6920d20a69c384271ca158daa5034" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.958Z", + "updatedAt": "2026-02-24T10:49:36.692Z", "postProcessHash": "bda02639849ee4dd95feacfb1fa57331c50ceea82e4d5c7392e7f4e7fb9f0c80" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.991Z", + "updatedAt": "2026-02-24T10:49:36.724Z", "postProcessHash": "91cff18f48f965eba3873db2347e6d2d59d83b97597f96c2febdcecde70e4b06" } } @@ -20175,19 +20427,19 @@ }, "9b86a509c2590f59574d0b947eccbf8b9c37fee4ef1ad599d95258a20a8e75cc": { "zh": { - "updatedAt": "2026-02-19T02:24:12.914Z", + "updatedAt": "2026-02-24T10:49:36.649Z", "postProcessHash": "0f8744ee3d91135d8f9e66fcd4ffb87a1b59ea9cbb8538549a8f8f4ce8418985" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.969Z", + "updatedAt": "2026-02-24T10:49:36.706Z", "postProcessHash": "7fa6dfa2f9bb57d76c2fd9fbc62b4b699d65537a773c71a9142dced8d5fdfb37" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.971Z", + "updatedAt": "2026-02-24T10:49:36.708Z", "postProcessHash": "6881a3e778ab0fa120dc5c7dd2ee95893821ec5502ec66aae078e262290f5ba6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.992Z", + "updatedAt": "2026-02-24T10:49:36.725Z", "postProcessHash": "78cf9281f5bf06abdd87ded8abfb2c56809b7c7e37d07da0272ebb48e3b263f0" } } @@ -20195,19 +20447,19 @@ "b8c212ea80c9bdcc2ba8434c82489b4cd25a84157ab8881924465e669bf2bf1d": { "aad4076142416380448496fbac36524304c81991e5c00dade2ad95e55a087c94": { "ru": { - "updatedAt": "2026-02-19T02:24:12.894Z", + "updatedAt": "2026-02-24T10:49:36.685Z", "postProcessHash": "bc6834f5aa92fdb288442fc58cdf176cc6d5d69b037aff11066dd4b9a430d86f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.955Z", + "updatedAt": "2026-02-24T10:49:36.690Z", "postProcessHash": "65027e49845b45fcc27c51126c215336ab6d67feafef81cd9b7672cd85f14e62" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.894Z", + "updatedAt": "2026-02-24T10:49:36.686Z", "postProcessHash": "317c673020dd7bed2c0208c9742b7e476541042db1647a814b966c89f1bed22a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.999Z", + "updatedAt": "2026-02-24T10:49:36.730Z", "postProcessHash": "ba5b7954bf7a39ebda656007a236b191bc2f295a9146b92f3bc1fa6384bc5856" } } @@ -20215,19 +20467,19 @@ "cb227df00b6e64305168553956c1928afd33de9cb76c9d330e9c9eca9290c33e": { "268a8df1fdc77541fc0a6bc99e66097367ea72724a49b591b16c19e00e6685fe": { "jp": { - "updatedAt": "2026-02-19T02:24:12.897Z", + "updatedAt": "2026-02-24T10:49:36.629Z", "postProcessHash": "bf837a5e914bdda14c4b44072f8af221821c4754e8076488513f5d0837c45e91" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.897Z", + "updatedAt": "2026-02-24T10:49:36.630Z", "postProcessHash": "06150e684b7be70eeab4c615046a1fbf3e5d42b5737c0f08ea71f99c022cab23" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.900Z", + "updatedAt": "2026-02-24T10:49:36.633Z", "postProcessHash": "c9e9d95d6baa22ceae0f0115797f8f76fb119e786e6cc8912ca21b6452d2c00d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.994Z", + "updatedAt": "2026-02-24T10:49:36.726Z", "postProcessHash": "5e6703f92729f54269792181aaa00096c96b4e1a0a9a228516a295a75913522c" } } @@ -20249,19 +20501,19 @@ }, "2cbc552446620b24bfb3d4905a8aa640187f2af1f1f9cb7e1a6d2353e75b517b": { "ru": { - "updatedAt": "2026-02-19T02:24:12.958Z", + "updatedAt": "2026-02-24T10:49:36.693Z", "postProcessHash": "af9174146dfe467adc18274d1b767feca48b3c71444bf0aeeb73c5a8a4f87509" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.959Z", + "updatedAt": "2026-02-24T10:49:36.694Z", "postProcessHash": "c2192b76fccd6585a351d27afdce7844a85d063f45508c871680554f8516ad13" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.959Z", + "updatedAt": "2026-02-24T10:49:36.694Z", "postProcessHash": "b33c6e59e1312dfc878a5999f85dc101719601c02ff9952cc29b3f9b535b2fb9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.993Z", + "updatedAt": "2026-02-24T10:49:36.725Z", "postProcessHash": "e1d0d3d5de30c901612135cb94326871ded120d0734c5f6bde7948b58fe0838c" } } @@ -20269,19 +20521,19 @@ "e9a7a6821acf2148d5fdf59dfb02c842dbeccfe3db8ed78b13af93341b542d82": { "45af94df7fb72c57f3c3954a12bae535b5025b01d4824ae9e4f23b2ab156e1ec": { "jp": { - "updatedAt": "2026-02-19T02:24:12.900Z", + "updatedAt": "2026-02-24T10:49:36.634Z", "postProcessHash": "0903d3ce37f7bcb366a70818ebdbf38a7a351c17a16e04ecbb37eb4799871664" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.898Z", + "updatedAt": "2026-02-24T10:49:36.631Z", "postProcessHash": "501c79797b755ace43f8d74727a400d9e813f81807603e466dda8c017567f157" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.899Z", + "updatedAt": "2026-02-24T10:49:36.632Z", "postProcessHash": "a16e4348dc08bb8bcd4ae5aafa7ed654e23dfb71d9a05d0e67fe93594ade0fee" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.997Z", + "updatedAt": "2026-02-24T10:49:36.729Z", "postProcessHash": "7c161ef72db1355e2a196794fb6a84b96534c993c2781bca3193a7aeccbcefb8" } } @@ -20317,19 +20569,19 @@ }, "cf46ac1d8a096f2dc9be385a8b4fc5acf0d3bb3aa1ff80695ae0bf2581dbf815": { "jp": { - "updatedAt": "2026-02-19T02:24:12.911Z", + "updatedAt": "2026-02-24T10:49:36.646Z", "postProcessHash": "b80c6a47e6b0eb0ef75a80f3625fcc16e0b19c69760cedd424687a4ae9750a8c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.915Z", + "updatedAt": "2026-02-24T10:49:36.650Z", "postProcessHash": "947ebdd786550c84ef001a199ccd263bc67a6553486ce12b3ef2748e078434dd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.917Z", + "updatedAt": "2026-02-24T10:49:36.652Z", "postProcessHash": "b17e050f62b6fcbb65e44e7f09212d04b13db10257bcd4f77d4f12868fb64e11" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.003Z", + "updatedAt": "2026-02-24T10:49:36.734Z", "postProcessHash": "d080efdcf492ae83ccfaeb5d370307205b5d022f8f358dd07109fab1d799e6ca" } } @@ -20362,19 +20614,19 @@ }, "5c40b016d44db6fe923b07317dae74d6ffa19314dda1cfa2cdb5b15b6599916d": { "ru": { - "updatedAt": "2026-02-19T02:24:13.035Z", + "updatedAt": "2026-02-24T10:49:36.763Z", "postProcessHash": "dca1e20ae5aefb9b52c7ae8b7345f3ea52eeea7096543616cfbefc21af557ec3" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.044Z", + "updatedAt": "2026-02-24T10:49:36.769Z", "postProcessHash": "8b912adf02bf620b1961396220a3a107f6e17026a95a77c622425930a9944ba4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.063Z", + "updatedAt": "2026-02-24T10:49:36.789Z", "postProcessHash": "2c1578bba2e0d800f08afea43283a9a770282ca2cea0f1b859190f4e67aaaba4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.075Z", + "updatedAt": "2026-02-24T10:49:36.806Z", "postProcessHash": "62f15a178f37443589d8f0f95f9f183950522bfcb24a8aa61db94926d1074c9c" } } @@ -20407,19 +20659,19 @@ }, "784869055cddf879d4e226bd28fbfcf6cec289d57736fd85c58d29a84b08ca63": { "ru": { - "updatedAt": "2026-02-19T02:24:13.043Z", + "updatedAt": "2026-02-24T10:49:36.768Z", "postProcessHash": "9a77f8fd25f009b30c4ddf47b170457cc96481fa60d18ae2f878f6e03a84e312" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.049Z", + "updatedAt": "2026-02-24T10:49:36.773Z", "postProcessHash": "17f455e8e8835ae623dae96c63a4cc4117abdf33ab92f9899d69c24711dbfa64" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.053Z", + "updatedAt": "2026-02-24T10:49:36.778Z", "postProcessHash": "12d2c192f4f6352b9913bd50bef7d2ab8c27b716f0d4b49209bbaa5b7ebe9ac1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.077Z", + "updatedAt": "2026-02-24T10:49:36.808Z", "postProcessHash": "c9da44a0e6e8a93fdb3fbe2a2fcf110352bda4b86478a5876ab3cb827dac7958" } } @@ -20427,19 +20679,19 @@ "23af5cac91f252ffe2e42d1e7b5a0bcabe7dc844aed8ebeffba1570964d40b4d": { "897a5b0e6ee3fe28e1f105bc25b952d48f233f747b27270188a83040b9b40f90": { "jp": { - "updatedAt": "2026-02-19T02:24:13.013Z", + "updatedAt": "2026-02-24T10:49:36.743Z", "postProcessHash": "e0af3da255a5ffd1f530bc726be0cf9ce21fe24e8e5ca02b6e1a5f7ae9bb8cf5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.952Z", + "updatedAt": "2026-02-24T10:49:36.737Z", "postProcessHash": "537657f415472bc5629de7b12311f9565a54c5f16d1ff856e60fc2c03fbf7057" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.011Z", + "updatedAt": "2026-02-24T10:49:36.742Z", "postProcessHash": "5edcd9dea8579abac1fbfa386b6fbcea2530ecf94fe865e94b56801ae35df925" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.073Z", + "updatedAt": "2026-02-24T10:49:36.803Z", "postProcessHash": "245dd86b1d2221dbd49abe535f2711a04e54956cca897b1152a1c7a4ec2de4c7" } } @@ -20472,19 +20724,19 @@ }, "b4a0776b1f0babb9cebce0b6a7609b5727f5e02920459052586fac07088d58e8": { "ru": { - "updatedAt": "2026-02-19T02:24:13.062Z", + "updatedAt": "2026-02-24T10:49:36.789Z", "postProcessHash": "1815d4d4eaf50da5b74f94a2dd42ce1e9761b56c3bf0d141c156501386dde272" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.065Z", + "updatedAt": "2026-02-24T10:49:36.792Z", "postProcessHash": "cba10a6dec3532d715d0f8f8a71e42975bd17a9a0139da7db36603be45bdd0d5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.065Z", + "updatedAt": "2026-02-24T10:49:36.793Z", "postProcessHash": "fa0fea07d85d56b531579e54ecf4e474b44e36011d4e6971d6f34e39b5868c1c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.072Z", + "updatedAt": "2026-02-24T10:49:36.801Z", "postProcessHash": "6965e6aaf1df6dd162421c9f6e1c7768da9055347259ecb570c5bb4c3737e3f0" } } @@ -20506,19 +20758,19 @@ }, "d3eaf55b20f02028c49fe7bdae207668cebf6bd96ec2c37f04870703bbe76813": { "ru": { - "updatedAt": "2026-02-19T02:24:13.024Z", + "updatedAt": "2026-02-24T10:49:36.755Z", "postProcessHash": "d85da60c31304bfc6647a3110566485f080c9bbaf7a4985dcf3ab6fb3f3ab439" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.025Z", + "updatedAt": "2026-02-24T10:49:36.755Z", "postProcessHash": "3f5fa9da9e3bf1ea53f2a0def7435c9dc8ce771715b2d328f559b28e08fb407e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.026Z", + "updatedAt": "2026-02-24T10:49:36.756Z", "postProcessHash": "2846d37865a4c803e951bafc0047d71302afe6bf3808baaba0b930e3bb062d90" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.123Z", + "updatedAt": "2026-02-24T10:49:36.803Z", "postProcessHash": "5eefd646680f9efc4c5d30984be10f7b9850f7391c141916ef00aae52d41b049" } } @@ -20551,19 +20803,19 @@ }, "4c45618b596175d9f588c227ee0da332f63afdbb099d49a9deb3e1dfadc5d074": { "zh": { - "updatedAt": "2026-02-19T02:24:13.025Z", + "updatedAt": "2026-02-24T10:49:36.756Z", "postProcessHash": "4cead25a0e7e8c0d1f9893afffb452f13bb32ab21af8621139da8c6ebf36c0a5" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.111Z", + "updatedAt": "2026-02-24T10:49:36.800Z", "postProcessHash": "cbd9a4b5f596e41827a413d51df5773a499741a35518346ce9ff181639ba0ec6" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.115Z", + "updatedAt": "2026-02-24T10:49:36.800Z", "postProcessHash": "66fec68413424ba5394b4272932d1e6511cb03d7b4e931085417a1b1f97ce404" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.127Z", + "updatedAt": "2026-02-24T10:49:36.807Z", "postProcessHash": "fb392a1e316910a8ba4448172906b76dbbbde4e8c63dc1e050c7e8e05d039031" } } @@ -20596,19 +20848,19 @@ }, "a598a515d9e654b8253ccf00d2ef21a00629baf6a04274bc599e31dfa9d018a6": { "ru": { - "updatedAt": "2026-02-19T02:24:13.032Z", + "updatedAt": "2026-02-24T10:49:36.761Z", "postProcessHash": "4d5fc1f3d380f9a9a5f01a447afc77d84881c95d3156bb07414020f10b5edb76" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.061Z", + "updatedAt": "2026-02-24T10:49:36.788Z", "postProcessHash": "b6588694af0ddec3a7e4313f7ced83c54fd339cecaadf9c3b1ca134196362827" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.063Z", + "updatedAt": "2026-02-24T10:49:36.790Z", "postProcessHash": "cd4050d4275b6bf185c121a20050595ecd11a44fb5e02671e3ec2387f2ea3a90" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.078Z", + "updatedAt": "2026-02-24T10:49:36.815Z", "postProcessHash": "cf61ddcd5ee2f7f54dd31207dd944be441d8112fa4ab8d1d180f928e2f8425e3" } } @@ -20630,19 +20882,19 @@ }, "8ca219700b4b445e884869bb451f8ec364c3e65c0e20a7b045667744bb40c1fb": { "ru": { - "updatedAt": "2026-02-19T02:24:13.023Z", + "updatedAt": "2026-02-24T10:49:36.700Z", "postProcessHash": "9f1dba98e892befaf772ea4de0d9346fee059f7cf1894a253f30677c34fe33ed" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.028Z", + "updatedAt": "2026-02-24T10:49:36.708Z", "postProcessHash": "962f3dce177cfee549045603321982f0ccb264c04aff673681235ab652687f9b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.069Z", + "updatedAt": "2026-02-24T10:49:36.714Z", "postProcessHash": "7694482b71ef43a3c593a24acd711498aae055c250c4753a6a76f68a9455f45c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.072Z", + "updatedAt": "2026-02-24T10:49:36.737Z", "postProcessHash": "976bf067eab99c42ce0ff0fa05ffd32ee97aedd252c3657d73e6912dd5caeddd" } } @@ -20650,19 +20902,19 @@ "854411037d5e91dafe4510e3bb749eb29c1405966f5c747972f003bea369b464": { "2f5dd362e6719f95a9f300225eac5ed8491245ba11f15bda272d36325d991c01": { "jp": { - "updatedAt": "2026-02-19T02:24:13.009Z", + "updatedAt": "2026-02-24T10:49:36.739Z", "postProcessHash": "d607a690ec6089418526a6d1afc5a40c7d31013ea9c54f3c817d875fc0a20c91" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.007Z", + "updatedAt": "2026-02-24T10:49:36.739Z", "postProcessHash": "b3d4d15b140673459f362a7fc6d871dce14130ea308a0901a5b660aea468f6dc" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.011Z", + "updatedAt": "2026-02-24T10:49:36.741Z", "postProcessHash": "c10e46ee9ab5eed5f2de0b2f9e9586e687690ea56418ab09be51ab32c3521d10" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.071Z", + "updatedAt": "2026-02-24T10:49:36.801Z", "postProcessHash": "988c469a477cf36756bed33805c93f97f66767e9d265eed6d8d6b6399f3e1954" } } @@ -20684,19 +20936,19 @@ }, "c6825a52b24f7f81308977756f7b146fb04e62007be9a785e211cd266b60c21f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.030Z", + "updatedAt": "2026-02-24T10:49:36.759Z", "postProcessHash": "6f4fd2590176782f56de81072135c29e04a39dbe3d2ad4b9b5f75aa6865e156c" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.101Z", + "updatedAt": "2026-02-24T10:49:36.798Z", "postProcessHash": "3036b52a03a6395542761df2470a910e414bcd1e806797758b4f3b2c172ee0fe" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.113Z", + "updatedAt": "2026-02-24T10:49:36.854Z", "postProcessHash": "b12f8cbe6f9ec75799720246cfcf659431c5c31ceb691daf4194216eec9fc738" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.126Z", + "updatedAt": "2026-02-24T10:49:36.867Z", "postProcessHash": "5c4240c889d9014677a1f93731728d9c942b6cdfe84f808b76fea809817c77de" } } @@ -20718,19 +20970,19 @@ }, "6499933594dafc209f89f6be8f60c96a2a75e2bd91ceb20d2560c8f267172d1f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.103Z", + "updatedAt": "2026-02-24T10:49:36.843Z", "postProcessHash": "4298648f62f549bcdb7c2b5fa765b92f7dffec964aa154cf7a8cdf9dc7f81e87" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.108Z", + "updatedAt": "2026-02-24T10:49:36.850Z", "postProcessHash": "704d87c654057318ff02750b36c01d46585a3777cd043567402de9a397035157" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.113Z", + "updatedAt": "2026-02-24T10:49:36.854Z", "postProcessHash": "c4f10ce87f9230bed7898dedeb8142ae5c72a00532434c13c412af750f4c6814" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.125Z", + "updatedAt": "2026-02-24T10:49:36.866Z", "postProcessHash": "4c8da417fd943565936e6b7d3a832113c375384a58a0374c09443ba207491094" } } @@ -20763,19 +21015,19 @@ }, "a97c294e20d9f321ff98a5b5f101fbed278c67793fd57884c8a6d34f1fa53f7f": { "jp": { - "updatedAt": "2026-02-19T02:24:13.035Z", + "updatedAt": "2026-02-24T10:49:36.764Z", "postProcessHash": "be212bbd28436733ca8e04922bb9616c6dc9f467b61bffc4b418334f016c8f61" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.058Z", + "updatedAt": "2026-02-24T10:49:36.784Z", "postProcessHash": "9ebb548e18dc97469cad242d805100fc174435bd94ccf38d8341615bcdb4a56d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.064Z", + "updatedAt": "2026-02-24T10:49:36.791Z", "postProcessHash": "9c033ba2200646e629626d4f850a03f2a483be9e629b966461539fc2c2f1a78f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.082Z", + "updatedAt": "2026-02-24T10:49:36.819Z", "postProcessHash": "d0e1617e658c3bd13327bfe0644416046d1d1a3f787e0ff9caf7821fce64b11d" } } @@ -20794,19 +21046,19 @@ }, "21a411586384e33979dcf970a5a3e351863fabcdd6a2f2d9ef948c7c72e29308": { "zh": { - "updatedAt": "2026-02-19T02:24:12.951Z", + "updatedAt": "2026-02-24T10:49:36.684Z", "postProcessHash": "b6aff0c2269381690c1b7443ad2252e186b0d717175dd8aacd7c975c7d1d3d0a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.952Z", + "updatedAt": "2026-02-24T10:49:36.684Z", "postProcessHash": "2c89546168a1a11644dd7042bd016215cd891e87d16c96174e31fff4a160dbb6" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.952Z", + "updatedAt": "2026-02-24T10:49:36.685Z", "postProcessHash": "db23b98ba052d49b2227837b229bf288b6ec3f17691b52296bb79fcc5ebfe2ff" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.071Z", + "updatedAt": "2026-02-24T10:49:36.732Z", "postProcessHash": "7892a83e4ce86a58a0eddc2b797d5b975a83608951d24cb1c86a4ab7a60dd26e" } } @@ -20878,19 +21130,19 @@ }, "a27b45d131762f1ec0273e3c7f015a98a23bd18a3a07dc9b686038a92e06cdc0": { "jp": { - "updatedAt": "2026-02-19T02:24:13.046Z", + "updatedAt": "2026-02-24T10:49:36.771Z", "postProcessHash": "bb7caf718f637e87530546c59a12395ae32f3c35092a5e188c5a66c2a5fa7c1f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.052Z", + "updatedAt": "2026-02-24T10:49:36.777Z", "postProcessHash": "9fb9c6fe740f3615f3f5cc622ae7958058066ff8569f4a3754f66312dd7c097b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.057Z", + "updatedAt": "2026-02-24T10:49:36.783Z", "postProcessHash": "61fa640bba2cb325ab976099d8e53b3bb223f057ef8a0b1658a0e566a9c6b584" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.080Z", + "updatedAt": "2026-02-24T10:49:36.817Z", "postProcessHash": "4a9a5f228291caa7584482d6a5e46a98873f825c4995817b394467fb55e11a6b" } } @@ -20937,19 +21189,19 @@ }, "03fb9ce2aee8c42130c540bdb604f52cb883da0c4df2a16681a870887ea66fbd": { "ru": { - "updatedAt": "2026-02-19T02:24:13.042Z", + "updatedAt": "2026-02-24T10:49:36.767Z", "postProcessHash": "40a72ac9cd9808e4af15be57d5bffc412d6ddf43c2f22fb5bc7f2035426e5d5b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.045Z", + "updatedAt": "2026-02-24T10:49:36.770Z", "postProcessHash": "df08f3f98a1738f9cb2bf43c844d05686d98d6599761d307ae9a88dcbf7d59c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.055Z", + "updatedAt": "2026-02-24T10:49:36.781Z", "postProcessHash": "47a813ab639b2a42668306dcbb5e60eadee945925a3708292bc292bba4c6af47" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.074Z", + "updatedAt": "2026-02-24T10:49:36.805Z", "postProcessHash": "afae6597250f8780565f6512e1142627f3c60d69b2278529d7093a19e23c593c" } } @@ -20971,19 +21223,19 @@ }, "ed47cab6e0bd39138caef2611de64069b6b35c214eae64567dcc1db50a3a1b16": { "zh": { - "updatedAt": "2026-02-19T02:24:13.026Z", + "updatedAt": "2026-02-24T10:49:36.757Z", "postProcessHash": "90d6f9ae360209044b8b07860016ae03804ce980669ead0cf0a1248eb60723be" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.105Z", + "updatedAt": "2026-02-24T10:49:36.846Z", "postProcessHash": "10de6cee6a40e747ad87f1cc85b465f5efc96bad789c8b514f6d21138ff81332" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.109Z", + "updatedAt": "2026-02-24T10:49:36.851Z", "postProcessHash": "c74f280da56fc191bf5e8b4efe0e516cf62c9b639cb1ef6bb0eb92eeee5a3736" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.129Z", + "updatedAt": "2026-02-24T10:49:36.870Z", "postProcessHash": "e81c1712d64be3b04047ea0478af2a91ce7e1adca5620595e466ebec7e718ff3" } } @@ -20991,19 +21243,19 @@ "cbb612322707858e39d9de4d0c9cc540429b50cdf2909447e753d421fc3212d0": { "4a7d4ef89d791edabbdff46a2878745843ca285c2985ee018c727274960745d4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.956Z", + "updatedAt": "2026-02-24T10:49:36.690Z", "postProcessHash": "00e31b9f38d28d401fb5b40b67702ce7cc6abe8f0e291e2d0569bb88854a90d0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.955Z", + "updatedAt": "2026-02-24T10:49:36.689Z", "postProcessHash": "b71fa10deeed8499811c9ec419c48d7d1498ddd560e4c9f3e4028bb517316f41" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.954Z", + "updatedAt": "2026-02-24T10:49:36.688Z", "postProcessHash": "513f90768602cb9f616731e6b97d8624883ccb6dda175461ab0af141e69b0cba" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.998Z", + "updatedAt": "2026-02-24T10:49:36.730Z", "postProcessHash": "7a66a169a424eec146cf5de42130c6e6a62511ba9a1a262d934e4052beaf9504" } } @@ -21036,19 +21288,19 @@ }, "23482c53bf960c785f24f628109da43fb218b2638bda8fb6a961fbf075fa9d48": { "zh": { - "updatedAt": "2026-02-19T02:24:13.037Z", + "updatedAt": "2026-02-24T10:49:36.764Z", "postProcessHash": "e29f23c871c7dd2c604de688a2676e87b318015c2e4d102df1a40b4b3ee6b510" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.054Z", + "updatedAt": "2026-02-24T10:49:36.779Z", "postProcessHash": "664fea55fd817d876b531049d8f875fd1ab71905a850de66dd273c6537c03b9d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.054Z", + "updatedAt": "2026-02-24T10:49:36.779Z", "postProcessHash": "0271f5bc01894db41033b4a517a27c115c5d9b20db17273fbc8bbd638a8d0391" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.079Z", + "updatedAt": "2026-02-24T10:49:36.816Z", "postProcessHash": "25abe381a371d1e9729e064dd56ac5d1f58d6efd1ff7981d02f3e488ec4336b3" } } @@ -21081,19 +21333,19 @@ }, "4109ddb5b72858063c6747a2522ded6774820013c48385c32a951ffd0f897bb9": { "zh": { - "updatedAt": "2026-02-19T02:24:13.048Z", + "updatedAt": "2026-02-24T10:49:36.772Z", "postProcessHash": "5b5eeed576b2337a90b26ab385efacb62ff52c90ac13e9642a4a091b3c1397df" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.050Z", + "updatedAt": "2026-02-24T10:49:36.775Z", "postProcessHash": "6d29c15da419a4746340f05d4eb4c840dfe1336fb37c6836fe23e4378ad5a4a5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.062Z", + "updatedAt": "2026-02-24T10:49:36.788Z", "postProcessHash": "3b99a10c2cc6c5893feb52e91037972d255890782ed011fbdac9519196409d3e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.078Z", + "updatedAt": "2026-02-24T10:49:36.814Z", "postProcessHash": "4237d44bc7e7fcbcea094e7eb069c148a875231321b2457b0a70ffe1d5af462a" } } @@ -21115,19 +21367,19 @@ }, "3ca680e308758a39fa61f0a47a6f6d245ddc986a667cc7b2513fe230fb850c55": { "zh": { - "updatedAt": "2026-02-19T02:24:12.959Z", + "updatedAt": "2026-02-24T10:49:36.693Z", "postProcessHash": "8c2b9afe1e2cf1d13cb0bd28be83a651666da9982206753d6960d6733b267d5b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.960Z", + "updatedAt": "2026-02-24T10:49:36.695Z", "postProcessHash": "e784ed3b8b985ba5ca0b2b0efd3d696380cc7db20c7e653eaa839bf7185b594d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.960Z", + "updatedAt": "2026-02-24T10:49:36.695Z", "postProcessHash": "98e3d5b93e2df252d5645a4aa3a5ecd7841d4f1194304c16f08a2c0f84d9829d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.006Z", + "updatedAt": "2026-02-24T10:49:36.736Z", "postProcessHash": "fabe640487d45c451be5ec506f03a8aebae592c44370a3c7998e9a55f68762a7" } } @@ -21160,19 +21412,19 @@ }, "dbd08fa8f7baf5946842f1a7f2dc689cd190175de58ac0b1adbfc36cab7a2e62": { "ru": { - "updatedAt": "2026-02-19T02:24:13.038Z", + "updatedAt": "2026-02-24T10:49:36.765Z", "postProcessHash": "dbf8e8080e937a02076c0c671a71b3323cbc960709a98e5af636e9cb89297b96" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.048Z", + "updatedAt": "2026-02-24T10:49:36.772Z", "postProcessHash": "4f337aaf0e33697e938ff88d17e4de841fe101e657be1c86272cee770f1ad7de" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.060Z", + "updatedAt": "2026-02-24T10:49:36.787Z", "postProcessHash": "241c0436e0c44cc5667133929271d93bc60d6af5acd00ecfba0271bcb0718b42" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.073Z", + "updatedAt": "2026-02-24T10:49:36.802Z", "postProcessHash": "043831b66ad0f696122824ca5766be0bf8d481be948faf0657be90e85c1acae1" } } @@ -21219,19 +21471,19 @@ }, "ab6cc41342b5df3ade0602735e4b5eb82b040498e6a277d391c9a34c7646e4bb": { "ru": { - "updatedAt": "2026-02-19T02:24:13.099Z", + "updatedAt": "2026-02-24T10:49:36.838Z", "postProcessHash": "dfb0e2f3a61b5dca3e9d575c05d14aa31444bf72756b78e8b9a075b180d4a021" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.099Z", + "updatedAt": "2026-02-24T10:49:36.838Z", "postProcessHash": "d02ed8e8131da309ce9815acff43325482d424bb40b5d7ba9d44640209546674" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.100Z", + "updatedAt": "2026-02-24T10:49:36.838Z", "postProcessHash": "fa018d15767ca24d8e57b3bd6cad0133cfb13c0a8b92dc00f000e065d49defae" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.121Z", + "updatedAt": "2026-02-24T10:49:36.863Z", "postProcessHash": "5772f635b0afe0b8494377af8e17b5bc33be3183a48e6dc021677f40aa9a6ff7" } } @@ -21253,19 +21505,19 @@ }, "0af38378b9bbc1778561230058a9b57f92ea5e7bac26055a9195553911861380": { "ru": { - "updatedAt": "2026-02-19T02:24:13.088Z", + "updatedAt": "2026-02-24T10:49:36.826Z", "postProcessHash": "b0aca587908d9b403891a97f6df981d90615031e96f71aa5d864b0c5976c830e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.091Z", + "updatedAt": "2026-02-24T10:49:36.829Z", "postProcessHash": "e71709e470ce8018ed5a0dd59213618183f23525e4c0f711c8d8bf5499d69d72" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.093Z", + "updatedAt": "2026-02-24T10:49:36.832Z", "postProcessHash": "013889de433b8727959aa20136b1549a5cfffed778ad8557aa3de7e8597d41b3" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.120Z", + "updatedAt": "2026-02-24T10:49:36.861Z", "postProcessHash": "c8bdf3f55121ecd0797499add392cea18cd9f02a89826a10614ab529734f4559" } } @@ -21315,19 +21567,19 @@ }, "b90197d50bdcc8e45880673d57e23e21401b5e559d19847edb7a9b5cfb9383a4": { "zh": { - "updatedAt": "2026-02-19T02:24:13.022Z", + "updatedAt": "2026-02-24T10:49:36.754Z", "postProcessHash": "f9d7233d3ce13954ca51416151692402acdbb4162540e484c20c79e32f3ab3d1" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.031Z", + "updatedAt": "2026-02-24T10:49:36.759Z", "postProcessHash": "76586e663dfb4fcf7584780c13b580be73051e603aa425bcc4a8cdd2c3298b3e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.068Z", + "updatedAt": "2026-02-24T10:49:36.796Z", "postProcessHash": "d28872a771051b1e0d3f8bc7dc490a8bee8c806684d1ecb7defb823ae6851a64" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.116Z", + "updatedAt": "2026-02-24T10:49:36.857Z", "postProcessHash": "74ed22bbe2148c0d2f47327e66c87fa9fd8f3774639fa938d4d9c55aa1efb8b6" } } @@ -21363,19 +21615,19 @@ }, "cbe67b5dcbfad368be383934d9f3e4663fe9683fc2c7683f7053581abaaa6d0b": { "zh": { - "updatedAt": "2026-02-19T02:24:13.101Z", + "updatedAt": "2026-02-24T10:49:36.840Z", "postProcessHash": "0967a5f27f650dc5585f3d4d78f5e38dfa936f5ad47c9c0cc15cfb1d9351365b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.102Z", + "updatedAt": "2026-02-24T10:49:36.841Z", "postProcessHash": "ce88b22e8c162282addb495fe97cdc5657f25f39594230dab2ed7ff5043fe82e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.105Z", + "updatedAt": "2026-02-24T10:49:36.847Z", "postProcessHash": "57f640a10809782473d95c16b400a8d87f29ad52c318065dbdffce19affb8445" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.119Z", + "updatedAt": "2026-02-24T10:49:36.860Z", "postProcessHash": "232314f912a203d2c0a1aa4451468f8e7847e9221b6d772a8916ba4b4448c69b" } } @@ -21411,19 +21663,19 @@ }, "db0ce45b3c560cb98948bb7091ca7f23434d092e69879ae894bdae40c93be2fa": { "ru": { - "updatedAt": "2026-02-19T02:24:13.104Z", + "updatedAt": "2026-02-24T10:49:36.845Z", "postProcessHash": "b1f4c1439309ba85a132fa278892402525b320f0a339708d9b00a321ff75853c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.106Z", + "updatedAt": "2026-02-24T10:49:36.847Z", "postProcessHash": "8f3cbb1c5c63fb42871beb993df015e04ee74e22713d145622f5da377bf33b97" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.114Z", + "updatedAt": "2026-02-24T10:49:36.855Z", "postProcessHash": "a0ca40185b54bde1bcc0a5b4ac8cdd1f2ca07d5b9e3662729e3919f5cca27985" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.118Z", + "updatedAt": "2026-02-24T10:49:36.859Z", "postProcessHash": "ea6a7173cc42a6488cb51709eff583db00022ac9de77e3a7a8e4857ca230ef61" } } @@ -21431,19 +21683,19 @@ "509f6ede51ab34e339503f91928010a06f04655f9ae29650958c5b6768752931": { "b15b0f51d35014ff5faa6f96548eae990708c240d294f1b231da328da35a7588": { "jp": { - "updatedAt": "2026-02-19T02:24:13.014Z", + "updatedAt": "2026-02-24T10:49:36.744Z", "postProcessHash": "08f3b3fd5166654ced00f267dcf18b27d2c2c5518cbbe79b70cd53c2dab5e383" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.010Z", + "updatedAt": "2026-02-24T10:49:36.741Z", "postProcessHash": "c28fbdbb1bf0c0347454a4e11ef49a89e9d9f016741606861e30ff338a94e5b1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.009Z", + "updatedAt": "2026-02-24T10:49:36.740Z", "postProcessHash": "ce5a99eaa06c11704e76eb88344ddb9c290c9cb178f98912e571b307de2d3366" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.130Z", + "updatedAt": "2026-02-24T10:49:36.870Z", "postProcessHash": "98d50ba58233673040d0b58e5a14e9db33a1dc74567307b8ca7a158b7ee54b59" } } @@ -21465,19 +21717,19 @@ }, "fd1e6808c44ee773d876691ba3a7b03bf19265b7073238bd0cdbbf8138fb1aa3": { "ru": { - "updatedAt": "2026-02-19T02:24:13.015Z", + "updatedAt": "2026-02-24T10:49:36.820Z", "postProcessHash": "84f9b0eb3c97e869f2fc1ef239a68b70edc08910f9d126db146b76e15fc9e131" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.017Z", + "updatedAt": "2026-02-24T10:49:36.821Z", "postProcessHash": "a930ed4af40a3955a8ee6f504dbeebef48254f9ab3617fe9f5f1c96bf3fac80d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.085Z", + "updatedAt": "2026-02-24T10:49:36.823Z", "postProcessHash": "508beffd572e930e94a90a8a6d427c2b566f17e651216ec94511af0eae027603" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.116Z", + "updatedAt": "2026-02-24T10:49:36.856Z", "postProcessHash": "1c22d996f262d93e36eac20a7ff9abd13d01fad851a47eed019e99753f447e7b" } } @@ -21513,19 +21765,19 @@ }, "692245730cd14a078f382bbe4532b0fe3f0430629f17ff8a986948621fa46af1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.104Z", + "updatedAt": "2026-02-24T10:49:36.845Z", "postProcessHash": "9e06eaf4a4cd851f43820730090c72aa98d42e6ec60e293094bfacc20c6c3358" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.107Z", + "updatedAt": "2026-02-24T10:49:36.849Z", "postProcessHash": "011d9ff0081c463ef0f295e5419d22f0724db8ed0e2b94d4efe61dc0d0b3c962" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.109Z", + "updatedAt": "2026-02-24T10:49:36.850Z", "postProcessHash": "8446b2ac16a2e6c91854a8b382352199f14d4da6fd6a08e76e7fdc2704b26ae9" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.122Z", + "updatedAt": "2026-02-24T10:49:36.863Z", "postProcessHash": "1af5bf0f69fbe43dfe76a52956549cd6fe63c3195d5a424e7f3e2271bb778fc4" } } @@ -21547,19 +21799,19 @@ }, "99432917b849752c4b604eed38653850f31445949248176062b944cd7bd4e588": { "jp": { - "updatedAt": "2026-02-19T02:24:13.020Z", + "updatedAt": "2026-02-24T10:49:36.752Z", "postProcessHash": "8dd79ee9437413d7a62a725390ff587621399f11f655e4c20958aa9b5b968043" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.020Z", + "updatedAt": "2026-02-24T10:49:36.752Z", "postProcessHash": "b6337a70858c66d597d8f38b8b184f4b488731dab9c20d752b325ce00c11a815" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.021Z", + "updatedAt": "2026-02-24T10:49:36.752Z", "postProcessHash": "3f3855218f8f2ee70c49c4d18b88a6e90aa29a08a1b49dfa1e4e41d7b41383ef" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.130Z", + "updatedAt": "2026-02-24T10:49:36.870Z", "postProcessHash": "5440706b6b80e5fae8b8fb5a91c104c9c835ff33d0ec4b0b3b02c544d12dd674" } } @@ -21606,19 +21858,19 @@ }, "7a0725a8d07fe74fe9bd4b9ae5e8929be53518dd13ed88f1553a0a8d82bb093f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.106Z", + "updatedAt": "2026-02-24T10:49:36.848Z", "postProcessHash": "4d780769a44ba8db7cde85ef0512becc963d40b201fde89c5711d2630366c0ef" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.110Z", + "updatedAt": "2026-02-24T10:49:36.852Z", "postProcessHash": "c1ebbbd5b51e560066e22e8b1f0994a13f0c62e441e283d1bbb3d366de8f7f09" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.112Z", + "updatedAt": "2026-02-24T10:49:36.853Z", "postProcessHash": "b2344ed98b68fdc9d994e2a14cd0001b4a5d6c07dc5a843126e1539282348426" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.124Z", + "updatedAt": "2026-02-24T10:49:36.865Z", "postProcessHash": "abdab9e44c98da62442fe825ffcc38003d64533618ed04af3fd1a5f85e385762" } } @@ -21654,19 +21906,19 @@ }, "ae48dcd73eeba58fc4a42d254e216c0e34f5bfec2474b7079c627eab0fbecf2e": { "ru": { - "updatedAt": "2026-02-19T02:24:13.111Z", + "updatedAt": "2026-02-24T10:49:36.852Z", "postProcessHash": "2bb7d893ee68113b8d6d91cae35cfed4a34903667ac7edfeabcc88a2e13ebe9c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.112Z", + "updatedAt": "2026-02-24T10:49:36.853Z", "postProcessHash": "12d8d9bdb74430bb143435c65cc92d6c45467e0221157744b99333178c005a4f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.114Z", + "updatedAt": "2026-02-24T10:49:36.855Z", "postProcessHash": "a57f3a9c4f1e086e62495bf361ae2dc45bf84acd7c8b752fbb6d45c1669961ef" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.125Z", + "updatedAt": "2026-02-24T10:49:36.866Z", "postProcessHash": "020ea31ef3149d220f7b351a4e8d7afbc30bf450c301f066096a9cdb90813600" } } @@ -21730,19 +21982,19 @@ }, "46c69b8849a91a9ba7db2ff5e00d29c866642581c7ca21ea5cebd155a67761ad": { "ru": { - "updatedAt": "2026-02-19T02:24:13.097Z", + "updatedAt": "2026-02-24T10:49:36.760Z", "postProcessHash": "c09f93820c17d31e003330b2a14ed5500a902b637b8625290ae6aa166fe23df3" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.100Z", + "updatedAt": "2026-02-24T10:49:36.797Z", "postProcessHash": "8a9e4ddd0d1d0efee912921bcec1459b57f9e3cb65f2b6df97ee5dfa475221dd" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.108Z", + "updatedAt": "2026-02-24T10:49:36.849Z", "postProcessHash": "a7faf14aa34ecc2db16cb28061d787989e42fc4700c45abb1787b7b5af33280a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.119Z", + "updatedAt": "2026-02-24T10:49:36.860Z", "postProcessHash": "dbfeb08198d2be492633f9b04ac2554286f7bc17729d489c617045ae8d461766" } } @@ -21764,19 +22016,19 @@ }, "9745a0089e57e2daf6cce47dc3a0ac8e215b5e2c122a0c3ba3d29662ad8c6272": { "ru": { - "updatedAt": "2026-02-19T02:24:13.018Z", + "updatedAt": "2026-02-24T10:49:36.744Z", "postProcessHash": "9d0ba21a20adf51ab372c08e8a2b2bad7a90ea38fd532ede2dd850b7690fe41e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.019Z", + "updatedAt": "2026-02-24T10:49:36.745Z", "postProcessHash": "40084dc4f9f034d7d8c72807cff09fffb1e95af814548987ae53777b94ee667c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.019Z", + "updatedAt": "2026-02-24T10:49:36.746Z", "postProcessHash": "66e5c1ea79f1a66b2a5ce37e6f4959154328fcbd4a0c3d462942e870f44d393f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.128Z", + "updatedAt": "2026-02-24T10:49:36.869Z", "postProcessHash": "4fe06af9313b88aef6d53db91fe9575d9c34636e68b6d9d478b2ffe0cd1f249f" } } @@ -21784,19 +22036,19 @@ "9606738dfb47e926dbb72401f97fb8dcdca15e8e7e4c7c8e0b1de1923f128ebd": { "f38bca2728a4ec18acf3801a37e29bd6ce1663c505004c92a4ef0fb8bcfab83d": { "jp": { - "updatedAt": "2026-02-19T02:24:13.012Z", + "updatedAt": "2026-02-24T10:49:36.742Z", "postProcessHash": "4b09186d1f8d9a5f23488c38fe7ea91bd3306e6ef6e45f6a3f762a1c3c016e12" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.007Z", + "updatedAt": "2026-02-24T10:49:36.738Z", "postProcessHash": "3a26cf8789bc4697dd50305855f2b4ae32495e75e401de44158a6cb679a644cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.013Z", + "updatedAt": "2026-02-24T10:49:36.743Z", "postProcessHash": "fec436520e380d231588ed9d132243eaff2e9dc6fdc1187402743648c67fc1dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.121Z", + "updatedAt": "2026-02-24T10:49:36.862Z", "postProcessHash": "6c9b934cdaf72f021d152a5cdeebe61557dec60726f1c06bf86253ff95366e0a" } } @@ -21818,19 +22070,19 @@ }, "929e0011f8fae08bc6fcfeb6f9d94521a22733234fb23773c1120f49d6f9cf76": { "zh": { - "updatedAt": "2026-02-19T02:24:13.089Z", + "updatedAt": "2026-02-24T10:49:36.827Z", "postProcessHash": "f6a579bf690a214dac16ee1b4f521023d0810fe18dae725799736d0f4ed7fa64" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.092Z", + "updatedAt": "2026-02-24T10:49:36.831Z", "postProcessHash": "062c75f21bf892ae0217073ae2fe22650de3f5fe6e871024d161e6ebf9e66dfb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.092Z", + "updatedAt": "2026-02-24T10:49:36.832Z", "postProcessHash": "29fcd715bb4aa5bf575cc3b9c3c0257662769a44256559abb3e6579431f39468" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.115Z", + "updatedAt": "2026-02-24T10:49:36.856Z", "postProcessHash": "d8327d0011e47de258c17faf57360e474f82025c3d6934db1095f707791d13da" } } @@ -21852,19 +22104,19 @@ }, "efa8c5e160b5d841912440154cbc1e87cef40d850b22c80b2e55b2590db0cb66": { "zh": { - "updatedAt": "2026-02-19T02:24:13.029Z", + "updatedAt": "2026-02-24T10:49:36.758Z", "postProcessHash": "24ae60eb9307e1d9a9c22e8fdf487bd4b71d8f58be214790db3cb02d5d3e755b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.070Z", + "updatedAt": "2026-02-24T10:49:36.798Z", "postProcessHash": "2c422ffc309680ae1f828be60a7a93d68e1d952c082ac26160293500d493b3af" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.104Z", + "updatedAt": "2026-02-24T10:49:36.844Z", "postProcessHash": "c6582363212d96d3ea94ac5c03d7dbed233fc96f793dd50648339e582e4b3f74" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.126Z", + "updatedAt": "2026-02-24T10:49:36.867Z", "postProcessHash": "f8003f000879a836a4290e7b52a36073bdb10d5f7a9af453077b1cd4b44f4b69" } } @@ -21886,19 +22138,19 @@ }, "d1e8469bbd3b7aa72a24389190b3620545043b9d48c4e72357d3fe7094c10c43": { "zh": { - "updatedAt": "2026-02-19T02:24:13.016Z", + "updatedAt": "2026-02-24T10:49:36.820Z", "postProcessHash": "2efd9c73fa88b6bb0d17046631069b5f37a3c1f54e05521a688602ca7decedac" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.088Z", + "updatedAt": "2026-02-24T10:49:36.826Z", "postProcessHash": "552dcc0feda989f2c4d5901bf4375cb95e8d5d8f410a4d853e1bb33c9981a5ba" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.094Z", + "updatedAt": "2026-02-24T10:49:36.833Z", "postProcessHash": "f4b0b30b0c4fff87d9ee78ef096f49ef8cb2ef8f17deaf5551daa72414713da9" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.119Z", + "updatedAt": "2026-02-24T10:49:36.861Z", "postProcessHash": "902e0889b78b5e807883a150b26c5c27a74bdaabe7a6bd9162695351b3a9630f" } } @@ -21934,19 +22186,19 @@ }, "755512757dfdb30cfc167d18934bbddc9372360e569d2e2ad9453826ce61d93c": { "zh": { - "updatedAt": "2026-02-19T02:24:13.023Z", + "updatedAt": "2026-02-24T10:49:36.754Z", "postProcessHash": "ee82123b5d1b44119f557c858f39eb83a1890ceb7d9f99c32bce4ebb7f241a64" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.027Z", + "updatedAt": "2026-02-24T10:49:36.757Z", "postProcessHash": "12831c67825dc08f6f6978ae5071767c9c0af7ca7a5719a069788d9a64000343" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.027Z", + "updatedAt": "2026-02-24T10:49:36.758Z", "postProcessHash": "14e9a69ae8496068f7da8ea0adb438b992b7161bcad9a115bf822948af28cfaa" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.122Z", + "updatedAt": "2026-02-24T10:49:36.864Z", "postProcessHash": "e4af105b22d6ca049da1f3931e59599aa880313385dd6b6b9da7a77da63f1a7d" } } @@ -21968,19 +22220,19 @@ }, "884faf2fde58882759e8e3bcfafb9d863774b778663ae8dbcff53b61449d256e": { "zh": { - "updatedAt": "2026-02-19T02:24:13.091Z", + "updatedAt": "2026-02-24T10:49:36.829Z", "postProcessHash": "4d911e42379bb0ae96204bc0f8047fbf7f772de4e148a29614a90401a5edb6a6" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.093Z", + "updatedAt": "2026-02-24T10:49:36.833Z", "postProcessHash": "471da86fc00a52c4087e05387e149ca2f4835325d946e2a16aa7fabfc75ec27f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.094Z", + "updatedAt": "2026-02-24T10:49:36.834Z", "postProcessHash": "8a52977474586c0dd204c1b51cda0be97dfa3ffd768e6edcc98a9fee727bc861" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.128Z", + "updatedAt": "2026-02-24T10:49:36.868Z", "postProcessHash": "cc9d4f86b7279b6d3a67cd526be1129bb006f9bf45c83260c64686db8baee7db" } } @@ -22016,19 +22268,19 @@ }, "f6194a099cb0ce75c669202840fbfef319281072201314e6719eb089be47f549": { "jp": { - "updatedAt": "2026-02-19T02:24:13.070Z", + "updatedAt": "2026-02-24T10:49:36.797Z", "postProcessHash": "12fa264a8c118aa38a64e5bc375a4317241ea2ef203600f0ca7ce24827de3452" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.102Z", + "updatedAt": "2026-02-24T10:49:36.799Z", "postProcessHash": "07823cd38534884fb0254fbf34e94e684446904e8b90a0a9a1986f3e5bac29cb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.103Z", + "updatedAt": "2026-02-24T10:49:36.842Z", "postProcessHash": "3b479a2e5bed35b08a06997f4c7a1080ac99e10a3d79bbd1c4314c3912ce1052" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.124Z", + "updatedAt": "2026-02-24T10:49:36.865Z", "postProcessHash": "4fdf8002f391717a3050d74ac62f054552bb7788c42f4632c61150b11dc287ca" } } @@ -22050,19 +22302,19 @@ }, "df6c1f15333b1e34eb779526b4c65e834c26ea2001f16ac9c053046acbc9b161": { "jp": { - "updatedAt": "2026-02-19T02:24:13.017Z", + "updatedAt": "2026-02-24T10:49:36.822Z", "postProcessHash": "ce808c278a1692102617b2a6ff79a141807aded33e0f5aedb67c52417d490262" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.090Z", + "updatedAt": "2026-02-24T10:49:36.828Z", "postProcessHash": "5a706cc3f3571be7907e2541e8f59f4fbc0930e0ad693edf98bd6ed59f81095e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.092Z", + "updatedAt": "2026-02-24T10:49:36.830Z", "postProcessHash": "34c3f50ad09476a6e8ead86e5fc5d538cc1501b438d201675a206e165ce23511" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.123Z", + "updatedAt": "2026-02-24T10:49:36.864Z", "postProcessHash": "70f30c06705d6199b37e6eb28a6d3afd9db69ccc2a69512c756f78d1b14f031c" } } @@ -22098,19 +22350,19 @@ }, "1ac8e17640392095b652dc3dcbc604e5929eb6685424c171590899a88df81eb9": { "zh": { - "updatedAt": "2026-02-19T02:24:13.022Z", + "updatedAt": "2026-02-24T10:49:36.753Z", "postProcessHash": "ece64e8d9de7ff8398124d2fd8e142f9cb95a70e3c34b7455dc927a09ace8476" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.031Z", + "updatedAt": "2026-02-24T10:49:36.760Z", "postProcessHash": "dac899fc0043ad9e5a2254263b36236d8b1bfadb0059d9c08fe04961810bcc5e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.069Z", + "updatedAt": "2026-02-24T10:49:36.796Z", "postProcessHash": "379829fa1506a90b11699f7b8ed86955a2caf2ba0ccbad028fd2b6e1acb6be51" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.132Z", + "updatedAt": "2026-02-24T10:49:36.871Z", "postProcessHash": "eb34f3d8fd89f3da0af97bf778ad1368986cc615f5b2368f4f8201724f7dfc1d" } } @@ -22146,19 +22398,19 @@ }, "9b88c2331afab826d16c36ec26629418d36b18afd2ecaac79526fc0b8968dc1a": { "zh": { - "updatedAt": "2026-02-19T02:24:13.183Z", + "updatedAt": "2026-02-24T10:49:36.917Z", "postProcessHash": "190c70bd56763cece2f74842b55b1a3bbeab60cafd77d1fd0903296af5687ca3" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.185Z", + "updatedAt": "2026-02-24T10:49:36.932Z", "postProcessHash": "6c319cef5e0d70db924aac3f559b047ce6a30cdb2cabcde84849c6388d8ff568" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.241Z", + "updatedAt": "2026-02-24T10:49:36.933Z", "postProcessHash": "9b585985f2c9ed155463e4afce64612abbcc034f9f6ef96af8282af85893725a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.249Z", + "updatedAt": "2026-02-24T10:49:36.944Z", "postProcessHash": "1ea5e6feba7b7b434536954f6086989055a091565e2125ff4c0220b5dca74a22" } } @@ -22180,19 +22432,19 @@ }, "3f1190541935e693744714fd5d91af32a2fa00e8760690a09f5bc2299de57a15": { "ru": { - "updatedAt": "2026-02-19T02:24:13.087Z", + "updatedAt": "2026-02-24T10:49:36.825Z", "postProcessHash": "8cb6321d524ad0d8011da034f3015a99c0bc136e76b3c13ddbd08e13ae3b6e37" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.089Z", + "updatedAt": "2026-02-24T10:49:36.827Z", "postProcessHash": "c0ebf9152728bf5ef9d73d6b36e02d6d3655ffee551626d7e34bfc240a2046e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.140Z", + "updatedAt": "2026-02-24T10:49:36.880Z", "postProcessHash": "69ed375dafb61b6fed02e087c542a216894f160d7777d859a8d9f2c5e3b3d609" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.188Z", + "updatedAt": "2026-02-24T10:49:36.943Z", "postProcessHash": "e4d18a61e969e5ba832a0176403518a6702d2982e0d815e0a200ed0d6ec524b2" } } @@ -22244,19 +22496,19 @@ }, "db8666c73ee58e79b2ba947822efe9468a33e14d61da362c0cdfc9230f36f58a": { "zh": { - "updatedAt": "2026-02-19T02:24:13.159Z", + "updatedAt": "2026-02-24T10:49:36.889Z", "postProcessHash": "9d5d819202fd5a7aed91c24a713ec0fa181480a94470c203c361c9f56b1e5945" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.172Z", + "updatedAt": "2026-02-24T10:49:36.906Z", "postProcessHash": "473a10972eb0eee1707abcb64504164324da3e679f50cc1743b0264cec954a8b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.174Z", + "updatedAt": "2026-02-24T10:49:36.907Z", "postProcessHash": "8f40f16d3fc72a7dc709333b1ad04dd65b94b754dad0c990e2a45ac37c8c9ae3" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.257Z", + "updatedAt": "2026-02-24T10:49:36.946Z", "postProcessHash": "b0706de362891b22304ba2ce71e8bb3cc47396216cb26d249be0beeb5855ecad" } } @@ -22308,19 +22560,19 @@ }, "ba09d2703f7055ed1b6ac6cb7d9befddb39c20437a01d994a7e9e1c7931c8a81": { "jp": { - "updatedAt": "2026-02-19T02:24:13.147Z", + "updatedAt": "2026-02-24T10:49:36.887Z", "postProcessHash": "b563d7e65c11d53a9f7260d28eb5ca3bde1aa5790e44603e58d38c74fabe28e8" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.161Z", + "updatedAt": "2026-02-24T10:49:36.892Z", "postProcessHash": "fba68c24d5eec2ed74d24bfb0a436981fcb451f8e836068a05f684b6b242dd23" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.171Z", + "updatedAt": "2026-02-24T10:49:36.903Z", "postProcessHash": "c7ceefb4c10150bf1bc4d7fe5350be602680cede2f7aa2fc6b6c90f12ab36d7f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.190Z", + "updatedAt": "2026-02-24T10:49:36.947Z", "postProcessHash": "49abea43ee09179efab1934e5064b3d633fb03bad894ae3a3c4ccab4d860be6e" } } @@ -22342,19 +22594,19 @@ }, "225cd303a6e71377fef7c7a2be84240abcec213791ebd45714a4f3e7ddc3aed5": { "ru": { - "updatedAt": "2026-02-19T02:24:13.139Z", + "updatedAt": "2026-02-24T10:49:36.830Z", "postProcessHash": "b0355ac3fec1fc07d27a62d28054cbdcca4d1f57123a4eca020854700e01b566" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.141Z", + "updatedAt": "2026-02-24T10:49:36.830Z", "postProcessHash": "dd12cbd74539b96a57368f3132a53ce1cab9f47c23eaf38c4737ed7e1e82a21f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.142Z", + "updatedAt": "2026-02-24T10:49:36.831Z", "postProcessHash": "374ea964cbfd86d7bb59343b457f832dded11255f86610b98c551c3da468095c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.192Z", + "updatedAt": "2026-02-24T10:49:36.862Z", "postProcessHash": "b2a88510f10a4c9ad0ff10597dd4b3ca9c39051999186f097b4b333bf34607ae" } } @@ -22390,19 +22642,19 @@ }, "142f200514710dd43eba7354ffdf7eee1fbc4233ac666f95f9d041200d38fa48": { "jp": { - "updatedAt": "2026-02-19T02:24:13.145Z", + "updatedAt": "2026-02-24T10:49:36.886Z", "postProcessHash": "50d35e634eb346ed9e22d7e97db650ee94e96858068991614b1861d747e658d3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.179Z", + "updatedAt": "2026-02-24T10:49:36.911Z", "postProcessHash": "49a064d466dc2f35ceb8e774396ad6a11814ae067a1439446b2268f448d0c89b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.186Z", + "updatedAt": "2026-02-24T10:49:36.933Z", "postProcessHash": "479e988597955a1ccc174ba005265a5647e8f29ca882f97338c7918496992e7a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.190Z", + "updatedAt": "2026-02-24T10:49:36.948Z", "postProcessHash": "ca10dd98ddebc8d79553f493fc513573f3f8b593fc3d2662c1d35204e20cbb51" } } @@ -22424,19 +22676,19 @@ }, "13187c2dcf52b5a7d4e2b3f1536faf5a4ef861abd6cc3448bf6bede588d7785e": { "jp": { - "updatedAt": "2026-02-19T02:24:13.086Z", + "updatedAt": "2026-02-24T10:49:36.824Z", "postProcessHash": "e73ed42ebdbf9a55cf1b8631d748b41f7d35a9f229238037d0a917ad9ee2ae30" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.087Z", + "updatedAt": "2026-02-24T10:49:36.825Z", "postProcessHash": "46f34637f10dbd3fb9bdb4eb884d5e075f2df401f077580e795738a3d9f6c2c8" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.144Z", + "updatedAt": "2026-02-24T10:49:36.884Z", "postProcessHash": "8a21ab4824b147c098d0a4e6a606673130089e9f2cc8eafe2584e906cf436cdf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.188Z", + "updatedAt": "2026-02-24T10:49:36.944Z", "postProcessHash": "52d4a9f1729d6ee9aa14adaf3c12c193657036ca91006926a7e3dca3c8a028b9" } } @@ -22474,19 +22726,19 @@ }, "dd533cc15ae9545ae489e77ff16bf15bc1f4f5ae98b0a9ab0fa6063f0cc6fedf": { "zh": { - "updatedAt": "2026-02-19T02:24:13.084Z", + "updatedAt": "2026-02-24T10:49:36.822Z", "postProcessHash": "f7283404aa7e29a7fec813845c817ad20eca3549bcaa63068fe0d26c3af06875" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.090Z", + "updatedAt": "2026-02-24T10:49:36.828Z", "postProcessHash": "8ed04a298bd649a570122a284aa5f8ac19f2db9a336e6c2b924ad313744c42fb" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.141Z", + "updatedAt": "2026-02-24T10:49:36.882Z", "postProcessHash": "0702f57278bad397fe08359d9d5c69408d971497874d86c33995350d3b9c07c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.187Z", + "updatedAt": "2026-02-24T10:49:36.942Z", "postProcessHash": "1df24302b8c69222b13edc0db84e5ad9f7f1384c55476a61e7cd9cb6f719281a" } } @@ -22538,19 +22790,19 @@ }, "61fd09f3f2c98cbdfe73f2a27300c126db4fa06388d65f5b48c6361f7038a9a2": { "ru": { - "updatedAt": "2026-02-19T02:24:13.166Z", + "updatedAt": "2026-02-24T10:49:36.897Z", "postProcessHash": "d459b2a3d4affa294833ba65ac3a6b1fcc91827c278b44d6814ddf390d0c9e4b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.168Z", + "updatedAt": "2026-02-24T10:49:36.899Z", "postProcessHash": "da1252cb5f96a6e0bb37c519fecfffa1146cf01b85ea99169f6d3748d6f01c15" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.179Z", + "updatedAt": "2026-02-24T10:49:36.912Z", "postProcessHash": "24b76817c0db31a31326f7d92b9d8e85e0fdc307f14c97eea94c80417cc0a3fb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.187Z", + "updatedAt": "2026-02-24T10:49:36.934Z", "postProcessHash": "ed8824946361ca37e1fc40446d73ccfaca2fd0ebb511fc454f1aa58130db137b" } } @@ -22572,19 +22824,19 @@ }, "7c09626c32cee58fc70a3b5446c26bd7af473e4627d7dffe05dfe7280c3449b1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.083Z", + "updatedAt": "2026-02-24T10:49:36.821Z", "postProcessHash": "b7ceb2b05ea2b1af9f0326bf6b6ec28c9b48a49bf265b36c4514c5155728e401" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.139Z", + "updatedAt": "2026-02-24T10:49:36.879Z", "postProcessHash": "15f8d8a9244047bcedc6d7cc03c5f6c3ea3a024f16e2ed7a90947d6556633cdb" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.140Z", + "updatedAt": "2026-02-24T10:49:36.881Z", "postProcessHash": "f6a4157b523bf7a8335463c6460c35d1943046c9f9d221378698185dca93b4ee" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.192Z", + "updatedAt": "2026-02-24T10:49:36.950Z", "postProcessHash": "b8c5c793676cf1bd577307e9538b62b6d2f985ac249f0d91a76f74d486ef8e5a" } } @@ -22620,19 +22872,19 @@ }, "f00533cb88cff6b7438034f33001124d76eb1052f5d486ec1e56145360e98ce1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.146Z", + "updatedAt": "2026-02-24T10:49:36.887Z", "postProcessHash": "bb87567208628d48c7132ee55fa1cce38ce087d6cd3698bd91782a179ac24dca" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.177Z", + "updatedAt": "2026-02-24T10:49:36.910Z", "postProcessHash": "4b4e421f7c9630c1906e6f337ade971578cd3558cf3aa8f2bf7ff5d2c9a1f3d5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.178Z", + "updatedAt": "2026-02-24T10:49:36.911Z", "postProcessHash": "5c2d196d344077b9f41442412f35b0e626ca003dc2072fa2249dc79befb06158" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.189Z", + "updatedAt": "2026-02-24T10:49:36.945Z", "postProcessHash": "952008fe6ca10d52927ed7b1c817b3091f2aa0da1763b0e5f74383accf19f569" } } @@ -22682,19 +22934,19 @@ }, "f6bf2ca80afc387230ca0cffc838d55ad25257b8e452b61c88c091f0def7303f": { "jp": { - "updatedAt": "2026-02-19T02:24:13.164Z", + "updatedAt": "2026-02-24T10:49:36.895Z", "postProcessHash": "b16ac1e15548c8731fd4bcc4e79b186ef436bdd5c1bb612f7b56703824fe87c7" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.176Z", + "updatedAt": "2026-02-24T10:49:36.909Z", "postProcessHash": "7866850e22b1e6d2cf1321ec62d3e473ede8d365c8b9f9394d0070b980c631d3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.184Z", + "updatedAt": "2026-02-24T10:49:36.931Z", "postProcessHash": "55e4a610463a719bc7557dbb2aa4c523ea8f36f5ce8113dddf2d43a5d0b04e11" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.193Z", + "updatedAt": "2026-02-24T10:49:36.952Z", "postProcessHash": "257604f5e6039dba964c4ad23925f9fde1add298fbbdb61ed689230cb395291e" } } @@ -22758,19 +23010,19 @@ }, "d3a6be872d9fa28513428cb304a22c8a0ff68b393bf63f2089868eaf8eb1a146": { "zh": { - "updatedAt": "2026-02-19T02:24:13.147Z", + "updatedAt": "2026-02-24T10:49:36.888Z", "postProcessHash": "0d53369f030be59e07e332d33f74b81d648a4031365c3d242f06d7f4859ca0d3" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.148Z", + "updatedAt": "2026-02-24T10:49:36.888Z", "postProcessHash": "19423cebd1a590ae02a7198f44a8998bf42dc460f06f9892f0e26e7670d0e085" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.172Z", + "updatedAt": "2026-02-24T10:49:36.905Z", "postProcessHash": "ad99ee4ff7869d0739631e863ea0090c8a85ffb4e72930a9ed94eeb185dca3ee" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.191Z", + "updatedAt": "2026-02-24T10:49:36.949Z", "postProcessHash": "ff823297596fa5831ff5096d344bfef27a540e222bb91028b3c381f3877345b1" } } @@ -22834,19 +23086,19 @@ }, "c8ae53b33ca30907e03d025775e1579def89c7cc17128ee059240464960b3d4a": { "jp": { - "updatedAt": "2026-02-19T02:24:13.159Z", + "updatedAt": "2026-02-24T10:49:36.890Z", "postProcessHash": "70d75aa44d4a7f8ec93918ea99712d9aba879b133bcec4ea25d1e9fdce6ac66e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.163Z", + "updatedAt": "2026-02-24T10:49:36.895Z", "postProcessHash": "ed897f3a19d43ed9b1581dd99ca08f563db093cce5fe67fe51f46b9b621d5ed6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.169Z", + "updatedAt": "2026-02-24T10:49:36.901Z", "postProcessHash": "1fa017127ed750fe09534041cc2f0882694eb5e200d55a885dae3e9e7a92e95a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.194Z", + "updatedAt": "2026-02-24T10:49:36.954Z", "postProcessHash": "629e6db4c126fd40a4d28552309a1ab7d741343778069bb0d208e164ff9314fc" } } @@ -22868,19 +23120,19 @@ }, "eef1289a5ed3b8e219e997d6c78992ecb88f8ad6b9b4263838bec2d3b56e8e96": { "jp": { - "updatedAt": "2026-02-19T02:24:13.086Z", + "updatedAt": "2026-02-24T10:49:36.824Z", "postProcessHash": "9aa7f959f8b0187e72dfe81a2e7f5e7de8d65d07e9c048906327a4235f4a3f65" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.137Z", + "updatedAt": "2026-02-24T10:49:36.878Z", "postProcessHash": "a3189dadc334dbbd20dd5136fbd5d99bf43ff9a80f15249deddab086f563daca" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.138Z", + "updatedAt": "2026-02-24T10:49:36.879Z", "postProcessHash": "a2d1933fb5d0fb124a3be6a3b3004e9c00b9d163e9f6140dfeb65673e34294ef" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.191Z", + "updatedAt": "2026-02-24T10:49:36.949Z", "postProcessHash": "d1d4f3ce608aadc0724eb048ba48fa157823b1cd24a663caf64aa8b9078d2137" } } @@ -22902,19 +23154,19 @@ }, "0e204c48d4b35a55f34a3ec00748090c42177a2c2ac4b5243da18bc6aca48d75": { "zh": { - "updatedAt": "2026-02-19T02:24:13.138Z", + "updatedAt": "2026-02-24T10:49:36.879Z", "postProcessHash": "3743b3fa25af9e745000d0a098b3902f04560a861fc7fabb58657b63bcc29ee8" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.143Z", + "updatedAt": "2026-02-24T10:49:36.883Z", "postProcessHash": "cb69fdf01a3919c63513b65c0ed71040d718e6526204cebf50e28efe7d966a91" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.144Z", + "updatedAt": "2026-02-24T10:49:36.885Z", "postProcessHash": "7152d09128f915d894541fcc5bca7096ad01a52343b88533c82333aab4636958" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.193Z", + "updatedAt": "2026-02-24T10:49:36.953Z", "postProcessHash": "ef0a6aae9ac08e1487dc0be88e093a1ada5859517f48e5fae9f34353215b3320" } } @@ -22950,19 +23202,19 @@ }, "fcee3c19d9bd2c77c05ed53f96f1bb3d2b68b36be620963d72808fb20b4e25f2": { "ru": { - "updatedAt": "2026-02-19T02:24:13.162Z", + "updatedAt": "2026-02-24T10:49:36.839Z", "postProcessHash": "2de6c29ac1bbb47e92b55c4507c25e1ff9f0fecb4039a9aa4122df845d56355c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.166Z", + "updatedAt": "2026-02-24T10:49:36.840Z", "postProcessHash": "786ebcae2e72f9c6f6b2a74bb19625d64e9f5e23a77252ad0149846d466f9b29" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.174Z", + "updatedAt": "2026-02-24T10:49:36.843Z", "postProcessHash": "dd63c176af6ef2ad8bbca1b5a4f8c2985d4a6f0bb12e48e37692a270d87b2892" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.186Z", + "updatedAt": "2026-02-24T10:49:36.857Z", "postProcessHash": "ae6617acd647f16fee926703077b32a1224c4746f1a516372066d09c24827242" } } @@ -23012,19 +23264,19 @@ }, "9ffaeb57db8a83716c52d32d638279807fed54e01a3fa26cb1e8a1048bfd3814": { "zh": { - "updatedAt": "2026-02-19T02:24:13.161Z", + "updatedAt": "2026-02-24T10:49:36.893Z", "postProcessHash": "cf85a252d0dc994cfdd71b9b8ac5a69465cb987ade17da12542cba6e4f16d7c4" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.182Z", + "updatedAt": "2026-02-24T10:49:36.914Z", "postProcessHash": "973ff6e9c8eb6a7f6da4ef1d8f09bbc5e6d1ab30521e4372c382021c569f4f8a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.241Z", + "updatedAt": "2026-02-24T10:49:37.025Z", "postProcessHash": "a36adc90ff37613a649e5a641b7c9baad4424b6b54c2ecf62fcee5dcecf7c543" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.259Z", + "updatedAt": "2026-02-24T10:49:37.045Z", "postProcessHash": "0b482f3d168bc73e12e7dc217b3a0decd3ee673eb9236c5f05e815be9b08fce2" } } @@ -23060,19 +23312,19 @@ }, "40665b9b7e5198d6c7bb3091eb89ac8f4654c41895ccf370cb4814e802fcfaa7": { "ru": { - "updatedAt": "2026-02-19T02:24:13.160Z", + "updatedAt": "2026-02-24T10:49:36.891Z", "postProcessHash": "f02f7accbcf8f3929c59b9eed0c4ebcff94411973f6dde43be735e38f8e6c79c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.173Z", + "updatedAt": "2026-02-24T10:49:36.907Z", "postProcessHash": "e297cbc89b43dbfe6c1b024dca5b61c070a6c310edc69efaff77503eb15dbf59" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.176Z", + "updatedAt": "2026-02-24T10:49:36.909Z", "postProcessHash": "8ed84e95917b87f1ecfe0e6ca8ac8d998aab1d51295b0b8dd8cfb66fe69a7bad" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.256Z", + "updatedAt": "2026-02-24T10:49:37.042Z", "postProcessHash": "a45d381bdd83cc66e7ce7359f3c5a884c3e91299df9da65ce475b8d3a1db99ef" } } @@ -23108,19 +23360,19 @@ }, "a2bebd114768f72fccdf022ea3787244e63a7dd0133de6b8cb16de38f19dd99e": { "jp": { - "updatedAt": "2026-02-19T02:24:13.163Z", + "updatedAt": "2026-02-24T10:49:36.894Z", "postProcessHash": "0961eafd5a9576bef7706999db9bb46e3ffe933c21643480790140b2b2c72f91" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.170Z", + "updatedAt": "2026-02-24T10:49:36.902Z", "postProcessHash": "5d77d41f8cf78d815ad862215bd49c44d086ba69ced7be136ab72ad37810f9ca" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.180Z", + "updatedAt": "2026-02-24T10:49:36.913Z", "postProcessHash": "c32a4ee7f3aa6c4db303b035c5ac85950442e5a51c82c2ad88521f28c471f800" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.254Z", + "updatedAt": "2026-02-24T10:49:37.040Z", "postProcessHash": "c97fd4feb88138e44159243e1d5d3fa7fc464b487ceb86a1cbe0a380c70747b4" } } @@ -23170,19 +23422,19 @@ }, "1bb3e99ab8d358412dc66b5c40b685f251e770a152d75c3bcedcb0bd6d138abf": { "zh": { - "updatedAt": "2026-02-19T02:24:13.229Z", + "updatedAt": "2026-02-24T10:49:37.021Z", "postProcessHash": "0e26fc508ba8b5138b5653820790d2ed2f52004fe634597d58de3a7b2d1621e2" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.225Z", + "updatedAt": "2026-02-24T10:49:37.016Z", "postProcessHash": "b624f6ae11e9f362b3b2ba43b18ee89ee389d9c61a580f062a4ba4b99e6e0a0a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.245Z", + "updatedAt": "2026-02-24T10:49:37.032Z", "postProcessHash": "c82d37e8c3cb53778aeebad573f832283a511c5d7f8a6f0071eca3f6a0218ea4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.264Z", + "updatedAt": "2026-02-24T10:49:37.050Z", "postProcessHash": "19dc19f7b3bc0afbecbbd627a020b49aa8bb45fa393fc863e1511648dee66464" } } @@ -23204,19 +23456,19 @@ }, "bff92699a7700d15dafc1bdb815acf87eb4d4bd908a842e335ab2f721500f802": { "ru": { - "updatedAt": "2026-02-19T02:24:13.084Z", + "updatedAt": "2026-02-24T10:49:36.874Z", "postProcessHash": "7bebe339d3e44d5f6b10af1ae0aa06ea8ac2b9692babee6104ab391867ac797b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.136Z", + "updatedAt": "2026-02-24T10:49:36.877Z", "postProcessHash": "ab532e8db793b3432753a57f5bd2a2a59c761156618913b652d1068d4c5f361f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.141Z", + "updatedAt": "2026-02-24T10:49:36.883Z", "postProcessHash": "1ecac8bd03b03d8148c6645b03766323491ac39b09f3b68e469d50d9bc0eec60" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.258Z", + "updatedAt": "2026-02-24T10:49:37.043Z", "postProcessHash": "16f22fface89331b88ad10c3192ba8ba166904629c14e08163220161dfabb239" } } @@ -23266,19 +23518,19 @@ }, "9f74b6754a5b47f8355f4f281f0e71f673e2c4ecd68bb8ef994edb2bb77fe2ac": { "jp": { - "updatedAt": "2026-02-19T02:24:13.148Z", + "updatedAt": "2026-02-24T10:49:36.889Z", "postProcessHash": "f1ac20dd1738ac460116bcbf5631c11012bd0dcdf4076ce4eb197e650539975d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.169Z", + "updatedAt": "2026-02-24T10:49:36.902Z", "postProcessHash": "d72c6f8065819b7baeea755d729ef6c9b75c057e4e1a81e87a1cb2b4421ad365" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.181Z", + "updatedAt": "2026-02-24T10:49:36.914Z", "postProcessHash": "0c11a9d60b6bbe9521a95bbe81c17af344bb4949a553d352405dc473e9fa2ed1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.245Z", + "updatedAt": "2026-02-24T10:49:37.032Z", "postProcessHash": "635f6d69a7d24fe9adfd38498b0848eef45218e8ca2c6a8ec47b5a08ada8cf0a" } } @@ -23300,19 +23552,19 @@ }, "693fd24e7559e8a261a509f868dae0c4552a652ec79d269c3eaf5bc8f66f93b3": { "jp": { - "updatedAt": "2026-02-19T02:24:13.082Z", + "updatedAt": "2026-02-24T10:49:36.874Z", "postProcessHash": "d80c61c8ff9f0273c5ba5e7d8fbdfdfccaff0811cb9e0a18eb608ab1b9fc3005" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.136Z", + "updatedAt": "2026-02-24T10:49:36.877Z", "postProcessHash": "9cd4e6c8fd47558719778fdcfe5b58d4f0a5d60c07a53aea7d0ae965fbc8b7cf" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.142Z", + "updatedAt": "2026-02-24T10:49:36.883Z", "postProcessHash": "65502d77fc41db6062b8190e63a5dfc9f8cffb3a8c60cfa0b506720227747f25" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.256Z", + "updatedAt": "2026-02-24T10:49:37.042Z", "postProcessHash": "81a0ee791f92a74f0d7d3df31292a36153234cf8e7e7b26307b22be3ded26115" } } @@ -23376,19 +23628,19 @@ }, "fbe26ec39989f325ef05bf690fc2bf064b76ba57ab64ccca1417fcd7c3731a23": { "ru": { - "updatedAt": "2026-02-19T02:24:13.167Z", + "updatedAt": "2026-02-24T10:49:36.898Z", "postProcessHash": "c840414650f7a3ae9c5b695db324126680a9e8708c4eef1e06fddd7dfb5ba306" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.182Z", + "updatedAt": "2026-02-24T10:49:36.915Z", "postProcessHash": "859e831a85295a81959707c611e1acf8475a6beb10d579158cf9453ba080b4b9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.239Z", + "updatedAt": "2026-02-24T10:49:37.023Z", "postProcessHash": "6692b70e97473903ba44e5a198140ffc9b0f7c7fc559ff5de9c33abe9bb43d41" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.266Z", + "updatedAt": "2026-02-24T10:49:37.054Z", "postProcessHash": "c960fbbabd7198a5829ad526414e8d1b2c06078c989c4454c18cc1b55fa816d9" } } @@ -23424,19 +23676,19 @@ }, "acfbe274e23ff8046fe2c182de33c356339b1d8f03799e68b3a62044f488b6c4": { "zh": { - "updatedAt": "2026-02-19T02:24:13.145Z", + "updatedAt": "2026-02-24T10:49:36.885Z", "postProcessHash": "f0451f611ec62c0d3876bc19e5e411644679a46b59443949b1d7d7556fa48a65" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.183Z", + "updatedAt": "2026-02-24T10:49:36.916Z", "postProcessHash": "768a72e24c6e277243d8e9d1b38f845ac4e8acee2e9ed7a831ba161e9cea7732" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.242Z", + "updatedAt": "2026-02-24T10:49:37.026Z", "postProcessHash": "4b68ee405a85012159a0e11d72a32ac4a8866759ce472805ae0a6f3c4d4d4a25" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.262Z", + "updatedAt": "2026-02-24T10:49:37.048Z", "postProcessHash": "3fef649f6ff8b37d25614f69130b25d8419db5573f92f04a3bc4baa93d43de6f" } } @@ -23458,19 +23710,19 @@ }, "e9400dac771c928372dccc5fb86333fc932edefe9d9f1531dcce9e92f293cfc9": { "ru": { - "updatedAt": "2026-02-19T02:24:13.135Z", + "updatedAt": "2026-02-24T10:49:36.876Z", "postProcessHash": "4009012477a1f8249e9ad26acab6dd49e00c25bc6c9eff6be9ef5673d98f8bd5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.137Z", + "updatedAt": "2026-02-24T10:49:36.878Z", "postProcessHash": "57eb36809ff6e8a32f80f8d328873ecabaff9f5d0e3208d5a0ff24c04dfcaddd" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.139Z", + "updatedAt": "2026-02-24T10:49:36.880Z", "postProcessHash": "2380a2b16ab78c6af03596bdd87b5bf492e390b6154bb2b32e906cddad52ce29" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.258Z", + "updatedAt": "2026-02-24T10:49:37.044Z", "postProcessHash": "d6635067019e8c85b54813982ceb24468c43a65140656b483a215b73882d470d" } } @@ -23478,19 +23730,19 @@ "7e0dc4543c81b33bb19b9b0222c533c95884214b5877d7ed6c08d6101f73935f": { "4d2ea53c6c8b773cda0b23778f9e67b35379e9de8b35e7412e470060aa209fbe": { "jp": { - "updatedAt": "2026-02-19T02:24:13.205Z", + "updatedAt": "2026-02-24T10:49:36.873Z", "postProcessHash": "3c71e9d7b4471624a63aec74bf538d610856fcf20f29f87e6454a8e5afa3afed" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.197Z", + "updatedAt": "2026-02-24T10:49:36.872Z", "postProcessHash": "a6f595cd0afc1ab0e66a448e07e416aefed71fe0cb6e844cfec0c2089fbe1c27" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.207Z", + "updatedAt": "2026-02-24T10:49:36.873Z", "postProcessHash": "3a600f83805df54e5c5c9bb2dfa5a33e44ad163eb479c543855e15afd94a5ecd" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.247Z", + "updatedAt": "2026-02-24T10:49:37.037Z", "postProcessHash": "905becba7c1e0c25b512c1ca9e1414e6f5732d81862242cbc90ca2e8dd77e631" } } @@ -23540,19 +23792,19 @@ }, "29d16bf5a43a138a33e0ab10521b1b886c4d5829b02bff683b402b9ca90590c9": { "zh": { - "updatedAt": "2026-02-19T02:24:13.171Z", + "updatedAt": "2026-02-24T10:49:36.905Z", "postProcessHash": "76af16be43b656639ad6de421f6c22817432bb0a39b6d40de9b36cc53797bd08" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.177Z", + "updatedAt": "2026-02-24T10:49:36.909Z", "postProcessHash": "8f429b01c043cd3bd5663529bbf7313ae5f15150dfd71c3b27db5e14f822dcaa" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.178Z", + "updatedAt": "2026-02-24T10:49:36.910Z", "postProcessHash": "c33e0d02f04fc73de009db54b78f7872e463c6c72f38863219347d532bfc4b06" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.260Z", + "updatedAt": "2026-02-24T10:49:37.047Z", "postProcessHash": "065ceef77c863343ac83a4ee152a4854baac2b705fff872f4d58d1356edf6158" } } @@ -23602,19 +23854,19 @@ }, "f6dfc850d39cf3244b854251963143b120aaba8f84d8b11a73bd058c39b24f3d": { "ru": { - "updatedAt": "2026-02-19T02:24:13.146Z", + "updatedAt": "2026-02-24T10:49:36.886Z", "postProcessHash": "084d3cfec20cf83e31841466b9e50be9979cf9718be011367cf760c83b93ed59" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.175Z", + "updatedAt": "2026-02-24T10:49:36.907Z", "postProcessHash": "4bf1def7a12c8c487642e1ac65c1ad1fd32aaeda23f69a1613a4db8423e0d367" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.175Z", + "updatedAt": "2026-02-24T10:49:36.908Z", "postProcessHash": "2d76c02aa400e686857006bf844a68ed97f775967e575bb4d3d5e8df47267ffa" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.246Z", + "updatedAt": "2026-02-24T10:49:37.034Z", "postProcessHash": "f9e0b65362c6a26f38378b8b8fe6bf8c01030afa2ad7db53474087fa25bca9a7" } } @@ -23636,19 +23888,19 @@ }, "80fb1867419d4f716754f5420165d65ccd7f03ac46b484fd1e777fc47bc7519c": { "ru": { - "updatedAt": "2026-02-19T02:24:13.226Z", + "updatedAt": "2026-02-24T10:49:37.017Z", "postProcessHash": "e2eb0d4e39cda1e83c73c2feda1848cbb732395481261216078fc32c6fd2a73b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.228Z", + "updatedAt": "2026-02-24T10:49:37.020Z", "postProcessHash": "4189b714a30a34897f40c5208b58909de875f3a5a3cb5ac2f2bdd672df5a390e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.244Z", + "updatedAt": "2026-02-24T10:49:37.029Z", "postProcessHash": "1a9ee4a2defc9ede61df8285b251589b9886d9dc63c208ee918b5b89e9513abd" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.257Z", + "updatedAt": "2026-02-24T10:49:37.043Z", "postProcessHash": "fea37bbed4c62618e918c1ef7b726a54f2cd25a835fc901680dbb6c5270135b2" } } @@ -23684,19 +23936,19 @@ }, "7bdbf93de1f3de5a8be2938a106e4b0c358fb9fefe889229473a0d52776e49dd": { "jp": { - "updatedAt": "2026-02-19T02:24:13.218Z", + "updatedAt": "2026-02-24T10:49:36.894Z", "postProcessHash": "b14c0f1aa89296e29a6e4a6eba191d94d760c5e9ab0a56c46a66f2eb179c1a6c" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.220Z", + "updatedAt": "2026-02-24T10:49:36.899Z", "postProcessHash": "b80e5584092a51443035a17a27e52f2a360ce0e7e862c0193e198af9fdc05d85" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.221Z", + "updatedAt": "2026-02-24T10:49:36.903Z", "postProcessHash": "c58e2b1872c2b883e9ad1606d5531e547b9533e2f7d843a593aba0741080c240" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.255Z", + "updatedAt": "2026-02-24T10:49:37.041Z", "postProcessHash": "11614c3c29a0d187710c21d589f1bfd0c921edffbfec08ef5c4738f2fb8312a8" } } @@ -23732,19 +23984,19 @@ }, "716085a4a0a83f97b32f93b12e8ae20471e2b121e097b01fee1901ecd3b9937e": { "ru": { - "updatedAt": "2026-02-19T02:24:13.160Z", + "updatedAt": "2026-02-24T10:49:36.891Z", "postProcessHash": "7debbbe6c1136cf15e398b85922e3f8e68e881293cfb63486e0b4c236b091654" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.166Z", + "updatedAt": "2026-02-24T10:49:36.897Z", "postProcessHash": "b59c3b083564c0376edbf9a8287d2a47ca99cea91a7491b4622c677808512619" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.184Z", + "updatedAt": "2026-02-24T10:49:37.019Z", "postProcessHash": "8f7941e3e825f7011582221267c66278d1ab0238b85b8c7aa57c90d3fa337da4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.264Z", + "updatedAt": "2026-02-24T10:49:37.049Z", "postProcessHash": "594485fc7f30687825d39a1d7432648e4d3b144ae96144bb9f94b6301ad2702c" } } @@ -23766,19 +24018,19 @@ }, "6debacf4d86048b06728e6d82fff0d129e916d8d11df6f8b40231a33e46fa2e1": { "ru": { - "updatedAt": "2026-02-19T02:24:13.084Z", + "updatedAt": "2026-02-24T10:49:36.875Z", "postProcessHash": "daffed72a83f6d2998a79f66e86320c7b6da87d0d5801f03b0699524bafc5113" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.085Z", + "updatedAt": "2026-02-24T10:49:36.876Z", "postProcessHash": "236855ca4c90dc0c9c4e9990bccbac2c845b7b7c749659e735cf466d818f3517" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.143Z", + "updatedAt": "2026-02-24T10:49:36.884Z", "postProcessHash": "ccb62b39577452e3f48473f1248fb3c38d350c815457371d6a3b1a77121e778e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.265Z", + "updatedAt": "2026-02-24T10:49:37.051Z", "postProcessHash": "972d2eeef50689932dabaf9aacf29e03de0431775974ec82ed8844758bacdc4f" } } @@ -23814,19 +24066,19 @@ }, "554de5cb153196dcc58720109b23ad25a6320337d5889366562e24e018979f7a": { "ru": { - "updatedAt": "2026-02-19T02:24:13.215Z", + "updatedAt": "2026-02-24T10:49:37.004Z", "postProcessHash": "c180b6d0dbec072762c2458d3362e25cd83bdb6c32106a43e8084075a5f6aac3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.222Z", + "updatedAt": "2026-02-24T10:49:37.010Z", "postProcessHash": "ab0da9e93d1e5993d57ce0d8ba6b60f20b0e09a131f2174c9e56e375e32f6027" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.227Z", + "updatedAt": "2026-02-24T10:49:37.017Z", "postProcessHash": "523047d803884a3b17739a66240459a4b480af445a5c4fc49aaba5be6ba5af6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.254Z", + "updatedAt": "2026-02-24T10:49:37.040Z", "postProcessHash": "bd5ac1ea4e105830f924df8a4f7b84731666fd7205ab3551338863e4e20ab687" } } @@ -23862,19 +24114,19 @@ }, "8e5e3a2f6c3a7061e3748bd209b7bc66b17146db191f70a5eecab79837585d8f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.227Z", + "updatedAt": "2026-02-24T10:49:37.018Z", "postProcessHash": "36f6ce9663e7a490564eb61176bbb0f9df5f8f08ebc7da861e27da192b2baede" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.238Z", + "updatedAt": "2026-02-24T10:49:37.023Z", "postProcessHash": "351009c29f7ec23cf3be02d6c463c56bf952151d9f478eb5a4b75a0a23084c3a" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.240Z", + "updatedAt": "2026-02-24T10:49:37.024Z", "postProcessHash": "199be47b81609d504fdb6b66b6234af9990b556322092676031ff4de3a9ef6a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.259Z", + "updatedAt": "2026-02-24T10:49:37.045Z", "postProcessHash": "d1e4593b5f4fa1ef2ab8f9cbc962460b86e1ea3d1464babba979670f5c97f640" } } @@ -23882,19 +24134,19 @@ "e5455b8e71ca0240dbae9ace48f312b2859517718c9b5597790152f5c5e4c55e": { "70f5e4c518ecfa04a597a86630bfa6b7c13859702dbefa84f43a08c628bb9c6e": { "jp": { - "updatedAt": "2026-02-19T02:24:13.205Z", + "updatedAt": "2026-02-24T10:49:36.984Z", "postProcessHash": "e32b9099e013f5ad71f4ed46538cef4d759c594a0d93d71325f1a1fc857e1633" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.196Z", + "updatedAt": "2026-02-24T10:49:36.957Z", "postProcessHash": "dc217e20ec45b102d1ae4a9be21aed8bdc2a984abdb00f083c2b8104544ac2e3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.209Z", + "updatedAt": "2026-02-24T10:49:36.993Z", "postProcessHash": "f5768f5f68aa6c1e66508fe43868ec5eba8d47f0b31c55e7d0c719c8e9d205a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.255Z", + "updatedAt": "2026-02-24T10:49:37.041Z", "postProcessHash": "5ffedec71eda9c813835e745a0bf637a0d0e0ae80afdf2176ad819b891613bdf" } } @@ -23916,19 +24168,19 @@ }, "4db70ce1a345af896aea068a33fc7f8f68a2e9ca70350a77c099fe872d7f7466": { "ru": { - "updatedAt": "2026-02-19T02:24:13.165Z", + "updatedAt": "2026-02-24T10:49:36.897Z", "postProcessHash": "2caf7fa4390899c52f5396f4c55bb7b3917ae43f417f11c3672d9fcf3d3d4a82" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.168Z", + "updatedAt": "2026-02-24T10:49:36.900Z", "postProcessHash": "3087963d2881388d7ebe579830d2dfbb6c15c8e050eb55224ef16e0cd86601f2" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.180Z", + "updatedAt": "2026-02-24T10:49:36.913Z", "postProcessHash": "c7588a020fd4eae6aa145452678c1ce106d99cf690d418698ebb734f844b12b8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.260Z", + "updatedAt": "2026-02-24T10:49:37.046Z", "postProcessHash": "0e74a1ce6b9fa936eb8bd915816b6a386e762cc857a75a411f56c0b0d1734ec9" } } @@ -23950,19 +24202,19 @@ }, "4573446db159f3901c5cfd3a44fd06147f02625bda179cf56b3f6a71cb8daa58": { "jp": { - "updatedAt": "2026-02-19T02:24:13.212Z", + "updatedAt": "2026-02-24T10:49:36.996Z", "postProcessHash": "a27ca4d37d84c4e0f43d11f9eac35121e118c803740a67599bd3096ce7e12434" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.288Z", + "updatedAt": "2026-02-24T10:49:37.078Z", "postProcessHash": "f47543e26758541615e0261df2c468def8c0066fd3b923a874cbaf4a047facb5" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.289Z", + "updatedAt": "2026-02-24T10:49:37.078Z", "postProcessHash": "9ad51b8f96e4ebbe3da22bd58e5aea39ed795fe877759db61b0230b86301b792" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.319Z", + "updatedAt": "2026-02-24T10:49:37.099Z", "postProcessHash": "94da9ceb065b02d432181ea36c2aa2899d054031c85cc0577af33d5ab6ff0d89" } } @@ -23995,19 +24247,19 @@ }, "cdf6ea738793b779b6b6df987417021680d092e3855df54b8430104230683bad": { "zh": { - "updatedAt": "2026-02-19T02:24:13.301Z", + "updatedAt": "2026-02-24T10:49:37.084Z", "postProcessHash": "80e28e74710cef823c41c7997b1a76812a83166493be688d31723327d95a54f6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.305Z", + "updatedAt": "2026-02-24T10:49:37.086Z", "postProcessHash": "5357a0a3b6c5fbfb1a7c00e5fb518db069949c7f7473166a2d2f56b02652bf1f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.313Z", + "updatedAt": "2026-02-24T10:49:37.091Z", "postProcessHash": "cb182b12fc69ee1f90f30a7c819ccd31f10da172dd2fde370ae1233072b3b442" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.320Z", + "updatedAt": "2026-02-24T10:49:37.101Z", "postProcessHash": "30fd6621e13fc3223990a17d48b367dcc8d215e36b247fdf47a7df1a57d7ebc1" } } @@ -24029,19 +24281,19 @@ }, "c793484c8cf6b350732a98a7af1c680ab5e2b98b76ef30221fa6dfa5000621b8": { "ru": { - "updatedAt": "2026-02-19T02:24:13.299Z", + "updatedAt": "2026-02-24T10:49:37.082Z", "postProcessHash": "80f0a30a2bee8213fe284168b2b5b1f43a8c88955e8b122858ff436000d1b4e6" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.300Z", + "updatedAt": "2026-02-24T10:49:37.083Z", "postProcessHash": "1f0850ed2c1af81e1ae171d117226eb54cfff98edb03cf69c2a78627ee0970bb" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.303Z", + "updatedAt": "2026-02-24T10:49:37.085Z", "postProcessHash": "32948538a196c8e2696c82538d36d87d726728efb409fda5363f44b2eb1d8775" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.324Z", + "updatedAt": "2026-02-24T10:49:37.107Z", "postProcessHash": "46574b3bcc97e17c68f88e14b9b34116f649c05f4d5be876ff4e5b825679043e" } } @@ -24063,19 +24315,19 @@ }, "abe3b7beb3acfc44b59555edcd368ef83596552d83cc915a4c5936d2effb75dd": { "zh": { - "updatedAt": "2026-02-19T02:24:13.304Z", + "updatedAt": "2026-02-24T10:49:37.086Z", "postProcessHash": "97ecb89a7733880f0d20ba70d8201ec15f809156365ad13fa6b5c1d8eb159064" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.305Z", + "updatedAt": "2026-02-24T10:49:37.087Z", "postProcessHash": "408e33078c38ba11180ad42724c0b68afde4600d6cbebeef05dfa30dd502f7b6" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.308Z", + "updatedAt": "2026-02-24T10:49:37.089Z", "postProcessHash": "4e6b3fcc46159e5f0fd2239835fa2a08c4f2e3371d1da38d4abcac4a5d10654a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.321Z", + "updatedAt": "2026-02-24T10:49:37.103Z", "postProcessHash": "e45c9602b58fe5e79776cf806fdadf67d95db160256f71d2059c78402a3680ca" } } @@ -24136,19 +24388,19 @@ }, "1a8da2718d7c3073691bcbfbf87f1f767c32bc9af315ca403c85ec635a34f5b6": { "ru": { - "updatedAt": "2026-02-19T02:24:13.216Z", + "updatedAt": "2026-02-24T10:49:37.005Z", "postProcessHash": "8206794dc4a6ab964c7a733a8f3ab352cfe71b405b7376efec4778fbf67d7419" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.217Z", + "updatedAt": "2026-02-24T10:49:37.007Z", "postProcessHash": "05fea7492f39ddad87825fa34efd02507a8e2e072a183f95b76e292d5a06b9ca" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.222Z", + "updatedAt": "2026-02-24T10:49:37.010Z", "postProcessHash": "dd46752547629384978a60e29c31def7b4a700303ee40e3d82577984f7a5ccc8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.248Z", + "updatedAt": "2026-02-24T10:49:37.039Z", "postProcessHash": "f6a6075216a6c753158e4480f8edd3232b749d803c096fed47f6bb6af5d5eb9b" } } @@ -24184,19 +24436,19 @@ }, "534efcfab03440471eff624fc96c77285fcfc5ec70a0d4be57c28a8037e034b1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.220Z", + "updatedAt": "2026-02-24T10:49:37.009Z", "postProcessHash": "36d3398734eceacab5256ddba47c0c8c8d928428b5e213a07b9ce70e6a7c3233" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.224Z", + "updatedAt": "2026-02-24T10:49:37.015Z", "postProcessHash": "2e8980d033dcaf6ac698596bc0bfa2eed3affc47b55bdd1af4447f06f099640d" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.243Z", + "updatedAt": "2026-02-24T10:49:37.028Z", "postProcessHash": "dd0b5dadda2547337f6b0698853a49a92ec689809cd9a876c5fc2e4b4aa2daca" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.267Z", + "updatedAt": "2026-02-24T10:49:37.055Z", "postProcessHash": "8550905f2b624c377290375def5d09f2b1a2f0818a3f40403a27debda86cffd1" } } @@ -24204,19 +24456,19 @@ "74dcbdc993f03875931c0ef548e27e0ecdd4c39c4c084edc6eaf3237a562817e": { "a9ecf8d346bd106208732038ad37c4f2b9861186a25aead51cc7057a47bf2cd5": { "jp": { - "updatedAt": "2026-02-19T02:24:13.279Z", + "updatedAt": "2026-02-24T10:49:37.070Z", "postProcessHash": "88dd6935c07161fe6c6a32df4fbb4a37ead022aeb7d0a4a35df254e16a79a97e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.278Z", + "updatedAt": "2026-02-24T10:49:37.070Z", "postProcessHash": "951fb6fdd51d6634fc7b845dcd83b8675ba583511495b1f7f1fe418f973feb7a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.285Z", + "updatedAt": "2026-02-24T10:49:37.075Z", "postProcessHash": "4a1ab285a46aac65d4c2d74b26f9db8c455a63085d683b2f6ae49d53d1f3bde0" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.315Z", + "updatedAt": "2026-02-24T10:49:37.092Z", "postProcessHash": "01f24670b876f6cffd4fc9b1e07f23c088f8d6f78d4fc6d821b45b8d97d933f4" } } @@ -24306,6 +24558,24 @@ "updatedAt": "2026-02-19T02:24:13.265Z", "postProcessHash": "f3324b32bc221297aa8f1b3a758abe6ad0ae6d8ac1cfd06a19b75bd2bb535deb" } + }, + "41978329bf996c03a0587cff4297eb7936680bc74f36f2e74698b5924c5be391": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.056Z", + "postProcessHash": "d064daf27d70e3baab5e2e7b39940f02e01e7860f6e9f34b22dea2772fe23e8c" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.057Z", + "postProcessHash": "9aef9f9a022a72a566fafab026d5156d80a59e5f7f6518a2f8eca735fe8aaea0" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.058Z", + "postProcessHash": "0834de0c81c3740aff7a1d12284dd6541989e25fdf839b6d9641b1ed2ac76492" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.060Z", + "postProcessHash": "dce94c67d4c4da9f0ebdeda966259599a3cc6db89652991adb6dd6220b3a90d9" + } } }, "7ecc3a4ce272f64e4527753ebb952d46d33a160afd6add3fc9a4a9b08d7fae1c": { @@ -24364,19 +24634,19 @@ }, "139d367e84d9a3c5115b0a140b400651b489acb9d4c2380ba2dfaecb18660f63": { "zh": { - "updatedAt": "2026-02-19T02:24:13.306Z", + "updatedAt": "2026-02-24T10:49:37.088Z", "postProcessHash": "c905631ca369b75eaa06b9693a96e4a2fda5b1ee5fc4f9c7fecd900e974f0efa" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.312Z", + "updatedAt": "2026-02-24T10:49:37.090Z", "postProcessHash": "7793324990416e994edcf207fc068edb0a7f5bd09b7989bb3a4025297158dc0e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.313Z", + "updatedAt": "2026-02-24T10:49:37.092Z", "postProcessHash": "4542dedbdfddb129262b6f4bdabb059e5cda01afe047844dd98c8b1b09c8a77d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.323Z", + "updatedAt": "2026-02-24T10:49:37.106Z", "postProcessHash": "dbccbd16129e08da5bdb36235b31bd329eb003447f5eeb75dbb04a15b2ef5a9d" } } @@ -24384,19 +24654,19 @@ "7ef33beb95b850b8400aad8ded966f28fd1eb3b61c5de7974983f2270d2b4f7c": { "501d9df3106342436670302f74dd2270b110ee24da435123cc0a1b51633a2284": { "zh": { - "updatedAt": "2026-02-19T02:24:13.202Z", + "updatedAt": "2026-02-24T10:49:37.063Z", "postProcessHash": "d216cbccdc52abb6cca724298ea9d97829ff7d045b4a6496883b13fc337131aa" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.275Z", + "updatedAt": "2026-02-24T10:49:37.067Z", "postProcessHash": "c582d0063fc30834a0cc7333f31a6f77d1657a9bacbb68e5f1dc9439ab176663" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.270Z", + "updatedAt": "2026-02-24T10:49:37.064Z", "postProcessHash": "320fe957994eccf5f39a20440a03a5ff08140a738a0823f1f01d2b12e0e21f59" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.377Z", + "updatedAt": "2026-02-24T10:49:37.098Z", "postProcessHash": "1f104c28471ff7008a186bfc34d3bbc60f92af8616272f93afe43a2f3c47809a" } } @@ -24404,19 +24674,19 @@ "81154bce9be97a0fc523001b189f4c093458747ff4e9b7f5cdecde64d9163d22": { "126e1bba0f10751cf028401cc1a0f3a944780e4a87fe9b63fb850c58b7d7510d": { "jp": { - "updatedAt": "2026-02-19T02:24:13.284Z", + "updatedAt": "2026-02-24T10:49:37.074Z", "postProcessHash": "4d1ee0e68ad882320566f788866ddb43d8d2c6a90cada59f863c68f5f4c39ed2" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.283Z", + "updatedAt": "2026-02-24T10:49:37.073Z", "postProcessHash": "adf4a543149b4a68f4da6ef51f83b2cbf3a9f72c241fd9fc71866683c8e0d4b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.198Z", + "updatedAt": "2026-02-24T10:49:37.062Z", "postProcessHash": "f3d8550a957e10e782cef5ff6d77f4afa4c11a3f21cd2ab00d7ad78cd561c4ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.374Z", + "updatedAt": "2026-02-24T10:49:37.097Z", "postProcessHash": "3adfe3961b3355cad2cbbbd8eb7d6f04175cd7cac8e7dc810ce0e2b5ca05fd4e" } } @@ -24424,19 +24694,19 @@ "88d029b112f5fca5e4ba3d06b8c35a6d55e5b557663ed600c6f1b98f59f8ae20": { "1393aaf825d4dab45a6acc1ac4db09d138970e7008f8c78dc434242141a483ba": { "jp": { - "updatedAt": "2026-02-19T02:24:13.206Z", + "updatedAt": "2026-02-24T10:49:36.986Z", "postProcessHash": "5f2f25c70ff6c1cb321f6ab1ea4e50c5c46bc3a7122c4920c78e11c215afbeeb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.204Z", + "updatedAt": "2026-02-24T10:49:36.982Z", "postProcessHash": "3ce240a3065d8534608feb056f0e366c144998be1cb7a24e1319c45700e6f760" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.206Z", + "updatedAt": "2026-02-24T10:49:36.988Z", "postProcessHash": "90492ee345c092f76694b1046778ac559e9800c2f516a8e7f473b2fec5e30abf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.316Z", + "updatedAt": "2026-02-24T10:49:37.094Z", "postProcessHash": "8fb523cd14519d323c01633ccda042b25f2cf15230973eec9e894279b4eae3e4" } } @@ -24525,19 +24795,19 @@ }, "e494564bd4ce9fe4ee64fb6ea6f15e88936692163b274f2b75051e2e58480696": { "zh": { - "updatedAt": "2026-02-19T02:24:13.216Z", + "updatedAt": "2026-02-24T10:49:37.005Z", "postProcessHash": "c1f4461df14230afe3baab7972eda30a0afd6dc24436442b1c26c6ede512d8b5" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.223Z", + "updatedAt": "2026-02-24T10:49:37.012Z", "postProcessHash": "174a25cf684db6c178d125a94bf710a9635ba1f68fbd4515795bf849c8a9dd7f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.242Z", + "updatedAt": "2026-02-24T10:49:37.025Z", "postProcessHash": "9c879a21a49e96724bcdd1f8fa3d0f0b2a675394191f3be01bf347b410eea506" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.261Z", + "updatedAt": "2026-02-24T10:49:37.048Z", "postProcessHash": "1aa2e8629c3c5ceb3b16167aa93b166b0aa85274af2e8bd85b79c759d56d4d30" } } @@ -24559,19 +24829,19 @@ }, "5406b22ec6bb8df893bb96e93152c5a4256fb9b5b7e9797d2c50b3c0e388c24e": { "zh": { - "updatedAt": "2026-02-19T02:24:13.295Z", + "updatedAt": "2026-02-24T10:49:37.081Z", "postProcessHash": "b4ebf7507d33494888d841b324cd81dc608436e0987a5c2e4c87d71a6864b90b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.296Z", + "updatedAt": "2026-02-24T10:49:37.081Z", "postProcessHash": "eab34adb43728ad1015428bda4628e8ab15367d4934eab7fc806e7b66da0d740" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.296Z", + "updatedAt": "2026-02-24T10:49:37.082Z", "postProcessHash": "ec698b9535038b853b4d23a0afb9c1bedc75c9afaba06e50b108e3ec6b736844" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.378Z", + "updatedAt": "2026-02-24T10:49:37.100Z", "postProcessHash": "247676ccdb47b1177be1eeb30a5086cc6fe7fea7054446412c58ee560d55513d" } } @@ -24579,19 +24849,19 @@ "9fdb709a96f96fb011d844ca13cda88bb361212284a327821501551223a4aa9c": { "064e508fcc9e28910cd94c862392084ac9bfbb28d99941ea8a6c7bf60aa11b79": { "jp": { - "updatedAt": "2026-02-19T02:24:13.200Z", + "updatedAt": "2026-02-24T10:49:36.962Z", "postProcessHash": "5f32367e63f5f8961937648726e1c3d3259b782206934c1003969d67a047b1a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.209Z", + "updatedAt": "2026-02-24T10:49:36.993Z", "postProcessHash": "b3416b2fad223585e0eb197d4896244bcbce621ddc5ff55cb9a7560da0495d62" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.208Z", + "updatedAt": "2026-02-24T10:49:36.990Z", "postProcessHash": "e26871055a47c9ff86d776e547a78c09c3360e260134ae145c413d00af2cacdf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.324Z", + "updatedAt": "2026-02-24T10:49:37.106Z", "postProcessHash": "5926f16a121762f88cb703ff2a7db862301327a35c0e2327e181680375a094cd" } } @@ -24613,19 +24883,19 @@ }, "9d5890a4e8d959fc5a29fa04f257a150cac9e3385c41923ac7aa0067fba3bc1f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.211Z", + "updatedAt": "2026-02-24T10:49:36.995Z", "postProcessHash": "c6fab8632e065d477469bffbf53e90f6694653e85b36e5546963fdaa5171064d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.213Z", + "updatedAt": "2026-02-24T10:49:36.998Z", "postProcessHash": "47714836a82bfcf3bb4fd524a2376dfe15ad1f4c65022c4665c6955bdac5c2c0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.215Z", + "updatedAt": "2026-02-24T10:49:37.000Z", "postProcessHash": "da1a481a59fb5d602cefe6b3743327edd06ccf0ca63f680e8586ece2ccccc4e6" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.261Z", + "updatedAt": "2026-02-24T10:49:37.047Z", "postProcessHash": "1bea5313a2e5ae074d58326a155acf7c3f9858450b72cfafa69612eec1247be6" } } @@ -24647,19 +24917,19 @@ }, "33ce5b17f421af88f82e5746f6f93fdce6d11e00909de736cecdfa5d1714a742": { "ru": { - "updatedAt": "2026-02-19T02:24:13.289Z", + "updatedAt": "2026-02-24T10:49:36.998Z", "postProcessHash": "377f71214e15f39089a11f1168abcf839f19ffc269dcc6328c87db1bc66f718b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.290Z", + "updatedAt": "2026-02-24T10:49:37.000Z", "postProcessHash": "8d7a7c0dac3732646b517282d490915a197f43bbb360a43f8bf16e41fa517885" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.291Z", + "updatedAt": "2026-02-24T10:49:37.001Z", "postProcessHash": "5064d295c744efce50e67843fe17b10695d3a485c2fbed8c36a95354709170da" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.327Z", + "updatedAt": "2026-02-24T10:49:37.056Z", "postProcessHash": "ccbf071ee32fbc04e560f162c0110ecb26f3e32f9e2815a66514e59619a7a43c" } } @@ -24695,19 +24965,19 @@ }, "4f1e5b6fb46f8b23a38bc5f37579d17ca4332f9665d3de78abc863f94b633882": { "zh": { - "updatedAt": "2026-02-19T02:24:13.302Z", + "updatedAt": "2026-02-24T10:49:37.084Z", "postProcessHash": "dee62a7c4ea033db2eba73f2f29c2ab0df2814fe1d21443943207785892a4059" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.309Z", + "updatedAt": "2026-02-24T10:49:37.089Z", "postProcessHash": "bc21681934b0ba733dc6d74e0d34423f61b9709e3b3aa434ebf52ba539827fae" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.310Z", + "updatedAt": "2026-02-24T10:49:37.090Z", "postProcessHash": "04ddabe64555540a61932c49623e86d183e32480300944b2c0c50e98ee454690" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.326Z", + "updatedAt": "2026-02-24T10:49:37.107Z", "postProcessHash": "472862bfeaff51b13c5ee4e5db079287527b624462f6cebcd4c7c40e28ac0c28" } } @@ -24715,19 +24985,19 @@ "b5543674ee59dc5d80ec783390644aa03c6a1b7c91bbff001eda92fd5198a064": { "dce1dfac5e498639b6f080315eaf0ea6f42c51bef46d3fb13e621234a36cb996": { "jp": { - "updatedAt": "2026-02-19T02:24:13.284Z", + "updatedAt": "2026-02-24T10:49:37.074Z", "postProcessHash": "12bd0bc1da35edf0956b988096dbe9f033d1d7ba3e333451dabc6ea178a17836" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.282Z", + "updatedAt": "2026-02-24T10:49:37.072Z", "postProcessHash": "1bb98ec9993db510010f710145c89c00665c9c4b2ce37d5677048c58466f5687" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.283Z", + "updatedAt": "2026-02-24T10:49:37.073Z", "postProcessHash": "cc562d464da596dfbba48acd3b75d20f6d5f471db539c28eaf521f3da7b85415" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.386Z", + "updatedAt": "2026-02-24T10:49:37.108Z", "postProcessHash": "1e4bb86fe0272803afa1e7c9051a0d34c151f989eb471b2896fdcdb89767dc29" } } @@ -24763,19 +25033,19 @@ }, "b701a01b7da43c0e939206348121bd5f052126f2cf4c677b9c689cb00cc4a59b": { "zh": { - "updatedAt": "2026-02-19T02:24:13.298Z", + "updatedAt": "2026-02-24T10:49:37.003Z", "postProcessHash": "c5a24d60bc4833e936ec8f90bb73dd281fc3c67c3cd02193658c703622b731f0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.300Z", + "updatedAt": "2026-02-24T10:49:37.006Z", "postProcessHash": "54d788dde5286b67691cfd8a3654c1357bcfb32c0121d7bb566ef42c7e75cfcd" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.302Z", + "updatedAt": "2026-02-24T10:49:37.008Z", "postProcessHash": "9758679b171d243b4f6029983d0f4cc00a2c19c785ca92002a6a52b40e5a953a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.326Z", + "updatedAt": "2026-02-24T10:49:37.046Z", "postProcessHash": "52c1c17153074158a563d85c621013ae658d3d5b773f100291f4f7c6f3ad0c49" } } @@ -24825,19 +25095,19 @@ }, "dcef06bf7159ee84284a1d2c1155227603156c83d2109b7d4e91f9ca356e5e26": { "jp": { - "updatedAt": "2026-02-19T02:24:13.218Z", + "updatedAt": "2026-02-24T10:49:37.008Z", "postProcessHash": "c5ec8d99a0bccf2fcbdb898d826a27d7d6190347e3c1782a213ab680e18ffc9f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.223Z", + "updatedAt": "2026-02-24T10:49:37.011Z", "postProcessHash": "b152eec6b3abcb3d01cdf31619f67a18065cb9bb621300a35e5bc736d1576b7b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.229Z", + "updatedAt": "2026-02-24T10:49:37.022Z", "postProcessHash": "45f7c3ca8029d07103e52d4f55eeba9c88cffb9845782aa60b77d9b2ad02a009" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.248Z", + "updatedAt": "2026-02-24T10:49:37.038Z", "postProcessHash": "0b60291a1bb9a1fde4e1a3114bad9241c5024f8255e43b0fca42b6853fcc9341" } } @@ -24859,19 +25129,19 @@ }, "b04a8f072ef024145a2f66dd417c535d56b1c9b06defa0310c1702aa6724809f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.210Z", + "updatedAt": "2026-02-24T10:49:36.995Z", "postProcessHash": "c1814bc01ebe06f5f84a2d01b7d636c943fc323a97114d722685538eb4673cb9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.212Z", + "updatedAt": "2026-02-24T10:49:36.997Z", "postProcessHash": "8eb42d98c9da7825bebfefc58971213ba0cab2d3fd1bf393c22244b058b06a2b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.214Z", + "updatedAt": "2026-02-24T10:49:36.999Z", "postProcessHash": "03f5e2525fa3057daacfce44bf3f812f1db550046248823d86379fbeea78538b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.246Z", + "updatedAt": "2026-02-24T10:49:37.036Z", "postProcessHash": "79239639dcd3ef0af102a8cb213ee55d17ffabe8ef7bac4d1750ac5519129089" } } @@ -24879,19 +25149,19 @@ "0b209462f1ec411886fda57e810cd3eea5efebe202ca2b4f5dc9f1fb3787ccfb": { "5ecfaa73c3cc92aee3ee2825b0bb89bc857721cc0ed52b56af3b10a539b65498": { "jp": { - "updatedAt": "2026-02-19T02:24:13.292Z", + "updatedAt": "2026-02-24T10:49:37.079Z", "postProcessHash": "9c463eb24a44e0d1d3e35251062831dfac4a0326522bc59b591026d46080e614" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.287Z", + "updatedAt": "2026-02-24T10:49:37.077Z", "postProcessHash": "8163956b4617ba9fbaf8c76df6a25c46bab9b73b60869e9d6ec3385ef4bd5bcd" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.272Z", + "updatedAt": "2026-02-24T10:49:37.065Z", "postProcessHash": "bc45134d1199a116e2d070f0a95bb75af3dcc8e318d9bb4bbab9f85126ff8c9f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.317Z", + "updatedAt": "2026-02-24T10:49:37.094Z", "postProcessHash": "60f3c476851e97c47dd66951ceb711224fa85b201e451493d65c79f6aaed05b8" } } @@ -24899,19 +25169,19 @@ "1d14e004d487902f18fc6c1de04f1ef911152e4d8c2d76455e4956d9cccd132b": { "435800632f77c2f3a43f62396007c869bf0e3310b946c504cec9c7661f101c78": { "jp": { - "updatedAt": "2026-02-19T02:24:13.287Z", + "updatedAt": "2026-02-24T10:49:37.076Z", "postProcessHash": "6e694a90c6d175f4d83b94cfcdb61ae4d90b567c568dba3ed0fc49a5a9be6463" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.198Z", + "updatedAt": "2026-02-24T10:49:37.062Z", "postProcessHash": "991777dfadaa9f756fcbc8a5daa9ffb13ac41c2a08a5fd10f0117a88c1949ff5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.199Z", + "updatedAt": "2026-02-24T10:49:37.063Z", "postProcessHash": "8be261582a7becf1f2d826f57a8f214a3ca8196f466b9e333aefd81a61f085b2" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.382Z", + "updatedAt": "2026-02-24T10:49:37.102Z", "postProcessHash": "9a5923b5dc5530bd52d63e2ba63b99722b82c238758697432162fa42e81344e7" } } @@ -25046,19 +25316,19 @@ }, "f93ac8c2bb0d29e61073589258a4eaa0a790c98a538225bcf8efc768925ee2cb": { "ru": { - "updatedAt": "2026-02-19T02:24:13.292Z", + "updatedAt": "2026-02-24T10:49:37.134Z", "postProcessHash": "130e97ee130c0fbf8f9717f809cbeb44fd7800f5be04b59ed5ccb1710d8ad9d8" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.293Z", + "updatedAt": "2026-02-24T10:49:37.134Z", "postProcessHash": "8b7d5cf3d054cadde2974822443db9119ef58d6e7378b3c39d049ebecc2e44ac" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.294Z", + "updatedAt": "2026-02-24T10:49:37.135Z", "postProcessHash": "087512adcd9c93ba9d7de98e6f89add7fa5fcd37a4c39b459180f9520e0f237e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.379Z", + "updatedAt": "2026-02-24T10:49:37.173Z", "postProcessHash": "83c8c2d3121c4f5aa7b90e904896a63ca0d518662ecf4699b940ad1862124f56" } } @@ -25080,19 +25350,19 @@ }, "caa9c4c65f807707f6a2af39e043f652fa52eca36914bb726bb2a1e46c11ca59": { "zh": { - "updatedAt": "2026-02-19T02:24:13.293Z", + "updatedAt": "2026-02-24T10:49:37.080Z", "postProcessHash": "b0e789eafd72547baed0bfc9827a078f75a18553edb976d81abad02c4d3c43cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.294Z", + "updatedAt": "2026-02-24T10:49:37.080Z", "postProcessHash": "d8c5b3a67dbfeea7c16b3a83c30041bdfae9149dabbf6f208df7f83335acd8d2" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.295Z", + "updatedAt": "2026-02-24T10:49:37.081Z", "postProcessHash": "0b5ed20147c5487bfe0b9a62de68d65d2871cb4a5f76267a9e193d5191c58d4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.315Z", + "updatedAt": "2026-02-24T10:49:37.093Z", "postProcessHash": "3cc2e178b486ff4e664c0dd09f3fefe5006a90491e689f750cc7d3c63b615ea4" } } @@ -25100,19 +25370,19 @@ "5063b2b4bc9b2899fab5998a2b281df0229add76ce268451423a1dfd2ffa5f2c": { "d2af9085fbf80701266de277a6a67f2400d823b5ac0d2ee3f5ffb2eb0b4f0294": { "jp": { - "updatedAt": "2026-02-19T02:24:13.291Z", + "updatedAt": "2026-02-24T10:49:37.079Z", "postProcessHash": "a1636169493a7e081e486c4b45f4ea393cae607b6d27d71b0949c747ad21acb6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.270Z", + "updatedAt": "2026-02-24T10:49:37.065Z", "postProcessHash": "4d1057a8736addb7431f59b638a8f4efffad715aa69e1a44bf0136059094d611" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.272Z", + "updatedAt": "2026-02-24T10:49:37.066Z", "postProcessHash": "d5ce97637045652db3c61934170d0a69a0f3e0c8d030554a192fc65aba6e5afb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.373Z", + "updatedAt": "2026-02-24T10:49:37.095Z", "postProcessHash": "423917c58c8e6cd7b34a1b2e1525d4dff73f360295faf11b1e1b1fc0728a26b9" } } @@ -25120,19 +25390,19 @@ "53e5bb2209c16605d7273edd1079563619f7fd4e6e5bdfdb95988af1a4694755": { "19b750db7b91f72b4f9666d5cd502557bfaf69581d6fb96105e239e437635657": { "jp": { - "updatedAt": "2026-02-19T02:24:13.276Z", + "updatedAt": "2026-02-24T10:49:37.068Z", "postProcessHash": "904775c985e80dbce7bc2295b1c1649f0565b531d7c3f4a2122f5853f6c2bbf4" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.280Z", + "updatedAt": "2026-02-24T10:49:37.071Z", "postProcessHash": "ae130dbeb4aec5c1358067b680432fab58a715bdc224c9e4f81aadcfe9223165" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.277Z", + "updatedAt": "2026-02-24T10:49:37.069Z", "postProcessHash": "eba5e3fd856b6eeaafd061bc7bfdcbbef937ff1b7bfaea3b24f91c1c23f5548a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.379Z", + "updatedAt": "2026-02-24T10:49:37.100Z", "postProcessHash": "166c92dcc8ab27aed1cb889a3a522389d3d79284fb9c3f8c6192b473badc3472" } } @@ -25195,19 +25465,19 @@ }, "4812c605282293ce91d9825fee433dbfac73fb1138b5a7f9e12830374897e9a0": { "zh": { - "updatedAt": "2026-02-19T02:24:13.355Z", + "updatedAt": "2026-02-24T10:49:37.155Z", "postProcessHash": "ce3d9d92d2cb47fa4e5deb2137e6601764cdd06ca4cc33690645d1cba04f40fa" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.364Z", + "updatedAt": "2026-02-24T10:49:37.163Z", "postProcessHash": "9ee0d377ced515adf307ff8b730932b53a440894c27439fd5197329be8761f28" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.367Z", + "updatedAt": "2026-02-24T10:49:37.166Z", "postProcessHash": "39dcc9947c84a9624e0f192341e7f90c772107be848d9f63366ca9ee18b22b64" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.372Z", + "updatedAt": "2026-02-24T10:49:37.170Z", "postProcessHash": "aa59908ea95ce24091751b0d0db18eb4db3b8718d4aa2b13cd68c0e96fd5b3bc" } } @@ -25215,19 +25485,19 @@ "633a4ffa471ca2244e6ef5a3022d6a46f51861f23239b9b4594d8cac210cc0b0": { "011445c96b51faadcc04ca2af74b4a9de574446918a704bcb7648036f25d38a7": { "jp": { - "updatedAt": "2026-02-19T02:24:13.279Z", + "updatedAt": "2026-02-24T10:49:37.130Z", "postProcessHash": "3343fc873f0ee5c92afd185d31d05ef3731d043fec905fe0071b4a1ef4b49fed" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.278Z", + "updatedAt": "2026-02-24T10:49:37.129Z", "postProcessHash": "59dd038ebcb32c4f2b5ca1c48de3ad9860ee1d4583752488d327e652607df0b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.282Z", + "updatedAt": "2026-02-24T10:49:37.130Z", "postProcessHash": "ba0420bfcfd83577185543cb7f3889bf1102ae06f48345e32fdac9875f1407c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.381Z", + "updatedAt": "2026-02-24T10:49:37.175Z", "postProcessHash": "0c097e7ec634c24a62dddffe48a05cefee16d0c00b6375ca8e2ccbfaad62e88d" } } @@ -25291,19 +25561,19 @@ }, "ff14eb717d698def33582e2aa30f50aecdfc2681ef99b6a4cd9190ef46918f29": { "ru": { - "updatedAt": "2026-02-19T02:24:13.342Z", + "updatedAt": "2026-02-24T10:49:37.139Z", "postProcessHash": "c620a2793af7044351c814149b508071eca81c214a09e7d30237fb8fc45b1ca6" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.354Z", + "updatedAt": "2026-02-24T10:49:37.154Z", "postProcessHash": "77ad81691baa950e40cb6a7900495a94878cde1cfbd541bc89037f0ec92e7336" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.357Z", + "updatedAt": "2026-02-24T10:49:37.157Z", "postProcessHash": "87048010f9e83af97a581b1fbd5d0059aa0dffb60d6bcced7f873154eb931687" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.384Z", + "updatedAt": "2026-02-24T10:49:37.176Z", "postProcessHash": "d1978d424bc7e1d14c4bf9928a3389c10d919a56e2a1ae6c928c7eb5153b510f" } } @@ -25311,19 +25581,19 @@ "798d0e3eca2e56d6aa7658d85b9a41657e3aacf854913976ea97d89d8865966a": { "767118d90c94b77855b18cc08229cfbb4dd47ceb560ee656c0882c9192c24418": { "jp": { - "updatedAt": "2026-02-19T02:24:13.269Z", + "updatedAt": "2026-02-24T10:49:37.064Z", "postProcessHash": "027df2584b07460748f81dbb703be704d2beb64cf883503162d576415106fb84" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.273Z", + "updatedAt": "2026-02-24T10:49:37.066Z", "postProcessHash": "1621bcb58674ecaf3965a13198133890f2b751ab74a50389de5802a515d28205" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.273Z", + "updatedAt": "2026-02-24T10:49:37.067Z", "postProcessHash": "ebb326d7889336814f2154cab411214d22f5488b65540e2f6d366e1db4ab006e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.373Z", + "updatedAt": "2026-02-24T10:49:37.095Z", "postProcessHash": "9ffc3a213669bdfda5f873a18761f2196b88a5167264eb89380d411cd4747068" } } @@ -25358,19 +25628,19 @@ "991e27fab22b52bb4b08b4ae04fdec89d5e6553dc7110f7d24b73408fff315c1": { "a03618c42cb58f95e7e03a4057880d077e66e088f5502749a604eaca3e70f464": { "jp": { - "updatedAt": "2026-02-19T02:24:13.274Z", + "updatedAt": "2026-02-24T10:49:37.127Z", "postProcessHash": "636921fc977dfe48748e93ae1fdf42be0b418720532c1b7c0a971c429ade04ac" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.271Z", + "updatedAt": "2026-02-24T10:49:37.127Z", "postProcessHash": "a4721cdd1eb691f8b1e2f64060fd7922e9c193227fe6c885f9e0676e8f34380a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.275Z", + "updatedAt": "2026-02-24T10:49:37.128Z", "postProcessHash": "42dd428801695e0f5f9fec3d21a8322479f7b311e6f79c8d1c389922664faa64" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.316Z", + "updatedAt": "2026-02-24T10:49:37.168Z", "postProcessHash": "09390a145eb2350b935b0ccb8e7724c680ed62365fd2b1fe399a318888ae9be5" } } @@ -25393,24 +25663,42 @@ "updatedAt": "2026-02-19T02:24:13.372Z", "postProcessHash": "61eaf14e16b3386f37075201d63e75a0a54d32ae60f209a9ec67b9f962ee93c5" } + }, + "f614f75dc96bc89a262b67a8d6bd86eee50cf6e85daff223ae6a4e3ee77528e3": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.184Z", + "postProcessHash": "598135f5fdf49add4f48950b3ce2fec324ac14031cba42705f2a9780b3f2f54a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.185Z", + "postProcessHash": "51b603cdcca3588ecebeefbd871a3ff4e873297c91ef7a36f9ff902f2e35e78e" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.186Z", + "postProcessHash": "22d8b8523a6d25aca449b8a2ccd98624af60d1cc588440126935b1d2f53601bc" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.187Z", + "postProcessHash": "98f19f02bf5f25dbc66c1d260b5e6191a38a215f862072dd083feba602518b21" + } } }, "b7a5608a851a55f00f22ae8d517987b946c9c3eb543370562dc786dab3594714": { "88a876337f46351c9ccac93457f33dc4fb23d9aab3760cae91e020811ac6f19e": { "jp": { - "updatedAt": "2026-02-19T02:24:13.277Z", + "updatedAt": "2026-02-24T10:49:37.069Z", "postProcessHash": "800831a97428ce24c541cc4d219dccff37462b3eab33956c157f76b36bae231f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.276Z", + "updatedAt": "2026-02-24T10:49:37.068Z", "postProcessHash": "9b06f390fbbe6008bc6902731f1e92b09f55543ee53482ae4e5267c87c3c0214" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.286Z", + "updatedAt": "2026-02-24T10:49:37.076Z", "postProcessHash": "18c4474e313b99157810e1c5dde5465abd5342f16037ac5bef0d76790a3b6891" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.383Z", + "updatedAt": "2026-02-24T10:49:37.105Z", "postProcessHash": "93034220a8c8131db4afa643f82167b9c0c9ba40544e7065a4a32744e7e56589" } } @@ -25448,19 +25736,19 @@ "ec3ea94f6a821f3d66e7dc9993bc4fc2b65580f3ce729e89dc7d1d6e9711078e": { "078157aa36205afa5c6e11fa8f7457d8696fb79062fc79c709121c33ed2a7d52": { "jp": { - "updatedAt": "2026-02-19T02:24:13.281Z", + "updatedAt": "2026-02-24T10:49:37.072Z", "postProcessHash": "3b9b49fba3d97e5e944a32322d14fb8c85b071af5c511bd36931377bdb53514a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.285Z", + "updatedAt": "2026-02-24T10:49:37.075Z", "postProcessHash": "4c199ccc0b4d661ae762b8e3aeb7412e59342eccefd95c21db140c3388427128" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.280Z", + "updatedAt": "2026-02-24T10:49:37.071Z", "postProcessHash": "744b5565040dbcd24a946c9171f8ebdd0addffc101a20ac00f9207fd0f86e4cb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.380Z", + "updatedAt": "2026-02-24T10:49:37.102Z", "postProcessHash": "f70f75734d431b7f2196c422dd6c26cf9c08f596c516dbec75dc884ba554983a" } } @@ -25604,19 +25892,19 @@ }, "dcfbaf4d60dd311a0b7715eae68a2e2fe816160a3016447b26fd265f29601120": { "ru": { - "updatedAt": "2026-02-19T02:24:13.363Z", + "updatedAt": "2026-02-24T10:49:37.161Z", "postProcessHash": "550356604d0465687dcd666022d243c9fa8c00ed873e3319eac921bdac11b01a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.365Z", + "updatedAt": "2026-02-24T10:49:37.164Z", "postProcessHash": "631da8396e5d4027e1f10b0bbf38e97497db22202cce9097219db174cc16cb25" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.367Z", + "updatedAt": "2026-02-24T10:49:37.165Z", "postProcessHash": "147d0392e7d5bc241f5313bace35b394e963bbc26242f5285d7f82e2a3baa706" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.375Z", + "updatedAt": "2026-02-24T10:49:37.171Z", "postProcessHash": "ac106cc0a1538e7dc5f82d9ce23794561ed08919c2ede60797dae68ea59c7df5" } } @@ -25624,19 +25912,19 @@ "0788f71f3701d95084837950d519aaf717087552402cd82dfcf4236628f15af7": { "1840d9cc80dd9c8c8cc0209074557de0b8c1bf9c2ca33bff6ab6effea03e9a16": { "jp": { - "updatedAt": "2026-02-19T02:24:13.330Z", + "updatedAt": "2026-02-24T10:49:37.126Z", "postProcessHash": "9f8e5414e2db4974242cb61830b80369ceb6db03b4a9c1f1550a8cf6c8a60411" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.330Z", + "updatedAt": "2026-02-24T10:49:37.126Z", "postProcessHash": "bb4a8b2a60aab8aa9609be5894ee934311807e5370320be0396455802035fe36" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.329Z", + "updatedAt": "2026-02-24T10:49:37.125Z", "postProcessHash": "b710f5a6b142ce49a40818b641b59d222c3028da1c9627a5c02784331529ef6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.433Z", + "updatedAt": "2026-02-24T10:49:37.231Z", "postProcessHash": "8449d745a6885c46d42f2a05246bc7614f2f5f6bca2a6141d16a4821bb6d3825" } } @@ -25699,19 +25987,19 @@ }, "0335ec40088d821db1caf72940f4ea08beb7e1a477f632f4d483f13d0c6c6a7c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.338Z", + "updatedAt": "2026-02-24T10:49:37.137Z", "postProcessHash": "6c3a46567bb47fd7e2751e2f91e3624637a6ac98454a48825867314c79ed6899" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.338Z", + "updatedAt": "2026-02-24T10:49:37.138Z", "postProcessHash": "c64c19fca05ef9efac58c389062b7f637802ba3db42b0f97db541505a28ed50a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.339Z", + "updatedAt": "2026-02-24T10:49:37.138Z", "postProcessHash": "5e7a06123c6618a7310dbed87b2b7a8342c29659caec3a5ed132203c23ebc0a0" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.384Z", + "updatedAt": "2026-02-24T10:49:37.243Z", "postProcessHash": "403762070a7c5bc3263f198bea78ec27d4be5a51bc2221502e1503ddb0bec3a0" } } @@ -25775,19 +26063,19 @@ }, "b38eb92838e61a940f153d6963ed057adcaee444f43c888fd5e39497eb04c73a": { "ru": { - "updatedAt": "2026-02-19T02:24:13.357Z", + "updatedAt": "2026-02-24T10:49:37.219Z", "postProcessHash": "1299810e7584ab37cbaeac56b044fdea98edd4746b61a344aebcf1d4882f0cc7" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.361Z", + "updatedAt": "2026-02-24T10:49:37.223Z", "postProcessHash": "6fa6f08c2f795232cd5876123fef1e6094ad1507730ab3902657918a284cfc49" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.361Z", + "updatedAt": "2026-02-24T10:49:37.226Z", "postProcessHash": "d8f16f5e475597fccd90ed88d4d5d8a656dc828f798eccce3f51f6e8d811c6c5" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.376Z", + "updatedAt": "2026-02-24T10:49:37.232Z", "postProcessHash": "1595ec711abce43845a0645860a8493d2bc79ec07f3dd1891f80ce0c12231ff8" } } @@ -25878,19 +26166,19 @@ }, "8780bfd29c41b800407b85fe61cfc8cb0b8ee9ada8a21eb700beb6143c6cc989": { "zh": { - "updatedAt": "2026-02-19T02:24:13.343Z", + "updatedAt": "2026-02-24T10:49:37.141Z", "postProcessHash": "96082e7da1d8f5f2116233fbe18ef88925e6216c3754f0d8207df6a37598dd0a" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.350Z", + "updatedAt": "2026-02-24T10:49:37.146Z", "postProcessHash": "55ab51194ed1920899f9b02e72b46160427f844377ab425f83c33cae031325c6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.352Z", + "updatedAt": "2026-02-24T10:49:37.208Z", "postProcessHash": "a75baae1e397937d22e37912bad3b424303d85233a6a11ae357afe2c336f38ba" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.377Z", + "updatedAt": "2026-02-24T10:49:37.233Z", "postProcessHash": "e5dd94bc8a53b145b59f18e8935caddfc4a4239d4f2ca1beafd8412f3d1f9ce9" } } @@ -25954,19 +26242,19 @@ }, "4c6dd9ae67449011378a0b6623b2bf939289a572e3d758558ebb65043b1599be": { "ru": { - "updatedAt": "2026-02-19T02:24:13.358Z", + "updatedAt": "2026-02-24T10:49:37.158Z", "postProcessHash": "d9c8b4f9669612db773ed934e6cff455f0c2c3323ec9993ddcb83e953c15de60" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.360Z", + "updatedAt": "2026-02-24T10:49:37.159Z", "postProcessHash": "b3e4f3d904b5f6ed03897b951ca4722525cf910efcb98cd0ba36a300c31077a9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.369Z", + "updatedAt": "2026-02-24T10:49:37.167Z", "postProcessHash": "7b9dbc6cb84a11d6fc37b005674a79107006c3fed7f8397f381b498f2998644d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.380Z", + "updatedAt": "2026-02-24T10:49:37.174Z", "postProcessHash": "c6be9528567ca12af20b42ef17676b7e52eed9c4ec31fa8269e10e504cb8733f" } } @@ -26085,19 +26373,19 @@ }, "215622fcc8806414f11a7e32dc6f5516372d382b08dc02023e8bce66a807755f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.344Z", + "updatedAt": "2026-02-24T10:49:37.142Z", "postProcessHash": "29c6e8bf5627320ba54c831f7a18bb6cc20934738b55e0f978607500a6ce4059" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.346Z", + "updatedAt": "2026-02-24T10:49:37.143Z", "postProcessHash": "df4dc9785fe9213e9cd3b1e8fd492b1a7cf8509c3760750bdc3c9a83b2035f29" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.347Z", + "updatedAt": "2026-02-24T10:49:37.144Z", "postProcessHash": "2800e4321c40f5ed3c759792f3582084fd9ee490777e383dc60dcdba9819a441" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.383Z", + "updatedAt": "2026-02-24T10:49:37.175Z", "postProcessHash": "78009dc33bbc15fdb77c868c9c14361ec8c29e0caba7b906cbf6e2f2c7208b5d" } } @@ -26199,19 +26487,19 @@ }, "44cdbbd7a51270540dcc845c5daf572460b25c995b37053ef9b4237447f0766f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.359Z", + "updatedAt": "2026-02-24T10:49:37.158Z", "postProcessHash": "52026379ede200a97e96b26a0c190ae8546835b563a8a36bed7dc48c05dd6392" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.362Z", + "updatedAt": "2026-02-24T10:49:37.160Z", "postProcessHash": "38c672d3a75bcf60b2416c61a4cbf275862bff19bec90785ef21bf3bb3d031fd" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.364Z", + "updatedAt": "2026-02-24T10:49:37.162Z", "postProcessHash": "2c44f534a09d9215ec81d02a0789c36bae4f6ee6672e87e8f52e980b624d6500" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.385Z", + "updatedAt": "2026-02-24T10:49:37.176Z", "postProcessHash": "276e3c82b78e06112fc54a1729dd151fa06b8e6eff5d084ea81f0e5c5d4352c3" } } @@ -26275,19 +26563,19 @@ }, "eab00a395f1ea96bf4853ab267dfd1451e23bac19fd339d0427dd83bb3bb135b": { "ru": { - "updatedAt": "2026-02-19T02:24:13.352Z", + "updatedAt": "2026-02-24T10:49:37.150Z", "postProcessHash": "43f5bf02834e761c87e474968035feb9fd7f01329aaaf831ad749599235ce496" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.360Z", + "updatedAt": "2026-02-24T10:49:37.159Z", "postProcessHash": "f07c90eb47f003d8c87393b6e6dd81b674812df6924255ae30e246e8635bb50c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.369Z", + "updatedAt": "2026-02-24T10:49:37.167Z", "postProcessHash": "77474601d57dfc0c715215206f519f60baf6e99b8622a882ec20d12761e2ff44" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.376Z", + "updatedAt": "2026-02-24T10:49:37.171Z", "postProcessHash": "f7454b741804d824b9ba61463b003686b29dd920a201b2304b1ef4d88b3df96f" } } @@ -26545,6 +26833,24 @@ "updatedAt": "2026-02-19T02:24:13.438Z", "postProcessHash": "83e863ca34b84a6c43b4f11c05a35e7e091b65afe0d99127c42286ba2b5b4952" } + }, + "28b6d57e6e853ca3db742967e99f3d9cee9a8a18e912f89aa8e2b17fb28faee2": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.246Z", + "postProcessHash": "7e649586bf64da071a38b95d4e8b87849770484d5c711d5829c4d1be6a7a0fcc" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.247Z", + "postProcessHash": "9769a9b07b422e1e1ca0fc79aaf7823838d202f8d2a0a71907c5c9109377ae9e" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.247Z", + "postProcessHash": "b13108474f9cf1dfc24e44fed0d65bf34e8728f3d77aad7848065fed1fa99030" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.248Z", + "postProcessHash": "8504edcacee89c38229b9a725de44a3741d6a2fecd52aaa171f42e870eaddac0" + } } }, "e7312c644964f4d389a9171edabe14341e5e6fdd852101cf9f16a264088857b7": { @@ -26606,19 +26912,19 @@ }, "997e4160c0a2d148b5e26f6b78b3bf085512f131bd3f720d24f596ad20911389": { "zh": { - "updatedAt": "2026-02-19T02:24:13.348Z", + "updatedAt": "2026-02-24T10:49:37.145Z", "postProcessHash": "8b380f59ad1f4925889ab02de510e8b717e1cbcedd888f00a12c42aaf7141a28" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.405Z", + "updatedAt": "2026-02-24T10:49:37.203Z", "postProcessHash": "e848e21bbfe50529b2d5440e257dfbdee51d956594b5231b1dc22cf3987f745a" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.411Z", + "updatedAt": "2026-02-24T10:49:37.207Z", "postProcessHash": "2f59696382360ef91e0e7e27d2d74a91eadd5827e694036c9688e74d07f72f23" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.441Z", + "updatedAt": "2026-02-24T10:49:37.237Z", "postProcessHash": "81f3d2cdd0e86fe43d69437c76ec7fd8e8d0a7949a3ad2507c9362916aac2b73" } } @@ -26654,19 +26960,19 @@ }, "5f25d2648b8c152e5b94d97978048632cfd6843013f84ee372d0bc35fb1c46f7": { "jp": { - "updatedAt": "2026-02-19T02:24:13.404Z", + "updatedAt": "2026-02-24T10:49:37.203Z", "postProcessHash": "cba795aeee55e69966c957b8ffa02bd700ca355f5381a73e728fe8b61fbb1759" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.419Z", + "updatedAt": "2026-02-24T10:49:37.216Z", "postProcessHash": "4c6d63bc68aeae577d686f6a2bb6c30500fb3137f6e27bbe3140969470006500" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.430Z", + "updatedAt": "2026-02-24T10:49:37.227Z", "postProcessHash": "f3d4a61f1055e788ca05d7d62bf09615ada06deab45a645d8d6e11b9ef0c1e78" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.444Z", + "updatedAt": "2026-02-24T10:49:37.239Z", "postProcessHash": "15105071aa440b5832c19e0417d75f7e4574cebeed1d0992b867996f75f9dfb9" } } @@ -26688,19 +26994,19 @@ }, "ebf208903172abd600fd6c02235282cdc1da1b63f91a33c0e8923f84f0660b64": { "zh": { - "updatedAt": "2026-02-19T02:24:13.401Z", + "updatedAt": "2026-02-24T10:49:37.199Z", "postProcessHash": "151cca05a4af576f053626f5bd265d6a3b77f42e186458c8450041657d8c9ac1" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.408Z", + "updatedAt": "2026-02-24T10:49:37.205Z", "postProcessHash": "dbdf284390f1cf38bffb178f97bf0d65d8a20c40f7de1b65529e10f40e14a4f2" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.416Z", + "updatedAt": "2026-02-24T10:49:37.213Z", "postProcessHash": "f12bd37fac177984600c7dd144e50935a0e571f8ed9ee1b2ce0f74c3196f03ff" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.438Z", + "updatedAt": "2026-02-24T10:49:37.235Z", "postProcessHash": "0506dbd4984973cedd8623c1704a4e03f28240fcd18b3f6ef25a96ff47c9a62d" } } @@ -26708,19 +27014,19 @@ "1205bf7e48133304fe346efa0309af05787e80fd6f83623b178426d0d89e43ab": { "7a4af08a1b17f2a86db198129d22bf1a71494ef3425bd28e8251e46075a27288": { "jp": { - "updatedAt": "2026-02-19T02:24:13.331Z", + "updatedAt": "2026-02-24T10:49:37.187Z", "postProcessHash": "30ccccf626a2ca635be4847e2c616b4dac5be4e2e780441a95dd84ae1f2ff6be" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.387Z", + "updatedAt": "2026-02-24T10:49:37.190Z", "postProcessHash": "02ed4c4d95877350ec1a531f9f6dbe62a31b4b1be1362851c81f9e3319317233" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.387Z", + "updatedAt": "2026-02-24T10:49:37.189Z", "postProcessHash": "b22b06d448e1ba3b5dab75af105e59acc1f260221642276e149798261ef4dc07" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.437Z", + "updatedAt": "2026-02-24T10:49:37.234Z", "postProcessHash": "63f1a7eb7ff9d8b0e96c020bebf540b81bc063287f440149e4f9ecdaa6c6de01" } } @@ -26770,19 +27076,19 @@ }, "1a8a2f6f8774d629b61c26521d8367348f2e066df617557c1af99e39cd3087bf": { "zh": { - "updatedAt": "2026-02-19T02:24:13.414Z", + "updatedAt": "2026-02-24T10:49:37.210Z", "postProcessHash": "6cdf7b5420bbded7128ce3a79a37d429b9c2be8726b094948154e1122dd8bb12" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.415Z", + "updatedAt": "2026-02-24T10:49:37.212Z", "postProcessHash": "12a63a18c1420980d4a56f2b59bf10fcf82d090340775514b634b543e484c9eb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.418Z", + "updatedAt": "2026-02-24T10:49:37.214Z", "postProcessHash": "f638ce418cbbef21be0f06f057e00e77af116e7c4811ef53fd394dfd97067905" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.524Z", + "updatedAt": "2026-02-24T10:49:37.306Z", "postProcessHash": "e069949fb81e979318c8dae50c405a06189393044e21728a98e2769ff2adbea4" } } @@ -26818,19 +27124,19 @@ }, "01dfed2372c85e039eaf8923af916c166734b0f5a72b0986d63156839b6a78ec": { "zh": { - "updatedAt": "2026-02-19T02:24:13.425Z", + "updatedAt": "2026-02-24T10:49:37.221Z", "postProcessHash": "725fb2cb9a64cdc8a584993d78ffbf700103f60c15ecf72aa1ea8f0fed9d74f9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.427Z", + "updatedAt": "2026-02-24T10:49:37.224Z", "postProcessHash": "81518d10da04c66200e690011b774c8da54ef1eaa00f10755141fe31a895baa6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.428Z", + "updatedAt": "2026-02-24T10:49:37.225Z", "postProcessHash": "ed1556b8f6503ac232be0a131241242b069710794077f77bf08a30cc536a7cfe" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.446Z", + "updatedAt": "2026-02-24T10:49:37.240Z", "postProcessHash": "66843770155778fe7576db59931180c6fdeb515972bcb36a2a17393376181792" } } @@ -26838,19 +27144,19 @@ "48ca9336c96e6bf5d7264d6ae62d5ee29644e6c214dc339d83a610716c484ff0": { "6e9ef6dfd8e741fb723339409fd3ec6e0e74d8c83d08b37cb60190c4e83a6762": { "jp": { - "updatedAt": "2026-02-19T02:24:13.389Z", + "updatedAt": "2026-02-24T10:49:37.191Z", "postProcessHash": "c31f043d91fa86b75264845c64b520f42ab6799775710cfd1e84dd9d274356af" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.388Z", + "updatedAt": "2026-02-24T10:49:37.190Z", "postProcessHash": "de2a813f350670fe63969b57d5c3d84697ed08edb9f295d9dde142ae02ba0a27" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.390Z", + "updatedAt": "2026-02-24T10:49:37.193Z", "postProcessHash": "f813bad8ac31feb90963c92ba27f77a74f4c81eff97ef0cb248ca14a5df79ebb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.432Z", + "updatedAt": "2026-02-24T10:49:37.230Z", "postProcessHash": "7058b3fe945a867a8d76ae2d6566a7d3262290d357a778d467018faecb7a43fb" } } @@ -26886,19 +27192,19 @@ }, "92a002944a241da2ac631218fca22c73e551e97e7d816dbda96719d44384f405": { "zh": { - "updatedAt": "2026-02-19T02:24:13.400Z", + "updatedAt": "2026-02-24T10:49:37.275Z", "postProcessHash": "e0656a03ed2facad06bd441cd54df855cdf0e6661d507ac8fc49e9acb4129919" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.411Z", + "updatedAt": "2026-02-24T10:49:37.289Z", "postProcessHash": "1a31614f3dc0799ed893dcb924d573928ea1bdd8e0fe339b2caedc0ab54d407d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.416Z", + "updatedAt": "2026-02-24T10:49:37.291Z", "postProcessHash": "f0acd352db6b564ec5a7c21a1abe1ec16efcac6040def8b786e33149cbebab3c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.434Z", + "updatedAt": "2026-02-24T10:49:37.297Z", "postProcessHash": "cc6c95d98aa6633b8c3e0e7c972011a0809345177eb2fef327af43fbc12374a1" } } @@ -26920,19 +27226,19 @@ }, "9b17a57ce389bca0f9def4e8a16b73f6cb50009fca68078f3804c14ce18dc013": { "zh": { - "updatedAt": "2026-02-19T02:24:13.468Z", + "updatedAt": "2026-02-24T10:49:37.266Z", "postProcessHash": "b49273efa27449495554f9c9fc82a62c92d747c7f2f11923787bb13cbeb1f1ac" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.469Z", + "updatedAt": "2026-02-24T10:49:37.267Z", "postProcessHash": "ece1dcb0acc5c0e21107b7a6fa5f0f7148456e72edfebd7eed18a54b1910932a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.470Z", + "updatedAt": "2026-02-24T10:49:37.268Z", "postProcessHash": "aa6033ab4279ef73a97226cc9dced1f5cf222ca23f55d521c5a429ba1c87e7b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.513Z", + "updatedAt": "2026-02-24T10:49:37.295Z", "postProcessHash": "1da5ac59603b4aa1de28b30ccc79d3ac7b2f3c7f3c7ccb07bf85c984519b217a" } } @@ -26966,6 +27272,24 @@ "updatedAt": "2026-02-19T02:24:13.520Z", "postProcessHash": "10f282b630ff91d06316e5106d9750b2bba7a6d4947c35b5290d78298d4670e9" } + }, + "f74d4c1c4142778f6b65d2b7f90909926198780811c71699a8d4465ab6d95335": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.595Z", + "postProcessHash": "305eb497f450f9d15cfc825714a0471333436b77af15a89b795c244331b68eab" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.598Z", + "postProcessHash": "6b5ce628e2302d28d6207686f445f88d018db5a74c91700e1446d4acdb902743" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.598Z", + "postProcessHash": "95cae26c381adb7ab4fe8d8103eea163068c017332c6ba73e1fe9e9fb6f9d0c4" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.599Z", + "postProcessHash": "f1f3a7a32bd5b70e92a57ec8ce469a12b415f6c87a5c65b38b4de761f5e7b854" + } } }, "65a720c2ea0a8158d89758ca90889e7cfba036082ddc99c1900ceb31830b3cd3": { @@ -26982,19 +27306,19 @@ }, "3a04105dee92510060ffbb0e51a8b69619bf2a41b598379b28951f1a94eef00c": { "zh": { - "updatedAt": "2026-02-19T02:24:13.393Z", + "updatedAt": "2026-02-24T10:49:37.250Z", "postProcessHash": "4183ed3c2db67ec9cb9e8f9d94517cd08cae13d15f17844d3158f6ca8fd673c8" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.393Z", + "updatedAt": "2026-02-24T10:49:37.251Z", "postProcessHash": "49256a1d63e90849e9830b4e12182aff3565acdd2768869fc05fe764457a0489" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.394Z", + "updatedAt": "2026-02-24T10:49:37.251Z", "postProcessHash": "42730a82569bd00eff64b862db2fea6999103e907d6088f5b445c839676edc0c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.514Z", + "updatedAt": "2026-02-24T10:49:37.296Z", "postProcessHash": "5e9962e2794e3a6ca7af30d99a891b19068dc147f120cb64beb557cb0724a18a" } } @@ -27030,19 +27354,19 @@ }, "3200244f2e43be7e9ad2a6a3e1ec98b8163b0e42e6514b23e783d43c9251da51": { "zh": { - "updatedAt": "2026-02-19T02:24:13.506Z", + "updatedAt": "2026-02-24T10:49:37.288Z", "postProcessHash": "866f3936af119d15890d982e8219a76ed0b35632294cda5f0160f77a035e5a33" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.506Z", + "updatedAt": "2026-02-24T10:49:37.289Z", "postProcessHash": "8203687b892de0ab135c2b44e172874962c01931207af6c4209c259925483b3b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.511Z", + "updatedAt": "2026-02-24T10:49:37.293Z", "postProcessHash": "84ca6320425f93846c2d88b7e7447d2b9e82b123d535f0af6bec0ff09c5b67d5" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.521Z", + "updatedAt": "2026-02-24T10:49:37.302Z", "postProcessHash": "dea46d0eae1cb7fe6ea1c3ad47593620f5475aa02ef57dabccc96e661898a895" } } @@ -27050,19 +27374,19 @@ "822e90a8485f6ba254a1b6b4f89bbeea67771bd3cb9f9d6241558e4b9f59e8ca": { "3442662c930110d3e163429ea57e15d27f6132307f6bdd86dd62fc64d01d1c48": { "jp": { - "updatedAt": "2026-02-19T02:24:13.389Z", + "updatedAt": "2026-02-24T10:49:37.250Z", "postProcessHash": "2d70f5cbde020ac87bd153ecf86a21f4af32aeae032eb8099ae4da6416ab1921" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.332Z", + "updatedAt": "2026-02-24T10:49:37.248Z", "postProcessHash": "5db76895a6d5607023331086b280898acd75c3f76ac9f4c9465521306e5bda9f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.386Z", + "updatedAt": "2026-02-24T10:49:37.249Z", "postProcessHash": "c649c15733cabd3a7eda514f1c55a86d6290aa07f5fc46a3af721c083119c37a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.435Z", + "updatedAt": "2026-02-24T10:49:37.298Z", "postProcessHash": "3ccde13a999abff666322a2b79b16a42f0f73fcc49fbe6c3665fd4fd74bb3333" } } @@ -27084,19 +27408,19 @@ }, "420538bcfaaaf3b1fa4dafbaac5c49012c899ddc56d696506fb244501c5decac": { "ru": { - "updatedAt": "2026-02-19T02:24:13.421Z", + "updatedAt": "2026-02-24T10:49:37.217Z", "postProcessHash": "bdc3f775afbd30acd53ad8db2b6a52ba2e6bee206e4dc2b6693a3617ced7aae1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.421Z", + "updatedAt": "2026-02-24T10:49:37.218Z", "postProcessHash": "17b494948b1f2bccaf2124762f0b88903d2478ea452462293884f62dd7448769" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.422Z", + "updatedAt": "2026-02-24T10:49:37.218Z", "postProcessHash": "6747b2eb80d652d59e1fffd180fb579810044749fc5001c1af31f74f47f2e999" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.435Z", + "updatedAt": "2026-02-24T10:49:37.232Z", "postProcessHash": "406b1a53ac3c645e300757e1b41c7227e9ff545d9d0451a8796820752cf629b4" } } @@ -27118,19 +27442,19 @@ }, "db99c807a578b9736517375b19cddf0fce9fc9ef52798564e0234c747568ac15": { "jp": { - "updatedAt": "2026-02-19T02:24:13.402Z", + "updatedAt": "2026-02-24T10:49:37.201Z", "postProcessHash": "99826913b7d307690f64527ca1950f2342061c3836c35c6035f008915fa57460" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.403Z", + "updatedAt": "2026-02-24T10:49:37.202Z", "postProcessHash": "49e6120ddbef8d11018108ed68b3ce28c98ff3ee2afd6877ad77946f3311dbb8" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.432Z", + "updatedAt": "2026-02-24T10:49:37.228Z", "postProcessHash": "404ff92a682149c2d967822564033bbec59acee49178f8b36980e25d78e23179" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.447Z", + "updatedAt": "2026-02-24T10:49:37.241Z", "postProcessHash": "c463479ba86d4bfeb3056394ec82ce87edc81ca8aa94276f10da8f0fdae381da" } } @@ -27163,19 +27487,19 @@ }, "5e48b24459dae07956036c9cdba123bfc822b3541c35ba2765b1d1974bbcef58": { "zh": { - "updatedAt": "2026-02-19T02:24:13.395Z", + "updatedAt": "2026-02-24T10:49:37.196Z", "postProcessHash": "1c873cdbeb87f0eeaa804a98bd32bae1fc540578bd0f5d9374b7f4d76c1470aa" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.396Z", + "updatedAt": "2026-02-24T10:49:37.196Z", "postProcessHash": "fe19c082beb7a0977c92e295c25dd563e8d1ac4db8f7c4554a0d4d388ee48b8c" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.398Z", + "updatedAt": "2026-02-24T10:49:37.197Z", "postProcessHash": "a8c9de2fb0ef4e1098a7ab47a17522fcc2db97f4b30c52483d5f4cb3e70c959c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.523Z", + "updatedAt": "2026-02-24T10:49:37.305Z", "postProcessHash": "6d4207cc063a1efb35f4ac15460c08fdd53324b920073269f8580087fbe2fa5d" } } @@ -27225,19 +27549,19 @@ }, "f7211aaf84e072666b76bdd74e87650d4411d31e620398ffbfdfc9feff3b49d7": { "ru": { - "updatedAt": "2026-02-19T02:24:13.402Z", + "updatedAt": "2026-02-24T10:49:37.200Z", "postProcessHash": "4534344c5c7ce3d93a9b7cf32085bc338f3709417753728817597f0373b4c32d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.413Z", + "updatedAt": "2026-02-24T10:49:37.210Z", "postProcessHash": "fd9c82c7566086dfbf32cf41b63ba0c86e66f3f7ac576c5b6104ff99d9c18502" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.429Z", + "updatedAt": "2026-02-24T10:49:37.226Z", "postProcessHash": "bba18d5b9fb30ffc58753792c31ad43585fa0dfbdf05dcfcf73b196dcce2df9e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.440Z", + "updatedAt": "2026-02-24T10:49:37.236Z", "postProcessHash": "519ad87daae278ed776654f9408e25412ad7a5137c4e412a5bd9119ba2486496" } } @@ -27259,19 +27583,19 @@ }, "d2075faed31cd9bb9848b31be9479bdf4bf83fbaff14702006e62eed94e1e83e": { "zh": { - "updatedAt": "2026-02-19T02:24:13.340Z", + "updatedAt": "2026-02-24T10:49:37.198Z", "postProcessHash": "6340996e51c65b8265d107f6f619d78a7171b2ed563f581703d3ec96c2271f98" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.410Z", + "updatedAt": "2026-02-24T10:49:37.206Z", "postProcessHash": "7985d32dc44a73c5e01f882067249750a04c04fce336330dbca84eb530d25bc4" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.414Z", + "updatedAt": "2026-02-24T10:49:37.211Z", "postProcessHash": "02ce1743ff4a0876766299af1f7be3c88d4a5c80d5acd05e6482eb6b4412fbbf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.437Z", + "updatedAt": "2026-02-24T10:49:37.234Z", "postProcessHash": "644956ea725c6366781b9fb133ed04b9dbacfddd38da54811a4b0360874752b3" } } @@ -27279,19 +27603,19 @@ "c11fd5cd4c0e0c76b50b836fc0585b7d897d5c6e619c8530f61e70fb13e7d1cc": { "1fc6d064882a931f2ccd7ae4239ad068568c65a8bef153bd6264d39d45bdf340": { "jp": { - "updatedAt": "2026-02-19T02:24:13.331Z", + "updatedAt": "2026-02-24T10:49:37.188Z", "postProcessHash": "4522b7efc32819ea16972c95f2ce99ba56305acfae119eb4c98edc7715085ad1" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.332Z", + "updatedAt": "2026-02-24T10:49:37.188Z", "postProcessHash": "c66dd1cc242c35e71cda37f7f97d750be81983e76d43d9e50125f6c6234111bf" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.390Z", + "updatedAt": "2026-02-24T10:49:37.192Z", "postProcessHash": "c0ce15be35aa928161f93bd53f1d62caf4053ca2e71fc4de141f4e67046bff91" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.443Z", + "updatedAt": "2026-02-24T10:49:37.238Z", "postProcessHash": "1e199116162d5f198fe0408e6b97e51b3fc198aa0e59312c35b8c2691684c3bf" } } @@ -27341,19 +27665,19 @@ }, "8d7dedf2a124ffbbaa0a5a9b6a49d68aad672094046e149f07e6cc25b821aa9d": { "zh": { - "updatedAt": "2026-02-19T02:24:13.400Z", + "updatedAt": "2026-02-24T10:49:37.197Z", "postProcessHash": "7455d0f36c2053498858fcb1def527a009814ec7c6710be1e723aa47b29a2365" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.405Z", + "updatedAt": "2026-02-24T10:49:37.204Z", "postProcessHash": "dff5e16734559e9aebb8d1ff990b776de6862ff3fd7219aae29bbac7c8d70025" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.425Z", + "updatedAt": "2026-02-24T10:49:37.222Z", "postProcessHash": "50a870a7b356d1cee3181edf81a89da81de12705cd237aa0a01f7171222376e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.522Z", + "updatedAt": "2026-02-24T10:49:37.304Z", "postProcessHash": "8470e63f88d4460f1ae27c8ded8d66b74f16d1173f00506beaf596e17384eeaf" } } @@ -27361,19 +27685,19 @@ "eb48ea9cc55a5f79da9d6053e1ddc3e175fac421ecfbf7cdd1fba7409a5937c6": { "4bc78345ed8b814098932537f3fc29577489a1bf65318ccf523d0e7979227a78": { "jp": { - "updatedAt": "2026-02-19T02:24:13.391Z", + "updatedAt": "2026-02-24T10:49:37.193Z", "postProcessHash": "4e6285eeca06dc61ce393d6fdf563610baa6e74c8f82ede6605fe2c7b7aa8ad4" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.391Z", + "updatedAt": "2026-02-24T10:49:37.194Z", "postProcessHash": "dfe20a7730d7d60d8716a76743d2243973eecbc2dd5de7a11706365188584de2" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.392Z", + "updatedAt": "2026-02-24T10:49:37.195Z", "postProcessHash": "098c711e24bffd1f026f28278b46ebdcfc56a069381280c142b47aaab58740f2" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.449Z", + "updatedAt": "2026-02-24T10:49:37.303Z", "postProcessHash": "2d5583947209ed6e5a8006b6ea67c335345551cc8f74a375bbc4442a1cb13135" } } @@ -27395,19 +27719,19 @@ }, "f6f2edce29f9de1a030d797b01bf9f3be4224bb0755edd9f8af2ad96420905f5": { "jp": { - "updatedAt": "2026-02-19T02:24:13.395Z", + "updatedAt": "2026-02-24T10:49:37.258Z", "postProcessHash": "cfb62522f7222ac0f36c7a519b0436f9827c07ce43e9fe6fad90c1417362874d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.396Z", + "updatedAt": "2026-02-24T10:49:37.258Z", "postProcessHash": "7f10863d4682862390214ac16e1ae0e2bf3abc085b9bd86543d0dd5260189bdd" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.397Z", + "updatedAt": "2026-02-24T10:49:37.259Z", "postProcessHash": "9c38aeac0e5e57374e048141b7600eab235a46158be361b6097c0e4784bc7f1e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.446Z", + "updatedAt": "2026-02-24T10:49:37.301Z", "postProcessHash": "9661532e698a211084de0cc6e587580fdeb459aa9ac977addc388ddc7f5498f7" } } @@ -27429,19 +27753,19 @@ }, "c650d56bdfeafa74ff7cdd5859a5e646d77e7c9bff1d4e30068ffff787ade016": { "zh": { - "updatedAt": "2026-02-19T02:24:13.398Z", + "updatedAt": "2026-02-24T10:49:37.271Z", "postProcessHash": "2960a202d40c876331f007fd0af1a6d46cc58c2957b2d70b4c750097f7af4f75" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.399Z", + "updatedAt": "2026-02-24T10:49:37.272Z", "postProcessHash": "5e3e34d6081a314db6f257936dc18de74e4bd872caa0cfbb0b0c612e355dd098" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.399Z", + "updatedAt": "2026-02-24T10:49:37.272Z", "postProcessHash": "8d4c19dd48c6ae1adeceaba40406dcc9c3c9a2c9e08a9c4556345bca5465a14c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.522Z", + "updatedAt": "2026-02-24T10:49:37.304Z", "postProcessHash": "c29cf7f5be3c9becbe9ba8a1942cfbd0070277ec8175a3d3283504d377acb9f5" } } @@ -27504,19 +27828,19 @@ }, "5355c1bcd88cab9851e3451a90a01e193bff859d9002726d78eba28da66607cc": { "ru": { - "updatedAt": "2026-02-19T02:24:13.461Z", + "updatedAt": "2026-02-24T10:49:37.260Z", "postProcessHash": "1752028814d41e4e999b93743fdeceb74fd9d8dc1b2f4be2b8fcdcfc48e91e95" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.462Z", + "updatedAt": "2026-02-24T10:49:37.260Z", "postProcessHash": "cac2eed807da3fba8c2659c2fda9dc83a210432c872487656c15ed5267a9dbe1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.463Z", + "updatedAt": "2026-02-24T10:49:37.261Z", "postProcessHash": "04417cf976e3b4269caacc02e4f9b05e7b1259e3d43eb6af146277cc3c44cd39" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.571Z", + "updatedAt": "2026-02-24T10:49:37.336Z", "postProcessHash": "73f2d25e10384a8b397f8f534606d998f38069264f41995f62cbc153711d8e13" } } @@ -27566,19 +27890,19 @@ }, "8a3f55e0477d032948722c3475ea0b4c7aa7a1b38f091d286f4e1c70027deb24": { "zh": { - "updatedAt": "2026-02-19T02:24:13.497Z", + "updatedAt": "2026-02-24T10:49:37.280Z", "postProcessHash": "84d1e30bfbe0486cbe452a58c12fe4c32d9035436d12eaf4ac56f4e620715a57" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.501Z", + "updatedAt": "2026-02-24T10:49:37.284Z", "postProcessHash": "01b74c592ad21eabb91eb9ba6b84fbe090dfa49408b1af0af5a8e329ae58e057" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.553Z", + "updatedAt": "2026-02-24T10:49:37.318Z", "postProcessHash": "65330d867bec68f3c7b897f2bc1c56237498d2a35b6b7ffd1ebc71e298c99e17" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.573Z", + "updatedAt": "2026-02-24T10:49:37.339Z", "postProcessHash": "45bb2b62b466563df7e6665939e73b85d9475c363293ec90c68e3eb56f0ec584" } } @@ -27628,19 +27952,19 @@ }, "49638ef5c89c85038ca8744617b45cf94bbda909a2cdf6c7122d9d2752bd125a": { "jp": { - "updatedAt": "2026-02-19T02:24:13.479Z", + "updatedAt": "2026-02-24T10:49:37.312Z", "postProcessHash": "b25d99f7a9c0cb559e8929d03ac76eb69e0585ccfc2955a9984b335eddbe1754" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.555Z", + "updatedAt": "2026-02-24T10:49:37.321Z", "postProcessHash": "3a4f1cc4b7df1961888ff55cc556374e4389418fdf034322bdacf83ed0a7aa92" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.556Z", + "updatedAt": "2026-02-24T10:49:37.323Z", "postProcessHash": "bccb7d8139f2dd8aef5ad459f52c00c3983b3927b9a8e8b624ad0b4dfd5c7769" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.577Z", + "updatedAt": "2026-02-24T10:49:37.343Z", "postProcessHash": "1887916c202a6c5e296ced297e8c69ae077b1359844d2996931dcf8e48fb4cb1" } } @@ -27676,19 +28000,19 @@ }, "d92bd920c9d2cdaa16ca7bcdaaebf0b3411a80ce8939fc00c8b15fb424fa777a": { "zh": { - "updatedAt": "2026-02-19T02:24:13.476Z", + "updatedAt": "2026-02-24T10:49:37.274Z", "postProcessHash": "5687114ab9979a79d84aa97f59ac026f7a9655d2a81ae49613254d99db612bef" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.476Z", + "updatedAt": "2026-02-24T10:49:37.275Z", "postProcessHash": "c91bd013dc70d606042e374ecd20caeda2ebcb9ab6ebed5d1c568c153fcf065f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.505Z", + "updatedAt": "2026-02-24T10:49:37.287Z", "postProcessHash": "9ab40674d05436cac5a9ebe70bd32ab41ee796f9a88ddbac37d2230be98a5264" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.517Z", + "updatedAt": "2026-02-24T10:49:37.299Z", "postProcessHash": "8910db2107b4b36975b7703201cc37b5671040f9e54941787f37286f77f87e20" } } @@ -27738,19 +28062,19 @@ }, "1809c83df139e9c3df9080bbdcc156436871cab4929bc2510f4cd94defe77e04": { "jp": { - "updatedAt": "2026-02-19T02:24:13.537Z", + "updatedAt": "2026-02-24T10:49:37.309Z", "postProcessHash": "a359ca1ad30863adf3ccab32d200ca3cc6c49caa2b0a49d7bb46c60b02601e66" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.538Z", + "updatedAt": "2026-02-24T10:49:37.310Z", "postProcessHash": "33209ac81aba3a3c3c52d9388b2c30f68d6bc1f309b25a40fc61249e5b7c95a7" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.547Z", + "updatedAt": "2026-02-24T10:49:37.314Z", "postProcessHash": "9b65621407009dd48a3338d6d748b00c6f77ee0f1fae080a6424f73fcbc5e10e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.573Z", + "updatedAt": "2026-02-24T10:49:37.339Z", "postProcessHash": "8ef8bea07a6963102d472f200042e8f60c3f4eba77167717d18123ef82fcab3f" } } @@ -27800,19 +28124,19 @@ }, "37f7ecd5d9d121eb4689c1c1fe1b0ade2c4b7dd6173a88b66ba57e4204c07ec9": { "zh": { - "updatedAt": "2026-02-19T02:24:13.496Z", + "updatedAt": "2026-02-24T10:49:37.279Z", "postProcessHash": "fb96a279c7d3d28a24d49f39b95123118012a3e1717b7a648d7314138692fd2d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.503Z", + "updatedAt": "2026-02-24T10:49:37.285Z", "postProcessHash": "0c6fe3c07d2e2102e2539ff2136c567dccc7fa722fb78fdf48664975af9d8403" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.554Z", + "updatedAt": "2026-02-24T10:49:37.320Z", "postProcessHash": "0791bafb2f1c722723e4d66f5d9012b20174921b11d185bd680b4d29ae882a20" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.582Z", + "updatedAt": "2026-02-24T10:49:37.347Z", "postProcessHash": "f40e1889e86b1271b0ca177ce9f8a5f71b139c8a21badbba0588ae87b4c5ecff" } } @@ -27848,19 +28172,19 @@ }, "40609d74eb848f0e88e65f8fa50f9cb83a2e2166bb9335143417f4a2c72f10b6": { "zh": { - "updatedAt": "2026-02-19T02:24:13.477Z", + "updatedAt": "2026-02-24T10:49:37.276Z", "postProcessHash": "9863f5d3e8c385a571e0c360fdebe2d39d4090418a25177d649c3b6e37ea3019" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.480Z", + "updatedAt": "2026-02-24T10:49:37.277Z", "postProcessHash": "d9b429ff66db4ca302d080887e998fdc799c7030bf631f4f82ea36e96f2e63f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.508Z", + "updatedAt": "2026-02-24T10:49:37.292Z", "postProcessHash": "013ae4bd85765e9c6df3e72d46170184cf731b09e11394f6efdede917ef79eaf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.516Z", + "updatedAt": "2026-02-24T10:49:37.298Z", "postProcessHash": "d1ca9c9bcfa42470e506d4caae281df0e75624c6c939d50259ded6dd5d5115dc" } } @@ -27910,19 +28234,19 @@ }, "836868867249a73bd688e79e8c6f157413dcd6e1bb7747bea4d5cb3151d2cbf3": { "zh": { - "updatedAt": "2026-02-19T02:24:13.477Z", + "updatedAt": "2026-02-24T10:49:37.311Z", "postProcessHash": "70318db5883356a0a075491b911ea0361eba3f278a5b7e7541e4af9426b22a9b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.480Z", + "updatedAt": "2026-02-24T10:49:37.313Z", "postProcessHash": "1996981d26d6df54aa21cea7b33b1ac71b5a50fabe6abd650dc106fdd60fd100" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.562Z", + "updatedAt": "2026-02-24T10:49:37.328Z", "postProcessHash": "3beb8b9a12e8b8d2fb45feb998457c8ab365c899a5a41f05ef292ebb10b04d11" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.579Z", + "updatedAt": "2026-02-24T10:49:37.344Z", "postProcessHash": "9a137d12264f1d43f6294c8054a632f62e0136c7ce3962c084dfd6c930022c64" } } @@ -27986,19 +28310,19 @@ }, "4464c0ec015a71a17f1681c09fe005f026d6910813c61eb0fa30d03dcbe5771f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.481Z", + "updatedAt": "2026-02-24T10:49:37.277Z", "postProcessHash": "3b524251ee70649b31d4d6d1b5ae7553d3dc24a38fc86c07df4caa137e1b276f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.481Z", + "updatedAt": "2026-02-24T10:49:37.278Z", "postProcessHash": "05c13103184363e026118abbf173bd4f7b3880d4a193564b39897656c3c71559" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.500Z", + "updatedAt": "2026-02-24T10:49:37.283Z", "postProcessHash": "31f9dc55bc00d842701d5567eb265a1c554b8970c039ee282038b265fc76f77b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.515Z", + "updatedAt": "2026-02-24T10:49:37.337Z", "postProcessHash": "46f35ef4846b08cf822ecf3840f89a1e586d8bf0c3f0589ed2d421463baf4e71" } } @@ -28020,19 +28344,19 @@ }, "24edfc1748bd75656071b280ec231653c533e410753085f2eee414bc364bc68a": { "ru": { - "updatedAt": "2026-02-19T02:24:13.495Z", + "updatedAt": "2026-02-24T10:49:37.279Z", "postProcessHash": "3a3d89c5956cf9c57d91fa830f6689e92c9957a2bd9b24394e8cf640bdaff755" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.498Z", + "updatedAt": "2026-02-24T10:49:37.281Z", "postProcessHash": "fda66639bfc39a41db4d0dc85bc48aaa35e6c9986afb503a723129b58184399e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.507Z", + "updatedAt": "2026-02-24T10:49:37.290Z", "postProcessHash": "9cfd19a6dd2b207d69da98110aedfd257f764242b8837862052c86a80719ff08" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.513Z", + "updatedAt": "2026-02-24T10:49:37.295Z", "postProcessHash": "6f989809697f6868ef4d05a67aec561b1235f9b25137e48a0537b818ff7d8ba0" } } @@ -28068,19 +28392,19 @@ }, "6a6aee101863fbdf7c7bc3c73128e0103fe60c7e92f2a9df552377be636f5dcf": { "zh": { - "updatedAt": "2026-02-19T02:24:13.470Z", + "updatedAt": "2026-02-24T10:49:37.267Z", "postProcessHash": "2ed638d8a3b0d233192212f2dcd8055e10a2b3a843a0f527aeb430608b26ac4b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.473Z", + "updatedAt": "2026-02-24T10:49:37.270Z", "postProcessHash": "ad24217d00ec9e41d971dee19129ae33007fb3c8cc4b56b7e25c4187449ab4fd" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.473Z", + "updatedAt": "2026-02-24T10:49:37.271Z", "postProcessHash": "41c253f95128ad625ebbea1c5daa275ad9c8a6a0264c64091d506ff9c06d9ec0" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.568Z", + "updatedAt": "2026-02-24T10:49:37.332Z", "postProcessHash": "dae0aa92f0e4a342699b2d4be66d583474d6139d3958a3cb2df06286753512f4" } } @@ -28116,19 +28440,19 @@ }, "e42b72427e17e17748053d8a0dc9afe218e9b17226c5a66aec8b14dc70f8eb4c": { "ru": { - "updatedAt": "2026-02-19T02:24:13.464Z", + "updatedAt": "2026-02-24T10:49:37.262Z", "postProcessHash": "1db259d71ec92105b9d673251a49135ef5991206aca5be95e0e7f39587493de9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.465Z", + "updatedAt": "2026-02-24T10:49:37.263Z", "postProcessHash": "772f05ed7048719551af476d2b1bdc210656dd974fafdb80cf42ea648060ca21" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.466Z", + "updatedAt": "2026-02-24T10:49:37.264Z", "postProcessHash": "b2204c5e189bc34a624f751681bd1bb33d9c1d0a2bd1327de52c08d17f6ec974" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.576Z", + "updatedAt": "2026-02-24T10:49:37.342Z", "postProcessHash": "d61e47b2584185c5087946369c776cbc13b02984bc75b633319f8d17d40d7197" } } @@ -28178,19 +28502,19 @@ }, "c4a4b3b9bf854cc7cf9de8b6c0487d44fc7f1467c1b16ebfca9080b72a791cf7": { "ru": { - "updatedAt": "2026-02-19T02:24:13.500Z", + "updatedAt": "2026-02-24T10:49:37.283Z", "postProcessHash": "075dacfcebd9606c0ad348fcfd3e274b114b279c87b9e73b714a4c2635d469e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.501Z", + "updatedAt": "2026-02-24T10:49:37.284Z", "postProcessHash": "89ee27d1fb0494bd9595201959262abef3373dc4e9e4251d105f77c6d3596709" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.502Z", + "updatedAt": "2026-02-24T10:49:37.285Z", "postProcessHash": "6b49b86eaebb765a16cf510683b91848490bb8aed639d0d59cda8b7e47de593b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.516Z", + "updatedAt": "2026-02-24T10:49:37.338Z", "postProcessHash": "87878e1990f5b6e57d70a266bd9f56f76f87556208275d514fdb5d23bdb5ec69" } } @@ -28226,19 +28550,19 @@ }, "7e54cb55359429eb36d95a1bc17ad04042f8018f229ae264cefc77a1d01db63c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.467Z", + "updatedAt": "2026-02-24T10:49:37.265Z", "postProcessHash": "e3fa74cd3a2a9e071d4a185bb62f12d5d99b264498069b958da9a5a8e01426a6" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.469Z", + "updatedAt": "2026-02-24T10:49:37.266Z", "postProcessHash": "b7155a0e6ad17811f56028895286fa1faabd554b5b2452fb1a4075c961f03ddb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.472Z", + "updatedAt": "2026-02-24T10:49:37.269Z", "postProcessHash": "6ec8b77ee29260e5f8f869ea04c19fb9429aff2a77fde94106d09035684a1999" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.514Z", + "updatedAt": "2026-02-24T10:49:37.297Z", "postProcessHash": "7a37990a0d58d69f26306e7fe07d30833db4a207ad77767e4c37721d92898b4e" } } @@ -28274,19 +28598,19 @@ }, "d5eb731279ac5474d6fbaa9cf769bd526fc92474f20617ab58fd7cca4e052c0f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.467Z", + "updatedAt": "2026-02-24T10:49:37.265Z", "postProcessHash": "74d024d9da3eace647a44f84a4724ff386c1c606bd1c6fc7db402bbdae51de23" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.471Z", + "updatedAt": "2026-02-24T10:49:37.268Z", "postProcessHash": "36546cc6e02c5beee916d44d22d8c682019d44f3a5bfc047750899fe33d58373" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.471Z", + "updatedAt": "2026-02-24T10:49:37.269Z", "postProcessHash": "39b683d76e87cb35f30f6a51e9a51175f2776da29d54df2e3020b4362d9b1507" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.515Z", + "updatedAt": "2026-02-24T10:49:37.337Z", "postProcessHash": "57bcb50ea084a87ebfbf4368364d6634409f2907279d6f1992a3976d6a521997" } } @@ -28336,19 +28660,19 @@ }, "27acfdc45db108289056dc41247f73c8f8c78d317db7693ade6778d14ac22643": { "jp": { - "updatedAt": "2026-02-19T02:24:13.539Z", + "updatedAt": "2026-02-24T10:49:37.311Z", "postProcessHash": "55a1c6a95f8f3b235bcb0ee6a621f404afc4a984dad3077b5c672a7ae6b39fb7" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.550Z", + "updatedAt": "2026-02-24T10:49:37.314Z", "postProcessHash": "923209dbda41513156369fe2578f5c6d618e83174c5349806298981d0ff1353d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.550Z", + "updatedAt": "2026-02-24T10:49:37.316Z", "postProcessHash": "0b68a834b3a759b16631162bc892d714cbaf9a509617e7c18fd6eb343a7ab05a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.579Z", + "updatedAt": "2026-02-24T10:49:37.345Z", "postProcessHash": "1aefd2829d0d2b86d756068bd0d527f465ca587a4500a6fd1932f446129251b4" } } @@ -28398,19 +28722,19 @@ }, "18b1be32b61fce0a1de7c85b2fe51465dece9556e9e4417de8de1d19bbf746ae": { "zh": { - "updatedAt": "2026-02-19T02:24:13.475Z", + "updatedAt": "2026-02-24T10:49:37.273Z", "postProcessHash": "b4d0aacee7bf08dee057b5507be057bcb76acef279a387db5d534ef37a8584f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.479Z", + "updatedAt": "2026-02-24T10:49:37.312Z", "postProcessHash": "a9ffadf241c99e99ef473ee224266e4b8ecea85267342789583c49d311762146" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.502Z", + "updatedAt": "2026-02-24T10:49:37.315Z", "postProcessHash": "b0b7e6c08b42876b67b8e789eb55ea42c526e756b9e55edd88b57372a42d0a5f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.575Z", + "updatedAt": "2026-02-24T10:49:37.341Z", "postProcessHash": "1147ca85e034ded94bc1177392a6d8e7f52a6a0a9ea5935abfbb3aae1e629010" } } @@ -28446,19 +28770,19 @@ }, "1868c4e5f2e82532e09e28fe8cdefafd680720fe7ed108e9c63832983bbbd03e": { "ru": { - "updatedAt": "2026-02-19T02:24:13.528Z", + "updatedAt": "2026-02-24T10:49:37.379Z", "postProcessHash": "0bdff606395e662a106586232a166d94e294917c4d3b171c91ccb014ec220cee" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.529Z", + "updatedAt": "2026-02-24T10:49:37.380Z", "postProcessHash": "dbcbd3f6658d4c3a64de72281458a438278f68ec57b0c4ae0462a3d69d70c7c6" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.530Z", + "updatedAt": "2026-02-24T10:49:37.381Z", "postProcessHash": "6190c49a34528de21ec548d5dcbe19c80aaabad55b0510ecf83aa172da4855ca" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.568Z", + "updatedAt": "2026-02-24T10:49:37.481Z", "postProcessHash": "4db398885bac475138b6d82afa18ea10f9861a654e649dd635be28120d095bb2" } } @@ -28494,19 +28818,19 @@ }, "3f3e8c42f63210af73124341e685737c53fa7c6e8622fd1ed7745b936690ef82": { "ru": { - "updatedAt": "2026-02-19T02:24:13.463Z", + "updatedAt": "2026-02-24T10:49:37.262Z", "postProcessHash": "c5fce24e49a57da25c72405f3dcf5a677defe568d719809e6056bb603b95d382" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.465Z", + "updatedAt": "2026-02-24T10:49:37.263Z", "postProcessHash": "3476fb49274c645a52c507b67d9e6846e8360c91250818d4701c0b0b436f69fd" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.466Z", + "updatedAt": "2026-02-24T10:49:37.264Z", "postProcessHash": "3bc078230e3f34bd063e914745d6b8835bce5686829c12b72a4a846ffabc1461" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.581Z", + "updatedAt": "2026-02-24T10:49:37.347Z", "postProcessHash": "c2adc82ec48dfa5750400fa52401f7e6a4383838cd46f77df3d8c50f9d69a894" } } @@ -28539,19 +28863,19 @@ }, "bfb2e829231a0b466e39ef3eb2928506560ad7ffad4043b2d5ff10e405e3c8ad": { "ru": { - "updatedAt": "2026-02-19T02:24:13.510Z", + "updatedAt": "2026-02-24T10:49:37.292Z", "postProcessHash": "785963b5cfa786be21bfad775c0f5a0ff491cff637f7e309bf6306ba86e612b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.511Z", + "updatedAt": "2026-02-24T10:49:37.294Z", "postProcessHash": "9d09ab1ef0aa0ec69e3f79fa407f02ead475746d2cb640ca3b21b6867fbcc96d" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.512Z", + "updatedAt": "2026-02-24T10:49:37.294Z", "postProcessHash": "4ba17e1f4466dc5b8f577bdb1526a5971cd79afdcf4aa89bd3e0ab8ce8475438" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.520Z", + "updatedAt": "2026-02-24T10:49:37.302Z", "postProcessHash": "0d792402bde4853b3219f4913280c920b7542554d689fc68813257f4c11ce93e" } } @@ -28587,19 +28911,19 @@ }, "ca244c04d22456973510466bbce705ca3228c8de0cb2aff2b2b51e1c289328c8": { "jp": { - "updatedAt": "2026-02-19T02:24:13.552Z", + "updatedAt": "2026-02-24T10:49:37.317Z", "postProcessHash": "078e962b974ac6f1371a10a49a7a2809be36e2a3cadfbad0fa5787424d281e7a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.560Z", + "updatedAt": "2026-02-24T10:49:37.326Z", "postProcessHash": "b2477bc9c6bd808ee0ae4e4aedf1f0c174cf96b8b9abf8d59ad1bb6b39003b84" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.563Z", + "updatedAt": "2026-02-24T10:49:37.329Z", "postProcessHash": "c7fd4f4e5d1a3efa63e8649208d8d37772c98c664fd2cd87b6430ed87f279634" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.572Z", + "updatedAt": "2026-02-24T10:49:37.338Z", "postProcessHash": "364021e2293c48187de0ba7deefc710f5312579a87c9a6f929c918decaa8ac6d" } } @@ -28635,19 +28959,19 @@ }, "03b7a8907768f5b6c41f65b6cf1cc3de76ad40c464e749597826b12f632fe09f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.674Z", + "updatedAt": "2026-02-24T10:49:37.528Z", "postProcessHash": "faeb8b7e1f5a5c0a8c2a9f9eab897233742dea808f44854ea448069f90d97eb7" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.675Z", + "updatedAt": "2026-02-24T10:49:37.529Z", "postProcessHash": "e78d8b83cd0c00db5798c56d34b0d648856b266b7dc5efc3027d67ced843bfd0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.685Z", + "updatedAt": "2026-02-24T10:49:37.543Z", "postProcessHash": "489bfcd0c89eaf574957d5302b6e53a6ec1bb4a3f25dc36f79c57cb50311269e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.698Z", + "updatedAt": "2026-02-24T10:49:37.559Z", "postProcessHash": "e3eef5d8060c2549465673a656c90d8a8ac6a76bb15a94b37e75dac45dc8890b" } } @@ -28655,19 +28979,19 @@ "1d4d6e77bcbd23d001d1913843fc6c9748753173b9770ce333d87441932130ec": { "30da2cbfe92790be7c2f95f485c2ea63c4ff423ade0453d52e65f78a6fe652c0": { "jp": { - "updatedAt": "2026-02-19T02:24:13.589Z", + "updatedAt": "2026-02-24T10:49:37.438Z", "postProcessHash": "d11512251fad1e69f2b21d67dc0af2c6b5181df9e72f88a5976070010a1be125" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.589Z", + "updatedAt": "2026-02-24T10:49:37.439Z", "postProcessHash": "78d25fbbc48ea834f6a45d8443caa404c8d3ef5995cdc2552d6815efee7f4d4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.588Z", + "updatedAt": "2026-02-24T10:49:37.438Z", "postProcessHash": "86be66d6a1b72899180a27fffad0cb4243dd940c76020f188281b83081fead4e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.709Z", + "updatedAt": "2026-02-24T10:49:37.588Z", "postProcessHash": "e58dab5e84b7a317ac89ca429363a18ff9114db00143e296de097212c6ba7b70" } } @@ -28689,19 +29013,19 @@ }, "ab81ccbd0861e8e936ec1026fcd23af9d6765f2276b91a98fea0d021b20dfac0": { "zh": { - "updatedAt": "2026-02-19T02:24:13.526Z", + "updatedAt": "2026-02-24T10:49:37.442Z", "postProcessHash": "92de5109bd0fccb6b73e2215bfe745d6914cdc4088f1e90d897f2256b2b4c792" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.603Z", + "updatedAt": "2026-02-24T10:49:37.520Z", "postProcessHash": "9352654d91ee6ee96bd3e5983257981dcecb6a09558880b1145dc2a9507d8a31" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.604Z", + "updatedAt": "2026-02-24T10:49:37.520Z", "postProcessHash": "7c1bfcb615047f159a3f19bf8db89d53e9564b575d77d0d3faba4cfb1e407424" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.709Z", + "updatedAt": "2026-02-24T10:49:37.567Z", "postProcessHash": "2b4296caa5fdd39c98a8ca6c2dd67ec212704b7146fde51cec8d4fb5e30340bd" } } @@ -28737,19 +29061,19 @@ }, "9d0b512a93d3b06761839d313959897f4a0a29ab01ad79885133fd672238c26f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.672Z", + "updatedAt": "2026-02-24T10:49:37.522Z", "postProcessHash": "1a50a14751fa1e6f67e909d7ac942dc770c0d2358e5e86920b3defc3a18b15cf" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.673Z", + "updatedAt": "2026-02-24T10:49:37.528Z", "postProcessHash": "f2bca71daa3b7552bafea742c4d45e8ca1f19a8d6a38b11b94a1834a1b8e4f35" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.680Z", + "updatedAt": "2026-02-24T10:49:37.534Z", "postProcessHash": "eed998a6d3d92b9e9f4a7afd8d7557dae7304e80256f8a83912654ae1946d22f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.703Z", + "updatedAt": "2026-02-24T10:49:37.584Z", "postProcessHash": "c70f83bd8e82b193fda833f1af4438d30c96ed168c44cf46c5585c8bb21eea6e" } } @@ -28799,19 +29123,19 @@ }, "23d578575bdcde38b026ee6e7007b6092581cdae1fe7c443e385b081abb3baef": { "jp": { - "updatedAt": "2026-02-19T02:24:13.687Z", + "updatedAt": "2026-02-24T10:49:37.545Z", "postProcessHash": "a58653e32d9e488637ef9773e951f0d859f6581c9b85c91719bbedf1ecdeba1f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.688Z", + "updatedAt": "2026-02-24T10:49:37.546Z", "postProcessHash": "9e90a9a21e273c1cae728166a32a8b5408d8125360fe703a4b02ce625c9a7d6f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.690Z", + "updatedAt": "2026-02-24T10:49:37.548Z", "postProcessHash": "6049e4a11da8cc8d91c1e6087e4298d03c3e378810ade4c753ae6ac56dbb45e8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.713Z", + "updatedAt": "2026-02-24T10:49:37.568Z", "postProcessHash": "57ac2bfef3dfa81510cc9af05a3ee4742455bec9e87ee615f2c2f420d09929d4" } } @@ -28847,19 +29171,19 @@ }, "4beb73b02ae86c7383fb0e39e826124769775a6de0166a38b067062e71f57811": { "ru": { - "updatedAt": "2026-02-19T02:24:13.614Z", + "updatedAt": "2026-02-24T10:49:37.526Z", "postProcessHash": "6446cf3b292168e598b3b1df4081846902fd0188a71e584a1a2f9d72c17d1b35" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.615Z", + "updatedAt": "2026-02-24T10:49:37.527Z", "postProcessHash": "2054a334a3ef686344ca00f8dfacb85167653a49ba77960d5d259f737c789eff" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.618Z", + "updatedAt": "2026-02-24T10:49:37.531Z", "postProcessHash": "fff10fcf8e21c24b2b53f59e8427b379253a1d9cdc042d9d7fb0fecadbe3f948" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.702Z", + "updatedAt": "2026-02-24T10:49:37.563Z", "postProcessHash": "fb6fed184093ca71160689935fd6aa5e43e12752753f969941bb20141a54066a" } } @@ -28895,19 +29219,19 @@ }, "82c77206615f7f1655414d9a2748f6a13d1010f996dbef62d275c9ea65be4805": { "ru": { - "updatedAt": "2026-02-19T02:24:13.610Z", + "updatedAt": "2026-02-24T10:49:37.524Z", "postProcessHash": "13e1f5b17e37871cb1598454c88148dffc287bd48392e21268e398338bba8ee8" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.611Z", + "updatedAt": "2026-02-24T10:49:37.525Z", "postProcessHash": "7f17ac0219c5b7b03df0a3d7bf9af6ab9c86674f8e26704ad88dab4b457e4690" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.686Z", + "updatedAt": "2026-02-24T10:49:37.544Z", "postProcessHash": "d3c887ad558122439437c7d0855804b8551e1f05593432f79cf2b490d089ec73" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.704Z", + "updatedAt": "2026-02-24T10:49:37.565Z", "postProcessHash": "7ff9ab59e875fa9652b4ff76e9e2f6d1c561b8469874a35968270643b7413485" } } @@ -28943,19 +29267,19 @@ }, "47c9c0de294d2ee8240eacebc91e01d5b37fe2ca3b74b972d0c8dca3dccefa60": { "jp": { - "updatedAt": "2026-02-19T02:24:13.610Z", + "updatedAt": "2026-02-24T10:49:37.525Z", "postProcessHash": "e4e2afd40e0ada41564ab91c4482d56683d3516f11da6448654704dec6189253" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.626Z", + "updatedAt": "2026-02-24T10:49:37.537Z", "postProcessHash": "eab37781c54c005a46fe1fee598d2c4f74f5113e6f90ad76514efb1b9d4eded4" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.631Z", + "updatedAt": "2026-02-24T10:49:37.538Z", "postProcessHash": "5a423f3967bc0df509e120b5ce090e70ae4dac11ff9f2fd675fcdd08d80b958b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.705Z", + "updatedAt": "2026-02-24T10:49:37.566Z", "postProcessHash": "063e63dca7f9e8f5fe9435bc2bbab9cb953bcf5190ea711495c29637c8e52d08" } } @@ -28977,19 +29301,19 @@ }, "3247eecaaaa1f13763d5e7098c262be6add1b1fc6d885823794a7554788afb5c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.525Z", + "updatedAt": "2026-02-24T10:49:37.441Z", "postProcessHash": "9470b26c7ca44bee65765ac2305304fe223bcb917281880b8c8a10144d720f77" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.597Z", + "updatedAt": "2026-02-24T10:49:37.446Z", "postProcessHash": "521c25d51f2355e39503c98a9769dafdc2c2d7a89c17a07c5e7a70b60d583772" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.598Z", + "updatedAt": "2026-02-24T10:49:37.516Z", "postProcessHash": "b65678a8b6199de8465d6192d8e932c7fc4095a782f2eebe43069b33926f5e90" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.697Z", + "updatedAt": "2026-02-24T10:49:37.557Z", "postProcessHash": "b5d34792f64d8c9bfa4acdb4f7f3927ecfa871de9d460a3f0bb2b4471d045a38" } } @@ -29025,19 +29349,19 @@ }, "1b2318201922401927ce5d70f76cfd0c9dc641312c29f79b5432255be018d5b4": { "jp": { - "updatedAt": "2026-02-19T02:24:13.622Z", + "updatedAt": "2026-02-24T10:49:37.535Z", "postProcessHash": "9d4c756496be7bcdf83a62bca246b888cd59cbf42150c20db655bb73ff91028f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.623Z", + "updatedAt": "2026-02-24T10:49:37.535Z", "postProcessHash": "1813556f793487618d050949c53987b0c0c115030be930a37081517807242b07" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.690Z", + "updatedAt": "2026-02-24T10:49:37.549Z", "postProcessHash": "5d7ebbd04e08e41d86185b7fc536aaf7740b88391e82169d1ec5f77c12346709" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.706Z", + "updatedAt": "2026-02-24T10:49:37.566Z", "postProcessHash": "e40fe23fbad193553bdbfd0555fa1cdb970b6c42c3ac535adee44b4fd0f78e2a" } } @@ -29101,19 +29425,19 @@ }, "03f4e233d3853b614165b6a3f0e2a5a102b4439f835599c5740c7e56a546a4c0": { "ru": { - "updatedAt": "2026-02-19T02:24:13.675Z", + "updatedAt": "2026-02-24T10:49:37.529Z", "postProcessHash": "f896b19a362c469338e0fadfe6cb547de1a9c882f8cbaa31cc2e7c34596b610e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.683Z", + "updatedAt": "2026-02-24T10:49:37.539Z", "postProcessHash": "109ea655c38d9456f1acdafe4b8ac32ef7d6c1989e5b1faa93051cd37e66fd9d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.683Z", + "updatedAt": "2026-02-24T10:49:37.540Z", "postProcessHash": "ac499f6cffab6d2ab03b65d4c4adf903785641b906d3a35c53f18370e58120e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.706Z", + "updatedAt": "2026-02-24T10:49:37.586Z", "postProcessHash": "cc9326c4431987773c68fa19ff71da8f64bf2623cb9e1e93c1107d510cca3e25" } } @@ -29135,19 +29459,19 @@ }, "1721ae89613a57125020e8d254eccfe234778fc3ce89a1de48cdcbfd17e05e64": { "zh": { - "updatedAt": "2026-02-19T02:24:13.597Z", + "updatedAt": "2026-02-24T10:49:37.445Z", "postProcessHash": "55639ef91c9c8afb9fb19fa8ed4e872541235c50fc3fedabfb770609344c84ce" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.599Z", + "updatedAt": "2026-02-24T10:49:37.517Z", "postProcessHash": "396d7ea43e8c8898854a47769c64db923b3fa83381b138db4ecb95c47e479404" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.601Z", + "updatedAt": "2026-02-24T10:49:37.518Z", "postProcessHash": "330d48e041adc6d56980b191565d586a7c79323c27ad160e7e7a9f9af3b8ab9e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.699Z", + "updatedAt": "2026-02-24T10:49:37.560Z", "postProcessHash": "5828986e3464ecbd9a1052d177a5e36c33ed7a944cba09faee4cac016e7c79ba" } } @@ -29183,19 +29507,19 @@ }, "2f107024e9dc1a15d12037d091375901856c69dee1e055024c5505fc6b7e8524": { "ru": { - "updatedAt": "2026-02-19T02:24:13.608Z", + "updatedAt": "2026-02-24T10:49:37.523Z", "postProcessHash": "fd2bbb64096e71be865ec50db6d9d5900cb28121f030bd72d0f50183806e55ba" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.619Z", + "updatedAt": "2026-02-24T10:49:37.532Z", "postProcessHash": "81c85f5e65f69275acf992ec6de304ac6bbe6c0396486d9ccceaaf430d432c5d" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.685Z", + "updatedAt": "2026-02-24T10:49:37.543Z", "postProcessHash": "d852e7f42bf147bcd458a2be7bc480f263d75f46f3fdff3b27c69a908fe8a96e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.705Z", + "updatedAt": "2026-02-24T10:49:37.565Z", "postProcessHash": "e01f14bbcd20ee0f06aab4c23ea05270f97791cf4bb77578580534d20955da8f" } } @@ -29217,19 +29541,19 @@ }, "e7475e17bc67a2ce2ba2886cbe97d1cd120b5226cfa1e8cae4acf361eb1c9394": { "ru": { - "updatedAt": "2026-02-19T02:24:13.527Z", + "updatedAt": "2026-02-24T10:49:37.442Z", "postProcessHash": "2a9309e46f9a572c5dc99923f202a0891f159c99e13c829e2b8beecfe60cec16" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.591Z", + "updatedAt": "2026-02-24T10:49:37.443Z", "postProcessHash": "9d3cbbbfeaa54f84bb756469a826360e443839dc47dc5e3d464d704d8b3a7057" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.595Z", + "updatedAt": "2026-02-24T10:49:37.443Z", "postProcessHash": "988fd2cccf16ad064cda1314cc866c5f1ea3a01cecb4dbf04a569c5ccd24bc8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.703Z", + "updatedAt": "2026-02-24T10:49:37.564Z", "postProcessHash": "6f95b94f72d8eb71bf8b51457e00d35d62655e7e4ee00310613106d96eae4148" } } @@ -29251,19 +29575,19 @@ }, "18821f3758fc11f3a4a028d9785717c8c00e583cc89e010c058d3f0f7d13ccf8": { "ru": { - "updatedAt": "2026-02-19T02:24:13.595Z", + "updatedAt": "2026-02-24T10:49:37.444Z", "postProcessHash": "174ba49ed5acc555123fa8d7ec42ccacb8ffa8e314d2cded8593afe90abc53a7" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.596Z", + "updatedAt": "2026-02-24T10:49:37.445Z", "postProcessHash": "d14e4e246d2bef27880d58164a64f3343fe2010887fcb212457ddc267d09aa4f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.601Z", + "updatedAt": "2026-02-24T10:49:37.517Z", "postProcessHash": "37ceb1ae5abebcfe582b188d128ecc3dcf309d7c49338e6a6fa8f46ba70fcc37" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.700Z", + "updatedAt": "2026-02-24T10:49:37.562Z", "postProcessHash": "c209a7d0a3c570a74b73b113a819d8adbfbea718d7cbf77265e1363149d21b6c" } } @@ -29313,19 +29637,19 @@ }, "ee685c18771c5f33ce86b4149d86ba19debe32ba618fee308833f20c491e4103": { "zh": { - "updatedAt": "2026-02-19T02:24:13.684Z", + "updatedAt": "2026-02-24T10:49:37.540Z", "postProcessHash": "6e95be79b1a33c8e9dfd8f78962820ee1ae931322bd65407dfc4d6131faf7c89" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.691Z", + "updatedAt": "2026-02-24T10:49:37.550Z", "postProcessHash": "d6cba9c5125fe8bc421412a2292569ca0f85bd308e1332623a3895cc40a3b071" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.692Z", + "updatedAt": "2026-02-24T10:49:37.551Z", "postProcessHash": "dd7aa1f8e9e3fe5eb8acf75ef2f7c041a3e02b4d724e499a8e6a2a444a1126eb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.712Z", + "updatedAt": "2026-02-24T10:49:37.591Z", "postProcessHash": "6b17e59061b508a6ed293d0195505232d0f0d0da51e58db0b9bc5195f0940e4d" } } @@ -29347,19 +29671,19 @@ }, "ddde90e3ccb5f34d137e9cc2bb0be420fb8d5841aba60a39e366ea037a6cfc04": { "jp": { - "updatedAt": "2026-02-19T02:24:13.524Z", + "updatedAt": "2026-02-24T10:49:37.440Z", "postProcessHash": "bd61da584f1822287b9491614fea7d10df13f9169d105759d791a01aa7343664" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.596Z", + "updatedAt": "2026-02-24T10:49:37.444Z", "postProcessHash": "19c845925b88b5d9be1d95a20ceeb4db96cc4789a7572f84126fa43bb0e5e9f8" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.602Z", + "updatedAt": "2026-02-24T10:49:37.519Z", "postProcessHash": "de2d771cac2869a14bfd97045d356279c9e4fca9f44e4824355dfa14583c377f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.703Z", + "updatedAt": "2026-02-24T10:49:37.564Z", "postProcessHash": "86cd33c7caefefa777ec39f23f10f3e186a84ad2fa9131e3ceb0127848eb598f" } } @@ -29367,19 +29691,19 @@ "c593a21ae24f2adf1116e2099fe2cac24733672a1fdacfbb7d9be523e674a070": { "3888654c7ba7da0474c2c33ac3100faa58509581ecb5ff97147be80f6c3ddc7f": { "jp": { - "updatedAt": "2026-02-19T02:24:13.453Z", + "updatedAt": "2026-02-24T10:49:37.307Z", "postProcessHash": "4350fbb0b8f2cbed1b4f788d12b09be49e174f8d1b6bf49463253b53686fad2b" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.454Z", + "updatedAt": "2026-02-24T10:49:37.308Z", "postProcessHash": "b93eeb410721b88743323db78bd17e18462a03a19ebd8510750aac5ab2ea2e3c" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.453Z", + "updatedAt": "2026-02-24T10:49:37.308Z", "postProcessHash": "b0bae77ff47054a2241548719ec451c087b99f01d8f3e89e865d6f842950aea1" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.567Z", + "updatedAt": "2026-02-24T10:49:37.479Z", "postProcessHash": "20318788f18af06fc5deb2d0034acf9adaaa64a960b5f9b483df68d4a4288cc3" } } @@ -29401,19 +29725,19 @@ }, "35f8eaae6f72ed9dbb1398b481e73ae6b825b839e46e55d640306afcc8d1d1a0": { "jp": { - "updatedAt": "2026-02-19T02:24:13.598Z", + "updatedAt": "2026-02-24T10:49:37.448Z", "postProcessHash": "2afc18e4cd999b6e2afaff269d457ec5f236d37899dc4f1b94d79120d17227e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.602Z", + "updatedAt": "2026-02-24T10:49:37.518Z", "postProcessHash": "299ee66ac329acbb45cb0e4dc5691242fbf477240bf58f53ec8d554a65f2929c" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.603Z", + "updatedAt": "2026-02-24T10:49:37.519Z", "postProcessHash": "4bca6c77996eff3b94a3d47c55773c1639eed593abe2b78d16c16e7becc5b1c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.698Z", + "updatedAt": "2026-02-24T10:49:37.557Z", "postProcessHash": "6e685426b4942e7952e91da3ad22552ad0e48a2ed714286c924b17bec3836f14" } } @@ -29463,19 +29787,19 @@ }, "803842387d45608539a0d7cb3dba79208ac212b7fd51155c90808151a6ca5959": { "zh": { - "updatedAt": "2026-02-19T02:24:13.672Z", + "updatedAt": "2026-02-24T10:49:37.524Z", "postProcessHash": "09f77ddd0ce9325e7fb9f6484114b9ffb3e4bc7978146594e167c83db1ca179e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.693Z", + "updatedAt": "2026-02-24T10:49:37.552Z", "postProcessHash": "2e15fe5ab8967eb2b9a4c662d409b12ec93481a9eae02f2a5d58bf326fe93742" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.695Z", + "updatedAt": "2026-02-24T10:49:37.554Z", "postProcessHash": "e2ebc66135535513e0515605b65b49c3c4cfa12dcaeda826c630398abc1a4fce" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.704Z", + "updatedAt": "2026-02-24T10:49:37.585Z", "postProcessHash": "b60af0d698dcb9d1fb709fd6e9d8d32298cc8e731e8c52d6d209973a43427171" } } @@ -29497,19 +29821,19 @@ }, "dd236404a5a1a528801611fb8e3e3bf227c05959e00037a1ae7ef13bb968ce37": { "ru": { - "updatedAt": "2026-02-19T02:24:13.605Z", + "updatedAt": "2026-02-24T10:49:37.521Z", "postProcessHash": "57c29fca0d2e5dd90d9d08a7b534b0f0f62064303a10437323798079f2be03ba" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.606Z", + "updatedAt": "2026-02-24T10:49:37.521Z", "postProcessHash": "e8f87dbe17a104f86185df55c58599c8d58b10944d0bfa46a19c086b721ebf0d" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.607Z", + "updatedAt": "2026-02-24T10:49:37.522Z", "postProcessHash": "895e4dbc22737612a9361a8b9cfac77604d442ef5926222be46eac462c07de29" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.697Z", + "updatedAt": "2026-02-24T10:49:37.556Z", "postProcessHash": "02a4bebe8b468eacffe68521ee02d5f9347981a8b738d50e8210bfaac26057d3" } } @@ -29545,19 +29869,19 @@ }, "c30cdf3133afce5d3a9a560cb24dfdb8dac0c246b877c38487e72115db2b2099": { "zh": { - "updatedAt": "2026-02-19T02:24:13.723Z", + "updatedAt": "2026-02-24T10:49:37.578Z", "postProcessHash": "4cc4dd16901e3f489f81e03581de0c70b4c23f1655c41d4643ef014cf2e32832" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.724Z", + "updatedAt": "2026-02-24T10:49:37.579Z", "postProcessHash": "bba685bc3ecfc41dcada5566e7407bc4a7db34bdcd3b6e94c8f8f74d0524d1f0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.725Z", + "updatedAt": "2026-02-24T10:49:37.580Z", "postProcessHash": "9973bffceb7552d0a62627d23a37bc7134cc6be66f10bcdcfb027e285ac8eeed" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.731Z", + "updatedAt": "2026-02-24T10:49:37.589Z", "postProcessHash": "eaa1bf03180d46ef330e6a3ff7bbd3b45fc96100a13db0ef9a197cb8fd8c5797" } } @@ -29609,19 +29933,19 @@ }, "82da4c4058b016a573f8c64403e3e052ed4f744c612ab36c190cf4b7aa0de9ca": { "ru": { - "updatedAt": "2026-02-19T02:24:13.660Z", + "updatedAt": "2026-02-24T10:49:37.505Z", "postProcessHash": "0d36e7c793a423691449ed4092bcc9f3299e7f6517fca1c0e395da954c987c42" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.661Z", + "updatedAt": "2026-02-24T10:49:37.506Z", "postProcessHash": "c265dcc955a10ba25b9df7263acb9a79b78a20fa0764c4a56d95d583cfce0cbd" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.661Z", + "updatedAt": "2026-02-24T10:49:37.506Z", "postProcessHash": "9bdbc247862450221c9ac9b894e086c574149ee17de7c7783c53b33de52bf1c0" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.728Z", + "updatedAt": "2026-02-24T10:49:37.582Z", "postProcessHash": "8a08dd235bc58662a912e47ce3ab652a66eb69a60cb0bb0f9ad1b7aa485da7a5" } } @@ -29643,19 +29967,19 @@ }, "0b04842677a371357ad1e749ab8d93709fbfd7fe4efca923ab563875c8986101": { "ru": { - "updatedAt": "2026-02-19T02:24:13.693Z", + "updatedAt": "2026-02-24T10:49:37.551Z", "postProcessHash": "3520fce27a3e2a8440e0cf0eea5310012a98a2b57f4bdb10e4bf8cefb1e7ca75" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.694Z", + "updatedAt": "2026-02-24T10:49:37.552Z", "postProcessHash": "be50ce84f79dcfc7dd0749a9cead09a92ea3a72a668eeebcd6e4bf1c857dc63a" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.696Z", + "updatedAt": "2026-02-24T10:49:37.555Z", "postProcessHash": "523316470e4280c59dba638ecfc598adb9ac306f7eb1f7950ed413b90ce7e794" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.712Z", + "updatedAt": "2026-02-24T10:49:37.592Z", "postProcessHash": "4649b35866098f2935dcee6ac89ee5f4a7cbed8375f5147fdd5384878bdca233" } } @@ -29709,19 +30033,19 @@ }, "c3c60d781f027a81dfb44df829edfad23d6cf2bb45ad6bccbb4d44127b587d2b": { "jp": { - "updatedAt": "2026-02-19T02:24:13.662Z", + "updatedAt": "2026-02-24T10:49:37.440Z", "postProcessHash": "82794ec858ac7aca906b071876834e4d8c07c2b894cf7fe98021a514118bbe1f" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.662Z", + "updatedAt": "2026-02-24T10:49:37.507Z", "postProcessHash": "f817dd16c22a0223cdb9ac1a22deea0bde0e4a36c42122046b76d175c641d02e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.663Z", + "updatedAt": "2026-02-24T10:49:37.508Z", "postProcessHash": "76ea250766ddf831547b6a17c669f4f6a0b4f3e2496c5e7de2b470c2454fc5ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.728Z", + "updatedAt": "2026-02-24T10:49:37.584Z", "postProcessHash": "0654891ddecaa6048d021b80684df052c0a529e52f313f286a8c9b9e924b7ed6" } } @@ -29821,19 +30145,19 @@ "3177435d774099d4ba686628bc971ccc42a54d0a0a211c8a4424bbc544e08540": { "f15d74887e89dbc77f9957e1568c4842460915108734894efa6e2f081275d68b": { "jp": { - "updatedAt": "2026-02-19T02:24:08.923Z", + "updatedAt": "2026-02-24T10:49:32.527Z", "postProcessHash": "dd71f578d9df84661571b80bca5395e9f12f766763975bf802b712756a87313c" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.922Z", + "updatedAt": "2026-02-24T10:49:32.526Z", "postProcessHash": "9e2561ce5358c26ec9269ce12757b02a9fe08f36b88aa5c0088c7f58c3d220bd" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.922Z", + "updatedAt": "2026-02-24T10:49:32.527Z", "postProcessHash": "0fc5f392b8bf53f1108896c0e4530cfc2fcd583627a4ba694191e54311b480d5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.044Z", + "updatedAt": "2026-02-24T10:49:32.656Z", "postProcessHash": "10e939d8ddd6bd12d77761c68e5095539194d20804523c5549b3224e1127d534" } } @@ -29855,19 +30179,19 @@ }, "c096ac52d9f3230f024e921c1986fe33ba27a9457666e130a6961fbeb7d30994": { "zh": { - "updatedAt": "2026-02-19T02:24:09.544Z", + "updatedAt": "2026-02-24T10:49:33.175Z", "postProcessHash": "abfdd458df6e2a1ff630379c18aafb05f1d5a419cb1ad1a69141b21c212a91af" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.545Z", + "updatedAt": "2026-02-24T10:49:33.176Z", "postProcessHash": "46d95f0044b876291a494d0343d6de97bc7f70a88a32fc469b25c4e058d72ece" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.546Z", + "updatedAt": "2026-02-24T10:49:33.177Z", "postProcessHash": "f33d133bad7833acab0e9f6a70df19eca1b4a84e9b42eb1b895fa88ecabd9b13" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.583Z", + "updatedAt": "2026-02-24T10:49:33.214Z", "postProcessHash": "58eed3730418b583f2379d2a632c4a8b08f5037802a0b0e8a2932a7c522270e8" } } @@ -29889,19 +30213,19 @@ }, "5efd5807ee1bc81d92f9a7ae070451ceed7a9a1b712324c183886c09c2924170": { "jp": { - "updatedAt": "2026-02-19T02:24:09.560Z", + "updatedAt": "2026-02-24T10:49:33.193Z", "postProcessHash": "e7bc5790073211254651cc4305514eab6d03fec163db57ca9ecc9dd4fa54bd5f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.562Z", + "updatedAt": "2026-02-24T10:49:33.196Z", "postProcessHash": "fb814530279308b9cb840d2137013bd9cda804a7d62c70e12be75bee8c1cb9d9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.562Z", + "updatedAt": "2026-02-24T10:49:33.197Z", "postProcessHash": "434d96ff4ec94f1fbee4fbae3c82f15099266e244e5f803e368ecdbac14087ed" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.577Z", + "updatedAt": "2026-02-24T10:49:33.207Z", "postProcessHash": "c991b37b1ebb473a6e6ad556f2e0503b2b57dd5b89bba0285eb9b51e9d654d76" } } @@ -29909,19 +30233,19 @@ "a030bf426b6662b4674be21ff621cb7fabbfd26f971ddb89ac770557065aa0cc": { "f732d015e8ca7a50761bad6c4404360438b7df18567a96df59faad98662b6017": { "jp": { - "updatedAt": "2026-02-19T02:24:09.453Z", + "updatedAt": "2026-02-24T10:49:33.082Z", "postProcessHash": "3a2ec65aa5d00870e9b87efae7602236b32579a4245f44c0fdebb83211eace0b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.534Z", + "updatedAt": "2026-02-24T10:49:33.163Z", "postProcessHash": "589c4b9ee6442cc8187b4b545234122ec5f4fe03d149fa0e469a9ba960f3a75b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.436Z", + "updatedAt": "2026-02-24T10:49:33.069Z", "postProcessHash": "1bbde4aa328ffd2dabda6d8d228c37be52577a08f837c5e6a29ce6f772812281" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.576Z", + "updatedAt": "2026-02-24T10:49:33.206Z", "postProcessHash": "59fc36092f9a465879c787c2d35f25adebe0e7ac62c457115770da8fc11b56db" } } @@ -29943,19 +30267,19 @@ }, "d6f1b16598e24a70ec06951249c54b328e4363ac2764add7a1b48483ce2ae085": { "ru": { - "updatedAt": "2026-02-19T02:24:09.585Z", + "updatedAt": "2026-02-24T10:49:33.217Z", "postProcessHash": "841e73d11e455d44c1e7a753eedb91d62a287473f26de9ef8ebd002fbc631c33" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.586Z", + "updatedAt": "2026-02-24T10:49:33.217Z", "postProcessHash": "ffb75cacbc643f9c3cedf0a7614c04cbfd8e3d41fbd95b3604b65af79ef3c917" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.586Z", + "updatedAt": "2026-02-24T10:49:33.218Z", "postProcessHash": "54f7bfd494ff95dc6fa8c419903d5f518170c11f123ea7ed9199de12e0526a27" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.582Z", + "updatedAt": "2026-02-24T10:49:33.213Z", "postProcessHash": "bfeca881f2e0450b1d52c4b2d3b628c06fd0ace2920a94c13c3f79633cc1d996" } } @@ -29988,19 +30312,19 @@ }, "4346d6013d3afeec58fec6dfaa3f99d2fad33eb5181ca64d3eb259bc616d0759": { "zh": { - "updatedAt": "2026-02-19T02:24:09.583Z", + "updatedAt": "2026-02-24T10:49:33.215Z", "postProcessHash": "18b23a9b1a7de3fbe7919cad5e03f4a7bea2317015f5072be5548fcd076c55d9" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.584Z", + "updatedAt": "2026-02-24T10:49:33.216Z", "postProcessHash": "ba92ec67b3c20819f4a87eea3f553dee67fffb9f6e24690a27c1a8b8d8edf6fd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.584Z", + "updatedAt": "2026-02-24T10:49:33.216Z", "postProcessHash": "4bc067beb1d68790193cde523976ce561d5d48618b7d8c47e711a7e59e283575" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.578Z", + "updatedAt": "2026-02-24T10:49:33.209Z", "postProcessHash": "42e28ad8e542903a5728558804c082d55be7b6921a4a8e215b46ddfa4cae8ad1" } } @@ -30050,19 +30374,19 @@ }, "61973953a4db82311c94d166390b038835e4e9712b177d9e88fc9b45588fd9c7": { "zh": { - "updatedAt": "2026-02-19T02:24:09.647Z", + "updatedAt": "2026-02-24T10:49:33.283Z", "postProcessHash": "1119ecb46c21c8b05d56d1b6cd94c6713fedbf0722732263103f07032b322924" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.648Z", + "updatedAt": "2026-02-24T10:49:33.284Z", "postProcessHash": "1ca35bb331d9a6c8c7d3a613a0c987940617da942eb781d452fe207d5edfc8e2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.649Z", + "updatedAt": "2026-02-24T10:49:33.285Z", "postProcessHash": "9a83ded773edd205000b23fd0b34805938f9c2a528f0c3e81e4c5dab839560e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.644Z", + "updatedAt": "2026-02-24T10:49:33.280Z", "postProcessHash": "54a684128461533bae730fa03a0e23adfa498714643927f820190a5dc72d3fc2" } } @@ -30070,19 +30394,19 @@ "4a871b3501c8910734e45bfd046fb170eead507a557e7fc029a9720169d74f60": { "a1bfd48d5bf528dd7d49ff5929721a27fac3e265e20a187bfe5603465299248f": { "jp": { - "updatedAt": "2026-02-19T02:24:09.529Z", + "updatedAt": "2026-02-24T10:49:33.159Z", "postProcessHash": "6445683d75f12f187a8f196fb2495a5a21c346c4710b0a5cb96a6d5e519a5f9a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.530Z", + "updatedAt": "2026-02-24T10:49:33.159Z", "postProcessHash": "8e09a19ed7a4d905aab38e849d1ed6d2cd681193db1a195edddd4f2e22093e7d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.452Z", + "updatedAt": "2026-02-24T10:49:33.081Z", "postProcessHash": "cd12e7a554ce48a05d27532211beecf7c67f82118ba2f8020ae0cb3330ad6629" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.578Z", + "updatedAt": "2026-02-24T10:49:33.208Z", "postProcessHash": "b25c1030902f942db7d7434e0b5e8562856dca5534d7e5b849572b37b1611420" } } @@ -30090,19 +30414,19 @@ "50f0ba5685aaf3e9d2d05dffeeaa45f47b7ed622dc20465bd6aa71e7192a1a6f": { "430792450e0e247081db5645bfe27bcdf7c5efb4c46fb798c742aecf01bea55d": { "jp": { - "updatedAt": "2026-02-19T02:24:09.526Z", + "updatedAt": "2026-02-24T10:49:33.155Z", "postProcessHash": "84cdea7d06ae59f48d3278ecb8170fb4d5660eff15718d8d35333970f77de7b7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.530Z", + "updatedAt": "2026-02-24T10:49:33.160Z", "postProcessHash": "520024e8556f853641e4cb6b761c2ae78b487c2c8797415b184d1770e1a9b85e" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.528Z", + "updatedAt": "2026-02-24T10:49:33.157Z", "postProcessHash": "8fd63c717473529c1807bf9203e07784428eedd44d4945fcde1365d53bfac19c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.633Z", + "updatedAt": "2026-02-24T10:49:33.206Z", "postProcessHash": "e15ecbfd6f4dfd366bd9ee5d8e7bc3ca5619de4618b3d015298c6af468db0904" } } @@ -30110,19 +30434,19 @@ "5929e4805377229948887e5ba720274840b70d5c8448deadfee3a33803c24777": { "4923fea66c23915a7ee88662e5a25bc88b6e63399b5f8007edd0a604f6ff29e9": { "jp": { - "updatedAt": "2026-02-19T02:24:09.451Z", + "updatedAt": "2026-02-24T10:49:33.080Z", "postProcessHash": "a74cf85225f8487623d61c07f1438b96aebf87c3cb21c406732b6923a0290e62" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.451Z", + "updatedAt": "2026-02-24T10:49:33.079Z", "postProcessHash": "a4edb1ae5fb0ff652d92e4feb56b5583e406e6746825314fa8cd10d4736ae91a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.452Z", + "updatedAt": "2026-02-24T10:49:33.081Z", "postProcessHash": "d2cb939ee360a068332ffbeed1afed5781f2efda9ebe21dff9603b1645772117" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.575Z", + "updatedAt": "2026-02-24T10:49:33.205Z", "postProcessHash": "79d24952835c78e1b32705cdb0b70c82d788a3c75852c0557e7db96b448d0428" } } @@ -30130,19 +30454,19 @@ "7f4f10424fd5d15211a9b2e7f5376cd61876478ca1e288c42f77a9d27815ed3b": { "49a85cf8c399228a66495a6ff70df4eb90e968fc2a6386b6d0c3a47d1c6934c0": { "jp": { - "updatedAt": "2026-02-19T02:24:09.533Z", + "updatedAt": "2026-02-24T10:49:33.163Z", "postProcessHash": "c7896e60d8cebf2f7dbe60d39fc35a17d44e271af84c6ed634b750056f958bbe" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.533Z", + "updatedAt": "2026-02-24T10:49:33.162Z", "postProcessHash": "83cd70f6765c659d8267f36df9eef0df48e76d255669fcb3e1909c5c3660af55" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.532Z", + "updatedAt": "2026-02-24T10:49:33.161Z", "postProcessHash": "d3ee456ee399932e6b07c0d226ae3b61f46893be54e64f2c47bda3090b934961" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.580Z", + "updatedAt": "2026-02-24T10:49:33.211Z", "postProcessHash": "d244dd1080d2b9644e0a3cffc6057db50d96f4ab537bce2a8f9d507aac90223d" } } @@ -30164,19 +30488,19 @@ }, "d8dd9a58920b1224a0ee0ffbfaa73c305c3148124a2686585769a1a2e9570266": { "zh": { - "updatedAt": "2026-02-19T02:24:09.560Z", + "updatedAt": "2026-02-24T10:49:33.194Z", "postProcessHash": "282367f02c410af3a1430c1cc6880ddb2bb89b8f15f0414e092cf28ffa0e5cff" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.561Z", + "updatedAt": "2026-02-24T10:49:33.195Z", "postProcessHash": "ab2d15c1d4c589576f0f975a656b85cf10ef45cfce45cb0911d263b460ac3794" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.561Z", + "updatedAt": "2026-02-24T10:49:33.195Z", "postProcessHash": "e2aed1d99a730551463c6b26cb5e0efe82a7186928d9e1fd8294b053304ec6c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.572Z", + "updatedAt": "2026-02-24T10:49:33.202Z", "postProcessHash": "db1f5ba8a6626237953dba9ab6139ea7b4cefa7b6197b5e0cc9f8291a6c1dace" } } @@ -30195,19 +30519,19 @@ }, "ffc6e2c25867e91947ebe1d8e03113d4066168fa2d6eeb0262027942d80e056b": { "ru": { - "updatedAt": "2026-02-19T02:24:09.440Z", + "updatedAt": "2026-02-24T10:49:33.070Z", "postProcessHash": "5986d0e1d1b61c378e07b150ee04581f94e51dc1dc548bb20b7842094bd26dd3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.429Z", + "updatedAt": "2026-02-24T10:49:33.064Z", "postProcessHash": "72e2625f23c831bbd21379a12251963cdb2396c8653925b4d7a1da49652c0737" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.441Z", + "updatedAt": "2026-02-24T10:49:33.071Z", "postProcessHash": "1f0e2abd004c943531b3a8e673e6d96db6e011eb2d73d77ddc3c33cc9f1e380c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.576Z", + "updatedAt": "2026-02-24T10:49:33.207Z", "postProcessHash": "3766f64ece22480044b4b553e705dee61d680d77d6521097e845a6d51e22cc2d" } } @@ -30229,19 +30553,19 @@ }, "2dac70dd4710ed462cb7d342c2a7da726f6d260caa42b1dc450e35fb8d19bcc8": { "ru": { - "updatedAt": "2026-02-19T02:24:09.566Z", + "updatedAt": "2026-02-24T10:49:33.200Z", "postProcessHash": "fdbaaa4f10d92e869d0c5d6c00235ac8068eb2c51aa83372bc24aa6067b2fcb9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.566Z", + "updatedAt": "2026-02-24T10:49:33.201Z", "postProcessHash": "fbe2fbfb19fb1ccea5e5eecc1e7b5ab3fc78e1a7244b741511596cecce04cab6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.567Z", + "updatedAt": "2026-02-24T10:49:33.201Z", "postProcessHash": "588a38b51d8fd295a7a4be3795fe89ff8f87292f51356d5d2e623aaf3ede3d19" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.572Z", + "updatedAt": "2026-02-24T10:49:33.202Z", "postProcessHash": "25b099ec9dfb84a206b7fee9148c7bbfd4d7760ef3287690d57c4f38d1bc1062" } } @@ -30263,19 +30587,19 @@ }, "b9271d5ab747e6b1bd752076eeced397439bb7cdebc3fcca58b7e540fdf1cc37": { "zh": { - "updatedAt": "2026-02-19T02:24:09.562Z", + "updatedAt": "2026-02-24T10:49:33.196Z", "postProcessHash": "4e318426778e788d5656f61bd70789b99a4a98698f9c0ddcf2bdeaa98cda16d5" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.563Z", + "updatedAt": "2026-02-24T10:49:33.197Z", "postProcessHash": "8aadeda4e9340410497f0217b6f8218a50344b6e5740f8abec7d35f17c2388ac" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.563Z", + "updatedAt": "2026-02-24T10:49:33.198Z", "postProcessHash": "65e7df914ba0855835fbc246d17a3df4cc63a4fb40868b5953604d43b982928b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.579Z", + "updatedAt": "2026-02-24T10:49:33.210Z", "postProcessHash": "35d34508eb4075c3d0d4ecc387a6c53a48c4cb82b30d48c17bb5e0ee1117e76e" } } @@ -30336,19 +30660,19 @@ }, "807bc6eb34bbbc53dd648140332dd7ebbcc09d6355dfdf3fcf46606219d84f93": { "zh": { - "updatedAt": "2026-02-19T02:24:09.430Z", + "updatedAt": "2026-02-24T10:49:33.065Z", "postProcessHash": "4d0bf7f606b120deddd7c5d7c5990981082c0c427d9d7b801db29bc228453442" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.432Z", + "updatedAt": "2026-02-24T10:49:33.065Z", "postProcessHash": "5b6bb64fa420756e741d6779a09adb78990bbe145ee1e413709fe4d03d0007ec" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.433Z", + "updatedAt": "2026-02-24T10:49:33.066Z", "postProcessHash": "76633513a7c7576d4ed938ac0974b46b933ded470684c0c7b2e32146fe6c0416" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.579Z", + "updatedAt": "2026-02-24T10:49:33.210Z", "postProcessHash": "e5e84712c55bd23c656962f3ba704de309ed81d3cad75f44e37adf2bf6013ec4" } } @@ -30356,19 +30680,19 @@ "e9001fe7adae3ee521c4e8d3e207693d2c40ab3153b629428457ad95a126e11f": { "c925c5d3c0431c9ee3487e60721536bea2826b1bda255f0e4e9add7b81f2f4d6": { "jp": { - "updatedAt": "2026-02-19T02:24:09.534Z", + "updatedAt": "2026-02-24T10:49:33.164Z", "postProcessHash": "27127bddeafe525104251b4ea10fb14c171805017e8e320ca2d1954d8da62760" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.531Z", + "updatedAt": "2026-02-24T10:49:33.161Z", "postProcessHash": "3c50229295a571fa1cd11a45e831eb29e2337d1ac3367754d83e7070780c5b84" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.531Z", + "updatedAt": "2026-02-24T10:49:33.160Z", "postProcessHash": "4e7a771546ac9922601c6f3ce7fa1c9abc04901ff5a959398bf45cdd3bca7160" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.581Z", + "updatedAt": "2026-02-24T10:49:33.212Z", "postProcessHash": "9c9cf8ddbe4c1947058b004bc2f64e7b927481d46bed76a1750b2ff03bb39bb6" } } @@ -30559,19 +30883,19 @@ }, "c595c5a0cea8c934052a118eaf57ca11679fc6d702ae201fe9fafad03d8e7502": { "ru": { - "updatedAt": "2026-02-19T02:24:09.538Z", + "updatedAt": "2026-02-24T10:49:33.168Z", "postProcessHash": "5c03a6a0f60f3e7b4675a5ca6f402b65dd7e87d059b3f1f2abcf64f3bca1727f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.539Z", + "updatedAt": "2026-02-24T10:49:33.169Z", "postProcessHash": "bf0e9dc448f6b4864ad94753fa7d909a0ef9a7bebfa0d672ae11bdbb29533719" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.539Z", + "updatedAt": "2026-02-24T10:49:33.170Z", "postProcessHash": "ca8e2221ef47d736f8e2a5befd5620b20909f0b93616a114e59dc456005a1b2c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.646Z", + "updatedAt": "2026-02-24T10:49:33.282Z", "postProcessHash": "0a1ab0554874973091f7631c7c61fbfc27d399636db8ecf9f14f91898b63a179" } } @@ -30611,19 +30935,19 @@ "d1dee74d727375041e64ceadd78df956b10784ab7e1b4ac16460115a7e9d4ef8": { "469305bed4de1b5eb391960ebef6f0f5096cd86b537e42c0f37ee9f35e087a4c": { "jp": { - "updatedAt": "2026-02-19T02:24:09.529Z", + "updatedAt": "2026-02-24T10:49:33.158Z", "postProcessHash": "f15b1b8295f70765e07e01d8e5f6dbf5f5ec5d139e5685158ba527e773fde146" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.527Z", + "updatedAt": "2026-02-24T10:49:33.156Z", "postProcessHash": "f26e151d2c091cbfbd923f659ea97ecc62564f8a374297d53e005b920902b7fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.527Z", + "updatedAt": "2026-02-24T10:49:33.157Z", "postProcessHash": "cecfb2a6e0218e912cec04d300312e5d16552dfa82896bd80a6e98c901d39cda" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.574Z", + "updatedAt": "2026-02-24T10:49:33.204Z", "postProcessHash": "562e7e17fc9fc25efb4464b090c1d7295771c77b8ba973f80df5ba55a2cb173f" } } @@ -30675,19 +30999,19 @@ }, "0e2b046bcd80ebfeefcede9f87aaa2e48aa2f0309f625c29620fa1f62d6763c3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.535Z", + "updatedAt": "2026-02-24T10:49:33.165Z", "postProcessHash": "f218d81f6bc43c41663cba9db1f15fede390d07214f4af419bb0162c3594d6cc" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.535Z", + "updatedAt": "2026-02-24T10:49:33.165Z", "postProcessHash": "5bba649c4a9295fa63bc00ae9f37360fb8c5a6c185d302935e365a4a94e1347f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.536Z", + "updatedAt": "2026-02-24T10:49:33.166Z", "postProcessHash": "1f88f130d62dff90bb4c97e8031d5ac5f0623b572db7ac5dacfeaf382333f12b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.642Z", + "updatedAt": "2026-02-24T10:49:33.277Z", "postProcessHash": "e9c425946eb591e9abc3405042e778d423a4532d801fb3f41ab7b8a7d148427b" } } @@ -30741,19 +31065,19 @@ }, "17beaee611da9df4463612b65c585435137c84bf02261f2cf1dfd077ea9c46c3": { "zh": { - "updatedAt": "2026-02-19T02:24:09.541Z", + "updatedAt": "2026-02-24T10:49:33.172Z", "postProcessHash": "6f032d6de6e68d9ad0e3280c9539f134f15feba76d7ed56de66533a170b368db" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.542Z", + "updatedAt": "2026-02-24T10:49:33.173Z", "postProcessHash": "7578cfed2eefb28dd42ad27c25a545b7bb6b7c12f862fe2423e09fe22aa3bb9e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.543Z", + "updatedAt": "2026-02-24T10:49:33.174Z", "postProcessHash": "a0b2ad71d9045f1118d6cd01e998b79a0478d0938a201df795ff41a0b9d9004e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.640Z", + "updatedAt": "2026-02-24T10:49:33.275Z", "postProcessHash": "62026d8a81abc90a6ffffea8562618130e87b245619910e771218e7b7fdf6de2" } } @@ -30761,19 +31085,19 @@ "1646d3380fb5c92ec41482a9d98b525c37462130d6b01f32e1855b0e5f91c39e": { "ee6d9f1af26926d6377c040c2405ae576469664c532845e1d506079f9a027314": { "jp": { - "updatedAt": "2026-02-19T02:24:09.602Z", + "updatedAt": "2026-02-24T10:49:33.235Z", "postProcessHash": "a8a6050b91e0ae084880e0c2d16a2cac8f00135758bdae717261e16c29656f46" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.602Z", + "updatedAt": "2026-02-24T10:49:33.234Z", "postProcessHash": "64051288b74aea40c0d5490c88600fbc4f60465e319a58f7ed05b6fad8ef6ba4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.604Z", + "updatedAt": "2026-02-24T10:49:33.238Z", "postProcessHash": "d9b07a8fe079460c1414a17b84a53c81e463a16d91673a198966fcd7aa1eb455" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.631Z", + "updatedAt": "2026-02-24T10:49:33.269Z", "postProcessHash": "c5c70f3ae9e603bbafa98a9ebc2093e10988dcc0090a2e3fd50824262411ff94" } } @@ -30795,19 +31119,19 @@ }, "09dbdbce2cf9b2dd273f80e9ec646c189b8ed4ff312311ebb973ad75d30a6050": { "zh": { - "updatedAt": "2026-02-19T02:24:09.617Z", + "updatedAt": "2026-02-24T10:49:33.252Z", "postProcessHash": "9b288cb572e28dc1c9344b10810bfd31bd491995d318218fb25bafdedd3e7ada" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.617Z", + "updatedAt": "2026-02-24T10:49:33.253Z", "postProcessHash": "f489428bbcae35842cca33aa7aab7707889eaf310e383b31ea1108dc89c5debf" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.618Z", + "updatedAt": "2026-02-24T10:49:33.254Z", "postProcessHash": "e4567e66d4799d33a2f540f3b48ffe644901f2fa97bd01045ab80b9d05d08fc1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.634Z", + "updatedAt": "2026-02-24T10:49:33.271Z", "postProcessHash": "e7a3358b02054cff69696c9b90219962d552a0dfc06d92635522a575879badcb" } } @@ -30815,19 +31139,19 @@ "1d1e36aa27a61854f94b1f60418f1a1d666d53319de3e83255d9388fcdfb4069": { "a0e30e85a93f908ea864b663f52f1dfce2a0d6a87372b01c7bf971316d114876": { "jp": { - "updatedAt": "2026-02-19T02:24:09.666Z", + "updatedAt": "2026-02-24T10:49:33.304Z", "postProcessHash": "3db3cf664fd0a067cf3067601ecc34f3961dcf43a0dfb63171c49d2e28d75d03" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.661Z", + "updatedAt": "2026-02-24T10:49:33.300Z", "postProcessHash": "1388e60c17fcea8b1f7d974dd07b4ae7ef3a75b487804c51a7d3e4b3b93b6c67" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.657Z", + "updatedAt": "2026-02-24T10:49:33.298Z", "postProcessHash": "2dbd494a2042946f238db144b47bc45bcbb8c050d480e363597e7a454fcd65d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.753Z", + "updatedAt": "2026-02-24T10:49:33.348Z", "postProcessHash": "124121e79349c84c12f8cb399287e770727ee92f0b7791e35d28a01463fa6ac9" } } @@ -30871,19 +31195,19 @@ }, "7867cf786d57b72df125a81d32b1c50a372063d13457a98fa2c12e8abdb4a284": { "jp": { - "updatedAt": "2026-02-19T02:24:09.672Z", + "updatedAt": "2026-02-24T10:49:33.310Z", "postProcessHash": "39ee1fe5d11de07f0adf0b0b4f74269f69d278492bcd337f86b36e80ebe2bc86" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.673Z", + "updatedAt": "2026-02-24T10:49:33.311Z", "postProcessHash": "b6e31a68b968fbdf593eee08fd79fb8489a734c1706bd9089a67190c6a1da6b2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.674Z", + "updatedAt": "2026-02-24T10:49:33.311Z", "postProcessHash": "3b81ee430be34305489bfea0b9fe50304659f5344c48e8781714fa1ecd6f9c46" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.714Z", + "updatedAt": "2026-02-24T10:49:33.350Z", "postProcessHash": "ece842785edfb01b9fb8b472c6bb98f71fd3718019ddd647133e97bcbd4abbd6" } } @@ -30919,19 +31243,19 @@ }, "30d060b9f19f69852e4ea817f10bc737f24cba72bc552d52e1ce064a79ba9a42": { "jp": { - "updatedAt": "2026-02-19T02:24:09.619Z", + "updatedAt": "2026-02-24T10:49:33.255Z", "postProcessHash": "3b8aabd95636157fc01b3096afee29c97436f4ffb80ee821be678c365c32f70f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.619Z", + "updatedAt": "2026-02-24T10:49:33.256Z", "postProcessHash": "ea79b1534d6f958a0ee223cd35995cf456796222ecb52b01eb23ee6af5fbb1d7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.620Z", + "updatedAt": "2026-02-24T10:49:33.256Z", "postProcessHash": "f8c7cbd0508db4ddeaed3317b55b4887a9f1cb4dfe6bce7a62b5ad30df0c51bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.628Z", + "updatedAt": "2026-02-24T10:49:33.265Z", "postProcessHash": "1890844437d440636871051c98618200e3c30b9181482c2844bfa8a0bcdaa2c9" } } @@ -30967,19 +31291,19 @@ }, "f67e1d9bf36c40cc6d0a762ad4b59af61e96ef8c92fe4d12bc93122f5f7e7ce8": { "ru": { - "updatedAt": "2026-02-19T02:24:09.688Z", + "updatedAt": "2026-02-24T10:49:33.323Z", "postProcessHash": "0b4789d8c41e5d62a65b286ef1cc082aa6b9837d1ee3e2260108a86cf26116b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.688Z", + "updatedAt": "2026-02-24T10:49:33.324Z", "postProcessHash": "5af1344fbec7be66c0fb61903df4e3617d384dfce6bbfab1e4e50c9f3f6302ff" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.689Z", + "updatedAt": "2026-02-24T10:49:33.324Z", "postProcessHash": "47153afe30637c5177434aada0f786e07e6988a1dd347c074da7ab9c5ca1150c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.715Z", + "updatedAt": "2026-02-24T10:49:33.351Z", "postProcessHash": "02081e1e49bf7dc7996b835434c1348977fce7e7869033e7279221c76cb55920" } } @@ -30987,19 +31311,19 @@ "5bd267d7d3d49be2e95b491604023a269bf78bee49b4a83eefa9352690913107": { "9e71d3c2fa185cdf2d0231b06c410ed213fa00b972cdbfefe21a9aa8916bf03a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.604Z", + "updatedAt": "2026-02-24T10:49:33.240Z", "postProcessHash": "83706b33a2111a7059c0b19cb5be2ea2fc784dd6b265bed4c9173f58c199027f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.603Z", + "updatedAt": "2026-02-24T10:49:33.237Z", "postProcessHash": "0b31e23c91e43e9a79315cc94bff590b13b9e878e1ad5237803f268fd721e3d2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.607Z", + "updatedAt": "2026-02-24T10:49:33.243Z", "postProcessHash": "66a209d0e51501cb19ad47dd43fe18eb0f0c5d011df856d2651f6254092a4999" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.643Z", + "updatedAt": "2026-02-24T10:49:33.277Z", "postProcessHash": "8a6032433525129250e3c4c476888ee9730117d30deb59c8e4cb6ee3f6ad9c26" } } @@ -31021,19 +31345,19 @@ }, "57b2ec3c9af7907db5c79e29ece4236d19ffabe79c44e6f1cbee74459fa5636b": { "zh": { - "updatedAt": "2026-02-19T02:24:09.689Z", + "updatedAt": "2026-02-24T10:49:33.324Z", "postProcessHash": "1b892699d47f890e99696933377b8caf6272877aef597153a7364446922b7846" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.690Z", + "updatedAt": "2026-02-24T10:49:33.325Z", "postProcessHash": "9f4f272874918b479b86b41e9aeb00f4b1af72be7ec744416abc6ada8220cea7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.691Z", + "updatedAt": "2026-02-24T10:49:33.326Z", "postProcessHash": "a7d0d2fd43a3845ff187a5059e14e42a97753a2f3a16b8f872c01db70e2dba23" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.706Z", + "updatedAt": "2026-02-24T10:49:33.338Z", "postProcessHash": "67acb66d93afe0f33ecc6c0069b6280725714c701a2e059624fca0f1d6b469e3" } } @@ -31041,19 +31365,19 @@ "7d4c81a663e077a5e75150c0e14d27c4ec51b540adb7aed379113d299f3c76bf": { "9a1b6a07af2168ede1ef0940be49f9f7462ec53241267251f36458e33a1bd688": { "zh": { - "updatedAt": "2026-02-19T02:24:09.596Z", + "updatedAt": "2026-02-24T10:49:33.229Z", "postProcessHash": "58bac5dbeb58c87f949d418106faba273d60e3848d5da0b92ef80366dd8eee24" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.598Z", + "updatedAt": "2026-02-24T10:49:33.230Z", "postProcessHash": "8253607cf9c3cb12033177942a7a5a0170d6b08bd96d26b0be0641f34e2cb9e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.593Z", + "updatedAt": "2026-02-24T10:49:33.225Z", "postProcessHash": "db2ed8de2ec69041d662d60bc48c563e812f01b4fd6ed336d5a8e9d03dbe3f86" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.706Z", + "updatedAt": "2026-02-24T10:49:33.338Z", "postProcessHash": "2de5b2cfe03dff867095b42277f2d81b98acc578eb83627ceca8876990053f39" } } @@ -31061,19 +31385,19 @@ "8b2242e50cc879742f4d4efca957625a1106cb09f45a18de469646abc82467e7": { "343ceb09449e64360e7e7fca397cfc927ac8e348304b9893b3946e0ca65d8fae": { "jp": { - "updatedAt": "2026-02-19T02:24:09.607Z", + "updatedAt": "2026-02-24T10:49:33.242Z", "postProcessHash": "ad6432380d01e8261831581faff3cdf5df88be26de2f94fb6b7937756ba34530" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.606Z", + "updatedAt": "2026-02-24T10:49:33.241Z", "postProcessHash": "e7b30f179f7e2cbeb4573ac206d93f5abc72c865d7a4538c52dfc8970c0ecfb6" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.608Z", + "updatedAt": "2026-02-24T10:49:33.243Z", "postProcessHash": "63d731db7981098e640ce570381f0b8495c78c3ec000d0f57df26a6b2185e86c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.629Z", + "updatedAt": "2026-02-24T10:49:33.266Z", "postProcessHash": "06f338c3016b019bc84c67bffb1f9b024b4e457274e5079059b523a336bcde57" } } @@ -31081,19 +31405,19 @@ "c02bec6d7a15ddb4727d64f0c82f001b4a6994e6095794f3b35c713c1c69cd75": { "f05e5879650490f810241a7e1f46402021938daaf4688d3368c183eeb6dd5b65": { "jp": { - "updatedAt": "2026-02-19T02:24:09.599Z", + "updatedAt": "2026-02-24T10:49:33.231Z", "postProcessHash": "4ead360e99274a03d63cccd7cf6b56989433d3c5688a08fd536fda981abb4a2a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.595Z", + "updatedAt": "2026-02-24T10:49:33.227Z", "postProcessHash": "1ca92359c2398d19d9d1fe9e93c9ba8145f5b1839a080df9f15211fdcb25ab96" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.600Z", + "updatedAt": "2026-02-24T10:49:33.232Z", "postProcessHash": "2c4ce2607220be992269f4f706f7187cfaddb7eb35c1f0307e2cc537d765859d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.713Z", + "updatedAt": "2026-02-24T10:49:33.345Z", "postProcessHash": "b414c1a175cd041c134f7f46853cf276b067292b2179e3f6765c70d355e8e38a" } } @@ -31101,19 +31425,19 @@ "c35a4c218452080886d36470ffc05c5a0554e095f00432e0d7735900c7ad9435": { "9e5d4bd1e5379d30156d61671b947abb64b0c0e6ce551d838d6da2c7907d2ff3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.601Z", + "updatedAt": "2026-02-24T10:49:33.234Z", "postProcessHash": "aa2368368056ff9c738269a3eb23f708c769ed7e1a749566fa9135fec7492393" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.593Z", + "updatedAt": "2026-02-24T10:49:33.225Z", "postProcessHash": "4dc921d1f2bde2032c15f21e65ad7226a1f411497bc8dd11e4057bc2856b2867" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.600Z", + "updatedAt": "2026-02-24T10:49:33.232Z", "postProcessHash": "2749e027ead06d77e8a77e35aab548b99dcb79b1e8c49a542179748e330e7b5f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.707Z", + "updatedAt": "2026-02-24T10:49:33.339Z", "postProcessHash": "608b05b2e61d9376f0ac5cbd370c29ac1dbb6518b1e508fe52c0850bc1669600" } } @@ -31135,19 +31459,19 @@ }, "99e2f846d77de74bb239ca9cdf88dd81e23de88aaefb978b6271f90450653b9c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.611Z", + "updatedAt": "2026-02-24T10:49:33.247Z", "postProcessHash": "144d7423165aeb05e94df2da2e43774b985b816764fc1c438a8aef185ae044db" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.612Z", + "updatedAt": "2026-02-24T10:49:33.248Z", "postProcessHash": "aebba0b9b9198b047c6fb90992c903dcdde0f027a01adc7469ace4338c4d795f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.612Z", + "updatedAt": "2026-02-24T10:49:33.249Z", "postProcessHash": "55c8330ffde13a44b877dfca734fc8653ba8c261e148ef77a657bda388a53464" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.633Z", + "updatedAt": "2026-02-24T10:49:33.270Z", "postProcessHash": "6a2cd3a8f1fbf4351cb945a2035918ed19728064f0863c28ea3bc58fe0ce09a6" } } @@ -31169,19 +31493,19 @@ }, "8dc09979b83996cf7270a50d2537171cb9284da8486fb2b9fe8bf72cae67652b": { "zh": { - "updatedAt": "2026-02-19T02:24:09.609Z", + "updatedAt": "2026-02-24T10:49:33.245Z", "postProcessHash": "0aa88dd2a1532c4b104fbb6d2884a1296a5e5bee859e1862757677e624f366cd" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.610Z", + "updatedAt": "2026-02-24T10:49:33.246Z", "postProcessHash": "adadedfa948caf551173842649307a89858575f985955719c6f90b0b877adf83" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.610Z", + "updatedAt": "2026-02-24T10:49:33.247Z", "postProcessHash": "8f88964244c45363e51bf6f94ed24ea7e789d7e725900f87eb3350d631786c0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.630Z", + "updatedAt": "2026-02-24T10:49:33.268Z", "postProcessHash": "8a9d76f2731228e3f47d748b4594a7395749e6e422363f56ad678e252d57a9fa" } } @@ -31232,24 +31556,42 @@ "updatedAt": "2026-02-19T02:24:09.637Z", "postProcessHash": "3df4992b1555b63e64f93f7ed6bc0e26d7fbb27ccb84e12ed5477e7645156920" } + }, + "c4fb2d33344d18858e3d6bc915d068153c8c08ecbfd0044c359c317a84d90ef3": { + "ru": { + "updatedAt": "2026-02-24T10:49:33.285Z", + "postProcessHash": "622ce37e8fd943b9adf5c5e7d7ec4dfc2040d6b379cc338775938fb694f995b3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:33.287Z", + "postProcessHash": "a66f2c5f072b98271632a3938710a9c8c7154a11171425a3c59490c9d48321c8" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:33.288Z", + "postProcessHash": "083b9c58cab522803b42cc40cac2d2c85bb2a5922af85cb506a6065001fe52a5" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:33.291Z", + "postProcessHash": "61c31677d4ee2d1ff1f586667c252ee90cfa22451b59290cc9c4c17f6b78ccd6" + } } }, "eac3b18e7887fa005afb72b037867082f68f247bb61d91f3260e28d28cb1e85a": { "d2aa320a8841951470c1da7b5a35b1b69bf507d11d9b795481a4e587ec4b7bdd": { "jp": { - "updatedAt": "2026-02-19T02:24:09.608Z", + "updatedAt": "2026-02-24T10:49:33.244Z", "postProcessHash": "bd5e421b7390e650eb1e97a5d618bf5c2c5ee6be3a0deeb5960115f71d3e0745" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.605Z", + "updatedAt": "2026-02-24T10:49:33.240Z", "postProcessHash": "195efba026287f3be7914d3536c9fb1e191afaca573d09c9722e9684d72360cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.605Z", + "updatedAt": "2026-02-24T10:49:33.241Z", "postProcessHash": "47898ef91979ef74c625106561dee67ec5202d7cf0ff429f1ce7b97d3950be33" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.639Z", + "updatedAt": "2026-02-24T10:49:33.273Z", "postProcessHash": "94c73980294bacd8133e6a51fc2e85f834f2d847603477c9b44b3f587354eb2a" } } @@ -31271,19 +31613,19 @@ }, "8032e74c1af9f4e61b7777db84926ea23f2a59be09be1b2419d431b4f7a04722": { "ru": { - "updatedAt": "2026-02-19T02:24:09.670Z", + "updatedAt": "2026-02-24T10:49:33.308Z", "postProcessHash": "c83d690b63393e2158fae8e93bc62f3287173f1a5dbeaf561a772aa057dbc389" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.671Z", + "updatedAt": "2026-02-24T10:49:33.309Z", "postProcessHash": "d10b19593ab3d13fdf28b7269913b167a9ad990fecc2dfda9e88e94ead731e4b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.672Z", + "updatedAt": "2026-02-24T10:49:33.309Z", "postProcessHash": "013ff0c25e39ff9cfd44a1b061e02f8b27df8647cea732dbe091f460aa22ac55" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.716Z", + "updatedAt": "2026-02-24T10:49:33.352Z", "postProcessHash": "76b634dd53c3d3d34f5dffb2f58d61242a0589765ec8cef2d3a76f2bb36bfdbe" } } @@ -31291,19 +31633,19 @@ "4ba1eac8610621c18306898ccbcb9d4eaf5521b4b230d99cc774ec22219c9a28": { "1aafbee1019940fc3e073990ae3817e08af6f7e2ec670ece7d26a194827351bb": { "jp": { - "updatedAt": "2026-02-19T02:24:09.597Z", + "updatedAt": "2026-02-24T10:49:33.230Z", "postProcessHash": "8c156ce4e1017dfb43613796c9ac9c0eaadd238273b069ec98fe696a2a381753" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.597Z", + "updatedAt": "2026-02-24T10:49:33.229Z", "postProcessHash": "b573553f65f7a74d6feb0cda1a5e772bfd5f94bcd4bf05e83f57f46d4b3502a2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.596Z", + "updatedAt": "2026-02-24T10:49:33.228Z", "postProcessHash": "e88145ae0e5de4672eaf8cf2246fb5d5a14cfc8dcb86d1552c9613d46f386e89" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.712Z", + "updatedAt": "2026-02-24T10:49:33.344Z", "postProcessHash": "205d84ac4f4db054bfbca92be6e028d4071c64d70e482de5e9e018362bf8d07b" } } @@ -31336,19 +31678,19 @@ }, "c6603ac9937d5d5e31933e3c42a639ca004d5a34add1446394d9064bb64fc73e": { "zh": { - "updatedAt": "2026-02-19T02:24:09.668Z", + "updatedAt": "2026-02-24T10:49:33.306Z", "postProcessHash": "3974bf21f965f36fd737c876eb8588a2c0c42c807ac575c3f5d2a33af075d71a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.669Z", + "updatedAt": "2026-02-24T10:49:33.306Z", "postProcessHash": "74c19526f884cfbd7ef7ed2d8cb244fe88f105c6e8e9909290a1bc0b878ac6b4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.669Z", + "updatedAt": "2026-02-24T10:49:33.307Z", "postProcessHash": "3aa6d0d54b059a4c4db7a30489b7f61fe5f58f23be117e1ffcd2f4c7e44ae6c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.717Z", + "updatedAt": "2026-02-24T10:49:33.353Z", "postProcessHash": "b238d42da76f7c38a3458ecd33785364131a863bbefd22ac9bd0c78981d89d71" } } @@ -31384,19 +31726,19 @@ }, "33f614bd0d7a4e3c6ee6f1fcc08f9f538d0ab2f110933bf6da9f69a3cec7da2d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.720Z", + "updatedAt": "2026-02-24T10:49:33.357Z", "postProcessHash": "77f39f34db44d843fd641dbeea736b7519bc241d547b045e18f1bc446bfeea97" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.721Z", + "updatedAt": "2026-02-24T10:49:33.358Z", "postProcessHash": "5e5aa2822ba94d858fc87da8df6c498420ac0ddae6c322a3e971d93842de9af3" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.722Z", + "updatedAt": "2026-02-24T10:49:33.359Z", "postProcessHash": "298423bde56647edde2e369783c070995c9419400e9d280fa23a40593ba26e6d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.719Z", + "updatedAt": "2026-02-24T10:49:33.356Z", "postProcessHash": "3597220510051de807dd390da2268442e843c501d5e9f98f81748ee91bdd5165" } } @@ -31404,19 +31746,19 @@ "71b7871a9e60b8462bb9bc1ee2ff376b1641403aad826100b88e087426e5841f": { "3ad40142a5980106f0b667308b9b61cd075b9a565aa267c085988df32d9f9d20": { "jp": { - "updatedAt": "2026-02-19T02:24:09.663Z", + "updatedAt": "2026-02-24T10:49:33.302Z", "postProcessHash": "ce097333b215263e1647e17c9e90a70e3308f4642146310b2ce32d1e925e88b6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.664Z", + "updatedAt": "2026-02-24T10:49:33.303Z", "postProcessHash": "97d33fe3db3aa101e706681a8449f9287f1e0959e753655e6dd244a8b372b97c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.661Z", + "updatedAt": "2026-02-24T10:49:33.299Z", "postProcessHash": "d255f4e8e9a293646cd90347368314fd9f390fc2d172d3785773c0f1e1f31224" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.717Z", + "updatedAt": "2026-02-24T10:49:33.354Z", "postProcessHash": "78b4517531176f3f01bc541b6b2f56fa06e0284a5647d2474a9ff4b4cfb4173d" } } @@ -31424,19 +31766,19 @@ "a9dd86f5f7da605aa9337f714a106fa513a631fcf9a168aa7b4e9a3b7ccaa531": { "ea6fc6dcc9635bc1877901795f75089be17712230ae183401a7e6eeaa9cfcf78": { "jp": { - "updatedAt": "2026-02-19T02:24:09.665Z", + "updatedAt": "2026-02-24T10:49:33.303Z", "postProcessHash": "c9e0a23ec9d51c4f66ce7603d83fcb7e19451e1417553f3c51d94a62b846b748" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.663Z", + "updatedAt": "2026-02-24T10:49:33.302Z", "postProcessHash": "ff075293cdf409e60181e6207ddb6a8938a0c1736898a64440f9fa7a0145e24a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.662Z", + "updatedAt": "2026-02-24T10:49:33.301Z", "postProcessHash": "2ccc055c8198a2c568a5bf37a2944778095d40257fc8693a920524650073f2fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.718Z", + "updatedAt": "2026-02-24T10:49:33.355Z", "postProcessHash": "81e7d18b781fe0610455d8a83fe50b9d9f317077289fb75db4e6e1a226f82ba8" } } @@ -31444,19 +31786,19 @@ "b4b5cab881a02e5c4333f93e3149c6242284e0666d745952f3ccdc86593f7b52": { "112d13bcf3046cf70aa9ad7b11bd473fb40eb530504362a77d2a53dd8f9adac1": { "jp": { - "updatedAt": "2026-02-19T02:24:09.594Z", + "updatedAt": "2026-02-24T10:49:33.226Z", "postProcessHash": "385f087637b7541c5c174ec209ccdd0bcb0c2de109d6c6ec9b15d3efda97d15b" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.596Z", + "updatedAt": "2026-02-24T10:49:33.228Z", "postProcessHash": "c55eb2afa6c1d084d1ee2725110c8958902567088d2a127becfb2e46b357cdb6" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.599Z", + "updatedAt": "2026-02-24T10:49:33.231Z", "postProcessHash": "8820ca4e726b05a378d4d79899c770c42d1beea478570fdb19d2b594c838e555" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.709Z", + "updatedAt": "2026-02-24T10:49:33.341Z", "postProcessHash": "0dbc19563a3d2111a83c938649eee9285e56e18ca926fdcbf6e2991aa00c9f68" } } @@ -31464,19 +31806,19 @@ "e21164b6c8802133bb1a3d2aafc3fd517ab74e6f8d293b7d293ae968782a8bd6": { "04d3d33fa3cda8a0df74a6fb806ee0f2d01d7cd25cf9f21c9e07d1830f9a9a6c": { "jp": { - "updatedAt": "2026-02-19T02:24:09.589Z", + "updatedAt": "2026-02-24T10:49:33.221Z", "postProcessHash": "81a867d47a500947e512cf4035360bcc0ec6b24c872d7f3fe446c82a35db0d18" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.587Z", + "updatedAt": "2026-02-24T10:49:33.219Z", "postProcessHash": "59b6e5d366f21dcc953a32c84a75a36d26b6072c41fd336439ec1bab0cf9d6b6" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.588Z", + "updatedAt": "2026-02-24T10:49:33.220Z", "postProcessHash": "21ba5747afa1caec4ecdc04f61b42987188f93d43d05e8e94edcac671d09e9de" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.714Z", + "updatedAt": "2026-02-24T10:49:33.349Z", "postProcessHash": "595f5f10e737fe09de1dbcddb464d65b108ae833e6fb63a5e2943bfe278cdf77" } } @@ -31484,19 +31826,19 @@ "f9aa45e8fc85d0cb2d4c76b0e287f8743a40e6d92257f98ad0691dbde7bc3a9e": { "4866f2bf5a753196ff65a8b94a288fa39116ec9e4deeb7ae77c0598af8d582d9": { "jp": { - "updatedAt": "2026-02-19T02:24:09.658Z", + "updatedAt": "2026-02-24T10:49:33.299Z", "postProcessHash": "8c6f06536af62c9720996b83f45787787cd0472540b4663c1b853199a5edb7bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.601Z", + "updatedAt": "2026-02-24T10:49:33.233Z", "postProcessHash": "aea04cd9ac910e96d3c00796012b8b94ccbbbd2a55546b46a70cbd66e60e63d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.595Z", + "updatedAt": "2026-02-24T10:49:33.227Z", "postProcessHash": "9d1e5b187236cecc443a8084210553881d11bf831fb6e108d6f19be41840257e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.705Z", + "updatedAt": "2026-02-24T10:49:33.337Z", "postProcessHash": "ceabf2ca775c04a3cf49a811bd4c24488fdc4e6fb66ec0c10b6fba792b1231ae" } } @@ -31532,19 +31874,19 @@ }, "482e68e9c29ad062ea675dd514e65d0831f5fff9bd6e5f74ca22312a2e3a8441": { "jp": { - "updatedAt": "2026-02-19T02:24:09.947Z", + "updatedAt": "2026-02-24T10:49:33.568Z", "postProcessHash": "b0178bd5ace8f62295bd77bfb6202a031421ba5629316a7608ecdb2ddfb18e4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.948Z", + "updatedAt": "2026-02-24T10:49:33.569Z", "postProcessHash": "45633448000e0ad4a2553441ff1971e7dc2f350949e7b75a573a8a296af3b987" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.949Z", + "updatedAt": "2026-02-24T10:49:33.569Z", "postProcessHash": "141b81a9737a91b7d7846344af224b87727a06911276e9771172dc0fccb9b225" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.968Z", + "updatedAt": "2026-02-24T10:49:33.590Z", "postProcessHash": "68880fdb0970d5a19082c2cbfec73438a84f4a8aef0c1c0a87dbc39b89ac9f3e" } } @@ -31552,19 +31894,19 @@ "4b875d4cf08501af46c9a0dc4af0b755918205b50ba44a03d48aab3f7f49ac54": { "658a06aa55917c46e77861ee9b9b9643be0049c255c7052d4f6ae6166e655b01": { "jp": { - "updatedAt": "2026-02-19T02:24:09.936Z", + "updatedAt": "2026-02-24T10:49:33.555Z", "postProcessHash": "057a4b7be5af1ea27de3a70e880590d4722ef2c476ba4472ddc4ae61e9607322" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.945Z", + "updatedAt": "2026-02-24T10:49:33.566Z", "postProcessHash": "dd4a91b92173ed5c8ea36de8af68fc94c681d6feff3f95b218d05ba7666154ae" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.939Z", + "updatedAt": "2026-02-24T10:49:33.558Z", "postProcessHash": "197acf9a13546ea8a79086942216277eadcba7ee6adc07bfdfcec158ae57b0c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.966Z", + "updatedAt": "2026-02-24T10:49:33.589Z", "postProcessHash": "be37c5f417f134e32ac56c1e046f0f4f03263e6ff3f69e98cfe541d0a2259993" } } @@ -31572,19 +31914,19 @@ "50ddd976e3ab8042db7b5db277b40561a4de66f66d7343d572a7ddd20ad31bd7": { "0aacc185d8105f7e3ea27585dc11ab225da3bb6c1db23c8daa11af166d8e972a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.936Z", + "updatedAt": "2026-02-24T10:49:33.555Z", "postProcessHash": "2fa5b9c39b9aee4b6394bb1b835cbbef8598b89b9091842fe5d8e8f0b127a41f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.935Z", + "updatedAt": "2026-02-24T10:49:33.554Z", "postProcessHash": "8e40caa21399a3e8c6b30b97299e1a6b89969d4a29775a35e8f355876cf751e9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.933Z", + "updatedAt": "2026-02-24T10:49:33.551Z", "postProcessHash": "c7a705dfc421150a88fdda5cbafc9af74a1e3fe4086b0cd102b6e42524989d8b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.982Z", + "updatedAt": "2026-02-24T10:49:33.623Z", "postProcessHash": "4ea81fdbd69428868b92fe86b99945eebc3c44316c00cb1088b6c942e1b43baf" } }, @@ -31606,19 +31948,19 @@ "54e7a0d28f060089af44ed7367d75f254a6d1b252f6ea6274e58dbe249470b30": { "4ced947fe881a2f40e14c2be1395d6c2cc3e15fe93e42e71df52ec929c2dcea4": { "ru": { - "updatedAt": "2026-02-19T02:24:09.937Z", + "updatedAt": "2026-02-24T10:49:33.556Z", "postProcessHash": "11ffea85fdb4f0c0938e10db6ef31772c5cc985a899590aa85f60ab1255fd66c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.939Z", + "updatedAt": "2026-02-24T10:49:33.559Z", "postProcessHash": "d3c99d809be5997be05c6323385ab2432ddac4f4c8a844a12b393e3de6801ef8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.944Z", + "updatedAt": "2026-02-24T10:49:33.566Z", "postProcessHash": "8c707f2d80f86d6599bc591f0f97619329ad66e56a2bda379770550a74bf1e56" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.979Z", + "updatedAt": "2026-02-24T10:49:33.603Z", "postProcessHash": "9b9854fe698535baf03495c83404fb057734c20c69367decbcfd8da5c523a861" } } @@ -31626,19 +31968,19 @@ "7a97c0a8a1d7a2b7124253b37f3cdff0f274d654965381e7ee3aeb4db3323631": { "ed2621c01542cd6c73825e5fe7639beff16cce375577d0d908b8b02c4bc1371b": { "jp": { - "updatedAt": "2026-02-19T02:24:09.931Z", + "updatedAt": "2026-02-24T10:49:33.550Z", "postProcessHash": "945f86bc9eae60fd471dfdde33ee8c171f48244c5ad4fe64f67a81834c2ee76a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.928Z", + "updatedAt": "2026-02-24T10:49:33.547Z", "postProcessHash": "5e2b857cb601af95330102b7d8fbe35618b7c228c77ae6f6eed2bba4ee4b30fb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.928Z", + "updatedAt": "2026-02-24T10:49:33.546Z", "postProcessHash": "84a2d55fbe311e518c8adf1e2a1ff9c7657f79d2f37b74345a1f6c140de17461" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.980Z", + "updatedAt": "2026-02-24T10:49:33.604Z", "postProcessHash": "fe98c50ec186034e49a0c92f322782226ada73306b0af61545fa57aca72601a6" } } @@ -31646,19 +31988,19 @@ "893f6ba96a900463e4a20bfebef45d262bc3a3e1452bbe2f889f333b52e5fee5": { "b3a0a7a9c4f2e4c526bb71ba0bc5e6dac553aa232350b1910ad7fbf035734c06": { "jp": { - "updatedAt": "2026-02-19T02:24:09.931Z", + "updatedAt": "2026-02-24T10:49:33.549Z", "postProcessHash": "098d239ee3b0e2992e72634a94c490b8845906403662711737b59cc1829dbdc7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.930Z", + "updatedAt": "2026-02-24T10:49:33.549Z", "postProcessHash": "81187926a8cfd1002cb2e774a9d9c10cc21960e460b43472bcf21f5c63d41404" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.933Z", + "updatedAt": "2026-02-24T10:49:33.552Z", "postProcessHash": "d29f730bf28ef6afa99fc91ee0a91787f9629c8e0617ccdedd46dd0757a00b8d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.968Z", + "updatedAt": "2026-02-24T10:49:33.591Z", "postProcessHash": "44c04fcc31de4dac8aa65c327578f1772ce4ad81cb61896640b7f5f2097e3f6f" } } @@ -31680,19 +32022,19 @@ }, "2d389211d0f5d36ab67ba82f554b7c4f28d210ea1360e4cce5fb024a1ac6ddb7": { "ru": { - "updatedAt": "2026-02-19T02:24:09.984Z", + "updatedAt": "2026-02-24T10:49:33.627Z", "postProcessHash": "3f559f1b6d752d6bb491bc168d576200c8b43afe7da99921eeaf4b1f3c9247cc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.985Z", + "updatedAt": "2026-02-24T10:49:33.627Z", "postProcessHash": "cbc371092fb23681c81f908cfb5f0b5ab904725ea2e5fbab4534bbd69f7c0393" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.985Z", + "updatedAt": "2026-02-24T10:49:33.628Z", "postProcessHash": "00c89813e0db0c0c592910f42428c4969e5382f642377c073b0db7a2428040ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.966Z", + "updatedAt": "2026-02-24T10:49:33.588Z", "postProcessHash": "880e55fbc54f47542c33775af768eab16ffe1d3ec9ba057d0f7a91bfe1dab9ad" } } @@ -31700,19 +32042,19 @@ "b624c3e0df3b6286b5d61538607b9030a6cd27129246f0485ab94c5f1b0efd7c": { "b4c584ccbf84daf8b7fe6aae9e1c393e8220224a9cecec6d5d2024e0cb7aa654": { "jp": { - "updatedAt": "2026-02-19T02:24:09.941Z", + "updatedAt": "2026-02-24T10:49:33.562Z", "postProcessHash": "b4805c9440784e8cdf31e584443194ae0a54ca3e50c87b91061ddb106a53e8cf" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.942Z", + "updatedAt": "2026-02-24T10:49:33.563Z", "postProcessHash": "7f326a1ea0b6bd482a5776a476e0d6d2add7e327241e373e9d1decedfaf9484b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.934Z", + "updatedAt": "2026-02-24T10:49:33.553Z", "postProcessHash": "2c896ba0c868c32e108de61117bcf5ab8d4be8d2b9cf5e8593637c15e516af6e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.967Z", + "updatedAt": "2026-02-24T10:49:33.590Z", "postProcessHash": "2b824cf813ebcde394730078d813095ab8ea3d183d682a202be86e943610f7b6" } } @@ -31736,19 +32078,19 @@ "e77458d405603be885e941ab39a2c03ea7c893b38a1ed1b1c4a5beb9a703c04f": { "f78ef201b8464bb62128fd17fb1bcf8d3f42f167e5b4f4c8547866c5ecfbc7a9": { "jp": { - "updatedAt": "2026-02-19T02:24:09.932Z", + "updatedAt": "2026-02-24T10:49:33.551Z", "postProcessHash": "2efba40bab0370ef1279cabcdd301d55f6ec1d304787dac2a568df601b621d28" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.934Z", + "updatedAt": "2026-02-24T10:49:33.553Z", "postProcessHash": "430ed312d868cc892e18c3f9cfdb567e5a13d5bea094fe756d2f9ebda43d5a75" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.929Z", + "updatedAt": "2026-02-24T10:49:33.548Z", "postProcessHash": "c35ce9d3ce72373155c1d2c5a26f685e4a31ffb05ffa3806c7e1db3dda2ad4d7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.972Z", + "updatedAt": "2026-02-24T10:49:33.596Z", "postProcessHash": "eba2319b0c753e24067168d1eb2024cab8df435cd8352215aca0d5ad4c9d168f" } } @@ -31770,19 +32112,19 @@ }, "ba093f0bb10f862c1b3ab5a8127680df2de5bf8ea2343fb692591ccbb3f94238": { "zh": { - "updatedAt": "2026-02-19T02:24:09.946Z", + "updatedAt": "2026-02-24T10:49:33.567Z", "postProcessHash": "94fa6d5930b9062e0be5bb1ba87a493c1cc119fe333178ce45798ee51d615f42" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.946Z", + "updatedAt": "2026-02-24T10:49:33.567Z", "postProcessHash": "9655f2f1a5dc7c7775e4d7711e0f34c94f169ceeca33c88dc072475698f2071b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.947Z", + "updatedAt": "2026-02-24T10:49:33.568Z", "postProcessHash": "eb7cded3ed11193c99d5397b99f789e205d2ac28e1d402c7167562bd60d5872b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.964Z", + "updatedAt": "2026-02-24T10:49:33.587Z", "postProcessHash": "d2153bbe0ef2c91ce591812220dbef26a6ee1b06115d978e85bb8ae5b2a5761e" } } @@ -31790,19 +32132,19 @@ "06b6f9b31956eb6e3cebe7421e22abac9ad0de32434585b3bedb572ca22fe779": { "ac6f44e72647bc384df3ba5b105e8bc37e9ce25a9c1c104570232ed738108026": { "jp": { - "updatedAt": "2026-02-19T02:24:10.327Z", + "updatedAt": "2026-02-24T10:49:34.000Z", "postProcessHash": "dd5d63b073d88175e0f68c72db68f994ac4aef9779e02e6827002104e11edd72" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.328Z", + "updatedAt": "2026-02-24T10:49:34.001Z", "postProcessHash": "5d101140fa8786d4bd9c3ac1486d4f468d2f15fb9389d2b9f85bc5b21efd1bc7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.306Z", + "updatedAt": "2026-02-24T10:49:33.982Z", "postProcessHash": "2cbb0017fe2541469e3955dc793ce943b4f988c93dbf4b66fd4156d02ee9842b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.413Z", + "updatedAt": "2026-02-24T10:49:34.090Z", "postProcessHash": "a9950fe52ae694d4f2ab437f3176c1f8cc438dd5ea3fc8064a94c44a4e331418" } } @@ -31810,19 +32152,19 @@ "088f126360fc7b556a09516cc41a4880d4599464d2cb1ff9f6ea02417c6df429": { "04f510d66c9b376ce9989e4858fb9d1204bb45b666002f527435e252cc2dc4f8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.451Z", + "updatedAt": "2026-02-24T10:49:34.130Z", "postProcessHash": "5baa79ae36eb43f63d99105eb4826a97404e01be6a4a737547214adecdfeabf8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.449Z", + "updatedAt": "2026-02-24T10:49:34.129Z", "postProcessHash": "b02363cbfb81b62655b5d30484669e4f82bcfe38732f0a5c82114e28b7ea2168" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.366Z", + "updatedAt": "2026-02-24T10:49:34.045Z", "postProcessHash": "3edd6d95ce11b0d22462f9cc5a66317c6f8011d305fab1b4b1cbb58d0a532964" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.494Z", + "updatedAt": "2026-02-24T10:49:34.155Z", "postProcessHash": "a2b1ff4017ea9b4d3a25df6561f5468128dd68e8320f7a7bc9c068f8cce11dd5" } } @@ -31830,19 +32172,19 @@ "13195f1c973faf9aadf39f45b6a4df596efad0f6e4df019051e13dc77eb9fdfa": { "948846a8743f4a90ac77c6ba53e93f5386df8d5310a4b8182265798313dc6dc9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.307Z", + "updatedAt": "2026-02-24T10:49:33.983Z", "postProcessHash": "554686cfeb731915cc29d918e1b6cc4671a1291fa72e17eee30c07564dca2712" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.380Z", + "updatedAt": "2026-02-24T10:49:34.002Z", "postProcessHash": "61fc60dd6eda337de2cb8256da0854d7e5c701005e210a00912de96be02789f3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.385Z", + "updatedAt": "2026-02-24T10:49:34.002Z", "postProcessHash": "d1900e9be81670d9f467048748d1424f5a2e9c1fddf8558b9e527f602faea9a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.416Z", + "updatedAt": "2026-02-24T10:49:34.093Z", "postProcessHash": "fb3ab6361223d83f749189773ae730d7325b62024192ee94ca3c4f6cb8659157" } } @@ -31864,19 +32206,19 @@ }, "9e2c628cbeaf72125bfe17a1e7a80e4c95782e90cbdd87edaa5a2a4036c85112": { "zh": { - "updatedAt": "2026-02-19T02:24:10.397Z", + "updatedAt": "2026-02-24T10:49:34.076Z", "postProcessHash": "46f7149fc55ef012d972511e4ea315c806e5b04b3f6c1fd02c0e201e3a6df0c3" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.397Z", + "updatedAt": "2026-02-24T10:49:34.076Z", "postProcessHash": "1ddf485b9b24c12a6cf12d55af95989253804e8809e682035e43441f950c996a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.398Z", + "updatedAt": "2026-02-24T10:49:34.077Z", "postProcessHash": "df6320199a82801a7fb684e244febc9903416d137f7f634fcafc3fe07e29e149" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.410Z", + "updatedAt": "2026-02-24T10:49:34.087Z", "postProcessHash": "579e00114d9ed1978a08c0ec07a461c1cffebb2276c73b3c5a289f30d1b09ce7" } } @@ -31884,19 +32226,19 @@ "266e0dc9c395c310374563d981fa2685a69b11a4eb800352e56423b5bd7e2901": { "d344c46f769e848e76522e3e0e64f31e4c4cd999a3de3ea3cc10400f0b2826ae": { "jp": { - "updatedAt": "2026-02-19T02:24:10.385Z", + "updatedAt": "2026-02-24T10:49:34.062Z", "postProcessHash": "7c1c6b639377916ac5d1404eba67bb30a1c28f8c84ccaa0b1509e19d2730d61d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.386Z", + "updatedAt": "2026-02-24T10:49:34.063Z", "postProcessHash": "486edd43926050c001be75307db73a2a4b93458eec35647ab892fc0c8e446edf" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.388Z", + "updatedAt": "2026-02-24T10:49:34.065Z", "postProcessHash": "2e6c9ddc45e0aeddefae686a16824ceecdb8253f66a9ec2807af365dcab2bd86" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.415Z", + "updatedAt": "2026-02-24T10:49:34.092Z", "postProcessHash": "fad8c647a320de2b977c10c89e41148d3d69d20132bf5277f9e92e6aa25dcf80" } } @@ -31904,19 +32246,19 @@ "3c3cdb595236de7ad8f9d05838ec2b8bf3f90caa6bca9eb1dbb703fe9b2c5f67": { "22c4567427f06c4ff596058d0963e1977f619d426a1cb0b04f22ad1721307091": { "jp": { - "updatedAt": "2026-02-19T02:24:10.312Z", + "updatedAt": "2026-02-24T10:49:33.987Z", "postProcessHash": "acc0d5038c80a9a142b2bb7c986a76309ded7f3b4ef50e3b18aceeafe96ab34d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.311Z", + "updatedAt": "2026-02-24T10:49:33.987Z", "postProcessHash": "1651c487d007774cdc84ae233fff2224ff364a18b3393ef5fde332ef3cdd13d8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.313Z", + "updatedAt": "2026-02-24T10:49:33.988Z", "postProcessHash": "748bfb06cc7f0da03f8998b395f18a418f2590b344892618e12bb543f7490274" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.414Z", + "updatedAt": "2026-02-24T10:49:34.091Z", "postProcessHash": "d6b28fa26536b68961c35cdc3c6ac9e555a18b8c14b45475a080fb75295702a1" } } @@ -31924,19 +32266,19 @@ "3cb2ac954c25f39475156759f2f4f8c8714328c659aaba596322bf83f3e3ecf3": { "da8c2bbfc6c34aa9551b3e0a532d71ec831fc09659ffc38734155072f907743e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.328Z", + "updatedAt": "2026-02-24T10:49:34.000Z", "postProcessHash": "6f90f36cd191408b73d6aebee503a8200b79300b5004e356a45610f24b787057" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.304Z", + "updatedAt": "2026-02-24T10:49:33.980Z", "postProcessHash": "42543f0420dd8e2aa06f882c226c307a1e0b12ddfb416b859a0453c7a08e637e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.326Z", + "updatedAt": "2026-02-24T10:49:33.997Z", "postProcessHash": "99a53903ae30471f770175c71c01ca3f7ece80148216badb5a324f96e6478a08" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.415Z", + "updatedAt": "2026-02-24T10:49:34.092Z", "postProcessHash": "461c4cf75122f552b41ef9d4134cbef955a53f887ad10bab7e6b3968bf4d6e73" } } @@ -31944,19 +32286,19 @@ "3f5009534c38cb29edcc48a3b2c5b50aa0363797569ad9ed3c962e075be3d711": { "e52f05211d11daf47cbab45322de5fb579805427116030493d255d74a6de33e6": { "jp": { - "updatedAt": "2026-02-19T02:24:10.316Z", + "updatedAt": "2026-02-24T10:49:33.991Z", "postProcessHash": "46cac8e78cdcbf284ee2da818139482e46c4fb4eae2175fee715576bee9adc1d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.317Z", + "updatedAt": "2026-02-24T10:49:33.992Z", "postProcessHash": "9517b5980375a14341ee1397ecce001f266c83850c664a26fcd1bfd3f6e4c43b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.390Z", + "updatedAt": "2026-02-24T10:49:34.066Z", "postProcessHash": "bc0ab14ac3d858b303414b61c3a8f8eb46b5253d3aca90e2c310551bdd65805a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.404Z", + "updatedAt": "2026-02-24T10:49:34.081Z", "postProcessHash": "fc464577ecc6dadb287d11061ec87a1094c6d1d468eb628f26aa1476287ffabf" } } @@ -31964,19 +32306,19 @@ "51d439a5ad94546b36a253aeeb85868911bfe6475f4fefb30756a75f43e01dc0": { "c9a05803f13e75801b4f09b8c52974299028da9cd5533d505c572edbdd11b9f8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.314Z", + "updatedAt": "2026-02-24T10:49:33.989Z", "postProcessHash": "d11c5c288a1952a93bceaaf02774b464f6e3d706d7601e1c5843f35f216e45fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.313Z", + "updatedAt": "2026-02-24T10:49:33.988Z", "postProcessHash": "5711bc133f0873d51beed34ca66138f9f3d2847655605800108cd7a17426b497" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.314Z", + "updatedAt": "2026-02-24T10:49:33.989Z", "postProcessHash": "5281040ac70ec1ac67f676b92a8cd358da67afcb9e158e35a9115aa3aa35fef0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.403Z", + "updatedAt": "2026-02-24T10:49:34.080Z", "postProcessHash": "fe2e063212471918f718e7660f1bc1175f7c75f64f5ceb51bf321df8dedc60ed" } } @@ -31984,19 +32326,19 @@ "5227584ef900ca7684b844bf9b013a21d6faf12f8833191ac40e941a5fa9878f": { "5405382560ae38c848c605acfb1a4ec134912ef6bcad95aab5381530689e735b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.318Z", + "updatedAt": "2026-02-24T10:49:33.993Z", "postProcessHash": "28dc1b9842a97ef512f36c9124d346338b812ec3864e1b615083bf43c7b32a1a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.319Z", + "updatedAt": "2026-02-24T10:49:33.994Z", "postProcessHash": "8ee1522bee8d50db6750693f3c27bc742abd8fe4d04a9c2fecdb8fce9f72b669" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.315Z", + "updatedAt": "2026-02-24T10:49:33.990Z", "postProcessHash": "ff09d44607b6d2afcd62ea7c88c51275c36c887c091cd81e8a9a07bdc383c312" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.405Z", + "updatedAt": "2026-02-24T10:49:34.082Z", "postProcessHash": "c876344da347ce6383cde8e786693d2e39e5435399e3c6119b318da7a9f92190" } } @@ -32004,19 +32346,19 @@ "a5397922ad119e6b298a6b4b378a68f864ea43c8323107a35954165809de0589": { "488ca0a5b4cba0af7cf4ca440e3733d6860db7e0e1beb8403ae74e4cfd8e7753": { "jp": { - "updatedAt": "2026-02-19T02:24:10.305Z", + "updatedAt": "2026-02-24T10:49:33.981Z", "postProcessHash": "4fdbc2675361453ddda8b7e8ed2ce31b12e014f461e742eabf6e404d68083b7a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.327Z", + "updatedAt": "2026-02-24T10:49:33.999Z", "postProcessHash": "f550c17a7e3ac82a748f45f2586eca512b64c36f736826dc2ea7bccf4e2e01d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.326Z", + "updatedAt": "2026-02-24T10:49:33.998Z", "postProcessHash": "3a42f3c5583aa7277837e5a58758b12815bc68b92f993f9818c479d186b65c04" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.409Z", + "updatedAt": "2026-02-24T10:49:34.086Z", "postProcessHash": "c6f69970dcff9121d7f094f4d09d6e4188c23b7ca797c6b4ba710a492d083230" } } @@ -32024,19 +32366,19 @@ "c6e56f828d1b34579ba790f93abaa05b29fb89f9585497258413971007a3a246": { "c2f203731c8694cfaf84b37109a789c0a0167657339f75db8fc7b685f948d2ea": { "jp": { - "updatedAt": "2026-02-19T02:24:10.319Z", + "updatedAt": "2026-02-24T10:49:33.993Z", "postProcessHash": "22949587eea7f04929871e472cc9eebbea5469ef7b6255e6e412ef2aea9e8b9a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.309Z", + "updatedAt": "2026-02-24T10:49:33.985Z", "postProcessHash": "cef6fccfdfb1678ca4ecd3ca8c1454673e4c133bb0d8fa45f49681eb1e688360" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.315Z", + "updatedAt": "2026-02-24T10:49:33.990Z", "postProcessHash": "abeffb0cc42d7545b1bad561307a1e9776829227a1a47786738f919e4911e4ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.403Z", + "updatedAt": "2026-02-24T10:49:34.081Z", "postProcessHash": "b907c7a066ac87110defb5137844a77a456639c57584fdeed751988ff342cf20" } } @@ -32044,19 +32386,19 @@ "c8b0b34a39a4f363d421259bdd17b9dd8d0d01f815eda9607f0d9ef245895275": { "1126bfe846bb5fcdc4b0c7c2bfd10807cc64d6e12d190d2c824329258baf5efb": { "jp": { - "updatedAt": "2026-02-19T02:24:10.312Z", + "updatedAt": "2026-02-24T10:49:33.988Z", "postProcessHash": "f8bab3d3a20fbe72890efe9048fc7cce54acbeed8b85ac6758f9d427e1f724b2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.316Z", + "updatedAt": "2026-02-24T10:49:33.991Z", "postProcessHash": "d2e0db89134cf139cb1da1d57de78c04e1780d23e739f8ade0dc4bac26e40664" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.317Z", + "updatedAt": "2026-02-24T10:49:33.992Z", "postProcessHash": "b79ff859b474d65a83fca2712f56c1c6175d6d1e3572fa08ec766d02f3995401" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.408Z", + "updatedAt": "2026-02-24T10:49:34.085Z", "postProcessHash": "1ce0f3cf90a2e694545cf6895e6d6f32b2cffa5ff0d00f722bc9386fc0c96ffa" } } @@ -32064,19 +32406,19 @@ "ce10e9c3dd234b8bf0fa7265cc3f51606b9f80563a4be89f36f9805412c6a452": { "f80ac33db9f2499ec8763473f9aaab8f92e4f89d4fbb898fbee33da6e7d210d4": { "jp": { - "updatedAt": "2026-02-19T02:24:10.374Z", + "updatedAt": "2026-02-24T10:49:34.054Z", "postProcessHash": "d08901ef65814c73948fca77dbeff50c2952664f33887abe47c3fc75314de1c3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.386Z", + "updatedAt": "2026-02-24T10:49:34.062Z", "postProcessHash": "58e583d6fab8693663bd1d130d9fc4acac3e415ba59ade7fbf278e968d1f0e3b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.383Z", + "updatedAt": "2026-02-24T10:49:34.060Z", "postProcessHash": "fdd111d54422231bce9851a368ce03cf4515fbf3e7a7decd20ef403ccd1fdf91" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.407Z", + "updatedAt": "2026-02-24T10:49:34.085Z", "postProcessHash": "456d0f4fc3e62270e3c945debb8287ec4138fb75c63062ef1cc28e5b648460f5" } } @@ -32084,19 +32426,19 @@ "e8941cfe3ebe51cf895d37bfced51319951864655bb65ed34110cfbbd542b577": { "1724335ae6c5171c92d1126311524dbb7f3ba7d451a7907320b5c0cbe7ebb3aa": { "jp": { - "updatedAt": "2026-02-19T02:24:10.387Z", + "updatedAt": "2026-02-24T10:49:34.064Z", "postProcessHash": "62c34bd17b2eee24cb6c5b64a6d2f016ee6750529796c87e9169d2948bf84178" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.373Z", + "updatedAt": "2026-02-24T10:49:34.052Z", "postProcessHash": "fac2bf08215001502f2e1d951c4a8e0fbe72c9074063c77e5af7dae8b22a46c4" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.381Z", + "updatedAt": "2026-02-24T10:49:34.059Z", "postProcessHash": "27ba8310c547c618f18edb9e06804e3accc4aec52e828285ed6a288db133ee1e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.409Z", + "updatedAt": "2026-02-24T10:49:34.086Z", "postProcessHash": "50c398a77ceb7a4f29fe2619c5a39478975caad6983ecc4d26b207becb89c83f" } } @@ -32104,19 +32446,19 @@ "ee1d174b1119575726aa2ce11719dc7482af9a58eb1e4c20075010bcc5bc200a": { "85b1114daba44b005630b9c50a7b4b79dec7d53f4ef54586f1ecd92f3f5c5d72": { "jp": { - "updatedAt": "2026-02-19T02:24:10.325Z", + "updatedAt": "2026-02-24T10:49:33.997Z", "postProcessHash": "dd00199b2a11d5be663ca5e8fe1cf10bb72331f6c2388df62e0f8e11f3db88d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.306Z", + "updatedAt": "2026-02-24T10:49:33.983Z", "postProcessHash": "39c5c294405af1608f7a99f0db411d540193d10173298f41014f5e9c81088f2a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.379Z", + "updatedAt": "2026-02-24T10:49:34.001Z", "postProcessHash": "f65f247294e23ab35b3e049ef9b2f5ddec2e284e6e37ec8229d988344461bb3f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.407Z", + "updatedAt": "2026-02-24T10:49:34.084Z", "postProcessHash": "62d97b1d49d900287ff4398c68126bcaf1ca890b307918f2395400e117cb6d06" } } @@ -32138,19 +32480,19 @@ }, "b20d70e81bda348fd528b4947ee70de0a4fe33f6d6f802271545a6b73d51fd00": { "ru": { - "updatedAt": "2026-02-19T02:24:10.453Z", + "updatedAt": "2026-02-24T10:49:34.132Z", "postProcessHash": "2b825d65e72062e7a77b64dfcb4b00475c15157cf42880011880899550c3b227" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.454Z", + "updatedAt": "2026-02-24T10:49:34.133Z", "postProcessHash": "e25f4ec26a5a452881f52c1958afc90bad06c97f6382328c5db784378066f395" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.454Z", + "updatedAt": "2026-02-24T10:49:34.133Z", "postProcessHash": "ecdf7b0bd52d3bce6a248ca207679da5aa6c7d5b067ce77a211808ccf0dd4a6d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.553Z", + "updatedAt": "2026-02-24T10:49:34.213Z", "postProcessHash": "2d735c522c2b12a0792de4b389667d86209dc0fe49dbff58539819ce176a6e6e" } } @@ -32158,19 +32500,19 @@ "0de197a09c02a6e7de6b2120720f01b2f26dd69cc09e57640234c52fe619cbe1": { "a3b2b2da1705264e477035d4c4f93d27e7c159e13c8fefc67fdbac404fa1df2f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.443Z", + "updatedAt": "2026-02-24T10:49:34.122Z", "postProcessHash": "8ec524bb61c63c29657a84afee9e7c6e69769f619ae7f0484e5b6221962ad09b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.445Z", + "updatedAt": "2026-02-24T10:49:34.124Z", "postProcessHash": "6d28e37e75a2048db13687c341d4c381e537c54b03bbefd4f27987d3d3a47507" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.436Z", + "updatedAt": "2026-02-24T10:49:34.115Z", "postProcessHash": "57697c1421e32c9d32f1706ba0e2ed33a3e283c54ba9a24f7c427ad3e6bee04e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.566Z", + "updatedAt": "2026-02-24T10:49:34.226Z", "postProcessHash": "ce915e9d7a4bc8d92fb93226a7605acc4ce54e36b438f8e5243aedefd6a1ceb9" } } @@ -32224,19 +32566,19 @@ }, "bfafcc08967887423b73f8ae04f0ca3ba1585ed3a35e60d98defc55a7de6a7da": { "zh": { - "updatedAt": "2026-02-19T02:24:10.418Z", + "updatedAt": "2026-02-24T10:49:34.095Z", "postProcessHash": "f2d45d3b718b155372574a9d02fbf4720fd0485815064e1afcd811eb8a5ca1b4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.419Z", + "updatedAt": "2026-02-24T10:49:34.096Z", "postProcessHash": "eb5290bcb74064a97f751edafde0e5ffa9141d8d7e2fcd8bfb916a24a6f04b5c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.420Z", + "updatedAt": "2026-02-24T10:49:34.097Z", "postProcessHash": "335f6d4879feb753133f2bd302271c37f802e29c8c2a828b6e7dad40454be63f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.420Z", + "updatedAt": "2026-02-24T10:49:34.097Z", "postProcessHash": "b9afbbb444d686ebaf00764df8786167b91687852277579ff29777e1cc913505" } } @@ -32244,19 +32586,19 @@ "4511c24ad879085d0713bffa28b8695c1a87d24872ce30015bb857f43c961627": { "f33dc7dd4c81c9ff62d672ddd22da52fe2b3790feef29653e27d7dbf105dacdc": { "jp": { - "updatedAt": "2026-02-19T02:24:10.381Z", + "updatedAt": "2026-02-24T10:49:34.059Z", "postProcessHash": "b97670da1cb9fcebd3b24320b2031a32f75a08fe2447ac24cf8652b2d78c5619" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.375Z", + "updatedAt": "2026-02-24T10:49:34.054Z", "postProcessHash": "c3c1d52dce19afb59a29b3a8180a8dd5c2555054665e9de9b8976cb0489c9538" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.374Z", + "updatedAt": "2026-02-24T10:49:34.053Z", "postProcessHash": "e3d5e32f29e66034ff7930ebbb3f54b942d9c16455464078487a493e63aa1734" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.411Z", + "updatedAt": "2026-02-24T10:49:34.088Z", "postProcessHash": "b378b7473a4997416ae4b8debe7096681e1a5c16340973345f6804647d714aba" } } @@ -32264,19 +32606,19 @@ "7209b7ddab6e5d0aa0edb6dd2a9d28893ced1fa4a5e84eca66e18a12cbc9a471": { "b55f055c6ea298013d180b87459ca4cbef2d564e3a47054885bf85eca5781ed7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.368Z", + "updatedAt": "2026-02-24T10:49:34.046Z", "postProcessHash": "d9aed99a8a9914f0174fad46f8461b87b5cee60db0420f3ab6ce98f520077b52" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.380Z", + "updatedAt": "2026-02-24T10:49:34.058Z", "postProcessHash": "d3ced5c33d49b0ef985ad4d1eec43cc39f14af44cef255fa18eae9e9715be0a1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.379Z", + "updatedAt": "2026-02-24T10:49:34.058Z", "postProcessHash": "54046a0bd668d339513139a234233366c4fde7852b5c75721b9ddf3a9ec9874b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.417Z", + "updatedAt": "2026-02-24T10:49:34.094Z", "postProcessHash": "d8ab56be20bc705fba3a5ed04aab54e4a256953238528a116f06171aeae55ec9" } } @@ -32284,19 +32626,19 @@ "8d5ac58622d05dc878c50a9901e001b81276e5c37349076f70389f7ec8731cb4": { "2a5bbf839d622f7ef15b7a5b8575e42dcbd0d1ab16bf6f98ab233f94cdbd68b3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.372Z", + "updatedAt": "2026-02-24T10:49:34.051Z", "postProcessHash": "9a32931d4f5dab0ddde85b32042309669cfc73b7869a79a9cfb6f6118eb5fdbd" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.384Z", + "updatedAt": "2026-02-24T10:49:34.061Z", "postProcessHash": "e1f89e5db53b58f58f6ae4c8e97848a8dda82d5e18633e8bb0bac905768486ff" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.376Z", + "updatedAt": "2026-02-24T10:49:34.055Z", "postProcessHash": "60b31d113292bdf3fd677a53fbcc4a967ab6ef02594316d63b87d9610f486a91" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.417Z", + "updatedAt": "2026-02-24T10:49:34.094Z", "postProcessHash": "1c8bbedcb41a79bde10819dd76ff054d96a74234976157797f5f2d3f6f428235" } } @@ -32304,19 +32646,19 @@ "9da34b15afe0cf84a2c73d8d1acfc85dae89be8c90605898caceecbc4626da99": { "ce873407eda99feac5ab7638cb9c330da28e87de5b88e7f7e35b3b8dba2c1ffc": { "jp": { - "updatedAt": "2026-02-19T02:24:10.383Z", + "updatedAt": "2026-02-24T10:49:34.060Z", "postProcessHash": "e77b7fff91f667cc27f3bbc61b2cc49eb42e2bbc92b1e763d3e2128631cf0653" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.372Z", + "updatedAt": "2026-02-24T10:49:34.050Z", "postProcessHash": "7decb2f31289852157f8c435b169668eb7f5ca8b25dd162fa3cddab3fe9ff8cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.371Z", + "updatedAt": "2026-02-24T10:49:34.050Z", "postProcessHash": "989dabc0e145155124046fce1e294ee10472b622e4610908d25e8107cd818667" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.410Z", + "updatedAt": "2026-02-24T10:49:34.087Z", "postProcessHash": "522918a55ce08264a93749f766db937c6dd1da102f39b2819ca6ba4b968c881b" } } @@ -32338,19 +32680,19 @@ }, "3344d9c5165b7b6377ccf5b01e57c89069ae5db91fb0a15b3bfff8665e277c51": { "zh": { - "updatedAt": "2026-02-19T02:24:10.394Z", + "updatedAt": "2026-02-24T10:49:34.072Z", "postProcessHash": "96b939bc61c346f7132878634b2a50ffc5aa6b060b41ab6c2fed020bbdcb8e72" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.394Z", + "updatedAt": "2026-02-24T10:49:34.073Z", "postProcessHash": "31380be02a13f9f209516672038bfec3c0b2619dc596bb0fb751a2f0d8320af7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.395Z", + "updatedAt": "2026-02-24T10:49:34.073Z", "postProcessHash": "079ee52e8b8952523075ff86354bf2ac6ba2856598e31ffd8b9dafe32612f1e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.413Z", + "updatedAt": "2026-02-24T10:49:34.090Z", "postProcessHash": "b5b54ac253d9fc4f559e0188ce9540f9995533404a039a38c1978ba0e4c7fd5f" } } @@ -32358,19 +32700,19 @@ "bc635d7f6a9111bbbc3d31c625fcda3adb9eadc78253335799d1b3a12a509df7": { "b7a3734788840b662f127af66b64815bd7c85bf39dd4cf42306c85eb6f392d01": { "zh": { - "updatedAt": "2026-02-19T02:24:10.442Z", + "updatedAt": "2026-02-24T10:49:34.120Z", "postProcessHash": "9f4f4dd1058959f424f8493aaeb1f23e5a6ec690b0d2c082cff0df4c22cd5da2" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.443Z", + "updatedAt": "2026-02-24T10:49:34.121Z", "postProcessHash": "6a3a8083ec6bbc78c47e89dbe416773ad66ec0368601664a5f690e90306be284" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.446Z", + "updatedAt": "2026-02-24T10:49:34.125Z", "postProcessHash": "69af17188bf2be681569181066ec78abe62c02d474ec62d96b966544beae42eb" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.492Z", + "updatedAt": "2026-02-24T10:49:34.152Z", "postProcessHash": "5416714cc18c4359c6d3b4f92996e6a0f724e3f89731d7ef7e8c367e9a6491f6" } } @@ -32378,19 +32720,19 @@ "bdf357b395b129f57e836477b2fc57675705bcf48e1acda08c190ab17a75951e": { "3a0381755f449a5032606d2fdab638ca733950978814b42e1aceb74203a2235b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.425Z", + "updatedAt": "2026-02-24T10:49:34.103Z", "postProcessHash": "a6e75c1dd88b456d3a10aa32dc6730e75094107b758f5d01db14d3505e54f6c9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.437Z", + "updatedAt": "2026-02-24T10:49:34.116Z", "postProcessHash": "771370365e4453b423d306cca8276383c595cb65f0c5ce252c31f1b264d64299" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.426Z", + "updatedAt": "2026-02-24T10:49:34.104Z", "postProcessHash": "45f06e68548436f3addbb17f7c96d8af5b8b574104ebeae326bd34b900b43dc8" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.488Z", + "updatedAt": "2026-02-24T10:49:34.149Z", "postProcessHash": "0c03da0bec7883224ec48b68e29976dda3b34e83e7edc7cb5e67251944cf7013" } } @@ -32398,19 +32740,19 @@ "c54fab4cf7043c79b8ce701279e089e154ad852ea3c4248cb2c8da671cbc17db": { "b6e7b7146868d159e85bc698be8dd009a8755c7a8c993e4406163a4d71a408a9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.373Z", + "updatedAt": "2026-02-24T10:49:34.052Z", "postProcessHash": "33123bc614ebc1b143e22977a42106a9d80765517dbdbb7ad41538e7167be6ef" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.378Z", + "updatedAt": "2026-02-24T10:49:34.057Z", "postProcessHash": "35c663e86b7de654116fe7bd56d2a279cbfbc8514ad7a9a8b21018c7cdec8971" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.375Z", + "updatedAt": "2026-02-24T10:49:34.055Z", "postProcessHash": "fd4d1f4da38e4445d3c9e70496565fc3e375c36174c1f668f8921f47783fc452" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.406Z", + "updatedAt": "2026-02-24T10:49:34.083Z", "postProcessHash": "a80b7e68bf8ce1412400f2812149d20995364d3a2174af1bd6064d51841087aa" } } @@ -32418,19 +32760,19 @@ "c571247fa3e091098d027771a55d5ebe774d6d531b2c5384736de73837552959": { "e5aeca6ca592dd8ef3c7bcf54b278d64dd04a95cd012f8594105429290303c21": { "jp": { - "updatedAt": "2026-02-19T02:24:10.368Z", + "updatedAt": "2026-02-24T10:49:34.046Z", "postProcessHash": "78bf3b6fd50c041abb45e701ff0b4f68f795b991fa57c98928e92cbdec207f35" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.387Z", + "updatedAt": "2026-02-24T10:49:34.064Z", "postProcessHash": "e93ff65c064a017d4b6055a7b044bd7738fb859ad7eca6843c2ba01dff8d272c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.376Z", + "updatedAt": "2026-02-24T10:49:34.055Z", "postProcessHash": "d49d0562f17fb073ded2f9b7a92d1cc82d026feb53922d324b704f9ff2d8e822" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.412Z", + "updatedAt": "2026-02-24T10:49:34.089Z", "postProcessHash": "b115b6c9148a7f55f4e020a5474a4022dbf77c740685e520128cfc1171dd1f63" } } @@ -32438,19 +32780,19 @@ "cc311a7d9ae7be3e04c62efd5c5b7aa8cb9d6075749b29e99939d01baa76e3fe": { "3de10984a294ee3ab3e7105d5ba6c42208236c0f01721e7189efb0af99ca2490": { "jp": { - "updatedAt": "2026-02-19T02:24:10.368Z", + "updatedAt": "2026-02-24T10:49:34.047Z", "postProcessHash": "d3f96ac71dff78e78f9cfe254f9a1b52edf947311883edb05af42d4913d7b7f7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.377Z", + "updatedAt": "2026-02-24T10:49:34.056Z", "postProcessHash": "bf03635a768c9b8238594878e2846075b1fb94c915154eddcbe9551ddbf4a594" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.384Z", + "updatedAt": "2026-02-24T10:49:34.061Z", "postProcessHash": "df6d244b8355a04a6f625134e486d446f836a4674e76cf9310b01d6944de122d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.410Z", + "updatedAt": "2026-02-24T10:49:34.087Z", "postProcessHash": "ad4e4bd2ff47a044823cc22158b05e6be323bf3699d4bdf1899468f79189a689" } } @@ -32472,19 +32814,19 @@ }, "6449fcf1aab530d9d7cf4e9c13de053de1d6c1cee853af36c0d25030ea2c0a46": { "ru": { - "updatedAt": "2026-02-19T02:24:10.390Z", + "updatedAt": "2026-02-24T10:49:34.067Z", "postProcessHash": "2a8cf1a96dcf1aed4e6ff17c5f6f22b43112c989f0436351786a83358dd309ae" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.391Z", + "updatedAt": "2026-02-24T10:49:34.067Z", "postProcessHash": "6edab6f5cf19b3345b3757fa388e4c7ad598c6a725208419a6b76bc4f39140bf" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.391Z", + "updatedAt": "2026-02-24T10:49:34.070Z", "postProcessHash": "0ab3361520fdbf67532041afb08243138b57d56d7e4b1f6a17c86db7bd719b0e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.416Z", + "updatedAt": "2026-02-24T10:49:34.093Z", "postProcessHash": "3295e26df0799a7ea9990fa59c8dc5975a418189af7afa10d70c89bd3af39ab9" } } @@ -32492,19 +32834,19 @@ "ee343f5a3bf00722c8dacdf2e096fa970da83e5102fcb1446bbc99a4b089a390": { "72f38826fa27979a73a67e5413b3854cc5f5f2bfca9f1efe2890e20dc90a5020": { "jp": { - "updatedAt": "2026-02-19T02:24:10.378Z", + "updatedAt": "2026-02-24T10:49:34.057Z", "postProcessHash": "6b89f5c26822de413688e343c671985c879b1f95b69b53934be379f16ee0cacc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.382Z", + "updatedAt": "2026-02-24T10:49:34.060Z", "postProcessHash": "cdef9826323d7aed0c11ba31ef5cf422afe5391e3ba99ab22b638f82585a5fed" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.364Z", + "updatedAt": "2026-02-24T10:49:34.042Z", "postProcessHash": "7517f39a7537e53036b3cd4ba7de047328e0ee33f35206b711bf1c149e3775dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.406Z", + "updatedAt": "2026-02-24T10:49:34.083Z", "postProcessHash": "3d4a746d41cf80baf243e801a1c7c5ed405bdac4fddda707d712f411b42a7bba" } } @@ -32526,19 +32868,19 @@ }, "6aa78c44dd6167c4589dd9625fd974fdf1d3ba1ca0014129bf7d0da2162d78a4": { "ru": { - "updatedAt": "2026-02-19T02:24:10.392Z", + "updatedAt": "2026-02-24T10:49:34.070Z", "postProcessHash": "88a3d113d43d71fb57dd208c2180714366c1bdc69b27514a41c90649c55cbdbd" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.393Z", + "updatedAt": "2026-02-24T10:49:34.071Z", "postProcessHash": "9d87e9269f417216b37e12851437ec3b70dbe4176fd4d368cc7d5bf19b6f9451" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.393Z", + "updatedAt": "2026-02-24T10:49:34.071Z", "postProcessHash": "053ae3ff43d75a2ff8e9d769bb80bab22129ca81e6281675e1127a248292586d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.412Z", + "updatedAt": "2026-02-24T10:49:34.089Z", "postProcessHash": "a63e28dcd9804026ca0d804e457b6c5617c75ee26315c6959daf38a2a1d5c941" } } @@ -32546,19 +32888,19 @@ "fc92ad70da88c48808fdb53f68400c73f6f900eca6a95d544909915d2b22d9f0": { "16c47449f52759987429555de611585f7f1f6d6770d4c1ced0d74ae244ab45df": { "jp": { - "updatedAt": "2026-02-19T02:24:10.436Z", + "updatedAt": "2026-02-24T10:49:34.115Z", "postProcessHash": "313471062279195612d59ec683acc31c310600f389d7a3eb32134b97c60aeadc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.432Z", + "updatedAt": "2026-02-24T10:49:34.111Z", "postProcessHash": "9ca4c6bba584c6effeecbc9feeb4f2ba429797f14f57181a757ba9f7db7167f5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.365Z", + "updatedAt": "2026-02-24T10:49:34.043Z", "postProcessHash": "53681e067e663881ec038a649582e0291ad872c6f0ef52be1a328e15d58ee3e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.490Z", + "updatedAt": "2026-02-24T10:49:34.151Z", "postProcessHash": "245faac60e10ef74059ca567c75efbfbe376a9f342da921d001576796d2f1129" } } @@ -32566,19 +32908,19 @@ "fd2a3635e203221890fdb75fdb12cad083607f12a05af6e46565b58b28626a3f": { "69e391ff6463d09b09730e7e4366b4c486d3bb1759441114546febf2e97601a2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.369Z", + "updatedAt": "2026-02-24T10:49:34.048Z", "postProcessHash": "2f897cb351863d1591872598c325f5d46a06648cbbaa0804877b611a3a0c9602" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.370Z", + "updatedAt": "2026-02-24T10:49:34.049Z", "postProcessHash": "cc79647a40f9ed85b260b084eefd5d03611be6e29bfd7d658d7c3beb151c219d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.371Z", + "updatedAt": "2026-02-24T10:49:34.049Z", "postProcessHash": "2d2a7b71859fb58b56824fec113b86b964a5ce2be5878644d0088bc3a76891d2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.418Z", + "updatedAt": "2026-02-24T10:49:34.094Z", "postProcessHash": "1efb6d98bba7f258df6c5c8113fa5fe131285e59e8c1a280b349ea89330cc658" } } @@ -32586,19 +32928,19 @@ "01730b1ec82c24f14c646ea28a41edd24f15dd6258eadc1f9401688d51eaad3a": { "303c8891cee64e9b8765b1a9436de1274fd2bbe91f843406837e41ba74c6c318": { "jp": { - "updatedAt": "2026-02-19T02:24:10.599Z", + "updatedAt": "2026-02-24T10:49:34.254Z", "postProcessHash": "7b515082c0f5e5420daa3650fa3cc380a73a2574df6744b63416525eff25855d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.506Z", + "updatedAt": "2026-02-24T10:49:34.178Z", "postProcessHash": "e5854213d96361777bb240e739aebd92cedf07458f92ed47950c11166a299a65" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.620Z", + "updatedAt": "2026-02-24T10:49:34.267Z", "postProcessHash": "fa1230b67b96a704a904f1de343f1a12cfdf4350092fc16e05a0e77cf977ab27" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.659Z", + "updatedAt": "2026-02-24T10:49:34.294Z", "postProcessHash": "06b1138fa06f2ff486138cb66b2ab500958fd9d8150fcd3d7fe80eedcf23e2f3" } }, @@ -32617,19 +32959,19 @@ "0f88f2bd27c6a3bc5b20ffd358c1599368da4a7821aed81420035a719675f40a": { "947a7d558e471c72cf79437a217f341c9e6e2083cef8d20956a3839b9c085fa3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.438Z", + "updatedAt": "2026-02-24T10:49:34.117Z", "postProcessHash": "7a7674cd44c5732a1d22f7eb80be0113ccb4abb9fcd8e965e1ddd0288daf21ff" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.455Z", + "updatedAt": "2026-02-24T10:49:34.134Z", "postProcessHash": "76897dda7a216b262f9fad273a7c8f9c71bb0ff8cd8dee04e3bc57ee68cf4af7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.435Z", + "updatedAt": "2026-02-24T10:49:34.114Z", "postProcessHash": "21554266928d8a59435fddce4d524b142a3da5152ffa9c5452a994868613c990" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.490Z", + "updatedAt": "2026-02-24T10:49:34.150Z", "postProcessHash": "3cee7d4c5c570adab8c1c06a9ca91b4a19c1a3c6ecaf3509262ea91cb43dd3b5" } } @@ -32637,19 +32979,19 @@ "2407e7afa831d557309ac0a87b9eae46f720441353201d2e2c78ed3e2510ab2a": { "1e84c0fe8d2d9789e16132b70f9a5d9a1b2fb7084db35c324173b1b69a5e7848": { "jp": { - "updatedAt": "2026-02-19T02:24:10.620Z", + "updatedAt": "2026-02-24T10:49:34.267Z", "postProcessHash": "1ad2c752849fdfbb20f6c308bad85f613157d22e1e0b678eed68d0673d963efe" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.626Z", + "updatedAt": "2026-02-24T10:49:34.272Z", "postProcessHash": "2cdcaab8b356572129f29c830ca711f155a7701ebfb44f1e2c55539e917de659" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.621Z", + "updatedAt": "2026-02-24T10:49:34.269Z", "postProcessHash": "e82b89e1c7ca9fc50a8da07984f4770877d72d1f70e42eab095f75da487fdc10" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.660Z", + "updatedAt": "2026-02-24T10:49:34.295Z", "postProcessHash": "8b7ef6cb9b399cccf3ee6d74b987cbcd7ce61e42e9781f76de3173ed94658f1b" } }, @@ -32668,19 +33010,19 @@ "24f89815412a9281c45be003f0d9b1edaffe253b9fb6e44d0b69114de2a8bb5c": { "856a0875860cb4e9fdc7fca531785d1b4ba67b93fdace5421889ea8cc500ef1f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.427Z", + "updatedAt": "2026-02-24T10:49:34.105Z", "postProcessHash": "e59c19037b7f0b92c2014993e61b5f7d9b007b57ce09200bb629d4cf26660261" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.427Z", + "updatedAt": "2026-02-24T10:49:34.106Z", "postProcessHash": "a72e2b25f4fb01dfbd0affca90363783161d5799f09023d4f8500b604b29c18d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.428Z", + "updatedAt": "2026-02-24T10:49:34.107Z", "postProcessHash": "c14692fe49f2e28314bdfc3d297ed9397f1b58e42c984ea7922b5b5a22b3670c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.493Z", + "updatedAt": "2026-02-24T10:49:34.153Z", "postProcessHash": "3d6dec01f72a5a0977b0df36c8e14ab3e0c2c07daab75cec2b32fa91b1a9986e" } } @@ -32741,19 +33083,19 @@ }, "0e6d2ba1815e85e753d2d9d2ebb69292014bb834156efc79842910cd78b946da": { "ru": { - "updatedAt": "2026-02-19T02:24:10.543Z", + "updatedAt": "2026-02-24T10:49:34.206Z", "postProcessHash": "b5906762933272e80516315cd8172521a6032a91f7dc3dc84bb446af9b3652f9" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.544Z", + "updatedAt": "2026-02-24T10:49:34.207Z", "postProcessHash": "1ff3297a1742a2297144ace6e8f704923163330c02bfa152ba796089c14f846f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.544Z", + "updatedAt": "2026-02-24T10:49:34.208Z", "postProcessHash": "bc9aa898270d66bbbcd085c4aa5e7372e08629036a3594acea90e62b653accd4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.564Z", + "updatedAt": "2026-02-24T10:49:34.225Z", "postProcessHash": "5e91246f6af5d1bf40662d7ca90a753a17dd0f7c83dfd2f67b8792261ac30818" } } @@ -32761,19 +33103,19 @@ "417572f3f0c0dee81daaaf436d03f842c9160631b01f165595d06d9e99f3c6c0": { "bedae71b49b3c79b70e3ad0767d167ca7bf7f0cf3792f2786f3be6e243ac41f5": { "ru": { - "updatedAt": "2026-02-19T02:24:10.424Z", + "updatedAt": "2026-02-24T10:49:34.103Z", "postProcessHash": "dbc2e4fd0a9243d388eb6442476f4ef5f7e3e9bf5dc22f5cf966144935f53506" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.426Z", + "updatedAt": "2026-02-24T10:49:34.105Z", "postProcessHash": "cbff50082bdc5198df68b1ba3bc45e2ae99de6fa2fba631a3864066411fd6c4f" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.438Z", + "updatedAt": "2026-02-24T10:49:34.117Z", "postProcessHash": "60988e414dc220ddb576f693813a4bc6e3a9b877f5eb8dfee8a949176426641c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.550Z", + "updatedAt": "2026-02-24T10:49:34.210Z", "postProcessHash": "8e4f95a8a9711e9ab25f342731d2097ff6222a408c1ec9e9a22b35379c312922" } } @@ -32795,19 +33137,19 @@ }, "d921a22cfbb3662203ab94aaa8f0c8feb7d95915e8bbb413e58c820e82e6b9b8": { "ru": { - "updatedAt": "2026-02-19T02:24:10.455Z", + "updatedAt": "2026-02-24T10:49:34.134Z", "postProcessHash": "4dafad8d06bce528bd9de409048f0a50fa6b908f0ab8fd2b4ffa7fc4ed192235" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.456Z", + "updatedAt": "2026-02-24T10:49:34.135Z", "postProcessHash": "0244a4e3592993c94acf0a3be969ea04c4c81d1b170fcc577d01ecf6138ac5b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.458Z", + "updatedAt": "2026-02-24T10:49:34.137Z", "postProcessHash": "4f1a2a7480abf1b19d908e52658579cba2db03563cd2eabf40c12567f6216cf0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.551Z", + "updatedAt": "2026-02-24T10:49:34.212Z", "postProcessHash": "d079126a4b5e439579a92f701738a7a9b926ee56ccd514fe825c5059755485fb" } } @@ -32815,19 +33157,19 @@ "4f6f1a6da73f8d186f0a18ad4c69138ec62d12a6b38064449c0eaf1293c82145": { "19880790e9525db190f5e72d85ffc766a344cde65183576c30c03ab560c76bad": { "jp": { - "updatedAt": "2026-02-19T02:24:10.422Z", + "updatedAt": "2026-02-24T10:49:34.045Z", "postProcessHash": "ba26b5af86b0fd02fbeb7b710a97afe32ed202c700d2536f0d7db03bf3be14e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.448Z", + "updatedAt": "2026-02-24T10:49:34.128Z", "postProcessHash": "bda4e71d32252bdd275b9a469ebb7956ca18789dba2e15491a17121cbceddd7f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.449Z", + "updatedAt": "2026-02-24T10:49:34.128Z", "postProcessHash": "ce977c54d41fe35d1f780f462a9be2f86a76dabaf3274827146c21c999b81649" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.496Z", + "updatedAt": "2026-02-24T10:49:34.156Z", "postProcessHash": "b68b3df722a9d250743e2f42119c1583beeeef42bc94b68b2cf15e78a29c3ea4" } } @@ -32835,19 +33177,19 @@ "544e14c8df8e9aeba587c7a01debdb6de7b8d0dc480e2a471b321fe3cd637687": { "56a8436026a55bc58795064c90dcf48eb1783d7c4aeb6e25f3c6be910d52bfb0": { "jp": { - "updatedAt": "2026-02-19T02:24:10.423Z", + "updatedAt": "2026-02-24T10:49:34.102Z", "postProcessHash": "81aa847c6d23c51a19ffa04d6a5b9b6d89c7c2986fae5295afbaa7de86ca6bb3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.439Z", + "updatedAt": "2026-02-24T10:49:34.118Z", "postProcessHash": "afd463e983133117e691cad7f041364cc9cebec36d2ace02ec9ad67ae437b94a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.434Z", + "updatedAt": "2026-02-24T10:49:34.113Z", "postProcessHash": "73edc8b8f8174738b017dcde4616627ff06f0852104f9fe2ad3977161dbee1a2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.552Z", + "updatedAt": "2026-02-24T10:49:34.212Z", "postProcessHash": "16fc23272ad3290058d954b8b521535f752b98ddb102b07ece3f8bfc3bd3ffe4" } } @@ -33385,6 +33727,24 @@ "updatedAt": "2026-02-19T02:24:10.592Z", "postProcessHash": "eace551b8b6134a662eacdecd0f3fffc5209e0f959efa1eddcea990afa2b566b" } + }, + "eb5dde6d32126d471281cf04982423792d96346721cb14f124331d60d90909b2": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.236Z", + "postProcessHash": "5f52ca04e342c07966fcd824faedd7f92c3379ef1621b38e51e7c75e003ea04a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.241Z", + "postProcessHash": "84212541db994c110f16085a9cc01777e3adeb330cef434ce11b4f281a4edeac" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.244Z", + "postProcessHash": "b03dff5d109f4c06adea312201f9c4d3f28d46e2b283231bf1ca3c8ac79d426f" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.247Z", + "postProcessHash": "cf37dfa4a8b7f0ceb937dd717aea94087638cfde1eb71121d95a2aafe5a49967" + } } }, "596b0a954cde794b5e64f8babd89a81c1359843a6046215dd00cba539357857d": { @@ -33405,6 +33765,24 @@ "updatedAt": "2026-02-19T02:24:10.496Z", "postProcessHash": "3bf4ff466f4c0f9a53e20d234958aa595157cdf6833e2fc96b0ff51b9d337f40" } + }, + "497336b97ccf62d6a50b3a3a1d22b8e3801c44cb9c98ccc36c0febe7cb0e0d97": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.171Z", + "postProcessHash": "a44933c9f0b321690b97e65c51cdf07f888a1878fcaf26e918e59b737c047a5f" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.172Z", + "postProcessHash": "5eb5595e418818ca64bc37916a8e52d3e47dff7d359217ad1c1a946f960b63b6" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.172Z", + "postProcessHash": "707c6aea60135f3fefdc2e135edcd70f2b0df449db0569d9cab00183e41e11da" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.173Z", + "postProcessHash": "1464ce48953701ef6a420df65d16542eb456e7aa4363542c2e0d8498b813fef4" + } } }, "65351c23daaa6ae3579c1740e82b1f56ce6eb541ff65d23ed1f890694f6ea440": { @@ -33424,19 +33802,19 @@ }, "d67f616f50eb112f050e8b2c3f05ca31cdc281d0f9c741e7dfd0dd48aeb464d7": { "ru": { - "updatedAt": "2026-02-19T02:24:10.456Z", + "updatedAt": "2026-02-24T10:49:34.135Z", "postProcessHash": "45cc5f300057ff251f5dd8f4a4547a49d507f0ca84692a3209c11a43a9480e69" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.457Z", + "updatedAt": "2026-02-24T10:49:34.136Z", "postProcessHash": "99577a3df543341162a53a2949e4df5d4c506fc0e3db56865070edf9887aa03a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.458Z", + "updatedAt": "2026-02-24T10:49:34.137Z", "postProcessHash": "fde984a587b408c772bb3840b187c082aefb43552f80823c27b0ebb42e8a263f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.555Z", + "updatedAt": "2026-02-24T10:49:34.215Z", "postProcessHash": "7e91c836f496efbc58e0df8bda6b8b1178839ae9ba54f141d9f73674c9e048de" } } @@ -33444,19 +33822,19 @@ "942eceae58e0a094962eb7383ca418c7a0fb355bbdf35ed09b1fb271b8ef0622": { "a06cd352188c57c4dc80e07b3511cf0c55b644a5eac9806b52fee16a901321cc": { "jp": { - "updatedAt": "2026-02-19T02:24:10.423Z", + "updatedAt": "2026-02-24T10:49:34.102Z", "postProcessHash": "3eaa92c4422f3ce78fc0cd3c6ac33481d2d24bf325987766da0e45d08757614a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.437Z", + "updatedAt": "2026-02-24T10:49:34.116Z", "postProcessHash": "43b70b68baef94b45d42f21d20f83f38a4fbb546c8f75fcca29fe41679d01a1b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.434Z", + "updatedAt": "2026-02-24T10:49:34.114Z", "postProcessHash": "819114a6f6c714fea46f869be18f5361ef79a4fcb89fcfac99a811da56adfee1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.493Z", + "updatedAt": "2026-02-24T10:49:34.153Z", "postProcessHash": "312ae9bfe2eff89259c0afd6c4ed02f90a6524ac71365deb5d15d0840d09eea5" } } @@ -33655,6 +34033,24 @@ "updatedAt": "2026-02-19T02:24:10.566Z", "postProcessHash": "f9a072a88248043457df0a8c51888f496d39a25ab9604583f321e3a9c4feabee" } + }, + "8f7e5b7236db3cc37bc38b89a7cded63ebff83a5adef26bb66cb0c0cd53a4953": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.229Z", + "postProcessHash": "9ee9c9ab04865abe951d3806ba7afed0b27f1b0d42d47fd47f41ed073537c773" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.230Z", + "postProcessHash": "4ce3432be58f4c6879787f578455ae039777963ca27f8133e2da11bedbe76d01" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.231Z", + "postProcessHash": "7b77084fe2cbbd6a4cc1efa002dff63378436a26cde9c8bb47317c962b10bd42" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.233Z", + "postProcessHash": "cb970474ecd0d0d54a2548dd8547e2957830d4b427d0908b1cbfa9857f9507ba" + } } }, "a4265198145ae0d412153c5abd0417df656a57368c80042916957e2c00936a91": { @@ -33932,24 +34328,42 @@ "updatedAt": "2026-02-19T02:24:10.500Z", "postProcessHash": "7b830b7cdab57051ca7f0b150478c61f43a928b5e86e0ad9682d53ec2bb8a7f9" } + }, + "a1e2acad4933bac499d0b2ce97a9a1654b38b537296d147eaf695dc9ade0b832": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.160Z", + "postProcessHash": "d540618d51b3a88fe9323aa8c97c6aae5acc1fa09e32db05bc9fe8fc3d5af1dd" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.162Z", + "postProcessHash": "0a0c9c4fee89fc35f614b8007b38712293a35270be9e0bb3e6387f3c6b61b6ad" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.166Z", + "postProcessHash": "e5618c78c5065e733b1fab305185abf72ddaf64f220510e4f29520c6edee571a" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.171Z", + "postProcessHash": "92bece47cd9bcc39eb13ea16f424474bce98b37f999576465c14b056fb6d5ac3" + } } }, "acaee03135e8e96bcdcf34c15546b735f613d1e5ae560184c16e47ce55501204": { "8a07567dde3044656ee0f3a1ecdd3437e3653bc1dbd011b4bab9edb2c0e04c95": { "jp": { - "updatedAt": "2026-02-19T02:24:10.442Z", + "updatedAt": "2026-02-24T10:49:34.121Z", "postProcessHash": "27e88088d46b5e83502bef1e131f9cc8af2e5f8180ff86b42fd8d8e36395d1a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.366Z", + "updatedAt": "2026-02-24T10:49:34.044Z", "postProcessHash": "b873103493c188b3d8f6f0414f4d74172ec038e692928954c1c42341d30aed64" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.444Z", + "updatedAt": "2026-02-24T10:49:34.123Z", "postProcessHash": "d4a3da67eff2094a119dfd90c34cb2c6c5c4680d80bc981fae9855a7b6144239" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.489Z", + "updatedAt": "2026-02-24T10:49:34.150Z", "postProcessHash": "9169d06d009a8233c7a8a8d7dbf9f0376a21452ab53da3ae92f434ab8781f81b" } } @@ -33957,19 +34371,19 @@ "ae900fe149a5b14ee7a25d9f850a7fed9bbb24da3497c1861285d73a625852e6": { "178aea88d150360011d964d55863a4f9f7585cb6ddc5b56d142898d29ed03414": { "jp": { - "updatedAt": "2026-02-19T02:24:10.428Z", + "updatedAt": "2026-02-24T10:49:34.107Z", "postProcessHash": "c6037b908227e7fa70ab24b3c39b86c08b007dbdd4c1e510e367ad7a75841bab" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.429Z", + "updatedAt": "2026-02-24T10:49:34.108Z", "postProcessHash": "9bec8990645aca395bc69bd966f0ac5daece92e4492ac8e74db92809039dcaac" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.429Z", + "updatedAt": "2026-02-24T10:49:34.108Z", "postProcessHash": "bcf18a97a96f507e06c7d6bd0e8accee44800f35e87a74a9524926913ada94eb" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.556Z", + "updatedAt": "2026-02-24T10:49:34.216Z", "postProcessHash": "37dc8f715cf4f25beb4822d5d6df847399e6a57f11e955c2c350b68d676b5f86" } } @@ -33991,19 +34405,19 @@ }, "3090f9426c43bdc2966164973f656106975dba7adb2b83e694dea0ead862df9c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.548Z", + "updatedAt": "2026-02-24T10:49:34.145Z", "postProcessHash": "d2ce0eb4ea680377a25420fe2d5ce6384ac6e83e0254fac3dd04951d75743b52" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.548Z", + "updatedAt": "2026-02-24T10:49:34.208Z", "postProcessHash": "793da15dba45579b34eaa4bcc5b7da2fb996ff4bfbb76094a350bb23a55b45b3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.549Z", + "updatedAt": "2026-02-24T10:49:34.209Z", "postProcessHash": "d0d34cdb4fdaa87c2c44a0e5dee2810a71c1a76e0f7fe60acdd0f6a3fb898a7d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.553Z", + "updatedAt": "2026-02-24T10:49:34.213Z", "postProcessHash": "11e8c8bdb968eeac273b09057c0382cdf9301acf2adc53652b07e3ca562c8462" } } @@ -34011,19 +34425,19 @@ "d8cbf85de396e8d762bfdc573d415e4482bb687b9017d25d153c264728283316": { "62c5c6e1debf8e9f65330683895c791394dfa2b8f1cab9a3413558667b58ec1c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.441Z", + "updatedAt": "2026-02-24T10:49:34.119Z", "postProcessHash": "f0e6c07cedffbb2d273ffe4af7e63eae9c4196b70dfe94cd5491f84f42f9fe7d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.440Z", + "updatedAt": "2026-02-24T10:49:34.119Z", "postProcessHash": "91b2f192e3529c7696cd9e15c52fb41aeb5f9828bbbd16d9eda0b5287c39877a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.447Z", + "updatedAt": "2026-02-24T10:49:34.126Z", "postProcessHash": "b758b6ae7db4308dfc3588b35438467b62345e9f7e243d173bf066c3f7e3b254" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.561Z", + "updatedAt": "2026-02-24T10:49:34.222Z", "postProcessHash": "ba9dbbdbe4d85268b7cb1b6ede5a5c6a68e1886a70c06ac490b388278858c1bb" } } @@ -34251,19 +34665,19 @@ }, "e09e2d503e867c9a10ace9c76e977bac27661603e6f34032e2993d6439680242": { "jp": { - "updatedAt": "2026-02-19T02:24:10.462Z", + "updatedAt": "2026-02-24T10:49:34.141Z", "postProcessHash": "48a09299267fb201027e3273cc7b324aa275a444df502f64b5678958e167ff5c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.463Z", + "updatedAt": "2026-02-24T10:49:34.142Z", "postProcessHash": "46a2ea571aa8cd5e4c0f7dcb3396e082c02ffc500c49e59a6a0fceb1227bd5a6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.464Z", + "updatedAt": "2026-02-24T10:49:34.144Z", "postProcessHash": "3eaca27b94683490f8948e87a640f03dff0dc6713b7acd1a76904d44f7f0bc3b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.567Z", + "updatedAt": "2026-02-24T10:49:34.228Z", "postProcessHash": "063654e8f5f4cc3ea736c81c49ad55354251aa0e9d2e5816693f8e60cd912211" } } @@ -34356,6 +34770,24 @@ "updatedAt": "2026-02-19T02:24:10.498Z", "postProcessHash": "2fdfd5e446ce4f13a9ecae799c630a9f718db19bbd24cf0d38877939553bc602" } + }, + "a18d3fb8852bc3cf0c68ddf81868452f59fe4da6f2ec2537145e102300297ca9": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.159Z", + "postProcessHash": "4a4d9f54bec247b4ac4db7b08b1a5df84989ce38552c6b76bf95de0029dbe69b" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.163Z", + "postProcessHash": "1fade29524cc22c70e94fbf5b70e2e9e41c3520fb157482daadb86d4ddca0ea5" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.167Z", + "postProcessHash": "cbc4206ef527bd3bcc798b1c7abd25c9e499526c6b801d398aebcaa67733bcf7" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.169Z", + "postProcessHash": "859c55ddd07f69f1e8d1e2d4d82d67ab442e00984ec62d0750918f36978193ba" + } } }, "063fed20736d4477e2229fcccb85e98116869443c6a55d44a629fcdf41af8097": { @@ -34387,6 +34819,24 @@ "jp": { "updatedAt": "2025-11-29T14:26:30.898Z" } + }, + "62ba505a133c3f90a972cbc90f64cdff21824701be785ebd5fab0f6124d39111": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.299Z", + "postProcessHash": "92bf458d42f455b81d1010f50f3a0dcf4c482312c33e168ad78127b124653fb7" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.300Z", + "postProcessHash": "292494fe3414c7c51afb4c9cb91896a7b84589f3f1b881b03acc8548cc5f185e" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.300Z", + "postProcessHash": "e2c77eaaecbe6d46331864364b8b8aa1c4f7d07a15a5ff6b373dc9e1052bde58" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.301Z", + "postProcessHash": "3b9d33b91ab3140fb6650f27b4a49ea29e3343d9c9cec72f7193f2b6be1ff6d5" + } } }, "134051a83cd4931696ccf591823f46126c6e7feed4971511434916eff09ce79f": { @@ -34403,19 +34853,19 @@ }, "7676a41c6d1e719ba8b13b8d322ace741b11f0fe672d3b38397d5e1d23081fd0": { "zh": { - "updatedAt": "2026-02-19T02:24:10.592Z", + "updatedAt": "2026-02-24T10:49:34.248Z", "postProcessHash": "1d447f51f2f16b63cc6084bd0ecf680602884c7400071565a098bc5a6ab71204" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.593Z", + "updatedAt": "2026-02-24T10:49:34.248Z", "postProcessHash": "d68d18d86c53ee9ec2c23ffa0555df0bf2595ff2106aae04c29ff0b0edcf9a68" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.593Z", + "updatedAt": "2026-02-24T10:49:34.249Z", "postProcessHash": "667a758da511156f927130cbbb98f51cd2f931e696e79e31e7228e43bc91af1b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.711Z", + "updatedAt": "2026-02-24T10:49:34.355Z", "postProcessHash": "9fdb2bcb8efee3b5188f9e5938a59fc444a051d396349377b0c5a9579ea781ea" } } @@ -34423,19 +34873,19 @@ "18909e78fb8faac8cc03a75ea4cd8dd121bcb0a77585782c21cff69accbaf023": { "a2e6924b47ebd77edde457f769848cef9b8dad9baaa33f85fdaea23f6bf1d821": { "zh": { - "updatedAt": "2026-02-19T02:24:10.603Z", + "updatedAt": "2026-02-24T10:49:34.256Z", "postProcessHash": "f2d03d69c39d9f00e1fbf8a94ebd207839331fe1d0b1de188da8ccd8f6ed6541" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.617Z", + "updatedAt": "2026-02-24T10:49:34.264Z", "postProcessHash": "0eb168cf4ca8971be17d6e46f85f49121d626bb972267a742d5b8a9bb326e832" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.598Z", + "updatedAt": "2026-02-24T10:49:34.252Z", "postProcessHash": "3ac30759b8d2b7eed9b644a46965edc606e7b9933364f1eb50690cd004fc39a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.703Z", + "updatedAt": "2026-02-24T10:49:34.348Z", "postProcessHash": "0779998f80390c8e5671eccea03ec3debd821bc6b26b61e6ef037465bd721854" } }, @@ -34454,19 +34904,19 @@ "1c4c51a336d1e6dee310539258abd450be7834df46548255e22fae5d3686a247": { "e554f5f0de4eb19dd4293e28213211802e65c6533c3bb4dcd80a8d90c76744fd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.613Z", + "updatedAt": "2026-02-24T10:49:34.263Z", "postProcessHash": "0c9a0dc0569d3622351fe69d6f34ac345d72f2d53d4bca3e825fae29ec2c8be4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.634Z", + "updatedAt": "2026-02-24T10:49:34.275Z", "postProcessHash": "e6baa21e7648273d932da2067bd1a2a005aaf37e5d50fa50f849b60c73876f16" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.623Z", + "updatedAt": "2026-02-24T10:49:34.270Z", "postProcessHash": "757c28c9b956e97b74a62d6a04cd75818ad889123651b746b26b68becbd904e9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.662Z", + "updatedAt": "2026-02-24T10:49:34.297Z", "postProcessHash": "79aae1cd0d6592b306007f2abe78b04b3fcfdbc3f64e58eecf25caa79fa4821f" } }, @@ -34485,19 +34935,19 @@ "39df2af9870d3b0cc9ef00711b97902ed3b5f6df0419aadf0841770290785d7b": { "a18203de1411607a70e1437450eccbf17a073e8daa45c5c42ee8e0cba812d5f3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.510Z", + "updatedAt": "2026-02-24T10:49:34.181Z", "postProcessHash": "02981fe238f07694349cd6662d6f367362aae33ee712552259d82106dbc86164" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.505Z", + "updatedAt": "2026-02-24T10:49:34.177Z", "postProcessHash": "2dc86d5c35a7cb0c66e2f4476717ef823ff2b0d43be1466c4a8d16121a3a20b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.501Z", + "updatedAt": "2026-02-24T10:49:34.174Z", "postProcessHash": "72159bce6a7dabffc4c6faa94b55c651524ca392f6ec5c0aaa8b350ebd514991" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.558Z", + "updatedAt": "2026-02-24T10:49:34.218Z", "postProcessHash": "05f3a2f6c9df2843dc50319fda03605bb2cbbd13d5454ff52330642b0a83a070" } } @@ -34505,19 +34955,19 @@ "40220941c00a4eef0a2069b02906e525beca179d4a354e0a2e5a911c363640b5": { "989d53822380f38745d79c1b84562bfb045e678799d0f7110947e9bf5d599700": { "jp": { - "updatedAt": "2026-02-19T02:24:10.519Z", + "updatedAt": "2026-02-24T10:49:34.190Z", "postProcessHash": "4cb09a64312160c87472aad998940f2b29af484bc7b3c887dcd8f01f7b444628" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.503Z", + "updatedAt": "2026-02-24T10:49:34.175Z", "postProcessHash": "5caeea8e13e35337bf86babfa9f5a350f16fab4124cf08f6b4fde5f92b9ba661" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.508Z", + "updatedAt": "2026-02-24T10:49:34.180Z", "postProcessHash": "ab5458588f43582196581f0b965f528004949d9de558e29cfb8606835ebe5b38" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.554Z", + "updatedAt": "2026-02-24T10:49:34.214Z", "postProcessHash": "9daed7e15b56b59b1e79ff00f9b04647b1d6716f190dd07bbd76f6637e26001e" } } @@ -34525,19 +34975,19 @@ "505cd1f1060fe51777563a177f877b84419bab382656d36901ea1615cd4c5f44": { "0a35a92e535e80b3a150fd73abbc1751ae0fa2688543577feac7ce7f4de53ae8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.522Z", + "updatedAt": "2026-02-24T10:49:34.192Z", "postProcessHash": "28cc75dc04596015d3174738e4ce4cf3881821aaaeeac59a1df9c1e5f2e179e0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.512Z", + "updatedAt": "2026-02-24T10:49:34.183Z", "postProcessHash": "f3792aea58cd333414869a80f9af57ebbbe063ad2303cd940ba78aadb4f6008d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.519Z", + "updatedAt": "2026-02-24T10:49:34.190Z", "postProcessHash": "a7b4d41b65ff170a9ea22f76b938231e6f555de29b2e2144ccc4adb2d49b193d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.557Z", + "updatedAt": "2026-02-24T10:49:34.217Z", "postProcessHash": "7810543c09818ce7a28ab2c4fcdfe0d6f4d8d975e95798680b2f83e9d674170f" } } @@ -34545,19 +34995,19 @@ "67e57dc33f46fa357a2eb4f340d87b17225b6a975701da70873323aa80e25052": { "e431ffa5cc74af67d9f087cdd47582b18d0fa8c78bb4467cdddf3350e7c9f2b8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.453Z", + "updatedAt": "2026-02-24T10:49:34.132Z", "postProcessHash": "3e1820538756db284f7407a545f3c7ba9e9cab6fdd435733d39711a7892182cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.451Z", + "updatedAt": "2026-02-24T10:49:34.131Z", "postProcessHash": "4b61b692f6a97086c7ced95e561899c305b139cae363422e3445eb01642747fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.452Z", + "updatedAt": "2026-02-24T10:49:34.131Z", "postProcessHash": "9e3f247173cc061fe9ccf30c13d3f7f7881c0cb94bcf82190f5120c62b0bf986" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.561Z", + "updatedAt": "2026-02-24T10:49:34.222Z", "postProcessHash": "de374e72d080825915d2fca8c779bd00faf361341468466812f7264d8e6ad4e7" } }, @@ -34576,19 +35026,19 @@ "6d56ddb9a5b3ccdf4eae29f57959e9374f0ff177ac9800e0d460527344dc64a0": { "0828f5e8f879eaff39ae8686b298e753cdeacad3c2b4543b71425525219f9c9d": { "jp": { - "updatedAt": "2026-02-19T02:24:10.522Z", + "updatedAt": "2026-02-24T10:49:34.193Z", "postProcessHash": "043d084df1b2276263a134466da06164b4265ae74d8ba73e2a384ca8aec9ab89" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.523Z", + "updatedAt": "2026-02-24T10:49:34.194Z", "postProcessHash": "5a870d87771f7f51b7a2126fe6779416d950675e56336da03e9f9a84fa1a7eab" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.523Z", + "updatedAt": "2026-02-24T10:49:34.194Z", "postProcessHash": "cae86687b0e56a94abcd5d81dfc1d5dcfd77eb47bef57c96077e7be747bf4f20" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.555Z", + "updatedAt": "2026-02-24T10:49:34.215Z", "postProcessHash": "644538904c90f6ad45f6ab6c718e905b18810a0f548d940507ae8c3587d0fdaa" } }, @@ -34607,19 +35057,19 @@ "839030474f427a460a6acfb9a8caa7662e1cd0c337e35995054bd2c956ad05d2": { "706368d544074057b5fc0c6009711a33093a9475013e238b17fc5efaa65612d1": { "jp": { - "updatedAt": "2026-02-19T02:24:10.514Z", + "updatedAt": "2026-02-24T10:49:34.185Z", "postProcessHash": "9c97c196dc45ecf9fa55e6869537f8c510762e56c80e711f03dd412295366c1a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.518Z", + "updatedAt": "2026-02-24T10:49:34.188Z", "postProcessHash": "67b8e340c665026a24c580b7982ce697638efb626d0c2b3668b3755abf8b3754" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.520Z", + "updatedAt": "2026-02-24T10:49:34.191Z", "postProcessHash": "868861b6480309268a332e8a4d81284cf6e37f3b30970494e91deef98da56de2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.556Z", + "updatedAt": "2026-02-24T10:49:34.216Z", "postProcessHash": "845d839d9120092f7bb2f8a79cca56e321d468bf9dda31b5b8305a235c5da016" } }, @@ -34638,19 +35088,19 @@ "90511d719daa226bb864d0d2bb0fb993971dffcc30b3fda0d86ebc7ff7157a9f": { "888beb35b0eff4785517b52bba7c01e8651e6b39b235dcf0f4d1b64d155f5311": { "jp": { - "updatedAt": "2026-02-19T02:24:10.507Z", + "updatedAt": "2026-02-24T10:49:34.179Z", "postProcessHash": "b2603fd31d0d5026b262d7af1b7cabc65ff1e139bb6c97efa2851ca85a7b77e1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.504Z", + "updatedAt": "2026-02-24T10:49:34.176Z", "postProcessHash": "768dd559c19f5d7d908b82245fd265883d14bb8468a48103612a1b8772a84c90" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.607Z", + "updatedAt": "2026-02-24T10:49:34.258Z", "postProcessHash": "fed39490a48dd6c2097df901770349c2aeafc6fe722035b3272b7d395d905bd1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.655Z", + "updatedAt": "2026-02-24T10:49:34.290Z", "postProcessHash": "868a262221644760a93027712e387c9c077c058245d91b8918f711d787d99b25" } }, @@ -34669,19 +35119,19 @@ "a0e5cd4bbd52095f645996d5a20cc34d462aed2b014ca882138e4ede52f7b410": { "b82f6c4650551ebe5f3c0e03e15ad59d0e9d79edf78e121c65d4de264d1e000e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.507Z", + "updatedAt": "2026-02-24T10:49:34.179Z", "postProcessHash": "1df2dfca3db798a0f82620a483e5a2b70c4f3a9f8e8432254849a38c478c2aa8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.509Z", + "updatedAt": "2026-02-24T10:49:34.181Z", "postProcessHash": "099c34a47858afbca123aabe49a26cc72c58a53322f93eff1a78f2dbcd5492a1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.501Z", + "updatedAt": "2026-02-24T10:49:34.173Z", "postProcessHash": "79eada588d721182bf64e2d2e0b04aebecc183e8db9ae8f88ae8663c4deff03d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.562Z", + "updatedAt": "2026-02-24T10:49:34.223Z", "postProcessHash": "4ccfedab1daf79649930000627659faa7031a0f9911c44c0206fe947eba2605c" } } @@ -34689,19 +35139,19 @@ "a65902363effe5836b0d9b1a3304f47945b1560915ce6fb45c560e678eb9a539": { "559af2b30070d162a884137e78494631c1fb2dc0f934eb9c73be1908b21f1a29": { "jp": { - "updatedAt": "2026-02-19T02:24:10.446Z", + "updatedAt": "2026-02-24T10:49:34.126Z", "postProcessHash": "0cdf2a1059f45ae55415862aeba44b5e47925a607e4d77b012f5486531cc4ce4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.439Z", + "updatedAt": "2026-02-24T10:49:34.118Z", "postProcessHash": "e0b1b777bdf85bf3fcbf38f505ede90154215315a38144ec37db37d9be3c1de0" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.444Z", + "updatedAt": "2026-02-24T10:49:34.123Z", "postProcessHash": "b2c7a87f4087af51695b0055a8903a52792cae36dd0eb232877c7ed54b9971de" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.554Z", + "updatedAt": "2026-02-24T10:49:34.214Z", "postProcessHash": "ff73762907143d0852c4d89752582fddd090f4e5a15896e1cf6cc8229bb4521a" } }, @@ -34745,19 +35195,19 @@ }, "d33aa8cc58f9b273dbab671b7f3cba0e4b3f2f013c58de0de96dddcea617223f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.535Z", + "updatedAt": "2026-02-24T10:49:34.198Z", "postProcessHash": "596ad2365d9c68db9c8380f53b60a9d2fa3902c6a71999a36c28c0c71b02c51f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.536Z", + "updatedAt": "2026-02-24T10:49:34.199Z", "postProcessHash": "d30ed2d04b9182fa0ebb1766f26dc2ed7aa21e6436ec61df4d3ce01f11f4dd21" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.536Z", + "updatedAt": "2026-02-24T10:49:34.200Z", "postProcessHash": "a7a4e38f6ce8a49ddc85618b2865d323850fc026776f09aa7aeb8dfaf62ceb5d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.551Z", + "updatedAt": "2026-02-24T10:49:34.211Z", "postProcessHash": "a960eb435898222b1987320a79cfcb0ab1d1c89970e95e3039b7b7fcee9c2ac0" } } @@ -34779,19 +35229,19 @@ }, "a2f2f5104e9e5d4624054cde350c38a62a70bfc58bb3440b149ebfe4b864898f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.540Z", + "updatedAt": "2026-02-24T10:49:34.204Z", "postProcessHash": "336959a8903af5e74e674906a0af53005f039b0baa4edfeb49326202936584e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.541Z", + "updatedAt": "2026-02-24T10:49:34.205Z", "postProcessHash": "0957a25929819983c5471d88ccfa07c80f780ff78eac03c183bcc40bb75135fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.542Z", + "updatedAt": "2026-02-24T10:49:34.205Z", "postProcessHash": "d69c6d6c749e9e4417032aa39633e3346b43ba688851276c5a4030899a564969" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.558Z", + "updatedAt": "2026-02-24T10:49:34.217Z", "postProcessHash": "96a7cfc04e23c724e8dc7b7be27227919970b9b22766de04a2f975d79afaad39" } } @@ -34799,19 +35249,19 @@ "bcc86da4edd4f06169f90746ecfdbbcb5c15d530af9bb41d9716c0c160095c27": { "84ddeeec966f0e2dfd116753b726d6198217ab15321a4c0ae1b82e6a8f3e1e66": { "jp": { - "updatedAt": "2026-02-19T02:24:10.502Z", + "updatedAt": "2026-02-24T10:49:34.175Z", "postProcessHash": "2aa69280cfb0677d90703141f55f84a615224c3a0026750f0fc94d0b54642d5d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.521Z", + "updatedAt": "2026-02-24T10:49:34.192Z", "postProcessHash": "ea45e02a54de9f6813b22f7a95b70089a788d591c03afcacb39d09a65ddaec3b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.518Z", + "updatedAt": "2026-02-24T10:49:34.189Z", "postProcessHash": "d60f2bfdbd4e141c75ca6b3ed047c27426561db76c9d0be5cf428f82d131dcde" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.551Z", + "updatedAt": "2026-02-24T10:49:34.211Z", "postProcessHash": "4531150345296bdfbfe5f406e615e9f1236ac412bfd174d9ae4fa8646a4a7805" } }, @@ -34855,19 +35305,19 @@ }, "5a44c1fb77ee9dc749b59207e3a6de3893929712872f288d180f8475d0b74851": { "jp": { - "updatedAt": "2026-02-19T02:24:10.643Z", + "updatedAt": "2026-02-24T10:49:34.278Z", "postProcessHash": "8a96a56bcc394179e0752bcd670c5680a4b4a5c07b9da19416e03870003c54cf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.643Z", + "updatedAt": "2026-02-24T10:49:34.279Z", "postProcessHash": "bd7e3c9814428a9562f4fb341d2976723f1a82f8525c7951017b5480e04553e6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.644Z", + "updatedAt": "2026-02-24T10:49:34.279Z", "postProcessHash": "71c041ca2f54c874ac75648b712de33a7106326a99aaf1e2b7d940717d6639ee" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.661Z", + "updatedAt": "2026-02-24T10:49:34.296Z", "postProcessHash": "5b58203a57b0e178ef57bdaabde2022d01d73a0a004014ad5f22c46c4968370e" } } @@ -34875,19 +35325,19 @@ "c3c4a5cfc613b8b144029f13d913022c2d41ebc3c333e2fa61ed8d2f0df5a81b": { "e66af8a0cfcf657334fb0dec46bb2c8ae44a17ff27be743255dec8ebd2d523dd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.533Z", + "updatedAt": "2026-02-24T10:49:34.196Z", "postProcessHash": "5fdcc9009084b9ff1961bc771d5c6bce2272a3210012115a98757c5cab2e0c9e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.534Z", + "updatedAt": "2026-02-24T10:49:34.197Z", "postProcessHash": "7b9754ed156c08b7b2f0b0a7ab299d93790b9e2e7c27009fd53c974476edf274" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.524Z", + "updatedAt": "2026-02-24T10:49:34.195Z", "postProcessHash": "a174619288f6c43c4957dbdb012c3fdd5d39bb9980a3bf7a5a6eb32531b6ca65" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.564Z", + "updatedAt": "2026-02-24T10:49:34.225Z", "postProcessHash": "d6cb324341ae28d2ca2aa15add9bc30cf067f1c0786f8a2a7ece58f66edaf2a9" } }, @@ -34906,19 +35356,19 @@ "d559f4bb7e0e75b052f6989f63565615397e09d8f05bc7535ae634a02281b78a": { "41bad05d87569563af64a625d8b65a4688fa0a40d7e5a6a9a09b635d45ce52a7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.534Z", + "updatedAt": "2026-02-24T10:49:34.197Z", "postProcessHash": "3fdd00612e70e3cae7a1e39d26c5b03ee9a92b5e2ceb932c72b8c0f7c033429b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.525Z", + "updatedAt": "2026-02-24T10:49:34.196Z", "postProcessHash": "72401db958722b24a0bb49f6a278f0d5e3da80b9ae0168640381a0baa39cb377" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.524Z", + "updatedAt": "2026-02-24T10:49:34.195Z", "postProcessHash": "1477fe535605eec7298c1085821274cd1da350565d7f5ab47003e932ef9f1a50" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.562Z", + "updatedAt": "2026-02-24T10:49:34.223Z", "postProcessHash": "425e4accd26c76b054b3215b16fe8cdc0853bcaa544beb76f4aa98f85a4a73d0" } }, @@ -34937,19 +35387,19 @@ "e54eba7f7c2e2d6d452b2d73f4934f9ba018e180585b2bbdb2f9f14bb9b5510d": { "d88ed4dda50a3c9ee265b067c0abda94e3cba629d2d6c9a695d77d254c4cd372": { "jp": { - "updatedAt": "2026-02-19T02:24:10.424Z", + "updatedAt": "2026-02-24T10:49:34.103Z", "postProcessHash": "0efa401a4a47b548e3c28cc96cee61dda844991a076182181ecafd445f1322bf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.433Z", + "updatedAt": "2026-02-24T10:49:34.112Z", "postProcessHash": "f232a35e71d989bbb12e7eb0db31fecb6a6fadfcfd3b8a15170f8beaed693de7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.430Z", + "updatedAt": "2026-02-24T10:49:34.109Z", "postProcessHash": "b49ef91d9a9850e75750d271a040bb74c8b018bfbcc665177a6678f928319223" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.559Z", + "updatedAt": "2026-02-24T10:49:34.220Z", "postProcessHash": "c44d1a59493133497c6cf29b7288a335b1d4f4fe7340494688ce69209528ffbb" } } @@ -34957,19 +35407,19 @@ "f871545252cead274f81eec090f4a37c79aad733b302ff49eedc5242ba29b1cb": { "5ee24061522cb5a7ed68e5bfa59c658c0cb620eff70e3736f5e3800597533e77": { "jp": { - "updatedAt": "2026-02-19T02:24:10.502Z", + "updatedAt": "2026-02-24T10:49:34.174Z", "postProcessHash": "97fa1940afda204bdfae7ef0698932fb1f20b77b3d6fb6646fa9497a9809f938" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.511Z", + "updatedAt": "2026-02-24T10:49:34.182Z", "postProcessHash": "939fc5a4ad8e6732892b5f5dcf196d5b3fce6ba93fe2421ee64635734622149b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.511Z", + "updatedAt": "2026-02-24T10:49:34.182Z", "postProcessHash": "efd0113977183b8a85d939d6e198e8e58912431201e2fad5d94295dabc29f316" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.560Z", + "updatedAt": "2026-02-24T10:49:34.221Z", "postProcessHash": "6d8ac65ec5e28d33b6484c05c098e2da4c81d9fe3e61311a1b23dd2eef2acf36" } } @@ -34977,19 +35427,19 @@ "faffe74d9a382667c3bae357941f229fd75f36539ad2c510a09ec0603f9a2fbe": { "6b948fe473605eff70a23fa450d8b860449256191d68e3b6b1702eb2624fdd18": { "jp": { - "updatedAt": "2026-02-19T02:24:10.520Z", + "updatedAt": "2026-02-24T10:49:34.191Z", "postProcessHash": "fce038ac7eb9a9aea16ee3f0df901d09ccc0fd593f417cba290813b2ce9f95f2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.506Z", + "updatedAt": "2026-02-24T10:49:34.178Z", "postProcessHash": "5ca99c96764a95d0521b8cd6739cfd4b307ca883c1f9a78b8a30a951b7be8691" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.509Z", + "updatedAt": "2026-02-24T10:49:34.180Z", "postProcessHash": "5d303650a888e4ab0fa6aab3d5ffeecc10fb4e0fb75f0be41fa1964f7542915f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.550Z", + "updatedAt": "2026-02-24T10:49:34.210Z", "postProcessHash": "a978c9094646c5af0551261fc3e3964cc6c688c5f188b5925af21cceb1622d9a" } }, @@ -35008,19 +35458,19 @@ "00f0f8e4c4cba686bdd32c7eb510c5ff9cf2847654153d708f69ef3d1fae55b2": { "4cdabdb9af849dd79c526565751107e9b1abf0b12889130ad0f45424328feb65": { "jp": { - "updatedAt": "2026-02-19T02:24:10.671Z", + "updatedAt": "2026-02-24T10:49:34.308Z", "postProcessHash": "a556291c2698cb47367a49706d16c70636f33e21f358eb277b4563b149eba6d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.673Z", + "updatedAt": "2026-02-24T10:49:34.311Z", "postProcessHash": "44a0b5792cd6f15c25c83c3ea86d118085a6b300592a3e5fb8b89c6809039f06" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.672Z", + "updatedAt": "2026-02-24T10:49:34.310Z", "postProcessHash": "ada3e46b05b954c302ed5cd69e82edc2706bd3c3e6400b7f0494986992e64459" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.706Z", + "updatedAt": "2026-02-24T10:49:34.350Z", "postProcessHash": "61d205bcbd31547afe1e80775f0694a60bf888ccd1cef0c3f585b5451e43e07d" } } @@ -35042,19 +35492,19 @@ }, "f082256dfc720a27c711ad4cbc37d27a0458703781827632ff32c5ca861559d6": { "zh": { - "updatedAt": "2026-02-19T02:24:10.694Z", + "updatedAt": "2026-02-24T10:49:34.340Z", "postProcessHash": "c760a4a2c3e0a58ae643a1d6cabdb713bebedb1c17d75fdf30acb9903adc5dd6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.695Z", + "updatedAt": "2026-02-24T10:49:34.341Z", "postProcessHash": "9d5a027d5b84c9e69090f9afff13f5299dd9a8f4f9cedab59c45aad48ef59514" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.695Z", + "updatedAt": "2026-02-24T10:49:34.341Z", "postProcessHash": "8df105093c4539da0ae819595a4101c2ecb3450b6c82ae9c3f64e189078fe468" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.712Z", + "updatedAt": "2026-02-24T10:49:34.356Z", "postProcessHash": "ebfb9868a7c0e24091660d29895c439ae445f4db6de4a95a13fe6b71673bbd30" } } @@ -35062,19 +35512,19 @@ "0e624ceaf217ed28aa49746f8a0d8e6f11f50144de84c79c5bfc3cee61b7f1a3": { "2c646c9eed127c879e1e79d90542ee56c28b87e87984ce2e15248bed89ca7aa7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.671Z", + "updatedAt": "2026-02-24T10:49:34.308Z", "postProcessHash": "76364bd2517931a7a74ac987b1cf2738c8bcbafac975d32d17be16f77e0c6c8e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.672Z", + "updatedAt": "2026-02-24T10:49:34.309Z", "postProcessHash": "12695e98fe6a6a94fe5b55da6421abc3c339df4dc206815448fe5171fc39fb43" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.673Z", + "updatedAt": "2026-02-24T10:49:34.311Z", "postProcessHash": "adac4629354df03ad09b77e6979c201c5c3ac8d7871d6002afed0dba07e40744" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.701Z", + "updatedAt": "2026-02-24T10:49:34.348Z", "postProcessHash": "b0eac194cc660751a8220289aca9421f1384596f5812cd2f89f45a480c714b73" } } @@ -35108,24 +35558,42 @@ "zh": { "updatedAt": "2025-11-29T14:26:30.933Z" } + }, + "7aa044e6bd1308ef9f81fb653c68def1e4ea02d35051c14b4977658c961910f0": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.363Z", + "postProcessHash": "b831a2094cbb98052965925c0305e1978e6d046db733b12de7fe95a039459665" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.364Z", + "postProcessHash": "95c3d78b09ac7ae8f1fcacc6b2c229cfcac9eb140172c1c39c93ee13b77cda1b" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.365Z", + "postProcessHash": "971bb1a0a45ef0560c3d2e7c099a6c6ee916400e4e47294330cf9eb3bd3b5113" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.366Z", + "postProcessHash": "ba99e0d3af6f8f930476ba6f73b200b73a39ba0cb7b6b209687975799395f520" + } } }, "2395cf7e448505fe5dff52c83b83b0eb98f08d6b30b33dff50d6380fa7e5932f": { "773ced00aebc468e3a46c4cc78b523aab8880ec08d2fdf077d970783ea2663cf": { "jp": { - "updatedAt": "2026-02-19T02:24:10.622Z", + "updatedAt": "2026-02-24T10:49:34.269Z", "postProcessHash": "c49850125fff8ee458e8f0de4f26d446c79789229afed8976e76cb416cf0ea87" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.594Z", + "updatedAt": "2026-02-24T10:49:34.249Z", "postProcessHash": "45c1c37276d5c33a5f5b3d6b7adc05b35510be8963cfc596a65ad38d4a373f57" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.598Z", + "updatedAt": "2026-02-24T10:49:34.253Z", "postProcessHash": "48b20004d870affe90e46b6c2dd910d51d8ca94b6c6f348d5aa9bfa118fc4b05" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.712Z", + "updatedAt": "2026-02-24T10:49:34.356Z", "postProcessHash": "2f6cebf4c7f712350b26947e9f3b57fb8b722bf56718dfc82f23f4919fa5f1b5" } } @@ -35133,19 +35601,19 @@ "4267fd6d09b46579b7a05881566bd86bc360158a24ce3eb410c8492cdc79fb22": { "8ac15a7c8118a1f822e5766749040b60de68b96aa79518290966e5ca1c45e8d2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.635Z", + "updatedAt": "2026-02-24T10:49:34.276Z", "postProcessHash": "1a4caf55038f820ce76c97d8207335f42c6773ad5d3db3f2bd94f8723b693d78" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.634Z", + "updatedAt": "2026-02-24T10:49:34.276Z", "postProcessHash": "50921be00e63203e3a42fea891298ddaefa29e927974172b5ca1aa1416a6b9d8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.635Z", + "updatedAt": "2026-02-24T10:49:34.277Z", "postProcessHash": "8de28758f0ce3b17b99392544acc7ac114bf2318094f564239e07391ff75e21a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.660Z", + "updatedAt": "2026-02-24T10:49:34.295Z", "postProcessHash": "76e04547a3ca5da8a3b5a0a59c8c73a713e85174a0f3c4df793b4e45d86db239" } }, @@ -35203,19 +35671,19 @@ }, "d7caa6ca93061268a241213be25a6830aabc418b564f5314e9d73e51995cab1f": { "ru": { - "updatedAt": "2026-02-19T02:24:10.651Z", + "updatedAt": "2026-02-24T10:49:34.285Z", "postProcessHash": "32c8045975e1b6ae40ef6c3e753193a825a5e70807445664435dfaa6a62ea86b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.651Z", + "updatedAt": "2026-02-24T10:49:34.286Z", "postProcessHash": "7587e5f6b800adb562b132ce3a08af7e21446581e7e2d4b59f2e28093ac9d419" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.653Z", + "updatedAt": "2026-02-24T10:49:34.288Z", "postProcessHash": "6be3787855b7f41e3048b91f262cbf1638d05878784bdde40fc5d90c313372fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.703Z", + "updatedAt": "2026-02-24T10:49:34.349Z", "postProcessHash": "36babdd4d0cf54e94ee34456388ec1a12b20009da6a81fd17781c70442042133" } } @@ -35223,19 +35691,19 @@ "7b92c9515ab243345c2edd443a9f36e432abeb01df31d0d197db37f7733b65f1": { "5ee9cf90ed14f1a1e4f53532e4ddf568dfdf018045fcb0f4857e0860a4f59d17": { "jp": { - "updatedAt": "2026-02-19T02:24:10.625Z", + "updatedAt": "2026-02-24T10:49:34.272Z", "postProcessHash": "161bcac18157e7016c1d54ff844edc6315fd2290d232511d44bb1ce170e372b5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.621Z", + "updatedAt": "2026-02-24T10:49:34.268Z", "postProcessHash": "595fce49adfcaf7e686f9c9032e310a944cb15e11a7825d1797f0e53e80ecbc4" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.632Z", + "updatedAt": "2026-02-24T10:49:34.274Z", "postProcessHash": "310ac316a791e9d418086b595bc3147dc80c881b2490d7713532656df473cfae" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.661Z", + "updatedAt": "2026-02-24T10:49:34.296Z", "postProcessHash": "e5fff9706a1aa797964b3cab7772dfc7ff7054bc583c366aa0c8c5bf12e66fdf" } }, @@ -35254,19 +35722,19 @@ "8150184b8463d89e5a92277a564104c399220d435ffb6ec7e6d2560672bb49d6": { "65ef97770913247f917baecc24d78605da1a7fe09e65d74352bcc872ecee75f3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.624Z", + "updatedAt": "2026-02-24T10:49:34.271Z", "postProcessHash": "1453f5f098df76b5ca801c256f80b92fae4f652eacbf570c1fe82567ff94514c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.618Z", + "updatedAt": "2026-02-24T10:49:34.265Z", "postProcessHash": "45affd13c720e2c1b1d35ffeae2551fb472564d3c656b6a353dba8b24bb26790" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.616Z", + "updatedAt": "2026-02-24T10:49:34.263Z", "postProcessHash": "6c5e1a9f05f50fa1260b81ddc4d58b1f7f8336f807e6194f95beb17ce3fba731" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.659Z", + "updatedAt": "2026-02-24T10:49:34.294Z", "postProcessHash": "e6de68d1c02b4f2bd623bf486d18dcf918c0d0c7d41496ec5ff32d58da84d4a3" } }, @@ -35285,19 +35753,19 @@ "8af19e1098601767cbf89d205cfc0d3cd2c79ba5ae84fa11d9cea6cc91850951": { "1ea6cb562e40b65d31dc3a004ea35849a51555792b4b7af61deb33ec7dcef5a2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.610Z", + "updatedAt": "2026-02-24T10:49:34.261Z", "postProcessHash": "d2bdd617c67f6e047b9d8a6df5254f8097312dcf4172407144e09bd1e2ed87b3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.622Z", + "updatedAt": "2026-02-24T10:49:34.269Z", "postProcessHash": "4f88fc8506e03f3d67d8c61bf8fdc831ea8ae1c9ac4e9a80508c79029ccf91f7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.619Z", + "updatedAt": "2026-02-24T10:49:34.266Z", "postProcessHash": "fa249089ef796bdaacd00ecc2a1bb51cca8df31e75cfeca32c2a6f2c72ba7889" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.708Z", + "updatedAt": "2026-02-24T10:49:34.352Z", "postProcessHash": "ea24f60db432a0d901b9b2356bd8df0679a5fae8d5249ec0371363375f270ca9" } }, @@ -35316,19 +35784,19 @@ "8fad6511e155deebc0c7b7055ddf993b7213668bd651d77b46f4fef11c363990": { "00a2be5a931770b44b5dabd0013f35d169228fbee45d460fc63c58245bf78264": { "jp": { - "updatedAt": "2026-02-19T02:24:10.604Z", + "updatedAt": "2026-02-24T10:49:34.256Z", "postProcessHash": "af3b9252f1ecf34622a9f7b0b26fcbeb8210771daec64f7a09aa18c0eccfbe26" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.517Z", + "updatedAt": "2026-02-24T10:49:34.187Z", "postProcessHash": "25fd41518d4bbdda22849ea6f8590b09618442b515bce1cf0bdd13d1b49fe243" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.513Z", + "updatedAt": "2026-02-24T10:49:34.183Z", "postProcessHash": "1edfe417f236daad45ad811d4558bfd24551799682d90925903ee955941491ca" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.662Z", + "updatedAt": "2026-02-24T10:49:34.297Z", "postProcessHash": "4f5e7b6829de1ebdd74dd11779bd1df6c47b464317487b2ea904d51525d42b4d" } } @@ -35336,19 +35804,19 @@ "9c4e28b8ca9495afc149856472ed437de0b32bd3bd6c56ac4a4d4e1b43fe6351": { "fac18639f9943a62c5d07663c6a681ee610f19e3b716dd3c1889c591380616e7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.609Z", + "updatedAt": "2026-02-24T10:49:34.260Z", "postProcessHash": "58b569dba3d014cedd2df4d5d39a348da84fce12c256a227aabd07a5edb33817" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.623Z", + "updatedAt": "2026-02-24T10:49:34.270Z", "postProcessHash": "648df7d5555e5874f5757e96751cc39ef2af1a21f1480b6829ec5fe12171735d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.608Z", + "updatedAt": "2026-02-24T10:49:34.259Z", "postProcessHash": "389058faec7edec8862e8164ba94b80939e9868d11b2c0331710ac7e693879a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.655Z", + "updatedAt": "2026-02-24T10:49:34.291Z", "postProcessHash": "3b240f25e61ef2a7ee264ce9c2b6783cb3274d94b2df69d9356d81316886edf3" } }, @@ -35367,19 +35835,19 @@ "9fd477532adc3dadf2dfed8071d354140eb7b667bd012aceca5476a9b5aeb7f1": { "cc0409c62d9e4b650b3ab8a4a2c2ea56b508c8a34ed0235cccc67f60cb557c17": { "jp": { - "updatedAt": "2026-02-19T02:24:10.515Z", + "updatedAt": "2026-02-24T10:49:34.185Z", "postProcessHash": "795811d806fd285a9c28b4f7f6543ac1c43c30d3e35570371977dad1a0379382" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.604Z", + "updatedAt": "2026-02-24T10:49:34.256Z", "postProcessHash": "657bb54c5e6324ec9d266a12b27863d1aac5bce2a1bf04dca26dcbada28a1cc7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.611Z", + "updatedAt": "2026-02-24T10:49:34.262Z", "postProcessHash": "1b07e99d1640c3ed4002128f18be7436f5f8bab510fdc88fb0769d02a374d292" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.663Z", + "updatedAt": "2026-02-24T10:49:34.298Z", "postProcessHash": "01342624fb2a00cc6fe565209d0320d56c9c05b1d9d90cd9797a4a81931f8abd" } } @@ -35387,19 +35855,19 @@ "a6ae8bc3564075f789b35e0d49da8a62594a8bb06f9690bba789ef78cfc292e9": { "1bf52ed247c8937e8664e15b1e9b1bcd0e5ac293d7ee7d115a60dc712f220e80": { "jp": { - "updatedAt": "2026-02-19T02:24:10.611Z", + "updatedAt": "2026-02-24T10:49:34.262Z", "postProcessHash": "ec91e4bab186e82dc52ba5563d738cfac173d730298d7ab68c0c278e3ea46c73" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.605Z", + "updatedAt": "2026-02-24T10:49:34.257Z", "postProcessHash": "a992ba42669168eeca7813d412f3efa67e8c9b5cff927b784f366f4de0c0e64a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.617Z", + "updatedAt": "2026-02-24T10:49:34.265Z", "postProcessHash": "5b4ed66ab55b53826e2d247641da956d91fb8747c6d7c59308354d22872e6c8b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.654Z", + "updatedAt": "2026-02-24T10:49:34.289Z", "postProcessHash": "16756bb888e239475006d090825ecb91e80b2f320359c89d2484fb6e6bdae7bb" } }, @@ -35418,19 +35886,19 @@ "b24da7e78415a317d4fd792bce74b8acf47ca7b376eb80c5d2a81e9b874b5ec9": { "1b40db05914f87442600e04da552a114b9d6566703fff238531bf2dce4b3fb81": { "jp": { - "updatedAt": "2026-02-19T02:24:10.597Z", + "updatedAt": "2026-02-24T10:49:34.252Z", "postProcessHash": "0a5adcab2242c263ce324b570718ecbc305b0401480411587706453341a363b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.599Z", + "updatedAt": "2026-02-24T10:49:34.253Z", "postProcessHash": "1b6794ee7249b73f13435d9b86be2a71cc8363c287c58aa727fd089b938e2220" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.595Z", + "updatedAt": "2026-02-24T10:49:34.251Z", "postProcessHash": "19c2359ec99db4e2a45dad399cffa393e9d1be86afead98aee821b60eb0ef188" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.710Z", + "updatedAt": "2026-02-24T10:49:34.354Z", "postProcessHash": "9f18f128a832fe6fc60c754cd8a5bf739b0c5a230cf86affa3e30df596bdfc65" } } @@ -35438,19 +35906,19 @@ "bd066e14efb9c286ea6f6324b04ea5e37363afb94dde1cda3efc2008e77fe6c2": { "ac1b069ca0882ed4666acf6095038e0b7cb288b8596cbf3b1ce1e54a9df05e43": { "jp": { - "updatedAt": "2026-02-19T02:24:10.516Z", + "updatedAt": "2026-02-24T10:49:34.186Z", "postProcessHash": "753b33f9f93248bf8233b0baeed06ef45856f82a91bb8def8ff992472d459ee2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.516Z", + "updatedAt": "2026-02-24T10:49:34.186Z", "postProcessHash": "70bcb18fb09220601bca7d9e4b208e1d59c4e62b856075f81a8468ec3e014adf" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.633Z", + "updatedAt": "2026-02-24T10:49:34.275Z", "postProcessHash": "01b5aa502a62041a52b09c2d0843e7916c028fcbfc8ae616a06ed3fdb91639f3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.656Z", + "updatedAt": "2026-02-24T10:49:34.292Z", "postProcessHash": "35dfeeffeb3b7bc6c6241325d2625c463b401f5246074b24a6cb75ccdcc1eacb" } } @@ -35458,19 +35926,19 @@ "bf91c67796c6e32777f0840f1d8c0dac89f35de0d14c1139dd6dbf40f832fc76": { "e06158989a858c27f8bd73bda291193cf471adc5e5089c7af3495e699b7133a8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.513Z", + "updatedAt": "2026-02-24T10:49:34.183Z", "postProcessHash": "297e98ea3aad68e9ffbccc0bf7b02257427f6c4ff887359eeb3c67e1b0ea5e6e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.603Z", + "updatedAt": "2026-02-24T10:49:34.255Z", "postProcessHash": "664a404026abb06703cd561aa2718ad3784397a0b483ed8e10d1c1cc0838b285" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.605Z", + "updatedAt": "2026-02-24T10:49:34.257Z", "postProcessHash": "b71d4ebee0f656cd5cd9e372205f504822ce9ce2852fedb899f65c1cc43c4b0c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.657Z", + "updatedAt": "2026-02-24T10:49:34.293Z", "postProcessHash": "10d31614c323019a00450d8775927d4ac22c418130b13f30085f2adae61ee907" } }, @@ -35489,19 +35957,19 @@ "ccb6f7b23e140ff82e19fc0391ef805c0f15507170cf5f60a78b0ea7f7bcf295": { "7b7eb66a4c1f465cbb23aa2d3f377abddba9aaa6d13866786810216306d2eb6e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.517Z", + "updatedAt": "2026-02-24T10:49:34.187Z", "postProcessHash": "1581f26ce67088f94dd7ad8c4aa97df6558268af1f7e3fe67f6d9b7e0da0dde3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.504Z", + "updatedAt": "2026-02-24T10:49:34.176Z", "postProcessHash": "5248910e7f231cf89e4fa66478d436cb6cb245d90a48485eb1ddf1e004f32c1a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.514Z", + "updatedAt": "2026-02-24T10:49:34.184Z", "postProcessHash": "184615b9cafb1ae587bacf076cbf14ef80f2781d19660d9337860b4329913a58" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.657Z", + "updatedAt": "2026-02-24T10:49:34.293Z", "postProcessHash": "78d5c51c7e7c31c2d3fb3a44a068043ccd621fe4b534d5c8449eb8455b080f4f" } } @@ -35509,19 +35977,19 @@ "d79bc535529875a738bd248165a718dae8d93446b748ae71439f9b822c83972c": { "1a78ff0ba0c6860dc7ce6357e1df29d3b791afd1f3ea81e2713f99d9dd8d0199": { "jp": { - "updatedAt": "2026-02-19T02:24:10.594Z", + "updatedAt": "2026-02-24T10:49:34.250Z", "postProcessHash": "a2d7f5974b6f454ac11680a0bd63edf78ba173f1a97f889a136c1d2e83b28a44" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.607Z", + "updatedAt": "2026-02-24T10:49:34.258Z", "postProcessHash": "daf68967a813f6644d6e2ed1d1363a0eea5c6b9bf84953ca583ad91f17ee721e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.596Z", + "updatedAt": "2026-02-24T10:49:34.251Z", "postProcessHash": "5861a3e5141fa80c3580faa362da408f3c92042386dd8af88a9423090167520f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.706Z", + "updatedAt": "2026-02-24T10:49:34.351Z", "postProcessHash": "5876323b353fd099177933686bdb24b70ff6da30ae895728eee7df7dc3bb59ac" } } @@ -35529,19 +35997,19 @@ "ddfce8a030ea9a41c75ffaf59f53e35d31dae419777bf895033c3bb59f724f4f": { "208b0171b9edca76f341fabf5a8721e36aa0acf7bc2a179c676bc7f832d4decf": { "jp": { - "updatedAt": "2026-02-19T02:24:10.624Z", + "updatedAt": "2026-02-24T10:49:34.271Z", "postProcessHash": "357e8595e939e31858b9f811586cad754a77c7cdca0a1a6c9af41affe501f19f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.631Z", + "updatedAt": "2026-02-24T10:49:34.273Z", "postProcessHash": "9157b73a252cb4140ce2e2eee4f438d01f02b5f1ede2aed8797dd98acb13effc" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.615Z", + "updatedAt": "2026-02-24T10:49:34.263Z", "postProcessHash": "fc92b9ba10dd79e16cb89a683c3085d94b207593160f487dc07df134243d4744" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.714Z", + "updatedAt": "2026-02-24T10:49:34.358Z", "postProcessHash": "b70850635c488f20ffb6aabdcd038c76857fcd6730179d2e88f6d57c7531d9ee" } }, @@ -35560,19 +36028,19 @@ "f181f03d87970ee159e60beef4cf41dfdb497fd8d950cab4164f13908b4a893c": { "7faa2cfd4739cd08c7746e2c9d5cf78d1e43b82946d2327a789aa6199df45737": { "jp": { - "updatedAt": "2026-02-19T02:24:10.602Z", + "updatedAt": "2026-02-24T10:49:34.255Z", "postProcessHash": "62ed74b53cf4ee4d6944c5ed0a0c2ca7de6b3506bb7ab1bcc9a4eb368a27914f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.633Z", + "updatedAt": "2026-02-24T10:49:34.274Z", "postProcessHash": "a819260f1ca4015ded8e77db92022161ab90d96d087678bb23e243970042f055" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.631Z", + "updatedAt": "2026-02-24T10:49:34.273Z", "postProcessHash": "ac5550f74d4765fd0fdc289c761170f85bfbacc065c0cf55d87f3890f9f7d926" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.702Z", + "updatedAt": "2026-02-24T10:49:34.289Z", "postProcessHash": "6e28b580df8978f5ee750dc73bd99fe4327c579ab0db0b5f6a92caa947da7732" } }, @@ -35630,19 +36098,19 @@ }, "cfccb658dce2deb29ba361f3fe392a39785df1da4c6a5a2d8c806c027d66ebda": { "zh": { - "updatedAt": "2026-02-19T02:24:10.748Z", + "updatedAt": "2026-02-24T10:49:34.408Z", "postProcessHash": "65cce157311abbc7a746e4edf4216cb7e34acd7fa1a8976aad7ff7be66a4bfad" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.748Z", + "updatedAt": "2026-02-24T10:49:34.409Z", "postProcessHash": "9e467d8357d970006ce76401f4620d2d10d08767d227d1aa71dd19b9dbcde5a9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.749Z", + "updatedAt": "2026-02-24T10:49:34.409Z", "postProcessHash": "47b6353cd2965a27142b2c97ac0bf059f361ab83d2491fbd8b23e093fbec345e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.767Z", + "updatedAt": "2026-02-24T10:49:34.436Z", "postProcessHash": "fdbe80a2a619f5662e0278afc8e6b6beebca6351195a197ee8db0694328c7f1a" } } @@ -35650,19 +36118,19 @@ "0f2ea76e0db5a6d5b78533ea69f6bf742d59e3c92cd69159341e1c7049a2aa97": { "9da14b2a7b04a5c4ff51174e32fb113e58f6e2c9b60265a9616f729614a2c9ba": { "jp": { - "updatedAt": "2026-02-19T02:24:10.679Z", + "updatedAt": "2026-02-24T10:49:34.319Z", "postProcessHash": "11e9b4f693ac1d2d4de2d6fd9e52ce3ef0f6cf77a9f01e41fe2cb49c6b883163" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.673Z", + "updatedAt": "2026-02-24T10:49:34.312Z", "postProcessHash": "1fe723ecf5a9fe4e05c235b3f850175caa677fb585c4b637f4bfa27b44a5b259" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.668Z", + "updatedAt": "2026-02-24T10:49:34.306Z", "postProcessHash": "5b0578a8306debddda2a0894f0d5e3f6ae9c7ec43d67c9961f0382e542c1c25f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.763Z", + "updatedAt": "2026-02-24T10:49:34.432Z", "postProcessHash": "2be038e94d315ffd3a003e98de118b3c9bea4f724f0c14e2f80438636c79f1fe" } } @@ -35670,19 +36138,19 @@ "10434de80b8f7631a41e8302a81a53ee7a3ba2207f6b8c0e029fb257d3df5290": { "f5fa789355a9b2e73239700688ffe0178dbe2df95ecb160944f05217ee8ad885": { "jp": { - "updatedAt": "2026-02-19T02:24:10.734Z", + "updatedAt": "2026-02-24T10:49:34.387Z", "postProcessHash": "0767fa23448f0952163fb4c8e759e6388235224aa3853600d254ec655253f823" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.737Z", + "updatedAt": "2026-02-24T10:49:34.391Z", "postProcessHash": "01fe8273e75d93bb35b85217afa355605dcc36ccf9f9031f13ee50d1c91f76e3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.739Z", + "updatedAt": "2026-02-24T10:49:34.394Z", "postProcessHash": "dbc66eaf2ff66c8dd4de87d58ab1d1af9451b24b9f48a3ecda2b0df3c85b4141" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.832Z", + "updatedAt": "2026-02-24T10:49:34.496Z", "postProcessHash": "9f4f96887df06d44e8fa93cb4426d5109aaa89851ef6e8be6420c09c2c13cc76" } }, @@ -35701,19 +36169,19 @@ "11f2e3a49b018a860171016a699fa740752c02bc0aa8f5f79a0c57498338ec5e": { "9a24d918c600da936b99eeeae5ccbfc49470bf55f4b8fb491fe3cfe11f944857": { "jp": { - "updatedAt": "2026-02-19T02:24:10.746Z", + "updatedAt": "2026-02-24T10:49:34.405Z", "postProcessHash": "f8908d0d7d410813e3a99a9a5780ed5937d31cc3d59a4cf086a15035d3a524d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.744Z", + "updatedAt": "2026-02-24T10:49:34.403Z", "postProcessHash": "7c5a4bee42ebda5720fab0ebff84c5233aa36c79cb7aa7ec2e6c59da24eecd9f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.745Z", + "updatedAt": "2026-02-24T10:49:34.405Z", "postProcessHash": "c9cd88082236d21ad53d3ec3c30e6d87d957ab45df0aaa2e8224add98efa3556" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.766Z", + "updatedAt": "2026-02-24T10:49:34.435Z", "postProcessHash": "b87baa5667462cc57cb825f43f80bb96775012c704b1458960ad685215dbfe6f" } }, @@ -35732,19 +36200,19 @@ "259e682225d9b71ca3ea983216e57cd82c14b1caf25f00ea510ceadd3a70a0a7": { "e92b39158d271364bd947f52f560eff998ddd5a35107c0c0db7941eefd4f7424": { "jp": { - "updatedAt": "2026-02-19T02:24:10.682Z", + "updatedAt": "2026-02-24T10:49:34.324Z", "postProcessHash": "640a65f454afe3c46b5566d7e305aa73bb76ed2f11bdf6b9ec93878548f442a6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.681Z", + "updatedAt": "2026-02-24T10:49:34.323Z", "postProcessHash": "d96e0adfeea8e875004bbc923e4dceb91124969c121e13857f06f74dd247562b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.681Z", + "updatedAt": "2026-02-24T10:49:34.322Z", "postProcessHash": "4788c629a663f65e31ee7245f5eb3a3862edc2b9a237ba407147a5d36c851c1b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.715Z", + "updatedAt": "2026-02-24T10:49:34.360Z", "postProcessHash": "56c40b29b2aab4f19710869f865a210db9c28471511136ad74c19ae2ef01c317" } }, @@ -35777,19 +36245,19 @@ }, "8f103600d4eab14e8af1d1fff32382745bd99b10bda8419f7c27459e0a645000": { "jp": { - "updatedAt": "2026-02-19T02:24:10.697Z", + "updatedAt": "2026-02-24T10:49:34.342Z", "postProcessHash": "bd417a1a4776fa38d0a02b8dee4bdebfb09f33e5be0bb2f4f9237f8c2d79f87f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.698Z", + "updatedAt": "2026-02-24T10:49:34.343Z", "postProcessHash": "9111af85ea7b09ad89807f950e6f1f2a6590207383bb3264c75ac3afbf2beef3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.698Z", + "updatedAt": "2026-02-24T10:49:34.343Z", "postProcessHash": "68dbe36ad616d2baf9916daa362a048a7eeedff597d7a8c7a2f012319cffe2fe" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.701Z", + "updatedAt": "2026-02-24T10:49:34.347Z", "postProcessHash": "5e175dd8bb1df55f27d826a1a2377be6171d2bee5ceb167f0b2af150c0080784" } } @@ -35811,19 +36279,19 @@ }, "8f3a4f7ff783ca799a012c20ff293d34d412a121fdeb92f14a731ea78be53382": { "jp": { - "updatedAt": "2026-02-19T02:24:10.689Z", + "updatedAt": "2026-02-24T10:49:34.334Z", "postProcessHash": "208073613f6b7ecab44c77110b9ad51e052295bcb0d17b04a49669032a53d6d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.690Z", + "updatedAt": "2026-02-24T10:49:34.334Z", "postProcessHash": "237a99c57459ddcbea807f4ae85990dd4e6b8f043fcceff889fd7f5f58ab4673" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.690Z", + "updatedAt": "2026-02-24T10:49:34.335Z", "postProcessHash": "d6b35549bf409873858561cebcb48a662cf22e768ae19670090e17892fdb153e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.705Z", + "updatedAt": "2026-02-24T10:49:34.350Z", "postProcessHash": "a0aa64049f6242480e78299be057328995880c7941509c602cb962ab29227284" } } @@ -35856,19 +36324,19 @@ }, "e9bdf8ed1603b1e63799d019269b7ec89091a5584a78fb309108237f656e3740": { "zh": { - "updatedAt": "2026-02-19T02:24:10.691Z", + "updatedAt": "2026-02-24T10:49:34.335Z", "postProcessHash": "547a473a2d3f66a6211653e55d3fb2e05f95a834520d79af4a0885bfa9d5bdcd" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.691Z", + "updatedAt": "2026-02-24T10:49:34.336Z", "postProcessHash": "17e02ba23a4a1f522f36470cf4c2a9748610beda43af37267e57bb4d6083b1a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.692Z", + "updatedAt": "2026-02-24T10:49:34.338Z", "postProcessHash": "440e4316aa27a8665a1c9fa0294fea4286e2e3c87018ffe21df065998feb3227" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.716Z", + "updatedAt": "2026-02-24T10:49:34.361Z", "postProcessHash": "5205b801eee43ef1ed3b23c31210edcb0deda5581bebfd6c93f4c6206cd0426e" } } @@ -35876,19 +36344,19 @@ "57f74a21cf2fbbfbe54dc4c14d4c397429d32d51ea09651cbcba81a78f831e03": { "9aff12963c1e1db4b1b461b751a4d72394a3a26138c1713efd31eb628aa3b7c1": { "jp": { - "updatedAt": "2026-02-19T02:24:10.675Z", + "updatedAt": "2026-02-24T10:49:34.314Z", "postProcessHash": "c4e69ff965f1b029b595d015d20b6bc7773754aca844929c71d9dcc2a6e09b91" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.684Z", + "updatedAt": "2026-02-24T10:49:34.327Z", "postProcessHash": "294bcf345ba41892b720bc50bb89416d639f585628474027d7c58cf4b46b5a19" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.682Z", + "updatedAt": "2026-02-24T10:49:34.325Z", "postProcessHash": "ce5b206d84eb4421118bc4910aaac0fb5899231841df72a6d1ea0b642432922a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.713Z", + "updatedAt": "2026-02-24T10:49:34.358Z", "postProcessHash": "64ac8bccee79a7b398342d090ed3e0bbddff85fe00ea05a122f98bbcb4a37c90" } } @@ -35921,19 +36389,19 @@ }, "d377434d078e6dafc5ecbb377a6409f1b29d33717740cc69f9849674ac6ae471": { "ru": { - "updatedAt": "2026-02-19T02:24:10.652Z", + "updatedAt": "2026-02-24T10:49:34.286Z", "postProcessHash": "783081703b5415f9386eeeb913d32da74f2afbe654cf1e9be61e978c406596ed" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.652Z", + "updatedAt": "2026-02-24T10:49:34.287Z", "postProcessHash": "635f1efedd5ce18bebbb15c78058e7a34c04172c12edbe1738beb89404ed107e" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.653Z", + "updatedAt": "2026-02-24T10:49:34.288Z", "postProcessHash": "0b378f4feae15f61bc7c6788b1fd4604718d2870897f08e91e106953d9d02b18" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.707Z", + "updatedAt": "2026-02-24T10:49:34.351Z", "postProcessHash": "14aee1ca0a79ee6cf3ec57a14423da126116483e1236c4e4a1b0bb7402f5e3d8" } } @@ -35955,19 +36423,19 @@ }, "38aac3e63fff4752b95183afcef811db69a263d878a5965a67e7f7201779450a": { "zh": { - "updatedAt": "2026-02-19T02:24:10.646Z", + "updatedAt": "2026-02-24T10:49:34.280Z", "postProcessHash": "627c38b8693080cb7f3ec445e8cdb18513f2d5747dd284055b38eaf5623dc25a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.646Z", + "updatedAt": "2026-02-24T10:49:34.281Z", "postProcessHash": "28be4a64f3dca2bbeedc0c0e9ccbd706d8c688de0ad75a5f6a799547f48d6cc4" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.647Z", + "updatedAt": "2026-02-24T10:49:34.282Z", "postProcessHash": "a467c2194519181529af0b713ba42e50fe33513811a801980a260540b2b3f190" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.715Z", + "updatedAt": "2026-02-24T10:49:34.359Z", "postProcessHash": "7faa2e991029012bddb92a671dacfb18c351066a4d9ee16827cfad4df1245eb5" } } @@ -36003,19 +36471,19 @@ }, "6fbe8b971f9457233415e8375314e521211e7de2f42483fdb9c1bbe8dc7e61a9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.753Z", + "updatedAt": "2026-02-24T10:49:34.414Z", "postProcessHash": "b8839bca5d0f6319cd8a86315a138ed1305fe55b4bcc16c6ad82b758c4d07ab5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.754Z", + "updatedAt": "2026-02-24T10:49:34.415Z", "postProcessHash": "a897d560624e5cda4cb19a5f0e5cd40b7d7cadc2389be1afe37ecae28146dd65" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.755Z", + "updatedAt": "2026-02-24T10:49:34.416Z", "postProcessHash": "75633c709e89cf32aebdf98ac7bb0675e07bf6962a93c84556dcfd706a795ac2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.773Z", + "updatedAt": "2026-02-24T10:49:34.443Z", "postProcessHash": "144e6fbf62ec240c6d44af4c05c4911a52cc10568c837a6163439ec4b6c5f658" } } @@ -36048,19 +36516,19 @@ }, "7d8a82b95ab47c579e375a385d3c83b071af9d4c18c0cb450f261f337a70c50b": { "zh": { - "updatedAt": "2026-02-19T02:24:10.686Z", + "updatedAt": "2026-02-24T10:49:34.331Z", "postProcessHash": "73dad88c8ad85b8f14e2d118addceb21b4fb94969aec31b006b38dc15c8edf1b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.687Z", + "updatedAt": "2026-02-24T10:49:34.331Z", "postProcessHash": "1a39ccb183a79ec864320b4cb0d20f1af1558d869a94a612dd7aa43439005fc1" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.687Z", + "updatedAt": "2026-02-24T10:49:34.332Z", "postProcessHash": "f4ae858c609b51d9933de2e0d8d05285217badd6f0c3968982be16de43d8bac3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.709Z", + "updatedAt": "2026-02-24T10:49:34.354Z", "postProcessHash": "4c57083192c19757b367c6df1676bce66042c404d0eddf26b8d7c1fba74752df" } } @@ -36082,19 +36550,19 @@ }, "afeb184dc22c4e8b7889e6e96ca42b11ad1255bcbc03716f3200a5c9cdcff77b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.693Z", + "updatedAt": "2026-02-24T10:49:34.338Z", "postProcessHash": "d5f391d6082c0637a20c5abfb6f687b0d4ac1853fa696a025bc1ce4d3a93d4b9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.693Z", + "updatedAt": "2026-02-24T10:49:34.339Z", "postProcessHash": "c1f0d2e934a68f5dc1ffab503dc2fb6d4bbb465f5aa3551c1995c90c844490e7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.694Z", + "updatedAt": "2026-02-24T10:49:34.340Z", "postProcessHash": "5c2d04e38f746aa50053665988c8dcf480c1c21cac32ecf9f9e0d9d82524ba52" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.709Z", + "updatedAt": "2026-02-24T10:49:34.353Z", "postProcessHash": "2ef7da94722e2d2009cb1792f2931281d125924da9ec9db6a82926aa8026f708" } } @@ -36102,19 +36570,19 @@ "92dee0e9ff8e8566f9e9c069b27afdb02424f6cbe89f46ce3425000461a7553a": { "0bf98344271fffe8297f5e0b128fbd8fe78c79025f276feb745ffa937822b839": { "jp": { - "updatedAt": "2026-02-19T02:24:10.678Z", + "updatedAt": "2026-02-24T10:49:34.319Z", "postProcessHash": "65e94b1a6802f6be77ddb8fd5d9816a51c64e32bddd43e28aa90602209583d51" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.683Z", + "updatedAt": "2026-02-24T10:49:34.326Z", "postProcessHash": "1454e8612865fb26006f93b50402840bfcc112f354319ed0091f137e7d97b823" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.677Z", + "updatedAt": "2026-02-24T10:49:34.317Z", "postProcessHash": "bce66e2b775f49c28dd9855562a6d3851fa18a3699d575a43dad1b68e3a08ce0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.705Z", + "updatedAt": "2026-02-24T10:49:34.349Z", "postProcessHash": "e1779ba481c7af3e3b1c6da6724c100ff6036cc18b3ba6f68d759de93ff4e5ee" } }, @@ -36133,19 +36601,19 @@ "a4b6a047b28cc22275775b0dd79539a2be86c95aa7ced10a1b187f12caf79320": { "1c1a6afd778c1e57b53ba0589eef4c2e7796b728ad68d2fe6448ef393e873f11": { "jp": { - "updatedAt": "2026-02-19T02:24:10.666Z", + "updatedAt": "2026-02-24T10:49:34.304Z", "postProcessHash": "ed54b58a12011dcc7042d16be7b26c565f2743747e02712d41a97e035018010b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.667Z", + "updatedAt": "2026-02-24T10:49:34.305Z", "postProcessHash": "47fa1821332330577ca2d4412bfbd003346f8872203eb9421afadc65c906c5c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.672Z", + "updatedAt": "2026-02-24T10:49:34.309Z", "postProcessHash": "5c7119139354a2723b729e418e0caef0eedca5b242cead664e71cd98495556f3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.704Z", + "updatedAt": "2026-02-24T10:49:34.349Z", "postProcessHash": "200218f9af8130b3d623d5b23337da2aa7ccb36e6e128233f3312b937c5c8e21" } }, @@ -36189,19 +36657,19 @@ }, "e9856af9b30132699de5de3a9687cf03bf5ff9ec394001b76a5bf7505880303f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.750Z", + "updatedAt": "2026-02-24T10:49:34.410Z", "postProcessHash": "c74e757ea8447b8a118f1eb288176b2ce9a4640ce9c68e8393994fdc1bb32f10" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.751Z", + "updatedAt": "2026-02-24T10:49:34.411Z", "postProcessHash": "7b70f477117185c47044ae5898ecbfff684151d877acc3f63f4e8539f45fae5f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.751Z", + "updatedAt": "2026-02-24T10:49:34.412Z", "postProcessHash": "1aaebece8734880f0e1a9181eae1ac887a8eca366dffe0a350f30ea59650bdd7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.765Z", + "updatedAt": "2026-02-24T10:49:34.434Z", "postProcessHash": "a78235993614ca79bbb1df1b3fe59c500b20919cfdeccd8e8ab789906e943373" } } @@ -36223,19 +36691,19 @@ }, "50d522b39bbd7f00879bf3c2daf3e78b1f1cf56e6131a5b521f35cbf64998406": { "zh": { - "updatedAt": "2026-02-19T02:24:10.699Z", + "updatedAt": "2026-02-24T10:49:34.344Z", "postProcessHash": "b1c0652db211d79764c541000e48bc56ce61c686c43e65639537ff2efd0cf40c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.700Z", + "updatedAt": "2026-02-24T10:49:34.346Z", "postProcessHash": "f32d3f0590b23b2de51541fb030c9abccbc701c9983a93c67d09c7fd657190d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.700Z", + "updatedAt": "2026-02-24T10:49:34.346Z", "postProcessHash": "17482b2a04fefd6bbdb88c3b0d541e1cfb7c7d522efc10c47f310256533e3c8c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.708Z", + "updatedAt": "2026-02-24T10:49:34.352Z", "postProcessHash": "ae9ca58a4e1da443ee9e6753f0785841895c4f11e617514e0dcf34f9a8f1860a" } } @@ -36268,19 +36736,19 @@ }, "bdbc2a6bb3e7e88583b313ddcf873456973dbcd936c9d9524d9aa69f87c6a9b9": { "zh": { - "updatedAt": "2026-02-19T02:24:10.664Z", + "updatedAt": "2026-02-24T10:49:34.302Z", "postProcessHash": "6bed4cf9fc8303ea48964fed8ea50b83a33a7b6c675a36131dbb0e08e5b9a20d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.664Z", + "updatedAt": "2026-02-24T10:49:34.302Z", "postProcessHash": "6b6037c7d57764b53ddcdc8287b656a73fde6647275576376dc43b4d55ea76bd" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.665Z", + "updatedAt": "2026-02-24T10:49:34.303Z", "postProcessHash": "7a9fae87d91a63dba68888555c22612f0a5c34dbc6666a3d78a149c11803f6db" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.716Z", + "updatedAt": "2026-02-24T10:49:34.361Z", "postProcessHash": "3a1cb28e98e2dd8a5dfef6031587239c252843b9a94ac896e0eb0fd7cbe826e9" } } @@ -36288,19 +36756,19 @@ "d30ca35ab36b18a178b446411bd0aa3076c904d43108702bb21cd5d8efbcb5a6": { "87455e817468ce7973be52c22bd571c3c34f449207bac87d98cf83d2f67a119b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.685Z", + "updatedAt": "2026-02-24T10:49:34.329Z", "postProcessHash": "b10734f5a82afbdf627bb5ee2bc488ff296d8df07ebd8c39718eeae81a47a225" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.686Z", + "updatedAt": "2026-02-24T10:49:34.330Z", "postProcessHash": "31e67fc05762229fdedf53294c0e24169f19c7e53d6ab79c7dee6e56dd610c85" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.684Z", + "updatedAt": "2026-02-24T10:49:34.326Z", "postProcessHash": "553ce39627180a2b281fa8547ec62ff25665e3b7b5a8f57ea6d6079eb1049b65" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.713Z", + "updatedAt": "2026-02-24T10:49:34.357Z", "postProcessHash": "a348725a0b55d0757c2acacdfb43301972b2679d2d07b68b015f971e175fd952" } }, @@ -36319,19 +36787,19 @@ "e39ace6f98adf22617bf02b8e1b5e543cc789b8aca34a357f850131c862245ee": { "18eb1c50ac74effbf464a4c046b94e4cb6fa9eb96d70864437ccfb525503aa01": { "jp": { - "updatedAt": "2026-02-19T02:24:10.618Z", + "updatedAt": "2026-02-24T10:49:34.266Z", "postProcessHash": "ac26ef0bcb29b013cc9f474e59d25a91ca3a87da6105163ec757f35372c47785" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.609Z", + "updatedAt": "2026-02-24T10:49:34.259Z", "postProcessHash": "c72354cd4c8f84b4e7cabfc91cef9b4073049e8e2edcd5032f6f9ba4322aa54f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.610Z", + "updatedAt": "2026-02-24T10:49:34.261Z", "postProcessHash": "e088e4e60a845acc8f70fcdca7e62ea379a4e2fad36dc5b991d43156e039b46d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.714Z", + "updatedAt": "2026-02-24T10:49:34.359Z", "postProcessHash": "bfd2c592b04d7429ef17c21b0ae1c7578099b2f82dc19a2a6f0a757c1d43f0d9" } } @@ -36339,19 +36807,19 @@ "13087be692dde9b7feef18870d3f79b1d18225ab44ef354f1e90c30366e1c433": { "4c3eaabe73297be96e394821c21a7b410f9fe4c375bf5d324f6eec00d4aab141": { "jp": { - "updatedAt": "2026-02-19T02:24:10.736Z", + "updatedAt": "2026-02-24T10:49:34.389Z", "postProcessHash": "4deb3de166df8cc23ab0220aa085469c59fa070d90006fc8232d8b21e4080598" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.722Z", + "updatedAt": "2026-02-24T10:49:34.371Z", "postProcessHash": "1c48760064e5d75a7f523a046711973edb53bb5aaa3acb59088ec06b04665cfb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.728Z", + "updatedAt": "2026-02-24T10:49:34.379Z", "postProcessHash": "a53d97e0017a17ebdcb95b09f1f2890105343d95b8248339567964aff7e0ee1a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.826Z", + "updatedAt": "2026-02-24T10:49:34.491Z", "postProcessHash": "4e320b5250fc819795a5f35ad952ef7ca7b5378f499817e3998471929353ffa3" } }, @@ -36370,19 +36838,19 @@ "188f9a9bc3bec2ce321905c8a56a28198b42bc1f90b417b6ac00a4d9cf3c147b": { "8e6933142a9b80421dd489117c3233c45a2645cae67fe6bbf99c75fdf827c9ba": { "jp": { - "updatedAt": "2026-02-19T02:24:10.733Z", + "updatedAt": "2026-02-24T10:49:34.385Z", "postProcessHash": "caaa30733b2dacd13f7537689b50b6e5dd8f42c8687e3b0044f8f6738fe1f7ae" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.727Z", + "updatedAt": "2026-02-24T10:49:34.377Z", "postProcessHash": "36f639823f5d42274da3fa110f7c4482c876f3b6ff8e2602678b82b673916d30" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.726Z", + "updatedAt": "2026-02-24T10:49:34.376Z", "postProcessHash": "5261325639cb17b43174509b2d81b1671080c3b7a8dde9edba700a5714cd5e71" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.831Z", + "updatedAt": "2026-02-24T10:49:34.496Z", "postProcessHash": "d0b3d236fa9187eded4187322e1679b7c2f47dc1c806eddfb803cca556ed1078" } } @@ -36390,19 +36858,19 @@ "1c00ec1111d4c97040f8a6b4705c820bc0afe08ce75657d4021750534563cc33": { "b2e299e5c648bc6c75f661d7ddb0d415bf3f4d2d15b1b81f676f8d781e4ab3d6": { "jp": { - "updatedAt": "2026-02-19T02:24:10.675Z", + "updatedAt": "2026-02-24T10:49:34.315Z", "postProcessHash": "608c930918002b5ffd5e57cd3d0b46c97b5b40161849b35c9b357e066b9e8490" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.674Z", + "updatedAt": "2026-02-24T10:49:34.313Z", "postProcessHash": "99aa5479417f9cec341a488048dc0ed41eb663f1ce807fa632a422c510981392" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.676Z", + "updatedAt": "2026-02-24T10:49:34.316Z", "postProcessHash": "f156514b97c927b3962a6ebe2c9d4c355bef11cff07145b9a0e2fa57c6004f59" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.769Z", + "updatedAt": "2026-02-24T10:49:34.439Z", "postProcessHash": "d006fcedee44cce42dc366e1b990c7a4bd4247ecb58de11ecfbe9dd664862226" } } @@ -36421,19 +36889,19 @@ }, "4b159102b8118d1c5f860203e158167c69c30018a911e2276f3dc980a4d34d58": { "ru": { - "updatedAt": "2026-02-19T02:24:10.809Z", + "updatedAt": "2026-02-24T10:49:34.476Z", "postProcessHash": "d89cfdb9f9bc02fadcb0140595c3144567c319608ae636700d17071b05f957fe" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.809Z", + "updatedAt": "2026-02-24T10:49:34.476Z", "postProcessHash": "3bc636c103801fada5e21f7417202e52d27db18e204239aaf72162fd90d7ed6f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.810Z", + "updatedAt": "2026-02-24T10:49:34.477Z", "postProcessHash": "4f2e59320a70b5aaddd9c3a3d4fbe25a4a7d0bffa0fb58e0056ee81d6ad6452a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.826Z", + "updatedAt": "2026-02-24T10:49:34.491Z", "postProcessHash": "f99815582a75b6d906d6bdbce5b8d7af27301afd8c0562bbf9095eee70c3897d" } } @@ -36441,19 +36909,19 @@ "2fe98a07a0771f0c918a105339c7465f1d1800b749a6786ae052b4f5792f8146": { "bc9d4d641f5b9a05f88360a2ee33515689607102fb6c336b63a7598960ba63de": { "jp": { - "updatedAt": "2026-02-19T02:24:10.788Z", + "updatedAt": "2026-02-24T10:49:34.454Z", "postProcessHash": "58d4bbf513f0af809908cc9525133d09e6d8c14d8ca64a4c785343bf5b077110" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.796Z", + "updatedAt": "2026-02-24T10:49:34.462Z", "postProcessHash": "73c46b4678653c63ebb603917e666c72924efa1d51d72c8c0614efc39f698c92" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.787Z", + "updatedAt": "2026-02-24T10:49:34.453Z", "postProcessHash": "b68e321a07ac81a6799b9177b1483268a0b660ce794e32658dd2ad8974fe0c3d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.825Z", + "updatedAt": "2026-02-24T10:49:34.490Z", "postProcessHash": "d1d53144888eaefccfd9085b66c161d9a413a163c15a95c84269ac86c849e863" } } @@ -36461,19 +36929,19 @@ "341051d81c779d41671d446f22d563f3189738d32b9550e3675fa7143546561c": { "7b5212109cba86689f00d93efb9aa6bdd2aad536bac1da86a77d78443cec95c0": { "jp": { - "updatedAt": "2026-02-19T02:24:10.726Z", + "updatedAt": "2026-02-24T10:49:34.376Z", "postProcessHash": "29b3e6a08b77bc03acc7c57b53ae6a21af57914b050f227355eec10f3e375ad2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.736Z", + "updatedAt": "2026-02-24T10:49:34.390Z", "postProcessHash": "4ab7accb08dbfc4a34134aa9a960b1ed68892e99146d528c01561720b1f3a2c9" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.735Z", + "updatedAt": "2026-02-24T10:49:34.388Z", "postProcessHash": "55154906ecb770abe0a2047f47ff471cc6ad5fd58205edff53694b3cd7e04d80" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.764Z", + "updatedAt": "2026-02-24T10:49:34.433Z", "postProcessHash": "e90345815ef1cf4ed5461e425988ee9efeff1dce513a3bcc36b0f80abe4c6440" } }, @@ -36492,19 +36960,19 @@ "513fe6bad8509823ffdccf71f911e6632a1d6c62bc3828d6880a93c15b106872": { "8b0b91827d9a7c004ba4a826838ebb29f76a0224d429a5d945acb7d900b732fd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.794Z", + "updatedAt": "2026-02-24T10:49:34.460Z", "postProcessHash": "f7ea41137e10ec526c6a4a90684a99a5eb07444e1e0921a32c0b5560b4db8588" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.795Z", + "updatedAt": "2026-02-24T10:49:34.461Z", "postProcessHash": "f0e367dc9c5850d661e43f7488e33bc664e3c8f3f3e5d4e662976e2d117686b6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.792Z", + "updatedAt": "2026-02-24T10:49:34.458Z", "postProcessHash": "2c736ca2f52c85032490d7e7f59c7bc22ebf666905cd00f34bd78bb5d7fdf002" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.832Z", + "updatedAt": "2026-02-24T10:49:34.497Z", "postProcessHash": "492594ac2daf77ed62062db4403926137ca0034ee4012ce8579ebd33074008af" } } @@ -36512,19 +36980,19 @@ "5aef4c42e18c1cc3dc46fc838620121334ecc389acdb56926a191d15c08904ab": { "7e58d82c11edbb334ceb08f7f620a974944c8ec3e120b7373fd4e03a17ac6cc9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.735Z", + "updatedAt": "2026-02-24T10:49:34.389Z", "postProcessHash": "194b7770f3fe9c98d44a4fd735af26a5f5f524b88cb39ac5f31256e159775fb1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.739Z", + "updatedAt": "2026-02-24T10:49:34.393Z", "postProcessHash": "0f6ede55875d2f773d71cc5056b09560d5351b6be703a9be6049e5e0131dc509" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.734Z", + "updatedAt": "2026-02-24T10:49:34.386Z", "postProcessHash": "cb4b07d6749ebd08dd165a659e89b5d253150683c110348e33a39f55acde34b9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.823Z", + "updatedAt": "2026-02-24T10:49:34.488Z", "postProcessHash": "d369d41a82ecb7559906baa3b5693b05745e9fb15be363a0a75fb234204c35a5" } }, @@ -36543,19 +37011,19 @@ "67b2cf74cdaca50f8911af9d708d0de9b1f69f0efeab9993911fd47c8fe2f59a": { "cfb3d97b019aa58d29e5939b08fabed324c21080592e9c094aeae86aafccb4be": { "jp": { - "updatedAt": "2026-02-19T02:24:10.741Z", + "updatedAt": "2026-02-24T10:49:34.396Z", "postProcessHash": "cbd67b14f5e0e5d466761a5e3a17d80e7e22f077042d087094d8122b7e3104cf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.685Z", + "updatedAt": "2026-02-24T10:49:34.330Z", "postProcessHash": "be7c99b6471532a6a6b61841be548b4c496de887d2fd8d77145e3a4cabf7d5e2" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.666Z", + "updatedAt": "2026-02-24T10:49:34.304Z", "postProcessHash": "82e74730afb40c116b709d36464c4ada76f9e2dc321371a6ab09957b6757524e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.761Z", + "updatedAt": "2026-02-24T10:49:34.428Z", "postProcessHash": "001c9d9fdeb22e24c961bcc770676af7765449612100fc2cb6b5df7a37a12f78" } }, @@ -36588,19 +37056,19 @@ }, "c4f3391debbd8aed1ac2ea439ad22c6725bd1ee78fb2655e76f8410c67704856": { "jp": { - "updatedAt": "2026-02-19T02:24:10.759Z", + "updatedAt": "2026-02-24T10:49:34.423Z", "postProcessHash": "b76d0c6621b495ef75393902adb71c8bb82c24cad3e1e15b44d21dbb0f32a2ff" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.759Z", + "updatedAt": "2026-02-24T10:49:34.424Z", "postProcessHash": "726836cbaeaa1791abfaee58771c98158a0700c9fcb8690c09ac53145152e864" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.760Z", + "updatedAt": "2026-02-24T10:49:34.427Z", "postProcessHash": "a206f18ad32a9d675b5ef6c6916c045ffe9efef33a69850f2a279ce2e9c7d1b1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.772Z", + "updatedAt": "2026-02-24T10:49:34.441Z", "postProcessHash": "850e430eb5ac1f0b8199ee68d44a04199119011fc9683c09fbc46e782eb8a177" } } @@ -36608,19 +37076,19 @@ "72afe36eab2ff12e14d4d91a26552fab2abc011f9a4ccde2047a84210368f35e": { "1560d332f0571ac4c9e52b7b887c8418554ea38f675716836286eda06c730b1d": { "jp": { - "updatedAt": "2026-02-19T02:24:10.725Z", + "updatedAt": "2026-02-24T10:49:34.375Z", "postProcessHash": "1e3e8132d95437c5361674ee396377507e9a5ea1933adbd3938fe9ad0dc29ca9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.724Z", + "updatedAt": "2026-02-24T10:49:34.374Z", "postProcessHash": "25811ed2e5ea7dfb0c83455bc91bde1aaf983dc1ea4b866074cbcf514b9eff6a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.722Z", + "updatedAt": "2026-02-24T10:49:34.372Z", "postProcessHash": "99c69210b0ba7d81d9e0fc915a8c37361494f88193ab43c5233fa6dbe79b26b2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.762Z", + "updatedAt": "2026-02-24T10:49:34.431Z", "postProcessHash": "ed9c295797b49a4ef9b9b7c6f137829b70b085a2b74b0e05d38694704ba2b0cf" } }, @@ -36639,19 +37107,19 @@ "8315916bdb3d69fc26c0b36f0b4378146ed63f736e03228e62d22efe01d9dfd4": { "5856087df98f6740b4472f367157e174efdc961ef37e3c1247d0ced2db5782d4": { "jp": { - "updatedAt": "2026-02-19T02:24:10.671Z", + "updatedAt": "2026-02-24T10:49:34.307Z", "postProcessHash": "b0e80937f38938e3910d15f1fe4ab8a337c2a6592071e39e9770ab8f73d35c65" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.674Z", + "updatedAt": "2026-02-24T10:49:34.313Z", "postProcessHash": "441400cf2ec5759af5cbf872632e102984cd6e0753324a83fbbb24837ef26a6f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.669Z", + "updatedAt": "2026-02-24T10:49:34.307Z", "postProcessHash": "608b0f94e58216e02798de216d4856caf9a9bc39487f3f4ff47ae7990e87b5a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.772Z", + "updatedAt": "2026-02-24T10:49:34.442Z", "postProcessHash": "d8b9f71eb3e504fdf2290358b98b7bee9b789762371afa6572af332d51ef7d99" } } @@ -36659,19 +37127,19 @@ "989eb966fc80a9e76f90dfcbc66e0dea7d1236c5a18dcfc3951a22c271c46183": { "501b56f9eae0cac02eb27cad28e73a3ea80b0a3e66d207d53190032406e903ec": { "jp": { - "updatedAt": "2026-02-19T02:24:10.679Z", + "updatedAt": "2026-02-24T10:49:34.321Z", "postProcessHash": "a37e8fddd1ce212faa1ef38183df71eeaf3e2588e4850099bd23ac3f9343b103" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.667Z", + "updatedAt": "2026-02-24T10:49:34.305Z", "postProcessHash": "0a0629912e7bb86206c29a11a7d952e0dfdf328955834da42a9267be06e6f59b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.678Z", + "updatedAt": "2026-02-24T10:49:34.319Z", "postProcessHash": "3922fd87251afd2ad9918aef1ef172271bb5fb0c5b70cd0cb519cb84068a1cf3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.770Z", + "updatedAt": "2026-02-24T10:49:34.440Z", "postProcessHash": "2607a2b8eb9a7a9153e39a019aa2d1d512657d1a931e84710db63a58dcfa6928" } } @@ -36704,19 +37172,19 @@ }, "a6b9efe7757d5b856902b127f12c1b65429afdc0edf14b0c192b17d0901d4499": { "jp": { - "updatedAt": "2026-02-19T02:24:10.755Z", + "updatedAt": "2026-02-24T10:49:34.416Z", "postProcessHash": "7dba9832b654a7e27898e936bbb870c2f12db0b3112a49efd4b22dada7ffdd93" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.755Z", + "updatedAt": "2026-02-24T10:49:34.417Z", "postProcessHash": "88fe56f8ffe4f5501d2386e1d84c800714dab3a1d8cd57847da30ae2f160b73e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.756Z", + "updatedAt": "2026-02-24T10:49:34.417Z", "postProcessHash": "ec9e1e4f40a36331677a51603eab89bf45907067da8da024720c1a42eb1896b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.766Z", + "updatedAt": "2026-02-24T10:49:34.435Z", "postProcessHash": "9a44cc4784b5399987e7d10de061ea603e231bc1f49372cb07a9844a4fb610e9" } } @@ -36724,19 +37192,19 @@ "c3e128b68f1271e67f658e6a27e710c60881f8641ac2288d555daa3208c005f9": { "13e7fbfbc5e808dd0b360b17e6a4fd7a2ba6d1036bc640c856da5cc47ecdadde": { "jp": { - "updatedAt": "2026-02-19T02:24:10.668Z", + "updatedAt": "2026-02-24T10:49:34.305Z", "postProcessHash": "af0a8cd906362956c2a402ea01dc75bc9a29a422bcd372140447b4d07822deb3" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.677Z", + "updatedAt": "2026-02-24T10:49:34.318Z", "postProcessHash": "2e0294ad1995467f31f65ad4ff3d8cdd366016e1080e0b68818bd5cde78b8dad" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.669Z", + "updatedAt": "2026-02-24T10:49:34.306Z", "postProcessHash": "85759b0451b633a7e9a714a9f7fe9fb489d60280b3545a79c58e4c6e27337d64" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.770Z", + "updatedAt": "2026-02-24T10:49:34.440Z", "postProcessHash": "2e3f0d19553a119cf120974543c939305e0e9549f88bbfc6c80bb247af5d87ce" } }, @@ -36755,19 +37223,19 @@ "c484fc5a7f3148583c4468ad2af97f94fd9cc073f7098786a953f31855eb484e": { "bd8825806b6c9a9fcfd0073d67b67df3440ace8280431d5a8c8dad6ef5f213ec": { "jp": { - "updatedAt": "2026-02-19T02:24:10.743Z", + "updatedAt": "2026-02-24T10:49:34.402Z", "postProcessHash": "835d4d57cd66406838fad01168eb9df441e7eedb8f6999f02628379bee532414" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.743Z", + "updatedAt": "2026-02-24T10:49:34.400Z", "postProcessHash": "374cd61fde4280f417112a423931e68836d40e0b6ac7c67101fd4a3b09006a72" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.740Z", + "updatedAt": "2026-02-24T10:49:34.395Z", "postProcessHash": "c7a8a71ed511b52e3188488048cd9c1354b3ffa36d2172cf9695490b03ab86ed" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.773Z", + "updatedAt": "2026-02-24T10:49:34.444Z", "postProcessHash": "0dfa5112417afd92661ea850f9b06fe2ec24770d6580ce2b21f75e068bf1a412" } }, @@ -36786,19 +37254,19 @@ "cb12578467473a3c801b153c6cf4d13a10cf518318fd5f17155acd1793145e1b": { "7416b573c39ce724ff3be3b7fe423ab34f30f16536bf6cf0fdf7d2ba979a33ab": { "jp": { - "updatedAt": "2026-02-19T02:24:10.720Z", + "updatedAt": "2026-02-24T10:49:34.370Z", "postProcessHash": "b38d197291ce8f83edc6828a6cad172a87f397cc657f76c860a1b73ef206719a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.730Z", + "updatedAt": "2026-02-24T10:49:34.380Z", "postProcessHash": "5be586fc3e6962c1401153ace47da48dcbd5cf2bddbeb6d3c464ac18f594da03" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.718Z", + "updatedAt": "2026-02-24T10:49:34.368Z", "postProcessHash": "98f04291b8b5dabe22fbafe127cba7ed7f94c080422a028f4e936c657c825c89" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.763Z", + "updatedAt": "2026-02-24T10:49:34.432Z", "postProcessHash": "bcbf0a2952087f4a366794c24b1b82d6471988e7e4abf256159500f4ea70c5a3" } }, @@ -36817,19 +37285,19 @@ "d7f86ec094d4fd68c7ec3902e09e9c8d6f32e759b1104bbeace470bd65c6ae68": { "aa75faa94f785331aff5bdbe2cbf5c4d6e4d398591d7ba48c786aa44ef7c17d8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.723Z", + "updatedAt": "2026-02-24T10:49:34.372Z", "postProcessHash": "7058c55728009175b717c3ee9cd2bee8eb646494f970768bd4d7075ff2c2fb4b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.719Z", + "updatedAt": "2026-02-24T10:49:34.368Z", "postProcessHash": "a73cd660dfd15c7e0aca71583ef73f88d9c53357b9f7c06a643db9bde286c5fb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.719Z", + "updatedAt": "2026-02-24T10:49:34.369Z", "postProcessHash": "fd33b73e35f6c67702a92b2d65245e82bf7e5d056750a6e33e7f0505c50212e5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.762Z", + "updatedAt": "2026-02-24T10:49:34.429Z", "postProcessHash": "4a52ae9589cad6b9729dc2677775f70cff57de0c5ba42c3da6f93dd1e6fba88f" } } @@ -36837,19 +37305,19 @@ "dae06bb227a02c2e0c6a941ce0fc26005199e52c806d58d5e67386d3ec46f9d2": { "7b4e58d24764fbe8ed14bec5a6c802f2f143b902c16c654c45567175ea3ba639": { "jp": { - "updatedAt": "2026-02-19T02:24:10.675Z", + "updatedAt": "2026-02-24T10:49:34.315Z", "postProcessHash": "7f1197366caf07244ee26d9fbcaa5ce780e12a8e9af2997eb134575c6822f5a8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.680Z", + "updatedAt": "2026-02-24T10:49:34.322Z", "postProcessHash": "4d0195ffdcd5d1d47bca8dbabce74eb65cc15d51a1d92321b73abd84f40f8e06" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.680Z", + "updatedAt": "2026-02-24T10:49:34.321Z", "postProcessHash": "d322be25bf1974767e7bf6e9f0993fdc97b0e8f3373c259a44f0271b30e3c924" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.771Z", + "updatedAt": "2026-02-24T10:49:34.440Z", "postProcessHash": "454098ac0bc7e415bea2d127a509125beedda80a7e34573d217b502b3b80535d" } } @@ -36857,19 +37325,19 @@ "dbffe2a957cf5e50f0d77de216e876face0751f13e47da2a20400d54d5665054": { "de205edb219286909fddbd177c0ceefb00f1d4bfa1753f3d37b2539c40ccb3b4": { "jp": { - "updatedAt": "2026-02-19T02:24:10.731Z", + "updatedAt": "2026-02-24T10:49:34.382Z", "postProcessHash": "d7f7f574991d9fcdc76f3d57fe1032d60d9b8c1b2bf0b6fbe246d44f57337f54" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.733Z", + "updatedAt": "2026-02-24T10:49:34.385Z", "postProcessHash": "1eab52d7c09ca22410ddeb745c82c49e184fe1089c466d7f046b87b8929a6004" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.731Z", + "updatedAt": "2026-02-24T10:49:34.381Z", "postProcessHash": "6b4abb74636a215c1a720fff7b23bb91a29fe4e6e898f480bf4301507e58163c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.824Z", + "updatedAt": "2026-02-24T10:49:34.489Z", "postProcessHash": "2f44e5e22b7d5daaca98445fdc065b6cd5389445cd21659f9d45d841979b4195" } } @@ -36891,19 +37359,19 @@ }, "a240f2ba11d8df1a899592b70bf09bd1f89a1379fa87c922dccc6de70b5ff623": { "ru": { - "updatedAt": "2026-02-19T02:24:10.757Z", + "updatedAt": "2026-02-24T10:49:34.418Z", "postProcessHash": "3ea3f2d138e12786f3672c95f641b47042b9459dd8d1d0fbf3985cf477401664" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.757Z", + "updatedAt": "2026-02-24T10:49:34.422Z", "postProcessHash": "8279f05a505453496b4e56c6d66378593a00d5739545d02d85fcba0238b27fd1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.758Z", + "updatedAt": "2026-02-24T10:49:34.423Z", "postProcessHash": "1101f9e3ba4f116862e6662a1129c466a6a5041f0716d5a0bbaf803fa718a3d6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.768Z", + "updatedAt": "2026-02-24T10:49:34.438Z", "postProcessHash": "a8462d877ee9058f04b57733a5462b31c111184c0e1f2cacbb6449579347f1f1" } } @@ -36925,19 +37393,19 @@ }, "139b82d21c5fea2d5ac76247163de2816b444c411c75943c18e18d438effe81d": { "zh": { - "updatedAt": "2026-02-19T02:24:10.861Z", + "updatedAt": "2026-02-24T10:49:34.543Z", "postProcessHash": "ce555fbe3781a6e216306087c6096f56eb9ccd1f554e9baaad8c0500b8f5852e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.862Z", + "updatedAt": "2026-02-24T10:49:34.544Z", "postProcessHash": "b412246b8d432e7709891b28b8c101095fbac390ea7ef1b827fbcfaf35ff7bec" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.863Z", + "updatedAt": "2026-02-24T10:49:34.545Z", "postProcessHash": "9851d672b16bea9b1cc3f4e94fd2e3351b128c0fb06fd058c1395444b86adbce" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.878Z", + "updatedAt": "2026-02-24T10:49:34.561Z", "postProcessHash": "c69a50f060142601f98807f51d93a604798c0761a3d30a3a5a979b79efe5a362" } } @@ -36945,19 +37413,19 @@ "19dc76f171fdf3b0cc1a3933538a1ce4395d12a9b9640597e4903ce3f6b18874": { "de4790564f72c39fe581e10e8ac3237721217d6c3c4ea4ad3cd07779bcc8dcf9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.777Z", + "updatedAt": "2026-02-24T10:49:34.446Z", "postProcessHash": "0aa629c9a4cae4bcc5108f51b22adfeb9694e6dd723d6088b0e7e652f92adb64" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.780Z", + "updatedAt": "2026-02-24T10:49:34.448Z", "postProcessHash": "1204d62aa23ecf6998fdbe567c9b81d0b8b5f4b543b5ee8ff2bbd14b90cdcc04" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.790Z", + "updatedAt": "2026-02-24T10:49:34.457Z", "postProcessHash": "7f6818b47fcadcd5f39f06a4fff24d984f7a9d886a9611f4cb2b4952b442074e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.887Z", + "updatedAt": "2026-02-24T10:49:34.569Z", "postProcessHash": "b32992cff2d8ac9c04c501cd9ed8fa6079816bec8c397190f0c10faca13f7ff1" } } @@ -36965,19 +37433,19 @@ "1ce6daa0ad295dac3a93f320fa28494beb73c39ee95608595b498a15a3e40ffa": { "85d971b7567c96e52bcd05d9d21b9c8edef12dd133c8c50e8b309d2d5aa75dc9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.844Z", + "updatedAt": "2026-02-24T10:49:34.526Z", "postProcessHash": "d12fd82ad9ffea0983fd588f15d0d18c1e000ca16712c14d7e9f6892ac43b3fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.846Z", + "updatedAt": "2026-02-24T10:49:34.528Z", "postProcessHash": "71068caeabe1300d57afcc87037ba819c59e96ec2d1cb0b57977e202879c121a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.843Z", + "updatedAt": "2026-02-24T10:49:34.524Z", "postProcessHash": "52136b06c10286435f5a229f5202ffd130fae8c9bfa1c0d2e4b24a615731d691" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.879Z", + "updatedAt": "2026-02-24T10:49:34.561Z", "postProcessHash": "ab4e371b31993b5a2cdf552071433c72a96eb9e217f08c31f5707d2a0b3e955c" } } @@ -36999,19 +37467,19 @@ }, "2554afce44bd3f4cebccea063726825970c68c6da179773a3b1e6603642e7b5e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.857Z", + "updatedAt": "2026-02-24T10:49:34.539Z", "postProcessHash": "1c93aa47e5249b6146a5046c05a96ff90385b87eb48025b438c119dfa1670fb9" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.857Z", + "updatedAt": "2026-02-24T10:49:34.540Z", "postProcessHash": "b5c001e1267ee05001d166a513b953c5d2ebddfc1c1538e50fbc9ad1465873f9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.858Z", + "updatedAt": "2026-02-24T10:49:34.540Z", "postProcessHash": "93f9e997ea373df0cdf5faaaf3f89b225e7e9c90ff9c532067ed8f2d8d68577a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.880Z", + "updatedAt": "2026-02-24T10:49:34.562Z", "postProcessHash": "e82e4e3f7d960cd244aba7b94da6dd4f5af957d8f87c43934fd0a50dd74bfeea" } } @@ -37019,19 +37487,19 @@ "6731708fce75a234e44f1b0c956e538194421e979b065c7885b48212f94f5cf7": { "90b07a9d7262bc7ef0366d310777b0b0370a7a92ba12a4e6abc92359b2507413": { "jp": { - "updatedAt": "2026-02-19T02:24:10.799Z", + "updatedAt": "2026-02-24T10:49:34.464Z", "postProcessHash": "44f6595f721c07ea0925ea229a49d7066ea9160577b2aa2ef6cdb419cdd5460b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.780Z", + "updatedAt": "2026-02-24T10:49:34.449Z", "postProcessHash": "4a40230e5154561b00a4884e480aabf4de1e332de7870b3f9c5c38f7308f952a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.795Z", + "updatedAt": "2026-02-24T10:49:34.460Z", "postProcessHash": "ef8fd3d2b8984cb0e57e6f053701d96dc3f9ebb2a83b8ce8d3d06ecb9f57acd7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.819Z", + "updatedAt": "2026-02-24T10:49:34.485Z", "postProcessHash": "a16773141f65a6ad31c807c3046463c6df52ac4c0b1687d6d911296db15c7538" } }, @@ -37050,19 +37518,19 @@ "70cf97c8fc949e8db59f1ad657a9a53e576e424eaa88498f6a60d5b2e6729885": { "338d9d04b8e82dfebeacc09a54a398e5b4290b074e597a101394bc9922a1ee1c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.788Z", + "updatedAt": "2026-02-24T10:49:34.454Z", "postProcessHash": "242324c979ef19d73b9fd0f72a3518f038d5d52d7abcaac37a205145e252e1e1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.786Z", + "updatedAt": "2026-02-24T10:49:34.453Z", "postProcessHash": "7dfe8ab229a1e3b6b8c4364a44497d213201e4b28faf8a5b2bfa9c00d1e2930d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.786Z", + "updatedAt": "2026-02-24T10:49:34.452Z", "postProcessHash": "016f01eb4092b6b6ffdda9733e1034a5e00e817f6cfe80cacdeb5c13b07db30d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.820Z", + "updatedAt": "2026-02-24T10:49:34.486Z", "postProcessHash": "6512faea7645ac36b664f09d917f5e95b3039a1a8788456cf77d6d313b64fcd0" } } @@ -37070,19 +37538,19 @@ "7fa7f13fb2961efc9814d134b779cc0fe6672bcbaea9bf48e814ee1d05addd82": { "b111ecb2cd1900f390f7f5548b4fb6a727aefd661dda094d15b6c7351b124265": { "jp": { - "updatedAt": "2026-02-19T02:24:10.728Z", + "updatedAt": "2026-02-24T10:49:34.379Z", "postProcessHash": "2c7253b57ef4aa9e8f3fc98bfa6298d92762b79be4aeb5c2f8d288e92e14db67" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.720Z", + "updatedAt": "2026-02-24T10:49:34.369Z", "postProcessHash": "6c4049f78b8f0bd4f491ecd76d456bf766789b3b99359c963875deb3f2bb4ffa" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.725Z", + "updatedAt": "2026-02-24T10:49:34.375Z", "postProcessHash": "3ccb04f34a8f69be21428c7205ab439664b33a53df007e16e4d243df52da3557" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.768Z", + "updatedAt": "2026-02-24T10:49:34.438Z", "postProcessHash": "e8b84d20e7b427885481345666565347ea2d63604aab4627fd65e15740569e79" } }, @@ -37123,19 +37591,19 @@ }, "f95ba4c4300ed79512639406575a2a02d4370daf2f9f94b0e2fa01cf5198630c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.811Z", + "updatedAt": "2026-02-24T10:49:34.477Z", "postProcessHash": "988464ae6f9c3b9bfb778dc68ecc770a6eb58d4e67d5214f7584de703ba8304d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.811Z", + "updatedAt": "2026-02-24T10:49:34.478Z", "postProcessHash": "51b5808faf47bc060d3a7286e352db3160caae995b8b4b5f5ca473c2edc0b56d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.812Z", + "updatedAt": "2026-02-24T10:49:34.479Z", "postProcessHash": "319fde0ed38bf8e342d694f52be1f54974eea9a9d625ddd753971538e0bff52b" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.833Z", + "updatedAt": "2026-02-24T10:49:34.497Z", "postProcessHash": "67c864fa80efc6c535d53bee8637359d0162ce081227fbc89e6b03ccd6dc85e7" } } @@ -37143,19 +37611,19 @@ "998f0f4e3468e7524c434f473537634e659c94f841a46f5563bb39a4ef82c64a": { "cc945ba5712ca0c208a5b68dd98646b082cd93aed560249a34be7216e338325a": { "jp": { - "updatedAt": "2026-02-19T02:24:10.730Z", + "updatedAt": "2026-02-24T10:49:34.380Z", "postProcessHash": "eaf1a494550c559fb7348a4fb46e7752ea3c0463946eb726bd817ae0f5d53c0a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.727Z", + "updatedAt": "2026-02-24T10:49:34.377Z", "postProcessHash": "d9c57c04db428434d174b667e3e07622c6089f8fb45a83cfd95095d31cd77a97" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.732Z", + "updatedAt": "2026-02-24T10:49:34.384Z", "postProcessHash": "4b3d7cea075f87e395128ac016f8721d4524fd4e5875e1dcb1561cc21bee6d32" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.764Z", + "updatedAt": "2026-02-24T10:49:34.433Z", "postProcessHash": "648048cbb7da4bd7057ab4b52dba44aad7611ec8f305ef3a943c28eb1a964357" } }, @@ -37199,19 +37667,19 @@ }, "57b63f97f9478a288c7f55f32ebafa835f0f8136885d60aae3fd08b4f0529468": { "zh": { - "updatedAt": "2026-02-19T02:24:10.814Z", + "updatedAt": "2026-02-24T10:49:34.481Z", "postProcessHash": "db308085273672c065bb000f442d7c79e96402cacc077dee40e1179c88ed0de7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.815Z", + "updatedAt": "2026-02-24T10:49:34.481Z", "postProcessHash": "e01a8eedf21d9888be029ad41bec686010a336697e5bba140ccdcbd08a1f29a6" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.815Z", + "updatedAt": "2026-02-24T10:49:34.482Z", "postProcessHash": "7f489cdc521821cbf13731868cf25c5697d9f8abf660152f7e9a61f2a43af239" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.824Z", + "updatedAt": "2026-02-24T10:49:34.489Z", "postProcessHash": "d603b62908989c28897f8904ff25e872041c5b61d6e7cbf0c0d38730f501fdba" } } @@ -37219,19 +37687,19 @@ "a725d7aefcb81ca44df79432f1da90c48ccc1821c943c4aea64ec662f97fc340": { "11463482ef7448e6a135decdd6e0c2680b565473c869d4016976dbdd9ebd3fd0": { "jp": { - "updatedAt": "2026-02-19T02:24:10.790Z", + "updatedAt": "2026-02-24T10:49:34.456Z", "postProcessHash": "306535fc3ef1e614957b329412622138ca990dbec6bd376a6172d5e07f3c527b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.791Z", + "updatedAt": "2026-02-24T10:49:34.457Z", "postProcessHash": "2a966034187d7afd0a13bdf57e696819e971b9ef47785e810a7fea6c774666f8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.797Z", + "updatedAt": "2026-02-24T10:49:34.463Z", "postProcessHash": "a3a84c80e11aa1be6cdb03b672df738fe3cbdc36cf2bb2a69f547ca532d2abaf" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.820Z", + "updatedAt": "2026-02-24T10:49:34.486Z", "postProcessHash": "1116f62e45740f8f9c5f3b44f57a5adb360b5e3c721bfe2de6705c0aa7cfbf8a" } }, @@ -37275,19 +37743,19 @@ }, "2cd8c01976dce2c8d1c4245bd4a013c7bdfe6b96d04a5d1855b879d419153893": { "jp": { - "updatedAt": "2026-02-19T02:24:10.833Z", + "updatedAt": "2026-02-24T10:49:34.498Z", "postProcessHash": "a81cf30d40dbc6abd01b47d4353b7946769cafd7e64f99032d1be0519dd56f5e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.834Z", + "updatedAt": "2026-02-24T10:49:34.498Z", "postProcessHash": "bc0c74b3a679f60ca15dc6e9f543d14a2506f347af4fe4de7993306c3e3e0843" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.835Z", + "updatedAt": "2026-02-24T10:49:34.499Z", "postProcessHash": "530ae74c3d96231b99fb5f922899d921cf891574f541b3da1b5d13f754301fa2" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.828Z", + "updatedAt": "2026-02-24T10:49:34.493Z", "postProcessHash": "d998314bb184421fe924058bddc4d4d65005f37f5826cc404684b5c3f8a5ab30" } } @@ -37295,19 +37763,19 @@ "b02ce70d6dcff3632894b67e171d3cc1146833fe54d4b06011bbaa8c85a0884d": { "09c5316a4d219ae648cc28e8db671f96b825f4184cd4e8e4a511bae5beff8109": { "zh": { - "updatedAt": "2026-02-19T02:24:10.807Z", + "updatedAt": "2026-02-24T10:49:34.474Z", "postProcessHash": "c00021934c448ca16b8c04faaa97b1524a897e2642debc9879d228624637a163" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.808Z", + "updatedAt": "2026-02-24T10:49:34.475Z", "postProcessHash": "42e38ff8288345297e60169bc834847017b113c2b965a8be1b62a0646b7e267b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.808Z", + "updatedAt": "2026-02-24T10:49:34.475Z", "postProcessHash": "71a18e58f090672d20325435f6e663e2486d32fd604b43cf53933c9092e18893" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.827Z", + "updatedAt": "2026-02-24T10:49:34.492Z", "postProcessHash": "8b7835b6b11b3dce87a0a3afaeed00b902317f8771311609692bc48395f04b71" } }, @@ -37340,19 +37808,19 @@ }, "e0350eeb85f102ea8595bba86c09794ac9efb4a53f84a43e1c4269e7b19e9e20": { "ru": { - "updatedAt": "2026-02-19T02:24:10.813Z", + "updatedAt": "2026-02-24T10:49:34.479Z", "postProcessHash": "1765f2b6b597773d9165c5b536b6f79670fda98433f6bf90d502fc0a7c3ece84" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.813Z", + "updatedAt": "2026-02-24T10:49:34.480Z", "postProcessHash": "2a8718840e54faa8a16784baaac0e76eeaf748bfd7bba365a4f9a4bcc437b334" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.814Z", + "updatedAt": "2026-02-24T10:49:34.480Z", "postProcessHash": "2af322492c84ec2601390b80f7886c6d767d740c031007f5c0824a11051b6e4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.821Z", + "updatedAt": "2026-02-24T10:49:34.487Z", "postProcessHash": "b1b74f50f07d8061387258ba6b037b92cf03ea6a03eaf8f75c7b9647a65d5976" } } @@ -37360,19 +37828,19 @@ "c5321e7f9f222609b774837230342fd88d3987594612b1a1a987cb8500748344": { "6b17248bc93c579b8212f6684732b598b2781d46fbc0ff7686c6c9716116d43d": { "jp": { - "updatedAt": "2026-02-19T02:24:10.801Z", + "updatedAt": "2026-02-24T10:49:34.467Z", "postProcessHash": "cdc13b613475c4d399bf18bc097a4d0222460709d5fff98c4ee614ec81da4641" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.802Z", + "updatedAt": "2026-02-24T10:49:34.468Z", "postProcessHash": "340ea5ac36d69f6d5094993118818a8beac71078539b59d6733877925ac54d4b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.793Z", + "updatedAt": "2026-02-24T10:49:34.459Z", "postProcessHash": "fc88dce083ec49bb3073e250abd5ee3ebf654339af230951f98b6a015a3873ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.825Z", + "updatedAt": "2026-02-24T10:49:34.490Z", "postProcessHash": "fca809192c65505eeb73e1ca041737aed4f5729d56e65a26880cd71ee3098d04" } }, @@ -37391,19 +37859,19 @@ "d865d8906bab480f2412b8134877a2a96913a3533480602839cb1425678255d8": { "40e74dd63d675033a626615c8dcb1dc2d2ab2290058dacdabdc77986ec16b1dd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.727Z", + "updatedAt": "2026-02-24T10:49:34.378Z", "postProcessHash": "a92b159aa67b316f889d9e40b7021c3543b5f0047c80756a37b5a34bc351a1d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.718Z", + "updatedAt": "2026-02-24T10:49:34.367Z", "postProcessHash": "de686f12cc1cfc2fa2cf3a29ffc17f48c3f581703114b014b7c3eb7afaacb7d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.722Z", + "updatedAt": "2026-02-24T10:49:34.371Z", "postProcessHash": "9a8a6c445633f1de2f6d0c6489ae72d13dcbea106f5e11e8953a09ae963511b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.827Z", + "updatedAt": "2026-02-24T10:49:34.492Z", "postProcessHash": "39708cdd264f86ba4cc0ed4a1120754980d14ce8419a7676ce773b28220c06e3" } }, @@ -37436,19 +37904,19 @@ }, "1b7dd133835665d6348ee4ebf5d1f773ef575a7a261bfe57fe7442844475135e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.746Z", + "updatedAt": "2026-02-24T10:49:34.406Z", "postProcessHash": "6829b17b0f96be7e9efd6b459f6a4baa2e260a5be562090dc521b92cfa9e3df3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.747Z", + "updatedAt": "2026-02-24T10:49:34.407Z", "postProcessHash": "f992ebf57cb785ffa5a545d56703cf3ebeeb253537fbb61759066c26ce731051" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.747Z", + "updatedAt": "2026-02-24T10:49:34.408Z", "postProcessHash": "c99863ede585a40a212170a9ab87a97b1d6eeab72a3a42aaa299987503de9953" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.829Z", + "updatedAt": "2026-02-24T10:49:34.494Z", "postProcessHash": "e109f7ac8d49501fa8899d23d423626776bcd7efe70d816d4ebedfafd54902e5" } } @@ -37456,19 +37924,19 @@ "deaf9da7af41c9dbd196870e7d946c2d92a2b4098eacc1d9d67ca6e552d438a5": { "fdf52ca20d97fc34fd94ada024eedfd00d77d9abbb0aed5df8411acf741dbddf": { "jp": { - "updatedAt": "2026-02-19T02:24:10.740Z", + "updatedAt": "2026-02-24T10:49:34.396Z", "postProcessHash": "e2ba7b1919f028687d6b07d04723f992052490ddcc85547efcebaf44f5ea2152" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.744Z", + "updatedAt": "2026-02-24T10:49:34.402Z", "postProcessHash": "20e41a4e6007495ef8661af5cd572a7a964a99b5f68054d67710727ee37de405" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.742Z", + "updatedAt": "2026-02-24T10:49:34.399Z", "postProcessHash": "3a8ea9ff3e1f4db459c6cfa7a1163f9f7784acb0705724eed56e61b1ce398042" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.767Z", + "updatedAt": "2026-02-24T10:49:34.437Z", "postProcessHash": "2f73cfbb85591a104d3b328789417c7d29a3bcecdb5071b94f8aad333f5e3862" } } @@ -37476,19 +37944,19 @@ "ed51dd17995f6639353bb7c4089fa97d4f8dc7203bca3e26312cb31005fd949d": { "a382bedb279fccc3ac9fd5b4fe0ce9a876319b2d0652651cf74622f32f475762": { "jp": { - "updatedAt": "2026-02-19T02:24:10.723Z", + "updatedAt": "2026-02-24T10:49:34.373Z", "postProcessHash": "4be4ed428189f791863596c0fd2a9f1021c0375451f6211a0ee405d4e221ef39" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.721Z", + "updatedAt": "2026-02-24T10:49:34.370Z", "postProcessHash": "f294d6a20bd49506e6595663fe25751a2bc1a5379527ec16dcb9cfdaa641d6d3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.724Z", + "updatedAt": "2026-02-24T10:49:34.374Z", "postProcessHash": "9c8ef93120da124be002209a8adcb27f2df04db6bab296baaee64a1ec42cad71" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.761Z", + "updatedAt": "2026-02-24T10:49:34.429Z", "postProcessHash": "c447205047fd75e18ef91308a383ccd039721be28f87b498e2aca543e2e88553" } } @@ -37496,19 +37964,19 @@ "ef55ad557299e30ca7d8ccbe3f701f3efcfb9407e677358fda64040c88c2a0e3": { "b7534a46cfb2aba578904a3ead55b3a917dd6ea809c434df147c1f98e5defeeb": { "jp": { - "updatedAt": "2026-02-19T02:24:10.798Z", + "updatedAt": "2026-02-24T10:49:34.464Z", "postProcessHash": "d9cce72eb50a1a3243eceb05f6c7d73e8f4fa7516ec4dec715ce37400252e0bf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.799Z", + "updatedAt": "2026-02-24T10:49:34.465Z", "postProcessHash": "cd58dfec37af48a02d846a5eecbc62c2d2d09b5d8e0cf6f643375308291a14fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.782Z", + "updatedAt": "2026-02-24T10:49:34.449Z", "postProcessHash": "d4dca4733a1bff1880de4252e730ab197e4052160b117b01075fe7689b3f2f0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.823Z", + "updatedAt": "2026-02-24T10:49:34.488Z", "postProcessHash": "ad270fbd6b61bb360de7e025819a15a32b00f200dad67927cadbad860ef3ef6b" } } @@ -37516,19 +37984,19 @@ "f4e514c65ad19dadd6e36981ced2004e96119143057123e6f8343003c976414b": { "f9be206d9401669361ef8b3907f74e41604e01c3da770a270a3b262d0cf9e0b7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.774Z", + "updatedAt": "2026-02-24T10:49:34.444Z", "postProcessHash": "73d9b5a394a33d3490ee19819b416d932fc02fb11afb9ff327a9d419af8cf88e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.777Z", + "updatedAt": "2026-02-24T10:49:34.447Z", "postProcessHash": "6e8b8db2c47ce8d930e12fb9d15189e985564f80032b4994d518145e9ab6a7c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.778Z", + "updatedAt": "2026-02-24T10:49:34.447Z", "postProcessHash": "ac90b4f08d2b6429d1def33b4f39f4666c822956dfb92b583498b63f0c7de344" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.828Z", + "updatedAt": "2026-02-24T10:49:34.493Z", "postProcessHash": "9ee324380215bcaa27dbecbd5bb5c90fd2c01d74cd857233290dcec6f2bed5ab" } } @@ -37536,19 +38004,19 @@ "fde1eb9f476467503483925174bc3e07ff1b6152ca9eca4cbea2189875928f86": { "5b437c2637bdf116e6ae9dd7273b3db889d01e6006e1510d494e0c27992a8abe": { "jp": { - "updatedAt": "2026-02-19T02:24:10.738Z", + "updatedAt": "2026-02-24T10:49:34.393Z", "postProcessHash": "1318e3631c49d80cfa2afe059f8091fccfc87b1783fe3c200696f72a97de9d82" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.738Z", + "updatedAt": "2026-02-24T10:49:34.392Z", "postProcessHash": "9948158318bb046748c36cd52324a772d2120bf76282687c6f04a82f14bc0f7a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.742Z", + "updatedAt": "2026-02-24T10:49:34.398Z", "postProcessHash": "06ce22eb175e998c04310fa2d3746c52afb37997fb7cdfeef122b4aac8b836fb" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.829Z", + "updatedAt": "2026-02-24T10:49:34.494Z", "postProcessHash": "0d9376f2cc7fa3728764eed63c88f18cd25b32846841add4b6d0b5a44d163046" } }, @@ -37567,19 +38035,19 @@ "025fd49fff3f320d5bf6441808dc379cdaa73f78cddd66059a1f1d989a1102a9": { "5cb5606bdf1fcec7d40bb07c9211307f195d39d691aa2cabd78b397dd79771c5": { "jp": { - "updatedAt": "2026-02-19T02:24:10.894Z", + "updatedAt": "2026-02-24T10:49:34.576Z", "postProcessHash": "4b2ff2eb9100b321e10609e1307521b75bf9af46c777c58ebee192b6b72918c6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.904Z", + "updatedAt": "2026-02-24T10:49:34.583Z", "postProcessHash": "bd59da3e0e96ceb34f5dea9d375b88448e902b21d5c5368e25f12068436043cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.898Z", + "updatedAt": "2026-02-24T10:49:34.579Z", "postProcessHash": "fc81c5dd196d2185149757a23ae154bf2854cd8a65c015172c2fbc62ab7a1c3f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.961Z", + "updatedAt": "2026-02-24T10:49:34.643Z", "postProcessHash": "3515528775b7d180c6d81f8fbcd1a90477da3d5deb2d17c2d77bb61cbaf91edb" } } @@ -37587,19 +38055,19 @@ "1e4b57e276f3147467bca9c9b34ef7237444bbb31a33e9319c88df9db588b8ef": { "781ade8017e15eb182d04e5802e03ea4655dd91aa963a8d3d6d5e111348f2ef9": { "jp": { - "updatedAt": "2026-02-19T02:24:10.849Z", + "updatedAt": "2026-02-24T10:49:34.531Z", "postProcessHash": "85dcb625c078773c22eaf98c8f2b81d01f5fd760005811e5eaaa722c3afe6992" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.846Z", + "updatedAt": "2026-02-24T10:49:34.528Z", "postProcessHash": "bbb37171e93a46b61994bb49d22fde23e050c98e073b5224eef8dd561a617722" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.842Z", + "updatedAt": "2026-02-24T10:49:34.523Z", "postProcessHash": "3e43ff888712b5e874425c60855ad4d589afed519a4872429694abd4e22d493e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.889Z", + "updatedAt": "2026-02-24T10:49:34.571Z", "postProcessHash": "5b2f090c6e2bacf46e65aca2510b7fa94e8f10006f41091772df48867140ea61" } } @@ -37621,19 +38089,19 @@ }, "267d3c6ef6c1d3448e9dbcebc10b13f48f607692076ab66c5b4c2166911cf71e": { "zh": { - "updatedAt": "2026-02-19T02:24:10.942Z", + "updatedAt": "2026-02-24T10:49:34.620Z", "postProcessHash": "7ca54b3b504277397f4177513ca9e7eff8e079d57155f53a5fb54be2df35e3dd" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.943Z", + "updatedAt": "2026-02-24T10:49:34.621Z", "postProcessHash": "2f8e86d53834bf292ae82680768877b92941e793521e109c439290fde36c2a3b" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.944Z", + "updatedAt": "2026-02-24T10:49:34.622Z", "postProcessHash": "99a7a411283028e42917c14f065903ad4f41b68cb437a7dafbf344958c20ea3c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.962Z", + "updatedAt": "2026-02-24T10:49:34.644Z", "postProcessHash": "fa49ffd078f8b48e340cef7769b0730516ec6090523fa46f803c2343aceb54c3" } }, @@ -37655,19 +38123,19 @@ "2d5ce469cb4fcd9ac57756723325805176514ce512b8039ab05e3fde56bb12a1": { "37840663d4e6d0f5bd1b9b294c2b0feff352bd6bdd003b973cd9e9e03ef04b2a": { "jp": { - "updatedAt": "2026-02-19T02:24:10.905Z", + "updatedAt": "2026-02-24T10:49:34.584Z", "postProcessHash": "41f9976203924a052c5e0eadec5e9e815398015a5693587ef6697c56db62cf2a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.906Z", + "updatedAt": "2026-02-24T10:49:34.584Z", "postProcessHash": "c463b1101e52162fd3f128fbcce84b1497efb6b0fb0152c8bbe8f98c430954df" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.907Z", + "updatedAt": "2026-02-24T10:49:34.585Z", "postProcessHash": "9f2faf31e1d79ba95d05ec49e4b6cc1e8c499de5747aeddc680656aa168367c3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.963Z", + "updatedAt": "2026-02-24T10:49:34.646Z", "postProcessHash": "21085c1c829d5fe1c6c1b54e2c21cb21f0c58d736d6b95ae8fceb12686c3c425" } } @@ -37675,19 +38143,19 @@ "344aa60f54b872aa215951fce76265aad2f3f1d6ff8bacd50188b941ce5098c8": { "7a8f03b82b278bf1a01cbbd7ff1923941fcfc7239248c640ae1b2eec075f2bd0": { "jp": { - "updatedAt": "2026-02-19T02:24:10.850Z", + "updatedAt": "2026-02-24T10:49:34.532Z", "postProcessHash": "dce65a4e5a309cd81cf8114c78d334e3cf0b26c83ffdd20cbcbf34b96dd2fbf9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.804Z", + "updatedAt": "2026-02-24T10:49:34.471Z", "postProcessHash": "caa6e750f38772e0a04857beffa191439cecf3ffd908e22ae6cfd6425baba4c0" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.806Z", + "updatedAt": "2026-02-24T10:49:34.473Z", "postProcessHash": "8c2e991b6e9af8b2c93ed05de31b6de88d626dc989637830faddd4dacf7e9923" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.882Z", + "updatedAt": "2026-02-24T10:49:34.564Z", "postProcessHash": "5f53b5d77556af1b0fc34abfa00c229b8787de542758d13eb94125bf36493d01" } } @@ -37695,19 +38163,19 @@ "53d65ec30475ca0007e7da32916549bd02696879f561f268e8e3a58c0dfe9de5": { "e1d20246377ea7703705aeea779bd04141833d80b87084862959aeb3e9a08c2e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.789Z", + "updatedAt": "2026-02-24T10:49:34.455Z", "postProcessHash": "50e6a8a90212b364014541ba1195a816fd534a63506c8e7cac6cc3eedf148773" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.796Z", + "updatedAt": "2026-02-24T10:49:34.461Z", "postProcessHash": "6d0f628a26378f0f941ecbe91eabbc75b463b16fae175df45ae86faac494049b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.778Z", + "updatedAt": "2026-02-24T10:49:34.448Z", "postProcessHash": "7deac6809059da5a029c618fa6cfa172bfdfe5a9a518b3dadbc6fc8c87412197" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.880Z", + "updatedAt": "2026-02-24T10:49:34.563Z", "postProcessHash": "c81d21b2b7615ce440620937b7ed88790c22c0ef0f2918b800ab6c3c5477ffe1" } } @@ -37715,19 +38183,19 @@ "5b9f7f3fc45524898a5a0adff01cb46775280fd54d8fbbd51c0cb3cfb2b7e78e": { "1f25423f1068a3269325eb00ebe91d4fe71d603537f5b9e8c9b81de44ef31aaf": { "jp": { - "updatedAt": "2026-02-19T02:24:10.785Z", + "updatedAt": "2026-02-24T10:49:34.452Z", "postProcessHash": "4249e89665f524d26ca6d629498ffe71d133e89d7ddc2395b75497001d468ab9" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.784Z", + "updatedAt": "2026-02-24T10:49:34.451Z", "postProcessHash": "4775913d8e27c5abf1b5c42384deb9db2408918a530237b0f990d678178f72c7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.796Z", + "updatedAt": "2026-02-24T10:49:34.462Z", "postProcessHash": "cfee8e730657e861bac5531b4e7afb021b54b278f1d55ffbad808f4fd069edbe" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.877Z", + "updatedAt": "2026-02-24T10:49:34.560Z", "postProcessHash": "a08cab17462e53bfdfb4a46fd7f090df2e9e2ff558fa88467fbe1b2a23c7b6d9" } }, @@ -37746,19 +38214,19 @@ "5c4dcedff3da1da80fb63b9461c1c89223beee53c37a3b5a538edc528453f0b2": { "620bb0c22df1a23b2a8df3eb395373d44296904b0332797c29514f90a31606b2": { "jp": { - "updatedAt": "2026-02-19T02:24:10.789Z", + "updatedAt": "2026-02-24T10:49:34.456Z", "postProcessHash": "a76993ceab136826df270cd6a3aba647f9cf50c184991d14460d65c75c08aaf6" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.784Z", + "updatedAt": "2026-02-24T10:49:34.451Z", "postProcessHash": "f737c1efc84ab7bc508a18025a04044ba9eda7c31acb3a390bfe60efb2a16f4e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.802Z", + "updatedAt": "2026-02-24T10:49:34.469Z", "postProcessHash": "3cb5f332d688da734b6c192568e1fec0206bb95291a2ef31a2b0372c1c39a193" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.884Z", + "updatedAt": "2026-02-24T10:49:34.567Z", "postProcessHash": "41612b6cba012347d69a96ddddc94d6c91fcb50930f938feb5bd99dd7cc6960f" } } @@ -37766,19 +38234,19 @@ "719a6d655a54f957cec2c65e95d6651040b93a639ad6aa44861b85ae09c1c5c5": { "fafe4a083f40e8f75644ffb779bcedb7065ad373f06a042ecf2238313aeef393": { "jp": { - "updatedAt": "2026-02-19T02:24:10.775Z", + "updatedAt": "2026-02-24T10:49:34.445Z", "postProcessHash": "2064589590411c2dc3c4009ed55fb9b1e0082c652b15c5d0e786b4cc359d9a23" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.798Z", + "updatedAt": "2026-02-24T10:49:34.463Z", "postProcessHash": "ae980cb4afc8405f10791555b33d9f0ef73551864c17dce629bef48eca7362d1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.803Z", + "updatedAt": "2026-02-24T10:49:34.470Z", "postProcessHash": "d1635a989016e7f253dfe57bc5ebd80bbb5793b3ee9f638d02ac88b92da0856d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.893Z", + "updatedAt": "2026-02-24T10:49:34.575Z", "postProcessHash": "b8d002391196be5e47b0ed8f857c5f133ca40acbaf8dbca011ebfa94d3041218" } } @@ -37786,19 +38254,19 @@ "82b281d3017bb8cc4db38036df8fbbba3430846e468a784c1b2e6d4d8e43b6d7": { "617961c999f1bf6eb48c03b5f56f99b3a7309dba7bcdb74914b6a76f36a56413": { "jp": { - "updatedAt": "2026-02-19T02:24:10.774Z", + "updatedAt": "2026-02-24T10:49:34.445Z", "postProcessHash": "bddbd068d888af3f67cac6814ab48e530f146c5d30e32d0e4b55454822d37151" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.853Z", + "updatedAt": "2026-02-24T10:49:34.535Z", "postProcessHash": "c01c065c214ec2c5c9752569f2a82e7899d03982fd8368caf121f9425c92d42e" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.853Z", + "updatedAt": "2026-02-24T10:49:34.534Z", "postProcessHash": "db9f30fb0a3a4b34f43d0117b420122f81ac80c807486a9d41271f7efdaab6ee" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.894Z", + "updatedAt": "2026-02-24T10:49:34.576Z", "postProcessHash": "00efb01345601e9d5f4494cdbfe389bfe74d84ea2f99a00c898999be1650b49e" } } @@ -37806,19 +38274,19 @@ "8cbea57ac40a6d6358183da1d28c1a09304c1b4a5edf96e2c4a808dc6773ba41": { "39a62a98184d3c0536249ba36e562c954047436e58e929927516fea5318e895b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.805Z", + "updatedAt": "2026-02-24T10:49:34.472Z", "postProcessHash": "da5a47918405d73c0d79daffac0057e9443896e2fd46f3214a9eec334c81aa3b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.800Z", + "updatedAt": "2026-02-24T10:49:34.466Z", "postProcessHash": "692ed266753241510503ed878e15b48574eb52b96c79a9070d2db0281d381101" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.801Z", + "updatedAt": "2026-02-24T10:49:34.467Z", "postProcessHash": "d01f3fc2476feb21909a604060eb5c32fd66fba1e6ba80cce7caaefde5938817" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.888Z", + "updatedAt": "2026-02-24T10:49:34.571Z", "postProcessHash": "8a656b30dc03d8e5c787d41699f7c1828e4e63fb74658e619700778202a53ce5" } } @@ -37826,19 +38294,19 @@ "940796a1aae864d0eda15bb34a302626f3ad6a2c1d3af60ba921316d95e81a13": { "301a0a16ec26f11dd9fb52328307087f8c2528fea166cdea553309d6e58106d4": { "jp": { - "updatedAt": "2026-02-19T02:24:10.793Z", + "updatedAt": "2026-02-24T10:49:34.459Z", "postProcessHash": "07a4eb47a897e33333d7a3a7ab011c3566ccdfb5abb4804239982b87c42de3e2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.792Z", + "updatedAt": "2026-02-24T10:49:34.458Z", "postProcessHash": "a25d28262360ff308e7f6b1cd4bc35c4021f3bf6c6ce45599b8e58100f98a257" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.776Z", + "updatedAt": "2026-02-24T10:49:34.446Z", "postProcessHash": "8db42a2a94e455b88beb8a8fd2420dc207d495117c4f5a5bdb111965e961abc7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.887Z", + "updatedAt": "2026-02-24T10:49:34.570Z", "postProcessHash": "ae8729181f34ea319d3fc5840fdba9dd1e770caf9ecbe19558d170570b026e46" } } @@ -37846,19 +38314,19 @@ "ab91d27df4d8b8148381ccfd51e2bc9b99a1625ef08e73f1d9a0eb197e5397a2": { "a1465aea8fd40bd2a71567dcd05c6ce53e13c60e2ac21919e271ebe1b6782f74": { "jp": { - "updatedAt": "2026-02-19T02:24:10.851Z", + "updatedAt": "2026-02-24T10:49:34.533Z", "postProcessHash": "efb101d14d65b4516a7ea2c183ba5f827368e14c277c611317fa573d984c2031" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.783Z", + "updatedAt": "2026-02-24T10:49:34.450Z", "postProcessHash": "37ed044e7ee372a4dfa8deba40a068b332d419ffe9a2e572a4808f4f628eee65" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.803Z", + "updatedAt": "2026-02-24T10:49:34.470Z", "postProcessHash": "2f1683772e9929148ad2d3d7c0131669cf6d6b796873b950bff22aed365c948f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.889Z", + "updatedAt": "2026-02-24T10:49:34.572Z", "postProcessHash": "1498c8fcf86a02c024e6c1d8fe7d06986d59911714d54a80ebf2c136def9bc35" } } @@ -37866,19 +38334,19 @@ "b7c59a245d47fd54f7c7477cbd498ba2937399586e98674be51c6a7c40b2ae70": { "410fd44fe625de2b185ba9098597ace5e062b1884403c90912660d14d188d9bc": { "jp": { - "updatedAt": "2026-02-19T02:24:10.806Z", + "updatedAt": "2026-02-24T10:49:34.473Z", "postProcessHash": "d1219d67632e01507519d729216ced57ecb1848c346fe528beae11d2e5fe72df" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.805Z", + "updatedAt": "2026-02-24T10:49:34.472Z", "postProcessHash": "5e946aed1c1a26b3a37268a74cdc1d66563a838655faaef2a470017e8e1112e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.852Z", + "updatedAt": "2026-02-24T10:49:34.534Z", "postProcessHash": "40c98c3456b6415d10f7a1242e78c73398e987c78226db366288ab1c1d569ae3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.885Z", + "updatedAt": "2026-02-24T10:49:34.568Z", "postProcessHash": "1792a4113b618f7fbfe984fcd84e02a673737556d0ba04f2bd83edab48529f3e" } } @@ -37886,19 +38354,19 @@ "d03338e91e1f725469cbc573d2b5a49c055fe39e67ab09e92b408e3e6dce3361": { "fee22f53b36f6d80c05058f7c0b07e16a2dbb531dbf640d90efae0a82972bd4c": { "ru": { - "updatedAt": "2026-02-19T02:24:10.849Z", + "updatedAt": "2026-02-24T10:49:34.530Z", "postProcessHash": "4b1654ce4a25697fde34b8325365ebfa667f2eff6d0f8059e08addd07eb0c9ef" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.850Z", + "updatedAt": "2026-02-24T10:49:34.532Z", "postProcessHash": "f7915659126c0460724ba2d415abf2fc8bb2e3c7963d889d4cde5510872e14b1" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.847Z", + "updatedAt": "2026-02-24T10:49:34.529Z", "postProcessHash": "f4544ea3f482159c3880cddb0b1536d5027b101d16578abe03ab571e5216832d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.885Z", + "updatedAt": "2026-02-24T10:49:34.567Z", "postProcessHash": "2e14032f5ef2f5290f32adef96ac1d41d9b8f73e9305de40021ba2d3827c431a" } } @@ -37917,19 +38385,19 @@ }, "8c32d9ed79179c36d91c216797451fa357aeb28c845216e5bab97a4007a3b6e7": { "jp": { - "updatedAt": "2026-02-19T02:24:10.854Z", + "updatedAt": "2026-02-24T10:49:34.535Z", "postProcessHash": "ad327cdb7127281d581c5efc72544f9bf4cbbad98cfc88d8bc19b791bd04dffc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.854Z", + "updatedAt": "2026-02-24T10:49:34.536Z", "postProcessHash": "635fd92224c7fd5b241f1d3afc0bd43233cce5d41fe1e41ede881e9e5ef8d2ef" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.855Z", + "updatedAt": "2026-02-24T10:49:34.537Z", "postProcessHash": "aa4f28dec036d00942c7711873eadec1d404f823db8300f7e0e91f8bf89fe1cc" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.890Z", + "updatedAt": "2026-02-24T10:49:34.572Z", "postProcessHash": "1f84c292f9d1f6e3d268be396acaf71ce270571117a8de0762c0ea6601f307c9" } } @@ -37951,19 +38419,19 @@ }, "cd3acb5957f49ac0467d1701f39401ba1b030e1ef0c206acfee607dc2616e66b": { "ru": { - "updatedAt": "2026-02-19T02:24:11.004Z", + "updatedAt": "2026-02-24T10:49:34.633Z", "postProcessHash": "5c1105e1cad5fc9ef1b5aa6b96bdb55f587879a6616530c28c444dc649fd041a" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.004Z", + "updatedAt": "2026-02-24T10:49:34.634Z", "postProcessHash": "3f0e86837ff5a1582cbb3602c38f6338324739be687086b512e83a942d0aed82" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.005Z", + "updatedAt": "2026-02-24T10:49:34.635Z", "postProcessHash": "afea70f1150fa2da260ec8440a510fb2916cadf6414f93c2e5cdf7c564638d5b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.012Z", + "updatedAt": "2026-02-24T10:49:34.650Z", "postProcessHash": "ccae45ce412fe53dfcccc1d19066fb06f0f2560bbb947e87d7a99a1f2d70346e" } } @@ -37971,19 +38439,19 @@ "0fb41b547356b6f436429d0cf855f257dafb010e05f7a885625fcb0c5c9d75bd": { "af639a70dc49d1e6f2c4983d593aa1ebfbb63d8f5308bb046693e20ebd771ba0": { "jp": { - "updatedAt": "2026-02-19T02:24:10.986Z", + "updatedAt": "2026-02-24T10:49:34.615Z", "postProcessHash": "ff4626e009d67786671fac7c8fa7dc021b4c72165066897b567bf65fbdbad59f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.987Z", + "updatedAt": "2026-02-24T10:49:34.616Z", "postProcessHash": "a89a0399cd396dba851286d0939db5676fd7d5a7d69d38bb0dec80e620676fd1" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.988Z", + "updatedAt": "2026-02-24T10:49:34.618Z", "postProcessHash": "4822caa945616ff978b9407f6d1a3e9cf594d81ab0fb62531b99ec78d3aa1f01" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.014Z", + "updatedAt": "2026-02-24T10:49:34.697Z", "postProcessHash": "77d79e7349c2669596e2db32801d41b5e6287379a8488a4e67bbfebd91180daa" } }, @@ -38042,6 +38510,24 @@ "updatedAt": "2026-02-19T02:24:11.019Z", "postProcessHash": "a0599a0b321a3688714d7a6142d88d20d4c4cce3eb072ee684f3647de0d60ca7" } + }, + "b69cdefe27d3d6b076ac604bf0cf6ce886b98c9e68992962323d615bc7a499b1": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.730Z", + "postProcessHash": "a5adc4e651ba5c77a8ee45332fe383e6fa11625d3d3138e9562ba7a91d0d352c" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.731Z", + "postProcessHash": "6fbc78b317d79c5bfefb9ca0d406a6c2e7d6b266dfcbfee848080f54155bb653" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.737Z", + "postProcessHash": "880ffb912f4c541acee62ad3b3ea71fbfc0f450498e0ffc7a78721213461a762" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.738Z", + "postProcessHash": "1f4a0fd63558b7df55813c4053118f16d23892b3aa5850fb0be2d4172e646b43" + } } }, "24d0c9c911ed73221e135198269c3368d046b7994b57b0fb624351b888e71a8d": { @@ -38075,19 +38561,19 @@ }, "c976c4c588a9ad9f1b90fb22622832996615c11cb1ddc7d5d8d94ca2d5690e39": { "ru": { - "updatedAt": "2026-02-19T02:24:10.953Z", + "updatedAt": "2026-02-24T10:49:34.630Z", "postProcessHash": "8445cc62e150a363a575a5a13a470c9844293b812200abd1dac29dce77cae8b4" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.954Z", + "updatedAt": "2026-02-24T10:49:34.631Z", "postProcessHash": "cabf0948656725e6b6f19ebe6ba83d9f4196d0e209db7b36366bbf03f700675d" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.954Z", + "updatedAt": "2026-02-24T10:49:34.632Z", "postProcessHash": "ec87c23398b6621f3c1a15790b05878405641afda685b1b7494970252636a3af" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.016Z", + "updatedAt": "2026-02-24T10:49:34.699Z", "postProcessHash": "3b4386f0ca8670e776c995f0bbba5e09307e14577fe58d19f33966979cf3f8b9" } } @@ -38095,19 +38581,19 @@ "32982205f1155c2c2e05fe89e04c9cd20828fb0a653c7c72c7da8d61c3253607": { "641d2a22f3cbbdbb5877f4694e0f7a70c2d4d0ea47aafe7ac478509d2f4bda90": { "jp": { - "updatedAt": "2026-02-19T02:24:10.933Z", + "updatedAt": "2026-02-24T10:49:34.616Z", "postProcessHash": "b195de042e2b0bd98dcd6f434246542596cc257104a5af430784722c811181c0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.935Z", + "updatedAt": "2026-02-24T10:49:34.618Z", "postProcessHash": "d05944c91da59496aebf71baa8abdbff739352d4a8454c60c1801cbe2ad0aa00" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.935Z", + "updatedAt": "2026-02-24T10:49:34.617Z", "postProcessHash": "b66a82d162e1ce9d5b6d995fdfa8e342d910fd3258b6b052c34d64d57d85ea30" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.970Z", + "updatedAt": "2026-02-24T10:49:34.658Z", "postProcessHash": "0461183080019049f839cdf70e936d5b179f15f3d669aae193250a27a0e91654" } } @@ -38126,19 +38612,19 @@ }, "86296003488064b48670c7fa1dea340b94da850eefa6ecaf62711f1d83875b93": { "zh": { - "updatedAt": "2026-02-19T02:24:10.856Z", + "updatedAt": "2026-02-24T10:49:34.539Z", "postProcessHash": "dfd38033bf634bcbc96ad4be3768d10b2642fc74bd75119ede1d2257264e3d10" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.838Z", + "updatedAt": "2026-02-24T10:49:34.518Z", "postProcessHash": "3f50bb53498c258e82585262e07c72854903646d08ef0d6cc0ed90748fd19f15" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.836Z", + "updatedAt": "2026-02-24T10:49:34.500Z", "postProcessHash": "d2e7204aabaeae99cee4e90004ade1ccfd8f207b628ba2f6b42e63f2132c709a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.891Z", + "updatedAt": "2026-02-24T10:49:34.573Z", "postProcessHash": "d5e7dcacfffae7de6f135f9f60c92c30da0b9b2dad082214651d1169444b8003" } } @@ -38146,19 +38632,19 @@ "38b350a818493921c30933efc9a00f13c8de2b1d444f825141d01c27a7c0dd78": { "5c8a7b7c41cedb9f12aa1dfb4a692603fdc40391fd020d73e7415f0890b583d6": { "jp": { - "updatedAt": "2026-02-19T02:24:10.910Z", + "updatedAt": "2026-02-24T10:49:34.588Z", "postProcessHash": "7161afa819805e70e33c0dfe7390a157124882a669fab7d2473997bb833cb1ae" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.899Z", + "updatedAt": "2026-02-24T10:49:34.580Z", "postProcessHash": "56a5527b9e678c06e67a18ad60069e6fabe0713bc7e1f97959350b4d8fb3957a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.904Z", + "updatedAt": "2026-02-24T10:49:34.583Z", "postProcessHash": "b3126ef49e40928be34114237a27c53aebe81d1d09a27781c4aba28309daebd0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.968Z", + "updatedAt": "2026-02-24T10:49:34.656Z", "postProcessHash": "0d7609b5e324974495faaf84a8205584df7065b5040666575cffb05448206f0f" } } @@ -38180,19 +38666,19 @@ }, "b4bdfab5749d54b1de45855c077a651d3c1b00119661f829a22e6971fbb7538b": { "jp": { - "updatedAt": "2026-02-19T02:24:10.960Z", + "updatedAt": "2026-02-24T10:49:34.641Z", "postProcessHash": "438f97491089b5ef40b2f0602b701577d7557cc9b215ab3fc25949aa112acf71" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.960Z", + "updatedAt": "2026-02-24T10:49:34.641Z", "postProcessHash": "2397b4ee0df4416f769207147028eb09594a759569a64aa65ea7a067f58a6155" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.961Z", + "updatedAt": "2026-02-24T10:49:34.642Z", "postProcessHash": "46b608d04a0b2764a743985ce9c208645d3ed8f8d0d41114506101d1f6299ff4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.964Z", + "updatedAt": "2026-02-24T10:49:34.647Z", "postProcessHash": "6c3726f9b73362765a90d73b14b63cb2a2ff0c222b7217bca115a574042bbbea" } } @@ -38200,19 +38686,19 @@ "79e713eaf2edf1bc512ae5d02a7d5d250a9659ca697b83603287e03063cf76ed": { "4ae0bd2c9234eb6b17182e97f10042bb3a03df6b39a2c2156858ba7f8c5537c8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.845Z", + "updatedAt": "2026-02-24T10:49:34.527Z", "postProcessHash": "1b457a476158bb600d4941eaede3d38b429b11c8eda7b1d3cebebd3f41438bad" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.848Z", + "updatedAt": "2026-02-24T10:49:34.529Z", "postProcessHash": "af24c9e4db8cea05946a62a7fe8074a47f5098bdf90e6e5398a19dea9cea49bf" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.844Z", + "updatedAt": "2026-02-24T10:49:34.525Z", "postProcessHash": "6b68d12b2d6dff3ca788bdebe3b9964cffeeda7eb802d33d7fef58201a40a993" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.884Z", + "updatedAt": "2026-02-24T10:49:34.566Z", "postProcessHash": "187d08d40219e41a78269c1124dd0c82ca9f1eb5f6348c22e1a320f9b923cbd7" } } @@ -38234,19 +38720,19 @@ }, "dac69c9f1a48df0703ccf242b2ab41d5b0d00c1ae524c38aa088ec3c71db23dd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.866Z", + "updatedAt": "2026-02-24T10:49:34.548Z", "postProcessHash": "99a90fb020f74adb65a9ee6d5226cdedfdcd26aa2642d5dc74299a6c68f7d9a4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.866Z", + "updatedAt": "2026-02-24T10:49:34.549Z", "postProcessHash": "2059fcc97d58be47e5f1670620202c64cfbbc320042a3eb2c01feedcd56989a7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.867Z", + "updatedAt": "2026-02-24T10:49:34.550Z", "postProcessHash": "16d759d0ee249af85f123765dc9f1a3b84115f182707b66bea6de3b0c2452908" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.891Z", + "updatedAt": "2026-02-24T10:49:34.573Z", "postProcessHash": "a45bd7202dfea2eea123c7778c555d6d6eb17a10346f7cf4fff8052e4e945bd7" } } @@ -38254,19 +38740,19 @@ "8f1cbe44d3d43c4cea34fea884586e29908abcb748f98fa025ccc41b62e45d3e": { "8e89cf7d6f4105f746591f40378eb84bf4bf9932ed4187023e334efc47a4b281": { "jp": { - "updatedAt": "2026-02-19T02:24:10.851Z", + "updatedAt": "2026-02-24T10:49:34.533Z", "postProcessHash": "9abf9a96ed057dcfff971f9f044cf64c9085c801b6f1a74bb6c9ce4d51e43d88" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.843Z", + "updatedAt": "2026-02-24T10:49:34.524Z", "postProcessHash": "bb26bf3904b87f4c72eef3f112f3bd9995c0a7b33d09299c3df68836f5b37867" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.848Z", + "updatedAt": "2026-02-24T10:49:34.530Z", "postProcessHash": "91137f0c0bd5c438fe76189dc01330089b380c07d2a46a3afdfbcffad7c1b8dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.883Z", + "updatedAt": "2026-02-24T10:49:34.566Z", "postProcessHash": "b9bdeb37bee9ef9f4bc065bdc41740f21c634a75a205f6b2c5dd7224702eebf8" } } @@ -38274,19 +38760,19 @@ "a094ce3a28e694708179862da79fbac7d2795b1716246328a6d1d45989e4d89f": { "01511979759628779536c4426b3446323cd0ba908ba9e69ed46eef6c4e519583": { "jp": { - "updatedAt": "2026-02-19T02:24:10.909Z", + "updatedAt": "2026-02-24T10:49:34.587Z", "postProcessHash": "38b073df32a975ddece3f2a95c6de147db7dcf4419d3420f470298ceeb1e30e8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.908Z", + "updatedAt": "2026-02-24T10:49:34.586Z", "postProcessHash": "dd5ce7036eeeec8885024746d791841d10cfd9b5ad88ee1047e85392e95e35eb" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.902Z", + "updatedAt": "2026-02-24T10:49:34.581Z", "postProcessHash": "209d1bc68c070a04db0dbddb33a2c3a4048ee95280b06d8235fbc18bcbd9eab1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.967Z", + "updatedAt": "2026-02-24T10:49:34.653Z", "postProcessHash": "b882430f90352535fa2ba2b1bf58ccfe34b72ce468c663d050e9f18c66357801" } } @@ -38305,19 +38791,19 @@ }, "52272796a3ff10b33a617542859f14d9522e98d92a2f558892a1b3822e8ba86e": { "zh": { - "updatedAt": "2026-02-19T02:24:10.837Z", + "updatedAt": "2026-02-24T10:49:34.501Z", "postProcessHash": "848d9196b4535f01c6ea7489861e5f510dd0b2a62b4dda1024881b88aed2ac58" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.856Z", + "updatedAt": "2026-02-24T10:49:34.538Z", "postProcessHash": "6cd47760d064cc690aca95e6cc45160acebf2874e4da917730925b3ca5c2d6e0" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.855Z", + "updatedAt": "2026-02-24T10:49:34.537Z", "postProcessHash": "f348297a3ca352f04a0b2aeb1a18611e269afacc8e13af304470b8fb774b6ce1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.882Z", + "updatedAt": "2026-02-24T10:49:34.565Z", "postProcessHash": "cafc1918d0b11625c8590f39f31410f71378b7f1b1cf01fca7c28e857b401443" } } @@ -38325,19 +38811,19 @@ "b28fb4d49a614d643a46b4d31f46daf5e9fe6cda08176cd2f5e078a055407bab": { "4108560a1744ad0710588b9cd75e007435917814d8b73b2316426c9d931d44c6": { "jp": { - "updatedAt": "2026-02-19T02:24:10.899Z", + "updatedAt": "2026-02-24T10:49:34.579Z", "postProcessHash": "67cdd8be5df212eb84548d0a023f7af691ecc355e33703d1db9a6c4d2050b290" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.901Z", + "updatedAt": "2026-02-24T10:49:34.580Z", "postProcessHash": "060b0b5b62f02dfb16724e27d882a839a39c823eaa2312f7dc31d84aa93bf528" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.900Z", + "updatedAt": "2026-02-24T10:49:34.580Z", "postProcessHash": "6fd06631d31ce5a6ed9a5689ac918569689cb88b7f76cadc86fe0740e4697d61" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.967Z", + "updatedAt": "2026-02-24T10:49:34.655Z", "postProcessHash": "061540c392791b151c01b0ad90b80c6ad2a94f273df133c812539fcd22e1b0ff" } } @@ -38359,19 +38845,19 @@ }, "aed29aa437dec69f456fa92733b97d442ebf7db4140e483e2fe6171cd2e19050": { "ru": { - "updatedAt": "2026-02-19T02:24:10.864Z", + "updatedAt": "2026-02-24T10:49:34.546Z", "postProcessHash": "3e91d529e55f9ae531182cb4a295dc919dce8fe61251901eb0c19fa5c06c3919" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.864Z", + "updatedAt": "2026-02-24T10:49:34.547Z", "postProcessHash": "ae8820bed71b980030ef491873074277a15f9e2e9accdc8dd3e6aab78a203446" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.865Z", + "updatedAt": "2026-02-24T10:49:34.547Z", "postProcessHash": "d6e8fdc700a3598f4209e30797dfc2db67b8614ba1843489b8812ba1ce2cf647" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.876Z", + "updatedAt": "2026-02-24T10:49:34.558Z", "postProcessHash": "bea03556079ae48c3a49d0d6c4abe391ab4052f47b884c52113ea8239a1f1c0f" } } @@ -38379,19 +38865,19 @@ "bfdad58f0ce19b8378572771619d14adf32b34da41695f420ad03ed4496197bf": { "c5d8b4488de9c51f7fa4c711f9885ca220f45c37ba8c7062bb02813316daa7be": { "jp": { - "updatedAt": "2026-02-19T02:24:10.841Z", + "updatedAt": "2026-02-24T10:49:34.522Z", "postProcessHash": "febae966203c91d6e1bcafbb17b45060881b2aec02664bf9b1f67c117588ce08" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.842Z", + "updatedAt": "2026-02-24T10:49:34.523Z", "postProcessHash": "4a213b8d2d08522a8eb0b7d9b8db55b20c04077fdb63d1f5cfe2ad5a467cc627" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.840Z", + "updatedAt": "2026-02-24T10:49:34.521Z", "postProcessHash": "1af7813f1e042d6c048bb6b4a88c8dee221488281ecb2ff29ed317c6e7a27b7c" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.881Z", + "updatedAt": "2026-02-24T10:49:34.563Z", "postProcessHash": "9c7606444093f046e87d1634d7f5d1645fd1c38b9531dfb1ee9de189f514484a" } } @@ -38413,19 +38899,19 @@ }, "2d7561d0476ccb3ef1fc21e6405056f11a17b4930a440383d8694697be4e7a78": { "ru": { - "updatedAt": "2026-02-19T02:24:10.944Z", + "updatedAt": "2026-02-24T10:49:34.622Z", "postProcessHash": "543654583592ec6f1d408eaa89607b771a34fc711585d0da9b4b96aef8684ddd" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.946Z", + "updatedAt": "2026-02-24T10:49:34.623Z", "postProcessHash": "56592cae611f4d33580a34e63c02be5790f6aa4eeff1ee4b521b9ee2602911af" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.947Z", + "updatedAt": "2026-02-24T10:49:34.624Z", "postProcessHash": "aa0bf3f15c0870b0ba9171746ee65d718bc40f1dda5253ffa9b090024a67dfc3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.963Z", + "updatedAt": "2026-02-24T10:49:34.645Z", "postProcessHash": "38025f161f740f48a9c9f7a0d2a9b8393b49c6a3cb1e58a41fa4ed2355b31bde" } } @@ -38433,19 +38919,19 @@ "cdbd4e3a0fcbd1a9915e133e9c7749b9e313633614596b23aedac6d6da31105d": { "184622e2d0685a2859808cd7eb92c85650ed8abc39d7a38af056d81ff2c94654": { "jp": { - "updatedAt": "2026-02-19T02:24:10.836Z", + "updatedAt": "2026-02-24T10:49:34.500Z", "postProcessHash": "d22eaea1a264a0006f5a3839ab2a1aa7b702c6ddd8e3466478c1c83fd051f90d" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.845Z", + "updatedAt": "2026-02-24T10:49:34.526Z", "postProcessHash": "fde6fa809aa5991c01ee1a41e6c30880ff69158ba5625cdf40f66b7a7f6276b6" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.841Z", + "updatedAt": "2026-02-24T10:49:34.522Z", "postProcessHash": "c9226510020812202e5fedb1ad175180a09c8e1ca5aa4f3023d1d30c95f39730" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.881Z", + "updatedAt": "2026-02-24T10:49:34.564Z", "postProcessHash": "08e0169a28c845d813787fc0d5c7b320fd04b08280a1b215de62905f5e8dc317" } } @@ -38467,19 +38953,19 @@ }, "a8f594e243fea565e85f0f2923f3f7bed752ca299961f59acf0bceffe182f314": { "zh": { - "updatedAt": "2026-02-19T02:24:10.971Z", + "updatedAt": "2026-02-24T10:49:34.659Z", "postProcessHash": "34eb8603bcd54233520242a923cf7dbcdc331e27982606f2d05e87a6cc0fcf19" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.971Z", + "updatedAt": "2026-02-24T10:49:34.659Z", "postProcessHash": "3c72832f124850bc9f9a0cda35ce0f9be0e19e0c14e233a110cd0da31a162588" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.972Z", + "updatedAt": "2026-02-24T10:49:34.660Z", "postProcessHash": "ea65e125291254c3e5b65599771c21717f78af8e2914f7c45b0dd30ff8dccd18" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.970Z", + "updatedAt": "2026-02-24T10:49:34.658Z", "postProcessHash": "c79993c70c652d9026171a49befd0c236b28a5b59aadaba48f583648d7063c45" } } @@ -38487,19 +38973,19 @@ "e7ff4d7fd0bd848202048d33c9e285c0b7eaa06b86b242461c43fe7e001d1b39": { "574ff1d32ed4fa6964c51389dc9f9d35f7a76cff9623137d2922ce0856a65215": { "jp": { - "updatedAt": "2026-02-19T02:24:10.914Z", + "updatedAt": "2026-02-24T10:49:34.591Z", "postProcessHash": "dc4062784bb7da1620298c24605743681620beea13cb05797b8ee31309d92970" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.909Z", + "updatedAt": "2026-02-24T10:49:34.587Z", "postProcessHash": "7d2ba4f0083d716bc1004f4ad82a171a6953880ed3b6880f2079413003f6dc1f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.913Z", + "updatedAt": "2026-02-24T10:49:34.591Z", "postProcessHash": "bbf27d783f6285661672c9084d6ed55b797cb3d8f3ba121349b399a2a2eaf9b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.968Z", + "updatedAt": "2026-02-24T10:49:34.656Z", "postProcessHash": "733125b5259a502685db1b3ef3bf9f12db849e5878bf5ed563d43adfec3b1a4b" } } @@ -38507,19 +38993,19 @@ "e83fb55099e0c1e7efe462a3fc836fad5d3f3480534f4512599d1bb0307a952a": { "00125ab6f5435064f526a97e752f345080fe710b1445d06711d4011db26a78f3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.933Z", + "updatedAt": "2026-02-24T10:49:34.614Z", "postProcessHash": "0a092dd0d271ccc1b3e55255bea3390fc828d80e6e0218caf7c20bd1f27b1fc5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.929Z", + "updatedAt": "2026-02-24T10:49:34.606Z", "postProcessHash": "91c702cbde32af00928767bb504107db896c87125ee1902e9ae87a7b4915388c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.930Z", + "updatedAt": "2026-02-24T10:49:34.606Z", "postProcessHash": "9cfacedfe92a38f620edefee6e7c29f1f38899c1f530f2d22b2424faf2482eec" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.969Z", + "updatedAt": "2026-02-24T10:49:34.657Z", "postProcessHash": "44ee4a1469e104e02f7df7deea27f2d67847c49435459e3fa5d89ba840251e0e" } } @@ -38527,19 +39013,19 @@ "022408973e8d05cf5445cbdab59b64e8bcb0e39b91c3c51a44ce2b73d2115e4f": { "6976c8cc844f9c7b24905debc03f2230b626e14b487d48182c047ccf79713f1c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.067Z", + "updatedAt": "2026-02-24T10:49:34.753Z", "postProcessHash": "95f6fb8c31b5acd30688f66ff9aa07a59b56948f267b85df72c43363cfb35088" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.976Z", + "updatedAt": "2026-02-24T10:49:34.660Z", "postProcessHash": "2bf8904f91b8f82bb1359cfbbc63f6867a4e300da7cc61f9852f0ddf959feea7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.046Z", + "updatedAt": "2026-02-24T10:49:34.669Z", "postProcessHash": "7c40e82e875b09c17a66403b5ea5116a84599ff8529b3c26e5c6fb2c3b7ac224" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.096Z", + "updatedAt": "2026-02-24T10:49:34.781Z", "postProcessHash": "70b2801a61eed22ba868dfdfd907c527800bcc14c64248668369476c4febf669" } }, @@ -38558,19 +39044,19 @@ "027f426455e0e6842638722daa037b778ebc144d4ad338fe61f0710ec20e99b4": { "2be41a032801dbfdd8155d04445f268ba662a583888a188a0a1208a4404eea38": { "jp": { - "updatedAt": "2026-02-19T02:24:10.982Z", + "updatedAt": "2026-02-24T10:49:34.667Z", "postProcessHash": "229e4cd7aa8bb5c00afefcfff835b1b8689a11ec7e89905158f08ee605c470ae" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.983Z", + "updatedAt": "2026-02-24T10:49:34.668Z", "postProcessHash": "b8d7eddcc2531320614f46725fcba97881baa1fe40410e85acc24d49e3cda625" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.981Z", + "updatedAt": "2026-02-24T10:49:34.666Z", "postProcessHash": "8fbe1fdeae6334147d28834861b61d4db53bf23a4efeedc26a340e8a152db0aa" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.020Z", + "updatedAt": "2026-02-24T10:49:34.702Z", "postProcessHash": "205124a2f24ba436ec48dbeb90831d29f5262d996813ccab3bbd9eae24268f25" } }, @@ -38589,19 +39075,19 @@ "0819d9360d80872f0e20752e84412951fa413fcd532b41e457c8b552f0613288": { "ee4054a86f5571bd3661ca00b9fc4bb113e20c94a5b9daf823b181aa1b238cc5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.061Z", + "updatedAt": "2026-02-24T10:49:34.674Z", "postProcessHash": "fae29aa82dbded5ced1cb4cf66fcfec0d0587c8e8b6f31173cb2df18c34a0c7d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.063Z", + "updatedAt": "2026-02-24T10:49:34.675Z", "postProcessHash": "6fc443913f37003e6f792dd6eb873f1fc68870968d4d985d7347934e7fa1dbf8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.045Z", + "updatedAt": "2026-02-24T10:49:34.669Z", "postProcessHash": "90a537c116f5c3b27bfd8cf118e416f6d262259c1f3d628190919b09435bd8f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.093Z", + "updatedAt": "2026-02-24T10:49:34.694Z", "postProcessHash": "751bd6e5563ce55224f08c75feb86e2087cb5b139534356820891aa517c2bd89" } }, @@ -38642,19 +39128,19 @@ }, "8ca0b7e819a4aa2e29ffcd483e624332d0ed852d5c4bad277c62fbd16669a10c": { "zh": { - "updatedAt": "2026-02-19T02:24:10.992Z", + "updatedAt": "2026-02-24T10:49:34.687Z", "postProcessHash": "8d9b0d4c79cd96ff237fcebdea093adde4d32868cfc596264ed922a2c2a307b1" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.990Z", + "updatedAt": "2026-02-24T10:49:34.686Z", "postProcessHash": "5377ceda8b06e3f9238bcb4a0ee949170b3237afdb72f05519da7d3479166454" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.991Z", + "updatedAt": "2026-02-24T10:49:34.687Z", "postProcessHash": "7e2149d4195f484d64af65fd3bfefcd541c88ed1bcc662bc4abf98f77bec70ad" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.020Z", + "updatedAt": "2026-02-24T10:49:34.701Z", "postProcessHash": "31b5153d1ab96cfd40f60914d966950262f965ef7402a6702af077d78563e637" } } @@ -38662,19 +39148,19 @@ "2e14d7ea42f23a61da8855e77c500092cd204a036888c976b84a9a6bf71b8eaf": { "1e988897ad46c538e51b835cd9cd1cf89a4e7059611c53ec91e71868db50124f": { "jp": { - "updatedAt": "2026-02-19T02:24:10.928Z", + "updatedAt": "2026-02-24T10:49:34.605Z", "postProcessHash": "e49f49fcf74c7109beae09e15029a32597edfb1934eb1cbb7891e5f93e15b4cc" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.931Z", + "updatedAt": "2026-02-24T10:49:34.607Z", "postProcessHash": "4f90c04a07bb4e6d7c9bc15633c9f699a0251c12d3aacc96a97b2e56199e9a05" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.912Z", + "updatedAt": "2026-02-24T10:49:34.590Z", "postProcessHash": "93839c5994aef642baf4e5a6b6a4f0fe80bc680a89437b07f241efd1c130a917" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.018Z", + "updatedAt": "2026-02-24T10:49:34.701Z", "postProcessHash": "dda0812bb090efd97923278c1c7c7097a091f338a20c558874e689bc00814bee" } } @@ -38722,6 +39208,24 @@ "updatedAt": "2026-02-19T02:24:11.019Z", "postProcessHash": "a34c043bf3a923856f2c477cdc46adce5519e3ada77d9d794fe4693fad6cfddf" } + }, + "74aac196ffa0a496861d9284e9806b15c7cce48aed67c110d1f9f71121ef5e76": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.725Z", + "postProcessHash": "9a22800392d824426fe9027313da563b8c2d62dab636b564fade2ec8b5d69600" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.726Z", + "postProcessHash": "24d686cfe116916e25fd289d5daeaea90c4f533dc18b61f48b15410e8d6b24da" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.727Z", + "postProcessHash": "9d860319ef9a6498369339d70c3e52aa5a349d3f2618adef90f844b7e96ec51f" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.732Z", + "postProcessHash": "01170509a9631041bbc2cd4dc991b7d82da4067f51bf56a4cfb6a5205c6080cb" + } } }, "52ccd94aa1e934784ca02ff91c16f3972d775ebf46b09dc38022536e439186ff": { @@ -38755,19 +39259,19 @@ }, "c63626b3c29e24b1c365c6576dce06795b3559927543e5b1ea1fc715e964b443": { "zh": { - "updatedAt": "2026-02-19T02:24:10.941Z", + "updatedAt": "2026-02-24T10:49:34.619Z", "postProcessHash": "3f703e2513a3baaa8f41109ada4166745708c95427d07cf26f223324b286d8b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.941Z", + "updatedAt": "2026-02-24T10:49:34.620Z", "postProcessHash": "7fd9bd3d169222f3ae2936f1059ee996c0078c9082378aba4e9c3d96ee752387" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.942Z", + "updatedAt": "2026-02-24T10:49:34.620Z", "postProcessHash": "80b86f3462fc4e4b7fac09cdbf8ea516e7c86509c720feee8bef245f2aad9bf0" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.966Z", + "updatedAt": "2026-02-24T10:49:34.653Z", "postProcessHash": "2efaeb13dc4090093bd0a525dd9f867d491229c945389577908c9880113abbee" } } @@ -38831,19 +39335,19 @@ "592a7f7d3a8dbeda07da824c065c0da9b3e247906e6dbf77674f6a63df3136da": { "2293abaeae3fe16820f6c7c9a37b91841e60a17efff63af19cb7a8d4a0eb2456": { "jp": { - "updatedAt": "2026-02-19T02:24:10.895Z", + "updatedAt": "2026-02-24T10:49:34.577Z", "postProcessHash": "11cc1fa49855af5972a86a4d210cf82f5cc3f26dcfe96e2175b4b850c4412a90" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.915Z", + "updatedAt": "2026-02-24T10:49:34.604Z", "postProcessHash": "2a426838e1f910dc3cb228981feddd787fd4da0339835bb1e80f2c3a84ee06cc" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.908Z", + "updatedAt": "2026-02-24T10:49:34.586Z", "postProcessHash": "f8e64a40b7dbe9933ef7559a8217761265e81baf95ff9e90ada7cef139f6c505" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.015Z", + "updatedAt": "2026-02-24T10:49:34.698Z", "postProcessHash": "7f36f4a03bf78f87ef3e649f06a259fe1ef72cba1eb96da5590fbf726b070b36" } } @@ -38851,19 +39355,19 @@ "59e3664663d669e021fbd29e32b23a365ecc37fceaccac1e3c9e74f070873d03": { "664e682e3d269a460d26982803f72d705695f346f7f43cd3b62de24703236061": { "jp": { - "updatedAt": "2026-02-19T02:24:10.895Z", + "updatedAt": "2026-02-24T10:49:34.577Z", "postProcessHash": "0a955527ffeb0f35248bc8ab1f762d9542eb6e0300c7e641efda9b3e5ee97134" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.912Z", + "updatedAt": "2026-02-24T10:49:34.590Z", "postProcessHash": "29ae854900fc97a80f8e9fab195f453fed87cb261d79ff64f1841fb294c01002" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.910Z", + "updatedAt": "2026-02-24T10:49:34.588Z", "postProcessHash": "88b91752efb786425549744b4930b99397c0a56cca934ba153583a7890f9a109" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.010Z", + "updatedAt": "2026-02-24T10:49:34.645Z", "postProcessHash": "58f101c7edca5ed76896c44c0db25c61a7c96d72a27e86e5be7abf9cabd78f60" } } @@ -38921,19 +39425,19 @@ }, "acc0560325202b1c35ff6687039300f332aa6b808b6a3f7648941837ceafe290": { "zh": { - "updatedAt": "2026-02-19T02:24:11.034Z", + "updatedAt": "2026-02-24T10:49:34.711Z", "postProcessHash": "47b1292b28f5bd960e050c7df1163ea577d43873f4538973003949ac93b7bdea" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.035Z", + "updatedAt": "2026-02-24T10:49:34.712Z", "postProcessHash": "3d218191f1bd0f045667290a120b7b755efa0373006dfcef33d1c83f4a29e802" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.037Z", + "updatedAt": "2026-02-24T10:49:34.713Z", "postProcessHash": "0492719c6051ad2ed010fa2273ae6a5f629b9861fdf5b194df02500ff7b91ffe" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.030Z", + "updatedAt": "2026-02-24T10:49:34.708Z", "postProcessHash": "99c1807687566be4a5766f48db5364801ba607babe90ee3357103fa50a70badf" } } @@ -38955,19 +39459,19 @@ }, "5b3e9b247520c6ddd016616361f03fdd609bc0a11faa6b38dbfb8e5fd133a1b1": { "ru": { - "updatedAt": "2026-02-19T02:24:10.955Z", + "updatedAt": "2026-02-24T10:49:34.634Z", "postProcessHash": "33aea917b7c4d650c6067172ce8fa9756ca0ff8907621df789123c0e7f3d2438" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.956Z", + "updatedAt": "2026-02-24T10:49:34.635Z", "postProcessHash": "a7f2c367769474de4ad856dafabd6d9808ab64a8088eaf5a28b1853c17b805d7" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.956Z", + "updatedAt": "2026-02-24T10:49:34.636Z", "postProcessHash": "6246249260fd364965322ee64a9e52e7f76d9bde727b9ee4c2c9ea04af25bf84" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.965Z", + "updatedAt": "2026-02-24T10:49:34.649Z", "postProcessHash": "e44caefe8600f808ba1ec7590f0db1aaf38473c78d5426b3c578efb86e27958c" } } @@ -39009,19 +39513,19 @@ }, "8f86b16b90906a6a25225377b719eb37d1cd4bb0bf8cdbe11924cf1203a88aec": { "ru": { - "updatedAt": "2026-02-19T02:24:10.945Z", + "updatedAt": "2026-02-24T10:49:34.623Z", "postProcessHash": "92c0b6614c8baf5b0478490a28fe29872d166fea40b84089629ce08e93b502df" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.946Z", + "updatedAt": "2026-02-24T10:49:34.623Z", "postProcessHash": "6169a7393912c5b67d37e0d519316b226757a699304d4d67ada351e3b38c3630" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.947Z", + "updatedAt": "2026-02-24T10:49:34.627Z", "postProcessHash": "726286ce0433dfbfd82b13da96a866eb13b91fc4016ee40cd23fabe778d66bf9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.965Z", + "updatedAt": "2026-02-24T10:49:34.650Z", "postProcessHash": "0e3939e85f2f361fe4ec3e6bda8c009c0d2d70c9ec87e3e8d1157059649d8872" } } @@ -39029,19 +39533,19 @@ "9c50ae2540822f01de38fd832846c44e0815140836bcf8df45e61a172e36831a": { "48e37702889833007771c8e75d0ebddc5a93b178a5f5ae6c2512d72beca89b15": { "jp": { - "updatedAt": "2026-02-19T02:24:10.934Z", + "updatedAt": "2026-02-24T10:49:34.617Z", "postProcessHash": "6d43f5531bf207cb752848c0cdc32e96f2bd32c6d1cacb23a9e7597092fc1591" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.931Z", + "updatedAt": "2026-02-24T10:49:34.607Z", "postProcessHash": "bea925420923c424e27062a106a13279617ec2cbf8826d9c13ae1c15a5f94591" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.932Z", + "updatedAt": "2026-02-24T10:49:34.608Z", "postProcessHash": "0f7d00f259dc748df58c37ef9c63c0fa299ba668de14e16d9cd1c83c38c8471f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.023Z", + "updatedAt": "2026-02-24T10:49:34.703Z", "postProcessHash": "13c9a4e86e885062ae555544a707e3b7f6ed2cfc48cca4c39bc7744b1444eb79" } } @@ -39091,19 +39595,19 @@ }, "3fc9aea952342cbfe041dd3d05fcc32e3ae0a54ef2bf3799f63b0fd4ab849a63": { "zh": { - "updatedAt": "2026-02-19T02:24:11.005Z", + "updatedAt": "2026-02-24T10:49:34.636Z", "postProcessHash": "e06160985156ae7d1b4450048cdd9b74e49ece279d543b6b9b4866d6cb8750dd" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.006Z", + "updatedAt": "2026-02-24T10:49:34.637Z", "postProcessHash": "f33970429572a4eea9187b6efc9e093c20349080ee616ac27b337297fc9767a0" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.006Z", + "updatedAt": "2026-02-24T10:49:34.637Z", "postProcessHash": "8eae1c5c60b71fdd04439dc6a47d8cf85178d0c0ce610e10809746837b74db08" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.009Z", + "updatedAt": "2026-02-24T10:49:34.644Z", "postProcessHash": "9f52874059dea24c4c1599e842e21c421a0e89cbb041c9ea88363c6e3e626c54" } } @@ -39151,24 +39655,42 @@ "updatedAt": "2026-02-19T02:24:11.027Z", "postProcessHash": "2c8a7da4ef17bb21f209f2ac0e8a263b4150617a95b6be3cf367fdbf03ef24b9" } + }, + "a4cf63a766fdf18f8d47da9345921d413441367bd8e06b45ce1f0fd804b44899": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.728Z", + "postProcessHash": "34b53809d20c47292be8e9f452005b47f1059827be38288264e1a483c4dfba67" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.730Z", + "postProcessHash": "bce296d919cb01d3f60d6b6faa8695b3e4a9ebfab16596df735e753b9f005a93" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.733Z", + "postProcessHash": "aa34fcf3cad0416b661feb914dee2fda5c4aebc8f8073d41fbdc7e9e861464fa" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.735Z", + "postProcessHash": "469bcf6cc50338d79e4e00b4fcd67c9c1af1b3465bb6ed85f6877ed670d50b37" + } } }, "b1eb514e8efc1da765f03844ec981e8df30e9e90bffe8f559550b33fcb148386": { "dc959ee4adf1fa9bcf35767f2bd90be07a3522cafad54234ab37ea828c51a0d3": { "jp": { - "updatedAt": "2026-02-19T02:24:10.911Z", + "updatedAt": "2026-02-24T10:49:34.589Z", "postProcessHash": "83645f6dd3688c7886c44cf509546f6393c34025a44080bdefa2b4c8ad0edea8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.903Z", + "updatedAt": "2026-02-24T10:49:34.582Z", "postProcessHash": "6cbf24df299bcdfb32bd2be3717e36bb29b56bda2b67b093af0158c7bcb50774" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.897Z", + "updatedAt": "2026-02-24T10:49:34.578Z", "postProcessHash": "c7325519c067deed47877bded1dba29a5b88a7acd6809092a4d7aedd5735703c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.016Z", + "updatedAt": "2026-02-24T10:49:34.699Z", "postProcessHash": "10b92187bae0b3b99a335517f6dbd987ddce6d76347af20a9c44ae14be82577c" } }, @@ -39201,19 +39723,19 @@ }, "2183df05483f5f7df48bb851e3950c43a607d03b88d205385066c8f8149247dd": { "jp": { - "updatedAt": "2026-02-19T02:24:10.951Z", + "updatedAt": "2026-02-24T10:49:34.628Z", "postProcessHash": "f07061dc0f47f7823d5a85a5819c4332a302b1f5960cff38b3d5cf39541fe79e" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.952Z", + "updatedAt": "2026-02-24T10:49:34.629Z", "postProcessHash": "6a0d03268f71ef262ff679d6cd9b3db06c70951d20410992942e42630455172c" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.953Z", + "updatedAt": "2026-02-24T10:49:34.629Z", "postProcessHash": "3af6a36d6112b43ecf0a4e9cfb9dc88825db62c5b4edd76915f3f705fdc52e89" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.025Z", + "updatedAt": "2026-02-24T10:49:34.704Z", "postProcessHash": "af5df331a1231c8c0667f6e9bde7f834dfa9c4fff483a172b30b7e3ae67d119e" } } @@ -39221,19 +39743,19 @@ "c4f683be9ee704aea456e00a9bdadd74b41b2c81a61a807e96857c1248b0f095": { "696664a1a5eef3359a3250235ce385270ef743cd6d7bc089cff42a85307e3ff8": { "jp": { - "updatedAt": "2026-02-19T02:24:10.914Z", + "updatedAt": "2026-02-24T10:49:34.603Z", "postProcessHash": "6e57c99bb0c2bea4d01cc2b4079bed305e8acc4f20e2d5fa66d93cff11a7f16f" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.896Z", + "updatedAt": "2026-02-24T10:49:34.578Z", "postProcessHash": "f333fab05129c7d033d2a8a4040e86e966ec286fb880a4410991940a291be205" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.903Z", + "updatedAt": "2026-02-24T10:49:34.581Z", "postProcessHash": "0b6a798992c8574b31d609c3f47b9daa4218006cde43b312ed6248984c94dba4" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.017Z", + "updatedAt": "2026-02-24T10:49:34.700Z", "postProcessHash": "0d924aa24ab2a38b147c5f431a33ba743d98aece819d4f636051d7085c8fe3fd" } }, @@ -39294,19 +39816,19 @@ }, "17f077f1946f51ed1f984370d24d2b94eba90041d9e32f3e419ef851713745b1": { "jp": { - "updatedAt": "2026-02-19T02:24:10.957Z", + "updatedAt": "2026-02-24T10:49:34.638Z", "postProcessHash": "4f3fb2839a4ff783be575dd858c20493e1409d722097c2f6bce349abec89cadf" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.958Z", + "updatedAt": "2026-02-24T10:49:34.640Z", "postProcessHash": "3941a4dfc248dd148ac9aeaaa527904345259428d53be42506f528e852d28d5a" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.959Z", + "updatedAt": "2026-02-24T10:49:34.640Z", "postProcessHash": "b00ae9d19d56a6c309f40201e548061a87538859c92fd719ff2953e162499fe7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.964Z", + "updatedAt": "2026-02-24T10:49:34.646Z", "postProcessHash": "ec42afbd5b6e4170719895096594a7dd87ab4c07795bbaeef4f0b535c48b0af4" } } @@ -39332,19 +39854,19 @@ }, "9b400befdf0effbc6b63a864412e2a5f002dc46be3e162770982d0dcad8e82f9": { "ru": { - "updatedAt": "2026-02-19T02:24:11.037Z", + "updatedAt": "2026-02-24T10:49:34.714Z", "postProcessHash": "cb30df83ea0c3281c78cc3b94f3018b87f5c010d22d02dc3505c86bec05102e4" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.038Z", + "updatedAt": "2026-02-24T10:49:34.714Z", "postProcessHash": "287cc92b9c510379a564ae15b69ae6e4efa4e83199166ba1c6d25b449fd726d7" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.039Z", + "updatedAt": "2026-02-24T10:49:34.715Z", "postProcessHash": "cb4933787d0a8db4645e57ee612a93bcfbffec40f102d93bc782b735a416251a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.039Z", + "updatedAt": "2026-02-24T10:49:34.715Z", "postProcessHash": "d1329997e90b9afc1c0c1279f1eaedf0780b3df264c5f440772a2f359e4fb0bc" } } @@ -39352,19 +39874,19 @@ "123aeaa56592e54f31fc778623c345f09749d4e0e65e902af7d1a93337a425bf": { "f2e0676875f34dd5520562d2cd21b217af1b44b68311b6c948988adef7f432a4": { "jp": { - "updatedAt": "2026-02-19T02:24:11.049Z", + "updatedAt": "2026-02-24T10:49:34.742Z", "postProcessHash": "5c7d6b3cd3264e06d8d7812df031cf9903d7fb6806ae3e0c9c1635e715368d8e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.050Z", + "updatedAt": "2026-02-24T10:49:34.743Z", "postProcessHash": "dfca4649f757befedb12c7efa1f2f5aa52881312c7f49b06571e46d85ec75438" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.058Z", + "updatedAt": "2026-02-24T10:49:34.748Z", "postProcessHash": "f99cc87e485f33547973c03d3091f6441b2e51e37d4d74045ecb2fd73552b8bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.166Z", + "updatedAt": "2026-02-24T10:49:34.777Z", "postProcessHash": "4ad81928a6627022a628cd9c805d8987d1345a2d4ab3bde63ba6d777e6ffb330" } } @@ -39450,19 +39972,19 @@ }, "b74c10c9ff40a6fa62f5e8e54f4401a27854b812d1224e1f228491d16f5a1d79": { "ru": { - "updatedAt": "2026-02-19T02:24:11.114Z", + "updatedAt": "2026-02-24T10:49:34.785Z", "postProcessHash": "10fdc0023d9411a50149404b6939b4c606f5ed82ecbeb678275d9d759ee6f1a9" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.115Z", + "updatedAt": "2026-02-24T10:49:34.786Z", "postProcessHash": "6a90630f4b4d41336cba68215f2fea334130964ade3b4983b5e70a31a2700ea7" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.116Z", + "updatedAt": "2026-02-24T10:49:34.787Z", "postProcessHash": "75f245cc0258d7010c6a042f935407aa26be3aae69873bce1d1d49553c20aef5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.111Z", + "updatedAt": "2026-02-24T10:49:34.784Z", "postProcessHash": "118f3fd253821c4dde5079885945d342adbe986c261582476026d47faeb203e1" } } @@ -39484,19 +40006,19 @@ }, "a776c4945dacd149afd987a6273ac5899bf86d3395ae98240cf792d50e1593c1": { "ru": { - "updatedAt": "2026-02-19T02:24:10.973Z", + "updatedAt": "2026-02-24T10:49:34.739Z", "postProcessHash": "f6c2014362319aeb2e0b6dacf71f24dd68e4fcae87f431fffc633277d6c32d6d" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.973Z", + "updatedAt": "2026-02-24T10:49:34.739Z", "postProcessHash": "e26bd56ab6e10d23bdb2126c7e9b47a1c4884bd0bcb84d69b9b2ec2f34aa190e" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.974Z", + "updatedAt": "2026-02-24T10:49:34.740Z", "postProcessHash": "d38e98346b4ba197ae3f38d81afc0e5e295168cd25de5c2c30d58ff82d7958a6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.176Z", + "updatedAt": "2026-02-24T10:49:34.867Z", "postProcessHash": "34e30c54f631fde8ad84e8c0011ac317272c3c012b64d1e9af43649b10c9112a" } } @@ -39526,19 +40048,19 @@ }, "815d4a3898271eab559a7f43ac7696375da4ce6aed7381829f6d915f3c27b4b1": { "zh": { - "updatedAt": "2026-02-19T02:24:10.992Z", + "updatedAt": "2026-02-24T10:49:34.688Z", "postProcessHash": "72d3a6c353151c1dd346a35e92509705f3837638f239b2ef4aedbf9ca9e28439" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.994Z", + "updatedAt": "2026-02-24T10:49:34.689Z", "postProcessHash": "b71f15ccba66aad35377c35336696bafb56622af0d0dbcf60eb8a3c731d705e8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.993Z", + "updatedAt": "2026-02-24T10:49:34.689Z", "postProcessHash": "6d7f31d00eeb872e82377ecee3ba0fa0fb03fadf48c1160d44006bcc5a0d7177" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.023Z", + "updatedAt": "2026-02-24T10:49:34.703Z", "postProcessHash": "35a6f494c770d8accd6b3c52ab6d8dd0d25aca9c404cab7ed73de93d6eb37371" } } @@ -39571,19 +40093,19 @@ }, "73f9c3843d0911358ff3b59488898374e3507df3998b4ea56f713fa0b719ffb4": { "ru": { - "updatedAt": "2026-02-19T02:24:11.043Z", + "updatedAt": "2026-02-24T10:49:34.741Z", "postProcessHash": "e8a09e37db1ade93e977467e89b711158776fbc66e81030c530d37913b4c6dae" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.080Z", + "updatedAt": "2026-02-24T10:49:34.761Z", "postProcessHash": "c775737191ce027011a36fc5818ffb92a76b3f3c87f9143e2ade3f3944baaf03" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.080Z", + "updatedAt": "2026-02-24T10:49:34.761Z", "postProcessHash": "00908cec07b1161ace37aa9f37e107a1ac8b67d3fca14f377848d02772970dd9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.173Z", + "updatedAt": "2026-02-24T10:49:34.780Z", "postProcessHash": "30e2e467f21659848dd14983f3deab7b85f1abb128dfd832bbcc0f28807a19b8" } } @@ -39616,19 +40138,19 @@ }, "4bba536063f70f6c1d5fc9daa0b7dd89e76ddb62aec38d0c33bffab465f870ae": { "jp": { - "updatedAt": "2026-02-19T02:24:10.998Z", + "updatedAt": "2026-02-24T10:49:34.690Z", "postProcessHash": "ce33e2d9a1a42d3df75c8f96234a581abf3c3366b6574302bc11bf37e43e01de" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.999Z", + "updatedAt": "2026-02-24T10:49:34.691Z", "postProcessHash": "aa3d5b4f43c38dce08ca67f855b51db1b6eeaade7c673bde05541a66ce73ac52" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.999Z", + "updatedAt": "2026-02-24T10:49:34.691Z", "postProcessHash": "fde2bd67f8491760b28868d409b351c549f5951247ec35289846e1605d066e7c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.022Z", + "updatedAt": "2026-02-24T10:49:34.702Z", "postProcessHash": "ab5eb0f208d2ee055fd6eb67d4957bcf94ff3d5febdc81a875c4101fcc219122" } } @@ -39650,19 +40172,19 @@ }, "f8bdbd53bca6538f858acc151dfed93f2b81613fe33b6e4e9439b3e5dbc4f0ad": { "jp": { - "updatedAt": "2026-02-19T02:24:11.000Z", + "updatedAt": "2026-02-24T10:49:34.692Z", "postProcessHash": "6a96543be452ef8ba10154c87862d55f8fca6d617173c0c60c77af3eabb7e647" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.000Z", + "updatedAt": "2026-02-24T10:49:34.692Z", "postProcessHash": "382769c94b85b7ba959bd47a29b286ec2988bb798fe9e7ccf2205e0c943ace04" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.001Z", + "updatedAt": "2026-02-24T10:49:34.693Z", "postProcessHash": "b242362f1823ee8fd83965433d443d53558278600c5f4144397b39baae9b5a4c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.015Z", + "updatedAt": "2026-02-24T10:49:34.698Z", "postProcessHash": "c2ebdb5ff71a5c5c6e8dec923912dc5adf9ec160ca56a1e5cfb85f35ac023e4e" } } @@ -39670,19 +40192,19 @@ "6127321ac3891bee9f802edc9f97eeefd28aa0d40a647d0fa4cda55abfce14ff": { "d3499050f8c6e7b0a1bd1cf5e8bb8e940304335d153d81d9717b6c21c16c2985": { "ru": { - "updatedAt": "2026-02-19T02:24:11.058Z", + "updatedAt": "2026-02-24T10:49:34.747Z", "postProcessHash": "5ec2f723835232be280f69a0f26fa902ae84e3d59c6741e72a6c956e7c65b890" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.052Z", + "updatedAt": "2026-02-24T10:49:34.672Z", "postProcessHash": "6297c0d328adb1d99b91002342372d7762559d8fe21dd56e94bbc49e613a36d4" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.979Z", + "updatedAt": "2026-02-24T10:49:34.664Z", "postProcessHash": "1fb0ca862b722d3788ab62a628f4693449a8ff0e3d6369862ab484841e351070" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.097Z", + "updatedAt": "2026-02-24T10:49:34.781Z", "postProcessHash": "c6596127ceda149dac3945ba1c4a33a75b37b29885ddbdb4342468600de2da6b" } } @@ -39690,19 +40212,19 @@ "650d9f2cc9a940fe5940498f6e144305c01bbf36d3ee2dc4bbd8968c9f8967c6": { "17de42c037b1a363aacffaae4c43b7e7c471839ed6cecff05326ffc1616e8599": { "jp": { - "updatedAt": "2026-02-19T02:24:10.977Z", + "updatedAt": "2026-02-24T10:49:34.661Z", "postProcessHash": "89cd8247cef89712018f098aa3b652e9c21d2eccaa531db26646fc18bd3d0279" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.990Z", + "updatedAt": "2026-02-24T10:49:34.684Z", "postProcessHash": "09b4e9ff5befe366621b72de7d69063aa7ace7562730c1026722800fbb2cfb37" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.976Z", + "updatedAt": "2026-02-24T10:49:34.661Z", "postProcessHash": "209babdc7bf70d105d264153734f754aab380d9bbb917097717d7afd5df20d92" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.012Z", + "updatedAt": "2026-02-24T10:49:34.695Z", "postProcessHash": "0499cfb9fbf1be1009ccb24b0361e2e98b9b2fd6a23695a915d89a8970187407" } } @@ -39725,24 +40247,42 @@ "updatedAt": "2026-02-19T02:24:11.014Z", "postProcessHash": "9b8d0df292c557b9667fb9b2eece6c01abb7398860e3142845513d665c06e6fc" } + }, + "1b9d2ce51781a4fcbd8e02af0c3072d8589cafef608ced260ac1841520cddb27": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.723Z", + "postProcessHash": "872c394a5d14f6b0df0418c24f05a41845e303dc3d764f16333f1850e3dbb137" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.723Z", + "postProcessHash": "5807564397e381b695aa5ccc949fa89cbc732e71f44f751e4c09daacf6966f72" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.724Z", + "postProcessHash": "72c655927faa38ebcfc59d75cabac4b4bbdd6a91cfe365f601a2dff8d2685e67" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.725Z", + "postProcessHash": "e8439c9d81a963b8ef02bc9ede509dbf00dd205c41485178ca0e12b36fac81ba" + } } }, "6e6ac7b2f451e9b54c142890ff01e2a80eb23b0ffd7b7bc15c34b94f9502bf82": { "29539529c90b3e9ad079683127ad89b005ba24b80d2ef9588cd0a3e6f7d4d74d": { "jp": { - "updatedAt": "2026-02-19T02:24:10.982Z", + "updatedAt": "2026-02-24T10:49:34.667Z", "postProcessHash": "02dd4bd801f909aca04fe1d489cd3093fa6fbd912e9b6843e9cd5da76d06a883" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.981Z", + "updatedAt": "2026-02-24T10:49:34.665Z", "postProcessHash": "2079d096555279c2be2f811f86f4eb79aef11d667717b50bb3859969216972c0" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.977Z", + "updatedAt": "2026-02-24T10:49:34.662Z", "postProcessHash": "6a28b41cf900fa6d938434ba9d0ce1259debdef21fe945f39051bcf9231b1697" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.029Z", + "updatedAt": "2026-02-24T10:49:34.706Z", "postProcessHash": "c3c04bc3acbc7f6fc66013fc00b4bb6aadf97dfa950e513bd35e6569e9f03c33" } }, @@ -39761,19 +40301,19 @@ "6fb070f1b02c940c98234a8aaec25f6c6469691d330c72faa861b07763ae4725": { "15b7711f236d6afbc710de3e96b101bbdf132f753a46229174d84f106446a055": { "jp": { - "updatedAt": "2026-02-19T02:24:11.073Z", + "updatedAt": "2026-02-24T10:49:34.757Z", "postProcessHash": "06035caab72a59fad85abaa59dec5b4b0aeacc2e31f6b730ff0225949ff26584" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.071Z", + "updatedAt": "2026-02-24T10:49:34.755Z", "postProcessHash": "54d506b39b3e3ef248eaf8fd6f9971098dfaaf0f37c854205733b123b85932f9" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.070Z", + "updatedAt": "2026-02-24T10:49:34.755Z", "postProcessHash": "613e132c6af5478f4fa748cc0df7ee6d57caa13d21fce85057d6582b9b75c829" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.112Z", + "updatedAt": "2026-02-24T10:49:34.784Z", "postProcessHash": "a952fb9db7145f0e7731d9a7f9d3adccdec2932dd4ba0de84e9d368f0c37f28a" } }, @@ -39818,24 +40358,42 @@ "zh": { "updatedAt": "2025-11-29T14:26:31.101Z" } + }, + "2d91a5ffc9b1f45a5561e57d32bfdca291532cd145bd358add656d2a4e6b56ff": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.808Z", + "postProcessHash": "aaaf18b057c11e47efd432ac2d45afa2f9e94a14b3508ba72fd253b1c94a77c0" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.810Z", + "postProcessHash": "954f580439e50c3a5194c323fb39e59102e83d970117b88eb9a9ca2a81c545a5" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.813Z", + "postProcessHash": "0976862d4de9fb4a5b51738cc2a5f8659d00a91ea794241c0ba4311434a244fd" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.818Z", + "postProcessHash": "671d4b9bb7608dec856821c4fd9b209be69d73a1b778fd33ad9ea48038d2c9b7" + } } }, "9fe9b6ce42a6ad2189bab2836ba94c9f99886df803b81bdc3dec38815dad7c26": { "2a6580470ab1e345d52a27c96f69c6e94d335299083f18b83f4f16b1913c6ee0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.076Z", + "updatedAt": "2026-02-24T10:49:34.683Z", "postProcessHash": "88ee06279ab703eca27a6031f57e265ea4d06a5660046bcbd9b2ff678975f833" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.074Z", + "updatedAt": "2026-02-24T10:49:34.682Z", "postProcessHash": "f3a63ca06f0a9c0860b05a52bac9065871ba1aeefb09b80210c9307b89ee3ca4" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.075Z", + "updatedAt": "2026-02-24T10:49:34.682Z", "postProcessHash": "4ed3d857961e6655df58e02f96b5a9d2577d0e85e9dc7be5852e393950f2a626" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.096Z", + "updatedAt": "2026-02-24T10:49:34.696Z", "postProcessHash": "572bfb176d0e089548651e9f1b2408ccd26778e456acb07126a072168249dbf3" } } @@ -39905,6 +40463,24 @@ "updatedAt": "2026-02-19T02:24:11.024Z", "postProcessHash": "dd1b5baaa03b04fd97d245ea434a24a419d75084f17814361de5525474967876" } + }, + "d7ba7a8c6f56f65e668d8a3341a67f1b2bc21ecf2ffd786fb92fee93b7b12486": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.719Z", + "postProcessHash": "340a839127327107f1ff4633bfe346adc3f9db94e75115b5b44ae03cbb1eaef3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.720Z", + "postProcessHash": "d68be27d3ed850b8d2e2e74cf7ea62ee82d1754afddc9328433d5b5e24e1738b" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.721Z", + "postProcessHash": "b199f577bb60cf6f7131293aee170025a3c5be58510a02b4e49edab5f64b5462" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.722Z", + "postProcessHash": "1716c6da7391758e5a25b1a3c0508426094ec740589576702676ec89b0d72347" + } } }, "bca19f630581f8646ca04081842168a1d45e2ea5896cbdbab33c160594c627c3": { @@ -39949,19 +40525,19 @@ }, "0a358ce60b250c8120e5ea8a298e7867ea79010a6ddabb8f8f9163a671f15c19": { "ru": { - "updatedAt": "2026-02-19T02:24:11.041Z", + "updatedAt": "2026-02-24T10:49:34.717Z", "postProcessHash": "6d45cbde5595d5ae58118a1f117c561480ec3e473a8ae642fd11b917958cd085" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.042Z", + "updatedAt": "2026-02-24T10:49:34.717Z", "postProcessHash": "0c27d4b1fa375e684fb21f9e456d75095c78378288d05727e9e04673a06c7d1b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.043Z", + "updatedAt": "2026-02-24T10:49:34.718Z", "postProcessHash": "c91f6406e6bd0b4b3c50af6dad10fc5fd5d1127f9a6e8958b7724cfbb302bde9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.026Z", + "updatedAt": "2026-02-24T10:49:34.705Z", "postProcessHash": "a1dd62f007af1e83ce767f9541747d8707dc7cc4d513e1b6335e4f2d4c0f6641" } } @@ -40020,6 +40596,24 @@ "updatedAt": "2026-02-19T02:24:11.021Z", "postProcessHash": "2a33e4abb37a69673289cd3bda792b9c0802b0718f4e2178e413aae91d2af92b" } + }, + "0e7e58837e81a6eaabac2008a6c1141d6a04f439fde269e6b46620796dc60533": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.729Z", + "postProcessHash": "e91e02436cb2f17c6eb17c496f43f9db35f016625f5ac90b7e60ba2c7e683a10" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.734Z", + "postProcessHash": "770aeaf98e7cfabe7ea0ba39c802a76b1e3292ca744e0f1821c41dd806fb5531" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.736Z", + "postProcessHash": "75c8c591ed86e029e3187ef0675a0ee2fdf789d55c197f69254c8b3061882cde" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.737Z", + "postProcessHash": "301b9577232d9fb85d13984b6badb4ed729df918616e486609cee15b94a14821" + } } }, "cf53b09fb0c34e1e63e41a10d6bc7a6922adc30f419e11b91aa28c4b6550ff94": { @@ -40064,19 +40658,19 @@ }, "98a809f1fa57654a435c18870405bfe4a00a97468f6e3b4caee7f6b2bb9763d6": { "zh": { - "updatedAt": "2026-02-19T02:24:11.031Z", + "updatedAt": "2026-02-24T10:49:34.708Z", "postProcessHash": "264debef064876577763050c443f5c1bdf09ad3dbc9587de3a34b92f75801c4a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.031Z", + "updatedAt": "2026-02-24T10:49:34.709Z", "postProcessHash": "8a5db1a61ec3870a59924b57ead7db235333d569b4e77a8d2590b9aea73dcda2" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.032Z", + "updatedAt": "2026-02-24T10:49:34.709Z", "postProcessHash": "602d506e6d0454b0ae3e51622dd53ac975cac38dc6c050942d98be9198005620" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.011Z", + "updatedAt": "2026-02-24T10:49:34.695Z", "postProcessHash": "bf4f8a3719e1a0017172c3a7c33cdd5805dd2afcc2ac66b148a958c498fa6709" } } @@ -40084,19 +40678,19 @@ "d85a58d074e13f650fae5bc844462e82b569a15037cf4beb81c7fc31334227bd": { "50add6bcb155ef82dcd92ed736aa66054a116b26b9fb26de8e9ff13cfb7af34e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.979Z", + "updatedAt": "2026-02-24T10:49:34.663Z", "postProcessHash": "210f6f60d43d6e276c49a6bd781aaba155f2a543a3a3280aee8220b386c3f3d4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.986Z", + "updatedAt": "2026-02-24T10:49:34.681Z", "postProcessHash": "a1f56104060f478c6040b70233d40c2bf3cebbc9b8e2f79b177f5e6ac365f0f7" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.985Z", + "updatedAt": "2026-02-24T10:49:34.679Z", "postProcessHash": "6d5b20a748f39d2836e865342d4ffed5ce312f458ffb9f47be150468929ab123" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.010Z", + "updatedAt": "2026-02-24T10:49:34.694Z", "postProcessHash": "49cadacee726c2bfcbd6265ad07ecf01662381b91c3e2a2b4ff98d69d55612d6" } }, @@ -40115,19 +40709,19 @@ "e014a958a8137fc765da9797a531683aae1075024018fdd2793c345a9ea2837d": { "a3692c0caea63dccb572f30b9f84021d898cc0b99e942bba8475e5cddd746e9c": { "jp": { - "updatedAt": "2026-02-19T02:24:10.978Z", + "updatedAt": "2026-02-24T10:49:34.663Z", "postProcessHash": "3077c4f3b85b07c7e725dbd8feeee93f21c8853fa12c9b09083389ef0909d1a0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.984Z", + "updatedAt": "2026-02-24T10:49:34.671Z", "postProcessHash": "3b0a1abd0e0e86d8eca4d6a857b6a8ad9facf6fbd4786f8b466dce1e3bb10f70" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.984Z", + "updatedAt": "2026-02-24T10:49:34.673Z", "postProcessHash": "e73fb8cd2e3184098e1e750984a98b82a36f7b5caf1f0b53a7736dd93fe05f07" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.013Z", + "updatedAt": "2026-02-24T10:49:34.696Z", "postProcessHash": "bd7c815dd963e1794480dd831b182239a9e863c468883fbb480f3ff6fa435543" } } @@ -40288,24 +40882,42 @@ "updatedAt": "2026-02-19T02:24:13.747Z", "postProcessHash": "b8a94c71ff14e5a458c1ca75c36b801a134e930e90214067dd940f6ef21f135d" } + }, + "18783c54ab7237972d27b7a042fb87e3571245c993f33dbeca63c609acdfbf71": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.819Z", + "postProcessHash": "31758e3dd896ed3dbfa79d170c724c12a018b4bd4bf02b1c7f6c60ad4dace670" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.821Z", + "postProcessHash": "0b60058d9be62b28d732e48325acb67ec7d37a651a29363bc742192366823086" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.823Z", + "postProcessHash": "7b2c203e6ae3630e36b98f48c3551b2494ad6eda5812f0022f6ad5c762ec7994" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.824Z", + "postProcessHash": "319e284cad7bc2a0cb782fca7d2db9bcfbf7f5697a536127b73fbe58d685f2a1" + } } }, "02fec6942d40034d750c654d9c675a575f12b3a87ec90a6e3786281d265a9b29": { "f8983bc303673b5b9632c8a2f95602dd3f90803ac3e493ee4ff7244ea4b98790": { "jp": { - "updatedAt": "2026-02-19T02:24:11.135Z", + "updatedAt": "2026-02-24T10:49:34.841Z", "postProcessHash": "e2f62c3f302d4a958f1ec387c11b56c89123a9dadaaee9836bc727a7cb1f9332" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.136Z", + "updatedAt": "2026-02-24T10:49:34.843Z", "postProcessHash": "9b50d7b0388b25607f56c738408361f24763a2dc9f5668857d51b16b007d5738" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.133Z", + "updatedAt": "2026-02-24T10:49:34.838Z", "postProcessHash": "cb0fa450ccff5f7271b12dd84d2db8702bb64e58016fd6b8bb828d6e393437f9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.173Z", + "updatedAt": "2026-02-24T10:49:34.865Z", "postProcessHash": "cac4f246fa978f6458e47021a21490f7fccea1f2730288f197899c975409b37e" } } @@ -40313,19 +40925,19 @@ "0393512198efa57d46b32a113a35375ccd26518fa34d3bbabef4214d4fb8b53a": { "8103e61160aa52995bd2806ebc1f5871330feb5a4b2c8de0e9221fa8a70d1ac3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.127Z", + "updatedAt": "2026-02-24T10:49:34.831Z", "postProcessHash": "f0e5357dbcc7f0709f4715352712018df43592839c790ea2e4671d84e1e5c63e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.136Z", + "updatedAt": "2026-02-24T10:49:34.843Z", "postProcessHash": "d2827cab6e29f3a532c173ee67ef4191696b9c7e4977a99bb5d8d069390d6eaf" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.127Z", + "updatedAt": "2026-02-24T10:49:34.830Z", "postProcessHash": "f074c8f793b44f742cd8b69350aaba2e2f019389de282a751bb22b6abc2de8b0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.171Z", + "updatedAt": "2026-02-24T10:49:34.863Z", "postProcessHash": "916b1e7d5054f8cda1cb2eb6a7a120470e59b9cfdbb16effabd227416fff9718" } } @@ -40333,19 +40945,19 @@ "0c5a65f577c71fbc834405efc189e3c50da0f84a64b7f1b1ba76d9fa8e7a3e9c": { "2d31634c588cb2805bebfc13a4cefde978ae8d078f32a88954c1ee076a081d1e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.061Z", + "updatedAt": "2026-02-24T10:49:34.750Z", "postProcessHash": "7ad80997419bc99269c87d339125c1f801eaad4d596aa51c52aa607d1029892d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.057Z", + "updatedAt": "2026-02-24T10:49:34.746Z", "postProcessHash": "7130b3cb12d1747b697bffdcb9468f97295e7ee9a258fc2a6532a4e231906564" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.060Z", + "updatedAt": "2026-02-24T10:49:34.749Z", "postProcessHash": "7ee79d07ff77ad0a06a5d07d453d46e000e4619862e77ef6868eee13708df2c5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.174Z", + "updatedAt": "2026-02-24T10:49:34.865Z", "postProcessHash": "64d855838ff66f605655f1c16aca7a286f1550aaa95550c41d264211f376c1c1" } } @@ -40364,19 +40976,19 @@ }, "734cd9155fefd740d8d08b0c076d7ff45e66e547c017603481aa8c2733e38771": { "zh": { - "updatedAt": "2026-02-19T02:24:11.121Z", + "updatedAt": "2026-02-24T10:49:34.825Z", "postProcessHash": "39a1b28961ae449964d2a326e86ffe86aa357b5389391eebd69ad83fb513be8e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.121Z", + "updatedAt": "2026-02-24T10:49:34.826Z", "postProcessHash": "80f43ae785ed9cd8ffa7eafbc2fd488397d8623ba0097351bb4a62f478ca1d8d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.122Z", + "updatedAt": "2026-02-24T10:49:34.827Z", "postProcessHash": "82cab9f7eae9846e347e4490a32d69675ee5c5a3f0272ec10c5cc10d618d8dbe" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.233Z", + "updatedAt": "2026-02-24T10:49:34.860Z", "postProcessHash": "33d88eafd4876b61eaf2f3cf7ce98e2a3f8f1a47c223dceb8ced4183ceec2d26" } } @@ -40398,19 +41010,19 @@ }, "7cb57229fcd93ba3029c05dd24dfa47fe36aa60c804c035d0694af965868cd55": { "ru": { - "updatedAt": "2026-02-19T02:24:11.185Z", + "updatedAt": "2026-02-24T10:49:34.873Z", "postProcessHash": "1642a32446be832fa9680c7ba68d2d92531ab7ab02fddf006c7b443e0cc2d205" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.185Z", + "updatedAt": "2026-02-24T10:49:34.874Z", "postProcessHash": "e6a864144b245f8962955f18cfa443d8fed788e3e26b95eaf3dfc77c6b922f11" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.186Z", + "updatedAt": "2026-02-24T10:49:34.874Z", "postProcessHash": "842b0bcd40f2d741acd74aa6e8c68989db925bdbadd8b8230460a63bbb0667d5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.175Z", + "updatedAt": "2026-02-24T10:49:34.866Z", "postProcessHash": "0f68454d174dc1154adbac41119aaa4dcfbb578f53e2a453c5f541b6ecc8dcf5" } } @@ -40472,24 +41084,42 @@ "updatedAt": "2026-02-19T02:24:11.110Z", "postProcessHash": "dca5ba6783c81a579914c64d2a1e4e6c41ba876dc44dc90a923ee3a4b8b4e24e" } + }, + "3e344e7347ed2a5035cb52e37440e0ef65e5a4e04c19e9d9d07bfef9bf5f03cf": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.795Z", + "postProcessHash": "6af1807896f1755eba39a9969d39f33e1615c417abda2d3f22947b042f6a6c9e" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.805Z", + "postProcessHash": "cf6457842f2758e9ee7f6b1d8b5f648e1dc2f0d697bbf843f143b429b69cd466" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.806Z", + "postProcessHash": "55e07290792dd9f439a565cda5f42678f955a8e258256e113f1e89bdb684b68f" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.813Z", + "postProcessHash": "5a090c656be49079ef1ea9ef3e08cb018e60d68d379815a4d74afbf798141b63" + } } }, "3e1a6a2d9604853fec0f6b9c21e1534bc36ba5880d4042f71f1d9a03ff9e0c74": { "50a43ff5465e5ed3b333a2938abb5b5a0fe5d616b29d9f1176535339c755b45f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.052Z", + "updatedAt": "2026-02-24T10:49:34.744Z", "postProcessHash": "0468b442751c12fcac21b47b633d7281d1922cfdfc6f6af62bf8c34f33377639" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.049Z", + "updatedAt": "2026-02-24T10:49:34.743Z", "postProcessHash": "dc82c9fb311d1c8e27f9f52837af9e268a25c8a1a8225d1988e57104883049d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.054Z", + "updatedAt": "2026-02-24T10:49:34.744Z", "postProcessHash": "7665166260955aff9dd4710e7ab20731c7b9c5d16d68e27b03eb9077aecae5f1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.168Z", + "updatedAt": "2026-02-24T10:49:34.778Z", "postProcessHash": "8e95e0d7b1e1764cf0de7d7d1edd3edd7753d247bf318f0b5f6d05a11827d0b5" } } @@ -40523,6 +41153,24 @@ "ru": { "updatedAt": "2025-11-29T14:26:31.098Z" } + }, + "34b076d62fed941751af9b47ee9ad675a034c4e230eb78cba2c0019cc65bc86a": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.794Z", + "postProcessHash": "aea34c11eb48aa2914aec767f5ca79e7949eff30948e5ca14c9517c38a9321e3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.796Z", + "postProcessHash": "03fc130e54d4821ab316d291c539e2793c6c179f0006d6ac03b0912d11b845d4" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.807Z", + "postProcessHash": "1dd2c22b9c828dc974209cbe2aff3c86d4d7c699346068eaaead51b1c53160ee" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.807Z", + "postProcessHash": "ea629779a1878f8cd71cffda376150d9e97a6088ee3f5e40997845573919f380" + } } }, "5be58ce97a5c915ff2d4f6bb0a603580ec8a37cc97e4e9b54ce41df65adbfd1a": { @@ -40624,6 +41272,24 @@ "updatedAt": "2026-02-19T02:24:11.109Z", "postProcessHash": "1be7932160a98a825bb6ca0b87bee703d4680f3c68be9cfbecd53d647ce7a304" } + }, + "683275737d4a26e0715023536531bd3fe340dde60654b8bb9b3f8d175a1fc615": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.791Z", + "postProcessHash": "e03a14599a77a9be35f1dedc65c4835e30a29c62681345af5861ead4067bb426" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.792Z", + "postProcessHash": "6f2379630a7eee52193dd190709923a01f091a8c8013a7d5c9267f1c097edaf0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.794Z", + "postProcessHash": "144c17383a091a5997f27ef951a29b491e04b659f5d056380e1c0a1a53fa4f59" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.811Z", + "postProcessHash": "c0c8bea0b941338fa212bcf3d31f036d67589635c64437f837ba7cfd80b9c240" + } } }, "5eb08e96fd1bc79722d094e6a779abcf8a842d610d831653012ca3687bc9f9d7": { @@ -40655,6 +41321,24 @@ "ru": { "updatedAt": "2025-11-29T14:26:35.855Z" } + }, + "42eebaeddbaf1e482c6fe893a3d64f65dd1b708ef699aee69931ebdacdb2ff38": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.884Z", + "postProcessHash": "3cd47d35db132fd71ae20ddd3c9fb5c0ce7d7ba705c75ba1deea83cc8700f754" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.889Z", + "postProcessHash": "c0987e39bb7a8c3b6dc81cee907b5658345148cc98cb150de2e59a8615fdaba3" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.890Z", + "postProcessHash": "3a707eee99d05d50d7db8461ded92e3c20f0c92a350198eccb49cc77ab3a169c" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.890Z", + "postProcessHash": "67e43400f48ce89b2474872c5d5ca94f6a607640d2532b2d97877db25119b1f3" + } } }, "86002a1712dd0604dc6572e5d62e8b5302340810c0d6fb2d6a5457e65c731ba1": { @@ -40738,19 +41422,19 @@ }, "40c2b8550ef29bb87dd8b80a2478e4b9e1cba0cfbb156d18bd230e71ce7e4395": { "ru": { - "updatedAt": "2026-02-19T02:24:11.055Z", + "updatedAt": "2026-02-24T10:49:34.745Z", "postProcessHash": "a73432fe63298b24a9d7e82196d82ecd5f966590643adf6488f2e3b384113c1a" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.056Z", + "updatedAt": "2026-02-24T10:49:34.745Z", "postProcessHash": "80d0b773ac76ea90476610a98e8eec58defe22c305b25fb7678b22548926b366" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.057Z", + "updatedAt": "2026-02-24T10:49:34.746Z", "postProcessHash": "73b812326d561a5bfd2a8d5c066de797ba6a08b4d11799fed838d33b0cf44f51" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.179Z", + "updatedAt": "2026-02-24T10:49:34.870Z", "postProcessHash": "d6dea4d9c573c9a3a691e4dd243f0331861c45f9a443258164e4ba1388145058" } } @@ -40798,6 +41482,24 @@ "updatedAt": "2026-02-19T02:24:11.175Z", "postProcessHash": "1cda9d0271d3dcac55d0594c265aeba992ddc528d8b88ec7f1690458ed113bf2" } + }, + "0f6620d0c4b6f5df43598262e05ede49b8287be853c329a0173183c1efdff6ea": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.812Z", + "postProcessHash": "5e52ebf98c9e9d2d510f448eedfe46d79d850d90bd526ffeb1ba3d82037f25d1" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.815Z", + "postProcessHash": "12c904a64542c07459940d2e39f7c4e5857b0df7721ad8828f7bab460c894805" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.816Z", + "postProcessHash": "881104a8e72b1a7993e7fb1dea1c5c2a01c8685f3326dcfe66b52711e26a4d71" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.817Z", + "postProcessHash": "d7d33ef7e282b888918edc93902107bad1bf24332dd6221775cb90768da96924" + } } }, "98a2ade41bd4731a099f797edd596fa78793203056404b35f51d527b8f16a36d": { @@ -40843,6 +41545,24 @@ "updatedAt": "2026-02-19T02:24:11.176Z", "postProcessHash": "2f8e6e4332131decbe1311746d5b458d4129ddb1ad51ce57ede38e810499efcc" } + }, + "3fb4017ad6dacfcae665ad6090ffd63b492a514119fb52f5f77fc483a8a83735": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.792Z", + "postProcessHash": "efb21be201ebab6e68987830210e7be34b4fe443d5f7c99dde94d3f82d840dd7" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.793Z", + "postProcessHash": "47c4d7994523d2213cdb7df13a2a3fee3af88c6fa4216a2f9eeafccde7345fff" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.809Z", + "postProcessHash": "1a651e57a63578c5fbedc01b810f86b12b5a0473a6d0705fc74045000050195f" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.814Z", + "postProcessHash": "cbf9d9f6ff2954ebb2e7682062aff84d1dc7a89743dfaf9d5d594d0675fc1c4f" + } } }, "98c18fb7bc391069017a8197ca9b4b5c5a8218b2cc79f1210a3aba08ce470c6c": { @@ -40891,24 +41611,42 @@ "updatedAt": "2026-02-19T02:24:11.184Z", "postProcessHash": "a5af15da4fbf78b1a4b0c73a5d0d7e6d634f03f6e60578e777c68ea58190b948" } + }, + "75ee43bad7ee2fce777d86da09297a6468e309a557d2fb07161f016013b671e4": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.883Z", + "postProcessHash": "ef653f4e2554a2143965ec982dfe0e37ccf0439eccc7c3e317479ccce8b2c286" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.886Z", + "postProcessHash": "d11ac96019d592f9981c5956a0d5022b7b626da84ac32d2cdae03e22b88bbf53" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.888Z", + "postProcessHash": "771ebe90bbfd02e42262f2a07e89867e081873a6c3d0458ef4c4f10975b85d00" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.892Z", + "postProcessHash": "9b77dbe8ed0fb736b5e0c134df1a8101b8459de1b3dcb9948d028aac7cdb42df" + } } }, "a005818ddc766e865af1ed1831655cacf269df57fe20666970c25aa1d089714e": { "a21353177e0617a8a2423d2339da6a2715dd92734a60da91f44354edb7bb6df3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.072Z", + "updatedAt": "2026-02-24T10:49:34.756Z", "postProcessHash": "85cf0cb8b4c6637514822e86dc23b8e27ed572614bb1cf883359cae9830616c1" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.054Z", + "updatedAt": "2026-02-24T10:49:34.672Z", "postProcessHash": "4da67fab36f150f4a4a162b1995dde837f1d54b72d88cae6e0f88dea50fa963d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.074Z", + "updatedAt": "2026-02-24T10:49:34.757Z", "postProcessHash": "79b6eb570c902f3dab49442ee3ccf128e3129f1f9f3d0c47d1176038dd6d8d27" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.097Z", + "updatedAt": "2026-02-24T10:49:34.782Z", "postProcessHash": "bb7cd2266dd0c6e4e7afe88aab46ad93a0fd371feca33bcb3392dbef92315328" } }, @@ -40927,19 +41665,19 @@ "a5f04cc970babcbd17a73219fd4d3f1d299602d839f96c355b2d5ca53d5cee5b": { "23193e28103b0087a2e3c305ef54301cdc3541ea5b77ce29af8eb04a17fa6f4e": { "jp": { - "updatedAt": "2026-02-19T02:24:10.980Z", + "updatedAt": "2026-02-24T10:49:34.665Z", "postProcessHash": "247775d8aeef51f1087074bdc80144e7f50b3631fd156e64ffdb1cc63acccd6e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.048Z", + "updatedAt": "2026-02-24T10:49:34.671Z", "postProcessHash": "a882d52a8f56200ee98e3698249fa75680c6641434dfc746cb8703a3752864ec" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.065Z", + "updatedAt": "2026-02-24T10:49:34.752Z", "postProcessHash": "71b68edc04029fc148cc015a3406aec74f65520c82f4c75b9e07f75c44399702" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.093Z", + "updatedAt": "2026-02-24T10:49:34.779Z", "postProcessHash": "7ddbcc5530286179f47ac4e4aedcc7ccc7b5efee318abcba13c45778890d8058" } }, @@ -41051,24 +41789,42 @@ "updatedAt": "2026-02-19T02:24:11.112Z", "postProcessHash": "6d2d20f55870de65013972db58328c6a8e4275aec820e991d7c2ff45421b84f0" } + }, + "5498aac76bd69eb56e2bf512666e0c5a39a071d82b848354b4cdd23b9491c426": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.788Z", + "postProcessHash": "9309b61dcdffcb97a419611e5fa970a57b8cb0b55708aff7f707270c72c346c6" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.788Z", + "postProcessHash": "20d53664db505e3c6d0e0b6af7fdf934f8fb5970884683afe382c3e9261440bb" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.789Z", + "postProcessHash": "5f0e12aab7fdb8b70cb19f201f98e9c8d19f96aa90799a5b33dfdbe8e3c4f526" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.790Z", + "postProcessHash": "a2bb5889a0c71b1f71ba3e673a8235cdaa3beca8b1c0fe5bbc37c37c4275c558" + } } }, "c43792a75d02793708f0f9c298dd1e81a2db715e26bb86c9a3a5e14f34e785c4": { "76526beb43a3126f9cd6e8837bdfd7a2b5b294aba899560796a163b8963fb64c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.077Z", + "updatedAt": "2026-02-24T10:49:34.759Z", "postProcessHash": "00ad5fc61a4874dca1b64f3aafd1ce98799189e58dc74e768dc50a18cae24e5d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.076Z", + "updatedAt": "2026-02-24T10:49:34.758Z", "postProcessHash": "3c7787388dbdcaef17d75cf0a44ef993b56d94d63d607b628d85ff4540d53de2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.077Z", + "updatedAt": "2026-02-24T10:49:34.759Z", "postProcessHash": "a062af9b15ce1142508757a32c4a197a34a2e7c65b0ee3ac3ac796bf73aeb681" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.182Z", + "updatedAt": "2026-02-24T10:49:34.872Z", "postProcessHash": "24718ee9bba2bac3b0e5cd747fbe0aa5719c137bc03017b2b3b3e8434b55b75e" } } @@ -41076,19 +41832,19 @@ "d34da7fe047d51a78fb46b67d8b9e61beb3565db263ce630e02ee4fd1c3a415f": { "de2fd7fc7b86f2b80b1c08bd8bb73d8dce37227d7b14b5fc21508b921ca7af10": { "jp": { - "updatedAt": "2026-02-19T02:24:11.064Z", + "updatedAt": "2026-02-24T10:49:34.752Z", "postProcessHash": "866c0ccfb5a80874b7ad2192ce7ce94552024b5542bb35c52ec7b46cd027851a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.069Z", + "updatedAt": "2026-02-24T10:49:34.754Z", "postProcessHash": "1a8c1ef080115057d2b490b8ec9dab0b349b6008390921105f4aa82c3038ed7e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.062Z", + "updatedAt": "2026-02-24T10:49:34.751Z", "postProcessHash": "91c71cc42c3d1e416de8a95aea66fe5f66973e10d165080080aadc663fc3ffe3" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.094Z", + "updatedAt": "2026-02-24T10:49:34.780Z", "postProcessHash": "865894073062751fecd1c287b2032408a4e48276ad9f47961d068549a35d88b6" } }, @@ -41143,19 +41899,19 @@ }, "8bbcced5c6cfa711a8786fa37e069899c7bd3fd54d16cfeb14af2fc145f159c5": { "zh": { - "updatedAt": "2026-02-19T02:24:11.084Z", + "updatedAt": "2026-02-24T10:49:34.764Z", "postProcessHash": "d0ab174aa66df5a86b8d7242d4be27822164192617006a542da9173240326f12" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.975Z", + "updatedAt": "2026-02-24T10:49:34.740Z", "postProcessHash": "81ecc450cb53998595f3a0868746cc21574eca751d0650f5cd9907919723ee76" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.085Z", + "updatedAt": "2026-02-24T10:49:34.765Z", "postProcessHash": "d9369b1d6708843f66847ef808ad44471e99a59eb6a68e055a6b32c8f166bf88" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.181Z", + "updatedAt": "2026-02-24T10:49:34.872Z", "postProcessHash": "b4069698cf14727d5d559a750e8da4d9c447d351575b05dc7018e74ab6c64f17" } } @@ -41177,19 +41933,19 @@ }, "adb40705b070c44706baf5088da64e734c981844d3da1c36326816e439b9dbe3": { "ru": { - "updatedAt": "2026-02-19T02:24:11.086Z", + "updatedAt": "2026-02-24T10:49:34.765Z", "postProcessHash": "d6d022074f02e1a9dc6f6533a5e93282a28b8d08089136131e88818c0af0cc31" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.086Z", + "updatedAt": "2026-02-24T10:49:34.774Z", "postProcessHash": "788ded16d8bfab5ad3513cc7cc58337bbbe1e2a34a268c67bdf1fd27cfbbe08f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.144Z", + "updatedAt": "2026-02-24T10:49:34.774Z", "postProcessHash": "91f408b4e23fe432221672a83511a071303690e65667732ee3074c082e09897a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.167Z", + "updatedAt": "2026-02-24T10:49:34.777Z", "postProcessHash": "ac6d2c9a8fe9435370548ac9f805daef491a1ee379869c4af13d9a2effd9b9bc" } } @@ -41197,19 +41953,19 @@ "f411f73869f1597bddd3a69a70dcdf627b2f48802b68eb1297c49cf998a1d590": { "6c152f17b58caad6637a04e4d427aba059026b111c90e5aa764f040e05e669bb": { "jp": { - "updatedAt": "2026-02-19T02:24:11.059Z", + "updatedAt": "2026-02-24T10:49:34.748Z", "postProcessHash": "331c38927c19c9407728a6943bc5c1100800089fbcec620f2ee27b2c0dbaeaaa" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.059Z", + "updatedAt": "2026-02-24T10:49:34.749Z", "postProcessHash": "9bed1592f00e7bf18dae387703cc34eac541819b3a8c588ad993153015f9f8ee" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.047Z", + "updatedAt": "2026-02-24T10:49:34.670Z", "postProcessHash": "d82b0bd7ba21ffebae0abe4edac136a9d8ceae2ef8fc706a7d7c3c2019c4bfa5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.109Z", + "updatedAt": "2026-02-24T10:49:34.783Z", "postProcessHash": "a97768f668e61fc20fe2768f06d5c227838a7be3e71979f1aabc925a37f38762" } } @@ -41217,19 +41973,19 @@ "0bba267be6ffcbb62a544c365f5d2cd85d6371c78dc289e5697b0225352a76ea": { "95f85b7c7a43494a5f08ae259de69c8952afb7851b1d9a887ad3107d5e6cbc01": { "jp": { - "updatedAt": "2026-02-19T02:24:11.195Z", + "updatedAt": "2026-02-24T10:49:34.848Z", "postProcessHash": "22b34e4b720fcd08eab7575fc0cf391e038a92fff0df54a21343a5e371e49887" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.192Z", + "updatedAt": "2026-02-24T10:49:34.844Z", "postProcessHash": "efdb6a242e79ea93572eba2d922b7e48ef5b68feccbb9f22276d321d3f7199f7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.201Z", + "updatedAt": "2026-02-24T10:49:34.913Z", "postProcessHash": "06656124537581192f340fb3b16f3cd37f1cded4c66cca1d3ea79303eff9b4bc" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.249Z", + "updatedAt": "2026-02-24T10:49:34.946Z", "postProcessHash": "8aab85331db0f90fb6963453d64c5763d7f60e16c7407e862bca8e40c0da5819" } } @@ -41237,19 +41993,19 @@ "12f796f4ae9f25130a8cfc11aff488171e7376f25404278d4e5c173c8bf9ed02": { "55069f671a99d799cfd16eda4312b66b5a321376cc69b52c58ba054f313fa404": { "jp": { - "updatedAt": "2026-02-19T02:24:11.129Z", + "updatedAt": "2026-02-24T10:49:34.834Z", "postProcessHash": "a12d416007cbff8071d548f5d9453401c1fb682d3f376c434dee0b90e1d8d035" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.134Z", + "updatedAt": "2026-02-24T10:49:34.841Z", "postProcessHash": "17ae3b053d7634ad864b67255b8ba2cb23eee504991b0cfcee91d1b6ebc831c7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.129Z", + "updatedAt": "2026-02-24T10:49:34.834Z", "postProcessHash": "760d1fbd37d93e87d860d6986d0f8a2061ef60c03a0849158b389c83d4f4af08" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.249Z", + "updatedAt": "2026-02-24T10:49:34.945Z", "postProcessHash": "1e080e15a2e99391cc543186e05e1434330d23e4b18f56c4cd58004c9000fd6e" } } @@ -41257,19 +42013,19 @@ "16c87bceec945d0aeefa7e76d421913b507e3b04716834b3894e9fd3174d2613": { "b43921e7c1caab150d19b0823696bd909b5e9b9dd41fe7847acfc9dabaec0942": { "ru": { - "updatedAt": "2026-02-19T02:24:11.215Z", + "updatedAt": "2026-02-24T10:49:34.931Z", "postProcessHash": "02f74892ccf9e21563e73eeb864cc83549b697da1e98446abbcc123a10d27222" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.214Z", + "updatedAt": "2026-02-24T10:49:34.930Z", "postProcessHash": "460a513589f97a7d3608101fb48c3a7b60b78b29aa10dabe371aa7c2a39516cf" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.213Z", + "updatedAt": "2026-02-24T10:49:34.928Z", "postProcessHash": "ad9a9b6fefd420d4c313b076fedcc48e4a070e199f1db0c7e81d31c1f32a060c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.350Z", + "updatedAt": "2026-02-24T10:49:35.008Z", "postProcessHash": "85c5a0764b062d51f2c02dc791a835f7b6500368393a1b073da96006cce263a2" } } @@ -41303,6 +42059,24 @@ "updatedAt": "2026-02-19T02:24:11.166Z", "postProcessHash": "cea096cc98b5eb746d0e2318a7336fae0e6117768524048e2efd9f4ac53f507f" } + }, + "56eb4e1d6818ef0386017d946f9bd9f9e39a864a06784e3f33a144a5353f1cfc": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.875Z", + "postProcessHash": "e1b67492887569ca378d2e72a248c76d3158e7520e297e6b0e0b480c1c568ea6" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.876Z", + "postProcessHash": "26e7fbb3a9cf159ef50acea2f76ad9227b1947cd4e1fea2a4d242e808cd1f3d0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.876Z", + "postProcessHash": "c650e32573894bbcee6d6f6704dbad3899096d95a6c1292595488c0eab8c3b10" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.877Z", + "postProcessHash": "93011904fb36cf83a296e8bb888df04631175f663a5eb48dcc3e17c6918fce4d" + } } }, "2644c145de6d61cff7556d3efdff355e849b2f38b5c7912fbc2eb07360771f61": { @@ -41323,6 +42097,24 @@ "updatedAt": "2026-02-19T02:24:11.174Z", "postProcessHash": "cdf6745f34a9e4da9ac6f17c6338c8645ef8736714db9fb1ea58ba32883a8f23" } + }, + "4abc8bdec99b27fe4fa82603998b6e2683463c0ecbf60e0eac238974aa7ac9b7": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.879Z", + "postProcessHash": "59fff465df394694bbda20ac899a103ae1a93cf3fea4afdccf223868faa8e46a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.880Z", + "postProcessHash": "64d0f74e469a7b861a8f12baefb9dc46bd4bbd50a4fa661280a901fe56069d56" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.881Z", + "postProcessHash": "27e6df5b538f0e25e9f9e8c5f2724a2248c3f7af58ab090d3c59ed2ac9dbc4c5" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.881Z", + "postProcessHash": "c8660883c4c589f4f2377a7390d2836df977e9d994c07473e55a800ad10f1459" + } } }, "2936efa9c627e5f00c7abc38b09aacea29a31481a83c21e719db82d0ba4eed0f": { @@ -41378,19 +42170,19 @@ }, "c6ba280a859f3bf85beed26428ddb99a79201c4479698d538273a230b85cbc6e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.161Z", + "updatedAt": "2026-02-24T10:49:34.856Z", "postProcessHash": "f51e99c45aac80b194f47e1c05f0d568e84d6d3300f2b67de859b55aced1c265" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.162Z", + "updatedAt": "2026-02-24T10:49:34.856Z", "postProcessHash": "773557783814c992014c3a5f2fe46afc2a99f0159b05fbf02eb8e31cac721765" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.163Z", + "updatedAt": "2026-02-24T10:49:34.857Z", "postProcessHash": "d237ef784c71ff37829a14ebd625a32bc9111bea7e96f263a0a709e62ed86648" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.181Z", + "updatedAt": "2026-02-24T10:49:34.871Z", "postProcessHash": "625bb2dab28ec70bccbba49c2d72f98c5de4e699281d8b7982e95345defea278" } } @@ -41398,19 +42190,19 @@ "337fa5ffda5b1ce15febb15e28d78f509b83dd0442c0eecb4e5fd5ad01cee570": { "8ad0cc19f45e168f3328286b8c922f25ddb3753ff16efc3a1795161778bbea66": { "jp": { - "updatedAt": "2026-02-19T02:24:11.208Z", + "updatedAt": "2026-02-24T10:49:34.922Z", "postProcessHash": "fbdb8119b9b7ca420bfd2043050602902d67caabdfc82fb101fe43834e06b24d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.215Z", + "updatedAt": "2026-02-24T10:49:34.931Z", "postProcessHash": "e2938acfbd9c68856b4b2eba79c8882dfef73021b566cd9f128e75b5425bcc96" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.120Z", + "updatedAt": "2026-02-24T10:49:34.825Z", "postProcessHash": "20b944806287b7c7c04a12fbf97461bf3f6f4ba6ba7a2b0a935c62eec3ce4f85" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.255Z", + "updatedAt": "2026-02-24T10:49:34.951Z", "postProcessHash": "5424d4563fed1af91009b90e8bf90568b60bf886f3a25fbc4735660153eb9127" } } @@ -41433,24 +42225,42 @@ "updatedAt": "2026-02-19T02:24:11.168Z", "postProcessHash": "a22c1a3afa942a9d09e416517dd650a6114c1055c6151df84bc64002cc782f4c" } + }, + "dea16b9cd134e5469661c0f06d80d329c9c2b398549a0cf91f11c73811507527": { + "jp": { + "updatedAt": "2026-02-24T10:49:34.875Z", + "postProcessHash": "443445a6d07aab5adee40c0684e65f195b18cafe6fd7934193a4da2cc7b250ce" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.878Z", + "postProcessHash": "45514c99f237b96068e7e9f1dbf36d49da6abf8c541cc1c92d4e8d1bbae92f30" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.878Z", + "postProcessHash": "754fe8bd11d2519b97d8725d77e5373c45c5c052047af4bfde7126db5d2cfd42" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.880Z", + "postProcessHash": "598dacff53c533328f962217b86e78846ce0f77228f914e9d5a3fb1def2775ec" + } } }, "3b2a0db3103ecc795ff82061e46875995689dee845c28a19697c2e8b7d78fb8f": { "84bf17e2315c270d4f26795807428c5ef311a937dd6e53a4b6f3a8e26bf5e771": { "jp": { - "updatedAt": "2026-02-19T02:24:11.133Z", + "updatedAt": "2026-02-24T10:49:34.839Z", "postProcessHash": "da1defade0138f942d383c5c6e995946983fd694c35352956da614ea29c077de" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.130Z", + "updatedAt": "2026-02-24T10:49:34.835Z", "postProcessHash": "087e48a9c74b8dafca892bebab01adb0762f4feae8bdc5c1a50f8aa181053354" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.131Z", + "updatedAt": "2026-02-24T10:49:34.836Z", "postProcessHash": "2f4838266ac1a52dda69b1c6c9f6cbe67202069b432fb910e1045a194efe0b55" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.171Z", + "updatedAt": "2026-02-24T10:49:34.863Z", "postProcessHash": "634507033ad551be0304f3fca902b77de22244e08471d21a9bfbeda2a367f321" } } @@ -41494,19 +42304,19 @@ }, "a11c2b83b861b91e9ce3a8a76ccd20bd9e08ab11b8ee779dca170940d15ea652": { "ru": { - "updatedAt": "2026-02-19T02:24:11.164Z", + "updatedAt": "2026-02-24T10:49:34.858Z", "postProcessHash": "bf6bcb2cc02265843b271860b23a12cc3b5928c069f7f809e9feec4f6f254b2e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.164Z", + "updatedAt": "2026-02-24T10:49:34.858Z", "postProcessHash": "056e7c28db4ea832c661f22e16c8b264aa711790ce9de68700e5c3798d9f6609" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.165Z", + "updatedAt": "2026-02-24T10:49:34.859Z", "postProcessHash": "ca409c906b9bef62e4fdb4a239e98bfec9d8c065593e0bfd64faf5b217f29afe" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.172Z", + "updatedAt": "2026-02-24T10:49:34.864Z", "postProcessHash": "ba24e8e7c4e163c19efc413496c85e937fabb91cfe5c57385d6cd125a500d0ad" } } @@ -41529,6 +42339,24 @@ "updatedAt": "2026-02-19T02:24:11.172Z", "postProcessHash": "a2144a05dc40aafe9246e1da58b65c6c8316d784d9fe90e3f5e6b3ff72ff2345" } + }, + "57911e397f0c54ed6d10d9352efb3aaf8fab3ba7d4cca34fe8902d3e2d2df054": { + "ko": { + "updatedAt": "2026-02-24T10:49:34.893Z", + "postProcessHash": "4d8fee697f9ef526fbe7568d26cd18b3194e1eddcd28b0b10411233bca71f916" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.894Z", + "postProcessHash": "bda5983449b3bb046e4611f19249150b631495f1b180e4d1c6910875f4cfc88a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.895Z", + "postProcessHash": "b3c029921892e575890070288ef632e8e7eebdc188365b603564e7cd8a67170d" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.895Z", + "postProcessHash": "bb312ad806b497fed4d033db9a885934d4b8cd2801d443777ead6a8f6b34684d" + } } }, "7d0d5bb4af482b39457517f498efb3ea46e33dd5a7cfdef6d18b2beb02e7dc2f": { @@ -41548,19 +42376,19 @@ }, "bfd788cb0455494079a191feec3015e78bb44921a5bfc35936ecab802a76eb0a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.143Z", + "updatedAt": "2026-02-24T10:49:34.852Z", "postProcessHash": "dee432f1720753b13b99c6cf111e39b7ee162311d19fabb072d58632d88a1a24" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.143Z", + "updatedAt": "2026-02-24T10:49:34.853Z", "postProcessHash": "e793d15c3d447f81e02bf969936613de61b02c612a4043b0922fe4a4bd5c9731" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.144Z", + "updatedAt": "2026-02-24T10:49:34.853Z", "postProcessHash": "881e89ff8ca4387bfdb9cd95a70425a28fc8c43ecbffe08e16e2a720f28aef59" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.177Z", + "updatedAt": "2026-02-24T10:49:34.868Z", "postProcessHash": "2e07c251b51d2562bccb842efec2440aba963173a192e5cfc74c4a6f2939bfdf" } } @@ -41568,19 +42396,19 @@ "819fce8b1343a94dee6cf3e428f8d46ff343c43b0d83b49efe18129ccf292430": { "af1d949b76a7c871e4cdce3092a3b2e2b1ea6afca4c4788054f8ff3eddde3ea5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.125Z", + "updatedAt": "2026-02-24T10:49:34.829Z", "postProcessHash": "4ef1cfb321c0f1de42c7975b6342724d4ae8987107d8c9bea0bdc13168a70919" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.135Z", + "updatedAt": "2026-02-24T10:49:34.842Z", "postProcessHash": "0a63df48ce61182a39b73130b26f412b546e14dee9c10205d4557277ca040ea5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.126Z", + "updatedAt": "2026-02-24T10:49:34.830Z", "postProcessHash": "d10b9abfa59b6a1651e1c7644829c5931150e9745e6a1844b81fdf46764792bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.244Z", + "updatedAt": "2026-02-24T10:49:34.863Z", "postProcessHash": "ab41f6b7bd07250eacf230856c77f1f06390fb19126e941fd16ecf2c067bdf05" } } @@ -41588,19 +42416,19 @@ "8756460c34802f52ffc72c46fd775666b61d2134d4e3d1de0bf4111a5a049571": { "483cc85982240fd19d9aaf9161c58f6f4b1f2cdf226fb60169450e02caea8384": { "jp": { - "updatedAt": "2026-02-19T02:24:11.139Z", + "updatedAt": "2026-02-24T10:49:34.849Z", "postProcessHash": "67405b4f29dfb864f1d0d418c7b1a419ffa1f0b077d775aa9131c6cae475ea66" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.128Z", + "updatedAt": "2026-02-24T10:49:34.832Z", "postProcessHash": "0313c13e192bbf3ddac57b5ba276e1a15da6fa9b63d58160564680f77cb077b6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.137Z", + "updatedAt": "2026-02-24T10:49:34.847Z", "postProcessHash": "304cd56cbdc25b1010fe04e5eddd06d00d676e965f5fd64db2dd295bd9bb9251" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.169Z", + "updatedAt": "2026-02-24T10:49:34.862Z", "postProcessHash": "9ce3354474210404123c870163c6c38f45e152eda1ab0a88a08c4bf55d2aea2e" } } @@ -41608,19 +42436,19 @@ "99effff387a3391b66ab69348b19106aa7ae02149e5cdda15d9bd9397ddf4c41": { "635055619056b153a2e20b6a09345d76348336b24340ba32f815de9c85a7f2b0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.078Z", + "updatedAt": "2026-02-24T10:49:34.760Z", "postProcessHash": "1c09da8fcdb31a7acbfbbf863154c2dc11a06069bb269022ad2747bf1612d9ff" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.078Z", + "updatedAt": "2026-02-24T10:49:34.760Z", "postProcessHash": "ead0cc3b2d8077ec544b717f729eabc31b9473d3e59c5f481362f4a8372e655b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.071Z", + "updatedAt": "2026-02-24T10:49:34.756Z", "postProcessHash": "b128d240c7e0cd2cc9ad78f7b18c99d7d6c75e5c21549b233c1e6821f04fd58d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.178Z", + "updatedAt": "2026-02-24T10:49:34.869Z", "postProcessHash": "246799ff7370bd6ccf37618bc36976ac7e8989f55804956711e18e15412e460a" } } @@ -41642,19 +42470,19 @@ }, "7e878840adfba6f52e66831d03a677e358e504f16aaad9370ff2828b7de36d66": { "ru": { - "updatedAt": "2026-02-19T02:24:11.081Z", + "updatedAt": "2026-02-24T10:49:34.762Z", "postProcessHash": "5d269ddf33e7d6c2ab82d54efa702791948a26eee796e99baa138f0b21768cef" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.081Z", + "updatedAt": "2026-02-24T10:49:34.763Z", "postProcessHash": "f862f7726fd9e0e40d220900dd47af4aaa4b5341270cd95320226eff59e1f788" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.082Z", + "updatedAt": "2026-02-24T10:49:34.763Z", "postProcessHash": "b2e2994b860f57885abd83584df2699f8a5e8681c465ba66c0d3f189dc7ec408" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.180Z", + "updatedAt": "2026-02-24T10:49:34.870Z", "postProcessHash": "34584088865fc8761f7960dc1b7c90e8a9028cf9afb7f81fb765644cefeae342" } } @@ -41662,19 +42490,19 @@ "ad1402ffed17fc7c6fda3f600f70cf8e3bbe5384d766081c16c2c90b4a775b7f": { "623f2f8c2f6006597fa106e18afad1304117a0a599684c3050b5f92f433dadf9": { "jp": { - "updatedAt": "2026-02-19T02:24:11.138Z", + "updatedAt": "2026-02-24T10:49:34.848Z", "postProcessHash": "9f2885ec09ff9d956f173da1f7b3600583a599c2a561a593b45a058af3bc1a8e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.137Z", + "updatedAt": "2026-02-24T10:49:34.845Z", "postProcessHash": "9227c1abe31116187de083e80521d1ac83ac18e89917199b7989ed653a001912" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.050Z", + "updatedAt": "2026-02-24T10:49:34.828Z", "postProcessHash": "691ba3e102a981665114fed7620f3ea9bc2b301b5f32ab7877978997c199a18d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.178Z", + "updatedAt": "2026-02-24T10:49:34.869Z", "postProcessHash": "546e10e63bf8e00040a3b5aab9140dcfba1cd4a83e003e00c168280fbbf22282" } } @@ -41682,19 +42510,19 @@ "d6127c27c939a8143d6bd93d737c445238b16aea350cd52caa535082aaed407a": { "af21361ca18f3026c0fcb3b223ce74e7a213c2e9016d2f7596b5103f9f243027": { "jp": { - "updatedAt": "2026-02-19T02:24:11.137Z", + "updatedAt": "2026-02-24T10:49:34.845Z", "postProcessHash": "33e91467d2cd8e028b107b9168fafc12396c85e13eb0743ad9f2d81719610a0d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.140Z", + "updatedAt": "2026-02-24T10:49:34.851Z", "postProcessHash": "c08cd07160985d6aafc67db2817eb42bf46a7fa5f467bbe06c7fb570067cd9fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.142Z", + "updatedAt": "2026-02-24T10:49:34.851Z", "postProcessHash": "4b47b9a3add0ab3f50fe69b94bdc36fb64faaf1eeed95b510a7a8a28e10f5f9a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.169Z", + "updatedAt": "2026-02-24T10:49:34.861Z", "postProcessHash": "41be2c40922c73f97af11d4ca2401f1be2f5aeec061c2b4d22f74c9e072205af" } } @@ -41702,19 +42530,19 @@ "d679b331b013310d0726e18cff38795d35a48a549ce862414366ed5d37b17a5a": { "6884d15ae61a9e31fa06e9f6cb793ec44513338525d28650cffaeecfdfd55f59": { "jp": { - "updatedAt": "2026-02-19T02:24:11.044Z", + "updatedAt": "2026-02-24T10:49:34.742Z", "postProcessHash": "f0b2e7b89093324cf9fe8a50882d0e64ac9e4c90b39b65fcd0f87b721ba6b099" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.067Z", + "updatedAt": "2026-02-24T10:49:34.753Z", "postProcessHash": "03df0ea4c071a21d58520c0263242d71f5c7f0132a056154b77b7202079ca56c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.063Z", + "updatedAt": "2026-02-24T10:49:34.751Z", "postProcessHash": "f359ee1e78ca8b8955f01051a4d6a8be9c0f2c6ef238b31a9874c0d7ce80383a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.177Z", + "updatedAt": "2026-02-24T10:49:34.867Z", "postProcessHash": "86cb4a0c823241c1f7c0a39833098f807d7200dd0939e1d1bc5f5836fad4605b" } } @@ -41736,19 +42564,19 @@ }, "8af9b9ae9836e7c1ab2e61dae5d150658b0fd0a0fe7b1f2b2c377f9e5c41c275": { "ru": { - "updatedAt": "2026-02-19T02:24:11.145Z", + "updatedAt": "2026-02-24T10:49:34.854Z", "postProcessHash": "14de756c8f115fd1e60e73a0d7b19f8e777a88941115ee67347d5b329d718106" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.145Z", + "updatedAt": "2026-02-24T10:49:34.854Z", "postProcessHash": "eb2e48e0e87b08ba00a0e3e9434c358da3320970057f067bb7bd4bd57994517b" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.146Z", + "updatedAt": "2026-02-24T10:49:34.855Z", "postProcessHash": "bf52c3a81d49175a1f13583b39c2a8bf821da4d5e27a481c54737c6f3ade21aa" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.165Z", + "updatedAt": "2026-02-24T10:49:34.860Z", "postProcessHash": "28d0df2987edc3e0eddb1d1512694edd3f4b06e4844537a5314c3199294a11dc" } } @@ -41770,19 +42598,19 @@ }, "10a46e4ae73a5f84ff0bb1b07a25cfe762b7243dc053f5e533b3594b6fa0dd42": { "zh": { - "updatedAt": "2026-02-19T02:24:11.159Z", + "updatedAt": "2026-02-24T10:49:34.775Z", "postProcessHash": "5756b0190bb93ddf8e424d276d4b265a01f4f36ff8871b87420063a91e647d95" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.160Z", + "updatedAt": "2026-02-24T10:49:34.776Z", "postProcessHash": "1193605ef22ca4ab79833c21150fb260bd0381740a3cb33d1c5fade54bd5a704" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.160Z", + "updatedAt": "2026-02-24T10:49:34.776Z", "postProcessHash": "920f840bff3f9cb00f159418904cc739d46fdca31d2a26a7c6277612434c484c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.169Z", + "updatedAt": "2026-02-24T10:49:34.779Z", "postProcessHash": "afdbf2c99e41d02c253e6243536592310fa0729facaadf8cb77e769bc0e550ee" } } @@ -41790,19 +42618,19 @@ "0d3a0a09b86406c2c362ede819ee030f9d92d058939579cd1229e361973022f8": { "9fc104791c743a764dffa282d540ca4365e02a6a6590d6c336de81ff7f63da24": { "jp": { - "updatedAt": "2026-02-19T02:24:11.120Z", + "updatedAt": "2026-02-24T10:49:34.896Z", "postProcessHash": "fdc7931c52a861b670fc374f0ce1de89bf98cc05cba437758df2715edb6291c8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.205Z", + "updatedAt": "2026-02-24T10:49:34.918Z", "postProcessHash": "4e9ecf959962f14eaec08a942fa8336cd4744fad335a508b72b6257aa5ffa1ab" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.206Z", + "updatedAt": "2026-02-24T10:49:34.919Z", "postProcessHash": "4875529c53e6cc5c0ba09c5a8471211cde7ae7cf4931e61a26be74afe76d2d68" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.345Z", + "updatedAt": "2026-02-24T10:49:34.945Z", "postProcessHash": "2192ae0e74f40036f2f8dc051257bd35505e824e381d324fc60d6092126e4637" } } @@ -41810,19 +42638,19 @@ "14364235369dc388419efc9e290886ddaa202d5023e8adc55d75a61c89fc336a": { "328695ec26f7fc60b0c8aec17edefe2b5cd222a635c116a01ed4259436be44ae": { "jp": { - "updatedAt": "2026-02-19T02:24:11.322Z", + "updatedAt": "2026-02-24T10:49:34.987Z", "postProcessHash": "a6aa56303e8d664754b6ad6847d10a0b2ad18b9ae2080d64d1ab060c0734f77c" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.332Z", + "updatedAt": "2026-02-24T10:49:34.995Z", "postProcessHash": "85cae4de7933f26bf221438f4a8c93af169897977cb7385504d11fed16ae5aac" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.334Z", + "updatedAt": "2026-02-24T10:49:34.996Z", "postProcessHash": "ea839f97839256b3a93388c3e9dd3f63d196b8a0f14e0c839856753da300ceaf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.351Z", + "updatedAt": "2026-02-24T10:49:35.008Z", "postProcessHash": "f6b18aec67fc885afe2dc9c163c206e7509572b4d6fdc930aa53403aadab0093" } } @@ -41830,19 +42658,19 @@ "14a65362c725c7a0fae1767f0bdaecab08516f4549961fb82c9b0d3889476e2e": { "4b5208315e755dbc3f295c8a58958e452a782c2f41e4965b7aaafc2ecdf93523": { "jp": { - "updatedAt": "2026-02-19T02:24:11.211Z", + "updatedAt": "2026-02-24T10:49:34.926Z", "postProcessHash": "fb2d6ce910941f3539fb444d2f2f0d1cf6fdbef2ae4b1c20045d3051b19bae26" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.210Z", + "updatedAt": "2026-02-24T10:49:34.925Z", "postProcessHash": "32ae331255b132d1851c42fd88d83ca508c5042f4612e425b431321b9589d67b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.214Z", + "updatedAt": "2026-02-24T10:49:34.929Z", "postProcessHash": "eed14ebc2452768093a37a6c949fea355bae64e76fec2af0e2efa1b7279cf299" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.234Z", + "updatedAt": "2026-02-24T10:49:34.941Z", "postProcessHash": "332060c8c1565236dfe4361594b3223139fe89909019b18e1db6d986e1071aac" } } @@ -41850,19 +42678,19 @@ "181aa5509e2dd7724e3095fd6c0f17cf6fedab2635b9af1d57fe9d1e2801ec31": { "bf2760368d2fc3a4c455358f8872f13eb6f6e7b8ccd6d529c68dfa016882d216": { "jp": { - "updatedAt": "2026-02-19T02:24:11.332Z", + "updatedAt": "2026-02-24T10:49:34.994Z", "postProcessHash": "70b76d3c4c2e1f5d9162cac03b78ee79179039ab0706156acda32540d3db124a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.334Z", + "updatedAt": "2026-02-24T10:49:34.996Z", "postProcessHash": "bdb9e70a5bdb3aee92b098a5a70eefee3a0dbd9db32144f0f06307e302cf8b15" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.328Z", + "updatedAt": "2026-02-24T10:49:34.989Z", "postProcessHash": "b79b90f26cfc9879d383e6f0830488e8d102755da3fa30f05470b37772719b31" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.354Z", + "updatedAt": "2026-02-24T10:49:35.010Z", "postProcessHash": "de78932d6293f09b229a781237025f17924030c74b9bda98376fdb9eaa1cce1c" } } @@ -41885,6 +42713,24 @@ "updatedAt": "2026-02-19T02:24:11.240Z", "postProcessHash": "57966298e012f9ae25a2f79f13c02a327755b276f9b2385115bc2de79514946b" } + }, + "906fb563f919ec63299429011e988f3866a22357659739941b9019048e9d0fa1": { + "zh": { + "updatedAt": "2026-02-24T10:49:34.957Z", + "postProcessHash": "5314f8d0b6370a241c4cacf4b0e0bc0438646b1bf77764222837cf249372b344" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.959Z", + "postProcessHash": "989b655d9cf1669f75a8a061f4d38e8311975c3ddcf2225b1ddf7b22183d1aab" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.964Z", + "postProcessHash": "b75fc7e7ba9b5d100aa3f259846b4ae3553e973a6f3211aceeba6871fd1e5b68" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:34.964Z", + "postProcessHash": "728f0f5d7230e0fc13fcf49c5729dec69c5181a0b12029bc9459b71ff63f3bd7" + } } }, "59475ce3a8014935df370b01b5266883e7814a8041f963545d8edaf3119557f2": { @@ -41919,6 +42765,24 @@ "updatedAt": "2026-02-19T02:24:11.251Z", "postProcessHash": "08e3dcefff6ff49c3ea7169d343a99357b2dcdb26dd1dbc725284d013e1ae367" } + }, + "78b553527ea1f8138c9eae192b109304ab02cf904848c9f8a1a8864e64472bc9": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.958Z", + "postProcessHash": "0dbb48d6aadffbc5b25d91e2e4ee55acb25d4ee8119e14dbb4424d3e21884938" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.960Z", + "postProcessHash": "65ed3c7b3b7405b8fe0c4672fb909d0681defb7855494052af8ff4c46f790779" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.961Z", + "postProcessHash": "26eb321496a47c73e16ee080a4848082ea566ab0cddd3b91d01e38a9d61312df" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.963Z", + "postProcessHash": "e78cf41abb94dabb7ac7609b74d6fe5bffda42fdd6d06ae42d19b7a6a611873a" + } } }, "624874fb487b61ac20829d3bfaa8619b5c0225654d44342d927069d578cc3f80": { @@ -42014,6 +42878,24 @@ "updatedAt": "2026-02-11T18:06:59.461Z", "postProcessHash": "8125a831c96c759179a1a832b22b2e3175ab087056cc39d6fa1d4c2203182ae4" } + }, + "d60019c63538d51f2a7d00e66567bc94aea9e2a6d98caa6abf27eb2c875d7d0f": { + "ru": { + "updatedAt": "2026-02-24T10:49:34.956Z", + "postProcessHash": "d1b16fd2563787d7334843457a6bbe37844c4671e1e78000a2ec05e0c6c81b86" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:34.957Z", + "postProcessHash": "fe8bc8d0493e7eccb820734c76a63049ebc6d0adbd00a30b753e9a1c8acdfbba" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:34.961Z", + "postProcessHash": "0cf0d39c1efee40c6220d87efdf6ef38fb7e9afb4588b5fa365b894e9031b92c" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:34.962Z", + "postProcessHash": "5bf5a73d4f9b55ffc09a646ef4bb7a97fd47967f69dbf1374348ce1ba055820e" + } } }, "6d2c1d43528de97c8dcb1e3618555c13b1ee6ca0cec9035a38fdc267403c6c3a": { @@ -42033,19 +42915,19 @@ }, "8eac25efcb5645444c1807c985da18c4cd21f9960fa2fef6b4e659bbefa4f1b5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.219Z", + "updatedAt": "2026-02-24T10:49:34.934Z", "postProcessHash": "8fc6422546de320081d9f974b0a645ff140d3a77a992da23922fe7e5872f870d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.219Z", + "updatedAt": "2026-02-24T10:49:34.935Z", "postProcessHash": "910c455079ce8a32f382604fcaa7dba75b1f18824a44e5b1e2548dc8e681bf9c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.220Z", + "updatedAt": "2026-02-24T10:49:34.935Z", "postProcessHash": "3b0ffe002bf4daf7d3babda925edf4d1b025e0e9e1f7254d58c3697a9c48ef1b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.254Z", + "updatedAt": "2026-02-24T10:49:34.951Z", "postProcessHash": "f20d9986560175e2ad3715e69ebb4df05e2b8aec30cdf2d1527c30dbd5efa709" } } @@ -42053,19 +42935,19 @@ "84d27978ad24cbc0448dc0661dc1cf62312406d39568cc877e9bee6c04e93677": { "4120b13b5f03f7c2fd4dd243edcbc718d6bd291d7358050064f6599242eeca09": { "jp": { - "updatedAt": "2026-02-19T02:24:11.134Z", + "updatedAt": "2026-02-24T10:49:34.840Z", "postProcessHash": "1b4b4371c598c43e92113279211a88ac355955452bb3b21c9f88630be2f90cd0" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.128Z", + "updatedAt": "2026-02-24T10:49:34.833Z", "postProcessHash": "2698c0fdb5697be1dbb473fd578a0bc298dda541f2ea1ee0949df62eefc45ced" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.124Z", + "updatedAt": "2026-02-24T10:49:34.828Z", "postProcessHash": "74736129f86f449a2d4831cc72198d770034268da75ada314503ef6b6ff9a58c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.246Z", + "updatedAt": "2026-02-24T10:49:34.943Z", "postProcessHash": "1986dfdd0f728c5b45b2c4008fc908908d4f1eeffbf32dbc4f934d021e050cfb" } } @@ -42073,19 +42955,19 @@ "993eb4cbf451025e383f5baa954ba930c6f9ae51ff01592c72b8d36662548817": { "6397e782e35c68ed2849d7a8210eb150a2820241365b2424b92b3ac99815d60d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.199Z", + "updatedAt": "2026-02-24T10:49:34.910Z", "postProcessHash": "7f763143ca9a8501d81ed8d19bf68430bafbd075c1a6da2b912bccce842c4f6b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.194Z", + "updatedAt": "2026-02-24T10:49:34.904Z", "postProcessHash": "3317f01db97455ea697857b4a995432bd74705837a5ba3564030310e6d713684" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.198Z", + "updatedAt": "2026-02-24T10:49:34.908Z", "postProcessHash": "55ddcad375f8c19a159a8b759e6f99a5826b6228cc91055bd176ca45e918f103" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.346Z", + "updatedAt": "2026-02-24T10:49:34.947Z", "postProcessHash": "5e3661e9d6fb1f1052e859e495e5d1d7c80119c4bf6dd58fbd1662f6193bf57c" } } @@ -42093,19 +42975,19 @@ "bc95ac30c6163794df098cb1c5b0c612d68e460c1fee0982a9fde6ad2158ac24": { "d710ab3ea85690006a2ba44bbff81541eaffd450228382acc7544df0e34c7468": { "jp": { - "updatedAt": "2026-02-19T02:24:11.193Z", + "updatedAt": "2026-02-24T10:49:34.847Z", "postProcessHash": "a9b6ae29f9757eb838b957b6e33bcd0951b9458d556486a66c5e358572fbf7cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.207Z", + "updatedAt": "2026-02-24T10:49:34.921Z", "postProcessHash": "44fbbc12942503802eb27d14e11a3295a9bde7deeff1c712639e3cab0f749d98" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.212Z", + "updatedAt": "2026-02-24T10:49:34.926Z", "postProcessHash": "a163ea108e73c6756f368e1a7e947a9658363b37c4344c15e2ad8c8a994456bd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.256Z", + "updatedAt": "2026-02-24T10:49:34.952Z", "postProcessHash": "3c622fa7a1528ba360a1e9469129bd3921d70d15c4265abd9a0fe8f5ba72d86c" } } @@ -42113,19 +42995,19 @@ "bdea2c6c34b1129be3efdd889576a52c92a915a41e1639ec5331bfe00948aa9e": { "d5c5bd7080a73f05e45d4b278cac9e1b97c489d95a7c80a8edeeccfbc35abb0e": { "jp": { - "updatedAt": "2026-02-19T02:24:11.200Z", + "updatedAt": "2026-02-24T10:49:34.849Z", "postProcessHash": "10632e7fbd3d4c72566d0293389054bc752eba7db50d637e5458bb33e29d2af2" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.132Z", + "updatedAt": "2026-02-24T10:49:34.837Z", "postProcessHash": "bbb1340971ef322e8561db72e13aca4c080c8558827c783178584439e96f5218" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.201Z", + "updatedAt": "2026-02-24T10:49:34.913Z", "postProcessHash": "2f5fe9cbea1082fff5fd16659e1f567f2e9525c61df23001271116ff1755afe5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.250Z", + "updatedAt": "2026-02-24T10:49:34.946Z", "postProcessHash": "cb49f50d64beef55eedca4ef3bb8ebcd32c267ef4ff7ef22166a47b259d44aea" } } @@ -42147,19 +43029,19 @@ }, "8af03fcbe96fa067106d1bfd125eee0e07ca61a91fbefd297898a6ed5be074a6": { "zh": { - "updatedAt": "2026-02-19T02:24:11.231Z", + "updatedAt": "2026-02-24T10:49:34.938Z", "postProcessHash": "2089d2187371f024224a2c27de9ffccf4fef284806ca3df140b4b4a5ba9b2f36" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.231Z", + "updatedAt": "2026-02-24T10:49:34.939Z", "postProcessHash": "bf09921beea22cd60fe24422ed5eff756e3fb3d4e416e102b73ae9dbc02ba5fc" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.232Z", + "updatedAt": "2026-02-24T10:49:34.940Z", "postProcessHash": "ec3e952478215bc9cbe852f4e7828e8bf591a0aaf4cf40093d469833acdaa55a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.241Z", + "updatedAt": "2026-02-24T10:49:34.942Z", "postProcessHash": "0bbd5f22e001a3fbd575b315371857053df6944cd45fede32dde3ffb3996caa5" } } @@ -42167,19 +43049,19 @@ "c86c73e2e1466ca9839d03145d28d089d50433e69d452f195d963042ce89ac2f": { "f65f3977310bfcdd03981a63ac5b1d00c85b04cbbc5ef4d29c352006d88c1be0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.212Z", + "updatedAt": "2026-02-24T10:49:34.927Z", "postProcessHash": "a286fd6531a3d439b69b564e8d5cc6221089e6eba3db339c403eb8e48e92a2fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.204Z", + "updatedAt": "2026-02-24T10:49:34.917Z", "postProcessHash": "55c2c87fab5b7bea01541513310661abf1ac91b7839c0b264e809bb2ee227772" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.204Z", + "updatedAt": "2026-02-24T10:49:34.916Z", "postProcessHash": "e1a699faff3b625b66ef11888179df9baa11d32c5290c8349f5ef6ed130a880e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.356Z", + "updatedAt": "2026-02-24T10:49:35.012Z", "postProcessHash": "34ad396e7b61fa36501932205644116b5ffcd67adec49322380d258217c0a4e3" } } @@ -42187,19 +43069,19 @@ "cb9c09aa37313bf52611e34b607eaa3775f6ebfd79387f2120b6b2b2ed4b46e5": { "b033c9754be40272847cfcdbce3fd43701961388f8efc8698510876cb0c0fb40": { "jp": { - "updatedAt": "2026-02-19T02:24:11.197Z", + "updatedAt": "2026-02-24T10:49:34.906Z", "postProcessHash": "0762d305ce6e7661046b1ad2f8bf86c7c55f06d7fb9cee703c2984a8357ec703" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.195Z", + "updatedAt": "2026-02-24T10:49:34.905Z", "postProcessHash": "d920335b2ee5d24cfccba2dfc82376ff5c5b36ff8b54975705c226846e824573" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.126Z", + "updatedAt": "2026-02-24T10:49:34.898Z", "postProcessHash": "098fa66ed0737ce60ee219f827404a295d98623c77a895cd86fffe380656b1a5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.247Z", + "updatedAt": "2026-02-24T10:49:34.944Z", "postProcessHash": "015862aafaf0e492e6352857eb8f1aba471fd018aa486652b14f0b87c52a95ea" } } @@ -42207,19 +43089,19 @@ "d7bfcfa62fea0cd11e8181ebab38199db1c954694d8230c3cb8be3a89f91c476": { "c1ce68737a5260a794d17040e187ca291588ef715aeba34369597a7058dc2af4": { "jp": { - "updatedAt": "2026-02-19T02:24:11.193Z", + "updatedAt": "2026-02-24T10:49:34.846Z", "postProcessHash": "e721c75b367a320e89134798c72348b089def6d7fa821d2a9f897c24e5520c9e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.209Z", + "updatedAt": "2026-02-24T10:49:34.924Z", "postProcessHash": "2ec3fc77b8da725bd0aacef63eda85f206094e1fe5d6063c820fa57055f8a569" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.208Z", + "updatedAt": "2026-02-24T10:49:34.923Z", "postProcessHash": "eab5b3e59290c207566800a342c3beb4fa103ce2cdcb0ae507f1949cfbe55392" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.356Z", + "updatedAt": "2026-02-24T10:49:34.953Z", "postProcessHash": "f20264cb241a403a0e0947984d142b4d4a80779626cee7502824ebe59660c1f4" } } @@ -42227,19 +43109,19 @@ "eb4daa639a63e99d988bfe1cd009befb853ba7171f88047823ca4d63e119f46c": { "db3dcac7ca205ca613bb9129a98b90f70d1edd49164206d1bacd86ccbb885f5f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.210Z", + "updatedAt": "2026-02-24T10:49:34.925Z", "postProcessHash": "aff0f8fc766fa146720e718d0667b86b8e349d725cdbaea83b4f3ee12e2f8be0" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.202Z", + "updatedAt": "2026-02-24T10:49:34.914Z", "postProcessHash": "ac39380f74c6aab19dac19d5aba8d4d3cd33da708c0ef1f47fadfa92f6bdfb8d" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.200Z", + "updatedAt": "2026-02-24T10:49:34.850Z", "postProcessHash": "43fec19c8435a4bd86e51bde90d70f75c76d3e35cce6f119c20fd1f053778e5f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.352Z", + "updatedAt": "2026-02-24T10:49:34.948Z", "postProcessHash": "784939de5dc20af7446743d4c847b8703d942011cf58da2614703c84893cf266" } } @@ -42275,19 +43157,19 @@ }, "17436a6c6f051eb78a19911c771b25e633b6f28ac244d58b350e7592bd4be206": { "zh": { - "updatedAt": "2026-02-19T02:24:11.258Z", + "updatedAt": "2026-02-24T10:49:34.954Z", "postProcessHash": "739883ea77d7e87e0ffa8d0fd25881eb9be38971f002118b2ecfee0e700fd18c" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.259Z", + "updatedAt": "2026-02-24T10:49:34.955Z", "postProcessHash": "1cb53f3060f108c43e3fd671bd6cad80d7e69c8ff0fc208573bf4c6bab00ede1" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.260Z", + "updatedAt": "2026-02-24T10:49:34.955Z", "postProcessHash": "1a4d5eabf84ac547d3cb106da84b2d0bf5205e19112ec9e6dea9fcd197e3932f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.253Z", + "updatedAt": "2026-02-24T10:49:34.950Z", "postProcessHash": "06f240dc7461e01793225f22b5353210b8009f5863562731af0400f0a2aba842" } } @@ -42295,19 +43177,19 @@ "eec5db41f767e87040d1a1e1a235ad804968c2645819039af5e1306f75ee2ba6": { "3294839c4121817eb15af16f39ea52c308ef56de049782978aa71dcc4c38777a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.194Z", + "updatedAt": "2026-02-24T10:49:34.903Z", "postProcessHash": "6c4ef3c2f2df80ec4b129c3448f8e1a6e47fb5200ed823cb04cd853dacd2756b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.189Z", + "updatedAt": "2026-02-24T10:49:34.900Z", "postProcessHash": "223cec81ee466646183448c8ce3accecc5369fe2ed302d4350682c588a6a5bfd" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.190Z", + "updatedAt": "2026-02-24T10:49:34.901Z", "postProcessHash": "1b17fb33549cc58188399ed0eb3746a2dbe9aaa138a2b762842b3aa44c437e9b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.353Z", + "updatedAt": "2026-02-24T10:49:35.010Z", "postProcessHash": "0e3a5c955ed034196e42fb62a1a8e48a38f90751fa1cdab8e6e9906babeca0b3" } } @@ -42315,19 +43197,19 @@ "fcac219896966a54530a8593af31aa0dd688a431b44e0f3c677722d49352eb30": { "764c0b5706ee7c8505c4e4a557bdfcf617fad088da12e5302081d2d0510f71a1": { "jp": { - "updatedAt": "2026-02-19T02:24:11.191Z", + "updatedAt": "2026-02-24T10:49:34.844Z", "postProcessHash": "7cc0f9bc2b2341c1e1562528d45514f28a42b34b25eb713933947d5f03db723f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.217Z", + "updatedAt": "2026-02-24T10:49:34.933Z", "postProcessHash": "a7cb7d785a3f8a581ee3cf4fee31d5f7d7e8ffecb306312e5853da1c3309f646" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.132Z", + "updatedAt": "2026-02-24T10:49:34.838Z", "postProcessHash": "7522eaa47633716836a793f68e743e4a2a253817eff95d3de9fd749305bb9077" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.252Z", + "updatedAt": "2026-02-24T10:49:34.950Z", "postProcessHash": "c6638bb46b61268ce3efa4a5e9724a6a7f9f6859952405b511d1d8db0fa202cc" } } @@ -42335,19 +43217,19 @@ "febea1a8af326ccd97db3bc68c3ffe9b9d02860dfb6225e2ad85613d0fd14f7a": { "96025027a22efdcf22fae68b1f8666c6d43d7197ab56d27461b40b4566ccacf3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.217Z", + "updatedAt": "2026-02-24T10:49:34.932Z", "postProcessHash": "a476b93f49e2883ea7429faeeb28153524a041b4bf144a2ac000f6878baf8300" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.213Z", + "updatedAt": "2026-02-24T10:49:34.929Z", "postProcessHash": "3acee543b6bcfa49835948a010a46980cc9e31312a47a4f1489824e5a14bbc62" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.216Z", + "updatedAt": "2026-02-24T10:49:34.932Z", "postProcessHash": "0b964cfb4cf5427ddd8bc3f9afb3b4abe70a18d247427491e5882a51a7e3e8fe" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.258Z", + "updatedAt": "2026-02-24T10:49:34.952Z", "postProcessHash": "e6038903ecb016eb89734ae1012d207e6b2155686f6ba86cdbc4171faee3c294" } } @@ -42370,24 +43252,42 @@ "updatedAt": "2026-02-19T02:24:11.413Z", "postProcessHash": "1e497853f89785584d33d71f7bc648cd85ebd470e10cff4105cc95a090c3fe72" } + }, + "913001afeeebd89176b3302de1fb9e6515ca5858bf51b4715ff74bb5df8a3eb3": { + "jp": { + "updatedAt": "2026-02-24T10:49:35.017Z", + "postProcessHash": "c78d0b49d79d84541eedb47c904417aa482eed0b625edaca55553c4c8e32ea24" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.018Z", + "postProcessHash": "27af1930d09f9457155c40cb921ab384bb0436daee54e830f85c531737c5b0f2" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.021Z", + "postProcessHash": "14d7ba53ef944367c8b977b07aab7a56cf59a05846863fe935c9736eaf73c1a8" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.022Z", + "postProcessHash": "7201baad647aec3ed6e5025ed378fa79dfb017967f84d46907968b284d65a3a8" + } } }, "08048e81a0b10f6fc876c8e10e896bba823ef23c25b37974243d3ce6241e95be": { "fa7004278db4a71dffabfc42db57fec5a575fb3dbd7222d4b9792bf19848b5d0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.313Z", + "updatedAt": "2026-02-24T10:49:34.978Z", "postProcessHash": "5bdf0087d75e1142a3d1dd101e41e69e6c5b0cf7daed6efd9d26b99eda6c157a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.320Z", + "updatedAt": "2026-02-24T10:49:35.043Z", "postProcessHash": "feaffb36edadd55053e7d6e78415e1183a9c0fb8a3bf88bf1f98e68fcb6fcd05" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.311Z", + "updatedAt": "2026-02-24T10:49:34.975Z", "postProcessHash": "2f9acff7cd0fe2a74432bd6698ec6dacfc97fa1f59aada810a267ffd65d6a40f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.410Z", + "updatedAt": "2026-02-24T10:49:35.077Z", "postProcessHash": "a96366092767eacd3da68401e9a322ba4471913983e5c1dd9d5e51efe2d0b1fb" } } @@ -42395,19 +43295,19 @@ "184cb7accedb381551a80c780323d8467fa7bd7b87d916cb1c6e2e1927c800cd": { "20fbfd2eb1f5b24eda2f90fd903779fd0847f0d888d3b04f4c7e56590eff1492": { "jp": { - "updatedAt": "2026-02-19T02:24:11.395Z", + "updatedAt": "2026-02-24T10:49:35.057Z", "postProcessHash": "fde398ae5ee5a4da02dbf7673ee17342f1b6f94fa9be124e409563da1b8d6f1d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.398Z", + "updatedAt": "2026-02-24T10:49:35.059Z", "postProcessHash": "57809cee1dcf6e8ab776f7b48afb0ad957bba80a9bb0620a85ab1c13f4c011d7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.394Z", + "updatedAt": "2026-02-24T10:49:35.056Z", "postProcessHash": "373500e667973694f9df9bad891774b4971d39218d6c092ba5555479a01ba56c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.420Z", + "updatedAt": "2026-02-24T10:49:35.090Z", "postProcessHash": "74b846e0bd37443f20d8aa625a53b228da47fc04154c07e9580738b5eff69dfe" } } @@ -42415,19 +43315,19 @@ "1f9e1a47c221609e49eb77fb61cad9a84a56bdb680185de6655f77145049570f": { "d2bac435d9afc706018821f07927cba0b34f6719b4e95a2c242a869d2c00be3d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.330Z", + "updatedAt": "2026-02-24T10:49:34.992Z", "postProcessHash": "61d6291a11e41dead370567ab2c642aa7d36c78ac529216626e0ba8908f2adac" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.292Z", + "updatedAt": "2026-02-24T10:49:34.970Z", "postProcessHash": "16fbc36bd83bfb16ab577f3dae1bc2457d5936880c1d0a88406cde96318b5ca8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.310Z", + "updatedAt": "2026-02-24T10:49:34.974Z", "postProcessHash": "5e11a7a116b8d76636993dfeae670b72c37885fc179f042b7b4c33bdfcbbcb85" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.349Z", + "updatedAt": "2026-02-24T10:49:35.007Z", "postProcessHash": "022381b5e02c5cefefe79eccc9e592414b241abafe504eb08d89800e0d86bd3d" } } @@ -42435,19 +43335,19 @@ "1fd11512dba8b586ce114f0a09f748f438a3592e967e6b26fdb70d49b49b5b34": { "528c254f1d39fc4b566d364735917ebd190685375530f8192104891def887095": { "jp": { - "updatedAt": "2026-02-19T02:24:11.318Z", + "updatedAt": "2026-02-24T10:49:34.984Z", "postProcessHash": "72d1dc54fb1d29f1640706ae4315c47e152c6b764f57580d0ff989611c1636d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.387Z", + "updatedAt": "2026-02-24T10:49:35.052Z", "postProcessHash": "20c56b3cced126fe8b0db5969504858245bd978296f7a2def9f5a7fbe1108661" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.294Z", + "updatedAt": "2026-02-24T10:49:34.970Z", "postProcessHash": "d3317aee80eb3d60697e442bb632b20b5f69050ac06773eaa25d3d27d1b72ab9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.421Z", + "updatedAt": "2026-02-24T10:49:35.091Z", "postProcessHash": "417ece804a17daa5e0129b2aa62642bacdd61382cfa146cde0b80510d905b276" } } @@ -42455,19 +43355,19 @@ "22dec589b8fb9f267b747bb6c4caa91619a82b138da7ac22fafdf2a4d36dbe70": { "540a7500cbfe21ee07e22edbd55ff6af883a067d691b6301d93bbec754f9da7f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.315Z", + "updatedAt": "2026-02-24T10:49:34.900Z", "postProcessHash": "da6cd5da7813254523a8fcb12bc702fc12a5454d8a831059885f94ebdd02e321" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.312Z", + "updatedAt": "2026-02-24T10:49:34.899Z", "postProcessHash": "78f260e5f16a0cf3bbe1e521cbeb0476e41123e243b307d4dd9510775a4ae948" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.322Z", + "updatedAt": "2026-02-24T10:49:34.902Z", "postProcessHash": "39c52bf36813eadf01bd8999d9119f0f987cc62dfec499dc08e93eb2864331d9" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.343Z", + "updatedAt": "2026-02-24T10:49:34.942Z", "postProcessHash": "a8107af940e4d5e487e5f50e3518811c907d10fec1eec8ab5f7bb6ef642e0ef8" } } @@ -42475,19 +43375,19 @@ "25a566b63d1b51f62e85f3301907bb9851c8e295092c6c0cbb274855aaf2075a": { "b194d71f6380d7cf9309e9c89f192bff2723d4c46d48e2aa2b48e736c874804d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.333Z", + "updatedAt": "2026-02-24T10:49:34.911Z", "postProcessHash": "14c535d8c45f60f869bc5cee80e3662774913c1b74e4425468162e2277e3d4bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.188Z", + "updatedAt": "2026-02-24T10:49:34.896Z", "postProcessHash": "b443c0ffe8af36408efa69b1505ab07517e4395e9405a44aa30642d588685715" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.333Z", + "updatedAt": "2026-02-24T10:49:34.912Z", "postProcessHash": "4424a59617fe988a39594ba298197ba6669a126eadcbeed919a95707f10460fa" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.350Z", + "updatedAt": "2026-02-24T10:49:35.007Z", "postProcessHash": "b8a278f5b70b31f4f9424520ac8544564beda56f86435800eef6de72d4059ced" } } @@ -42510,24 +43410,42 @@ "updatedAt": "2026-02-19T02:24:11.349Z", "postProcessHash": "7bd9f3a32aee6ce4d73a9c34f49b786819a1682aaa34878f31dde43105885b6b" } + }, + "2305cd19355692dc3c6834e7ed29b8af637d705754564fe742ae4ecb3f9d6697": { + "jp": { + "updatedAt": "2026-02-24T10:49:35.020Z", + "postProcessHash": "1e2b4483233d5815a8ecd82eabb083f9ba7ed6c4d998b778936e8e3e3426566d" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.023Z", + "postProcessHash": "e378efe93d2523101ecfde12411944b3e30fb50e96f43db227a84c201b587a73" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.023Z", + "postProcessHash": "195101dea0b3168b56a3d6658ac9e3cece5640bf1ce3e597e825f6f951c0ef63" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.025Z", + "postProcessHash": "8860d8f4e531586a8df9e046db96c7efe73a3c3b63c377b72d382afe875ba0e6" + } } }, "356f390220f614f7e13052b738d6bac3386bcb14e99297bc57a7c7bf37c10fd1": { "eed67b4d5e2a37a8d51c1aaf6d8810650b97bd70d00122a88ebb97c212da9ee2": { "jp": { - "updatedAt": "2026-02-19T02:24:11.297Z", + "updatedAt": "2026-02-24T10:49:34.972Z", "postProcessHash": "dd25b4d36bfdc4189178979ad1921af12de98d0cf36a5a078761e454888f9cd9" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.326Z", + "updatedAt": "2026-02-24T10:49:34.988Z", "postProcessHash": "2f2fdb2c3d8fdf720044226e149ed0607dfd573f7780bca745af092b75b49e04" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.325Z", + "updatedAt": "2026-02-24T10:49:34.988Z", "postProcessHash": "fa056c9d817e5707a907a3ed9ac770b13a8001810ddfe133426f2c5c5a87c53c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.344Z", + "updatedAt": "2026-02-24T10:49:35.004Z", "postProcessHash": "43ad7cac2f510f2cbb8041fdaf7f40388171f56840401e85f1e3c262ad515304" } } @@ -42535,19 +43453,19 @@ "35c7bfba55131ad9d6116db29b6547a45eabafbca7d547b5501ea16d51eede3f": { "6a8e1ca55281999c6130ae572325abcb150b29cfd12ebe451133060b6c502a1a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.331Z", + "updatedAt": "2026-02-24T10:49:34.993Z", "postProcessHash": "82ac2e34327e7c4d05c9e8133c2a64df7fc866f66614f42d441660cc0e9485cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.331Z", + "updatedAt": "2026-02-24T10:49:34.994Z", "postProcessHash": "b60b5cffb5d185da2d974a77edba8fc5f5ed42bfb60ebcd4f27972ef5aac0a90" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.328Z", + "updatedAt": "2026-02-24T10:49:34.990Z", "postProcessHash": "31279d5f5b5d93fe3c9fee6d85bd70662dcf4563564a1ef3609700d2a9853682" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.352Z", + "updatedAt": "2026-02-24T10:49:35.009Z", "postProcessHash": "cc3d2de5fd390d0f0de069c870d54b01b2ce2868b0ece7b597487aacba9ff5d9" } } @@ -42570,24 +43488,42 @@ "updatedAt": "2026-02-19T02:24:11.351Z", "postProcessHash": "f42e37c54dce3c1b1cbf3fb84f4b130ee57f83453d89433e820910daef73928e" } + }, + "349e511e77ce20fc2128c05fecce35efc8114a25cee11037e0a5193d664ddbcf": { + "zh": { + "updatedAt": "2026-02-24T10:49:35.015Z", + "postProcessHash": "3e2c868c49fe6f2506128893f22096415f4e26506beace9f07d9c527cd94007b" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.019Z", + "postProcessHash": "fb87925e98ecd5040cca5d23edb813bf98ee2fbb5603b656cba60975fee67af1" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.019Z", + "postProcessHash": "59b2e87bdd1164b2f582f5a6c67d1ffeb73f0a04aba2a625e280f28237acdee1" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.024Z", + "postProcessHash": "ab3a79cbfefd9a326df08875ce2a757495799cfb09096e8528027fc5206abff5" + } } }, "4d4c6c8d13e7ac14a5f189e798e199562f2150ad644328ef3e5b7e6d397aacb0": { "7c2190f84db7a1c33916eca37c2632206233059ad999d42ac355995a785c5d81": { "jp": { - "updatedAt": "2026-02-19T02:24:11.205Z", + "updatedAt": "2026-02-24T10:49:34.919Z", "postProcessHash": "14c3416a05a250809326ed0d4f30879d1c3f46d415a5dea278fde1b97a1aef3b" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.203Z", + "updatedAt": "2026-02-24T10:49:34.915Z", "postProcessHash": "f9fe52f89afae8b2811a0b4fc3ff709ab840d473be27f1ba355b582569373c99" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.124Z", + "updatedAt": "2026-02-24T10:49:34.897Z", "postProcessHash": "fedceba42577594dfb75eb2a1f9921a5e60c4ea97ae6a66aabc33972ce95b3be" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.354Z", + "updatedAt": "2026-02-24T10:49:35.011Z", "postProcessHash": "9fc0b9bf468e686ccc220739b9ff2d435bc6db53a19550748987633d3fd492f4" } } @@ -42595,19 +43531,19 @@ "5f7094d809fbf8e07ca4e02020e14a570a112a588701724679f8375a2bfbecb1": { "d84676e935f15fc8eda0f1c0db79ad9cef52b93ee23e53f9891fe1aaaa1180ba": { "jp": { - "updatedAt": "2026-02-19T02:24:11.265Z", + "updatedAt": "2026-02-24T10:49:34.968Z", "postProcessHash": "ecaae8e73a16d0f7b4de844abc587ab8af3188ca1275a191c55060f42976a009" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.314Z", + "updatedAt": "2026-02-24T10:49:34.978Z", "postProcessHash": "87655e8a34fcbf0ea1d7796529891f0d0baf8a57b646fe0c5a873580fc6cde2f" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.318Z", + "updatedAt": "2026-02-24T10:49:34.984Z", "postProcessHash": "9a55933da8f1d27f591998cddfe52ca0ff07b7cca9b74b4e8eb2da34174a4cde" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.353Z", + "updatedAt": "2026-02-24T10:49:35.009Z", "postProcessHash": "2a0bee9b3b73db654fb922eb8b214b7341318c6e31418eaf6853fa3e2bd138ee" } } @@ -42615,19 +43551,19 @@ "7c4de22baba4a87ac92a5d821ddef4976b0c230d25c52c53dfeac09fad83b108": { "6f7f34ba690c91122f3ae8820b83f342061fa594ff253407eb57463d3c34c326": { "jp": { - "updatedAt": "2026-02-19T02:24:11.196Z", + "updatedAt": "2026-02-24T10:49:34.905Z", "postProcessHash": "c7ca17bb8d4c9a492f0ad683536d862248981e358dfeb9a9a868d897e6978960" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.198Z", + "updatedAt": "2026-02-24T10:49:34.909Z", "postProcessHash": "790f7aed51816b1feef3cbb2031aa4a99846464c37111bb15d07e7e1739cf7a0" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.191Z", + "updatedAt": "2026-02-24T10:49:34.901Z", "postProcessHash": "d0a2c65dfd6dfcaf82af3885dd2951e6b4ff6a0cb7b449c1a003492045d728e8" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.243Z", + "updatedAt": "2026-02-24T10:49:34.943Z", "postProcessHash": "0c4151894bcee99c3d17ae2b4ca06a5fb09689d010fa0a9442b4dc613a048adf" } } @@ -42675,6 +43611,24 @@ "updatedAt": "2026-02-19T02:24:11.248Z", "postProcessHash": "69d73a3f4fc2812861ae6ece512391a9cca39b76c3703a665984699a38046689" } + }, + "c14297c823cf398800482cf21e93c0e65cbc288b7e107bb46d5e4834dec7a925": { + "zh": { + "updatedAt": "2026-02-24T10:49:35.026Z", + "postProcessHash": "489fe8e86ef6f3e0a718e0f7713c33dc2222bb5eba4e0afdd31b1024fca8d5a5" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.027Z", + "postProcessHash": "89482a6b3518d3622e6f6580da70b080f00c2e0c55a53b21b272620ce7715dff" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.027Z", + "postProcessHash": "b289e302d252c43cc33a19ca25deefa1c8aa47229f63746d0df538c998f560fb" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.028Z", + "postProcessHash": "9b5ee6e759706a298dcdfe99f75352580882426209658a6b94cda4f1ae8106bc" + } } }, "9d97fe2dc29c4e251fff04450d9d510ccf9c2e831a0489dda3f038dcc1a6a2f3": { @@ -42695,24 +43649,42 @@ "updatedAt": "2026-02-19T02:24:11.347Z", "postProcessHash": "af0ed397c8b762da09f750dd3a45169af4cfa42de563b7decab90deea6cc8464" } + }, + "ac892a841806a2630b675ffccd0fd80f2291e27a19fee34ca7739b4f644074be": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.020Z", + "postProcessHash": "9ea8d5e5204089ec8c68b83fa14a2313b28351e4c95fd55245a4f5e03fa0315b" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.021Z", + "postProcessHash": "d6312b899030eb352d0c2c97806574bb6635b5ca60e78227ed12c54e4794265b" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.024Z", + "postProcessHash": "359bb78b5dd99002b5cba245c4a042690a150cb41a0fd597069837e65b4e9b89" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.026Z", + "postProcessHash": "5db8612d693cc1bd64a3aa9459d552556278cc47121ebabe9d13f7036cad97b3" + } } }, "9e660b008ccbb63b66a28b42d2ca373909f19186af16b9c41ba664f7930e07fe": { "41b27ab4937c7b922d42316551438b4ad659c0ecc6b4fa06f15edf97230d1798": { "jp": { - "updatedAt": "2026-02-19T02:24:11.130Z", + "updatedAt": "2026-02-24T10:49:34.898Z", "postProcessHash": "c4b963d425cb66f1a82f79a8abd05284866c223cccc84fda0c176905e1294594" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.218Z", + "updatedAt": "2026-02-24T10:49:34.934Z", "postProcessHash": "4dda8e757419cf341dc11b47fd308f79d5217e08ea4830a23a9166863c17f88e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.199Z", + "updatedAt": "2026-02-24T10:49:34.909Z", "postProcessHash": "807a6df5a0b797eeb6483a86b447ac49f46cc83edfad3781d48a2f934eaad85f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.348Z", + "updatedAt": "2026-02-24T10:49:35.006Z", "postProcessHash": "8aa4b1c29e3141dcc277949858b3e4546f98a13cf951492ad4ce44628533cc17" } } @@ -42720,19 +43692,19 @@ "ac6b549d962e823e381f2519f7e5e9ff23ec0d86da8d61b9555feb375c459654": { "0f0b86bed0cbb0312f32be51c009ca122e78f92ff738c6606ff98754fca7f43c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.209Z", + "updatedAt": "2026-02-24T10:49:34.923Z", "postProcessHash": "ae40d38da0ddf713116be06f9d02b62cb0c3b56f58b30a0372d21352f47466d6" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.197Z", + "updatedAt": "2026-02-24T10:49:34.907Z", "postProcessHash": "89d9abc461324a5cdf9d145f25c8872b96575b50143992af46f0359135217585" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.207Z", + "updatedAt": "2026-02-24T10:49:34.921Z", "postProcessHash": "7b0e076a2cbfa21ec68475b160f276bc73bb4348e90f7939c8ec89cda5bfc196" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.355Z", + "updatedAt": "2026-02-24T10:49:35.012Z", "postProcessHash": "03a83953a0257afd964e0200b3a0738cc587015f3128c8e9a6c004a0139e8239" } } @@ -42754,19 +43726,19 @@ }, "afed412613bdd7f8a72fdb97e7821d63a9ff7c6010123673c239f214470647cc": { "ru": { - "updatedAt": "2026-02-19T02:24:11.339Z", + "updatedAt": "2026-02-24T10:49:34.997Z", "postProcessHash": "3bb86604fb52a743c6959ee721647d2d4beaf208e5ca6c360f363f04a7ed1b78" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.340Z", + "updatedAt": "2026-02-24T10:49:34.998Z", "postProcessHash": "1ae1a2f894e7daf4223e5d3c4de424c58a46366f768281d49772ac76a88e97db" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.340Z", + "updatedAt": "2026-02-24T10:49:34.999Z", "postProcessHash": "5380ba33273c04d0e61e3914af8855a041944a8db03349d10ace2f087e7056d2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.344Z", + "updatedAt": "2026-02-24T10:49:35.003Z", "postProcessHash": "b350a470f53f8baf4d1baf0088ea32f3e3d895922755a990591ad8e41d6bbd55" } } @@ -42774,19 +43746,19 @@ "d613460c9b562b02355db0de5e4d5e795d93c8356530d72c4e6943e450e0cd79": { "21c14d0cc95de05e66c6024e0bc731b06c4934474cc10eeacdc8bce66de73868": { "jp": { - "updatedAt": "2026-02-19T02:24:11.218Z", + "updatedAt": "2026-02-24T10:49:34.933Z", "postProcessHash": "0b66b0d78301e9b97a0558ae68d27488ade7b319feb52598147084c9888026f5" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.206Z", + "updatedAt": "2026-02-24T10:49:34.920Z", "postProcessHash": "02648dfaab001e9c5826da5fdb57e107f6cf8c60e9db19b52cff3ccf50499275" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.203Z", + "updatedAt": "2026-02-24T10:49:34.916Z", "postProcessHash": "2bb646c326d19e003a7337e2220c3db31e2679539d339223906497c17bf25627" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.347Z", + "updatedAt": "2026-02-24T10:49:34.948Z", "postProcessHash": "ab4aa8d0b43beba65211afafe42922a0381070c5e5458a091ef8b2059dc0221f" } } @@ -42823,24 +43795,42 @@ "updatedAt": "2026-02-19T02:24:11.355Z", "postProcessHash": "e4353bbe4d1b1e0446118dd4e2a255d99ed94a582eda08359c52811f78958169" } + }, + "e04afab9efffbf5351bfd71b0d39083803323954f731b5c3c1b5d1567700bb75": { + "ru": { + "updatedAt": "2026-02-24T10:49:35.013Z", + "postProcessHash": "65949f732e4b9e33174e8bc1a59a5d0f4520bd50688f2be710fb912e9c91f2f9" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.014Z", + "postProcessHash": "6977ffa181df80c71c6762c96f3491b26482840aa32a02bfcec6dff63975ef7e" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.016Z", + "postProcessHash": "c214fd4775f54356e4cfaff20a957c821071e67af170bccb634baa3b828b5de5" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.016Z", + "postProcessHash": "7136166a4032fde9565db34e6dfa71831478a42c4ff827e43f7eebda7572cd4b" + } } }, "09892c5c8c7770850dc4f12c85271ef2eb4054c5c9c132e0c016cfae2c946ba7": { "dc7fead9cdbb478c71bec3f2d3de2e7f32d848c704aedac7d98e3ecb52061139": { "jp": { - "updatedAt": "2026-02-19T02:24:11.376Z", + "updatedAt": "2026-02-24T10:49:35.037Z", "postProcessHash": "632d09e472ec32e00a2e471a3d79457d7576a9fbc699db060a916476bc26c982" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.372Z", + "updatedAt": "2026-02-24T10:49:35.033Z", "postProcessHash": "fb5a0c6d12049d3fefb2aa2d1ae14d6b21635acee7b2f6ccf129112f27f3eaab" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.378Z", + "updatedAt": "2026-02-24T10:49:35.039Z", "postProcessHash": "2cda7ae04f89b8ef6cdb6de74394b5e5680b581a6f38ece1eb12ce968ca0c166" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.416Z", + "updatedAt": "2026-02-24T10:49:35.082Z", "postProcessHash": "610ef2849a74801bd417882fb9fbab8346ccfbe4a2cbe321dc2223ca12749f5e" } } @@ -42848,19 +43838,19 @@ "2fcab50b97bbc9aee5c0c03f5a35d374e8c3cdd3db10dc78091477c88a2c1277": { "0a0ef87ced393ab506690dadba9b95b3965777f4f3358eb4d004ea111fe10a51": { "jp": { - "updatedAt": "2026-02-19T02:24:11.316Z", + "updatedAt": "2026-02-24T10:49:34.981Z", "postProcessHash": "af570d0b483c45b29c6f3001caaa0767458f576a1b8b7a368cf3e75ddff5fc5e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.297Z", + "updatedAt": "2026-02-24T10:49:34.971Z", "postProcessHash": "7081803788ced660b21506b54ba469ab3812f4edd3088925f8d3d50887184007" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.317Z", + "updatedAt": "2026-02-24T10:49:34.982Z", "postProcessHash": "2d65791ffdf5a2c6c751445178e391674a0071cd6ebf18d0efc1526725f67c47" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.419Z", + "updatedAt": "2026-02-24T10:49:35.088Z", "postProcessHash": "213333efe288ebe5c0659afbb1f4f538d90c2bf92ad0477146e88f444eb9b6ad" } } @@ -42868,19 +43858,19 @@ "326c8895de68add9af3b55b704f3bfc1105c0f592e4c66fcf4716d6ad3d6bd4d": { "67ed218e943e01dfd5ac6127ae3673f4c5704dc7e706fa765d94c11dd7f80e59": { "jp": { - "updatedAt": "2026-02-19T02:24:11.381Z", + "updatedAt": "2026-02-24T10:49:35.046Z", "postProcessHash": "732d8ff45002ed0992e1ed56bf1458754e56a6254ffd2949f49657fe152653e8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.384Z", + "updatedAt": "2026-02-24T10:49:35.048Z", "postProcessHash": "ad1ea78962977631a8cba53ba78ea57e7de8956558d23580136da9ffeaf03969" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.382Z", + "updatedAt": "2026-02-24T10:49:35.047Z", "postProcessHash": "ba7173db9b1c125c1a50de3d3ab012a262ff84c403b513818c7a015d78de033e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.418Z", + "updatedAt": "2026-02-24T10:49:35.087Z", "postProcessHash": "13de3f6f851e2b299ddc2c4783b3172c6787dc474c89113263ff516336dd379d" } } @@ -42888,19 +43878,19 @@ "3aef4f3512c85d4057c69557fd85794d38328c9e61205b126b37d4de45a963e9": { "06d1c97a15302255ab6d9a474e72aa8993ccc93d6749dfd1e5e94970da469d29": { "jp": { - "updatedAt": "2026-02-19T02:24:11.374Z", + "updatedAt": "2026-02-24T10:49:35.035Z", "postProcessHash": "bf9cb3b8a48fc29d654708b37664bf89f3a255f9b8e10edc927be6eacdd9e0c8" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.361Z", + "updatedAt": "2026-02-24T10:49:35.033Z", "postProcessHash": "e303e842bfb145344084363e439ab2eaaa44d2c902730bf6058048a90644226e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.296Z", + "updatedAt": "2026-02-24T10:49:35.030Z", "postProcessHash": "65bdbaa1fa32ee120e295edeb8cf3cb89fb75f7c7f938e7da86bddcd8f05aea1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.420Z", + "updatedAt": "2026-02-24T10:49:35.089Z", "postProcessHash": "8a77f6c30bf20132525235601fffa6531e5955f26ff36c4678f4efc92c7d8b1d" } } @@ -42908,19 +43898,19 @@ "467b72fd8dba8502decf3c42bc9358fa8c4d3014dfcfe6b42bb8f4dce198fd62": { "a67f1de09a8a84f9d6443a0df3a49146ce63494d30ed1c458b9929b32d5a4b7b": { "jp": { - "updatedAt": "2026-02-19T02:24:11.317Z", + "updatedAt": "2026-02-24T10:49:34.982Z", "postProcessHash": "496f4287624679c9e8c9ee8a0cdf74cfc9c5d91999db3957847671633f8ac828" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.325Z", + "updatedAt": "2026-02-24T10:49:35.048Z", "postProcessHash": "c059adcda217f2c5ff92a90a5463b32bd07853d7c83c3ac61b5e16baacdb8bdd" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.385Z", + "updatedAt": "2026-02-24T10:49:35.051Z", "postProcessHash": "382a4b99c544d15f0b83bb5653f20847b5d845eb9335eb5063478324555d93cc" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.417Z", + "updatedAt": "2026-02-24T10:49:35.084Z", "postProcessHash": "26c2552632347667ab93bf55269d333b176c054f08c0814807a8c10662f52158" } } @@ -42928,19 +43918,19 @@ "4a37cce1f00cda917ca47dd0a1a69934772f9e50b5150732050d2e9f70a019cd": { "f5d8080ef6746049caf9a9d8037b9090eeef2259b54e9f42ef3e6a135b796e6b": { "zh": { - "updatedAt": "2026-02-19T02:24:11.377Z", + "updatedAt": "2026-02-24T10:49:35.038Z", "postProcessHash": "e4831da908b6ae9f54e621fc0bffe3b8bd6b7c05c58c4b3eb9891f0671594993" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.390Z", + "updatedAt": "2026-02-24T10:49:35.054Z", "postProcessHash": "a322af5e5d17fe3db2df00adcbc9699f15165c72e4fe17d9bc4af2c5c05c6621" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.381Z", + "updatedAt": "2026-02-24T10:49:35.043Z", "postProcessHash": "eff2772fb9661028ae48405429d9165157d7f2c96f67b013245161b4d24b2045" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.411Z", + "updatedAt": "2026-02-24T10:49:35.078Z", "postProcessHash": "d9e09147e24ae7369d56fdd7edb900db226c9c7f92e2f0518bb704d71a5ceba0" } } @@ -42948,19 +43938,19 @@ "4e436a71846d9aca6f15dc8c5445f526f911657bccffd77d51b5a4689a95bbf2": { "1ada5cacc80d636b19794a43afd3d71292a74c9e3f3fa93f182b39eb84ad7355": { "jp": { - "updatedAt": "2026-02-19T02:24:11.330Z", + "updatedAt": "2026-02-24T10:49:34.992Z", "postProcessHash": "f66628f0f18c8dc0790f09bf62613600442133100539ec390f6a609afa53b3ed" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.329Z", + "updatedAt": "2026-02-24T10:49:34.991Z", "postProcessHash": "a0b363af0b74664e12c204b77971de4046293060095ced3ebf6ed2a94b341064" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.335Z", + "updatedAt": "2026-02-24T10:49:34.997Z", "postProcessHash": "018bf15edf592165252f32ea6103a3b5c4bfb5c469df70d420ddd0e890aa8e21" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.342Z", + "updatedAt": "2026-02-24T10:49:35.002Z", "postProcessHash": "150b27b22b17eba1d06b62767c605b11990ba3858aec8e50900eb9a34053de66" } } @@ -42968,19 +43958,19 @@ "625ac60abe1e4f7ce4df8ac9bffd1f30f906501c1b636c41e7dee039c1280348": { "eaab285929dea7d9ff8f319faad61a28e866d384a56d15e9eb7a2ea10d96b567": { "jp": { - "updatedAt": "2026-02-19T02:24:11.311Z", + "updatedAt": "2026-02-24T10:49:34.976Z", "postProcessHash": "8ac2228e7233d25fda28ce39adf2d304daac925193538a51f1637b826f624eff" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.389Z", + "updatedAt": "2026-02-24T10:49:34.995Z", "postProcessHash": "a27336862516c58ddf05a6286e153a73440c65f16d9fd8ffa35f5a5b07e1be72" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.383Z", + "updatedAt": "2026-02-24T10:49:34.989Z", "postProcessHash": "546aa1752838a8035daa2325ea84021fec65cec7830e3f1f01f6bbafccb66017" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.414Z", + "updatedAt": "2026-02-24T10:49:35.005Z", "postProcessHash": "5ff63100d4a082145a15ceaf75224541b4b8cd8004dcb2694f142651609b9f77" } } @@ -42988,19 +43978,19 @@ "67c93fd175b134b8986f749e1afceefc6f06a4487d9ef161d2ea74e2be618233": { "5418ed61ccd90e17c44bbf1d4246b7b4344bcf595b331971dc74df17def6dcab": { "jp": { - "updatedAt": "2026-02-19T02:24:11.396Z", + "updatedAt": "2026-02-24T10:49:35.058Z", "postProcessHash": "25f3fd308a39776be82d566f9a650c6e957eb840d28f87a812695e66027a54be" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.395Z", + "updatedAt": "2026-02-24T10:49:35.057Z", "postProcessHash": "b057847421d12119665cfc3c0f8b01d978c734551982b1e2ce73de98ab9593be" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.399Z", + "updatedAt": "2026-02-24T10:49:35.059Z", "postProcessHash": "09f44e40dc451609dab8f078cdfc72ec4c354eabda4aeab5bbc94b4f36c215b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.423Z", + "updatedAt": "2026-02-24T10:49:35.096Z", "postProcessHash": "6732b88990b6d2d92715f8fd5988ad90caf46f3f91a9351e4b5b2bb3d090a042" } } @@ -43008,19 +43998,19 @@ "8719f0b66c142c6db2cf8773ebaddac3b3d310bd046ca6effa5bb15e73d1a00f": { "9c001ffc30fb8da63ebd6c0931ef3efb9ac209edc160ae449428bb65298622c3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.312Z", + "updatedAt": "2026-02-24T10:49:34.977Z", "postProcessHash": "a8f0ea88dba257f1ffe83d3f71b750c1824e97ac4fc04e1b7ff400dd11d4362f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.264Z", + "updatedAt": "2026-02-24T10:49:34.967Z", "postProcessHash": "cec3f0db90c08cd2a951970d124681fd7427728ba0ea036cbe7a9cfb381f2ab6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.316Z", + "updatedAt": "2026-02-24T10:49:34.980Z", "postProcessHash": "f03c5e60fe1b55e9752b819b796cdaa01863aab7431051e005544a30df3e8f45" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.412Z", + "updatedAt": "2026-02-24T10:49:35.079Z", "postProcessHash": "a68317b458de753c19970622928a6252c1a0249b32c25d6c12f7d4e31872f903" } } @@ -43028,19 +44018,19 @@ "89ea779c156a999fdf17c325da1e81dd07a635d696dfd5a115e631154d3dbb2a": { "ecc1acdcb21d77d65ebcdd760265565e99254e242903d6b4483da0a6b4a59482": { "jp": { - "updatedAt": "2026-02-19T02:24:11.401Z", + "updatedAt": "2026-02-24T10:49:35.062Z", "postProcessHash": "915d96fd566a935384ab6ba045ed638f85f4fe27e171a632138af8116ed3f065" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.391Z", + "updatedAt": "2026-02-24T10:49:35.055Z", "postProcessHash": "152fe0f8ce9c03615dbd21f271cb9f700a1a5f080bdfa0e12f97652ec17fbccf" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.262Z", + "updatedAt": "2026-02-24T10:49:34.966Z", "postProcessHash": "e7627be55af8758625b1da9b2b4c818c39106e4ab82357b8ec092b660a6f322d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.422Z", + "updatedAt": "2026-02-24T10:49:35.093Z", "postProcessHash": "f96ad586ef2a8d902b323e766a5f0e35c92f310cf937d4efc0fb47e2a033ddfd" } } @@ -43048,19 +44038,19 @@ "9b137d113f115786a055cd8fbc160635ea3e53512ae73d845fd749380bc1f381": { "0e565f9a4b2a92384daeaab520393c6426e3c190a2625839b4ead735b7a693f3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.263Z", + "updatedAt": "2026-02-24T10:49:34.967Z", "postProcessHash": "425b4408026d2ad03f5c67d191563399b5c885928aa452756695f0f85b1d0c99" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.378Z", + "updatedAt": "2026-02-24T10:49:34.983Z", "postProcessHash": "125f87ec8082f76544f60c6c776a8c1dee98133f32e6e83f84799d0f938d2ce9" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.379Z", + "updatedAt": "2026-02-24T10:49:34.985Z", "postProcessHash": "b6781efa274f0bd72d6d900144c6f64b3f98bae121157c0edd7eca3d15fa7f53" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.561Z", + "updatedAt": "2026-02-24T10:49:35.094Z", "postProcessHash": "2c96fdbe55408a9cdc40c5531755059a12187d4ddd1d88a902668d8423099dd1" } } @@ -43082,19 +44072,19 @@ }, "c77f364a0173207bdf63b71a2eec470739a4d52815f42b8e41e3749bad480fec": { "zh": { - "updatedAt": "2026-02-19T02:24:11.423Z", + "updatedAt": "2026-02-24T10:49:35.096Z", "postProcessHash": "cd5246314acc539c0b27d35aacf9686977faf684c01badc631d4f116b835a542" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.423Z", + "updatedAt": "2026-02-24T10:49:35.097Z", "postProcessHash": "805d876cc58b0c4502a05029baae220aa85011ebb5cf37a86b8270a3130e0568" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.424Z", + "updatedAt": "2026-02-24T10:49:35.097Z", "postProcessHash": "6dc7dd6de487415350631a83037aff3548d95446e6569cfdcaa84f84f997115d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.409Z", + "updatedAt": "2026-02-24T10:49:35.076Z", "postProcessHash": "21d6956b4069c44fe77a80bb3cfd063a85ccf2f92ec97ac60168a5dc90e98e0d" } } @@ -43102,19 +44092,19 @@ "bc010b67445245013c815d8c8dd2a711a400f2ac89689de6a705df179ad8c706": { "58a5d26b93b4269bbcac95ceeeb1329954babd6a907538f5319432f3ac4e6b22": { "jp": { - "updatedAt": "2026-02-19T02:24:11.361Z", + "updatedAt": "2026-02-24T10:49:34.973Z", "postProcessHash": "56bcfe5bb8dedf3a6232ddbf6896401e0d81bda05a29b512d13fca6a2584b1d0" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.380Z", + "updatedAt": "2026-02-24T10:49:35.042Z", "postProcessHash": "816f4d56a3332fd4215dd83d60b36a4fd55fa1af774f72104359756212f7a223" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.360Z", + "updatedAt": "2026-02-24T10:49:34.971Z", "postProcessHash": "cf9b395e6b026c8b7a225686f6466c1adbd80fc4b9d62f9590f457e2982a7da6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.416Z", + "updatedAt": "2026-02-24T10:49:35.082Z", "postProcessHash": "13b2f05af7d25132dfe866b83769d6e1bbd7e70c3ac031a43fd15cb716cc4c57" } } @@ -43122,19 +44112,19 @@ "c0ac70d88c31f863cc7a3f822cfa525fe69266c4bf831f94c2029759cb9726db": { "b931df20b4f6c77ea8d226087a40d67fa3ecf5f9d09ed73922e7aa8f8f763fd7": { "jp": { - "updatedAt": "2026-02-19T02:24:11.311Z", + "updatedAt": "2026-02-24T10:49:34.975Z", "postProcessHash": "d1f8819cdf7f564ddfe0b3c3455cf6e79ba8c689301a90cd441929868cae3d66" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.313Z", + "updatedAt": "2026-02-24T10:49:34.977Z", "postProcessHash": "7a18854ee85b30ad54706824f8db4250e6122c22d15714fda132497fff611c05" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.384Z", + "updatedAt": "2026-02-24T10:49:35.049Z", "postProcessHash": "cb196055456c6a601828cf90f5758e7ce75f7040dab8d7af58468f923730ed31" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.410Z", + "updatedAt": "2026-02-24T10:49:35.077Z", "postProcessHash": "65e5c2e8810306121444924e734e05ff682b9fba71daf3f9581d69c7b580d60b" } } @@ -43156,19 +44146,19 @@ }, "da45a7091580c3c04853a46680d7736e2fcf2f520eb010bb9213715bf2dc2c0d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.402Z", + "updatedAt": "2026-02-24T10:49:35.063Z", "postProcessHash": "feec2fa7550c3bfa15e929dacb07784f5a69dfb616b73b6c8bd67c4b1af73b93" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.403Z", + "updatedAt": "2026-02-24T10:49:35.063Z", "postProcessHash": "f8c6c040ae72f06ea4c94cd5d03a115d50b64f9af3179c7e25008abd575493c3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.404Z", + "updatedAt": "2026-02-24T10:49:35.065Z", "postProcessHash": "3d03a9b798e04fc44796df176c7da76d95a72e448bb9361339ad2a08ca404553" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.422Z", + "updatedAt": "2026-02-24T10:49:35.095Z", "postProcessHash": "6d500f022a3a517a69d54cb273355bf08d255989e71637f1a43509f2c5990a12" } } @@ -43176,19 +44166,19 @@ "d61225a37fe0c4d963dda12e6171915748b61bb4ea252b20fee7017863e0f8cb": { "e22f186111d1f322fd63ea2a2ab6b8dabcc933c9f1a1d547efbcaa1d9f78faec": { "jp": { - "updatedAt": "2026-02-19T02:24:11.315Z", + "updatedAt": "2026-02-24T10:49:34.979Z", "postProcessHash": "535e6ff0e7db7601d5365aedc18ee0e8fe6c39d1c543a802c9aeadb069771c04" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.310Z", + "updatedAt": "2026-02-24T10:49:34.974Z", "postProcessHash": "9d89a2d80ae2f34e84193f25830475cf3b5de828127b7e470461686acfe6c18b" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.319Z", + "updatedAt": "2026-02-24T10:49:34.985Z", "postProcessHash": "dbd3519d064ea1ade3b05e69e08dfec582c8781c26fe0f79e820bee399b60e0f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.417Z", + "updatedAt": "2026-02-24T10:49:35.084Z", "postProcessHash": "b5e4e25098b4fa21daebf39ee18f2e274c6b7551b6f0c137bb689a882956381a" } } @@ -43196,19 +44186,19 @@ "e59d25e659a24273c3eef05daa226fdbfb119134fc9c360fb8f10fa1eda0bc5d": { "cea9fed32032cdfb1fc07ee3fd025b189b279642029231324022cc8c275879fa": { "jp": { - "updatedAt": "2026-02-19T02:24:11.320Z", + "updatedAt": "2026-02-24T10:49:34.986Z", "postProcessHash": "48735c174384e90a1a690df49dd64c531b95f94ef6802bf694c734da1feefc94" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.329Z", + "updatedAt": "2026-02-24T10:49:34.990Z", "postProcessHash": "1a3d9ec2edc396f302fd1c63dce5ce73164b51eea7607699bb6f8eadbbef2faf" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.320Z", + "updatedAt": "2026-02-24T10:49:34.986Z", "postProcessHash": "46b66926d2fd37ad50ecd687fe7f065c9e5921e31017deafd2bfac5e01b1e3bd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.344Z", + "updatedAt": "2026-02-24T10:49:35.004Z", "postProcessHash": "ce0d4e00e6bfd2d6f0ab9e0da8656aacbaefa6e29fceb64fcfc9bcf735953f10" } } @@ -43216,19 +44206,19 @@ "ebcf5c14bcf3f123a8337f0e4d01711d0d5350b19f8fceb4989ba4967a454d71": { "fcbe8a223dbb47bb59f5c3e6880beb175753d21025800e5178cb322086eb6eb5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.299Z", + "updatedAt": "2026-02-24T10:49:34.973Z", "postProcessHash": "6d64a848db1c575485aa84e583b259a675c2f8ff2298d42f8f266314322bb403" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.386Z", + "updatedAt": "2026-02-24T10:49:35.051Z", "postProcessHash": "36de29fc0f7b41e936ada9c6ef995aa1940d2ee3fa88daaec30e5dfb546a6712" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.319Z", + "updatedAt": "2026-02-24T10:49:35.040Z", "postProcessHash": "e0f98e60cc0c57f2c6cdde68fafc352e24b11b9dbf8bdaf5c05853d151e4efe4" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.413Z", + "updatedAt": "2026-02-24T10:49:35.080Z", "postProcessHash": "8355e2e6269526d04e5fe061a1ee3d5864843b46ab8f1457f56a3c5046a2dcf5" } } @@ -43236,19 +44226,19 @@ "f8131ef0252b8ff50e0e16a5c5a263d8c4c19d0d5eed0109ad5127d0b7f1e617": { "10eec051f15e6d2b7349c390f8baebb76014741ed3b8e31aa94bf797e786189b": { "jp": { - "updatedAt": "2026-02-19T02:24:11.316Z", + "updatedAt": "2026-02-24T10:49:34.981Z", "postProcessHash": "6a48ff9908570688b65411ac6d3cb41041bc7de41aee501e9a0152ccc0457147" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.389Z", + "updatedAt": "2026-02-24T10:49:35.053Z", "postProcessHash": "fc8fbd3b1950658d18bdfc13c9af174719317a036394715c28dc65aed5ff6cfa" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.321Z", + "updatedAt": "2026-02-24T10:49:35.045Z", "postProcessHash": "93cf99c5d5b2bb3355183ca85e0dec9a6a0e1c032f7cf08a9e945d896db31cca" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.417Z", + "updatedAt": "2026-02-24T10:49:35.085Z", "postProcessHash": "0defba54c4fdbaed1fbd15bf4c508bb325ce6894bc79a81cf5e138fad53d97d2" } } @@ -43256,19 +44246,19 @@ "57ad9bdcde77c82a8b9abbf11d3820f549bfb779a29aa35c949fd4b27ff2f01f": { "1e38948feed7f1b2a7b35c47b430e56f07e2438c56f10e45d636ec500990a43d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.379Z", + "updatedAt": "2026-02-24T10:49:35.040Z", "postProcessHash": "c48fb77112f14a56eb49b69042ddcb6ba956084b607256897b6a413d20048940" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.375Z", + "updatedAt": "2026-02-24T10:49:35.036Z", "postProcessHash": "e98825ef53eeaf680b4c107e175a2a75a8dd1a493d600129ce8d20add6aeeabe" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.264Z", + "updatedAt": "2026-02-24T10:49:35.029Z", "postProcessHash": "17437eb9f7a1276d4acb64d8da81ad69f9d74b0b151d73f16e532c35f10ec049" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.415Z", + "updatedAt": "2026-02-24T10:49:35.081Z", "postProcessHash": "84882a0db337e518c22d93ed088758fd75635460879e956e35a4775e7a6ce901" } } @@ -43276,19 +44266,19 @@ "7ceb6e3c9247297b0f7f32b5bcc5fdd805490fb8b1ac4cb176afdba619355e4d": { "ac6e6531f103ea9f5613e39ee61cfcddac7133be00040a3d2577c40543aa27fe": { "jp": { - "updatedAt": "2026-02-19T02:24:11.377Z", + "updatedAt": "2026-02-24T10:49:35.039Z", "postProcessHash": "303aa162e2dbaa0473b8540ac44d7fea75db01c83bd62e8ed0f46099c234034f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.373Z", + "updatedAt": "2026-02-24T10:49:35.034Z", "postProcessHash": "fa4fd9e5961703cdae8ab724ebb2f123fb5ed8aa2d36df9b8f643be033909152" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.383Z", + "updatedAt": "2026-02-24T10:49:35.047Z", "postProcessHash": "227466c96fa33200e377b3c4341f18f1b3adcc8170d34ce93af1be535b1f88ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.414Z", + "updatedAt": "2026-02-24T10:49:35.080Z", "postProcessHash": "af2cb345156561ad65afb93cc86b15e6011e53205bcea03bbefd96c613b61db7" } } @@ -43296,19 +44286,19 @@ "b623b9673e0f28805a4afdfc8013cc9c06d3af3bc31cc33238b2d1a449d4888f": { "141f6e9d777628dad68e29e4db62adc7411f17cbe61f3611de81835eed95ff15": { "jp": { - "updatedAt": "2026-02-19T02:24:11.360Z", + "updatedAt": "2026-02-24T10:49:35.032Z", "postProcessHash": "6b0c20952614113bfbb89ab4740d12cb1aa8ef7b8f890da73fbe0f65e88937e9" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.359Z", + "updatedAt": "2026-02-24T10:49:35.031Z", "postProcessHash": "fc221a8e569b18ed573fc911b504f91239c344a4c7c751cea1783e965b6d31cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.261Z", + "updatedAt": "2026-02-24T10:49:35.029Z", "postProcessHash": "308901b44ae619fe800279a08beea12b259a91e00706235323ac69aa20116071" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.419Z", + "updatedAt": "2026-02-24T10:49:35.088Z", "postProcessHash": "f666a6477ee66fa18b25186a0623a98401b0d5344a136a13d54a6b040a333e11" } } @@ -43331,24 +44321,42 @@ "updatedAt": "2026-02-19T02:24:11.563Z", "postProcessHash": "b8bdc6efc976dcc9c1f5be7285e633782a4f7ef94ce7518e32d6c08d6b07452a" } + }, + "54ccef9ca59eeb16fe5013fb3e44c0dcdddf9d586122639c6a9e291c18018291": { + "ru": { + "updatedAt": "2026-02-24T10:49:35.214Z", + "postProcessHash": "e9e03d641544791df72598ac662dcc0472670b3047bd178d5b8a325cf6b4dcec" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.215Z", + "postProcessHash": "824d68d61336b87fcaa18423a65ed701047a9943b606275c71285fbac43aeb8b" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.215Z", + "postProcessHash": "bd4bca7c6bd1262a8a4d70d581ed64a2f5307e10c237934c78786e2f67473764" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.216Z", + "postProcessHash": "d6d38fc48b21c9641e84e899f4bd0db982dd0bcafeb132916d328b70b70d6486" + } } }, "cbd3fd46a4918ee9b9919e72d00bd7ce3d00418bb1705c843c677adb3e595a3a": { "0613ad7af0509f61658a0f7a5e17e617139bdf209f37e63f862416353f1241ef": { "jp": { - "updatedAt": "2026-02-19T02:24:11.388Z", + "updatedAt": "2026-02-24T10:49:35.052Z", "postProcessHash": "c8203bebb46f79cbdc3dec75fd42cbee0dbbf1bb45684abc84efa9093bb40765" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.385Z", + "updatedAt": "2026-02-24T10:49:35.050Z", "postProcessHash": "5907fc2b4505277414e95566e5700d4ef0f930470b36f6a5ca2b3e54d399933f" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.376Z", + "updatedAt": "2026-02-24T10:49:35.038Z", "postProcessHash": "0880a8b6f0341e7df00a52a309ed109c036eb7f990f3e4b76be607debafaebf0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.421Z", + "updatedAt": "2026-02-24T10:49:35.090Z", "postProcessHash": "c67d7786bec762f380fc40bb22db3a103a9230acafe421fae3fa5cc9b97210e5" } } @@ -43356,19 +44364,19 @@ "e1167cae2cc6ec3ff98f99cc5fdc814c1613d183ffc5a294e5002a5c76629f89": { "bdc0fd08e9185e494c67e0405a76d6b5ff3f2a66fb66986f38ad9fb1486504d8": { "jp": { - "updatedAt": "2026-02-19T02:24:11.380Z", + "updatedAt": "2026-02-24T10:49:35.042Z", "postProcessHash": "c78cdae4d124f74132165e53864be8484f3930e3c53022033e029aaaef493ea2" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.390Z", + "updatedAt": "2026-02-24T10:49:35.053Z", "postProcessHash": "1422aefeb3b2521beb5de27b270a2faa62380029a19445aef3b415537fe02b4c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.360Z", + "updatedAt": "2026-02-24T10:49:35.031Z", "postProcessHash": "2790d51cf3c85638b99b1db32a1df757a2009e07194dd54f35f8c3ac7d16784b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.418Z", + "updatedAt": "2026-02-24T10:49:35.085Z", "postProcessHash": "7969be4d37f98dc7f135d074cbdf08f944f0637dba6c24ba65084461a0221962" } } @@ -43376,19 +44384,19 @@ "fddeb9c1bb988ad91fa2ab2fd48f16446790394aee1f2ea892b74b4703663d8e": { "40a994cb1728118007e9bcec1d1e95be3ceda608e471c1a73b546b7c438f8ebe": { "jp": { - "updatedAt": "2026-02-19T02:24:11.374Z", + "updatedAt": "2026-02-24T10:49:35.035Z", "postProcessHash": "15c0e17fdbac860c94e3987a99729982dc02688676f74755163e3cec85d14cb3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.401Z", + "updatedAt": "2026-02-24T10:49:35.061Z", "postProcessHash": "e98c2d78fa6d3e9ab110b8c604a178b017cb588091ec8a97d05412fb5577c7a6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.391Z", + "updatedAt": "2026-02-24T10:49:35.055Z", "postProcessHash": "1f024e9ee025effddff9a714f14d140ed5ec5fdd84a0e447f69252f96b760e54" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.415Z", + "updatedAt": "2026-02-24T10:49:35.081Z", "postProcessHash": "81b2800f97e8ac64d187b3e9b0586543e05d1332eb634e272354b2fc762b025b" } } @@ -43424,19 +44432,19 @@ }, "b2aec6c07f9f18f692c58b656463842be38bf4cee8665d096a196e21e58a0554": { "ru": { - "updatedAt": "2026-02-19T02:24:11.760Z", + "updatedAt": "2026-02-24T10:49:35.396Z", "postProcessHash": "b645f0e229639b465252ca94d0a2f0070b4aab0be25a46c9dd977cb9620e17f2" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.761Z", + "updatedAt": "2026-02-24T10:49:35.397Z", "postProcessHash": "1123e61addd64c9e6cf2d8f87b89ca16b4bceab79adc4b113832e301c46509c8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.761Z", + "updatedAt": "2026-02-24T10:49:35.397Z", "postProcessHash": "02395455b334790c8a96fd28b64e45f13cb30640a0a35a26c8a128029e0c65c0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.773Z", + "updatedAt": "2026-02-24T10:49:35.405Z", "postProcessHash": "a768ff83aa0298852cc9e3a246a136413640cb0cb6abd8a7fa03182ff2cbf72a" } } @@ -43444,19 +44452,19 @@ "3a9bf422a9a85629cde7696a05524d19ff37ff8a14e26aa9d363708d50ca69ae": { "3106e22f04396e24e2bcfddd311b6bf015d441abff426e8f3e45320a55f20c46": { "jp": { - "updatedAt": "2026-02-19T02:24:11.739Z", + "updatedAt": "2026-02-24T10:49:35.389Z", "postProcessHash": "a78788310d4dff20d37bf8e48ced970475d928276c91c35a249a14f70a5c9adb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.758Z", + "updatedAt": "2026-02-24T10:49:35.395Z", "postProcessHash": "1244ce9bc3ae166701eac94a9273605cb6f1de731234ed57c5a8decaf1f025f5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.741Z", + "updatedAt": "2026-02-24T10:49:35.391Z", "postProcessHash": "2b5f46ad0047fb36dece04d2d814647d5706a5faf1cc21819cee155a77710e27" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.779Z", + "updatedAt": "2026-02-24T10:49:35.410Z", "postProcessHash": "8b3f5c875e0d46a1f86358adae7e2f88273ad9976674167ac8c3e6c483edd51c" } } @@ -43493,6 +44501,24 @@ "updatedAt": "2026-02-19T02:24:11.841Z", "postProcessHash": "1692c8f4c9fdb5ccc801c3731ab7153ba38b1fb6b37b5724b6ec0e4c3f5ba2f5" } + }, + "e08932abaeee18379dee78a36a6c7b2660e725207adc76e77b8c7e477be17414": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.423Z", + "postProcessHash": "93f479d9a79ada40b534acf6d9d594d3e472c8be7b9cd2b4aa71abb02280bf2f" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.424Z", + "postProcessHash": "91caf64025251a073ef7bb8d19e4e6cc01c85c926c01dce0bd450778cde7d943" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.424Z", + "postProcessHash": "d3218d7991ef0e97ee2daaaacadcc1c57d8ddd91f22d81a830a1399b07ee7ce0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.425Z", + "postProcessHash": "61258ab96589b1c874d060485e1dc4b80d1b43a385f9ba804c569e139407e8a3" + } } }, "190291cbeb8e03da636d545882454df1f5969a43233fa8547a340888416e0d7a": { @@ -43512,19 +44538,19 @@ }, "7c57bc57ee3573e46b3056c4b869da3efb1c3f30f3c14087efd83ea78b0b5ccf": { "ru": { - "updatedAt": "2026-02-19T02:24:11.846Z", + "updatedAt": "2026-02-24T10:49:35.542Z", "postProcessHash": "0663c0cf51a7a3e942425d8b913aba12f58638cdddc792bb73f53c229c1076d4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.848Z", + "updatedAt": "2026-02-24T10:49:35.543Z", "postProcessHash": "71568c9dff59dcf38d5067e12998438eccf9579a8b00a1000bed032b87b08a4f" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.848Z", + "updatedAt": "2026-02-24T10:49:35.544Z", "postProcessHash": "43978c246de7ae6e56a0e2314901b705ae15180385299081610553910e46c8c8" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.840Z", + "updatedAt": "2026-02-24T10:49:35.532Z", "postProcessHash": "f84c21cc8a083bd53e5250f14710a769246f94e689429dc2163abbd7cd51f9ea" } } @@ -43532,19 +44558,19 @@ "1dbfde47d0ccaf8fabcd5ad6a4296155b1b096aae0b5f8d17a8c1b756b2695fb": { "665e7928e61709a3964eb76535bc335c1bee18c8bc09733558199e232956630c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.729Z", + "updatedAt": "2026-02-24T10:49:35.380Z", "postProcessHash": "ab2fd94d93f8cbbd6c735a3306585ad253f5161dfacae31ff75a25ec39066456" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.732Z", + "updatedAt": "2026-02-24T10:49:35.382Z", "postProcessHash": "ce67dd40fc7c1f7c603173dd5efa4e76862a9fa262c71a30db0b290c601a2568" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.727Z", + "updatedAt": "2026-02-24T10:49:35.378Z", "postProcessHash": "f788ce2fcbfbca92bbe2f15092e6bee6307c823882c0633693d1daa1b52a0b4b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.772Z", + "updatedAt": "2026-02-24T10:49:35.404Z", "postProcessHash": "1fa40f16df02dc953780fcfd13787de8b715c17c633f171005594287f07ea2ff" } } @@ -43552,19 +44578,19 @@ "1e6d8899d944f96b533c9b1689dd0f3c45d1f4d88d4d1edd3d0cd126273c28ae": { "874433a820ac2a172772ed12a2a2e43d64d72b5fa3f8c9060c2ea70f9d9969b6": { "jp": { - "updatedAt": "2026-02-19T02:24:11.734Z", + "updatedAt": "2026-02-24T10:49:35.384Z", "postProcessHash": "35afa06b335062b90fd12fafad8a0b8542eda93d3a5d2291e15fe4b6308c3008" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.736Z", + "updatedAt": "2026-02-24T10:49:35.387Z", "postProcessHash": "3f0e5b0d685c72de003492662be913a50c999df93717141d72e7c6325e59b893" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.732Z", + "updatedAt": "2026-02-24T10:49:35.382Z", "postProcessHash": "31969d4b43445f5fdb81b2929ebd49564f7ea38cfed547e6d0791e34127ec2ee" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.765Z", + "updatedAt": "2026-02-24T10:49:35.400Z", "postProcessHash": "4fa3ac3d650b1eacfcd301a91cb63e50ec9db3ed45c3ccf7ade0a6097518da4d" } } @@ -43572,19 +44598,19 @@ "267616b5e710386f1e95782b057051b61f78cf2ab9ab90a87b76171e1110ba0f": { "526635ff55be813366ca95dd8408fe2713af702ad3c42ee3f6df159c36d7d754": { "jp": { - "updatedAt": "2026-02-19T02:24:11.735Z", + "updatedAt": "2026-02-24T10:49:35.385Z", "postProcessHash": "4090b310a32447d2c378318524d6acd9b838320ddfa5ac26d71a5033f31b24f7" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.730Z", + "updatedAt": "2026-02-24T10:49:35.381Z", "postProcessHash": "a9a6e8a4ea24bf0337cf4256d81f8dcdb2f50e3352a474637deb19b039acfdd6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.735Z", + "updatedAt": "2026-02-24T10:49:35.385Z", "postProcessHash": "283fb7b56c74df6e20602c83a9d7cc7af697108ffb6fa232b83b5f84e499fba7" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.840Z", + "updatedAt": "2026-02-24T10:49:35.532Z", "postProcessHash": "35f6f7d0b2e9cf4f59fc08e4f77e1d009347c5e2776e5e8858f001572737de15" } } @@ -43606,19 +44632,19 @@ }, "1cdbef1a85ce5ee89c8646d503bf966161c9b43030761d6ac4c98f501bbc302d": { "ru": { - "updatedAt": "2026-02-19T02:24:11.759Z", + "updatedAt": "2026-02-24T10:49:35.322Z", "postProcessHash": "a8c46c00dec6fc652727d5ada5319baf9084110341a59c6526f463892bac7a36" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.759Z", + "updatedAt": "2026-02-24T10:49:35.323Z", "postProcessHash": "6b39ab4238ea818e9b8dd002cb6a8016265f739dd5091758459d9868d5745d66" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.760Z", + "updatedAt": "2026-02-24T10:49:35.323Z", "postProcessHash": "43838cd64bd9733eee5ae99426882645db84334658098fe88eec3377328e76cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.775Z", + "updatedAt": "2026-02-24T10:49:35.405Z", "postProcessHash": "8fa5ff3c2f27fd2ee68735108e8027810ef007637d9d627b9cdc2e9d68f655b3" } } @@ -43626,19 +44652,19 @@ "4887a31d41443a8cec80c653b5cb1471ad7101392e2a0fd85344bf550b4479de": { "5d542d21d2aeff7420ac405c3efb0280de56bfcdabe3edfdeea55aee2ee0816f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.731Z", + "updatedAt": "2026-02-24T10:49:35.318Z", "postProcessHash": "1c17bf1d0c9976d63792f6447627b10e984eb9343090e2dceb0122fb9b8d6aca" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.728Z", + "updatedAt": "2026-02-24T10:49:35.317Z", "postProcessHash": "229a58040893c08d23d7c3375f30391f81ea262d5ad09127eb3c41a190cfc076" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.728Z", + "updatedAt": "2026-02-24T10:49:35.317Z", "postProcessHash": "40cf5b1356d3a699d2d57d883f87c878c9e6707b222308fd1e50cc38ffc10543" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.768Z", + "updatedAt": "2026-02-24T10:49:35.401Z", "postProcessHash": "9dc416e99e14bb558987baecb62074e53d49e6c7c0675bf5d850f9c3a6e6f0fa" } } @@ -43646,19 +44672,19 @@ "5e3e9bc17b90a0989880b5acd7291677843b0466fc3c36993015c0a7331f4c86": { "50e422154e7d9340b9ae3e608a02ad691373881011458d12ee9329b251e2ee21": { "jp": { - "updatedAt": "2026-02-19T02:24:11.663Z", + "updatedAt": "2026-02-24T10:49:35.370Z", "postProcessHash": "b4959dc303a2f2f205d0e86d539c209293fe218984ccc02fa2754ad7c6f1f7d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.746Z", + "updatedAt": "2026-02-24T10:49:35.393Z", "postProcessHash": "e30bcf40d689459255db9eac7accd32d6c725807e5b8dc9a5f508e3c14f10251" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.744Z", + "updatedAt": "2026-02-24T10:49:35.392Z", "postProcessHash": "0e86b7a657f26ce5942682bbfbe17f1571e9f3ae86ca3722cdea44f18fe23ed6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.781Z", + "updatedAt": "2026-02-24T10:49:35.414Z", "postProcessHash": "f29675d2670f3cec2bca8e9344be533537d36a4e89f4c2ad8a2b20373962e380" } } @@ -43666,19 +44692,19 @@ "6820315a7841bbc8c89a60ac5aa8c0fe4457e414cad746f3bed1650c3f297bc6": { "6d8963200cc850f442fe2995954f739d20436c4a7fb4b2ec7f8a636bc53779a7": { "jp": { - "updatedAt": "2026-02-19T02:24:11.746Z", + "updatedAt": "2026-02-24T10:49:35.393Z", "postProcessHash": "edf11611849e54077f47fd9d22db12ad00b3dff91cc33a2ea705e532cd1a0bb7" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.737Z", + "updatedAt": "2026-02-24T10:49:35.387Z", "postProcessHash": "45b74c86f9da786da2538fc81bb078ec6cdc2132a60629accdea0f33885eb317" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.740Z", + "updatedAt": "2026-02-24T10:49:35.389Z", "postProcessHash": "c36f3ddbea436911b564c57ed7ec1fb899a2ed3ef84fa7f412bdb82f31dcdf71" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.780Z", + "updatedAt": "2026-02-24T10:49:35.413Z", "postProcessHash": "c963f6384d571b68b0b2475ae30b7fa31daf44ae2de5e3bcfab827b0b7b06681" } } @@ -43739,19 +44765,19 @@ }, "5e0eeeeaa692b51f076459af6240799f2907e51da4a933095eb04c117a723f12": { "jp": { - "updatedAt": "2026-02-19T02:24:11.786Z", + "updatedAt": "2026-02-24T10:49:35.418Z", "postProcessHash": "6744973fe4d7f22e767f858926e34c95969e92ebc3991e07d27e56fe85cf39ef" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.786Z", + "updatedAt": "2026-02-24T10:49:35.419Z", "postProcessHash": "9d1038162dd71898d6e7d9615a7b4aa0baaeb562edbf440119956f80ce9a553e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.787Z", + "updatedAt": "2026-02-24T10:49:35.419Z", "postProcessHash": "3c3f339b710091800391577dae3beb6a7d55deeb1ce0ad08688a67d9a10feb88" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.769Z", + "updatedAt": "2026-02-24T10:49:35.401Z", "postProcessHash": "ccdf4ff1195e0473c8e07b3870e27b398a3e6f41d6e218f229598f935bbd4005" } } @@ -43759,19 +44785,19 @@ "e0c7e0ffde8dc72698165f5f5a97336beb9082111bdd4a6c98f10c02ab69cd27": { "1bd7f94ef79ae4a259d5eb60f577fdcaa8d2926824240d88238ffb4e9d917715": { "ru": { - "updatedAt": "2026-02-19T02:24:11.734Z", + "updatedAt": "2026-02-24T10:49:35.384Z", "postProcessHash": "91fa258299e136968aa2287eafbdf3860fe7f74a55f67436868b27331af89dd5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.738Z", + "updatedAt": "2026-02-24T10:49:35.388Z", "postProcessHash": "2ab7cf34ab72eb098f02f2c6b8c7c356b281ab8902bd1772efc9e39fec53b6d9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.739Z", + "updatedAt": "2026-02-24T10:49:35.389Z", "postProcessHash": "751ef508ef6da87468d572302ed5bdb957377f7fb395f81d063633802147e96b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.771Z", + "updatedAt": "2026-02-24T10:49:35.403Z", "postProcessHash": "87f6fd7750f96195681c07b7db828b3d09ae6e9a073fa489e8992f6449edba79" } } @@ -43779,19 +44805,19 @@ "09967fd0502ac05bc286aeb301c2cc87873b2a18ef14f3e2acde54345b2ce839": { "ced484d2a382f8655c9d000bcfd985aa94545bc671aae3824c264e06b17c1fb5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.812Z", + "updatedAt": "2026-02-24T10:49:35.513Z", "postProcessHash": "2864c577e6ce9e69e5b201ead40a62d7f614ed57b5c347410c5b5632ebd272ba" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.720Z", + "updatedAt": "2026-02-24T10:49:35.442Z", "postProcessHash": "2ea5e6cfa5a334f70329b1f426da0130464beb40cefad2e16f9301f23659c451" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.809Z", + "updatedAt": "2026-02-24T10:49:35.510Z", "postProcessHash": "e0c3e6da40a0f0d01652f1119f5095c19de5a4550f21bb57c9c6979c888f411b" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.895Z", + "updatedAt": "2026-02-24T10:49:35.535Z", "postProcessHash": "88338d30d2d5d90bae130eb09fd9cd4b06655c58d094a639098bf5b89a4bd5f9" } } @@ -43799,19 +44825,19 @@ "181adac272e2abd83cc757fde65fb79cacfbbfdd22c49560ad9938dc95ca360f": { "6aca92cecd7097cb7ee90b10d02efba74d48a3de1843308bf7b14b842592c336": { "jp": { - "updatedAt": "2026-02-19T02:24:11.724Z", + "updatedAt": "2026-02-24T10:49:35.376Z", "postProcessHash": "51dd204f4ec73d131af07780c4392a2f2d9d8d86743e17cd50ed08749084184d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.724Z", + "updatedAt": "2026-02-24T10:49:35.373Z", "postProcessHash": "89671bdb0d1c740bed8f2433823b34f758ebb0f959e81e4494c15124adc5e4e8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.795Z", + "updatedAt": "2026-02-24T10:49:35.465Z", "postProcessHash": "7a77f5fb9ab5181674927ca36305915fe3ae0932fdf64adf1e66e034036338e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.838Z", + "updatedAt": "2026-02-24T10:49:35.528Z", "postProcessHash": "11c388465b8e5693da102e0cebd38fb62595b6d7eccb5f7fb03c61cf90d9814d" } } @@ -43819,19 +44845,19 @@ "1e8da80bc94e12875fbc8b4285abd87a9ebc00408979ef39716bb53ce4293704": { "cca901fd78a63bb4eb045aec0ee20699b9ea63520630a96e5bc254085761c479": { "jp": { - "updatedAt": "2026-02-19T02:24:11.808Z", + "updatedAt": "2026-02-24T10:49:35.509Z", "postProcessHash": "d4fdd9f767fc2bbf415330eea64b886e856a83ac7eb574a01823c5d19358f399" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.810Z", + "updatedAt": "2026-02-24T10:49:35.511Z", "postProcessHash": "a2be8c4de1651dca49bd6eee405433a28ff304281475a5d08e789cc9bb7e5dfc" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.807Z", + "updatedAt": "2026-02-24T10:49:35.508Z", "postProcessHash": "212a48b2e22acb85090f06cf1f5220bb863a694453a0ced3adf8f786861981cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.896Z", + "updatedAt": "2026-02-24T10:49:35.540Z", "postProcessHash": "cafa75dcd2af3e48d1795677d80f90d13b8e8f9d1bd1590d70aa7a75eb40a261" } } @@ -43883,19 +44909,19 @@ "352b7210abed12f4834ce3966861f5819c1b015976a552f4d8f3417367d6519c": { "aa0583b1c517ae46447bcd58d7475ba0f4350a3b5974cd1a472f07e84ea2b12b": { "zh": { - "updatedAt": "2026-02-19T02:24:11.874Z", + "updatedAt": "2026-02-24T10:49:35.572Z", "postProcessHash": "c72a29dd9d5de14f815552c23e2ae57dd3bb9f0e50feeca4f47161a129c52b89" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.789Z", + "updatedAt": "2026-02-24T10:49:35.554Z", "postProcessHash": "15c12a3f9005b166bda1b55d747af60c2a41cc036428675d6e598ded07eb916a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.878Z", + "updatedAt": "2026-02-24T10:49:35.577Z", "postProcessHash": "f67ed3e3430e876b4559292184f13f31bc49a8b469e4493f1593e737b00aec64" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.891Z", + "updatedAt": "2026-02-24T10:49:35.596Z", "postProcessHash": "9162b3c2a7d1a2fd87033c61cd6f789c29c3f4bdfececa8f012333214ea501e8" } } @@ -43959,19 +44985,19 @@ }, "9c74c326db1e9a51f4a5f15ba467d514f479f87b01ffc3ae76127a18bb27361e": { "ru": { - "updatedAt": "2026-02-19T02:24:11.850Z", + "updatedAt": "2026-02-24T10:49:35.547Z", "postProcessHash": "77ab362f33a9d4ce58e5102bf8cc710818c442a904e70688bba10650c9101bda" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.851Z", + "updatedAt": "2026-02-24T10:49:35.548Z", "postProcessHash": "6e69d64110436b2bd7822a804d0c21ad6daa64d1671bda79eb438db0f1d48bd9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.851Z", + "updatedAt": "2026-02-24T10:49:35.549Z", "postProcessHash": "3341caa2c04dd868477fd564bbf8ff841d6ca273a9f15c8825c8eb3f90c0e300" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.845Z", + "updatedAt": "2026-02-24T10:49:35.539Z", "postProcessHash": "02c9493181a548388c6cbab69cc35b4cdb7e540b966e45edb361678e9e29ceff" } } @@ -43990,19 +45016,19 @@ }, "3203f84f048ca009b9f90eec080070e282108d50d7ba6ea5bc93169f873eac70": { "ru": { - "updatedAt": "2026-02-19T02:24:11.748Z", + "updatedAt": "2026-02-24T10:49:35.394Z", "postProcessHash": "d1356bad226a32bad858568f415acc16a2de6e672139b46574f3ff6b71bebd39" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.749Z", + "updatedAt": "2026-02-24T10:49:35.395Z", "postProcessHash": "46181bd96a523e7940f7a037e58080143c98472bfe628c49ea6c135e16b75b3e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.723Z", + "updatedAt": "2026-02-24T10:49:35.372Z", "postProcessHash": "dc941e7b395e694f4927f0879af31518b5517cfe1761b61215eebbf45e1dafa1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.781Z", + "updatedAt": "2026-02-24T10:49:35.415Z", "postProcessHash": "35bb48c602862c953398a76a919d2e4cf04e0fe35df1cc231992f84d6fd2980a" } } @@ -44148,24 +45174,42 @@ "updatedAt": "2026-02-19T02:24:11.910Z", "postProcessHash": "a560bccce4c3a5ca6b897b13fe670c98286518c5c52a74941528a47001fe8996" } + }, + "620bd146514d4d88a9b296b3190e950834a6de1a29a9227b53b243d9f3b5d3db": { + "ru": { + "updatedAt": "2026-02-24T10:49:35.615Z", + "postProcessHash": "d5c6ad5a808c945cce12f2a7baf4e994a1d1a7e8fd1080b5bcac64f3bfaa6696" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.618Z", + "postProcessHash": "40349ee49f1750bfbc99350edd14b499be66428a0b4d5d84b1557d6c0d4919e0" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.620Z", + "postProcessHash": "a3a1d2be748692a8c6032152041edcd44641335360f698e84f541264928258be" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.627Z", + "postProcessHash": "13b904ac4dd3b43e1d6fa85c0899de6d3212d3718477b81a64803292b09e118d" + } } }, "56a2d0968dd32b192f6e6833bf129bd2a1a73e16d498c9f8a64c8e8cefcb7635": { "85317ab67c21185490c8ce6da9f40ae75c6aa792d046b52122da1555de6a0d7a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.729Z", + "updatedAt": "2026-02-24T10:49:35.379Z", "postProcessHash": "fc1374c12b3a03021981ee054031d23f36a49ed31ca12f0f9ea6baaa0b8b66bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.796Z", + "updatedAt": "2026-02-24T10:49:35.466Z", "postProcessHash": "f54e9bdeea97db8e509d50b24162f27eb059f36f19e91487c3dac3656b212a98" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.731Z", + "updatedAt": "2026-02-24T10:49:35.381Z", "postProcessHash": "69c44798d53dfa896daf6fc095616529887c58686573409f4fbbe300646c0599" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.839Z", + "updatedAt": "2026-02-24T10:49:35.531Z", "postProcessHash": "9e12adf228f0c22691dfcaaaa45d7b20c52c261c6e8ad20e7701d983196be209" } } @@ -44173,19 +45217,19 @@ "57fb93819b163681fc7674df87acd51d16808daf3c9a80875363e714ab6b6f0d": { "589fc5521d34b691619a0775483550005c0339c397f9c5eb2ad84a68d38fc0c5": { "jp": { - "updatedAt": "2026-02-19T02:24:11.798Z", + "updatedAt": "2026-02-24T10:49:35.473Z", "postProcessHash": "28deafc7e003229602778f26cd1e94b65aead7cd298ce6418210b42d6b8bfc76" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.725Z", + "updatedAt": "2026-02-24T10:49:35.376Z", "postProcessHash": "2dc3e9303af07bd12c8554e3f6cc642b55f296ab25129847fd6faf649a742b06" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.730Z", + "updatedAt": "2026-02-24T10:49:35.380Z", "postProcessHash": "550b763670c4ca80dfb8e0825b970b0114d5659cfc625015fd2f8e460ba1c852" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.837Z", + "updatedAt": "2026-02-24T10:49:35.527Z", "postProcessHash": "37df2329e21a93217a139e8913282c8fd1846ec50a245baebd644c52f23a3c81" } } @@ -44193,19 +45237,19 @@ "5f7acdc3b5ad3c4b70f2e0f6421eedcef49bbf5fe1541b93de796181d282e3f8": { "c3b3c36e1615ad52f46683413733ab6deb9809b9216880d962f14d2b316e6812": { "jp": { - "updatedAt": "2026-02-19T02:24:11.741Z", + "updatedAt": "2026-02-24T10:49:35.390Z", "postProcessHash": "af5cdbcacbbcaf7bfb9bf1cdd636d01990aaef1c7b6c8bc0ef136445878c802e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.744Z", + "updatedAt": "2026-02-24T10:49:35.391Z", "postProcessHash": "006ac89391d371135b4bbbbb06c88f8eaba090e551c54a508707d7b17a93e6c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.745Z", + "updatedAt": "2026-02-24T10:49:35.392Z", "postProcessHash": "6ed00b5e7412f312ec66f7cd1e890851742634119b69f7fa643740dad48db948" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.778Z", + "updatedAt": "2026-02-24T10:49:35.409Z", "postProcessHash": "2c5e5388af92d5e1e36386720929879558afd42a347f48a3ca27c65b7e3a8690" } } @@ -44213,19 +45257,19 @@ "720286aedee663b0895eadfbb8c855cf28e8c889a5c1e959eba2cb56410fe0ea": { "8b424c806172df3664b5a02f66fa091e75d922eace7c6d17ab06a1cd4d48ded0": { "jp": { - "updatedAt": "2026-02-19T02:24:11.726Z", + "updatedAt": "2026-02-24T10:49:35.377Z", "postProcessHash": "546fe52c05caf9ec6032177452d2efcca16133a75992eb0a98c3fd5b8ef3ab9c" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.797Z", + "updatedAt": "2026-02-24T10:49:35.472Z", "postProcessHash": "bb11ab82530b66b6bf8a5283b7f012487e03e94a67ad0dc651a00da43e0e67b3" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.726Z", + "updatedAt": "2026-02-24T10:49:35.377Z", "postProcessHash": "160c2e330594aa3d84c5de02c66bbb1582a77d73e6409c85704c2294c8f86433" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.843Z", + "updatedAt": "2026-02-24T10:49:35.536Z", "postProcessHash": "1df504f14ade40c1d15e6af7f9b4e8642901ff03839c179d50360a6a9eab00c0" } } @@ -44247,19 +45291,19 @@ }, "e46974cd333ca66ca510544871953ccc0d2780909e3c85ef50947f379b46ea1d": { "zh": { - "updatedAt": "2026-02-19T02:24:11.819Z", + "updatedAt": "2026-02-24T10:49:35.520Z", "postProcessHash": "1d6d0cb23e324f21d3bcceed45debbb6e8b2745244912750f6c1006312cfa8f9" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.820Z", + "updatedAt": "2026-02-24T10:49:35.521Z", "postProcessHash": "5442b44209920ba1b83cac87afe4b85d8fad662a07eee3463152ec5e8c561835" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.820Z", + "updatedAt": "2026-02-24T10:49:35.521Z", "postProcessHash": "6e367a06e5c293c4cbaf387cb50ab9e3539cdc2d6b223138c990175afbf430dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.846Z", + "updatedAt": "2026-02-24T10:49:35.542Z", "postProcessHash": "1d15a74d6b12f0b5198fa9d3601ce6ee090d22b6db01281922213130346faf39" } } @@ -44348,19 +45392,19 @@ }, "dde37c3b506b7a02e79633c746d24cc94da3e471cb0f14e648f20212097474ed": { "ru": { - "updatedAt": "2026-02-19T02:24:11.847Z", + "updatedAt": "2026-02-24T10:49:35.543Z", "postProcessHash": "92c2c0c089f0bdac17198900f52a4dc189bdd1ec6334d3feba9678d6e44ecfbc" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.849Z", + "updatedAt": "2026-02-24T10:49:35.544Z", "postProcessHash": "900491307c359b2d878591e3839c78422f5edb7ad5c0aa09c1589c0267360894" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.849Z", + "updatedAt": "2026-02-24T10:49:35.545Z", "postProcessHash": "ba95ee056d553ce686855dd73de3e2032db3b28d68c6054fcba4765573f39cc3" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.845Z", + "updatedAt": "2026-02-24T10:49:35.537Z", "postProcessHash": "33350c6d849a551aca7eb3d0435bbc5dd86cefc93e645e91731c4ec351e3504d" } } @@ -44383,6 +45427,24 @@ "updatedAt": "2026-02-19T02:24:11.774Z", "postProcessHash": "8830dbd6e7b50f2dc6a62db8ca1932511da7bd724bf931c0c5077e0893510d7d" } + }, + "dc98cefc547514495d21262d4b567c2b7d8c09b0098950b32a927bea4ff448ef": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.436Z", + "postProcessHash": "31f84654ff47bf8e65e267ca1905265d468757297dae99e0610415dcb2c902bc" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.437Z", + "postProcessHash": "436459fe06bad3b061da49eec8cdeac17532e1ed8d70ab467d8dad863dfedd0b" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.438Z", + "postProcessHash": "5c995eec41d916d9de3d90cf3964eb38fe58c1b12e57cfbb4a0714d7df763a9d" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.440Z", + "postProcessHash": "21f3f1a5dae47eb72c5c3ad8635cf39f7609a104756fb71f1a76a24a622c1999" + } } }, "bf4aa8d8478e9cbccac2af56a2392959e788a6b441ae1d334d378fe41c813431": { @@ -44417,24 +45479,42 @@ "updatedAt": "2026-02-19T02:24:11.842Z", "postProcessHash": "0405202b63d06b8051bcf4daa8536ba75040125393d8455bac2943acc57f55fe" } + }, + "864e77049e568dd2dd0a070359b5ce6a929bbf2904962a32ee77409b77205bab": { + "ru": { + "updatedAt": "2026-02-24T10:49:35.550Z", + "postProcessHash": "281d38af7412c33198099742f9c2cbbfda81c50d8b48f86eede412e0f1d7816d" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.550Z", + "postProcessHash": "439f6fe3cc773a778283a6e53435a0aea87b52b094a62d6a8f21b64b2f039dd6" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.551Z", + "postProcessHash": "c9e44a9d31b51223e4838857a84fb02e19bfa255bc7bc16cb385580f53a08bac" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.551Z", + "postProcessHash": "0942c73241014102bbdcdd2899f8f5f0aa408349ac1e993ad3be9363cc94f19b" + } } }, "c6f8d4ed5ef7dc56f976117869cc7a69922f064662bcdd47f24b593a903bb511": { "66256e49527646d9c1360a5db02fe360c867281e0fbebf9751bf3d0a5e4e0116": { "jp": { - "updatedAt": "2026-02-19T02:24:11.733Z", + "updatedAt": "2026-02-24T10:49:35.382Z", "postProcessHash": "0910227b76699924c6ebdaaa7ca9682b0a2aac0964ab214e8b59250a783ef471" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.797Z", + "updatedAt": "2026-02-24T10:49:35.470Z", "postProcessHash": "05ce037043aa9e2258ece0bd9ab5aef617beb85359014999da967b07e020d1ad" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.799Z", + "updatedAt": "2026-02-24T10:49:35.475Z", "postProcessHash": "37fdd29001f51e34d9a9ebb13714743755142b2df816ad77cbca212bd55bbb74" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.841Z", + "updatedAt": "2026-02-24T10:49:35.534Z", "postProcessHash": "74b3cb8a9b47080274c121ac89cc71d730ab34cf6a6532834f68a2d86e44c998" } } @@ -44470,19 +45550,19 @@ }, "8bb0a19905dc45e27c2025aec6f42d21add926ac70404213deed74cdbbf902cb": { "zh": { - "updatedAt": "2026-02-19T02:24:11.852Z", + "updatedAt": "2026-02-24T10:49:35.420Z", "postProcessHash": "b2b7c59f62ffda558dff19614b53ddb15ea63b710a93a2d322f6af35bc8c1b09" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.852Z", + "updatedAt": "2026-02-24T10:49:35.420Z", "postProcessHash": "fe242e44d469d7b1676ec26a608a5ffd0d8c3f80430e9cc98271bdf2249430be" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.853Z", + "updatedAt": "2026-02-24T10:49:35.421Z", "postProcessHash": "fd38c8b5b7cd8e531a46602964c49715724687c8fe4e71f97262ec01419da2fd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.844Z", + "updatedAt": "2026-02-24T10:49:35.412Z", "postProcessHash": "b8d5f4f649e9f6af5af8fa131c507770e1335acecc3f275907b83f9873b1fb5a" } } @@ -44490,19 +45570,19 @@ "d9f334133320c651967d1b5b665ba9cb709fe4d09178893258245d70b28c5b25": { "ab1cd75a382114032d421c93d59ddfaae337e9528e1ac6b02cc19764422a2124": { "jp": { - "updatedAt": "2026-02-19T02:24:11.814Z", + "updatedAt": "2026-02-24T10:49:35.516Z", "postProcessHash": "f73ef76d789b00cde37dbbd462c3e9ba35bd26e10bde45c6ac83fe08825aa0ab" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.817Z", + "updatedAt": "2026-02-24T10:49:35.518Z", "postProcessHash": "2472f2c2c492a8fb5d4a0c0378e0e68a5bbc9f465dea36bb268d22717726fb46" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.811Z", + "updatedAt": "2026-02-24T10:49:35.512Z", "postProcessHash": "29c303d9a2dd191c22bc2e9325d338b7a0650e8f1b4b6eac518f858cb6ba28a5" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.843Z", + "updatedAt": "2026-02-24T10:49:35.536Z", "postProcessHash": "b33d284ef285463e6348526ef8acb74b0c2922e0f2658cb3dee4ea0c176bf4ff" } } @@ -44525,6 +45605,24 @@ "updatedAt": "2026-02-19T02:24:11.771Z", "postProcessHash": "7ddb55d1b854e85d30e08dc5a6b0a896f1646daaa7837c5b34b84828fb0de77a" } + }, + "9be771f0c994154d4b9cce3e7d40178059048c7a84f4bddeade5b2c0a57ca101": { + "zh": { + "updatedAt": "2026-02-24T10:49:35.426Z", + "postProcessHash": "7bd3ad353991b92cdf4fbde0c6ee52803fa87cc8bf39a11ea806a8dc4258c61f" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.426Z", + "postProcessHash": "a13913bb824f34408f373f6d9e8067049b7c1cd84ff73862684d774790372759" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.427Z", + "postProcessHash": "478180f8e687548566a701dbf38e993fad33a9d08878217bd011151f3552242b" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:35.427Z", + "postProcessHash": "e7a8dc2ede95f058c52337ee205ffe378accc7c7df3a5ff5b98324de5e76b7e4" + } } }, "e1c1bce938fcd121a541dda56b44194cec991a3c399320d28f68662d4f2aa155": { @@ -44544,19 +45642,19 @@ }, "c58648934ce9b098ac15b34a8c3c77337bad20f7b3d2e02e0513213e245ea4c2": { "zh": { - "updatedAt": "2026-02-19T02:24:11.817Z", + "updatedAt": "2026-02-24T10:49:35.518Z", "postProcessHash": "7c2321a39497ee5ea3fc90950f29cf85b2fd1f8bfcb286481e7a77402c906bac" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.818Z", + "updatedAt": "2026-02-24T10:49:35.519Z", "postProcessHash": "3f5644e0d7568bea7b2779c03ab820eb5c7dc93475a807fb3900a797b92232f4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.819Z", + "updatedAt": "2026-02-24T10:49:35.520Z", "postProcessHash": "f0c022ddb63dfacace2d9da93908437f364c287a7598560acf0f58ffa67fe6dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.839Z", + "updatedAt": "2026-02-24T10:49:35.531Z", "postProcessHash": "909b013e01d593d8651ffbae3e3dbaace602c7dad87cf0f7bd8447f6f000ea3d" } } @@ -44564,19 +45662,19 @@ "fd5ff75cec53563913c25d3a84cb92ca6b7f928115d7912cef78a22dfc907f29": { "ba4164cf48205f79abd50e8ce1180feb106ddcdda361d67fbf580922f1a8bf3d": { "jp": { - "updatedAt": "2026-02-19T02:24:11.736Z", + "updatedAt": "2026-02-24T10:49:35.386Z", "postProcessHash": "39630b19b9a5e7cd788a68118c99d1173c664b24ded4d99dbc2b11c2f7a75299" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.727Z", + "updatedAt": "2026-02-24T10:49:35.378Z", "postProcessHash": "2986427e5a9ed2b41636725a717ff1a0b0cc403e9115183b0a019bca2aebced6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.733Z", + "updatedAt": "2026-02-24T10:49:35.383Z", "postProcessHash": "d0b57b526c75e9fcb58e6831785751f6a36ed926023c548fccf691980edf8e19" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.772Z", + "updatedAt": "2026-02-24T10:49:35.404Z", "postProcessHash": "88d50a05a8854ceacac062fce7e1ee7a2c6b90eb168c63d2ed6bd00edf04a57e" } } @@ -44584,19 +45682,19 @@ "176d0068a5182e14c24f7b86a941e2993dd5d5375dda5f359181472f50bb49a6": { "3c0a49ce0175e9ffb151adc18ac51e16f2d58c189a49b071eddff19741b2773b": { "jp": { - "updatedAt": "2026-02-19T02:24:11.879Z", + "updatedAt": "2026-02-24T10:49:35.577Z", "postProcessHash": "bd72168b174a08b141f850fb46670bdbaf22b2f761c9f740c2e2c9a5f1e9388a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.877Z", + "updatedAt": "2026-02-24T10:49:35.576Z", "postProcessHash": "3245544530d4ee090dbfee4b4a4e9e6eea221180b68e25c4580a4ce8089eea05" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.880Z", + "updatedAt": "2026-02-24T10:49:35.578Z", "postProcessHash": "7c22a8b39ddb498e5d52d1346720e460ef0bba4c1640453f79b2ef9945a6dbce" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.892Z", + "updatedAt": "2026-02-24T10:49:35.601Z", "postProcessHash": "9f1f47a5a9e349ddc5334d5331c118a25648a412d6153e4c4f50183af7a938e3" } } @@ -44604,19 +45702,19 @@ "2fc9ece7b731c86425713493bf6fdb0053ccce96ffd9f63a70eea4019cdff660": { "547949490f707e9c4812b2f1acebb85c8f7858c6f4c8d030784a54ffa0f6764b": { "jp": { - "updatedAt": "2026-02-19T02:24:11.871Z", + "updatedAt": "2026-02-24T10:49:35.569Z", "postProcessHash": "1dde80136263883ccfca6254eaba5142b3bd80aa950966fdb8eb97b0ca486811" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.867Z", + "updatedAt": "2026-02-24T10:49:35.566Z", "postProcessHash": "f54f47985c66a74b41f19751b9f15da5b8a32f49b1099a85620706a7aff0f40f" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.869Z", + "updatedAt": "2026-02-24T10:49:35.568Z", "postProcessHash": "2b929632914dbc0a99f1dbc6142265ac7a0f8b2fe3c864bcc7d29326a2e75385" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.887Z", + "updatedAt": "2026-02-24T10:49:35.592Z", "postProcessHash": "7d858b9d3193c8837b851114162c6e5deab969c3a8e49c234a1b2f252848b90b" } } @@ -44624,19 +45722,19 @@ "356a5236e325bbd80f92c622b5549c7f59c011b169fdc94f7b59ad1948f64d59": { "32a464d65d3033a6f94c395c523bdf9d52473033f37bc7b58a4c7d5a3374d78c": { "jp": { - "updatedAt": "2026-02-19T02:24:11.793Z", + "updatedAt": "2026-02-24T10:49:35.563Z", "postProcessHash": "5a4d68735bcd59e75432354b900364697c3f60f5991309608d9e092c8ee82fe9" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.794Z", + "updatedAt": "2026-02-24T10:49:35.564Z", "postProcessHash": "a566c52906cbbb885e78491a9ad12a34dcb22a398dc365b103455730c97ec8cf" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.794Z", + "updatedAt": "2026-02-24T10:49:35.564Z", "postProcessHash": "d26f22deb60956f00c7f4643ab4b379ab227c09e3c114acbf2c65f57d9e3490d" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.887Z", + "updatedAt": "2026-02-24T10:49:35.591Z", "postProcessHash": "fc528f29af726c8b002473235b0f25102e5f2e23882408eed9166e70ade91153" } } @@ -44644,19 +45742,19 @@ "4dcf3a152974b0406b6bb68f5b1c541fe9249595ec4170e386cdf67f9e97d6c8": { "144e0319e32e38db32a1efd639ffc72bf732e5ea7b5d6a3d0883a97e4bec0cf7": { "jp": { - "updatedAt": "2026-02-19T02:24:11.796Z", + "updatedAt": "2026-02-24T10:49:35.467Z", "postProcessHash": "6318bea181cb737041c59cff78ceb31e6a9573865c4685c0b74b45b6a1ccf2ac" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.813Z", + "updatedAt": "2026-02-24T10:49:35.514Z", "postProcessHash": "2227a5a39eb4e6c723a4a0c093f578181c357b88ceb7aa7ea72af4dd2d040a4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.805Z", + "updatedAt": "2026-02-24T10:49:35.479Z", "postProcessHash": "131f9d757896097fa6dbaae179229fc92719d2b62a3e8734173b370507586d19" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.896Z", + "updatedAt": "2026-02-24T10:49:35.540Z", "postProcessHash": "37e28bb4be9041cd43a611af8db13e6635b215637d110866e37b36a13c1bbccf" } } @@ -44664,19 +45762,19 @@ "512bf2a261651531d1f44db97f0e2477f9009f4f748fece66e5ca2554439601d": { "f65ce8822ff0abf42d5c376dd8120812baee55885d0c7b7b65bd770ce9d25050": { "jp": { - "updatedAt": "2026-02-19T02:24:11.865Z", + "updatedAt": "2026-02-24T10:49:35.565Z", "postProcessHash": "bdaa6b447f691d42aa2ddd589dad4f91a568cc45c1a6470fc90ad81bca8b7279" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.872Z", + "updatedAt": "2026-02-24T10:49:35.570Z", "postProcessHash": "30a5fd7c5b6f38be6ce451163ed5f4c3285646a2a5c6cba7cdb207c74e89ec6c" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.868Z", + "updatedAt": "2026-02-24T10:49:35.567Z", "postProcessHash": "6eb8766a38a7983c3a9d563a6343bc97e8ffa3399c2f2ca18d91450ba701e76c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.889Z", + "updatedAt": "2026-02-24T10:49:35.593Z", "postProcessHash": "c2c774a65d91cf9e19b873c2cdfa2fde4491ddade4da7ec7bc45f6a63097b858" } } @@ -44698,19 +45796,19 @@ }, "abf73ca14dd6fa74ca3c54bae95a2c9c707e96a1e9b8d65fe3adff89d65d6266": { "ru": { - "updatedAt": "2026-02-19T02:24:11.791Z", + "updatedAt": "2026-02-24T10:49:35.448Z", "postProcessHash": "754d79301747c78055092a9d4348b6e2721b3bcf9c433ce2afab330b495067aa" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.792Z", + "updatedAt": "2026-02-24T10:49:35.449Z", "postProcessHash": "dcee661d5a250ca64a95671d6cbc1a0584c6d9b48bba1952309ebc18a4a27425" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.792Z", + "updatedAt": "2026-02-24T10:49:35.456Z", "postProcessHash": "0f7ec9751e878a1c3507c226ea2dd916d59f49d67dea86894d92e64dada6af0f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.836Z", + "updatedAt": "2026-02-24T10:49:35.527Z", "postProcessHash": "847949232b087f1eb64c0673220b8df149e0a9ceb6c5f0c3c80c94be492ac1b7" } } @@ -44718,19 +45816,19 @@ "70760b9ea84a1492768f54f60022928ceed80c33ef8d2cbbe522324f7979123c": { "5172acba2103f95752ebbc8f74579f1012ec0e81bba84d6402deb3f9ab3b0bfa": { "jp": { - "updatedAt": "2026-02-19T02:24:11.816Z", + "updatedAt": "2026-02-24T10:49:35.517Z", "postProcessHash": "bb13f22c64e80bb533c65db0248bddc85c56934972a366d486f5beca40f7781e" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.811Z", + "updatedAt": "2026-02-24T10:49:35.513Z", "postProcessHash": "d4faea41d82dc7e69a30e006de28c51104b271681e58903ee6f5a4024d571eb5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.808Z", + "updatedAt": "2026-02-24T10:49:35.510Z", "postProcessHash": "b33ed09fbb9446e04d2ab3b1f742e05ac0e9591a639818bcf0b539dba881da41" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.898Z", + "updatedAt": "2026-02-24T10:49:35.609Z", "postProcessHash": "2865aa706d9c499fc77a2f4c52f47114811f7f38580731925efd374231fde3dd" } } @@ -44738,19 +45836,19 @@ "832f10a64dee00c5573ad8927271c0f08e6912344a6142b218901f374557d6d4": { "c00fec44d98d20ecff726432315131e9d6815d1bc6d528bba1cbde655c11121f": { "jp": { - "updatedAt": "2026-02-19T02:24:11.806Z", + "updatedAt": "2026-02-24T10:49:35.508Z", "postProcessHash": "a7944921a16199b7e63e299d7b1f21c96433cebb93cc6fbb129c5422f44ce413" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.805Z", + "updatedAt": "2026-02-24T10:49:35.478Z", "postProcessHash": "c7b320e831f00ecc2c815c5c62e03668e43af89f711e61e3c0516998d1e783c8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.803Z", + "updatedAt": "2026-02-24T10:49:35.476Z", "postProcessHash": "a0d2fc3378ba81c6ac52e7e771fca7e44ed1a18aaf4a8258fade9f49898bbe23" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.842Z", + "updatedAt": "2026-02-24T10:49:35.535Z", "postProcessHash": "fc6adcc107ed683f811edf05f9a34c2c38cb7cba80ce85ae09876308cdad89c2" } } @@ -44786,19 +45884,19 @@ }, "987b8b83f4fb4b6ca55708738529d1dec7af4d5dda9e39f333230f657f611d1a": { "zh": { - "updatedAt": "2026-02-19T02:24:11.825Z", + "updatedAt": "2026-02-24T10:49:35.523Z", "postProcessHash": "23b94f41325c6fdeec0a8104ee60eff463900ec2df0015dcfbd3a24819294cd4" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.826Z", + "updatedAt": "2026-02-24T10:49:35.524Z", "postProcessHash": "3920b63819a8a0dbd1588bc591e4e3bb0c54d1160bb363f034df4bfd86a2559f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.827Z", + "updatedAt": "2026-02-24T10:49:35.524Z", "postProcessHash": "7fe35c3611bf41205faa9d66b96ea314de0a6be6862b374c9809be0503c7a6e6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.891Z", + "updatedAt": "2026-02-24T10:49:35.530Z", "postProcessHash": "778c12728334c88445a4a81125fc34214798f966cabb12a50cbcaca2aacc76f0" } } @@ -44806,19 +45904,19 @@ "8edf9e4f287ceba4ca2d82f14382e035360e320bcc403a4bd0ffc3569444e7f7": { "0210849faec51fc728046caa3f03b71304bb9c646dc07169ab1c6d9e340a0aec": { "jp": { - "updatedAt": "2026-02-19T02:24:11.804Z", + "updatedAt": "2026-02-24T10:49:35.477Z", "postProcessHash": "82604c6f8d2e7b1a79031ededf2d35ebdc27e215bfac8e6009401dd3f5954565" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.795Z", + "updatedAt": "2026-02-24T10:49:35.464Z", "postProcessHash": "a7f7b93cbd1a3afde78a39adf879c29c442b477a42419a935ad626f213011dd2" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.798Z", + "updatedAt": "2026-02-24T10:49:35.474Z", "postProcessHash": "e5f6a451c68c2c8d2126d3f0ef10266cb9ccb30044bedf28cc3c529c6b3fbb25" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.894Z", + "updatedAt": "2026-02-24T10:49:35.533Z", "postProcessHash": "a3eace6d2ab76a6b4c381db881ffbbdf303760e454112a087697acaf74ed9035" } } @@ -44826,19 +45924,19 @@ "9c07a7cf8bf10809ed5421b224c9702d1daf802a6511bc28a61380182a3cba5a": { "4e8ed6a1feb2aa52a5a2a4588b3ecb8b8ba68dec83a27b9280790c81f51a60e4": { "jp": { - "updatedAt": "2026-02-19T02:24:11.806Z", + "updatedAt": "2026-02-24T10:49:35.480Z", "postProcessHash": "e7a77c2f8641ffec260cace0ddbde8d767ed6849e59411770b8351cf4327c809" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.813Z", + "updatedAt": "2026-02-24T10:49:35.515Z", "postProcessHash": "9b118b493b72ebec6bc56c67e44e911f071dedee02148f36d48dbe5f4c40a7be" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.812Z", + "updatedAt": "2026-02-24T10:49:35.514Z", "postProcessHash": "809cb7c46f20caade6c16eb1c92a0a3f62024623469758b3ce42ab7f503c898a" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.909Z", + "updatedAt": "2026-02-24T10:49:35.610Z", "postProcessHash": "530d85c01c35191bf2f039a158ac812e1a0eff63995f19ed813ec1f562f42690" } } @@ -44857,19 +45955,19 @@ }, "2f0734e7c9a31840e186f5a334fbbbc73d1d52db49e8bbda9d6d1527b330a0f4": { "zh": { - "updatedAt": "2026-02-19T02:24:11.722Z", + "updatedAt": "2026-02-24T10:49:35.446Z", "postProcessHash": "fabbf92297403230f8008d0907a4bb84e38b5f5a8e89c4ca684324e7a8243851" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.823Z", + "updatedAt": "2026-02-24T10:49:35.523Z", "postProcessHash": "2bd41290916752825f1716c1773601984f6219113b1b7430aa052fe4c6d43dd3" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.822Z", + "updatedAt": "2026-02-24T10:49:35.522Z", "postProcessHash": "c97a4496f695cc37c8ea523ee2d6b219a4e3a3a5d4432861044845f785eef78c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.909Z", + "updatedAt": "2026-02-24T10:49:35.610Z", "postProcessHash": "d931efa2bbf8282f0f8e420d781790ae30d096193f9ac5dc145996cae9b2b90a" } } @@ -44891,19 +45989,19 @@ }, "f14b1307c493266de4ec65911db69860ecffd6fd517e7dc10c571f519b3e9c5a": { "zh": { - "updatedAt": "2026-02-19T02:24:11.911Z", + "updatedAt": "2026-02-24T10:49:35.545Z", "postProcessHash": "a4cefa24404e6fc24afcfb9a1c2761f853605c6becdabf378d5b6510d302fe5a" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.911Z", + "updatedAt": "2026-02-24T10:49:35.546Z", "postProcessHash": "32da3a6f58b08edada1e580caae50245348d84d3cdee023adf41be7872374cfb" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.912Z", + "updatedAt": "2026-02-24T10:49:35.547Z", "postProcessHash": "4beae5d5bb5c8addf22709d80f3d892d561a5cc7529be60f8cc032d3738d24d1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.893Z", + "updatedAt": "2026-02-24T10:49:35.533Z", "postProcessHash": "f87a51f39824c7e711d8544a53e35a047dcf3c24d0d783e10a9e342cd9c74c2d" } } @@ -44911,19 +46009,19 @@ "b57ac847efe3da698e4e7e930e7c66f735f45e722a25a0fa39bc6f7bfcec60cf": { "9c431dd0d8265db20267a05a0e5cddc327c798c7acfd1be5071f066d5a7aee28": { "jp": { - "updatedAt": "2026-02-19T02:24:11.809Z", + "updatedAt": "2026-02-24T10:49:35.511Z", "postProcessHash": "1d03feff56e242728bc8d34339136f321e271412a81650b544c69e70880a3ffd" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.815Z", + "updatedAt": "2026-02-24T10:49:35.517Z", "postProcessHash": "fec0fb46430c3284286d3d4c193f5965d54a4910f972817d07f2cbf861c87317" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.815Z", + "updatedAt": "2026-02-24T10:49:35.516Z", "postProcessHash": "b46da27bcc88c382bdf156d5f33ce8285666389a535b9e7b15d6e9f8ed3a9c66" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.897Z", + "updatedAt": "2026-02-24T10:49:35.541Z", "postProcessHash": "a4ecd31b9d8f8fd58849f5101ef5e5f55ded7e32a07c93d6b601b51b4abab560" } } @@ -44942,19 +46040,19 @@ }, "a9aaf3d0acf90c263febea571cd562058a89cc9ae231894d698d45f35f8a8089": { "zh": { - "updatedAt": "2026-02-19T02:24:11.721Z", + "updatedAt": "2026-02-24T10:49:35.443Z", "postProcessHash": "d0cbb075719069976989d4209dc6a1ab7c4bb8bb6e7ec4c5c91ce53982cda781" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.821Z", + "updatedAt": "2026-02-24T10:49:35.522Z", "postProcessHash": "18a569a46946c44103dfd590bcb04f850432e73a13f9806229a5586fd67f2ffc" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.722Z", + "updatedAt": "2026-02-24T10:49:35.445Z", "postProcessHash": "50c3f9723b9f5444f0a7fa49b997626eb65dd6446fbd1e1b35d5272e82b86b38" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.838Z", + "updatedAt": "2026-02-24T10:49:35.529Z", "postProcessHash": "7dcf94792ab603d4d9a690fd2eccbd941dfb8c9408cfb68cabd68bbb4875bb0e" } } @@ -44988,24 +46086,42 @@ "updatedAt": "2026-02-19T02:24:11.836Z", "postProcessHash": "7d733a18d294c5b077f58b44286c55f4f6274973ae2c7e78500e0592404a0b29" } + }, + "6b383d225a22fa4b821410c54de6d6ea567fad64db5efb5f4a7569482212ab74": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.611Z", + "postProcessHash": "aaaca46a9cc049ec0bae3bb6beffcc439c4b409365954b0f792635739981e508" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.612Z", + "postProcessHash": "0e0db82fc5c2de81195b181bc696f0c9ab728536840f055ae7e512948799c076" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.612Z", + "postProcessHash": "cf5f93303e7c60ed8ecda49edf7edc18acafb0ad18b9d3dcc2ceb708a16417ad" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.613Z", + "postProcessHash": "4f1d4e891988d3f0b63f1b6c2903165458f80f61142a3a79971b54c566c2b555" + } } }, "e8326b6e3e229b53f7f7616dad224e62d5aabc8c99d1885fa0b294be36436442": { "e0c19959bdee8150958356d19999762296868f26f8c58d573bd31ee946774713": { "jp": { - "updatedAt": "2026-02-19T02:24:11.873Z", + "updatedAt": "2026-02-24T10:49:35.469Z", "postProcessHash": "8bd0f49017aec82562ce062fbbd167cf131a90d1f0593b7717bb9592eedd1820" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.875Z", + "updatedAt": "2026-02-24T10:49:35.471Z", "postProcessHash": "4b00376604e4af2463424fda2df9fea4717422641ad34233cd424fb76b1ccaaa" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.871Z", + "updatedAt": "2026-02-24T10:49:35.463Z", "postProcessHash": "3243dae1fe0817f36f8eb870a8aee7290a536b0caa1b22937f61459d4da07418" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.888Z", + "updatedAt": "2026-02-24T10:49:35.528Z", "postProcessHash": "33bc11bf07a8cef29e974706741d30b5810a74a07dbc0978d064b100ecfebae1" } } @@ -45013,19 +46129,19 @@ "f6456b0e678701e28c6a4e322798fee754b4c6d0f806d50583a4b3bd2c244c77": { "b8b48f150dd2033fc11782fa83bfba12af99e2588c361eae29e969d7df966696": { "jp": { - "updatedAt": "2026-02-19T02:24:11.869Z", + "updatedAt": "2026-02-24T10:49:35.458Z", "postProcessHash": "897d7ffd085dfd4fe6c2a9b235e7ff79dd7a501be62246c43444d4ac65ecf3f0" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.870Z", + "updatedAt": "2026-02-24T10:49:35.462Z", "postProcessHash": "ea5e08303d9a74d7a1ac44918f42e287e1ae998d097e479a103bd3043f0e4fd7" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.868Z", + "updatedAt": "2026-02-24T10:49:35.458Z", "postProcessHash": "9c69ed4296fc942f6764ea309c2d4375f2120068bd89ae7caeaff9f47b11c2bb" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.888Z", + "updatedAt": "2026-02-24T10:49:35.529Z", "postProcessHash": "036a5cd207d8e79e4fa1f8dbf6d3d91fb4e0c0ec073aff93208bdff765b819c5" } } @@ -45033,19 +46149,19 @@ "581431969901be3a99a89764a4cd843b136cf34d9c36a58c385d297bcf0b5576": { "848b4e2ed1094aeeb74cb89d7d3f155262e075c04ec6a136f164406460b1c404": { "jp": { - "updatedAt": "2026-02-19T02:24:11.866Z", + "updatedAt": "2026-02-24T10:49:35.566Z", "postProcessHash": "e98c25374662a3ca815f67167c4ea0984615d360dd2fe17b09775e9ef1dbacd2" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.872Z", + "updatedAt": "2026-02-24T10:49:35.571Z", "postProcessHash": "63b0c0a16da2ae1d4be8fb379a16d43f1b86deb75488696875792ff65aa93219" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.866Z", + "updatedAt": "2026-02-24T10:49:35.565Z", "postProcessHash": "b38aa4dadecdc02499bee7025806ed616c2664688b78ef6c6dce7061722b2b7f" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.888Z", + "updatedAt": "2026-02-24T10:49:35.592Z", "postProcessHash": "f928d7012d8f65c9c7e4e75e44de30684f6b2464db77859cd5824b402596a4e4" } } @@ -45053,19 +46169,19 @@ "90b8b253ec086b1363c721e07a29dbd20c3e79932831c40618a9e15eaed1259d": { "558092fa5958f7bf2b9c27c89f455619f6ca6f3513e83b59425458536609e8ef": { "jp": { - "updatedAt": "2026-02-19T02:24:11.877Z", + "updatedAt": "2026-02-24T10:49:35.575Z", "postProcessHash": "821922b266b990ebcf4b4c00827d74feba80af2c18597a299de72d14d5421a91" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.875Z", + "updatedAt": "2026-02-24T10:49:35.573Z", "postProcessHash": "038cb2b825427ef33db479f95c552a60c308359dbc1265d2e35474fa13a90a1a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.876Z", + "updatedAt": "2026-02-24T10:49:35.574Z", "postProcessHash": "af5c5c8f0cddb8ec13408dca809489ba12b4cf46475ad13e3e790fc7b6546e23" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.893Z", + "updatedAt": "2026-02-24T10:49:35.602Z", "postProcessHash": "782b1219937429c9886781863a8bbd0e0be0e49e71a476d296bac70c01f95b1f" } } @@ -45073,19 +46189,19 @@ "b22d1260a64a32ed7c646aebdc8304e5522445a10e936e31715082f3976c0efb": { "0350b0c4a0edef07c101045887230f235288aae9414af376658d84671b54adbe": { "jp": { - "updatedAt": "2026-02-19T02:24:11.870Z", + "updatedAt": "2026-02-24T10:49:35.569Z", "postProcessHash": "957cd286d7ea3b007e6265b7c60ec57fb130db1397c2a27a85bc8cef87fea386" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.876Z", + "updatedAt": "2026-02-24T10:49:35.574Z", "postProcessHash": "9fe0e33b1f3ed286e7adf133af62faacb7b31d9c0570c221ae66f54d74509b93" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.874Z", + "updatedAt": "2026-02-24T10:49:35.573Z", "postProcessHash": "2414c385895dc8295b1c7d2c84fbc725871cd1bc78ba8721140e958b67a76927" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.892Z", + "updatedAt": "2026-02-24T10:49:35.602Z", "postProcessHash": "aafef268694bcb836cf8686113cb7637765f4013696f032b15723a99ce8fd075" } } @@ -45093,19 +46209,19 @@ "ba3d45a637c836f2218890eff93fee4103508fa1c470944799207121717e02a5": { "f3fd1aa8bafa81bb6a7e865a5de62823158a0afcc7ff7586bf136a8b47ee3a88": { "jp": { - "updatedAt": "2026-02-19T02:24:11.872Z", + "updatedAt": "2026-02-24T10:49:35.570Z", "postProcessHash": "b74e29ffaab155bc560a8d8bba4f429e967eae9f11a077379ffc87ece5d0bcac" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.873Z", + "updatedAt": "2026-02-24T10:49:35.572Z", "postProcessHash": "25cb390761a44078166e13c86fed323236b114784edb2a8e8924c8038cf4f25e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.867Z", + "updatedAt": "2026-02-24T10:49:35.567Z", "postProcessHash": "63dc6e959e0a9b5a629ad3a02dd9a7aa95d363342ea770d5a3ca179a0b50685c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.886Z", + "updatedAt": "2026-02-24T10:49:35.591Z", "postProcessHash": "4e4f38d6b7cb726bf565234ad11d015c808f885553c8a35e6725558562cba12b" } } @@ -45113,19 +46229,19 @@ "fb6facb17dc3579b44508a305bcb4895b64ecd0ac72b1f50f97559b26bc78b2c": { "ad02c360d5787e1cd581329efbb507dd02fe16448697b4344569b5bc44e930ea": { "jp": { - "updatedAt": "2026-02-19T02:24:11.881Z", + "updatedAt": "2026-02-24T10:49:35.580Z", "postProcessHash": "b5a8a6f82fd1bd418d8db5ebfa5cf234085676fdd1a38749a831df571e189c1f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.882Z", + "updatedAt": "2026-02-24T10:49:35.581Z", "postProcessHash": "493b597b7bcfa68c48e5db7a1f9649bc154d9728726069ad954ded9ffe12c21e" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.881Z", + "updatedAt": "2026-02-24T10:49:35.580Z", "postProcessHash": "5e6a1b0fcdd3b620379648bf8a1272fdbcdabd6f7d4b95d5255f94d11e701b54" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.890Z", + "updatedAt": "2026-02-24T10:49:35.594Z", "postProcessHash": "c616a3b71e1d636fbe72da7dcc90a2587848ebef587e3d342b0666a0392531bc" } } @@ -45147,19 +46263,19 @@ }, "9a74b99d70640be6312c96bafc766a10a371a04604910c165f2b918fac27bb5c": { "ru": { - "updatedAt": "2026-02-19T02:24:12.165Z", + "updatedAt": "2026-02-24T10:49:35.920Z", "postProcessHash": "9fd44974e4500b431f7be609a73ee068d5de90f5a925611f91b859895a345fe8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.166Z", + "updatedAt": "2026-02-24T10:49:35.921Z", "postProcessHash": "d1505eacb52df770fd9fa70fd7755edbaaa9a2d4aa4fe4738bcdc89bfd3c3854" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.166Z", + "updatedAt": "2026-02-24T10:49:35.921Z", "postProcessHash": "8974bd205500f265f5479cd8935445cdde655a2d478d61c186e7b635f88786f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.191Z", + "updatedAt": "2026-02-24T10:49:35.943Z", "postProcessHash": "b94dbb65802c1796577869839044ad708a0f578640203255827fed1901a3d75a" } } @@ -45167,19 +46283,19 @@ "26fd7d38f92eb5055170efb295d4a4f87a521a38805a47e252302040001b2050": { "6311029c9bad9285962dc8c797429aff225c5d236c038434dbd0c88cfb8a7048": { "jp": { - "updatedAt": "2026-02-19T02:24:12.149Z", + "updatedAt": "2026-02-24T10:49:35.902Z", "postProcessHash": "063ea89c8a56cbf4755f1f8565670e8e084e2284f1d3a5c927c0d502600be52a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.211Z", + "updatedAt": "2026-02-24T10:49:35.963Z", "postProcessHash": "5fba6e0aa0b7adf3399b2109ce409377e1e21818b27938eb0b3f8b33fb2fdb47" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.203Z", + "updatedAt": "2026-02-24T10:49:35.956Z", "postProcessHash": "80d9f04c61a0e5c30d8bd3f412affecfba437535b6f0a36a4a5a6219b8de0c60" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.245Z", + "updatedAt": "2026-02-24T10:49:35.999Z", "postProcessHash": "94180941030a53c11915f2999c2b28987a3a8c2f3cb5c0d5ad691fd23ffc44b8" } } @@ -45187,19 +46303,19 @@ "3f43afba791f6baf15364b9b47e22c85a9f1b3dd6af0e12ec732f9dcec39457f": { "1dd4bcf22efaf403e36fb2a77e769a0046ad25b9ce5480ba0ffe16c707a0ef4e": { "jp": { - "updatedAt": "2026-02-19T02:24:12.220Z", + "updatedAt": "2026-02-24T10:49:35.910Z", "postProcessHash": "aa9e7048cce0db1dfffc23e1701da61a9a697d21e314a537a8c3906cb9f679d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.211Z", + "updatedAt": "2026-02-24T10:49:35.908Z", "postProcessHash": "4dde9d49c21f33e6d515f6635a6067d6ab1241d3a5a0c3b68a7f8b13ea77e0f2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.239Z", + "updatedAt": "2026-02-24T10:49:35.916Z", "postProcessHash": "6f9fdd2b1758d28d99938607fafabe428a5bce03a37d23e488e0bec27f3c0951" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.247Z", + "updatedAt": "2026-02-24T10:49:35.936Z", "postProcessHash": "f3396b210598fa9af754bb3c07f23a48482501f0f052172db58c422ed08ede2a" } } @@ -45207,19 +46323,19 @@ "645f7fd9f0334b6f31287f3ff16746bdf9b9befb1bef269261f6079af9ff22a2": { "4cfca9fae37346c2e6b247de1cc83bb1880d5d141f5ad266dea6ae52b8cce258": { "jp": { - "updatedAt": "2026-02-19T02:24:12.154Z", + "updatedAt": "2026-02-24T10:49:35.906Z", "postProcessHash": "79ef4a982293ecfc27eaa4ead855ebc01ebc52006cca5164a707569db98a706d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.079Z", + "updatedAt": "2026-02-24T10:49:35.898Z", "postProcessHash": "c00b2974297f5d7119d27da92bd2c522c82460fb73ecaa232112d66491e730e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.156Z", + "updatedAt": "2026-02-24T10:49:35.909Z", "postProcessHash": "8d6384debc6a476ce1d1003523a05321505ca0b1ad24f1a96ae5da3c0b74137b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.187Z", + "updatedAt": "2026-02-24T10:49:35.939Z", "postProcessHash": "9dee247af8c26d3498682915b900f0f2bc1ed46a959ec8a64352d8890431c967" } } @@ -45227,19 +46343,19 @@ "870cee0b248ecbcf72715dfd0eeb85ec9af5efaca8d3edcf0fe8c5264910fd76": { "31443088162bd3a031a32984a7f4bfd930cc979d324a47439b26f35ddd40c4c4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.219Z", + "updatedAt": "2026-02-24T10:49:35.970Z", "postProcessHash": "30485132689ba5e49b442b72c9a1f607541a58b1e38d78f1a5ba301e1c38109e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.224Z", + "updatedAt": "2026-02-24T10:49:35.976Z", "postProcessHash": "21110e18aa2f65cc13b6268fcb4284bfd9a7c0d8af840bac2198597d2d8e05f2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.212Z", + "updatedAt": "2026-02-24T10:49:35.964Z", "postProcessHash": "c793c6b34dab16261ffff0c4ce1fdfa4eb1c55f084fba63685bf3187c48411e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.247Z", + "updatedAt": "2026-02-24T10:49:36.000Z", "postProcessHash": "a980f97396040bf01a9dd10a733c50c1760903b384dff2fc68873ce5201d5604" } } @@ -45247,19 +46363,19 @@ "87cdbf09a8306f33d341ac3e84a3332c186b170f3eaade4500b0517c76c52c33": { "27bd6d01dce2d6441ee156267183789fdfad03cbf3cae1fe51042763a3ae5190": { "jp": { - "updatedAt": "2026-02-19T02:24:12.155Z", + "updatedAt": "2026-02-24T10:49:35.908Z", "postProcessHash": "800e9ee660144e824b3d55fba8a54312a452fa126b436333eaf43851e5e5fc42" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.162Z", + "updatedAt": "2026-02-24T10:49:35.917Z", "postProcessHash": "474589216db803084cb0a96d8169d41bb048a7a02f26c5905d3060ce5cdcf543" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.157Z", + "updatedAt": "2026-02-24T10:49:35.911Z", "postProcessHash": "0ec21bebbec151e110b683f67bdae81cfbea5eaffd98d0e23e1350cf84094bd0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.182Z", + "updatedAt": "2026-02-24T10:49:35.934Z", "postProcessHash": "897f48d1a32b4e7d55f05d1b73332b341b9a2bd313a04a555b5a00299462b2b3" } } @@ -45267,19 +46383,19 @@ "03d4f9de31c6bf8adc70ca8cc91ea13e8e9e9c9401061a886ff406f2ee77507e": { "31a8fa488c7303d5b196d590f58b9ffddcbbaf82dd7d661a3d06b19f60b7ddc5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.144Z", + "updatedAt": "2026-02-24T10:49:35.952Z", "postProcessHash": "342f73c0150fc4ecf7868d3fdd507200666df6ffd4218770d87fa34dabf6898f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.229Z", + "updatedAt": "2026-02-24T10:49:35.982Z", "postProcessHash": "4740e673bd57618285de4a94777a80b6b9a750eda286780ad2854042f6d0c6d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.231Z", + "updatedAt": "2026-02-24T10:49:35.984Z", "postProcessHash": "0f7c9e7e1771bd0a7c39b8ea3a7ba1c64e641acc7ee65d8f991da2e0a48d70cc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.292Z", + "updatedAt": "2026-02-24T10:49:36.055Z", "postProcessHash": "cd80ed3ae0f6730061eced356d16d89f6cbfa52cc1ef064fe0688dadd10a5ffe" } } @@ -45287,19 +46403,19 @@ "185920906ded891a9d2e00cce1434c3336837203f6a4afa9c0afd1752f259e14": { "fb5ace8ecf41cd7a84a0650f9d96ead8a0c11e0b73eb701d4b8a50861ed41f3c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.220Z", + "updatedAt": "2026-02-24T10:49:35.971Z", "postProcessHash": "8fab3102af7cbacfb8c0327adca9f2f7a4b43b81e52cb622cdb8c9a23d7b00c4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.283Z", + "updatedAt": "2026-02-24T10:49:36.045Z", "postProcessHash": "2bbdc96e8694d196858a0ff14bb39ec276221906d4f19829513ab249d6bd27ec" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.209Z", + "updatedAt": "2026-02-24T10:49:35.961Z", "postProcessHash": "cdf3c88e1c700a243ba534d9ecbea33c45ab5a70399de01beba5a922b6d3a321" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.291Z", + "updatedAt": "2026-02-24T10:49:36.054Z", "postProcessHash": "d6ac2dd97c9e5c11d851e9e3acbacea2a66df045b867caf288da25ce2a82ae9b" } } @@ -45307,19 +46423,19 @@ "3b5b38cf7b3fbbf741ef360cdeaf09b58c18acb3ff66337f95d902be5f6db59c": { "b37e005c51f403fc9b37bb6c5b5edef44101e2fc840f20186238b36701cc8e6f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.218Z", + "updatedAt": "2026-02-24T10:49:35.969Z", "postProcessHash": "29e24e683505d7f1df98f799951bca194f511e3ebb948ffb140d877629647fb7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.223Z", + "updatedAt": "2026-02-24T10:49:35.975Z", "postProcessHash": "d9c875c09f13901d13de5f62729c177a266ed3a8870e4ecc5afdc9df8884da4b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.208Z", + "updatedAt": "2026-02-24T10:49:35.961Z", "postProcessHash": "1761635fed208b7e6643274c5187673bff4cf053fc7ebcc2c805075baaafbf2c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.245Z", + "updatedAt": "2026-02-24T10:49:35.999Z", "postProcessHash": "1975f49066201fd97dd7c1aefe0bfffbb8c5a1054c856778409ccbdbe1c87bbc" } } @@ -45327,19 +46443,19 @@ "3bc42dea80614a09ae6a300caa882b3109109bbf2c1ff3e4a3cad15872847cb5": { "90eb1bd6cd2087520e2d3b6a42056c3549761f9a48d001c400844b96b08b2d5e": { "jp": { - "updatedAt": "2026-02-19T02:24:12.219Z", + "updatedAt": "2026-02-24T10:49:35.970Z", "postProcessHash": "ddf1fce0024fd6dfa9e83a52f86f3b6b3c81f1d403923e00e496971329adfd58" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.220Z", + "updatedAt": "2026-02-24T10:49:35.971Z", "postProcessHash": "6633ef52cbb2f5b2294641f3a769d4ae88f0ecb1e496d01d71ec7d0e6c115333" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.237Z", + "updatedAt": "2026-02-24T10:49:35.993Z", "postProcessHash": "07cfaa8ba95d4a1cfe75f67398f8144e7db45a557eaf8f3a809091b8497e3b9e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.246Z", + "updatedAt": "2026-02-24T10:49:36.000Z", "postProcessHash": "58a06ec6d30c01f5f6e2f06a147662b43f1cca24668f40154ad197abfb5864a6" } } @@ -45347,19 +46463,19 @@ "4864254e07b5f2ba04547ffdc42c9fa734db92774140cb47efb6c312ff52493e": { "6dadcbfab042a7bcad0c4076a815d1b10666957ab124f50642fb026d185c6859": { "jp": { - "updatedAt": "2026-02-19T02:24:12.148Z", + "updatedAt": "2026-02-24T10:49:35.901Z", "postProcessHash": "0d388ac72aa477fd7f2f778968e6747bed9456c6d64f90ab34832f62f99dc33a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.238Z", + "updatedAt": "2026-02-24T10:49:35.994Z", "postProcessHash": "ed7ee655f479eb559fa8f8d38360bf1236a64ff389ce948a3d8253a6023fb4e8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.222Z", + "updatedAt": "2026-02-24T10:49:35.973Z", "postProcessHash": "c811a381ea62bea47da7d6fa7df605ffbf9bd9d2921458f8abfcdb3998677974" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.294Z", + "updatedAt": "2026-02-24T10:49:36.002Z", "postProcessHash": "bf8b9b469d3da3c5fa47bc7203cec8782780efc1f22c2195b232e3b797d345e4" } } @@ -45367,19 +46483,19 @@ "4b4055e2a3996b0cc1db8bb8b7f1a428a61fcab906f4eb7fc9e8525523570823": { "fe2aceb75f41309c99fba4ee2a1fcbdba1e53d1591a97e9fee22b69867854012": { "jp": { - "updatedAt": "2026-02-19T02:24:12.229Z", + "updatedAt": "2026-02-24T10:49:35.981Z", "postProcessHash": "32e0efafd5dbce61df337a34568c62fd2a757cf1ca721fdd79572f689e63fea5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.234Z", + "updatedAt": "2026-02-24T10:49:35.987Z", "postProcessHash": "7986d0d2dbcd27169146eacfb8caaa80c4c9d8e9c9ae0b7119e5b96a6f6a093a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.233Z", + "updatedAt": "2026-02-24T10:49:35.986Z", "postProcessHash": "874b4b431e65e88b80e914a4275777338044f231ea3a6a4519a91db0694f821f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.287Z", + "updatedAt": "2026-02-24T10:49:36.050Z", "postProcessHash": "5a32b2c987e31d6f75e03ac3fd1921229667605507e99aa85d812391961f253d" } } @@ -45387,19 +46503,19 @@ "4c57ae2a858123d1bbd05031233c5f830692e6ff38484e60425dc1e644619e86": { "ac07bacf3135df09429ba59c3085014c51cd2dd6322c81c9cf515a50ac42020d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.226Z", + "updatedAt": "2026-02-24T10:49:35.977Z", "postProcessHash": "d88f47862b3472e0159817c1d6eaf467021a952a5ccbfedbc5faf9088a07c384" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.225Z", + "updatedAt": "2026-02-24T10:49:35.977Z", "postProcessHash": "f1e2704c54e33192afa50b00fe13e688aa837c440f4d73312de758752e49126a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.225Z", + "updatedAt": "2026-02-24T10:49:35.976Z", "postProcessHash": "d012f374c71dcb31466260a14fffac1bb9c7fb8f2aa928ddcc7d61e3672e6b81" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.295Z", + "updatedAt": "2026-02-24T10:49:36.057Z", "postProcessHash": "b6fb60ac24009a5186668c1c9f67931e9bc68deefff856ed5772a431030475bb" } } @@ -45407,19 +46523,19 @@ "5f4dd4a5e3b9c2038ce5d97add1c57db4cab04802675890f9a71c7e24d65298e": { "54f6ee288acad5771ea6bb244846d3f7f6f97153a3e95cef843610f79d82f51f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.210Z", + "updatedAt": "2026-02-24T10:49:35.963Z", "postProcessHash": "3ebb5d2ff27495bd84a7f0f2a762268f7eecaee7e3f185c77522176e9d6384d6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.152Z", + "updatedAt": "2026-02-24T10:49:35.955Z", "postProcessHash": "3262a36128652ed42fbc25833f19e1be5287bed6d1ebf5d0f3da39a4cb537b97" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.213Z", + "updatedAt": "2026-02-24T10:49:35.965Z", "postProcessHash": "0857ef9923cb67477d3bb727e77d5229186b620924473a5d235fec3e0701fe9e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.243Z", + "updatedAt": "2026-02-24T10:49:35.998Z", "postProcessHash": "0997d884efb3affb899481ecbb505e6077fe2b4a9399004585d6f85e64d028c3" } } @@ -45427,19 +46543,19 @@ "8c9ac06d9f96470f385b45eb7382ea57d23824bef86ddd9dcd04eb31af945385": { "8fd53472854410898a96195caacb583e709b2c67f304949a81fcdc9a6ab77a22": { "ru": { - "updatedAt": "2026-02-19T02:24:12.238Z", + "updatedAt": "2026-02-24T10:49:35.994Z", "postProcessHash": "088167d8ef0bf3f56208098daee231d4bb0ffdbbfae8a5a01d0135729cc7df1f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.216Z", + "updatedAt": "2026-02-24T10:49:35.968Z", "postProcessHash": "de4bc3ee6ee6afebc2fe94731d4154cee93ba5e311690840887aad4c3f3829c3" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.224Z", + "updatedAt": "2026-02-24T10:49:35.976Z", "postProcessHash": "7e1a562e66326a3e97dd847e65adcd3494b208ad242dba39576ef51913166f7b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.246Z", + "updatedAt": "2026-02-24T10:49:36.000Z", "postProcessHash": "41c4202bee3115f5651159ed5f2589c93cb141a6c25264381bbd07ac5c4d0fcb" } } @@ -45447,19 +46563,19 @@ "96f086ac06293e9e587823d8e326b7bdd10741ec2cca41ecf709e6dfda01a137": { "8cde4367a08c4c85a443e691e36a03de277bcadbc7b5b8042f83da242fb60262": { "jp": { - "updatedAt": "2026-02-19T02:24:12.215Z", + "updatedAt": "2026-02-24T10:49:35.909Z", "postProcessHash": "31bc13cb63e4ea4157cfa4def65d1b43f58ba0e8549b3bd685048a814b03d351" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.208Z", + "updatedAt": "2026-02-24T10:49:35.905Z", "postProcessHash": "abe8281fdb4761938f0a1309a2b4d15b4625d1718e99c6407dbb6c0c141dafed" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.239Z", + "updatedAt": "2026-02-24T10:49:35.917Z", "postProcessHash": "4b82fd1b53e65f76415a21dc90e3db2701673044fb99a9a53409eb5ee40cf05f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.244Z", + "updatedAt": "2026-02-24T10:49:35.935Z", "postProcessHash": "5dfc79b77f5277802a94b31330e397db74301b6f15e1761afc0a14a1cff51e70" } } @@ -45467,19 +46583,19 @@ "98763ad1765b4f7ce59ab7c28c03d9f16eb7ba20340f1fd72f141425b73dfcda": { "2b4ac034aba018ed0128e4b4b5e46817e96795dc002eb687680ef694d17118a7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.155Z", + "updatedAt": "2026-02-24T10:49:35.907Z", "postProcessHash": "6c6526c69c9888230bbd1eeda92300435d3dfd2830fd7bb417de1356861ec052" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.157Z", + "updatedAt": "2026-02-24T10:49:35.911Z", "postProcessHash": "f2a9503500a1ce6ccc9e69d65ea092e0fdd7db8ef8b060b95ad7218e6d9f798e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.163Z", + "updatedAt": "2026-02-24T10:49:35.918Z", "postProcessHash": "571d7764bb6cbcbe100819a53494fd358b3c746e084c198b7c0e356e9c907de8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.188Z", + "updatedAt": "2026-02-24T10:49:35.940Z", "postProcessHash": "c56287387ceb843e3275b9528db2acb46122c3393a97c28989d93810d9e621c1" } } @@ -45487,19 +46603,19 @@ "a1f67d04d8c6c016319715cd37f1aaa7fea045040cd960873db250061b59677d": { "c042f748c77a461dd754ffe542382a34bd504df511e412aaa671006d2a6ce920": { "jp": { - "updatedAt": "2026-02-19T02:24:12.160Z", + "updatedAt": "2026-02-24T10:49:35.914Z", "postProcessHash": "dabd07726e63d1d565fe2a048bb751c1594eb5fd29f82c7019cf72cfa6339b8b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.162Z", + "updatedAt": "2026-02-24T10:49:35.916Z", "postProcessHash": "68b77374d4afd76c0ba80b75ae63f04283f22be1006baa058d8e368028763da0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.161Z", + "updatedAt": "2026-02-24T10:49:35.915Z", "postProcessHash": "9ae5ebca1a7bc7f49f2a7760fd4f4590184bc958b637d08e3db498f88820aeb2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.184Z", + "updatedAt": "2026-02-24T10:49:35.937Z", "postProcessHash": "32115900fb729c07c0ed0d1d90f2ba0de5fb7388e1543a58e204b41d4a5d2e77" } } @@ -45507,19 +46623,19 @@ "b6e6ba59aea8d42356d10f15f3e251c9ecdf84b70f6b284cc535f8f2715be871": { "78c8f7d218a9c211659cb2bb3308ce5d14d1718fcdc5e47d42d5c5f55050e6f9": { "jp": { - "updatedAt": "2026-02-19T02:24:12.158Z", + "updatedAt": "2026-02-24T10:49:35.912Z", "postProcessHash": "5cad20fad94a4ef0af8568544ef05a02a30911125214fd195c0f83ba2d23f6e3" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.156Z", + "updatedAt": "2026-02-24T10:49:35.911Z", "postProcessHash": "d6d7a0f42b8803a94740d1411df60393c41dd9ff25ddd1b88722b6c78517776c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.163Z", + "updatedAt": "2026-02-24T10:49:35.918Z", "postProcessHash": "4fa7f79217950b9d81e95840b53bfdd65f34ecb1da0b3fd08fe5220842cd353e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.199Z", + "updatedAt": "2026-02-24T10:49:35.950Z", "postProcessHash": "096a5d9a6d2796800c4df0c9e747e2227c0cae442150fcd223db450e88cf4411" } } @@ -45527,19 +46643,19 @@ "b96f31274279db19ee455ef4a211f35232718d535097413acc9e87b2c16cdee5": { "d1a30df1933d77a7366535efca514780aa4f237e66085e619643f85b025ea495": { "jp": { - "updatedAt": "2026-02-19T02:24:12.206Z", + "updatedAt": "2026-02-24T10:49:35.959Z", "postProcessHash": "1bcd9d94f700fe1cde1bc5d12e1ab2c4667a4c15db38e217994454e233fd3016" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.213Z", + "updatedAt": "2026-02-24T10:49:35.965Z", "postProcessHash": "e89af7da3119c3cac9308980701209e3c6894ba66e89cb2a274a598614d0a910" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.147Z", + "updatedAt": "2026-02-24T10:49:35.900Z", "postProcessHash": "584ca5f92bde27d39d47eaaf547844515f4a8188fa334d4fe0795f8d72c13ad0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.249Z", + "updatedAt": "2026-02-24T10:49:36.003Z", "postProcessHash": "75519069c8f0a30d2c0e37cd918b7e853eeef01affd2f456eabe824b16b12cb4" } } @@ -45561,19 +46677,19 @@ }, "aa68e4488567e4ecdb98c0e1d87cb2f8af9cf250171d8fe8fcc1d7b61d24d040": { "zh": { - "updatedAt": "2026-02-19T02:24:12.164Z", + "updatedAt": "2026-02-24T10:49:35.919Z", "postProcessHash": "c7b1a9dd911e0e2f02fc27179567332d2490655871e8608b912dfab8cc104c85" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.165Z", + "updatedAt": "2026-02-24T10:49:35.920Z", "postProcessHash": "c7d2732aac30d6d65686b2aa5f0f0c7f47f6d1b2d798c47cbcd87f22a384d168" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.167Z", + "updatedAt": "2026-02-24T10:49:35.922Z", "postProcessHash": "c81ae9cf1ca33f635bd297553f0a85760b625c50175459782d42d8748ab4e145" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.191Z", + "updatedAt": "2026-02-24T10:49:35.944Z", "postProcessHash": "addd430ccc05703112ce0d59cc9b6af32e3eb83c24645c006f8bb5cbfdb0705b" } } @@ -45581,19 +46697,19 @@ "c61d725ce51260e373784d5a559f17b1c985d873f35f4f40d34e5dc3c9d30214": { "164319294d8a4a2d8ae935edd6e5941fde821158fce1cb0fdc3c94aa7eba994f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.154Z", + "updatedAt": "2026-02-24T10:49:35.907Z", "postProcessHash": "c86be29f9482e86bff3ae8f6b0772d3ccc50885558708576855fa1463986e386" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.079Z", + "updatedAt": "2026-02-24T10:49:35.899Z", "postProcessHash": "b329dff035b80e0ed502035f65f139f24913e22bcfb2f790d3f164826f6f0d68" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.164Z", + "updatedAt": "2026-02-24T10:49:35.919Z", "postProcessHash": "cf2827a27a294cee25502da32b847653a6e4a5265400d514fe92f91592be37ce" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.186Z", + "updatedAt": "2026-02-24T10:49:35.939Z", "postProcessHash": "fb301407940f5c66007b9330ecdd2afddb6cd3a6b18e0f33958ab0571704bd22" } } @@ -45601,19 +46717,19 @@ "c9a3c995b2d1f1da16df65c84fc5fcd7d61a80112b46a37925da4d4c5cdfec2c": { "fe45037d34e9b052151f9190e1da1d3bf5cd89744c552cf345b160f37129f8f8": { "jp": { - "updatedAt": "2026-02-19T02:24:12.241Z", + "updatedAt": "2026-02-24T10:49:35.996Z", "postProcessHash": "f83100ee775fc80b8e3a5a7bf167c2374a79a8d47313fe9de0c745fe2505b78b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.222Z", + "updatedAt": "2026-02-24T10:49:35.974Z", "postProcessHash": "0693476800c3a3e7ac3e6e462c82264645c345b2e194f4c51bd582629b7de0d4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.240Z", + "updatedAt": "2026-02-24T10:49:35.995Z", "postProcessHash": "cc42a4ad72182b1452868d377391a48555e64326618afd8720e01ef784d8eeba" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.250Z", + "updatedAt": "2026-02-24T10:49:36.004Z", "postProcessHash": "ac5dfae798c2e0d11c55a38a96cc6727e5d32892aa4c2fa9c1d491d23f8ce96b" } } @@ -45621,19 +46737,19 @@ "e87d7bb771e6e969df1f4f17a2cea74b1703104f920ba5110ee4c2bc95819b7f": { "c626b9222d67c0a16c11e25def509ff96d4a34afadbccdcc1676284d3fb3c55c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.080Z", + "updatedAt": "2026-02-24T10:49:35.899Z", "postProcessHash": "492e16eeb4184c48034ad72e1df76cd71cf2ea96f0d43ba3f3d060cea8177a3a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.161Z", + "updatedAt": "2026-02-24T10:49:35.915Z", "postProcessHash": "a7469138a4edde0a4079d76090afb97b537593f283bfc41edfdaaeb145e07048" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.152Z", + "updatedAt": "2026-02-24T10:49:35.905Z", "postProcessHash": "f3378c29a5ce702ca1c57b46d78d9bdbd37434869a74fe5a809b5c636498745f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.184Z", + "updatedAt": "2026-02-24T10:49:35.936Z", "postProcessHash": "3b8b9e805e590886476fb57c9cfb1320d8fe35e0791d2bf578c6ff947917b020" } } @@ -45641,19 +46757,19 @@ "f366eb4cbbf4ae87e0ea8145cfd5006bd57589104335fc046ede417d016c390d": { "e26bd50b67b6a44512d1f83c42aa88dd3b0ee7eea44771e913a93704b405e585": { "jp": { - "updatedAt": "2026-02-19T02:24:12.080Z", + "updatedAt": "2026-02-24T10:49:35.902Z", "postProcessHash": "d46a1af78a8aa4c4eb780068a4ff86b5a77b696ea1d309ac9230ead349bf33cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.153Z", + "updatedAt": "2026-02-24T10:49:35.906Z", "postProcessHash": "2b78ba0133d0fed0b186321cf4f0eb6d76a085c6b4536f588f93e26ebe24780d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.151Z", + "updatedAt": "2026-02-24T10:49:35.904Z", "postProcessHash": "56d6751a12f8c32d3ced0435e4cb2f43e8156a18750ba6e93707d3421f564851" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.186Z", + "updatedAt": "2026-02-24T10:49:35.938Z", "postProcessHash": "058fc457cdd58c1b256cf9340269d02447e974bf8b4bec8c25c6e119ada62699" } } @@ -45661,19 +46777,19 @@ "0dec45ecddb0d4b9ff3311f5a670eaeb053be15ec02969e2e3cc776a6771ff5c": { "77a1b67ca7c88505859a9611495e54062c95a3d5051d05c9862ba6120252576d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.264Z", + "updatedAt": "2026-02-24T10:49:36.023Z", "postProcessHash": "4e93e025cdd7905c05c76a203a48deee2c8595fe4d08c0b9697a29f56937d0a5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.276Z", + "updatedAt": "2026-02-24T10:49:36.040Z", "postProcessHash": "6cf86928e2588ce60fe4c23821b5f972b91fbd93119fe888f57caa42ee8e1163" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.255Z", + "updatedAt": "2026-02-24T10:49:36.014Z", "postProcessHash": "48f8db88c82138a16e3b182a450d2545f83bbff49639db386be4a96bba50d5b1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.297Z", + "updatedAt": "2026-02-24T10:49:36.059Z", "postProcessHash": "44d6144ec3a8b14d2d7701c9625be4bc7f282679ea234ccb0723f64879bc2b0d" } } @@ -45681,19 +46797,19 @@ "1345e1194d63be447e8235ac3810d70f7853efd69e98e071d82ffea7cffd7a32": { "40371c6acad0719623ab143c6991d629d5eeef18fd54755245385719989fae91": { "jp": { - "updatedAt": "2026-02-19T02:24:12.268Z", + "updatedAt": "2026-02-24T10:49:36.032Z", "postProcessHash": "c6bee5da6108e350992eb5d1da26bd9243f96120131e6cc1de3f81ecba72b1e4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.256Z", + "updatedAt": "2026-02-24T10:49:36.015Z", "postProcessHash": "d6c79fd8314fd3a537a7a710bb9dbbdb12f0df0ff16fdd091abd7858c4680a19" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.262Z", + "updatedAt": "2026-02-24T10:49:36.021Z", "postProcessHash": "6f5f18cfbcb03431934fd2da8f45eca106089c7015a636f51841ca41e4be6093" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.287Z", + "updatedAt": "2026-02-24T10:49:36.050Z", "postProcessHash": "6f088ec9b0770975d722f3537609c4afd9832233cb7a5537eff12a9f44478971" } } @@ -45701,19 +46817,19 @@ "1784873802e351d4cbfd164226e7d919a480bb1d6312139fa09de23c15d16a8b": { "8742e923d01dd09dc7d8778dca915632a84b942a268948d3212bfca23e4e87e2": { "jp": { - "updatedAt": "2026-02-19T02:24:12.226Z", + "updatedAt": "2026-02-24T10:49:35.978Z", "postProcessHash": "bced86fed0ab75d69ebeaefb551d49db3ef75948be02ecd3bc2a0852f83df533" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.230Z", + "updatedAt": "2026-02-24T10:49:35.982Z", "postProcessHash": "4423257771f7287d03f4e3230e9f68206e52059713dd2137a8d85296551fcb37" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.236Z", + "updatedAt": "2026-02-24T10:49:35.992Z", "postProcessHash": "78ddb32b15873cab7609bee877dc5c08d6735cfd0487d683081551bc2a59f176" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.289Z", + "updatedAt": "2026-02-24T10:49:36.052Z", "postProcessHash": "534a844c2ed0d7b51ff79702b770050d395880f1d35d6e49c94c930e471b5bec" } } @@ -45721,19 +46837,19 @@ "1976a270e928ec95aa014d1eb571385ad93c7acfac83fd172543fcf63d413493": { "28f4800b7936b39a171e2fb6c8317b4c9829a963ca30e0d8f2cb33e3e1dba27f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.269Z", + "updatedAt": "2026-02-24T10:49:36.033Z", "postProcessHash": "48f09949e0bfa22335db42b5dd9792ad5e8b83eddcfdd5189a736b05c369b94c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.257Z", + "updatedAt": "2026-02-24T10:49:36.016Z", "postProcessHash": "2eef4303e8f957af985a1568575b2c630f33ccd2892bb3b891702460912b09a9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.202Z", + "updatedAt": "2026-02-24T10:49:36.006Z", "postProcessHash": "7189c10790b89b7f04fcd5c0b3566a824f90ae7f1f7df1e688ac57afe1d4a644" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.286Z", + "updatedAt": "2026-02-24T10:49:36.049Z", "postProcessHash": "d4ed9659e0d9eb417b24aa3e71467c6ade041df3f980fb099a6bfc842dc25184" } } @@ -45741,19 +46857,19 @@ "19d053d8db1755b3bac1323b8dc5bdf881a37b3de8c55e8397cfd48c70b492c7": { "a35e75c19a0f228c55c8e74114787fa88e13457d020f241643da1e080c35d9ae": { "jp": { - "updatedAt": "2026-02-19T02:24:12.280Z", + "updatedAt": "2026-02-24T10:49:36.043Z", "postProcessHash": "6946718c792497f925bb44b05656c2e941e6d4f24575021f835d99b027f4a93d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.255Z", + "updatedAt": "2026-02-24T10:49:36.014Z", "postProcessHash": "c7c5be81e8ae5e75bfeb21bdd7ecf7fd8fec5517772e0b88558f5c79d94b4881" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.201Z", + "updatedAt": "2026-02-24T10:49:36.005Z", "postProcessHash": "f20ba0dcdda520631679004ca34a1a81b4226d84925683fa1e1c1465561c821e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.298Z", + "updatedAt": "2026-02-24T10:49:36.060Z", "postProcessHash": "d292205d7d1954698a9d40b6b2bac8cb0a58b664386d53782f6989a546a7b353" } } @@ -45761,19 +46877,19 @@ "1de644041acf945417d447dae1559f7cba704ddb7f42f4989d75f53b3432bcc7": { "0d354a4bc3cf5327de48753ad84ff21b24119bc6b87f048f6f36a86e9a56461f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.228Z", + "updatedAt": "2026-02-24T10:49:35.980Z", "postProcessHash": "64949693ff312769cafd8eb75ff5b87bb6bf4fd2a400d55d46f057b26ec8be06" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.227Z", + "updatedAt": "2026-02-24T10:49:35.979Z", "postProcessHash": "20ae04f4bc928b3a37ff835719b758a02a432697314c9d8727c1967348d4e250" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.227Z", + "updatedAt": "2026-02-24T10:49:35.979Z", "postProcessHash": "7069d81cc3cca0493a609d6e8c7ba037a543f4aba2b91a32638d6d8c51e89282" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.296Z", + "updatedAt": "2026-02-24T10:49:36.058Z", "postProcessHash": "cef5b2b4083a45a41cffeb6c4401a17189abfa0c364b7903879412937165302a" } } @@ -45781,19 +46897,19 @@ "21df29d894f5394f8a93a1ff43ddfcea466286f726a703a29d7f5ad5f777ca4f": { "f9004a0faa2530c5a49f802aa2e8e063889d07b4b5779757539ed40941914621": { "jp": { - "updatedAt": "2026-02-19T02:24:12.254Z", + "updatedAt": "2026-02-24T10:49:36.013Z", "postProcessHash": "d5cf0aa5fcbc112529b1ff94a9ad229c2c176c629f7e816561bd50a409146613" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.282Z", + "updatedAt": "2026-02-24T10:49:36.045Z", "postProcessHash": "3cfa3dc75a1bec02ca267238b84574f7f1e8f492d5b6751088d9ff0a4cc11035" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.254Z", + "updatedAt": "2026-02-24T10:49:36.013Z", "postProcessHash": "7abf106a9c189f18dc04421c521bf638d35ce0083c461c6b68eca44dde91d4a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.300Z", + "updatedAt": "2026-02-24T10:49:36.062Z", "postProcessHash": "1258710e7499bea34cb223ae3343ff78aa7712d37423df889ead6a422bf7700e" } } @@ -45801,19 +46917,19 @@ "22ff9a2316c586c12132ac52204a80c3282c99ea70504b739a00fc4e769b9090": { "9b6474c5f66a5e775df7e704ab5583bc77d7b503d80449e41bcb0fdca582d72f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.281Z", + "updatedAt": "2026-02-24T10:49:35.989Z", "postProcessHash": "a2a93874426b1f0c8e3197d943eea76ba9114485f7f20d53b5132bf7e7022f99" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.253Z", + "updatedAt": "2026-02-24T10:49:35.955Z", "postProcessHash": "eb6d2d343e02e0399496e630e9fd9edcc2236f9296ea1181bb6cd3cc52bafc01" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.282Z", + "updatedAt": "2026-02-24T10:49:35.990Z", "postProcessHash": "d0fdfa6e22746ae0087f960e388738e28553a82800fa57ade0af0f25492a0ee4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.299Z", + "updatedAt": "2026-02-24T10:49:36.062Z", "postProcessHash": "5f434d24f520b025f2437999f5a225a89237750d5b17f8a5ca32f7699ef582c4" } } @@ -45821,19 +46937,19 @@ "642f1cdcfe6481dcca55bd2f485397c27b2cb519506bae85d0903d1022a9a534": { "d58e38a4b38f0454d5c08c7d2887270f277c732f8c21e5a62fa24568ae4fc2a9": { "jp": { - "updatedAt": "2026-02-19T02:24:12.231Z", + "updatedAt": "2026-02-24T10:49:35.984Z", "postProcessHash": "1a9f83ddc292362420c6a52de2657bc7271f5c21ba3ab0abd2ad1bc2a8b1107d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.146Z", + "updatedAt": "2026-02-24T10:49:35.953Z", "postProcessHash": "22e211ced8488ecf55bca008b238d7ac47d7adabf9e5bf2e3aadc8871c61418f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.232Z", + "updatedAt": "2026-02-24T10:49:35.985Z", "postProcessHash": "f64d3c780a504461888778408b202e10c4a9fb705b84295aa98d66dd14c51490" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.301Z", + "updatedAt": "2026-02-24T10:49:36.063Z", "postProcessHash": "288960f7cb5673809dd052d128255059c311b9a4b3f164d5c3eedf49fa980fce" } } @@ -45841,19 +46957,19 @@ "76e148edd42e2339581c7f24e0a25ab51ee37d3723b355157641afd3cf2a92ac": { "96f0f82692a94d11ec4bd22df9bf9c367d91f54e7f111247f17715678d4f8a7c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.216Z", + "updatedAt": "2026-02-24T10:49:35.967Z", "postProcessHash": "4e595b1141c0518c7841a6ec96ad8536c4e0dbd032c3f822791199b5531d1e64" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.207Z", + "updatedAt": "2026-02-24T10:49:35.960Z", "postProcessHash": "be8e0c93e4a1e5dbf1af150d27e4521e541a79032ab83a897566942388582511" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.209Z", + "updatedAt": "2026-02-24T10:49:35.962Z", "postProcessHash": "be718d0f9fe89d95c51c4941b0b69e2697cbe9c6e495dd644e47e67e55c4944a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.244Z", + "updatedAt": "2026-02-24T10:49:35.998Z", "postProcessHash": "95cb2d386f85baea105cad03eb6eb02f22d0d4dca1d1e3e8d52ccec753ac3ab0" } } @@ -45861,19 +46977,19 @@ "877ff646acb9d8b60cc0a8c397ec6865271899314d2f8d8c3bc6835ea0a51d87": { "cf8035df5e02498f9892ec6d01d716e4e210be81d6a338a2a670b395f2d05b5f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.212Z", + "updatedAt": "2026-02-24T10:49:35.964Z", "postProcessHash": "9754eabe6ff04ebbac4ccd7980ffaf67fc9bce9ef1e1553c54eaec062d6c273e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.206Z", + "updatedAt": "2026-02-24T10:49:35.959Z", "postProcessHash": "f8b2bac35033892cdc6e42643a5baf6b1067e92a8f3fc42e84765c59f6bffb1c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.242Z", + "updatedAt": "2026-02-24T10:49:35.997Z", "postProcessHash": "5836613e5abfa168c08664a52a10ffc5ca5d71f87b3246949ebc3f568043e919" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.249Z", + "updatedAt": "2026-02-24T10:49:36.003Z", "postProcessHash": "be88578609c478051f0d2f7bf8bddaeda7c0e6dfd681129fdb9de8747cf25776" } } @@ -45881,19 +46997,19 @@ "ba2b228d4949b83493253e6cce36fa61e4aab29868007f5c4dea719bd97fe4e3": { "bb371d742e1c3d8bcdd77214bf030643a0331f8f48e7727cbd847a8a32b85ac5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.218Z", + "updatedAt": "2026-02-24T10:49:35.969Z", "postProcessHash": "2fbd8f76e2aeb29da86003f987ffb31a97a158a406bf03d040a234504587e948" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.242Z", + "updatedAt": "2026-02-24T10:49:35.996Z", "postProcessHash": "f413b39bcd632191f090e9fdd2d1d6d298fd4a8b5ba5edac3ab16629535ef55c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.148Z", + "updatedAt": "2026-02-24T10:49:35.901Z", "postProcessHash": "3894d31f35ba948c41b872b301c2ad7e384aa0d02664f12057d9fea72e92e89a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.250Z", + "updatedAt": "2026-02-24T10:49:36.003Z", "postProcessHash": "606e9f4cf2b0535a8525e77ab36f5cc6781741deacedc42fbf1f85eae170988f" } } @@ -45901,19 +47017,19 @@ "c88c05312ecb48fece611ecb971d8437aee67aab577a01d65950c88e236c100a": { "d28f12f9ff28bee751ec769892ca255d368223c72a14abe462c9cf6ad965a8cc": { "jp": { - "updatedAt": "2026-02-19T02:24:12.230Z", + "updatedAt": "2026-02-24T10:49:35.983Z", "postProcessHash": "33db5b598c9625a1f79da17c8c66f910b81057e0ba72b6e3289653d0c9c21898" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.234Z", + "updatedAt": "2026-02-24T10:49:35.988Z", "postProcessHash": "5ebb167c961661130521bc95b12346f62de7b4425babefe276cfa8874e945c17" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.233Z", + "updatedAt": "2026-02-24T10:49:35.987Z", "postProcessHash": "7762c56f9d55c8e6fa4b34b624adfe9e9ba0f1bd25adfb116cf4214ea633dfb5" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.288Z", + "updatedAt": "2026-02-24T10:49:36.052Z", "postProcessHash": "ec8214cf95c06573cd4b1b94127f0ca5a9645981bb78eec24533e31cace37d34" } } @@ -45921,19 +47037,19 @@ "d517690990eb5a5034e28f3526bde41c42990306742079c31f30f4ed4524ed91": { "9c79376ce670521bff71e976361e6729afb8128c48c2bd62e07e55c58efa6cbc": { "jp": { - "updatedAt": "2026-02-19T02:24:12.151Z", + "updatedAt": "2026-02-24T10:49:35.904Z", "postProcessHash": "366ba967a671f4af841be64dbf4cd15f8651fe8fad0fa1cd7c25b855091a5480" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.214Z", + "updatedAt": "2026-02-24T10:49:35.966Z", "postProcessHash": "0e09e2ddbcc2d58dc4ea136ed08b9f9e48c70ed54ce33f7a2074bb79abb5ec69" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.150Z", + "updatedAt": "2026-02-24T10:49:35.903Z", "postProcessHash": "e2c1cf39e6c3c83d8a44cc364d5d3be68bf0d6ffabfc913bb6f087b23d3e6c34" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.243Z", + "updatedAt": "2026-02-24T10:49:35.998Z", "postProcessHash": "7baf09018320a7e7210e383943f83a0a0e934b8ae1b4b0dd0cce391a2ccdfb00" } } @@ -45941,19 +47057,19 @@ "e226489ddbcee1a5f588fea5844e21dcac309588b3ec1f6bbc9f7bfd26b0953b": { "5792c89f06fcaed31fc80316244e3ff2495629cc4d68214bf2ad0fc8b2cafcae": { "jp": { - "updatedAt": "2026-02-19T02:24:12.150Z", + "updatedAt": "2026-02-24T10:49:35.903Z", "postProcessHash": "d05b7b9346e143998584365a1680d9f22575bdcbb4aa24a457fb09fecc9b84a2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.240Z", + "updatedAt": "2026-02-24T10:49:35.995Z", "postProcessHash": "13ef8a8eca2a81dd5205978134258413f4fa0df10e411df908f4776ab9cfe2f6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.205Z", + "updatedAt": "2026-02-24T10:49:35.957Z", "postProcessHash": "eafa37e32c6c8397b05610c369949a189f41da6b3892562c61deaef9721e468b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.248Z", + "updatedAt": "2026-02-24T10:49:36.002Z", "postProcessHash": "fc2859d76aba7974be01b5a2ea24d84dcb81a467dd715d97628b237ffe26d013" } } @@ -45961,19 +47077,19 @@ "e3904a052cbf5a3387388c389ae010ddc49649dbbbff19900f769f6e6cbfa1ee": { "e3e518cc255f67640d601fecd3cfb11ea7e915ddf282acc6eabba8311aae5b22": { "jp": { - "updatedAt": "2026-02-19T02:24:12.215Z", + "updatedAt": "2026-02-24T10:49:35.967Z", "postProcessHash": "91217dd92239755eaf54f56e7f6aee814baffb30a5888f4ca3c568c58e678408" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.214Z", + "updatedAt": "2026-02-24T10:49:35.966Z", "postProcessHash": "7ddaf8151d5b0a145df834394938c3523f80d49634939a7395481f6e812468d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.217Z", + "updatedAt": "2026-02-24T10:49:35.968Z", "postProcessHash": "751b6bda033d93fb14915216f2bb5aaf4b7680f6b8e2211ae4cae60046cedcad" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.288Z", + "updatedAt": "2026-02-24T10:49:36.052Z", "postProcessHash": "95a5154059a73d3d6ede46d5bc989a9c6992caabefeeb880342f1d32fece6cbe" } } @@ -45981,19 +47097,19 @@ "e6ad4f2ee58b9c424f0cc4e12e443aa3bb9dfb641432accc87e403a8b0597b0b": { "d64cf4716347332440eb8c9bd7192e0eae84a3f3eb49ad6ba4155f87567e3861": { "jp": { - "updatedAt": "2026-02-19T02:24:12.221Z", + "updatedAt": "2026-02-24T10:49:35.972Z", "postProcessHash": "a14afb60ef7291b81a0388ce9458692d1b57ce2943a89ac06366e0bc8af9d953" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.221Z", + "updatedAt": "2026-02-24T10:49:35.973Z", "postProcessHash": "6e4cd66bc0f3d78a54db5cc9c1857cedd8a1bd37a7cbd0db4b5bcd3a4fd4f395" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.223Z", + "updatedAt": "2026-02-24T10:49:35.974Z", "postProcessHash": "abdf170beb61dfbe86ff3ee3746fb91a6f75af86d9c9901b21788097fa24ff8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.291Z", + "updatedAt": "2026-02-24T10:49:36.055Z", "postProcessHash": "ee18321575832fa44e4541aeb28e0f4acf26f3a1961824ccf9a4f577a040809c" } } @@ -46001,19 +47117,19 @@ "e8d810b58d2fc954739ecb8eae76ec7772a7459c01a08dd48ba208a5ab4b2b58": { "0d3df994d73dcce5dc7c4ae8f510488dca241f13863b2cb49c97f6056079afb1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.237Z", + "updatedAt": "2026-02-24T10:49:35.993Z", "postProcessHash": "1bc051eaead31d8029548a260ee4b8242a23e8c8bfa40c54387b65aee3917717" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.204Z", + "updatedAt": "2026-02-24T10:49:35.957Z", "postProcessHash": "43b16e2afcb11fb6b6c16f41a918ed837c0225ef0f488782a79cc41cf97daa5b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.209Z", + "updatedAt": "2026-02-24T10:49:35.962Z", "postProcessHash": "fb9e7d91e1ef56165aeb7bceb32869cbc56382eefcfe126b8996f9517db78173" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.292Z", + "updatedAt": "2026-02-24T10:49:36.001Z", "postProcessHash": "37c5f439ebb181353b1bc4ccf9a14c2e9aefc2f9486e3ccf2b18fef4613d305b" } } @@ -46021,19 +47137,19 @@ "ee906a548fde378c55bde17a104978853c964efcc0ac2037f2cc5f90ff301836": { "f49e9e3f91b64b3519c5cc4cdc59ffcf9a84b52eba96cc9a68e95e42dec254a2": { "jp": { - "updatedAt": "2026-02-19T02:24:12.241Z", + "updatedAt": "2026-02-24T10:49:35.995Z", "postProcessHash": "55f16abbd0a5e1a0f82c8a918c5a343665944eeb15517fb443d3fe6e28b03119" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.207Z", + "updatedAt": "2026-02-24T10:49:35.960Z", "postProcessHash": "cbbfb9085ac22664a60a846819041d58540f4caf695215e3c64ffdb19f7af5ca" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.210Z", + "updatedAt": "2026-02-24T10:49:35.962Z", "postProcessHash": "d52ed5a78d516898933035ff5b9b063a1d69f0ef87de70e616f7b428d42b0506" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.289Z", + "updatedAt": "2026-02-24T10:49:36.053Z", "postProcessHash": "abb60ae3201fd5a9f9705921aa90e78a0bdc1afc6d84cc641aee5721efe09e0d" } } @@ -46041,19 +47157,19 @@ "f17585a5d8e2bdd6a2ebea5f856955881ef4c473fd73048cf4f26e56bdcb5db2": { "9e7753f5e285750271319abb9baa46c784486772a2b4da88514c28c5141c5c81": { "jp": { - "updatedAt": "2026-02-19T02:24:12.235Z", + "updatedAt": "2026-02-24T10:49:35.990Z", "postProcessHash": "bc9736856ae73d88c8bed8cfc8e50ab9e062022210d17d6f058123075ec33087" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.145Z", + "updatedAt": "2026-02-24T10:49:35.953Z", "postProcessHash": "d2538afafc5c94322e7e31b0a66076718d0e5e76db8bcf787147dfd81e5a5df9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.235Z", + "updatedAt": "2026-02-24T10:49:35.991Z", "postProcessHash": "24bb0d774aee727f068cc65abb714362e1282b5f9b9c6ac70a4e65276f26e263" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.300Z", + "updatedAt": "2026-02-24T10:49:36.063Z", "postProcessHash": "9622a45af50b6a3ff95bec1f9c197492a2fc912178090059f045855db33ffef7" } } @@ -46061,19 +47177,19 @@ "fdfddb9175ea6844a8f625eb6ff292798d8dda51dbc62ca44009000f3177a4c8": { "a1fbebb2555661587982370786b093295909d4be9fcca7e32ae5eff02acae18d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.205Z", + "updatedAt": "2026-02-24T10:49:35.958Z", "postProcessHash": "39f69b1ca1d0294ac7015d6d6ef441fc5233dc3fcd3b32de2fa8c0c676426cc5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.204Z", + "updatedAt": "2026-02-24T10:49:35.956Z", "postProcessHash": "6fcb48cf967f832a8207e226d40cde656e4002877b56e805df6b544d2af989a3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.147Z", + "updatedAt": "2026-02-24T10:49:35.900Z", "postProcessHash": "0237764ddda3aaaa37a2821d2e99c8592471ee1ff54cfbe41097aed1dfb30b33" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.250Z", + "updatedAt": "2026-02-24T10:49:36.004Z", "postProcessHash": "81b391e65d7a77c2a8aa68c3a447ce34771b579f92181f4f75cd6741d0722f6c" } } @@ -46081,19 +47197,19 @@ "04fc2fc59d087b4841db1401316e4d1c9ac88f144242faabf25ec2e969a5215b": { "414e7c4dfb6cd3da8443de0d53c94c82fe3258fa5fdaf93915afe2a8ec3736d4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.309Z", + "updatedAt": "2026-02-24T10:49:36.070Z", "postProcessHash": "bdc68a19392163565e0c9cc7dc13944cfb7cf023e4960aae10122682878d8002" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.310Z", + "updatedAt": "2026-02-24T10:49:36.070Z", "postProcessHash": "73d1d2932d1848b889b12335964036fe824070980a717434234bd7faa68dfb56" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.258Z", + "updatedAt": "2026-02-24T10:49:36.016Z", "postProcessHash": "70333d15ca1f9d33107838e4a0a0ac9372876b1be133cddbd3a17579691d30a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.360Z", + "updatedAt": "2026-02-24T10:49:36.114Z", "postProcessHash": "4377bdce9a9a1383056f6f2f8aff60f0264869ce6b8f31c189e6574fa8d94e9e" } } @@ -46101,19 +47217,19 @@ "2fe2ff96c504c59daad55285eb365e9e69fcc5eddd301d8a0409670d1de5a9ac": { "79af085e05f9fd1374cba79aa1eea65a5fa7bcadf0fcbabfc3df348faf04e6e8": { "jp": { - "updatedAt": "2026-02-19T02:24:12.268Z", + "updatedAt": "2026-02-24T10:49:36.031Z", "postProcessHash": "1bb2b6d49b89631a1250de026409c57dcdc744421c6ab605c7c97e1fe4d7d66a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.308Z", + "updatedAt": "2026-02-24T10:49:36.069Z", "postProcessHash": "e472bd7a17bfd5e7f4cc927bdd2a48c143e3689fb49f9ca63d23d6f89f20d933" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.273Z", + "updatedAt": "2026-02-24T10:49:36.036Z", "postProcessHash": "994c53835215d51a9de690f32af171a1642a89777c6dd34f76855464f32ab292" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.351Z", + "updatedAt": "2026-02-24T10:49:36.104Z", "postProcessHash": "671e33989b3f3d9e12fc2499ae10db87c0825521aec5d96358ae707de0ba6053" } } @@ -46121,19 +47237,19 @@ "32c8d946bfccbad7f54bc00de27ceee1cc1719758ec7a678b9763d7236502014": { "6c958d1bfa513f4a8e0811e9c383ecdf775c2aa645e088ea7d02462f9209a69c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.267Z", + "updatedAt": "2026-02-24T10:49:36.030Z", "postProcessHash": "cf396daba4d7d14f7ca74f1f79c61b047ee9b25e6ef48b81b5c760d09acc8352" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.260Z", + "updatedAt": "2026-02-24T10:49:36.019Z", "postProcessHash": "0ea0eca2ae868dea1309cb1a37b4fc9e435d62658843c941dcd0fb991f10a0d6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.258Z", + "updatedAt": "2026-02-24T10:49:36.017Z", "postProcessHash": "a32b0f2953266a10d50bca102d9b13eb02cbbbe0f315e28f501e728b8a3bac1d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.296Z", + "updatedAt": "2026-02-24T10:49:36.058Z", "postProcessHash": "b4c3685f9c05b8046fc3921385a1a6434e7db7a598ccda9d8d58a7ec28fc9d5b" } } @@ -46141,19 +47257,19 @@ "341eea9182cfeebd2c27c019d06a39d1fcf951c990bcd80fa61f11ffc6f9e196": { "aba92e4ddf93c8ac27c276aa33d276f9987cda30270a7b50881edac3ee8d0b71": { "jp": { - "updatedAt": "2026-02-19T02:24:12.275Z", + "updatedAt": "2026-02-24T10:49:36.039Z", "postProcessHash": "098a6354c13bdf43b325a467d3623721c17fe81ea32271df1436b8cac0a4babd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.252Z", + "updatedAt": "2026-02-24T10:49:36.009Z", "postProcessHash": "0c5ce11e7dd64cf7bbc970af41176b7c9e635403bcf3d6b05c4f2fddfc860702" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.251Z", + "updatedAt": "2026-02-24T10:49:36.007Z", "postProcessHash": "fa1fb5336cc4b7451e3c31ea3d2a0df189d6ce2d2e43068db263cf97939ec7da" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.290Z", + "updatedAt": "2026-02-24T10:49:36.053Z", "postProcessHash": "08bbe45c08000bea823303ed8f95e49e1c364971d005ab770798fc84b925fe4d" } } @@ -46161,19 +47277,19 @@ "3fe31c561edbb5416b22ecceae952bb5b07567cc07d75cd64ad4a2caca7689f8": { "af620cd5ed38d2654712e19961c6712bdc7c780d345e73f17ae49396a20d6df0": { "jp": { - "updatedAt": "2026-02-19T02:24:12.272Z", + "updatedAt": "2026-02-24T10:49:36.035Z", "postProcessHash": "9b3a9d61821c0f256092e91f80dee6bd9f112ea82f08b0651f7ef6bb07b4bc5b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.270Z", + "updatedAt": "2026-02-24T10:49:36.034Z", "postProcessHash": "f38cedd2151352b5918a2a7dc95493b213ff50aa6e103e6c5a8f1bfdb81d5dd2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.270Z", + "updatedAt": "2026-02-24T10:49:36.034Z", "postProcessHash": "15968c9fcfa6408203f63bcaad5243b8103eb33082b45dd2114287820dfa7753" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.289Z", + "updatedAt": "2026-02-24T10:49:36.053Z", "postProcessHash": "ad61f1709f3b044cd741ddef1bcbd327ea35bca765f3dcbf163a8a8b3986b212" } } @@ -46181,19 +47297,19 @@ "4afdda2989ef4d77a80eb6666ee0e5fd90ac3afbba1e33f8e39a07be3bbd203f": { "6d99a0d2cef83d17f6510958c4402246edefbb9b9d564c2e37e017791950e3bd": { "jp": { - "updatedAt": "2026-02-19T02:24:12.264Z", + "updatedAt": "2026-02-24T10:49:36.027Z", "postProcessHash": "68f0470f50fa3a0cf5d2ac8c46f63dec78f5a025cad2459daf764b7322484971" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.278Z", + "updatedAt": "2026-02-24T10:49:36.041Z", "postProcessHash": "c7ef5b11510db9c2854e7006893de4afbad7c5208b56279c0aa479d6d57ee909" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.271Z", + "updatedAt": "2026-02-24T10:49:36.034Z", "postProcessHash": "713dc25746566739ce478e461306096003f4d1826cdaef325ee55cffb0496595" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.293Z", + "updatedAt": "2026-02-24T10:49:36.056Z", "postProcessHash": "cbe15343a67c6cc2012cd19c00e96ff4ebcf419eab2f30758beca83372b855e4" } } @@ -46201,19 +47317,19 @@ "4ecdaa59771417d8a6341e9feb60dbd9c4d4fbb10361d6cf230a66334329d458": { "32e97893f5bdae1c411c78d8f927f38c3f5f53f548071542f0aaa587e832cecb": { "jp": { - "updatedAt": "2026-02-19T02:24:12.314Z", + "updatedAt": "2026-02-24T10:49:36.074Z", "postProcessHash": "b7d65dd4e5ddeebcd095aee1a0b04763fe688c78f33dec9a44c87bad76e1807e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.312Z", + "updatedAt": "2026-02-24T10:49:36.071Z", "postProcessHash": "a2155780df395537185f288cf8a2f0745a68608bfd08e741ee2b16f32fc0f7b2" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.312Z", + "updatedAt": "2026-02-24T10:49:36.072Z", "postProcessHash": "41d8ce57922256847c4153ec9cb0a38a18229a5c60b0c1b3f4daed200687d2fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.356Z", + "updatedAt": "2026-02-24T10:49:36.111Z", "postProcessHash": "5ca6997441f1a6d10d2ba44df096169aac2f71723606bc15005e33d5a5139877" } } @@ -46221,19 +47337,19 @@ "5ed43729b9d1c584d6d2715ce2c8e0e8690a779f998a5295f954f2f562471776": { "1691e237ea64aacab998e397d87c92e5419d9695a9c24f1829f61653d169f1f3": { "jp": { - "updatedAt": "2026-02-19T02:24:12.202Z", + "updatedAt": "2026-02-24T10:49:35.954Z", "postProcessHash": "ae84c13a649ed016b01c95c01a8ec4eb4ab3dac08d5e0f024bbd04c4cae40fc6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.263Z", + "updatedAt": "2026-02-24T10:49:35.981Z", "postProcessHash": "571327f36f455107988c887f9d87d25f3b59d41ec8f27425b3c0b9887b042a24" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.281Z", + "updatedAt": "2026-02-24T10:49:35.988Z", "postProcessHash": "b2ca141ec01cdd5a90ca31f00de9cafcabf9a1a51ad44b896bca0b29de92d64e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.299Z", + "updatedAt": "2026-02-24T10:49:36.061Z", "postProcessHash": "6763a825ede47877a831ca184f506b2e5b86fa71a72c45acec28cc283a4f2a41" } } @@ -46257,19 +47373,19 @@ "7043bd98baa35080107f5165fe9bbec5ef39eb9956052fa0c10ef9ac22039a33": { "e6b73b30c4502fd5f9cd04636be35210ae5ea65dc8343c3daaa83eba16905924": { "jp": { - "updatedAt": "2026-02-19T02:24:12.265Z", + "updatedAt": "2026-02-24T10:49:36.028Z", "postProcessHash": "888a3e5f5318964561e914f134fd89a9e18b9c9802b942555e44eb7f26158a88" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.273Z", + "updatedAt": "2026-02-24T10:49:36.037Z", "postProcessHash": "05769485d16367ac414b7fd7aa4ee7228ceb3a28dcd1e34d893f4d4106543513" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.263Z", + "updatedAt": "2026-02-24T10:49:36.023Z", "postProcessHash": "e6be284128f3a6276e6659c779337ff65d1ed1f7874fb5ea569f4b971b07cd39" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.356Z", + "updatedAt": "2026-02-24T10:49:36.051Z", "postProcessHash": "846f8d64aa467022c947cc7e3fb1ed436f15bdb8b661c802cc1216872709924f" } } @@ -46277,19 +47393,19 @@ "73cc61c275b13e314a195a2bcdc4cbfb3fba91139f9fd1bffb19f48a659d4e6a": { "190e7c7b34bba92cb96c18d30898280711152aa225a02af84331070d834800de": { "jp": { - "updatedAt": "2026-02-19T02:24:12.304Z", + "updatedAt": "2026-02-24T10:49:36.066Z", "postProcessHash": "0fc2f5da03b0bfd7480c9e96427d68ace39bc39474a7c2110114b5d2960ad336" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.260Z", + "updatedAt": "2026-02-24T10:49:36.020Z", "postProcessHash": "5557d19adcdddeb298c23a0ce59ce883a8ed99da661032f79e7ca37c432fc2f9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.275Z", + "updatedAt": "2026-02-24T10:49:36.038Z", "postProcessHash": "76bd7c41425da2b0b82780f535374c21447b9403dda05e7c53d86618079b01c0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.354Z", + "updatedAt": "2026-02-24T10:49:36.109Z", "postProcessHash": "73a554887daca354419e2681e0bbf8f1e92c0cc93fbcf5b221e40745e6b2dc2c" } } @@ -46297,19 +47413,19 @@ "7478bdb164a78a0066fd05a6a86be0fa7a2ddd64b6f73b9baf2265c59d70f4c4": { "e97df2367ee337a5ad2b8ce514b44485caf7b24462a66eac4a3d178503301830": { "jp": { - "updatedAt": "2026-02-19T02:24:12.280Z", + "updatedAt": "2026-02-24T10:49:36.044Z", "postProcessHash": "66b242bce3fd0d2ad72fde2bd91a5c3edc4345b2410243698fa58058b8b41162" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.265Z", + "updatedAt": "2026-02-24T10:49:36.028Z", "postProcessHash": "55cbb92dc6cb5db373aba6bb9ebdd69b1c1a3a6aac320a43068183ec01bead49" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.277Z", + "updatedAt": "2026-02-24T10:49:36.041Z", "postProcessHash": "1e915f872af0ca21fef641cac8cf36ba8d5fb19e91aa617d1f5e26ff9613c31b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.290Z", + "updatedAt": "2026-02-24T10:49:36.054Z", "postProcessHash": "a42c674aabd947777702ac16f46f965f1ff2b5eafa7252e5c74899b703a9399e" } } @@ -46317,19 +47433,19 @@ "789c0931dffcacd3c5e4bd954c1cc49f734d35378bd8d9f099bac0b7d7de0017": { "58519a4d43db394ea6d5c15ae1e4f7bfc823bcba6a23e04e1f1b0fc5aea36241": { "jp": { - "updatedAt": "2026-02-19T02:24:12.314Z", + "updatedAt": "2026-02-24T10:49:36.073Z", "postProcessHash": "4b4f7209fde83b23d2894521f5cd48665a3480df19d5c0c6219bfa49c37b4d0c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.313Z", + "updatedAt": "2026-02-24T10:49:36.073Z", "postProcessHash": "c6446dd36f25e08dd51621c751b1f9f4c33441216f4d7cf22f750196b0d0d8ed" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.311Z", + "updatedAt": "2026-02-24T10:49:36.071Z", "postProcessHash": "4ebdf7b5904129a64193f66fe705d2b7f3f18d774c7bacbec524f8577e4d80e9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.359Z", + "updatedAt": "2026-02-24T10:49:36.113Z", "postProcessHash": "7b62f8165f3ef44687a8fb80d3b12e53c6de703362548df49bb0513b0170b495" } } @@ -46337,19 +47453,19 @@ "85409384bc3d4ff1f1449d76a33ced011be9773bdbf0758e6975a6dbd1ee1dae": { "1fee80d8af00c415d442c78b9ad825b9a0656bc47f1eb00d9ac9cec8430f1454": { "jp": { - "updatedAt": "2026-02-19T02:24:12.267Z", + "updatedAt": "2026-02-24T10:49:36.030Z", "postProcessHash": "520d453f740d1569ea2e509ab57d5e7a01450444cc533607606ac0f915701802" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.279Z", + "updatedAt": "2026-02-24T10:49:36.042Z", "postProcessHash": "8227d9b075a0b2ea597c0b6c64bc00907f222daa8b5e93996130ae3e2f70760b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.271Z", + "updatedAt": "2026-02-24T10:49:36.035Z", "postProcessHash": "396c37d6ce4a4b01beb16953a2ea01c917c4241807265a166252cef204319c1d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.291Z", + "updatedAt": "2026-02-24T10:49:36.054Z", "postProcessHash": "45598b4f6c336485442c329aaf5e9d4d164f1869003a35bd7b936d50b6960e42" } } @@ -46357,19 +47473,19 @@ "940bcfdd1a4ad18a6a6ccd9181dfd460e21675b41985028b535c556f22904357": { "8379073d04e59c3c4b33a28508240fa2ad889504e267a63230a17f0b31b60377": { "jp": { - "updatedAt": "2026-02-19T02:24:12.305Z", + "updatedAt": "2026-02-24T10:49:36.043Z", "postProcessHash": "95c4e698fb8238d1728465c3f19417cb7aa6a00fd8b5caf3b819914c0cbe52b4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.310Z", + "updatedAt": "2026-02-24T10:49:36.044Z", "postProcessHash": "d6a1bf19329a2aa58123c6ac0ea7aaddf31f17d3a92e4a971e91b3505032db30" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.311Z", + "updatedAt": "2026-02-24T10:49:36.044Z", "postProcessHash": "80a046bc53b0be0fc2d1d0060e70fbfcd342c077cdbcd5862136b21f3adc837e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.359Z", + "updatedAt": "2026-02-24T10:49:36.059Z", "postProcessHash": "91a824257d1e405f101f2d2abb050b2fb624a9142006a26a5bcc5a16d587ee1f" } } @@ -46391,19 +47507,19 @@ }, "d3721cad34be7ac86a0f9a42adc7f63019c0b85eec5c8e982d58f26be401cb19": { "ru": { - "updatedAt": "2026-02-19T02:24:12.283Z", + "updatedAt": "2026-02-24T10:49:36.046Z", "postProcessHash": "3583ac7d259696e33fe5b2b49c7e92d390eb9a2ef4a9dffda0c32040f8ff7d83" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.284Z", + "updatedAt": "2026-02-24T10:49:36.046Z", "postProcessHash": "fa59e25d2f64c48d9fd4d5b63db95c15ff0eeaf3f757a315f93c74cd10654faf" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.284Z", + "updatedAt": "2026-02-24T10:49:36.047Z", "postProcessHash": "20dea11dae0468379cbc40bde5ec815949291a38d9b7a464b13f245f1d362d22" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.297Z", + "updatedAt": "2026-02-24T10:49:36.058Z", "postProcessHash": "eee5a18176a6c85b4da30c9db68ca20aec21b3ba1313b5b2230ed765be0bf7f1" } } @@ -46411,19 +47527,19 @@ "b0371f0c5ed81dd8c1a94c3d4fbb5068eda546a915ea97e900025b7967fdc506": { "1adc889763f86e0775ccdc2cb7db8ac95b53182b5f48d36f86a8daf7373c5e8a": { "jp": { - "updatedAt": "2026-02-19T02:24:12.236Z", + "updatedAt": "2026-02-24T10:49:35.992Z", "postProcessHash": "239ff7328d541833db486495e6a3b34691e9dda1208649e87bd3a754174caefe" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.232Z", + "updatedAt": "2026-02-24T10:49:35.985Z", "postProcessHash": "09ce3d29b2b3ffa6270c284524d15780e5bc5a8dc67f8039969d0f4a1c9ef25b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.228Z", + "updatedAt": "2026-02-24T10:49:35.980Z", "postProcessHash": "fb42a4d5256bfcecb13b33e9a922033e6b1583e4df6cbfd3fd590c52e6e00f80" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.298Z", + "updatedAt": "2026-02-24T10:49:36.060Z", "postProcessHash": "909bd6764addeded7864d44cdc70200b6a1bae6a466755439531d3ff4df77d10" } } @@ -46431,19 +47547,19 @@ "c720ce0e77810fdc639cfe83c2df1fe9c3d97ef4dd59cba6540e1d9e354f6866": { "3f956529d37242046b0834f1c686e59dd0dda8c1b7de96710b47b1ab8e5544f6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.269Z", + "updatedAt": "2026-02-24T10:49:36.032Z", "postProcessHash": "ee14f3f08ecb91148a476d3cdac2fe89f45639ac8fe8ecd53feb3f70202327f8" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.203Z", + "updatedAt": "2026-02-24T10:49:36.007Z", "postProcessHash": "4b6faee897f1568d08ffe5fd4578d8f9a93af846521381dc51b2a18ccdac9b2f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.252Z", + "updatedAt": "2026-02-24T10:49:36.009Z", "postProcessHash": "90d5074fe537ca077694464aaf62f7435013a0a22dda0efda5e8e970887ab0a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.294Z", + "updatedAt": "2026-02-24T10:49:36.056Z", "postProcessHash": "dcb71fed10458d64b8b0664bb09edeba830b62712e8f8521099430224e8ca0ae" } } @@ -46451,19 +47567,19 @@ "dfd805b622edd8955d58dd44846aeefbda562b1c575f0740533a458f2478f495": { "c61769f8b34a280fa8e6d8215850f12fe517dd969c26c4527ce9543b9b4052d6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.259Z", + "updatedAt": "2026-02-24T10:49:36.017Z", "postProcessHash": "d6061e1cb6dca40cdf3b25345d92dd2fd567c87fe1eed79874288950d7874e73" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.268Z", + "updatedAt": "2026-02-24T10:49:36.031Z", "postProcessHash": "eb16dd7c457e1b930b54229130d8001e9854da5c0ebd2c03c3d6325bf9f6551c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.259Z", + "updatedAt": "2026-02-24T10:49:36.018Z", "postProcessHash": "263a8bc6533e25718d4acf5a4fb4c3a5e272a17bd987bd9c99c78eee637bf928" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.295Z", + "updatedAt": "2026-02-24T10:49:36.057Z", "postProcessHash": "3b75cac37a2e863bad01bc577a5fbc788e159ac157963a1bbe4fe6a37e6bf53f" } } @@ -46496,19 +47612,19 @@ }, "e79ead5303b92c9bda3c72e388c18f072b8c0097fd3675aa3d9c6880a5d05250": { "zh": { - "updatedAt": "2026-02-19T02:24:12.285Z", + "updatedAt": "2026-02-24T10:49:36.047Z", "postProcessHash": "c89875da42be2605ce91936f0ce62761d778b0e9e094a086a1456e4ae8194baa" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.285Z", + "updatedAt": "2026-02-24T10:49:36.048Z", "postProcessHash": "f7a00046c681db6fcf469250eb45251c89c92676e678479fbe72a85fbdb8cf1f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.286Z", + "updatedAt": "2026-02-24T10:49:36.049Z", "postProcessHash": "a5704327513e0bd6792a29f8e6ecaeed85c5bcfa0563aa24f89a2a75e68f24b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.302Z", + "updatedAt": "2026-02-24T10:49:36.064Z", "postProcessHash": "b3a42a675efb2e6e74aa32caaf2269a8463fdbfc92327dbeeaccf3d2d2769575" } } @@ -46651,19 +47767,19 @@ }, "c5156def03e44d1d6d14586a367d03b4a6d5287fe8eb2772cb7a0a9001e89f73": { "jp": { - "updatedAt": "2026-02-19T02:24:12.382Z", + "updatedAt": "2026-02-24T10:49:36.140Z", "postProcessHash": "950f5c5dfe0de16043175aa23196c875cea97eee36ef252214d82048c1e81880" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.383Z", + "updatedAt": "2026-02-24T10:49:36.142Z", "postProcessHash": "ba9b705997934c68ee8f9fcf60c1bb635dea05d1847ab8ea2c2fce7e9962322e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.383Z", + "updatedAt": "2026-02-24T10:49:36.142Z", "postProcessHash": "96140f641eb41b76b410d7b85fe24ab3608e9b76f4acdb7ca2da19195b5670dc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.401Z", + "updatedAt": "2026-02-24T10:49:36.163Z", "postProcessHash": "d088839e550f504a530e06d7971708c5daf413bf1bcd7ee239e000246dca4cdc" } } @@ -46699,19 +47815,19 @@ }, "c833ac3ed8cef36ccdb3582aceb2575ffc13b3bc669b96956a4bcbf7d401af1c": { "zh": { - "updatedAt": "2026-02-19T02:24:12.315Z", + "updatedAt": "2026-02-24T10:49:36.075Z", "postProcessHash": "d33fbdcf51fb46656d6775374e2ae47af0b44063ed426b6c4310858dec970ebd" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.317Z", + "updatedAt": "2026-02-24T10:49:36.076Z", "postProcessHash": "7fd9b116231cd6ce6c86c02eec41b772184393e2253c359ec72a95beba6b2c4f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.320Z", + "updatedAt": "2026-02-24T10:49:36.078Z", "postProcessHash": "ade7f8809c49591da63329be5ed9c1c405ce1dad6ad28cfcce8e6bc190d60303" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.395Z", + "updatedAt": "2026-02-24T10:49:36.156Z", "postProcessHash": "4c6b0e3822502874e50d4cc9509837f9abdaa8222cf60d5b064f4f9cbbfac47b" } } @@ -46747,19 +47863,19 @@ }, "ea070c5cd2a5fb1814340d85ef2915a5d0fa90f24c10a4c0db25f373f3e594a4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.342Z", + "updatedAt": "2026-02-24T10:49:36.095Z", "postProcessHash": "9fae83d25db953f955770d6e1735975aa91b246666c6907d68d9d71c56d5e5b1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.343Z", + "updatedAt": "2026-02-24T10:49:36.095Z", "postProcessHash": "5fbc9b2feaace084c4733a29be6b0976348837607cfd0bb822926dc57b6847bb" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.343Z", + "updatedAt": "2026-02-24T10:49:36.096Z", "postProcessHash": "3d50034c1b73d232704692f18cbe0a6b967a89e826cafe6012100de23c9aa767" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.401Z", + "updatedAt": "2026-02-24T10:49:36.163Z", "postProcessHash": "9f2a46257a1254fe0d541a142de342626203b69340133c0187687beaafabce43" } } @@ -46783,19 +47899,19 @@ "9f914435087a98e271276ebb87f255c29380082ebf766e89899a246c457e4677": { "71530532e2635eadb067e7bfc1e67c37d37113e6474b6d00295249b91f5e556d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.276Z", + "updatedAt": "2026-02-24T10:49:36.039Z", "postProcessHash": "d2578ee7e79f7433457de5475e1b198643141f8eeeb6b72d71c728e29b37a2e0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.274Z", + "updatedAt": "2026-02-24T10:49:36.037Z", "postProcessHash": "16f917e8491ae9bfdd638acbe560a173fb350865d6440760000d287d51dd004c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.278Z", + "updatedAt": "2026-02-24T10:49:36.042Z", "postProcessHash": "5dd1a8e4ff41e9761c34b1a168ca0689972d9bf91aed8598782727163ff987be" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.351Z", + "updatedAt": "2026-02-24T10:49:36.105Z", "postProcessHash": "0aabd99bd872ff9329b9227eecde0546516337ad3a974400d850ba3a89559c11" } } @@ -46803,19 +47919,19 @@ "b5043154caba774e4d5afd58609e8705791d168d7b610c441a9f5eb0c01aebe8": { "8640bb0e91d0ce2469cf06735ac41d782b10893d26d5a5e4bdd88f4ddcf19c10": { "jp": { - "updatedAt": "2026-02-19T02:24:12.303Z", + "updatedAt": "2026-02-24T10:49:36.065Z", "postProcessHash": "817f44033561302b923c32e13bf200b22cce71df8f1550ca8fcd1b68e0e8886b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.307Z", + "updatedAt": "2026-02-24T10:49:36.068Z", "postProcessHash": "4a73ec8b6c42025878b5250d94543010b38ae4c4844c532274a51d8e64b2eb1d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.306Z", + "updatedAt": "2026-02-24T10:49:36.067Z", "postProcessHash": "24796a0ec1406bd3d8bae76ef14db95527b24f307cda628b245b13e6d43b9bd7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.354Z", + "updatedAt": "2026-02-24T10:49:36.108Z", "postProcessHash": "7d7170867377f1454047c70238986215a53fd3c1ea7a2e77b03d841a0223fc3e" } } @@ -46823,19 +47939,19 @@ "b6b46b2ddce58f83297d4fd3e22a20c0689c8846b02b00d6c901ad29353143df": { "6526c7597b3e43dfe18fbc51f8dfea10476408a65acfc8c77d19c20114264de2": { "jp": { - "updatedAt": "2026-02-19T02:24:12.262Z", + "updatedAt": "2026-02-24T10:49:36.022Z", "postProcessHash": "a3b5cc3f3315561c8aeb746b2f6fc114ad69c958e550b8fe3005d96ca02303eb" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.279Z", + "updatedAt": "2026-02-24T10:49:36.064Z", "postProcessHash": "b4dedf391b321d142fb38d42e7231118c32f4189cf7e2aada40c5f0da7e14382" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.266Z", + "updatedAt": "2026-02-24T10:49:36.029Z", "postProcessHash": "0d50ddff1bd4d196faa0f7ff67296ff81eddfcd87493ae9810e15e04e867409f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.352Z", + "updatedAt": "2026-02-24T10:49:36.107Z", "postProcessHash": "33b39fde781db4e871e906a97e120e06dd564e2bd44a5602464a2539f314d03a" } } @@ -46843,19 +47959,19 @@ "b760d26fdf8b09ae16032e0dbdd66a6e812e5b85cfc1a2dce387a41c031415a5": { "2a83ac2cbaf9b2ed36fecb623007bef63f6aaaf537e37429095c3057b999a156": { "jp": { - "updatedAt": "2026-02-19T02:24:12.302Z", + "updatedAt": "2026-02-24T10:49:36.065Z", "postProcessHash": "8810d23efc79678c66971194300b6ce591ae56a46715d385b355018ba46fe33d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.261Z", + "updatedAt": "2026-02-24T10:49:36.021Z", "postProcessHash": "0e47a8ea88336c099385a6eb6e45a1c0bdc84b952a35945d5fba9042ba2a6b52" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.251Z", + "updatedAt": "2026-02-24T10:49:36.008Z", "postProcessHash": "5be426820d342e3eff3606cbf0ae6f1c368caed66596fa3176d38241bf870e4e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.358Z", + "updatedAt": "2026-02-24T10:49:36.113Z", "postProcessHash": "b33037d8e0577ed9fa874797c96ca6309639a42f25337205348e8fecafff3edc" } } @@ -46863,19 +47979,19 @@ "c94404af6396786f2d99e4b9e86fe62f37fba23be9fb0992cb4462421350617d": { "8e9c8e608b5e9c9eb4f01785fa62ca818e1a1957a5723d6cb412ed71f639a50b": { "jp": { - "updatedAt": "2026-02-19T02:24:12.305Z", + "updatedAt": "2026-02-24T10:49:36.066Z", "postProcessHash": "d2277076e73adaf1d09477a495026e3ef52c197df9aa64df79dca0621664481f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.304Z", + "updatedAt": "2026-02-24T10:49:36.065Z", "postProcessHash": "320c9888022b3b89ce6e4637767f8a2ec9656b68872e5ab51cba92428e4d8f64" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.308Z", + "updatedAt": "2026-02-24T10:49:36.069Z", "postProcessHash": "4a4d73f5188b40cf177deef448326ffb721b6b654aabec57cb35d609473c4a46" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.355Z", + "updatedAt": "2026-02-24T10:49:36.110Z", "postProcessHash": "4cea70340b3bcadaa4afcd56ab4826ffca3edd1139c4e2e08d4c9091526d9fde" } } @@ -46883,19 +47999,19 @@ "cb7281a29c8577f9362237b726ab73efa4133f66aa1f532e94603029a6608325": { "e7e9ff403010f7419e6fe70d3329c7fb4d95f62d59d52fda8025ee90af8ad89c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.307Z", + "updatedAt": "2026-02-24T10:49:36.068Z", "postProcessHash": "a566495ba4b7f285354c15226950e9f2e3ec118c7273badf22e1eb95af4c0e12" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.256Z", + "updatedAt": "2026-02-24T10:49:36.015Z", "postProcessHash": "793ddbd4c8b47639d47308898a4c6e9a6f720810b40c023068ec0c087ab6cc6d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.277Z", + "updatedAt": "2026-02-24T10:49:36.040Z", "postProcessHash": "a21f16e62780db0aa0627209b7018658c201fc59af53306d64ecf0b9a4f15b0a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.357Z", + "updatedAt": "2026-02-24T10:49:36.112Z", "postProcessHash": "c2dcf05feb8186662fc0d3da89357fe72f36a0e5b5cefc98c665872a123f4216" } } @@ -46903,19 +48019,19 @@ "cdf00c31e8da5ad17f2b40732cf7e7baf65150deaf7488eac143f7201d1dfb3e": { "3c8db57986756c0b913b89d2204dd19e77508a68267dc6a6d737df290161badc": { "jp": { - "updatedAt": "2026-02-19T02:24:12.302Z", + "updatedAt": "2026-02-24T10:49:36.064Z", "postProcessHash": "cc27c8a5b3736af4573a052e3abcbc74ce6008f398e82ac5850ffc31588ccfa4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.266Z", + "updatedAt": "2026-02-24T10:49:36.029Z", "postProcessHash": "4d43a23958aee708550fcbfb1d84d150a324a164419cd64861518d3ca5047959" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.272Z", + "updatedAt": "2026-02-24T10:49:36.036Z", "postProcessHash": "af20dfdb9c2c1266bef026ee2fb023175b9797227f87af51bc6abf92b9fda744" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.357Z", + "updatedAt": "2026-02-24T10:49:36.111Z", "postProcessHash": "cbfb1c922dd50564cf6e8fcce8f047e6f9c09e66e48b21cb4724746d0ef41ba9" } } @@ -47235,19 +48351,19 @@ }, "02aac37048ff934260cfcd64dd39b450cc7749b197331b184c8546c316dd9d55": { "jp": { - "updatedAt": "2026-02-19T02:24:12.385Z", + "updatedAt": "2026-02-24T10:49:36.144Z", "postProcessHash": "f7faf69937b10b7b7ae2b42955d921bd8695d5b4cc2b46288296b23f59e25c51" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.385Z", + "updatedAt": "2026-02-24T10:49:36.145Z", "postProcessHash": "6c21306ea58270a11b64645cd49762773559a3b9d515ec8d337406fedfcc6ac7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.386Z", + "updatedAt": "2026-02-24T10:49:36.145Z", "postProcessHash": "c78a3ef2c89743664a5cf60de86709f6bc94ca31a9772269d0cfa62636c50437" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.401Z", + "updatedAt": "2026-02-24T10:49:36.163Z", "postProcessHash": "2a19bdd4d698b248aff7852ad21f983b599e57a6cc6d99aaa57152bd32947a1c" } } @@ -47326,19 +48442,19 @@ }, "46fa7bc1b9a4627f5f2a40c42e160c983f8176accf80e03b5dfa911a8e378723": { "zh": { - "updatedAt": "2026-02-19T02:24:12.316Z", + "updatedAt": "2026-02-24T10:49:36.117Z", "postProcessHash": "261b6040b00ea17f0131e249d6d2a690857bb5dff1976f62ef9afd2ec7cd497f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.366Z", + "updatedAt": "2026-02-24T10:49:36.120Z", "postProcessHash": "dd14b91129eaa7d46c3b2f87b888ba624e8b0ca09695fb24be22fdeb095e71c5" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.374Z", + "updatedAt": "2026-02-24T10:49:36.133Z", "postProcessHash": "385fad6e454f4eb06a600fe8539bef0a60166d8ffb4da79cb97f02e4481b2b73" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.400Z", + "updatedAt": "2026-02-24T10:49:36.162Z", "postProcessHash": "6f20f20a8d77f858153a40c3ddf2fabbfdce32cc05181f478f0d1b3d5dfb7de7" } } @@ -47678,19 +48794,19 @@ }, "4221d7097f28b112c0fe3ef7925d4f5cc4beae35762d34d0d4368ef2bbf9564f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.370Z", + "updatedAt": "2026-02-24T10:49:36.128Z", "postProcessHash": "675839f4b05b2bf41fbed5c20433870572df06dd84e4bb60053dcaac09e22845" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.372Z", + "updatedAt": "2026-02-24T10:49:36.131Z", "postProcessHash": "af336f85ac4f0b331c9ce0a56013dac9d7bb6a83ff7fe8e1025b7eeaf865a8d1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.376Z", + "updatedAt": "2026-02-24T10:49:36.135Z", "postProcessHash": "b23c25c8bb5947fb2615f99a2547952638176abb6cb391a3cf92a26c984e4239" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.469Z", + "updatedAt": "2026-02-24T10:49:36.219Z", "postProcessHash": "40b01e25c709d153c53f4143cc5a6084fe80bb80f89decc3192fd97892853167" } } @@ -47742,19 +48858,19 @@ }, "dda1d9fc59f8be41adacd6864fa601f9fad54986d2a35250e0e0ad1cac3ccaae": { "jp": { - "updatedAt": "2026-02-19T02:24:12.365Z", + "updatedAt": "2026-02-24T10:49:36.119Z", "postProcessHash": "823083cb447942e458fe3ec5169350e0504994db72af2c23bc27dc1c441af093" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.369Z", + "updatedAt": "2026-02-24T10:49:36.127Z", "postProcessHash": "3bfeea2dd2aaf15821e5d5ce47b6781b57570ef1ea6c9c643cefc015092de001" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.431Z", + "updatedAt": "2026-02-24T10:49:36.195Z", "postProcessHash": "7be6c98bb966bff9ad07b8c2ce003d9a9272280f78ff75b0992b870eb58ad5ad" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.469Z", + "updatedAt": "2026-02-24T10:49:36.218Z", "postProcessHash": "c0affa5fd2c00ea1055b0832e0564a25df6482c1e5bf02dd689bc4e2dd10a51a" } } @@ -47790,19 +48906,19 @@ }, "384b7ccee019889be8160759b951e66f676363b5371e2e4a846c9f4937a6c6c4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.372Z", + "updatedAt": "2026-02-24T10:49:36.130Z", "postProcessHash": "444cb42fd9330a0f1d6d24ed668a97848bc91058d00c17498dc414b62cf31bbc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.423Z", + "updatedAt": "2026-02-24T10:49:36.186Z", "postProcessHash": "1d9c8dd46eed0eff2e3974487d43724f38d6482c40693487e0bbce3b564986ef" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.426Z", + "updatedAt": "2026-02-24T10:49:36.190Z", "postProcessHash": "5ff2399ed73ecb16a5bb471e2396b6b09791a137529cfc0c19cfa76ec51f3399" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.456Z", + "updatedAt": "2026-02-24T10:49:36.210Z", "postProcessHash": "dd509f20f82e5d770f510b5546744565b07a273d3054a4f6883af69034596267" } } @@ -47854,19 +48970,19 @@ }, "b72c00b1d07d5ff7dd4f9dbe2f7c8d623e471ca6fac3d233c2fc1ba97e118b83": { "zh": { - "updatedAt": "2026-02-19T02:24:12.482Z", + "updatedAt": "2026-02-24T10:49:36.232Z", "postProcessHash": "3a3ffc6e47598f10ce1b71174ae792373975c3ad2527d5e95ee319a3616eeff6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.493Z", + "updatedAt": "2026-02-24T10:49:36.246Z", "postProcessHash": "1c543dcefa79aedc5a35b31286dde34bd4ea5e578e562a69d31ce46741f1675b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.501Z", + "updatedAt": "2026-02-24T10:49:36.255Z", "postProcessHash": "1ea085dd9c5d9202a9a16b8764bda894624337f0ae29db0a84a62783bfbb3073" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.516Z", + "updatedAt": "2026-02-24T10:49:36.271Z", "postProcessHash": "2580f21e69d7a13d9cdbeb7d43331f42b5e6b8886f54f71d4fb6ea8209c55794" } } @@ -47918,19 +49034,19 @@ }, "ab45287880fff8d9b02f7acc3b8be7655b6eb22dab98dc27cf405bc92f74e617": { "ru": { - "updatedAt": "2026-02-19T02:24:12.536Z", + "updatedAt": "2026-02-24T10:49:36.233Z", "postProcessHash": "a881256579715542aae2e01dc9987154330917a267c94d9ce099c38c2533591e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.540Z", + "updatedAt": "2026-02-24T10:49:36.249Z", "postProcessHash": "3eaac669f05228d78707fd38dd3d777338991ec121eafbd6a51960595a80e795" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.541Z", + "updatedAt": "2026-02-24T10:49:36.253Z", "postProcessHash": "4028a2346a966664fd44c3db16e0f2717ed20b053630e49b415cc1d44bc9d8cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.573Z", + "updatedAt": "2026-02-24T10:49:36.319Z", "postProcessHash": "f4d89213e88c6a52d311e213e0cd7acf9b21b7f96e33004d294b234154529eb6" } } @@ -48062,19 +49178,19 @@ }, "329bc8cfdfe3aade1b647876c2c72b59b061bd34f9cee10ef41a2e439a24ce08": { "zh": { - "updatedAt": "2026-02-19T02:24:12.473Z", + "updatedAt": "2026-02-24T10:49:36.223Z", "postProcessHash": "5d82f61ef1c0f2cc7070b093d34a52b2b62661042884f4741b3475a65a282e26" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.476Z", + "updatedAt": "2026-02-24T10:49:36.226Z", "postProcessHash": "c506b864fc5be9400b0da694593e388820ae3402fc6e3155897115eb3c0fbe0f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.483Z", + "updatedAt": "2026-02-24T10:49:36.234Z", "postProcessHash": "ca85414654f9aecd4675806ad1e630a9982e9cc77d003810c0199162b6419335" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.512Z", + "updatedAt": "2026-02-24T10:49:36.266Z", "postProcessHash": "77bd898edef3d511275f35962c106d69f6cc1cb8018108bd516e623c8d05c8f1" } } @@ -48142,19 +49258,19 @@ }, "0b3c34b1376a8b6a543634e09e58924f3cc49de7b73abc07ff506349874c134d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.484Z", + "updatedAt": "2026-02-24T10:49:36.236Z", "postProcessHash": "b1498783ca433dd258cb093d190d67a9e526fe1fc5f4fb7eb89ff2c91c69ac13" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.490Z", + "updatedAt": "2026-02-24T10:49:36.242Z", "postProcessHash": "ad4a433352710ca3792dbabc273f8536e2e1f329328c26433d974fc81a030c6e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.494Z", + "updatedAt": "2026-02-24T10:49:36.247Z", "postProcessHash": "b9ce8558a14f742137c13a380e9fe5c5f1549b45c13b1858a80d185a8afa092b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.518Z", + "updatedAt": "2026-02-24T10:49:36.273Z", "postProcessHash": "fe93e0fc971b630403b2d0a507ecb0aefae2665fa94e99673b6449a0787f2f2b" } } @@ -48190,19 +49306,19 @@ }, "610e18ec81e18a3bb0d5ac807db2a0066b49764201402f8dc1c7658be84de16f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.407Z", + "updatedAt": "2026-02-24T10:49:36.221Z", "postProcessHash": "c99fff468add6bc19701dc3a97bf2f09665122a1e033caf1d549f5be710ccbdc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.409Z", + "updatedAt": "2026-02-24T10:49:36.223Z", "postProcessHash": "7216c66cb2418e19eb85e08a920e9a572653bd81a2d7e659d3144bc2ed6e0737" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.475Z", + "updatedAt": "2026-02-24T10:49:36.225Z", "postProcessHash": "851799cff3e64062e506f96f68829d17c4a205ce8c9a3e687a505b0307acee55" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.513Z", + "updatedAt": "2026-02-24T10:49:36.268Z", "postProcessHash": "edf59b3f51d5b84c9df7b47bca219e265b6a7555a7193bd537accb5ed68ed5b7" } } @@ -48270,19 +49386,19 @@ }, "846e644aab5f6bc3857377105c71a2805b9faff2e7f4cfcc02a4782320e6215e": { "zh": { - "updatedAt": "2026-02-19T02:24:12.485Z", + "updatedAt": "2026-02-24T10:49:36.180Z", "postProcessHash": "651fe7ca92a70c5abb7eadb151be5eef361f163a069665d445ec67f1f24c112a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.497Z", + "updatedAt": "2026-02-24T10:49:36.189Z", "postProcessHash": "6f1730e163cc5bb32fcfc4188cf0ff43fcdc30318023d55549b2311e50ff4a30" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.503Z", + "updatedAt": "2026-02-24T10:49:36.198Z", "postProcessHash": "5c77904ae24820bf75e3beb63908e25e71aa5a13b56dae14b8e932d339ce2190" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.515Z", + "updatedAt": "2026-02-24T10:49:36.215Z", "postProcessHash": "c03d3c8aa5a59377da1ba6c6b1f83e199bd2c0ddd2efacd3a14bc7f685226b8a" } } @@ -48318,19 +49434,19 @@ }, "34ed48fe6fd4761166c2e3cb6e132fea8d43163bc7d4ecc3c6f758c293ef5915": { "jp": { - "updatedAt": "2026-02-19T02:24:12.404Z", + "updatedAt": "2026-02-24T10:49:36.220Z", "postProcessHash": "91cc12c53e7cf1a6215cec0452eddc426c8935740768f64ca06845a9a4c9554c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.484Z", + "updatedAt": "2026-02-24T10:49:36.235Z", "postProcessHash": "46eeb5e83c005c16468db17740447fc2f70e582dac564719a349548ceacdcc99" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.503Z", + "updatedAt": "2026-02-24T10:49:36.257Z", "postProcessHash": "26c521b0a04662ff53d799fea437fb33fd45b37a2f981657dfbed27545a5ef1e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.514Z", + "updatedAt": "2026-02-24T10:49:36.269Z", "postProcessHash": "ff94e313929647bc8c28608348136ea5bc680711dfbe13898134fc7cfacba039" } } @@ -48446,19 +49562,19 @@ }, "fcbc76ba4e25c470626b5489ec173beafe18250f9584e1fba70d44697e1a3087": { "zh": { - "updatedAt": "2026-02-19T02:24:12.536Z", + "updatedAt": "2026-02-24T10:49:36.292Z", "postProcessHash": "3b36d69d5956a8e8858176acde79a0abe76defe08ce0814dd788ad39a1d20d81" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.528Z", + "updatedAt": "2026-02-24T10:49:36.282Z", "postProcessHash": "a0d77298a8d964c54d04245cff887143d878860415ca7de9d174b714460dfbd1" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.539Z", + "updatedAt": "2026-02-24T10:49:36.295Z", "postProcessHash": "16f6e67f2e841122e07e7305610c6f0820aaffa6b6ac29e3ef9a3354ddb41b38" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.578Z", + "updatedAt": "2026-02-24T10:49:36.323Z", "postProcessHash": "654f90e13821041cb1fa27066b555fabbf5f2ccb26c7c2c1227c6394f59f53d3" } } @@ -48588,19 +49704,19 @@ }, "2a756a93efd766f2eb010ea368e74fe50bab9603dab87f7d70bde64c4a409dc8": { "ru": { - "updatedAt": "2026-02-19T02:24:12.532Z", + "updatedAt": "2026-02-24T10:49:36.287Z", "postProcessHash": "eebe6852fa9f1f611ada259dc737bc4aeb1573437e175f1b32a26b2987f93915" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.538Z", + "updatedAt": "2026-02-24T10:49:36.293Z", "postProcessHash": "e9789cc676050d05f38d8ad951f6e45931bf79718f59fa3455c945529a17d101" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.540Z", + "updatedAt": "2026-02-24T10:49:36.295Z", "postProcessHash": "71c280a81f6f292acfb15bd1b8bc6af8c1c2d6f36a22fbdd647011699f57647b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.570Z", + "updatedAt": "2026-02-24T10:49:36.315Z", "postProcessHash": "c0fa482732ab7f2286eb123fe795bdb0460f9851dbafa58142bb71fb9c01aa61" } } @@ -48810,19 +49926,19 @@ }, "788e80eae99c9b86857fae29f76c62dfa07fc78ee84458dc2c84f1a158f63336": { "jp": { - "updatedAt": "2026-02-19T02:24:12.509Z", + "updatedAt": "2026-02-24T10:49:36.263Z", "postProcessHash": "d941bb5ec3ddc0b4b382cd410a64520674e4ad1212a2d96914817d498c039c21" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.510Z", + "updatedAt": "2026-02-24T10:49:36.264Z", "postProcessHash": "9f54252f741d0d888195ced031b3e349face986417fa7e739a314cc586055eba" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.511Z", + "updatedAt": "2026-02-24T10:49:36.264Z", "postProcessHash": "5258aba1caa8119d305621ec4a363df6af8401a156fb20598e8fd5608a93f7a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.515Z", + "updatedAt": "2026-02-24T10:49:36.270Z", "postProcessHash": "c9c9691280c1c965f59cb40182cbfdd1aa4eef80b917bd15d0d46a97f93c0c80" } } @@ -48874,19 +49990,19 @@ }, "f4c0ab19893bf828729646744f2dcaad4d48edfd1dd2387cd7d9915c6aaf8ab1": { "zh": { - "updatedAt": "2026-02-19T02:24:12.507Z", + "updatedAt": "2026-02-24T10:49:36.262Z", "postProcessHash": "dedf36a3442e8521e3ad055a0a15ee7e8c471dc6752995f6aab4138ada646ba5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.544Z", + "updatedAt": "2026-02-24T10:49:36.297Z", "postProcessHash": "f32f8598faef74063ca2d3d277a429742afce3e0933d402ad3aeedf1ebbc2dd9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.544Z", + "updatedAt": "2026-02-24T10:49:36.298Z", "postProcessHash": "1b871abf7966d058546e14f477398401e0ce2641b1d7bf8f9d43b3f411c08308" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.578Z", + "updatedAt": "2026-02-24T10:49:36.323Z", "postProcessHash": "fb992f34eba4d523d1cecfd11181721aaf7c03119ab22a3887a8ea3ee4ca208b" } } @@ -48922,19 +50038,19 @@ }, "5b8d22fb054ec3024aa541258a9932feba3ad238cf9b9e16b74a80e2377dc954": { "ru": { - "updatedAt": "2026-02-19T02:24:12.522Z", + "updatedAt": "2026-02-24T10:49:36.279Z", "postProcessHash": "b73c3f9b731cc9fb350d0756f09f3c767963c742715319a531b54c87226b6bb8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.630Z", + "updatedAt": "2026-02-24T10:49:36.353Z", "postProcessHash": "2c0a7f37dc10acb53d8b4d5818f53d63b4faa6f5cf87618ab4f41c56e3c8cdf6" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.643Z", + "updatedAt": "2026-02-24T10:49:36.367Z", "postProcessHash": "c58380ba8ed6269638e746c78c3e9a158244b098ed7446be203d000d03fdcd26" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.649Z", + "updatedAt": "2026-02-24T10:49:36.378Z", "postProcessHash": "da1c23a5e1fd86a6a1c66deb3781929a9f2eab54febb3751b164f11a9f5385ef" } } @@ -48986,19 +50102,19 @@ }, "c1a56ec2aaa369ab48b89508034d116bb1e6ca8ff0c5d7c24bd1ebf2b0d624da": { "zh": { - "updatedAt": "2026-02-19T02:24:12.595Z", + "updatedAt": "2026-02-24T10:49:36.336Z", "postProcessHash": "d12c36dc57ec6c6832530c52fab8243cc152e984c192feefe414ba3730f3c560" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.599Z", + "updatedAt": "2026-02-24T10:49:36.339Z", "postProcessHash": "b3ee3d9fc657a7aee8cdb6bd8cf89b0161589242c7ab971867842c9f25736fc7" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.644Z", + "updatedAt": "2026-02-24T10:49:36.368Z", "postProcessHash": "a51a4b800c0a42f4f6e247ab8c4f11f8ecdf171c37a7eb6985277b4066c30e6f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.706Z", + "updatedAt": "2026-02-24T10:49:36.443Z", "postProcessHash": "ea7980250cca229af9355f8eac20e97aa8242975e47df0fd1e7410c0579bd0b3" } } @@ -49034,19 +50150,19 @@ }, "2e64fefd57ef01469a61e87d32b85bc6b65948e52a61aef55b406d62f2ca11db": { "ru": { - "updatedAt": "2026-02-19T02:24:12.646Z", + "updatedAt": "2026-02-24T10:49:36.370Z", "postProcessHash": "a718a096987370c2f13c64bc6a2a413bd12e299aaf8a78532257053af9f020a4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.647Z", + "updatedAt": "2026-02-24T10:49:36.372Z", "postProcessHash": "8d067030524b643f32a669afe9408dda2c85b999ff868ea0cb2b1339ec3ca7a2" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.639Z", + "updatedAt": "2026-02-24T10:49:36.362Z", "postProcessHash": "848e5e3bb69ac90c5bd2546c15e94b320007780d631f69dcd0fb339f16b9f593" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.653Z", + "updatedAt": "2026-02-24T10:49:36.383Z", "postProcessHash": "0c0a5716489017514c40a971ed08c15de933b8dceb9f088baeb859fd78e2e9a8" } } @@ -49082,19 +50198,19 @@ }, "6f85685cb386b4dfa0ba2b96a6beeae9b12dea2b232ac120194f8087e4c76397": { "zh": { - "updatedAt": "2026-02-19T02:24:12.640Z", + "updatedAt": "2026-02-24T10:49:36.363Z", "postProcessHash": "d5b91cfdefe441287de1c4c070ae0a365dc937c9d844e3b90727ddf21dba2209" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.645Z", + "updatedAt": "2026-02-24T10:49:36.369Z", "postProcessHash": "07eb3a03e5f7ff900b81ce9deb03cbf28179db410a4e60fc0cf5ac2e92d17331" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.688Z", + "updatedAt": "2026-02-24T10:49:36.373Z", "postProcessHash": "05c943422c5b7501253da2b1269e94dde0633226e26d3e7522b388bfd4a9a97f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.704Z", + "updatedAt": "2026-02-24T10:49:36.442Z", "postProcessHash": "0283eba50174e561b7594d77cb7847916f4a6f73d094028767448abb518b7945" } } @@ -49146,19 +50262,19 @@ }, "8dd25317d55bd5745dee6c8c85a6b49e8b02f150de7fba39c869cb433b3fe339": { "ru": { - "updatedAt": "2026-02-19T02:24:12.614Z", + "updatedAt": "2026-02-24T10:49:36.344Z", "postProcessHash": "c6f93211b7a96fe91b66d96cd2d3dcb5cb74145538d569fc91f6eb03f48b8e5f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.621Z", + "updatedAt": "2026-02-24T10:49:36.348Z", "postProcessHash": "2b84e5e13f16249860671877c90405516aa5c20c7ae7bcb33ef1422b8cd8c56e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.632Z", + "updatedAt": "2026-02-24T10:49:36.355Z", "postProcessHash": "14b1201adc1b99bb46aea4646797d4c1b80d592626e9da44f5bd842379f36542" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.652Z", + "updatedAt": "2026-02-24T10:49:36.381Z", "postProcessHash": "d813d36807bbe3f68998b50908f603b12543c00e75cc12af835451ba9ce289ef" } } @@ -49210,19 +50326,19 @@ }, "f86575e80da295b59f4530ebc2bf5478f3f31ae61fc6b8f427d2ab80da989a67": { "ru": { - "updatedAt": "2026-02-19T02:24:12.588Z", + "updatedAt": "2026-02-24T10:49:36.331Z", "postProcessHash": "9620ecd6930ba27ca2c5db2a9b246c7ed7def1a409f3ec9755ed5c5e40b95067" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.637Z", + "updatedAt": "2026-02-24T10:49:36.358Z", "postProcessHash": "a4af94a6cdcafb5880b0c41e4c466e37a9b14c6ac9ab3c1cc44c963bdf362b58" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.638Z", + "updatedAt": "2026-02-24T10:49:36.361Z", "postProcessHash": "26089392336a7420b3069e009f022b49400105b7749336f9791190938a2d3952" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.653Z", + "updatedAt": "2026-02-24T10:49:36.382Z", "postProcessHash": "d4825bdc43804771d097d78f5914742da131bf9424ceb0286c582014f7fcc2a6" } } @@ -49370,19 +50486,19 @@ }, "412a046f0db217e9a167cee5712783f0661446ffc82d348d32bd86ec310afc8c": { "zh": { - "updatedAt": "2026-02-19T02:24:12.594Z", + "updatedAt": "2026-02-24T10:49:36.336Z", "postProcessHash": "f0b95241b0b64c972178bc88b4d94a7b7af6c50f9925f26e92b545c4baf30f99" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.618Z", + "updatedAt": "2026-02-24T10:49:36.345Z", "postProcessHash": "3a758731750ade2912501ef93f785603b74b363185c4bd2fa6eaed377c9d6cdd" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.619Z", + "updatedAt": "2026-02-24T10:49:36.347Z", "postProcessHash": "4d44bcb07a29866187d0298ee53de5cdb6b3c3c9ec86899ee2126c34b7106426" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.648Z", + "updatedAt": "2026-02-24T10:49:36.376Z", "postProcessHash": "bf5ccc36d0313bf3b2d0b63d424f65efb902a90aeb1504c73cdcf7ee15a77dcb" } } @@ -49454,19 +50570,19 @@ "15e69bdeb4774e041a333e57689381522781cd859797d0c321068053bd1ac55d": { "ecfdec0409be257ba876146227e2e778ae5f272c3aa56e2fbc1cacb35dd43ca1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.678Z", + "updatedAt": "2026-02-24T10:49:36.406Z", "postProcessHash": "02ee49ae0c3be105cb0b9b180a6d94752a1e9626800d52f6382bda6894d67058" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.676Z", + "updatedAt": "2026-02-24T10:49:36.405Z", "postProcessHash": "1c00384ca5ac0734966c9af68102f996f3d19390870d71499b2cccae6dea6da0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.679Z", + "updatedAt": "2026-02-24T10:49:36.420Z", "postProcessHash": "41a4d968d58b08d33cdd128ed421a49d15570e283429a0d4c45a4ea494608fe4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.716Z", + "updatedAt": "2026-02-24T10:49:36.449Z", "postProcessHash": "f26f35796bdec6d05a5036b5837f8525441a945cb6bdf337f4ada4041e731af5" } } @@ -49474,19 +50590,19 @@ "2441b704f1648bc3443c9b054ec8854f3764cbbd77801b8747d10f0c1380e055": { "8946d488f9c46e6c14fad461ca002a664b5a2d6561da01977d53a7c95d31e4bc": { "jp": { - "updatedAt": "2026-02-19T02:24:12.677Z", + "updatedAt": "2026-02-24T10:49:36.406Z", "postProcessHash": "94639c53132c6be8a99e7f23703b8b5a570b045e2afffa116b022f977f775743" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.682Z", + "updatedAt": "2026-02-24T10:49:36.424Z", "postProcessHash": "a88a3745540baef7e2f73da7829fd46164c530f719e091de9a116f76974919f0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.681Z", + "updatedAt": "2026-02-24T10:49:36.424Z", "postProcessHash": "4f394ffca6f5c2faf6bb059824f2593249aac73817a47cd19cbe94d77b88d80b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.710Z", + "updatedAt": "2026-02-24T10:49:36.445Z", "postProcessHash": "8637c631bdaf397e0e82d4104db0694935995199ec3cab426673226de7057320" } } @@ -49494,19 +50610,19 @@ "253c517a16655bd1af2910bca26a946ec5b5257507a84e5c1083bc68edcbaaae": { "383175d865a3e8e5eeeec2ad520a6706a7fe906490a2365a6c124bbbd35fbaea": { "jp": { - "updatedAt": "2026-02-19T02:24:12.663Z", + "updatedAt": "2026-02-24T10:49:36.395Z", "postProcessHash": "6622d521aa494e11aed9258b6bc686b15795ceefcba5fec84012f660e090c8e2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.666Z", + "updatedAt": "2026-02-24T10:49:36.397Z", "postProcessHash": "12f5ddae9714476d02122ff3409176c3ef07d23b94b7fe94986fa8da2e23b3f3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.664Z", + "updatedAt": "2026-02-24T10:49:36.396Z", "postProcessHash": "f8396d2e1a7f947aa5fcc02c1b6580f9e5fcb55ec017ed5554c1528541e34e7d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.699Z", + "updatedAt": "2026-02-24T10:49:36.437Z", "postProcessHash": "79b264b4dbe52e4253331113291313e0ce4ce71d0b4b44c61ddfaac794398bd5" } } @@ -49514,19 +50630,19 @@ "2c3512a703d975c2b75e7502a141cd8a3e8b086796e9dd5b92d66f1f2a58358c": { "f1c375550607f160ff41977c4e39aad3343f7094f427e196bc55d8e72c22aed3": { "jp": { - "updatedAt": "2026-02-19T02:24:12.665Z", + "updatedAt": "2026-02-24T10:49:36.397Z", "postProcessHash": "5b5f87013cc8fad9c01954b891a70ece55c8885e993b36c14aa0d6f1ad0f28d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.670Z", + "updatedAt": "2026-02-24T10:49:36.400Z", "postProcessHash": "28476399a4581f61898354464879529f038a3a5988a3ec9a37064451c6dab322" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.674Z", + "updatedAt": "2026-02-24T10:49:36.405Z", "postProcessHash": "543caf98971c99efef89019867f03c15f1de5eed29d077d212a2ac7d2d36e16b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.707Z", + "updatedAt": "2026-02-24T10:49:36.443Z", "postProcessHash": "58451f49e96746527af5e562b4bad73ae4d09a4f0b0308a5a792bc7fa84a6d8d" } } @@ -49534,19 +50650,19 @@ "371cb4852709d9ca0ffc244925c1336472d7b3607e49eb600409ac2634d29c9d": { "2c08ba9df01012e99f6db6d87ed3274138d3991bb7ef1df26cf943bbe938c83c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.662Z", + "updatedAt": "2026-02-24T10:49:36.457Z", "postProcessHash": "f68461f050d1743ba58b1b0287d5cfb9032217125a7029753d723ea93555469a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.735Z", + "updatedAt": "2026-02-24T10:49:36.472Z", "postProcessHash": "682918e0b3395c3696d43bbb6eca6bf71fe4f039631ce983e4cb57860e4ccf9f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.733Z", + "updatedAt": "2026-02-24T10:49:36.466Z", "postProcessHash": "84b2aa2edd5243de8e9134315c7d615dcad1f7076edd7ff223fde1a1101eb201" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.759Z", + "updatedAt": "2026-02-24T10:49:36.502Z", "postProcessHash": "8d51fa286b5121579a8e79ad55da0a7676ad83559efa7832ddaa62a2bcd149cc" } } @@ -49554,19 +50670,19 @@ "38065e7c3b022c9edd666529a176fb393cfb28490dd15161ec6ac71c2d9529db": { "35e6467692a1dada24e738d0c85e6530cad77f3c956b13d30d9734eec88985a5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.668Z", + "updatedAt": "2026-02-24T10:49:36.399Z", "postProcessHash": "a09be5644bb373c39cb9f216a3260cf4d1949818871153747ae4dc171912251d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.671Z", + "updatedAt": "2026-02-24T10:49:36.402Z", "postProcessHash": "f5ea483cdfa5d41c40e65bf1c9240ca471360460318ee476e42b5387c868f85f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.670Z", + "updatedAt": "2026-02-24T10:49:36.400Z", "postProcessHash": "5fb80d39a067b312f6518e5eb0d80f4c7a64b280fb2aa8d2f61475aafb48959c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.709Z", + "updatedAt": "2026-02-24T10:49:36.444Z", "postProcessHash": "bf17ae98dc94ad58268e3aaf3ace04cf0a4b89bda83b4b72f51725359e2b7f1e" } } @@ -49574,19 +50690,19 @@ "3c1dbc013406b1c31a215c47a6b9edb7f3dcaf68974dc2c38989fd26dd392af4": { "54d4adf41787f75b127c52923ea0abbe3e269714267d20e9e3f8f38afabbaf56": { "jp": { - "updatedAt": "2026-02-19T02:24:12.585Z", + "updatedAt": "2026-02-24T10:49:36.383Z", "postProcessHash": "e705d646e0adaa7e4a7787355ac389db76897b0418976e4ca1c6152b41d7c798" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.587Z", + "updatedAt": "2026-02-24T10:49:36.386Z", "postProcessHash": "84586579bd25c4a6e63095cf01d97d35fb2611a7fb477c4298361aece9bbb349" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.658Z", + "updatedAt": "2026-02-24T10:49:36.388Z", "postProcessHash": "955e19219b59e7861eb4c0d5a2561eda1d5ecc3b731378e099c91b4d7b6da538" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.696Z", + "updatedAt": "2026-02-24T10:49:36.434Z", "postProcessHash": "f83e9b8fa7a626e0e96c7319233cbf6b437fe65b3b74480761e97767db8aea78" } } @@ -49594,19 +50710,19 @@ "3d0840c01249868fda2bd1e95b3f042cdf2c618bd34004df654106ee3d7fe77b": { "abd6f88511214360a8b3d4a7acb1e68208916aae6edb5e22025418320d437381": { "jp": { - "updatedAt": "2026-02-19T02:24:12.745Z", + "updatedAt": "2026-02-24T10:49:36.482Z", "postProcessHash": "cc6fd9c2a878fbed5f53d5022794022778db4239c0b694e1d0e1b080f65c0dc5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.744Z", + "updatedAt": "2026-02-24T10:49:36.482Z", "postProcessHash": "094b3a34595b6496951a23051870ade646b65ddabe2208a0b593a25499f900d0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.742Z", + "updatedAt": "2026-02-24T10:49:36.481Z", "postProcessHash": "525753bede29e25a838eeaf5f302aa6d493d15ba9cf0b33c1a1ca2bf2cb8c593" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.762Z", + "updatedAt": "2026-02-24T10:49:36.503Z", "postProcessHash": "ced1b0b90e1eb4038bd4793562ecec69afee55bad7bfcc5281374322656adf45" } } @@ -49614,19 +50730,19 @@ "3eb17266fde17cf983c1426830939c4712a727fd7eeca3116f2fe348d7489f01": { "d7d5ceeef5f34571ef1e4827cc0966f80aabd85dc08e22be3a3583aa8cbe8a2f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.671Z", + "updatedAt": "2026-02-24T10:49:36.402Z", "postProcessHash": "1bc7bb285dce3ed12c6789e76f46bee85e5dc6f6411bd3569b3e4463b3d6f799" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.674Z", + "updatedAt": "2026-02-24T10:49:36.404Z", "postProcessHash": "0dff700b147eac0af4712576b4eda126545395db2fdca21638196439033cbfff" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.672Z", + "updatedAt": "2026-02-24T10:49:36.403Z", "postProcessHash": "9ffdd78f33e48d004d8aa2a0baf47b24599cbf7cd7556ace6f667fa666bfd7fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.704Z", + "updatedAt": "2026-02-24T10:49:36.441Z", "postProcessHash": "f750bb516c4b92fe353a428943708bba9fb1a04abc6a6fcab2a8279b15d79abb" } } @@ -49662,19 +50778,19 @@ }, "ec710aed2fe82682c47c961a9cb7a1330a64a7d2d8e23fa57f2d0b760acdaacf": { "zh": { - "updatedAt": "2026-02-19T02:24:12.591Z", + "updatedAt": "2026-02-24T10:49:36.333Z", "postProcessHash": "6dfed55b0d3e1a889e3ddcd312c9530e36707cdb6f21f7b877feca657b33ca57" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.637Z", + "updatedAt": "2026-02-24T10:49:36.360Z", "postProcessHash": "ffa63e513267340915020ab56bbfee015d258f970eef1edd11053d236814275d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.642Z", + "updatedAt": "2026-02-24T10:49:36.366Z", "postProcessHash": "ad5bae9afd646f36670fda8b382527c79874925cb65bfcc9d9f7ce59455ac4ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.701Z", + "updatedAt": "2026-02-24T10:49:36.438Z", "postProcessHash": "b3c2efd16c6e0bfe3794fe961bbba58e084bef7ed220286b79613beb73dc27bf" } } @@ -49710,19 +50826,19 @@ }, "b264bd4374ae3f94f24a8c38885b792f64b71c0e0557e984ca2955612296e8ac": { "ru": { - "updatedAt": "2026-02-19T02:24:12.521Z", + "updatedAt": "2026-02-24T10:49:36.277Z", "postProcessHash": "9b02d3fcf49df0ec33d21b231e05aa90a53d8083bf317c16dbc52c4b4fc46693" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.641Z", + "updatedAt": "2026-02-24T10:49:36.364Z", "postProcessHash": "49af20fca9746419ed5f352be768f97bf0ded716866bbfdf84eaf8f2e8c2bfdb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.687Z", + "updatedAt": "2026-02-24T10:49:36.373Z", "postProcessHash": "096b1f70c12a99b33cfe4be75a17315014980728155812cc308f18d2f41d2096" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.697Z", + "updatedAt": "2026-02-24T10:49:36.377Z", "postProcessHash": "df9c3ad2d00e84d8d6e361d89dbc79af8df38d265e15fedca38f096fd295d32b" } } @@ -49758,19 +50874,19 @@ }, "2da24fc36d75362b13a2505f8cf61f388eafa7fa8a75f262a61469e5475f31d7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.598Z", + "updatedAt": "2026-02-24T10:49:36.338Z", "postProcessHash": "cbe6f16beda4bb3f50c90201836630d5e59893a9160ac972c2412ce27cf819c6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.622Z", + "updatedAt": "2026-02-24T10:49:36.350Z", "postProcessHash": "0973a29e7732c9633c96e258819190f52d84e303b9b38c3f2ccbb1fb467abaac" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.627Z", + "updatedAt": "2026-02-24T10:49:36.352Z", "postProcessHash": "c017918fc58a4b83adb18894c5369b42d36cc94ab79771f291a38fc244b8d0c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.700Z", + "updatedAt": "2026-02-24T10:49:36.379Z", "postProcessHash": "8e94ba7c71f1629a68b885d86f764a843b25719529a5b23273fc1351bbcd8173" } } @@ -49838,19 +50954,19 @@ }, "dc2e0b8cb7e835df568a29f0db08465fe523b8e672706c1b5269ea5508969c97": { "jp": { - "updatedAt": "2026-02-19T02:24:12.523Z", + "updatedAt": "2026-02-24T10:49:36.328Z", "postProcessHash": "b0318eefecc145892848a88fb8e393d03cffcec0ef24cc0f98e620f17547db08" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.591Z", + "updatedAt": "2026-02-24T10:49:36.333Z", "postProcessHash": "740eec0b95d77bbaf99253518929808403927fb6d6975cc52790b9f9b4e0faf6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.624Z", + "updatedAt": "2026-02-24T10:49:36.351Z", "postProcessHash": "c0e0ca1b7b5a58ade71a8cd7c66bedf20239a2a8b55fdaa7f8252310517bc097" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.702Z", + "updatedAt": "2026-02-24T10:49:36.439Z", "postProcessHash": "48dbc55e36462e3aded502e1056957d25d998ea5862b5f0f57ca34d2ecb59199" } } @@ -49886,19 +51002,19 @@ }, "fcd62f674dd1b8ce1a591a756f572ac302c1d61b94990cd83536e74ac40850d5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.603Z", + "updatedAt": "2026-02-24T10:49:36.341Z", "postProcessHash": "1a6aad596af9f53756f68b19cbe97ba847b41153b8c0e949300f317ad978182a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.632Z", + "updatedAt": "2026-02-24T10:49:36.355Z", "postProcessHash": "eaa04c6a4be8b358276f4e63a2da4b026abd6d9db1a96c3ce6ea8118df77ad4c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.634Z", + "updatedAt": "2026-02-24T10:49:36.356Z", "postProcessHash": "b7828a6a2d2a4632742a630396a660332879fb90eac743f1c60d3506bc4e72f4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.701Z", + "updatedAt": "2026-02-24T10:49:36.438Z", "postProcessHash": "aa2dc6722a91cf8547f3e9b3106b77d0517f3cfed5f796d0448d416a92ad2ea1" } } @@ -49982,19 +51098,19 @@ }, "add775581e3012564c4dde5baaac5f7c68d6fc720342d8bbce7c727588c344e9": { "zh": { - "updatedAt": "2026-02-19T02:24:12.521Z", + "updatedAt": "2026-02-24T10:49:36.277Z", "postProcessHash": "149e71d8ea6b28f4f2afc0e8e042b7f47b6dafd24668f70ea35fb6d1f44bd2bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.522Z", + "updatedAt": "2026-02-24T10:49:36.278Z", "postProcessHash": "2a8ef6bd678c71050db8e7466eaf0c4eb192f86ff6808560dac4ba7c84729141" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.597Z", + "updatedAt": "2026-02-24T10:49:36.337Z", "postProcessHash": "30585bc12aba19076ad79dc231f694a2af3d180bb0f6e7db2a7cb7df4ca1429a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.648Z", + "updatedAt": "2026-02-24T10:49:36.376Z", "postProcessHash": "47e71c44c8c29616a9dabb6490a7fde291ac8a8ee85ae043db48be7c26e1dbf2" } } @@ -50029,19 +51145,19 @@ "04c615906de14bff138af4cdd85c3c07b4fc5433296761dca010e8ef60f78e93": { "91810a26e7bbbe9ffcd2f092006cc98930eec1fb41bd4802d4297bf1f45413c7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.720Z", + "updatedAt": "2026-02-24T10:49:36.452Z", "postProcessHash": "61aed7f01b0f0b7bde0ea01654379398e9d58aa964460559d3f8c764589096a5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.741Z", + "updatedAt": "2026-02-24T10:49:36.478Z", "postProcessHash": "d3efb9b5c4a0ff0b251ca365da0d6e32ce47044c96ed2d12d83bdf9dbe66b601" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.728Z", + "updatedAt": "2026-02-24T10:49:36.460Z", "postProcessHash": "d1cd38e22b2204384184bb9e86c48996a9b8bb2ced717c464a4491e2c3d8d88c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.811Z", + "updatedAt": "2026-02-24T10:49:36.500Z", "postProcessHash": "a2d6822fb4a61463fe64c3aa8923f8dadec8174d1bd7bc5cbda4d9e7d7cec029" } } @@ -50063,19 +51179,19 @@ }, "3cae588d4c4191942fbd0253f2b18ce8c8409a73677dd3426342719c549a070f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.752Z", + "updatedAt": "2026-02-24T10:49:36.493Z", "postProcessHash": "07294a5ef76105382019a58f249a9fff4c36f9b596a53c3320cee28cb4c04e90" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.757Z", + "updatedAt": "2026-02-24T10:49:36.497Z", "postProcessHash": "50e59582d5837dff5a001e5cdc27d8ab72be27842762cce096b9d57ec09776c0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.758Z", + "updatedAt": "2026-02-24T10:49:36.498Z", "postProcessHash": "3939939733f17703319a682f4b9d274dfbca6780c2fba7a0b050c233df0e12ae" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.767Z", + "updatedAt": "2026-02-24T10:49:36.507Z", "postProcessHash": "ffa3cb570949651a61b4481c767ee40130f870f6a6bc7a5d5953bdf3dc460ba2" } } @@ -50083,19 +51199,19 @@ "176150c0e3d077975a3bf364d1abf67e535d6c7aead2f176b61c34aca79abd59": { "844838ff96f065aabb06386cc366cf66f183135f983db2d969bbf61b47c89398": { "jp": { - "updatedAt": "2026-02-19T02:24:12.725Z", + "updatedAt": "2026-02-24T10:49:36.393Z", "postProcessHash": "dfcc5498de6dfeaa3915e95305314aa56a44319eea291164fafe7245448c0483" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.720Z", + "updatedAt": "2026-02-24T10:49:36.391Z", "postProcessHash": "2050ed279294a928e89ec453a5a806ac606956edf78c6447eb82b207b3304026" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.717Z", + "updatedAt": "2026-02-24T10:49:36.389Z", "postProcessHash": "a45b55eaeb7a3f687962780cde27f9a04639513386923b7e5473528fbc03a14c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.816Z", + "updatedAt": "2026-02-24T10:49:36.504Z", "postProcessHash": "77507f2fe8165d1acca4ed8a60c1f72dcedc36fa1b72ae6838d2d19d878ff036" } } @@ -50103,19 +51219,19 @@ "1a55a8d8cd9d21c74eaa692dca8aac6491f16ba3aee28f43616128e2d9ef200b": { "da55650acb4be1e891fe2ae5f1756740a01821cd992f3a8ca4695951fa27e52c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.727Z", + "updatedAt": "2026-02-24T10:49:36.460Z", "postProcessHash": "d7c6b58d7b5ef89b1fdbc1980c744de68fb6e2334b74499868e04ff1baa793c5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.660Z", + "updatedAt": "2026-02-24T10:49:36.392Z", "postProcessHash": "90992c6b67d5c60b15f53d8c7071f4f6a207dd822dda480dc075d92baf8a26c6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.734Z", + "updatedAt": "2026-02-24T10:49:36.470Z", "postProcessHash": "f07eb492c63866755a901e50831a5195dc26d53f8f671cf64ddee6f96fa4f84f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.764Z", + "updatedAt": "2026-02-24T10:49:36.506Z", "postProcessHash": "96fedc50c8152adb9446d3961b6ae8f8c8f31b7245ef025b624e231d4f957e1a" } } @@ -50151,19 +51267,19 @@ }, "e4eeb776174b9521cc240198cf17adfc311ee2bbe7d060baca6e7e5e2f13d3b4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.767Z", + "updatedAt": "2026-02-24T10:49:36.510Z", "postProcessHash": "de4c4ff3671010b55e2813cc031af290c60a4639ce3c35af8cdcba8d94c6b50c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.768Z", + "updatedAt": "2026-02-24T10:49:36.511Z", "postProcessHash": "4c24e423af0d3ca8f8127c2bcb126618cb1f430bf12bb52f29cf4aa5a497738a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.769Z", + "updatedAt": "2026-02-24T10:49:36.512Z", "postProcessHash": "59eeeccb73a0165b3be10f12f018b1d490856f70a0a020ac113d1c962d71c8f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.765Z", + "updatedAt": "2026-02-24T10:49:36.506Z", "postProcessHash": "39b3db17ad2ed2bbf9e383f1736ac1373fe0a38eb7f6aa185db2fa82d3d228a4" } } @@ -50171,19 +51287,19 @@ "2365f342aa73537207eea12c5ea5e59b84982495f018fb65d762d8ced77d7432": { "303a2bb1adcbfc7e719c1aac71a6de6454f8a1ba771cf607483f97b277db1bd4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.720Z", + "updatedAt": "2026-02-24T10:49:36.391Z", "postProcessHash": "e9a3954d8156e504747867473f52e9ca2dc923c827454def4fb1fa39a3e5b168" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.718Z", + "updatedAt": "2026-02-24T10:49:36.390Z", "postProcessHash": "66ca2d64baada5fb5cafa50a8a82d0b85a451c114aff8e0e505706aaa69ac23e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.732Z", + "updatedAt": "2026-02-24T10:49:36.465Z", "postProcessHash": "e81685ad9f2005b647782af40003aeabd47d1b81ea164c60347218ebe4b10658" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.820Z", + "updatedAt": "2026-02-24T10:49:36.505Z", "postProcessHash": "551d685f58d1b592f7879dcff50592805686a3f4eff71b4dde6405b4b3d498d1" } } @@ -50220,24 +51336,42 @@ "updatedAt": "2026-02-19T02:24:12.819Z", "postProcessHash": "284fe0407984cda892f42b23ef1d0249527d45fd18ca5fedd70f46c59d5e9bcc" } + }, + "d692b1c73d92020e7270d8f65f0ebe57f21bfd02f4752545e32f5ccea3935bcc": { + "zh": { + "updatedAt": "2026-02-24T10:49:36.560Z", + "postProcessHash": "efd143e07d7d9fc112fb43c30703c378c7198559b57e04e1f45d376e8ee4f9cf" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:36.561Z", + "postProcessHash": "152afc8186de25e8ce613e4d36c4afe7985a2ff5ddb087f84ab4fc64c87c3fc8" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:36.562Z", + "postProcessHash": "f4d9e4e4758eb35948ff65b41c5a6dd9bd68e545400e8327dd8520e9977f2d41" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:36.562Z", + "postProcessHash": "275e9c353a2277fed3c3a96764baa4fcc7ef4445a5aa7c969c61bd3a74540c01" + } } }, "3e3f9cdd02598c16b281b93fb32c30b1be85298c6b705aa31bfbce0e5880e103": { "e9242354e112109aceb1f980cb5bd9997a81807b4b2b9ad51d2e395d6925d743": { "jp": { - "updatedAt": "2026-02-19T02:24:12.657Z", + "updatedAt": "2026-02-24T10:49:36.450Z", "postProcessHash": "aec7eb01cb294eb9672ea45a9b9231fdb5ecb01e0ebfd3fa467a4cbdfcfcd279" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.731Z", + "updatedAt": "2026-02-24T10:49:36.464Z", "postProcessHash": "970824d350e6af48fb62a83ab38021a163f4b334ff45abdb619803ff2b9489a7" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.730Z", + "updatedAt": "2026-02-24T10:49:36.463Z", "postProcessHash": "afee8c81346c31f9798ab343d639f9def1ed29b9ef0c62639d68148619e620ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.810Z", + "updatedAt": "2026-02-24T10:49:36.499Z", "postProcessHash": "a4653bf1f1f27fa523b16d28afb8896bc856f7310e5c12348d4cb6c92c9c98d0" } } @@ -50259,19 +51393,19 @@ }, "32785de3bff088ba7874c26e0d20726ae9cde1b9df14a15db8158e2a61c3fa12": { "jp": { - "updatedAt": "2026-02-19T02:24:12.748Z", + "updatedAt": "2026-02-24T10:49:36.485Z", "postProcessHash": "7878141e9c3bda434bcf028fea3bbdeefdd7b8adffcbb8f1a86293a06c13a267" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.748Z", + "updatedAt": "2026-02-24T10:49:36.486Z", "postProcessHash": "b0d981ade570307807f3009dc7b40c733dec234b7358770e60615c96b259ed00" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.749Z", + "updatedAt": "2026-02-24T10:49:36.487Z", "postProcessHash": "7d4862bbf80db9f0b1397736e5253bddbe8e9d99750a1c49c5064d7361acca53" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.766Z", + "updatedAt": "2026-02-24T10:49:36.507Z", "postProcessHash": "7fb83eff1e64ed85444db40e8cfc2cdbab48d2b7607221643c7f61cbb2eb5287" } } @@ -50279,19 +51413,19 @@ "49e360371f0bc0d697298f4470438952e521fabefd1b9e98218955be3cdbbcc0": { "974e376db0d1f6bc3a3c2778b18c785b8cbb420855a07c1b3d0cfb100fdf6562": { "jp": { - "updatedAt": "2026-02-19T02:24:12.722Z", + "updatedAt": "2026-02-24T10:49:36.454Z", "postProcessHash": "7a8fca3087fb12294ffae6bd5f755bbfd4859fba68d88f67ae8475906a11a345" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.728Z", + "updatedAt": "2026-02-24T10:49:36.461Z", "postProcessHash": "fdeb776de39e39edd8ee304e483c358eb4ab48a7fb4f81d2adecf6593f83a217" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.723Z", + "updatedAt": "2026-02-24T10:49:36.454Z", "postProcessHash": "84fceb0d3971f255f49edfdba3398df1ccc4bf29049df35cd7945e3a030caf5f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.811Z", + "updatedAt": "2026-02-24T10:49:36.548Z", "postProcessHash": "0d9eb3ae186e76d46209debc5bdfaa8ec6b365bccd51223b3bfa3453f11634d2" } } @@ -50299,19 +51433,19 @@ "58cd3f4391882ce670046b8d82826c3c127fcee3b6aa2afc15ff717cd3d10d71": { "5015c123581af2b4d332b12ea65e8e6ccfdf0a8a5c76d9fab3a9a30aedfe8767": { "jp": { - "updatedAt": "2026-02-19T02:24:12.738Z", + "updatedAt": "2026-02-24T10:49:36.400Z", "postProcessHash": "cd2b2a4d7934a2c688a5ca08f266f40cd0fd0386fe9a2ec1dd927d178cb037aa" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.739Z", + "updatedAt": "2026-02-24T10:49:36.401Z", "postProcessHash": "57ed74563607d9aa884dff1c99f34be31ac366caf5002454d90de77db44abe5c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.734Z", + "updatedAt": "2026-02-24T10:49:36.398Z", "postProcessHash": "d3b6e2562d1f538f4946d96133ec38df1ea386c43d30d9fc7cf113f54a3ca6e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.765Z", + "updatedAt": "2026-02-24T10:49:36.446Z", "postProcessHash": "aeb183f7123a06907e322af3879ecc921f27ac83d516f2bbf70b4fbe1ee0c23b" } } @@ -50349,19 +51483,19 @@ }, "8720e1e02c9c0a5cc72437f52a0bd97076431d01a4ec3031c1ea6f5c92d95c18": { "zh": { - "updatedAt": "2026-02-19T02:24:12.684Z", + "updatedAt": "2026-02-24T10:49:36.427Z", "postProcessHash": "924988d4c2e255b05edfc9e634eb4df1d7277d8fc09a274de4c783fa7c97ef94" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.684Z", + "updatedAt": "2026-02-24T10:49:36.427Z", "postProcessHash": "91830cbc6211bfe61f335c0781e60a510fb8c89c9bf93764bdeb5a4ffe80b1bf" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.684Z", + "updatedAt": "2026-02-24T10:49:36.427Z", "postProcessHash": "3378536bc076759c158e92a6cdb0cd49ad572ee3fad7c29d1674b179689df9ce" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.700Z", + "updatedAt": "2026-02-24T10:49:36.437Z", "postProcessHash": "ee2c2053bb8f1e78b0e91a1a00e5ef84accaa2e23349aa69d0f16c7d11b3efe1" } } @@ -50383,19 +51517,19 @@ }, "4a937e11a15d630832e57cfeac80dd7673539ce179629a732766b38badcdd3c1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.682Z", + "updatedAt": "2026-02-24T10:49:36.425Z", "postProcessHash": "6b5891bc84cd051e1babedaae7bd87cd56fc2db625bdac6e69371d7968cf36d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.683Z", + "updatedAt": "2026-02-24T10:49:36.426Z", "postProcessHash": "857e970ed5428e45ba6ab79331fba57619bb257bef3483b6682fb02eb7d34297" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.683Z", + "updatedAt": "2026-02-24T10:49:36.426Z", "postProcessHash": "134e4dcacb6eaa3c9a5a7c637be7c6a909062a4893d833dfa065024858c597b4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.698Z", + "updatedAt": "2026-02-24T10:49:36.436Z", "postProcessHash": "5ba2cf2051e070d3a53deffe59b0b0c8c59b5b1d7a416c52e270fe51c779ff69" } } @@ -50403,19 +51537,19 @@ "978146b52bf1385e45bd326ef044217c2dcdc8bb47040c12f8ac16274fa8addc": { "229b20a3b9f2e01d63cbf0aa22d459b44b4535cff9593d53b6edbfdd28847fdf": { "jp": { - "updatedAt": "2026-02-19T02:24:12.661Z", + "updatedAt": "2026-02-24T10:49:36.394Z", "postProcessHash": "b9ca39067947cef786dbd137409b88594b9d2f32977f4f40ffa8b59aa773fb6c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.663Z", + "updatedAt": "2026-02-24T10:49:36.395Z", "postProcessHash": "bc00c70892679b9adc8a4223dcab7537a42c1bcde9b98bbad7e5de779a3b1d93" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.667Z", + "updatedAt": "2026-02-24T10:49:36.398Z", "postProcessHash": "7ac8c3f71c8511ad69ef17a67ed998ee9d4fab1d190947413c40a9fe7bf707b2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.712Z", + "updatedAt": "2026-02-24T10:49:36.446Z", "postProcessHash": "09aff9cabbe340b474429434ed3b3cfa186b8acd881c56cd5489d06c70b15228" } } @@ -50439,19 +51573,19 @@ "bbc79010b259fcfbd187a6891a0f4fb7b780904c181f0266b6753f4d179bbd0b": { "9124cca07daf9271adc7984d01efad4c1a6d47441c45c6be540d3204e5502916": { "jp": { - "updatedAt": "2026-02-19T02:24:12.660Z", + "updatedAt": "2026-02-24T10:49:36.393Z", "postProcessHash": "a9348e64b240c9157342e75fe268ef2424535d664c00206e9e345ef2580eaa5a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.662Z", + "updatedAt": "2026-02-24T10:49:36.394Z", "postProcessHash": "59611e671d6966166ae225c88cb69881a96ac4a4e96f7eb6bdb7041bf557784d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.585Z", + "updatedAt": "2026-02-24T10:49:36.384Z", "postProcessHash": "fc1876e4afbc582af86cf1aa0f131fd5a7fdbd57d7e3bba2d28ac52a03423916" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.696Z", + "updatedAt": "2026-02-24T10:49:36.434Z", "postProcessHash": "7c472f27a84000132bac7aa5c4c1ec1be4ee11d3ab49674dbe57e4dbcbfc388d" } } @@ -50459,19 +51593,19 @@ "c04de4891f93a0ba91486fc9aaf76205c21818b034acf58a753695af7332b3ac": { "783554b75229a238156945270a3356288601a5016510ae7113ea4d4f746a89d9": { "jp": { - "updatedAt": "2026-02-19T02:24:12.743Z", + "updatedAt": "2026-02-24T10:49:36.421Z", "postProcessHash": "1196345d170e41d1ddcb2afdb4e8deacbde12049ddd6ee573a49665acd499a48" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.658Z", + "updatedAt": "2026-02-24T10:49:36.387Z", "postProcessHash": "bcbc3d0530d94f163057c5c109f4d117a94e80499addb1d5b65ac6feafd30b6f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.744Z", + "updatedAt": "2026-02-24T10:49:36.422Z", "postProcessHash": "07c3204c8baa590331f82663edca5c3e6f02fc7cdd31b00e598fdc8d2f8f38e4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.760Z", + "updatedAt": "2026-02-24T10:49:36.436Z", "postProcessHash": "6c4bfdeab9575dfa18f32a68169a5d3774e3a5585dc273a2210aa03084383942" } } @@ -50495,19 +51629,19 @@ "c9f381cce8333661e63bd1e01d8c4f1774748ca4686351ffff148b88e9e703cb": { "e4a9139614a7f11d3b10e77e31631df6b358e364a358b51b7e9d35e161a62d0c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.731Z", + "updatedAt": "2026-02-24T10:49:36.465Z", "postProcessHash": "e70b356091638015b784ce2ac1ba2c4b665559fb34ead00421c4e31859718e98" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.737Z", + "updatedAt": "2026-02-24T10:49:36.474Z", "postProcessHash": "d17a8bd9a717711e3afc905e882c4570a4eff4d9718f780e0a551320735aa134" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.729Z", + "updatedAt": "2026-02-24T10:49:36.461Z", "postProcessHash": "5dfddd6a0901505accdf9a24ba73e5bb34f8b81966c5500b80c4c024a4e12510" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.761Z", + "updatedAt": "2026-02-24T10:49:36.502Z", "postProcessHash": "36683c0368608020318ea6ad0dfff547b486d766dd2854cea738bf51c4a1bf6c" } } @@ -50515,19 +51649,19 @@ "decba6568d82bbae43bf10ae33288e0bb54460fab2d76fb910a5037c036d8b31": { "b3961ee327c6fafcf4999b1abd14b74444d3905528c75bc8bb8c2bfbefbe9765": { "jp": { - "updatedAt": "2026-02-19T02:24:12.586Z", + "updatedAt": "2026-02-24T10:49:36.386Z", "postProcessHash": "ff8e135fedfa6c96b74d10e62415126330f68da4aa4a14d6b25b3ce29470ca96" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.665Z", + "updatedAt": "2026-02-24T10:49:36.396Z", "postProcessHash": "1720db8922b2df72a67ea17ba2b48d974036fc9f89597f23d2cdc48e1e8a58d5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.664Z", + "updatedAt": "2026-02-24T10:49:36.396Z", "postProcessHash": "43361dd1d1e93202663f495fe180688b996797dbdb68e920cd43ce3ab747ba03" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.696Z", + "updatedAt": "2026-02-24T10:49:36.435Z", "postProcessHash": "debee8518e980f7e2324b4015baf6a601ee0e78c4c0762e7b8c4b2fbd3059d8b" } } @@ -50535,19 +51669,19 @@ "f8499afd2bca127eb328fcbbb1d86926a4b6ed99899c57bf912940e11e81fa53": { "57d37a6031f92bd82e315b49237fe134b84352ea376fc2fb6ae7f50d8a63cb03": { "jp": { - "updatedAt": "2026-02-19T02:24:12.678Z", + "updatedAt": "2026-02-24T10:49:36.419Z", "postProcessHash": "c92ad753e8477e82bf38d4020cc9c0dc4bcf0f6cca45b5fc6427c32215ae2b05" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.680Z", + "updatedAt": "2026-02-24T10:49:36.423Z", "postProcessHash": "6d254273e35c6062d52ff7d834f4c654a4d6f824856b535c9c2323aacc9286a9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.673Z", + "updatedAt": "2026-02-24T10:49:36.404Z", "postProcessHash": "583aa6b72ec9638d946a5641fe4d7ad29d259d59a3cbf04625a31d18ad1a7486" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.695Z", + "updatedAt": "2026-02-24T10:49:36.433Z", "postProcessHash": "03d3a04295b0e32fe9568065808d6b8613e61d9c1c652740cad1b577d136c547" } } @@ -50555,19 +51689,19 @@ "00801f2886d2097d3f3fd23c2495271df83abfb95d59a9c9a2b4a905b8ec2d19": { "20cf324bd963db14b9a1a4346dec4811329f6ebe733b3eeeaba7616399e4d20d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.796Z", + "updatedAt": "2026-02-24T10:49:36.534Z", "postProcessHash": "b9b803f0aee75d74aeb9b78a909c781d980905e67189c242c03281a3e116d741" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.795Z", + "updatedAt": "2026-02-24T10:49:36.534Z", "postProcessHash": "b46ff84a4115a25c1f03e4c118cb20bacbb83e5318276f53e704256bb07c35c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.800Z", + "updatedAt": "2026-02-24T10:49:36.538Z", "postProcessHash": "3536d476f140bea18b4ea5b82412029a5ae0dfdcd13198ef28c199354ae99abf" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.814Z", + "updatedAt": "2026-02-24T10:49:36.549Z", "postProcessHash": "e23cafeeac97f0977099c632249a9e338c68dbf12a957581a6ad15778d000496" } } @@ -50575,19 +51709,19 @@ "0d7f085589a701521498ae4f2032eff79402e3efaae1bf069e42f610cc1714dc": { "65b6c024a83d6653e55cb1503b9816b66a3ad761b629019961fe3f8f698afb45": { "jp": { - "updatedAt": "2026-02-19T02:24:12.725Z", + "updatedAt": "2026-02-24T10:49:36.516Z", "postProcessHash": "fa665ff794d4e0a7ff1c6749ae5079d4b4121e576f1475408b6a2b245fafc4d5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.781Z", + "updatedAt": "2026-02-24T10:49:36.522Z", "postProcessHash": "3e7edcda372c63e8a818779fb0218e191c743bfa86f2a4768a55f54065ba3a10" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.792Z", + "updatedAt": "2026-02-24T10:49:36.531Z", "postProcessHash": "564c2aab8478b9bffbf8749c3877db5b13ee014a144e77926e8d3300a2727afb" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.818Z", + "updatedAt": "2026-02-24T10:49:36.553Z", "postProcessHash": "041c675e845f47091965b8a840f85a0984526f1ba3d4e70c37676c3a9cfd81c5" } } @@ -50595,19 +51729,19 @@ "1b24b02c3b8b44ef65014e1185ac74c302c13f1cd510990f907cbfb6af75565c": { "153f09d0dc6e1710e949f8df69bcf6dddffcd2f29e7b48e271192abe56431443": { "ru": { - "updatedAt": "2026-02-19T02:24:12.783Z", + "updatedAt": "2026-02-24T10:49:36.524Z", "postProcessHash": "0c4b09e34450b1f4bc6bfbf85dc8490d03592579991569dd576d7211b1948693" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.780Z", + "updatedAt": "2026-02-24T10:49:36.522Z", "postProcessHash": "b7ced81790a78e06912514f44f4ca875a22c9cc53ab4b9a999f545c7b2a06b85" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.786Z", + "updatedAt": "2026-02-24T10:49:36.526Z", "postProcessHash": "1c0430fa281dfd2ccba2bd48ad839cc20956d074370515be8af3be28876da479" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.884Z", + "updatedAt": "2026-02-24T10:49:36.553Z", "postProcessHash": "829b42ac43bd22557c69b23302d6d484ca09abb3cc1117d77fc290a68ac3c2e5" } } @@ -50615,19 +51749,19 @@ "1d3ae6305b61a5daa4272a2fdf5bc89befcde6b3c3cd8ac506e835ebca98d2ce": { "7cfed78448288b1e3ce81098eb348b43d832571045d5f68b5c05727141c3c15b": { "jp": { - "updatedAt": "2026-02-19T02:24:12.849Z", + "updatedAt": "2026-02-24T10:49:36.540Z", "postProcessHash": "927c7813a8ff75e3ef1656a0bb98c2f82786ab2aca92eb46953b432257b6c8e2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.847Z", + "updatedAt": "2026-02-24T10:49:36.539Z", "postProcessHash": "fc7c8db838101e6e3dfb9e52a1621b1a1c4256356425616d540e45cf0e8c1551" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.847Z", + "updatedAt": "2026-02-24T10:49:36.540Z", "postProcessHash": "f10cd77437df10d57139bd516bf214885819e05fc71b69317ac347f8cfb6849b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.890Z", + "updatedAt": "2026-02-24T10:49:36.557Z", "postProcessHash": "585ff4d33533a094a9da52eb586f125a36206235e72ec8340f89ef10d146dd2d" } } @@ -50649,19 +51783,19 @@ }, "b2d2aa82ba28dad27ecc5169982ab716fc36be7d862e5595ffb1da96f474cda1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.800Z", + "updatedAt": "2026-02-24T10:49:36.541Z", "postProcessHash": "6ecaad15b6f6bb843dcd4ea5c9dcdecab493c8a3adb77f3819bcd877c9d6a18a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.801Z", + "updatedAt": "2026-02-24T10:49:36.541Z", "postProcessHash": "c5b8ab7d283e9415af2311a881f69eda4c5447b68c18b9644bc09923aa3e0c5c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.801Z", + "updatedAt": "2026-02-24T10:49:36.542Z", "postProcessHash": "feb30eed49e0c4aa391155dcbd65ebe28f1b8fd29ff4566ea0e38758c33fd20a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.821Z", + "updatedAt": "2026-02-24T10:49:36.555Z", "postProcessHash": "dbd98d010bbcff1167045b759c6e2ac2e48084d733ded40b8fc77d598fda2943" } } @@ -50669,19 +51803,19 @@ "2dbf7fe23f006182359a9db8a0997fc25605a170bbf502414f10a4d0445f3741": { "a3d059702798e7975e6104e13702831f09dab10cf354c44b13f40788c8b697a6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.790Z", + "updatedAt": "2026-02-24T10:49:36.529Z", "postProcessHash": "ce66d6bc987aa7c7229b08dcb63183ef659ff9b8dd4fd9c6381df5ad1526733e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.842Z", + "updatedAt": "2026-02-24T10:49:36.537Z", "postProcessHash": "1ac06a24a41c325931a9b4cea75f6758f4c3c46f1fe53f062bf3bbcae6d40f3f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.843Z", + "updatedAt": "2026-02-24T10:49:36.537Z", "postProcessHash": "f9a52a4dda72d17fda4f4c4ae27cd1ba41e9aa8ecb55fb2a18cfd9f607f73a76" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.893Z", + "updatedAt": "2026-02-24T10:49:36.559Z", "postProcessHash": "96996ce0b9934957232f1b358fc4a052f5dba0b241477f4e83fc648b48358d65" } } @@ -50689,19 +51823,19 @@ "36a66d817a53f3419052a70bb1815a864c606b97c1626029b4822b58ad82c762": { "3d820438e1d508017cfc5d486b3974a03a6f0475286a479dfda2cf575d825e99": { "jp": { - "updatedAt": "2026-02-19T02:24:12.791Z", + "updatedAt": "2026-02-24T10:49:36.472Z", "postProcessHash": "581a6541b164a3d3c0042479eb9f7c2a74e52f5e9b365eb6fa33df36bc09dc3b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.789Z", + "updatedAt": "2026-02-24T10:49:36.471Z", "postProcessHash": "367c032dcead27cae9d3ff2bfb393f089ebc6ea10e274a6eca342109792b6460" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.796Z", + "updatedAt": "2026-02-24T10:49:36.475Z", "postProcessHash": "efb7d4359183dc1a0d98409facd9ee90770862bfa2ea0c9bc0bd13002cf3a238" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.824Z", + "updatedAt": "2026-02-24T10:49:36.558Z", "postProcessHash": "c7cea638036421b7dff9a7b5bace48bfc6597a356ab1a53f4da37f9542b6fc0b" } } @@ -50751,19 +51885,19 @@ }, "7c5e7f94f07488009d53adf16ece0ee1fef320fa662628172a65e39ac85ad65b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.802Z", + "updatedAt": "2026-02-24T10:49:36.542Z", "postProcessHash": "4742bf2cdb7fcbf7757cef85dbb9e185670cceccc0c6377dfcc6cd8f4090cb9c" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.803Z", + "updatedAt": "2026-02-24T10:49:36.543Z", "postProcessHash": "ce635498a1aca580947d9c5d6758e6d468d9397b150aea414e3701703318b2bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.804Z", + "updatedAt": "2026-02-24T10:49:36.544Z", "postProcessHash": "81ea372cd64336eec70e71ba3ee0d40173fa4385229ed5d54758b54282212aa8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.824Z", + "updatedAt": "2026-02-24T10:49:36.557Z", "postProcessHash": "ac818804c1fcd49c5b06c3563c8d8abd955260141cb62856edafd87c1fb4736c" } } @@ -50785,19 +51919,19 @@ }, "0cd24e45a3c144b2d91b1daac3771ddded5af4c49928f168d17af7bd1d13a192": { "ru": { - "updatedAt": "2026-02-19T02:24:12.808Z", + "updatedAt": "2026-02-24T10:49:36.546Z", "postProcessHash": "adb1409fa8dcee7edd74458bebd65b5ded811f0a211caed85099b44e24c76a0c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.808Z", + "updatedAt": "2026-02-24T10:49:36.547Z", "postProcessHash": "f5a9221733245dfc176ead8f89d5260c5eebd9501ce8a8fa7404a1220fc3d18b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.809Z", + "updatedAt": "2026-02-24T10:49:36.547Z", "postProcessHash": "26e8ce8f9a760ce7372ce366c6ab958b400bbd36ba82e9dc73324067814c25d0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.825Z", + "updatedAt": "2026-02-24T10:49:36.558Z", "postProcessHash": "d9684511beb9c4a5d0ace52180651e70f51460f827d9f82dd3b7acb28d41ead4" } } @@ -50805,19 +51939,19 @@ "519d5b1a64a00744511c1f3e47df4f483237ba323bcad90f4c2eca4ce9a37794": { "f9c93f24237acc26028d821a685b28dcc71dc3b5ef28ed3f611cd0074fd7d695": { "jp": { - "updatedAt": "2026-02-19T02:24:12.746Z", + "updatedAt": "2026-02-24T10:49:36.483Z", "postProcessHash": "598d3664d05118a621d2c848fed319b46a487f37dcdb4df8e9dd3f064ed23218" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.659Z", + "updatedAt": "2026-02-24T10:49:36.391Z", "postProcessHash": "1c1dcfc9b04fd42183a58ddd2e072821f87b3589dd809bc304fcc0cdb9ecbe31" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.736Z", + "updatedAt": "2026-02-24T10:49:36.473Z", "postProcessHash": "48aaf01020ec41f25032fdc395160c4b0a87a28b1421c511ec12a801a1d7d05a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.763Z", + "updatedAt": "2026-02-24T10:49:36.504Z", "postProcessHash": "eb678c047117107c382b863c12ef855c4aa975db77b0df7f1e460feec968ecf7" } } @@ -50825,19 +51959,19 @@ "595165a4c673965a825c2516944ed6da341d1802ba4af0d1f8e1442aba248fa8": { "8396ae84019ca44433161f57c91a29f40404e3a589100e8cca8e8000206607f9": { "jp": { - "updatedAt": "2026-02-19T02:24:12.729Z", + "updatedAt": "2026-02-24T10:49:36.462Z", "postProcessHash": "f845ef01fe1f6e28ed648a594c138ca263a8285617f01feee662db6da29dfaff" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.721Z", + "updatedAt": "2026-02-24T10:49:36.452Z", "postProcessHash": "c48532d9e0105216af78935201656dbb9fe65ee9bd754f50b6ba775e47fc9838" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.722Z", + "updatedAt": "2026-02-24T10:49:36.453Z", "postProcessHash": "8e139fab94739b91523e9894ecf5ce9e507da17e02fd751c1ecfb6b321bc6ee1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.812Z", + "updatedAt": "2026-02-24T10:49:36.548Z", "postProcessHash": "5855488dbbe719ab5cceed68f1c97a9ce4e357b6cd0bcb3f1ff79e2a8631e6e7" } } @@ -50845,19 +51979,19 @@ "7e455500c000c9cf2e608bee5ea8ceda40748f754e86eb2dfa6fb808fff46087": { "bad6198b79924e96476294bbd990cd527edc29dacccf3bc3408a2a70258e5f0b": { "jp": { - "updatedAt": "2026-02-19T02:24:12.740Z", + "updatedAt": "2026-02-24T10:49:36.476Z", "postProcessHash": "93663eb3299dfd36a0dffb14cd5c82ec9dd1583e45638d9d335604ec18c6fda2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.740Z", + "updatedAt": "2026-02-24T10:49:36.477Z", "postProcessHash": "202abf270d4f9958583e23575282eb67c7f3f215a0b6a6e96c8b95a1344b4fc1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.738Z", + "updatedAt": "2026-02-24T10:49:36.476Z", "postProcessHash": "8ca23528ceda30d2e2bade0579131b6886fd53cfa1a167d6d46b991268544dcc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.813Z", + "updatedAt": "2026-02-24T10:49:36.549Z", "postProcessHash": "b7099348e9d85e0067aa060f319c52d582127378ed419e745676ca779d9a5778" } } @@ -50879,19 +52013,19 @@ }, "a545210822fcd08c62c4052f383a68ebe900dc8168c28e09cb79cca4e9460033": { "ru": { - "updatedAt": "2026-02-19T02:24:12.752Z", + "updatedAt": "2026-02-24T10:49:36.493Z", "postProcessHash": "730b1fc2ad76cca6c9f436951a6eef39f6fceaf6e03132b346b064738cb8d5a4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.756Z", + "updatedAt": "2026-02-24T10:49:36.496Z", "postProcessHash": "0dd103d97ccedcfc46a646c424e099523e0cde995a3ef7146227c5f044743dfa" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.757Z", + "updatedAt": "2026-02-24T10:49:36.497Z", "postProcessHash": "359a7087944001f234c7d2b62550c8e1f808488bebe44c95a0316b092ee249f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.815Z", + "updatedAt": "2026-02-24T10:49:36.551Z", "postProcessHash": "e563a7d4297731ed66f00c43da17e24b7a905786326cf24868bd5c08f3a14146" } } @@ -50899,19 +52033,19 @@ "a2d877584716bec8ddf5f64a0ba5fd7a0a6b67f9077bed82dda87ee72bfffb8c": { "8d6d45dafb5a931c179b3f202896d1e34592ec42eecee9e2f9c96e83bc4cc999": { "jp": { - "updatedAt": "2026-02-19T02:24:12.658Z", + "updatedAt": "2026-02-24T10:49:36.389Z", "postProcessHash": "267d7a96437769c9494b74f103a6f5ba5a1f3c6592360cf2bffd331f85d78259" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.737Z", + "updatedAt": "2026-02-24T10:49:36.475Z", "postProcessHash": "df09f99fc80e0fb13ed5384811bbdb8b8e2c8b4b19fd7948425500bc7c303745" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.735Z", + "updatedAt": "2026-02-24T10:49:36.471Z", "postProcessHash": "398132695160d513215956c0a4b51e4ede10305ce7314b7a3ee4d7904178324c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.766Z", + "updatedAt": "2026-02-24T10:49:36.507Z", "postProcessHash": "2cd3190ac31b88eb1a80ddc4d9bdbe845589da659be435369108ff4f74fe49fc" } } @@ -50919,19 +52053,19 @@ "a5c7b243af8ea45f4cac1779bcbf974f63ad2778759dea05635eca542de84b9b": { "d7c29ef5219d22555b84953c119240e3967ba43e9caba2c80886d14046eb7fc2": { "jp": { - "updatedAt": "2026-02-19T02:24:12.718Z", + "updatedAt": "2026-02-24T10:49:36.450Z", "postProcessHash": "5860b45d9f5414e73b008b88a501c0c2f6707af504d0faeaf8ec08a52883c9a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.723Z", + "updatedAt": "2026-02-24T10:49:36.456Z", "postProcessHash": "3509957acb1ba8faf8e6863c26c7d82aba06933c9612f43bfe44520f272b6fbb" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.724Z", + "updatedAt": "2026-02-24T10:49:36.456Z", "postProcessHash": "ec30cc80be9a6af90e1a791e98e84916d58f126786d2bd856c69dd41e10cdffe" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.822Z", + "updatedAt": "2026-02-24T10:49:36.556Z", "postProcessHash": "0600ed46ded8cae82e9a0821087ee11f8458b6565df6577d5db94093a6cf4ffd" } } @@ -50939,19 +52073,19 @@ "d20916d14ade0ee04f39675be5d395d4a057b6b2238ab20a85bf425d1e48c431": { "1ba41582c1e8ebc8a0609ed6a4c503280d425de63584ec900b123ce79c518b7b": { "jp": { - "updatedAt": "2026-02-19T02:24:12.733Z", + "updatedAt": "2026-02-24T10:49:36.470Z", "postProcessHash": "4ec98b8aef200f11199979637eef6c6525b57770b2b9d5ffa47580f9a05d1e69" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.656Z", + "updatedAt": "2026-02-24T10:49:36.385Z", "postProcessHash": "5af61fd6e387959489c95f88556bee2349facd4cfd4d5c783b6ad8bafa7ebb3a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.656Z", + "updatedAt": "2026-02-24T10:49:36.385Z", "postProcessHash": "b516ac0c5a5783b9861e2b746b2c720fcc3bd83ab0cc9ed546a40c82acbdaafa" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.758Z", + "updatedAt": "2026-02-24T10:49:36.501Z", "postProcessHash": "e9a38ef5bbfde3f5b874d32e34ffbcbb1b5915e59c3e9a7c89f854c23b7e3a4a" } } @@ -50959,19 +52093,19 @@ "e4ba3f71170ffd976d7ad1047d155c73155719b1d252f0fe0608a02ffa3d64ca": { "a6ee74f4a5fa3c471abd0d72cdd9151b4614ba229d109564ac3a2e5c5454bd4e": { "jp": { - "updatedAt": "2026-02-19T02:24:12.723Z", + "updatedAt": "2026-02-24T10:49:36.455Z", "postProcessHash": "b24a46099d5b5c29f977f58881722c3e359791bcfa3c7f1ee56668e9976c1fb5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.721Z", + "updatedAt": "2026-02-24T10:49:36.453Z", "postProcessHash": "0c22579473c7d2fa1b0c873f80060b01cc5ad2610c47e238496da6f839d4710e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.740Z", + "updatedAt": "2026-02-24T10:49:36.477Z", "postProcessHash": "f6a5be072bf8f05ff5d64f5eea2ff474e0463d22ab0d4ca6be5553690dd52e08" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.819Z", + "updatedAt": "2026-02-24T10:49:36.554Z", "postProcessHash": "977b4acaabdd5f835d533c73228b44c0869508ad6dbbfb895da4159e1f5667a6" } } @@ -50979,19 +52113,19 @@ "e7b858b48d1c9c70d32c523d9dc6357d0917ee69b16fa5c6a88fd2a2cfac0098": { "092cf9506a86a0643021a3bc1abcb0426387f5124df02aa60181da49a76114c0": { "jp": { - "updatedAt": "2026-02-19T02:24:12.719Z", + "updatedAt": "2026-02-24T10:49:36.451Z", "postProcessHash": "bee2549bd95436f869b67ee2abaab1a5a90da62874d60e252b191f076ae522b5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.719Z", + "updatedAt": "2026-02-24T10:49:36.451Z", "postProcessHash": "a41ed68d96d077bed4074cd633e235720a77f3102c80e1227902b6843af220f9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.724Z", + "updatedAt": "2026-02-24T10:49:36.456Z", "postProcessHash": "150db86c32ecd0491fde3dab750f391d28895d2c0d01d614db642150515b9148" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.814Z", + "updatedAt": "2026-02-24T10:49:36.550Z", "postProcessHash": "bceb145e7f5c33a60f9c9f1a05d2cbfbbacf244829335aa69cb2cc9e710258ef" } } @@ -51013,19 +52147,19 @@ }, "662e45c9473426d729d41ba14b84b19981e128c0928852e9bfd5719a1ca5d925": { "jp": { - "updatedAt": "2026-02-19T02:24:12.746Z", + "updatedAt": "2026-02-24T10:49:36.484Z", "postProcessHash": "7c5dd0dd03a65866779beeed8fb11659673539d122f4b61f9873ec2e9e8f8e09" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.747Z", + "updatedAt": "2026-02-24T10:49:36.484Z", "postProcessHash": "3a08da65eb0eee2e55d78398d1f4103808daa5e84ad7517c68b38f0d04924ec4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.747Z", + "updatedAt": "2026-02-24T10:49:36.485Z", "postProcessHash": "69ccddd99a6f501c7b0bcb06740c6a9d4a697a9bd0e4d301ecf72dd0ab1d08d9" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.820Z", + "updatedAt": "2026-02-24T10:49:36.554Z", "postProcessHash": "9b2316474f37bdb91a473e868cada5bcc65e1ebd88e96427725f1c7cb5e06b59" } } @@ -51033,19 +52167,19 @@ "ecc50ef743da07587f50e2e433c891d853c4145a43e14073bee65beca199ca9d": { "e3d9d895a670833c385d032550d1d2f2e8ecc66328713f84bde5f6eb645a9a70": { "jp": { - "updatedAt": "2026-02-19T02:24:12.663Z", + "updatedAt": "2026-02-24T10:49:36.458Z", "postProcessHash": "0e0b5d30ec70d04e13351d9cf44cf95f35e8cf3fc4a6603070f8127e3f20e0c1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.662Z", + "updatedAt": "2026-02-24T10:49:36.457Z", "postProcessHash": "5e514e5d0db4430bfcb8c72595e9a7fdeb3c7b656cf6f809dec8fddab16e5587" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.663Z", + "updatedAt": "2026-02-24T10:49:36.459Z", "postProcessHash": "451171c737af2091ac0680c663109e58fd0f9bbe1b514aff4ecf4c7e71f3e6cc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.761Z", + "updatedAt": "2026-02-24T10:49:36.503Z", "postProcessHash": "e1ddd6ba3840a7ed18c70ed8eb03ec544e76cd688de210f4fe3c2d73ef204471" } } @@ -51053,19 +52187,19 @@ "f811cef1e60d3d76b1890136803c78a8a4f1f5c0702d5e269d8ea318cf5bc7b7": { "8ed2a0a54a6b4cc5249d9184642124cf15bfe670fcebd8151de225c2a95e77c4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.734Z", + "updatedAt": "2026-02-24T10:49:36.471Z", "postProcessHash": "6c3aa9001ac1569012c606c512dd925d4d1ed08418680f91e1e0250cdd3bd9ea" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.659Z", + "updatedAt": "2026-02-24T10:49:36.390Z", "postProcessHash": "2b8fe9acd81457f5bf18dcc2bdf91a42aa4faad7eed162dcab75c1d72685d924" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.659Z", + "updatedAt": "2026-02-24T10:49:36.392Z", "postProcessHash": "84ff47755c029b2f20cb7d893d29264ab3a40987c64751c55ff0246d1908ac63" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.763Z", + "updatedAt": "2026-02-24T10:49:36.504Z", "postProcessHash": "4cb0966caa289a83a6b9600fae0a5b134721fe5e04dcaf157a114e4037677ad9" } } @@ -51073,19 +52207,19 @@ "037cf7beb5f9d2290c0e219686b1115e8e4b773c79f541f5c81f9a4989e58cd3": { "3f6353039db49376892bd891e326535ed8f03543ad08cc2ad5b7bbbe193ee94e": { "jp": { - "updatedAt": "2026-02-19T02:24:12.788Z", + "updatedAt": "2026-02-24T10:49:36.528Z", "postProcessHash": "f8cc6c4c6f8122d18b3a13c78bb8ff7b494fa752e60d002b5aecacc8d56fd955" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.840Z", + "updatedAt": "2026-02-24T10:49:36.533Z", "postProcessHash": "f0221495d9663047b162e8005e96f3b97b0ad939788c4ce5fedfc25c992cca7c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.793Z", + "updatedAt": "2026-02-24T10:49:36.531Z", "postProcessHash": "6f972123efe6b95f835c702e21375b072f4f35e63540a0313b7c852efc429955" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.882Z", + "updatedAt": "2026-02-24T10:49:36.609Z", "postProcessHash": "ed226ab7fda1d5f992944ff555c3a4aca594b06478c0e29682899539f5c69340" } } @@ -51093,19 +52227,19 @@ "0a6b34520ca8168f8c366dbf6721239ffec9e0995481a49f17e32bfdf43182b3": { "d12d9428ec537b38678164b4a2d6a7eab105d1f3658778da83f05b64228fece8": { "jp": { - "updatedAt": "2026-02-19T02:24:12.780Z", + "updatedAt": "2026-02-24T10:49:36.522Z", "postProcessHash": "cd48494a7412916e57ff62acf1d6e12be61fd083955e4446df09a6b61793af6a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.780Z", + "updatedAt": "2026-02-24T10:49:36.521Z", "postProcessHash": "0890a3d3b622f313c8778fbb18fe559e2e4e309340b32a24018dbbf2a3c5818a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.785Z", + "updatedAt": "2026-02-24T10:49:36.525Z", "postProcessHash": "2d66c5e46194578931c7db6420661e01f0049b5a7c19d0db5528ae0326c88544" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.881Z", + "updatedAt": "2026-02-24T10:49:36.608Z", "postProcessHash": "b01c71bbdec215989b27c7615190b898bcdf0cc12d2efcd65ef9ba97a4a2d4f5" } } @@ -51142,24 +52276,42 @@ "updatedAt": "2026-02-19T02:24:12.889Z", "postProcessHash": "da16a0e50b2fb158f3a3a240f87496234897eb451d0f906ae00cade2c25b3943" } + }, + "0b71a80ab3adda3cd4e26f340ecbc158a4adc9d0978625090142a6b7e16e2008": { + "ru": { + "updatedAt": "2026-02-24T10:49:36.624Z", + "postProcessHash": "9fcbb0bdf66c30c522f595fce3cfc3afc41bd853d1adfe03450d6b75eff4b547" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:36.625Z", + "postProcessHash": "68b93c88fe2d3c5f5cca5ec56a07e253959c1a239ce5b38a7f9a7ac9751832a1" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:36.626Z", + "postProcessHash": "0a9b72c11892b9a0e52b43ef65b340dedca6bfa436f43bed7cdd1484c22ce871" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:36.626Z", + "postProcessHash": "21e33e4f595a63b2acde9fa971ac083c0d57918a44da9f76e0d8f8c72c7b1716" + } } }, "4fb36325d48e506203d8d75bcf6b70879d8bb4bd5ac0aef7b03cf1d784b85934": { "e592ec6dc8b770289b11562b8d28fce8a2ed7c9589b8caa85832638eef552890": { "jp": { - "updatedAt": "2026-02-19T02:24:12.842Z", + "updatedAt": "2026-02-24T10:49:36.568Z", "postProcessHash": "6f0a52cf19fc53d45b9a796c121ccb961d5b910278112dc3a7d6bc7a1f76562e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.846Z", + "updatedAt": "2026-02-24T10:49:36.573Z", "postProcessHash": "08f0206bf14cbd34ef6a899888acc65ccc34bb707a6ad7de632bf4bff068d6ed" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.845Z", + "updatedAt": "2026-02-24T10:49:36.571Z", "postProcessHash": "4eca8df447deef26d46acc535a1a334772e8c83def5eb6ab77c2745480581875" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.943Z", + "updatedAt": "2026-02-24T10:49:36.620Z", "postProcessHash": "f081314e2ad09e02a12c12d7bcb60e3ed26d8f5b8364ba9d65b933ead3970cc3" } } @@ -51167,19 +52319,19 @@ "54668b892baede02e5b6a5cbaf788773fafac8277e523ed65fc920f4ea6df2de": { "0163d4482566b616b6e411361068fbb4094a1c1d66cab5c5f906a2faf1fe96f8": { "jp": { - "updatedAt": "2026-02-19T02:24:12.778Z", + "updatedAt": "2026-02-24T10:49:36.519Z", "postProcessHash": "7d439af9484365e7de24a54992c0863d6415c99696b8a73c92934c39936f9916" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.777Z", + "updatedAt": "2026-02-24T10:49:36.518Z", "postProcessHash": "2056d1a94911f95067409c17d0ac06e25d20aa7dec4f02e4cc8e19189af21fb0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.778Z", + "updatedAt": "2026-02-24T10:49:36.520Z", "postProcessHash": "e33dd18a0acbbdce7443924d03655e390ce6cf6b6649592ac61a79194803d1d7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.887Z", + "updatedAt": "2026-02-24T10:49:36.614Z", "postProcessHash": "d09a57b74dbcf5ec954280019e90c2689954c16dd59e974dd1ac365128cf06e9" } } @@ -51212,19 +52364,19 @@ }, "e66b6f5a4d57659961caf6634ac45e8934cccd82eab8e5c2ad511a72d0eca5ec": { "zh": { - "updatedAt": "2026-02-19T02:24:12.854Z", + "updatedAt": "2026-02-24T10:49:36.578Z", "postProcessHash": "aeec1d8622e9ca4c2d6a5f0b8ac230b183f7ba1a57e3ec32c8440cc5ae291a9f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.854Z", + "updatedAt": "2026-02-24T10:49:36.578Z", "postProcessHash": "4c5c833f6b62eaab1fd45f2860ae7a246e80fc45444a51bb9aefb718fae2f5d0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.856Z", + "updatedAt": "2026-02-24T10:49:36.589Z", "postProcessHash": "e6c9d119a5dd6dfec47c5be273cd162bf0903320e4001594bc2c434b75142f33" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.885Z", + "updatedAt": "2026-02-24T10:49:36.612Z", "postProcessHash": "96454b6a477938bdd6e790f031313c0881b68fab30c5334e760f3126f348f4fa" } } @@ -51260,19 +52412,19 @@ }, "c1a4a991407da18254eb7c1ec70ae9fd4cec78d7d07953e887423e79167efc6f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.855Z", + "updatedAt": "2026-02-24T10:49:36.578Z", "postProcessHash": "04c8d3cd0285e02ee3c6b163728548ef923d57f631244e253e1b5fbdf18053de" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.855Z", + "updatedAt": "2026-02-24T10:49:36.579Z", "postProcessHash": "05cae48b0d7c20074ff9623e67a9eba9094efc81f35114e950af2ab59af709be" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.856Z", + "updatedAt": "2026-02-24T10:49:36.579Z", "postProcessHash": "041c1b102d6b896e73d12787fb6c9d4ec73a59950273f7f09203d7182929d8f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.883Z", + "updatedAt": "2026-02-24T10:49:36.611Z", "postProcessHash": "fd43e51212cbae992efdf97a9c7a22d0dff657f08c73609145a5cd730f3300b8" } } @@ -51280,19 +52432,19 @@ "67deff08df6c97036b3da071e7956e16555880aeb53c7d8ac63d1316e5f89993": { "8b19006f70430697684ec4194432408cb6d68b05965376bdeba185e83774be1d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.790Z", + "updatedAt": "2026-02-24T10:49:36.529Z", "postProcessHash": "dbd1271f4659f5b982b612ec2ec06a802b8eb4386f42ad124a03c17b329f700b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.788Z", + "updatedAt": "2026-02-24T10:49:36.527Z", "postProcessHash": "84cb8a81460a0461284c6b9ad504d279cec69396bc141dec7fc12913cab14302" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.779Z", + "updatedAt": "2026-02-24T10:49:36.520Z", "postProcessHash": "5ee650d36ee5c3ace85f5b0491bee1e77b6227bf311900b79319c92767485974" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.815Z", + "updatedAt": "2026-02-24T10:49:36.550Z", "postProcessHash": "5ccba9317d3d42e4cd99d9aa8d9cae786075df48d5f7a158a8bc90cdc0b1f4d3" } } @@ -51300,19 +52452,19 @@ "72054126de2c0ba649ef4842d3a88e42bc8fbabd3ec579abd629308399d48364": { "f53eec1c24f726e22bbfdd53d757a2f052bbadb6e11837183028dab74cbef510": { "jp": { - "updatedAt": "2026-02-19T02:24:12.730Z", + "updatedAt": "2026-02-24T10:49:36.464Z", "postProcessHash": "8850c29a5852ea483ffbf7d5b14a00ddc84e21fbf11255f0f68dbd0a21d39407" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.732Z", + "updatedAt": "2026-02-24T10:49:36.466Z", "postProcessHash": "9b3d654e0430da9a464142e325caffca82f06ef9b7cf6f12a3264cf3492e77a3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.727Z", + "updatedAt": "2026-02-24T10:49:36.459Z", "postProcessHash": "afd918d30f0679f987fa43a1f5c8b6444fb8850ec41af2269850361c958d1831" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.822Z", + "updatedAt": "2026-02-24T10:49:36.555Z", "postProcessHash": "bc439d1476003ba0d0aaf8109ca2367b04259b625c88a4060feb9f3994716217" } } @@ -51320,19 +52472,19 @@ "79354c33a23d98f8b63fe6e965aef5d6b18cdc962e36d20a3b148d8cf335f86c": { "a1b7db6e0aac3869ff670ca64a57cc2cb592944192a99aea022777ca4d6ae73a": { "jp": { - "updatedAt": "2026-02-19T02:24:12.798Z", + "updatedAt": "2026-02-24T10:49:36.536Z", "postProcessHash": "4c751365295810f682146820102a67088f183e9c1a7b221babc29454098d7115" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.798Z", + "updatedAt": "2026-02-24T10:49:36.536Z", "postProcessHash": "961a26fbd8fa4be1a0ed97c8a74567f1fba073043ea38235e862c97d122a139d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.799Z", + "updatedAt": "2026-02-24T10:49:36.537Z", "postProcessHash": "8d7928608ef712cf186721855a007f1e5317d2eabf6b0c85e9e73784fb654cae" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.825Z", + "updatedAt": "2026-02-24T10:49:36.559Z", "postProcessHash": "ed83e6d1c14be63348ef576a6c3ffeac59c70037d56003f5b8ae915bfba898bb" } } @@ -51354,19 +52506,19 @@ }, "c5236c53694f5496976c10e10cfb242a5f6761abbcadfe9e80d1908f602dba5f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.804Z", + "updatedAt": "2026-02-24T10:49:36.544Z", "postProcessHash": "937f3871590eab378e965e323b5678d4aa231da511c4471637f444fb1b0655b9" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.805Z", + "updatedAt": "2026-02-24T10:49:36.545Z", "postProcessHash": "5cd228787430afb07cb795df710f09bd08254c617b829b0a5109e143caf8038c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.806Z", + "updatedAt": "2026-02-24T10:49:36.546Z", "postProcessHash": "77193e04eecb9923acdda4335f6bd8c14f245718c3e8fd600b32d91af7db3c4b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.833Z", + "updatedAt": "2026-02-24T10:49:36.560Z", "postProcessHash": "f3845d19e54db12d26bc2e3f7a61c24fd65b223602917f162917b49bac898cc2" } } @@ -51374,19 +52526,19 @@ "9a882460cbd2fdc9c5ff521d87a5f2d2b7ccd55f1ba81bfb3906e7ca923d1c1e": { "437e57c81c3f0872003cb47aa8df2359ae68ecc690d887ec26b6e38a740144f6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.789Z", + "updatedAt": "2026-02-24T10:49:36.528Z", "postProcessHash": "2db44ac5bf90aecfde3326a18ce1ab87b4efe730018f0d5780a32d474873a972" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.787Z", + "updatedAt": "2026-02-24T10:49:36.526Z", "postProcessHash": "20070f76df85689ba0eb8ca63f318744be24fa984a20611cfc910c6c31728a1e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.795Z", + "updatedAt": "2026-02-24T10:49:36.533Z", "postProcessHash": "0ca23f35b9a526d903c2065b5d48a41665870289c5ee186c14cbf4d2cebfcde7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.817Z", + "updatedAt": "2026-02-24T10:49:36.552Z", "postProcessHash": "497e0441bed131e9643674ba6bb1dda2d17faec3b1e419b794633dda91d012f7" } } @@ -51394,19 +52546,19 @@ "ad780b9bfd73ed606b7968549e04e8b3334085724088340ad05f2447559d540f": { "2bddef7ed07c45258897c9370efaa505180d67c313bb2d16ef2c830e5636aa00": { "jp": { - "updatedAt": "2026-02-19T02:24:12.782Z", + "updatedAt": "2026-02-24T10:49:36.524Z", "postProcessHash": "6265220e1680de5a8a0c10a3a5d850ccfc3f108d09402225bea8c3f60bca6f2a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.781Z", + "updatedAt": "2026-02-24T10:49:36.523Z", "postProcessHash": "fb0b6696b9598399c9fd3d48eb6163f86ad868db5a4e9d65927ae5fc7e3ab483" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.727Z", + "updatedAt": "2026-02-24T10:49:36.518Z", "postProcessHash": "1928f8b7e95dab427115af85eaa784b60e79225bb71ea1cc205e9af85c01bfa0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.818Z", + "updatedAt": "2026-02-24T10:49:36.552Z", "postProcessHash": "9e183613657ce2935e590cd711eb6e4f8965f6a701366df1584e862903e4ba47" } } @@ -51414,19 +52566,19 @@ "ae79c700aca5153218493e8a943d16630b2f7ea345ab07e3105236857b43d93b": { "b1e073c8374abc5e997e5c6b5beb49db3202f0731072d2c28d7fbb0d58ae5e38": { "jp": { - "updatedAt": "2026-02-19T02:24:12.799Z", + "updatedAt": "2026-02-24T10:49:36.538Z", "postProcessHash": "407c9dc82c3706350594be064a6d644c2a8083e674cb43733b387055caeb9eee" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.797Z", + "updatedAt": "2026-02-24T10:49:36.535Z", "postProcessHash": "d76132b04430062253b6518ab8625fbab19478bee603e5686e3fa4a69c0bc3e9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.797Z", + "updatedAt": "2026-02-24T10:49:36.535Z", "postProcessHash": "e0241ca6ad52dfd3e88ca948e67d72bf3beb31873a4a39d4907b04b320049b46" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.823Z", + "updatedAt": "2026-02-24T10:49:36.556Z", "postProcessHash": "07e8af7ca9aeeb3f9412565db7dfcbd18145c788db3931d6a9da85528c1209d5" } } @@ -51434,19 +52586,19 @@ "cad443b0bb3344ed063f7aa4c7fc2b79aced5e32830119e2376d8bc59ea14c52": { "7d224b4658e83885570c772a1a61546603db3deadf2539b9ba2ed630cb97e6a6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.786Z", + "updatedAt": "2026-02-24T10:49:36.466Z", "postProcessHash": "c1b18c1f8712ff55db5dc9a5808358273a883bed44081e16d049a53a2db9270e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.784Z", + "updatedAt": "2026-02-24T10:49:36.462Z", "postProcessHash": "6850669effdd0bc0dfd1984a39b84a98702369c99de2728d209879972465c40e" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.787Z", + "updatedAt": "2026-02-24T10:49:36.467Z", "postProcessHash": "7012ba2d4c99da05a6cf669ae8a543d419fa6373dae6100932d7b6b19847695d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.812Z", + "updatedAt": "2026-02-24T10:49:36.548Z", "postProcessHash": "3f5f03209bdec3fa686a9c47c12fd15e33c8b084b1d28d3c075a6adbc86cdf4d" } } @@ -51454,19 +52606,19 @@ "ceefbdcea6747301b15ae01324b1afd1ac12aa220ed2fe99add6fbe53f6c7269": { "5840e875e6ec0ff5abbf5480df1b95d85a50786763ab037f67b711d24e4e67c7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.785Z", + "updatedAt": "2026-02-24T10:49:36.525Z", "postProcessHash": "251cc1d079403579c630d27480418b1f1666869586926da5a4bd51edab6e0716" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.726Z", + "updatedAt": "2026-02-24T10:49:36.517Z", "postProcessHash": "5fd524c69b2bb89a48c609b83f6943497fdaf5eb084e0f2d289d80ef03d130d4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.791Z", + "updatedAt": "2026-02-24T10:49:36.530Z", "postProcessHash": "e183bba19ffca5f846b6c769036f0c438e99ddbb7a1ac47fff98d1e160d9e112" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.821Z", + "updatedAt": "2026-02-24T10:49:36.555Z", "postProcessHash": "609625c2678dabbf4636e828b028bc2b4c6353809af21705d0f51eb7aa3cc277" } } @@ -51494,19 +52646,19 @@ "e14b170922435b64e35287ad9833a81f16ff54cafad9dec0721b50d4150e5eff": { "a7e402c7578841050808aadfed7d6deea52ece0e68f8352e2e942645abf29aa1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.726Z", + "updatedAt": "2026-02-24T10:49:36.517Z", "postProcessHash": "fcf51b32a1acb018d9ab7ac3c3b30f0d53357ddaf3b515566ffab2201cf0081b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.777Z", + "updatedAt": "2026-02-24T10:49:36.519Z", "postProcessHash": "5b2939ec977b26a8c5e1f2f382aab3b55ad5a6ed40d611b241abca9cc85d7173" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.784Z", + "updatedAt": "2026-02-24T10:49:36.524Z", "postProcessHash": "190a345b7460c9513a471fc1aef3ef708fa10433bf6c78eba6fb80a46fd21609" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.815Z", + "updatedAt": "2026-02-24T10:49:36.551Z", "postProcessHash": "79a90cb288a57bc42787d92ef5f1d8b53fd807e9542dacfe257e8777baeafc99" } } @@ -51528,19 +52680,19 @@ }, "ef39b2127368b228419d895de6f559803b65472e0ceb4d08e0372e46edb6b607": { "jp": { - "updatedAt": "2026-02-19T02:24:12.749Z", + "updatedAt": "2026-02-24T10:49:36.487Z", "postProcessHash": "1f8e359ee945df4cbe226715ebec53dd12b21cf44df15ea9c010d25a3a70a1cd" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.750Z", + "updatedAt": "2026-02-24T10:49:36.488Z", "postProcessHash": "c5c35f4eea88f18fceed5590c30e37b3db11cfd2d8811edc468af3eee3ee595f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.750Z", + "updatedAt": "2026-02-24T10:49:36.488Z", "postProcessHash": "ad8cf16ed15e661e362913a8a0ae72f53092d60329b4407ceb1c799a1f03b489" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.817Z", + "updatedAt": "2026-02-24T10:49:36.552Z", "postProcessHash": "7e6d7f034b0e995609923a8535fa0598d8caf94eb812160b990984560e928789" } } @@ -51562,19 +52714,19 @@ }, "1543118a3888757ca01705cc9743f1cd067d80cd7a447957425afdd4434d4cd3": { "ru": { - "updatedAt": "2026-02-19T02:24:12.849Z", + "updatedAt": "2026-02-24T10:49:36.574Z", "postProcessHash": "500ec6dfec414e76e526dce5724c06b39999ed316476c81fe55d63875be12bf8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.850Z", + "updatedAt": "2026-02-24T10:49:36.575Z", "postProcessHash": "7688260e3dc48e408b7f0fd2cbffb7e06d1ebedb4d23c3f2122f0892313b3cbc" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.851Z", + "updatedAt": "2026-02-24T10:49:36.575Z", "postProcessHash": "c638a65921aae36c18e40348b388048ef17c3d1bab33089bfae5a42e5e99e9e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.886Z", + "updatedAt": "2026-02-24T10:49:36.613Z", "postProcessHash": "ffe4de7e07276d2ac9a5486d8d4f76f48d6900495cd1168d3a2251dfdac717bf" } } @@ -51582,19 +52734,19 @@ "6d063f7195776042aa3f0a6d982cef56abab4e4b689ea926e2fc79ed09f5a2ff": { "cdca3b6d03d5aff13d620991a578cf9aae185e67396d308d55838c9401281d25": { "jp": { - "updatedAt": "2026-02-19T02:24:12.841Z", + "updatedAt": "2026-02-24T10:49:36.567Z", "postProcessHash": "3309d7beb6c5b920099488f848a6051531fdecef16155dbd8aa8b829768265df" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.853Z", + "updatedAt": "2026-02-24T10:49:36.577Z", "postProcessHash": "738d75dc8c33999d44e920546d222c0a3ae6c8ecf2a6f164d593eb510e9c973b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.841Z", + "updatedAt": "2026-02-24T10:49:36.567Z", "postProcessHash": "1c69a99c0b75c6c95ed7fb48578013333f814976a548a2918401562ce7a51259" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.882Z", + "updatedAt": "2026-02-24T10:49:36.609Z", "postProcessHash": "2f62f4eb050227f3e0b24305fec0959c6c34306add0acf1e6426eacdaf421d6f" } } @@ -51613,19 +52765,19 @@ }, "000b1489bccc8788cf74aa6329f6c98ad06511f167f46f1b934a958a5c6ce2b4": { "ru": { - "updatedAt": "2026-02-19T02:24:12.771Z", + "updatedAt": "2026-02-24T10:49:36.513Z", "postProcessHash": "3abe849b0f71da56703241aec5ac67ddb5ecb2889b98128bb1fb296f40155986" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.772Z", + "updatedAt": "2026-02-24T10:49:36.514Z", "postProcessHash": "2d38529e83aab3b2c066b5c16f25bd1ee69dfab1cc75ff4988726761d21935bd" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.772Z", + "updatedAt": "2026-02-24T10:49:36.515Z", "postProcessHash": "a1aefd0fbbf24f33faf9f806dc0c6805993aa50cf791af28638d9f90d4d61212" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.893Z", + "updatedAt": "2026-02-24T10:49:36.621Z", "postProcessHash": "e67de5651abe9b5a26a5d1cde7341c9ad47ce6c94818565e6b3b6d1a5fbb01d1" } } @@ -51633,19 +52785,19 @@ "99b41ad75a6b23d70cb86b644a533c095785f9bb812c802ab52b650473d678ce": { "aa16d1a33d3312895cbf47d1ede82586dfb4df0a3507111d6cc8823a5446a979": { "jp": { - "updatedAt": "2026-02-19T02:24:12.845Z", + "updatedAt": "2026-02-24T10:49:36.572Z", "postProcessHash": "0143ba88823764d6a68175d2a7a9a6385a2c0fc499a172d600680cd92e3c91e5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.782Z", + "updatedAt": "2026-02-24T10:49:36.523Z", "postProcessHash": "638ebb42101aaaba50326af1c5cdaeae268eefb890f8a99177d1eaaaa48b065b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.842Z", + "updatedAt": "2026-02-24T10:49:36.568Z", "postProcessHash": "7995ec2d459be84b57de05135f371f794c38efaf2428fc8438fbbfc63154d411" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.892Z", + "updatedAt": "2026-02-24T10:49:36.619Z", "postProcessHash": "17927431a84882393cf7da5bfb9b468957ad9aad0506b47160e15b576288a4c1" } } @@ -51653,19 +52805,19 @@ "be4a5f793e39d6e7b18691ba8685878af8c580f898c9f09efc5b93e0979b3902": { "b95eddde3a53a14028e00000ea72057696b55e352e2a30cb66fda415c9ba5d5e": { "jp": { - "updatedAt": "2026-02-19T02:24:12.794Z", + "updatedAt": "2026-02-24T10:49:36.532Z", "postProcessHash": "639121270558a459951acf3dd033082fbafacbecf1dfe8e57849d4fa0574de04" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.844Z", + "updatedAt": "2026-02-24T10:49:36.570Z", "postProcessHash": "6897098f68d55414109ee5735c6be2accb1272745d0f3578bc7ee1e5e8e9e244" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.843Z", + "updatedAt": "2026-02-24T10:49:36.569Z", "postProcessHash": "10d17275b50abf93a84062aa92f436cd61beab2d0d0c7e94d7f5d054161a5d6f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.884Z", + "updatedAt": "2026-02-24T10:49:36.611Z", "postProcessHash": "3ab36dd585bb3871f45944a8c9e9f87417a7ec6952f57d94ff2f250bd68d912b" } } @@ -51687,19 +52839,19 @@ }, "83b8b4ac37fc1cbb162133574fd239210908dfc63c14602523874200dda803d0": { "zh": { - "updatedAt": "2026-02-19T02:24:12.860Z", + "updatedAt": "2026-02-24T10:49:36.591Z", "postProcessHash": "dc2afcb22e43cb7c730d94891f55a7eeabe6811f17d4d55eaa1af2867ff23451" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.861Z", + "updatedAt": "2026-02-24T10:49:36.592Z", "postProcessHash": "92e27591be063176a80974c748bce5a771f7783b86a4d873bb3c242c5ee28137" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.862Z", + "updatedAt": "2026-02-24T10:49:36.592Z", "postProcessHash": "73acdbb5038fdea9c90221db761ae5015b5714889c20214ab41428ecbb21fce8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.887Z", + "updatedAt": "2026-02-24T10:49:36.614Z", "postProcessHash": "feeb22d61333a1d6b1aa49ad29378fe35f41ff0819db520e8b1fc64c1420b452" } } @@ -51707,19 +52859,19 @@ "d917e72b0a533c5af5b78c94fe1c05954dfd7ee48fb7ef7ab50f924f25fd68d2": { "b98abd6c9ba813c4b4a7cd9bc3018c8d18d3b4e71c0ec5233cf5d8da0a0f0441": { "jp": { - "updatedAt": "2026-02-19T02:24:12.844Z", + "updatedAt": "2026-02-24T10:49:36.571Z", "postProcessHash": "b7b1662e35faaee338bdf1115de1db51f5d87b2cd0e2e0ccea4acdfd28cabaf7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.848Z", + "updatedAt": "2026-02-24T10:49:36.573Z", "postProcessHash": "2bf48952cf89df03efd7bdab14f91d945a6574e288a4cbd22e3512187e172ac1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.848Z", + "updatedAt": "2026-02-24T10:49:36.574Z", "postProcessHash": "93b1df3f89c938812e4727cad2547b8e32792d5e8f63b916d3110601073ff350" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.892Z", + "updatedAt": "2026-02-24T10:49:36.620Z", "postProcessHash": "88e766a4caa869f14445f3e593307639e9dea1e22208aff7608f69e9c9942108" } } @@ -51727,19 +52879,19 @@ "e05df611d62735d38ef4d916bb8f4ebe7a8d79a8773dcc1e94584527d5291d29": { "6ed109f9852559b92ce5667c817e8c2bc706b8ada65ecb41dd89ea0a07d5a71d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.792Z", + "updatedAt": "2026-02-24T10:49:36.530Z", "postProcessHash": "e59897f9170b2eaf65beb3566ace1ff092958e0370d6a30badc234903df4328f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.793Z", + "updatedAt": "2026-02-24T10:49:36.532Z", "postProcessHash": "84d9e1010db695948c5177f20f4b13dab5ccd13fe3cebd1e5f8b9126df0ae644" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.787Z", + "updatedAt": "2026-02-24T10:49:36.527Z", "postProcessHash": "629879748dcc453d0cebba5350c8156dff4945c82ddb2ec15dda8a471950a74b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.888Z", + "updatedAt": "2026-02-24T10:49:36.615Z", "postProcessHash": "eb5694cd04869b4a7392ea84f0b701b31cd92051b577b9a6fae877891f514475" } } @@ -51747,19 +52899,19 @@ "8e4cc87be65a0de0b75cdf694f1e368b68e721094e28ad05d1ab2af1aa7c97c2": { "b4c7e25600e2e0bab1150a0a7777cdce0d61b9c3e50a9c73e33bae121c92cbba": { "jp": { - "updatedAt": "2026-02-19T02:24:13.203Z", + "updatedAt": "2026-02-24T10:49:36.977Z", "postProcessHash": "713a33d07f67aa81c5e94df9357525eb992cd84e5b8de4b33c75065ae90183e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.202Z", + "updatedAt": "2026-02-24T10:49:36.975Z", "postProcessHash": "5cb63e2cbfc805a66153f2a0b7e0eb50431e18a659f8dd0df4e892bb4889105b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.204Z", + "updatedAt": "2026-02-24T10:49:36.981Z", "postProcessHash": "fcdb53f0eef5ee6d7bcf511efe0e736257a95d4c5d0341c48b91fd888eebe2f4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.322Z", + "updatedAt": "2026-02-24T10:49:37.104Z", "postProcessHash": "2af2c97673f98141fe3f116d6cb823b27085e5176491a37628c97eb2e24456ee" } } @@ -51767,19 +52919,19 @@ "9dbbdc5c5acc11dc5874d8f84c2ec9210659a18cdd63bcc17e5b9addd0e11761": { "ca5dbd38b58fcc4d7a89bbb3e287de8dd7982f758f2a8e314589026ceed00758": { "jp": { - "updatedAt": "2026-02-19T02:24:13.199Z", + "updatedAt": "2026-02-24T10:49:36.961Z", "postProcessHash": "72aac5265ba0e946d0a5714203f68b03fa3e12de2b70363bc1853794f46c5d5f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.210Z", + "updatedAt": "2026-02-24T10:49:36.994Z", "postProcessHash": "d0d5c65fb4be1b4d607387f7433e1efab92bd7c402186625d19603b205f0460b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.196Z", + "updatedAt": "2026-02-24T10:49:36.957Z", "postProcessHash": "ef1caaf6885cdaad84bb404e6a152ab1f7f0cbb3c3fb7e190f4453cfa676f118" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.318Z", + "updatedAt": "2026-02-24T10:49:37.096Z", "postProcessHash": "7c4e9477eb8943993185092099b8834aa6e8d2a21f32be1156616cc1745c1854" } } @@ -51787,19 +52939,19 @@ "a1ae550295a483325655e321e7db058409614a56e29a23b67cbb7b001c387ca1": { "8978ba1f0ad1f751ccb53c78a3aacb61cbebe5e747e9d35fcdd7d9a45f55b790": { "jp": { - "updatedAt": "2026-02-19T02:24:13.197Z", + "updatedAt": "2026-02-24T10:49:36.958Z", "postProcessHash": "7f3bcd4393f59fbfb6d61e50595b4f619303931f2fd4b1fb0045b25aa8c067fc" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.201Z", + "updatedAt": "2026-02-24T10:49:36.964Z", "postProcessHash": "be6f2c0efbd26f47ff866ca052b7bcd3556397e5e4d44a33fc127de0f2bdaee4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.201Z", + "updatedAt": "2026-02-24T10:49:36.966Z", "postProcessHash": "4d17055463206d0da16a17b80df59d29714f48198e709b60d85fcf69b5a4a6d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.318Z", + "updatedAt": "2026-02-24T10:49:37.098Z", "postProcessHash": "c4ad9b3fa44e965e1e2a7f43de92e1d925ff878158918f6044eec0ab4c04d119" } } @@ -51951,19 +53103,19 @@ }, "bb222a68617f84efbe399ee8ee83148660576feabd1697c8bff4dda188b3a450": { "zh": { - "updatedAt": "2026-02-19T02:24:10.648Z", + "updatedAt": "2026-02-24T10:49:34.283Z", "postProcessHash": "8a7e6f1549a671ab53bb219947ba60f96833122651b3c4d16443b23eab7c95f8" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.649Z", + "updatedAt": "2026-02-24T10:49:34.284Z", "postProcessHash": "28bce7938898a855c870b2715c2d5551413f3b8756957e80d18ac51f81aca10f" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.650Z", + "updatedAt": "2026-02-24T10:49:34.285Z", "postProcessHash": "fc9c5f681a6821d6d298d73badaf614bacf032123e8ddcaa51aa6ed5333b31f7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.717Z", + "updatedAt": "2026-02-24T10:49:34.362Z", "postProcessHash": "b42a9eb80a8d0b566a2e41ec51f9279d40e14f39916c588b9f7c74e86c601077" } } @@ -52007,19 +53159,19 @@ }, "08412048657c96a95c865bdee117efd0023f3fca6a064251c8be21924d4e700a": { "jp": { - "updatedAt": "2026-02-19T02:24:11.831Z", + "updatedAt": "2026-02-24T10:49:35.525Z", "postProcessHash": "dc84137469eda2c6ac66458ad90621e92b0e3f623934ed0b1146a0b55283ea39" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.831Z", + "updatedAt": "2026-02-24T10:49:35.525Z", "postProcessHash": "46aeb9351e049281e5b75ac9cc182340d9e84350fe982b3ef5e534bf68d6b6cf" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.832Z", + "updatedAt": "2026-02-24T10:49:35.526Z", "postProcessHash": "227dfcbb8f35babf4559593a4e30918ce4975efa6f55cbc0d14c0601bc37a3a3" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.898Z", + "updatedAt": "2026-02-24T10:49:35.609Z", "postProcessHash": "12006725eb0a8a7624234c92842f199f132263faa8817513b77c4e5fdf1d6e38" } } @@ -52035,19 +53187,19 @@ }, "027d2488fe130352aa6298012c4d7a267915572c0674765bb593b91d195456d9": { "zh": { - "updatedAt": "2026-02-19T02:24:10.447Z", + "updatedAt": "2026-02-24T10:49:34.127Z", "postProcessHash": "cddc24770a56c74f224fc8a924029eb2e83f8d58535d69f2831bf97238a2d949" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.450Z", + "updatedAt": "2026-02-24T10:49:34.129Z", "postProcessHash": "ac201609e6222d857e5f1c6f0ae325b1d2288b3ad77ea808d0906c0823c2c050" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.421Z", + "updatedAt": "2026-02-24T10:49:34.101Z", "postProcessHash": "24582a05f2069fa46e18a7cb381f2fe2345e0ad28b3db4593ee7cc26e3bc840a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.560Z", + "updatedAt": "2026-02-24T10:49:34.220Z", "postProcessHash": "e82ca90b774cb43a69fa985f3275c565d32824dcd2b66ba29e14ccde5baeb341" } }, @@ -52074,19 +53226,19 @@ }, "2020a467b74c2031b09501bd31ebb2d005e1c3d366aa4673be3ded168b7cf3c3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.878Z", + "updatedAt": "2026-02-24T10:49:35.576Z", "postProcessHash": "c312db80d4cb796c8eb440fd668faf9a9884b5546d3bce17edc124e04d80c2dd" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.879Z", + "updatedAt": "2026-02-24T10:49:35.578Z", "postProcessHash": "567da6d86520dbc97a145fdffc3a5dfb9bd8fe7a76946e7fef7dfaa04672ba28" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.880Z", + "updatedAt": "2026-02-24T10:49:35.579Z", "postProcessHash": "388e3568eb528538a7612a4a4c2b111860d03ac4bdeb725ecd32b599a45a4a73" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.895Z", + "updatedAt": "2026-02-24T10:49:35.605Z", "postProcessHash": "9337fecbfef6202c43a2434409db687fb6ba3e9bc14c09b07b9dd452045aae50" } } @@ -52127,19 +53279,19 @@ }, "c2a1456e61256a3e9f1fb43aed222e5eb9d175ce52e8ea3016529a0818a8eabf": { "ru": { - "updatedAt": "2026-02-19T02:24:09.536Z", + "updatedAt": "2026-02-24T10:49:33.166Z", "postProcessHash": "0f2cc2df75c8323cd9e40e0f96eaa3fe7abe675d9e5eff91ea870f3b35ac3d38" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.537Z", + "updatedAt": "2026-02-24T10:49:33.167Z", "postProcessHash": "d4c755417fbf696948e72d6b250083a5a0818a60a7178b637bbe622f29d91083" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.540Z", + "updatedAt": "2026-02-24T10:49:33.171Z", "postProcessHash": "1ffee5760511232cafbca30925f8c8c376748ed931c95305a595108bc4c4c56e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.581Z", + "updatedAt": "2026-02-24T10:49:33.211Z", "postProcessHash": "5436eff02005d4792fcbea0071cf8f7f45a390c3b048d41f2560d4ec9a8d5a8c" } } @@ -52180,19 +53332,19 @@ }, "dfeb533a605a11abe905ef99d177eb137203814276876622c7bbccf105280ec7": { "ru": { - "updatedAt": "2026-02-19T02:24:09.925Z", + "updatedAt": "2026-02-24T10:49:33.544Z", "postProcessHash": "14559c69fa29b6321ce5f1863414b1ef6a1b3d3021572d5fdb4f11cf07fff6b5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.926Z", + "updatedAt": "2026-02-24T10:49:33.545Z", "postProcessHash": "155a816b96cb67e7d51b0480a2f29d0431bd6e2496a0624f1a09140364a80ae7" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.927Z", + "updatedAt": "2026-02-24T10:49:33.545Z", "postProcessHash": "4d328fe4939d3dcad983bc39b11ee454f9f052bb39716530022ea321ab4f3b2f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.976Z", + "updatedAt": "2026-02-24T10:49:33.599Z", "postProcessHash": "a7a35d2ca6e82d896bdd6cc55c8e1e71e2f18876c0e5fd0e4ccb33871a15a63f" } } @@ -52219,19 +53371,19 @@ }, "82debe159b38d56f0f7e43e16823ebbfccd913c0fde77cb1d097d676eb7fedb7": { "zh": { - "updatedAt": "2026-02-19T02:24:11.664Z", + "updatedAt": "2026-02-24T10:49:35.371Z", "postProcessHash": "2779679961e9762ce7eba08fa24ccb16346f4da56324b49de897951348c12bf7" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.664Z", + "updatedAt": "2026-02-24T10:49:35.371Z", "postProcessHash": "713e2413a2174372cff61fb8059e66918187b85ad58dbb30feaf211dcc7ff9e2" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.665Z", + "updatedAt": "2026-02-24T10:49:35.372Z", "postProcessHash": "6f6c5c7a3045f546c56b9fd1d10681fa12e7b89f09f25b151721d014d76e2002" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.783Z", + "updatedAt": "2026-02-24T10:49:35.416Z", "postProcessHash": "28265db7a58814e94dd9882166c8263e3febc95b431bcfedbd17fbf926d10abb" } } @@ -52325,19 +53477,19 @@ }, "d4290e8f409955308a8e6b9c6ec1717e0e3379b4890c7811187a7123170e7910": { "zh": { - "updatedAt": "2026-02-19T02:24:12.361Z", + "updatedAt": "2026-02-24T10:49:36.166Z", "postProcessHash": "2d3f5df768004330f77001b5cb51536fb3227f9c3e7f623dc5123a506d142b88" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.362Z", + "updatedAt": "2026-02-24T10:49:36.167Z", "postProcessHash": "2c5d9b2c2c3501d99015236456c036987fe5be1c2e1fff363b5339b6ae4a7e65" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.363Z", + "updatedAt": "2026-02-24T10:49:36.168Z", "postProcessHash": "f6805d864b4ebee15f398f813b7376ce26a0ba8f5758f126aad55346360bf0ed" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.520Z", + "updatedAt": "2026-02-24T10:49:36.276Z", "postProcessHash": "dcc9c57e24aa989f91c644d5b6af7e8ecc68dec3875f83c57f67347a226ccc57" } } @@ -52434,19 +53586,19 @@ }, "0a0839ecc83c5779b77a672972ff7b8f623ae7b19a764f8e17665e2a939d7adc": { "zh": { - "updatedAt": "2026-02-19T02:24:11.225Z", + "updatedAt": "2026-02-24T10:49:34.936Z", "postProcessHash": "3f61dfca51262ab2b56b4ac457491bd3bec7de38b32ff95d31c384ed649fa466" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.225Z", + "updatedAt": "2026-02-24T10:49:34.937Z", "postProcessHash": "bd9465df75f458f536800a10d088ece51f2082559b7c504e90540552cd0e33aa" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.226Z", + "updatedAt": "2026-02-24T10:49:34.937Z", "postProcessHash": "7c8f44efb8c6ffa374e74e6832e680ca4051a87d3aa803e94ee656031d3877a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.357Z", + "updatedAt": "2026-02-24T10:49:35.013Z", "postProcessHash": "5fbbad870ede270105a00e31c26d975860269daf1cb5f41ca84c663f5355c6c7" } } @@ -52454,19 +53606,19 @@ "466fe68cf77ba8d2f7e6b11a62dcea8f2b8466f8161a1a4fb8352442e971815f": { "0fb852baff9f99f784eb97ea0fe1e81f329d845d7e142f0cf03f1c59b7c10b6e": { "ru": { - "updatedAt": "2026-02-19T02:24:08.868Z", + "updatedAt": "2026-02-24T10:49:32.464Z", "postProcessHash": "e901c95e2c5dcdcef1c8020bbabe9109d14e1e3a5ef3bba4314466a3c3627c0d" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.871Z", + "updatedAt": "2026-02-24T10:49:32.467Z", "postProcessHash": "bd9792152a22223d2373805aac4520bf5390895338d356ccc78ea03d0ddf06f8" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.859Z", + "updatedAt": "2026-02-24T10:49:32.455Z", "postProcessHash": "9bbaeae3f5da43d1e9831f6251d01bc5d200c9e0a396b301cc61e561cb7316da" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.920Z", + "updatedAt": "2026-02-24T10:49:32.525Z", "postProcessHash": "ac4a8b66c2a6f2c49180b8f627ddf6431311f4b7fe0dec9a5af8fa105154bbfb" } }, @@ -52482,19 +53634,19 @@ "16c5698666ea7909d9e1753e9b13a5de1a08200f19d637afa8cab711a0379f73": { "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a": { "zh": { - "updatedAt": "2026-02-19T02:24:08.869Z", + "updatedAt": "2026-02-24T10:49:32.465Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.870Z", + "updatedAt": "2026-02-24T10:49:32.466Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.866Z", + "updatedAt": "2026-02-24T10:49:32.462Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.917Z", + "updatedAt": "2026-02-24T10:49:32.519Z", "postProcessHash": "38ea5377628be1984cefdabbe1181d528ddf34276864ec19a7193979c8dca03a" } } @@ -52502,19 +53654,19 @@ "85911f3bccb6d5539862e976203980d7d51391821089a818a002e7424e1242da": { "d7b1a435f7e4fe293383e5e8731be7cd7008caf825855a2e246a89ce3676aa9a": { "zh": { - "updatedAt": "2026-02-19T02:24:08.795Z", + "updatedAt": "2026-02-24T10:49:32.401Z", "postProcessHash": "9fefbaf99b0f05a5abd3833e4ac49fe0f4d8df2ff532397c0ef859592ca61651" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.800Z", + "updatedAt": "2026-02-24T10:49:32.406Z", "postProcessHash": "4529c697c0d79c764b6bb53ce7ce3d8c5ff23aa56e7ebe74d1b34769dd31638c" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.789Z", + "updatedAt": "2026-02-24T10:49:32.395Z", "postProcessHash": "2e8935b774707a1fc1094bda03142082e4ee9cad3e7528e694913863d61304b0" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.908Z", + "updatedAt": "2026-02-24T10:49:32.507Z", "postProcessHash": "30ab750e1e7a42b678b083f5516367af83e2199def1958d932d7db887b735200" } }, @@ -52530,19 +53682,19 @@ "237a635525e427bffb1c840b646e1b41486b8ccabc7712217a3d66d8c582f1b8": { "727edae2b97b38f4fc6c0b0dd353075d4fe831d345dda64ac9471ceaf897e490": { "zh": { - "updatedAt": "2026-02-19T02:24:08.796Z", + "updatedAt": "2026-02-24T10:49:32.402Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.793Z", + "updatedAt": "2026-02-24T10:49:32.399Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.791Z", + "updatedAt": "2026-02-24T10:49:32.397Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.912Z", + "updatedAt": "2026-02-24T10:49:32.511Z", "postProcessHash": "b1a18bb55dc19c1ae6d59cc1d7b85fd42acff628d3ca1636bfb8236189f4e211" } }, @@ -52561,19 +53713,19 @@ "7f4450440bea714d4def4ce9d273c25160fbc93f8195d945039db1f03871b626": { "98ef39e86680ea8421985ec9e48a11480382a84780d7c51e21ba7c7c08ba5de3": { "zh": { - "updatedAt": "2026-02-19T02:24:08.826Z", + "updatedAt": "2026-02-24T10:49:32.433Z", "postProcessHash": "590b628979a2c37c5789dcee36d99082fe3bb492586053c41ed42bedaea39df2" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.831Z", + "updatedAt": "2026-02-24T10:49:32.437Z", "postProcessHash": "b64dfd8726e9bb28eeeb028388202abcbe25e75b4351f0dc8f201fa8000e3b7a" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.828Z", + "updatedAt": "2026-02-24T10:49:32.435Z", "postProcessHash": "598d348e4b3807c6a6db6ef9cd430fe8aa3332ffc67fb820b7d75de04c7b491a" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.841Z", + "updatedAt": "2026-02-24T10:49:32.448Z", "postProcessHash": "f193dedebb9fbf5f4b2b75da9c0bed97793ee3b8b4a3ab62360c4f70e00f6e37" } }, @@ -52592,19 +53744,19 @@ "96339230d0b0662c9043872f701165e62b1dd1a9ee98448c3678014c12742331": { "f9dcd7d2195374981d74d8864cbac9660f4fe55a672e340bfa424e86bd032bd1": { "zh": { - "updatedAt": "2026-02-19T02:24:08.898Z", + "updatedAt": "2026-02-24T10:49:32.497Z", "postProcessHash": "17fc1ce3e7724e08185d6334367acd1551db3403000c885aee694b8cee1b6ffb" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.787Z", + "updatedAt": "2026-02-24T10:49:32.393Z", "postProcessHash": "17fc1ce3e7724e08185d6334367acd1551db3403000c885aee694b8cee1b6ffb" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.890Z", + "updatedAt": "2026-02-24T10:49:32.486Z", "postProcessHash": "17fc1ce3e7724e08185d6334367acd1551db3403000c885aee694b8cee1b6ffb" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.919Z", + "updatedAt": "2026-02-24T10:49:32.524Z", "postProcessHash": "17fc1ce3e7724e08185d6334367acd1551db3403000c885aee694b8cee1b6ffb" } }, @@ -52620,19 +53772,19 @@ "7b1152a9f1bfab485338afd2d917ac4d27b6ac598d4df8c416b5d34f5f2f2dc6": { "e85d9475b25d51b62300a450688edb90649a6b929805c4c6c7dc02c5c82425fb": { "ru": { - "updatedAt": "2026-02-19T02:24:08.797Z", + "updatedAt": "2026-02-24T10:49:32.403Z", "postProcessHash": "4414fe2db8210cb07462ea37b5f252d3d1a08aea83c8048ed4bdfdf8e502b069" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.776Z", + "updatedAt": "2026-02-24T10:49:32.339Z", "postProcessHash": "b4e662303048f2238e05348d1019b0e0e0b04e9525846ad9f3f7467ca5471d0d" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.820Z", + "updatedAt": "2026-02-24T10:49:32.427Z", "postProcessHash": "a1eab45bcabefaf3193bf256217b0716bcdd3e9659c09f81d14218a16fb060f8" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.853Z", + "updatedAt": "2026-02-24T10:49:32.450Z", "postProcessHash": "c720e4426106666ece2fca9001c8f09f5d4ed3e9fa2ffd2c1b6cafeff08dbb3c" } }, @@ -52648,19 +53800,19 @@ "ff3c9f598e696982267c2ce9a91a552bebc66583c1163dc1c4b27f82c5102f1d": { "128e8ba5fd3b5e0981c42ebd31c5b3e87b6845262805a4f4bff3b70534bfda44": { "ru": { - "updatedAt": "2026-02-19T02:24:08.797Z", + "updatedAt": "2026-02-24T10:49:32.403Z", "postProcessHash": "b5c203bc712828556ba48dcb3c1295b688403ff70a116aa827a33888b98f2f32" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.785Z", + "updatedAt": "2026-02-24T10:49:32.390Z", "postProcessHash": "b73a63e868027380819e9931bcbc4ab04efbea03cacce6de0bf28829431a3079" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.773Z", + "updatedAt": "2026-02-24T10:49:32.335Z", "postProcessHash": "aede207cd5ce2c77e07aaa05b0def28eb8fc4c9a032f7e14fee2a8f389750a35" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.907Z", + "updatedAt": "2026-02-24T10:49:32.507Z", "postProcessHash": "c365d24c00d790f822af8fd4a57b2b1259c2df1b8b79d52abdb8f0e60521e5fd" } }, @@ -52676,19 +53828,19 @@ "0361e95538168e72e0cf9076b4f8a823f82bca2acba30f30499d1d7ab6a5509f": { "d46f5caa45acdc3ea0cac4ee761116eca50f70acb1faa2569b6101636d3704f8": { "zh": { - "updatedAt": "2026-02-19T02:24:08.798Z", + "updatedAt": "2026-02-24T10:49:32.404Z", "postProcessHash": "2ccbda0b20e75282892618cc8177e3b4d9bda4ab3862468df8b8ac39bd70e2d6" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.798Z", + "updatedAt": "2026-02-24T10:49:32.404Z", "postProcessHash": "68d9073855f1b188c4321677b525fbe9ef80dce82b936e57b652cb0d6d45bf09" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.799Z", + "updatedAt": "2026-02-24T10:49:32.405Z", "postProcessHash": "eafb757dabe4bd7cc1962be55ae3e1678dcdbb64600317b4c35bf455c15b1324" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.913Z", + "updatedAt": "2026-02-24T10:49:32.512Z", "postProcessHash": "247984fb756b1493600f02380f1e674929a36dd43fdd52995b095947297396a4" } }, @@ -52704,19 +53856,19 @@ "4914840b74cd4cd05b93446005c1a3f9b45c7e7816eb8b20c953782a78417420": { "66ffb1d1eb8cc149ea48f7ecfeda0ca180b36051bed03928a1992c631dc4c19a": { "zh": { - "updatedAt": "2026-02-19T02:24:08.871Z", + "updatedAt": "2026-02-24T10:49:32.467Z", "postProcessHash": "2387c90b6734fabbf5e34855d9b7087a56a8459199666d9324c3f8ecb8753f8c" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.857Z", + "updatedAt": "2026-02-24T10:49:32.454Z", "postProcessHash": "1c52c9ef7860d09b6b73a3a8820e0bce6d11712ac59bd8cc54f97058957cf9c6" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.866Z", + "updatedAt": "2026-02-24T10:49:32.461Z", "postProcessHash": "b3e1d9f58e7a365d5db1898ba051feea1234b96c0657d2acb95e6bd9676915ab" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.905Z", + "updatedAt": "2026-02-24T10:49:32.503Z", "postProcessHash": "4f8efcf4d84bddce6a1a34cdd9fa3076aca2b06225eb121c35967d86f128952f" } }, @@ -52754,19 +53906,19 @@ }, "cd1147da3cf4a37ad3dd1ed7b9f3056689b6456368fdf18efaf4e4ed2a378378": { "jp": { - "updatedAt": "2026-02-19T02:24:08.832Z", + "updatedAt": "2026-02-24T10:49:32.439Z", "postProcessHash": "f100216dddcd5aa6d5b2a119631e6cd22084bdd495347e2d2db5afc49cf02124" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.833Z", + "updatedAt": "2026-02-24T10:49:32.439Z", "postProcessHash": "26fc2730e62e9731e7310103dcbe9819ef1e3cf46174a70561d9b98181e59a91" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.833Z", + "updatedAt": "2026-02-24T10:49:32.440Z", "postProcessHash": "0c6a84b2ebe4e233933928e7117ce199a5da36a5cdf0c710683707f756dc29b4" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.840Z", + "updatedAt": "2026-02-24T10:49:32.446Z", "postProcessHash": "afb7db7ed1a026b016c88c980fff965e26813d23070614ec343fe145f136b5b2" } } @@ -52774,19 +53926,19 @@ "1eff56196650aabbed5f57974122db842d54e3093cc55755e2f4b980a957f4ac": { "598e57a0788cdc232382a72f993fe05e0d9a2ec8e815e0b23e6780d39b245171": { "zh": { - "updatedAt": "2026-02-19T02:24:08.872Z", + "updatedAt": "2026-02-24T10:49:32.468Z", "postProcessHash": "be0cebcbe5cd1255d8c7a341b2ad06f976c706a682554b87f20da192d8d4590d" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.860Z", + "updatedAt": "2026-02-24T10:49:32.456Z", "postProcessHash": "1f16c4631d07eece40441d22784f5657531099d063c4923d0e62e107d30143ac" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.865Z", + "updatedAt": "2026-02-24T10:49:32.460Z", "postProcessHash": "e32c9dc75099feb695312369aed7ed5074450db7fdf70b7ab76710efb32bb61d" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.916Z", + "updatedAt": "2026-02-24T10:49:32.517Z", "postProcessHash": "3889312a2f94478a6a8f2cb598b7f3ead747435a769aea577a1011c8cc053c9f" } }, @@ -52802,19 +53954,19 @@ "3c95fa2e161d494b4ae0ef9bf3131f3b028f13b824f5b7ede9ad688d11b58387": { "904fe0150e0e8c168afe250519fee5a4c27e23da832c312dcab667da64fa503d": { "zh": { - "updatedAt": "2026-02-19T02:24:08.872Z", + "updatedAt": "2026-02-24T10:49:32.469Z", "postProcessHash": "663fef6d20480babb22d86296b66037222d2a2650250a2874eb7d07cc37b3547" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.858Z", + "updatedAt": "2026-02-24T10:49:32.454Z", "postProcessHash": "296904d83e2f05abd0d201b63756e4993fc070bdb04cab19f7310a5f4982f1f8" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.869Z", + "updatedAt": "2026-02-24T10:49:32.465Z", "postProcessHash": "8b6662bb0a5b5915d6891cb43ce4292b9beaa1a7699942ba7e6c6152abd02dc8" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.902Z", + "updatedAt": "2026-02-24T10:49:32.501Z", "postProcessHash": "d8175a49e14f8067e29f29d6fcaa476991e4e41fa169dcefac3ca45779348a59" } }, @@ -52830,19 +53982,19 @@ "19260fee9e23907e67f7f4589d997bab22cbabd4ffa0aa96806703a3b19aad78": { "1352a2dbb90191a61432180810a0431b454c526d658886e1c33fdb1c71cfc2bc": { "zh": { - "updatedAt": "2026-02-19T02:24:08.857Z", + "updatedAt": "2026-02-24T10:49:32.453Z", "postProcessHash": "f38b9d1075f8b223eb2b75d3680381b7dbb950614f1950299b8b6e4d0a635509" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.862Z", + "updatedAt": "2026-02-24T10:49:32.457Z", "postProcessHash": "f04ba0b004789cad71088cfc69563107ad22eb199049049576e8faea5794bf12" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.895Z", + "updatedAt": "2026-02-24T10:49:32.495Z", "postProcessHash": "15bcdb3bf6c451abdaa477560a436370d269c36d50c234df17e93b3c19834f65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.915Z", + "updatedAt": "2026-02-24T10:49:32.515Z", "postProcessHash": "dca812f7cd024c450c6f63b4b73806b288a06fb95ba70e9acf9776699f625f02" } }, @@ -52858,19 +54010,19 @@ "c71190c424029f1f3166b0dc0c975e43b747cc77aaa7477e6c8834baafd715ec": { "40fb6fb53bc03ff95d4c2a5b88f33db598b6bbba4a8c8273a31dff8b7c9a3fcd": { "zh": { - "updatedAt": "2026-02-19T02:24:08.774Z", + "updatedAt": "2026-02-24T10:49:32.338Z", "postProcessHash": "05e82ce73958e29dd50beb65180a9ece7ed4537018031676393d39297799eccb" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.790Z", + "updatedAt": "2026-02-24T10:49:32.396Z", "postProcessHash": "765ba7efc6db01e9e2e7970843b1e3e40b7d54a15f751836640f483299a19659" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.788Z", + "updatedAt": "2026-02-24T10:49:32.394Z", "postProcessHash": "54be6d29af47684e74d868f4b06c2de53bcb843f4152ac7556e0c16fc88d749a" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.854Z", + "updatedAt": "2026-02-24T10:49:32.450Z", "postProcessHash": "3b198a20a8bf42d6d2e36882f9115e75eb75197da43dea990263117e3592d7f4" } }, @@ -52886,19 +54038,19 @@ "3490c72ebec2d9960e4cc311de931030fc0f1de3f2421d0d2a30876926a983e9": { "20143fdffbf6f144ae3f0a848c2c4135b1dd5359078f18a35f86e5ad0368f0bc": { "ru": { - "updatedAt": "2026-02-19T02:24:08.780Z", + "updatedAt": "2026-02-24T10:49:32.349Z", "postProcessHash": "8d2c0b4cd48fc761056c246a8ea6118e8639cc8a6bcb2dca8b72f378e85828bf" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.824Z", + "updatedAt": "2026-02-24T10:49:32.430Z", "postProcessHash": "974ab4dc986c8d872da74e83c3ac53f107d914da08bbb16d9e2306e4172e6552" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.822Z", + "updatedAt": "2026-02-24T10:49:32.429Z", "postProcessHash": "c4b4afd5c5f3c3a6f647f6d0b33e8d8a56fb8c696e620af1643aa8e691788d74" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.854Z", + "updatedAt": "2026-02-24T10:49:32.451Z", "postProcessHash": "94d85f46759519e62a48f7becf4c6d08b214a1082ec2afba95ba40e5b7138f75" } }, @@ -52938,19 +54090,19 @@ "d133c163191364466953c00a3494895f7b213291fa7eec0a3286c15ab6588c48": { "5b79efc25b16535ce983e05832f4052257d44d2790af29323a727be1048bc054": { "ru": { - "updatedAt": "2026-02-19T02:24:08.781Z", + "updatedAt": "2026-02-24T10:49:32.356Z", "postProcessHash": "1c12f6285ada04ba5ce9852d4510890ef1abfe836ea02241cb3472a9e193134d" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.780Z", + "updatedAt": "2026-02-24T10:49:32.344Z", "postProcessHash": "2f88f590e47a334ba53e7612814df55c0ca781134f1b39947c9765d9f617cd8b" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.778Z", + "updatedAt": "2026-02-24T10:49:32.342Z", "postProcessHash": "179118fead23799b810921a3e169f3bea8d6683c40c860a67c860b97a38b3b54" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.906Z", + "updatedAt": "2026-02-24T10:49:32.505Z", "postProcessHash": "567041cdeb573c8c41f7363fdcf66281119fea11039c4df0ac11bdacffb483f8" } }, @@ -52966,19 +54118,19 @@ "5ae13595aec14e94efae48ed27bd30882ef99ca22e926c6eecac01f4a69b6e60": { "4c6c9c998098906955cd0a416322eaf10b8ceb9a33df69bb90b4e0206e58399d": { "ru": { - "updatedAt": "2026-02-19T02:24:08.782Z", + "updatedAt": "2026-02-24T10:49:32.357Z", "postProcessHash": "27f13aeae52c3dc62c6252635a14cba0cac287383d02c3a120e996c8bc7686b9" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.786Z", + "updatedAt": "2026-02-24T10:49:32.392Z", "postProcessHash": "cd820213649111b9fd18e6d5f6cea7d77480d850b6de05d0490067ddd4c4da11" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.896Z", + "updatedAt": "2026-02-24T10:49:32.496Z", "postProcessHash": "51fbbd3b28f932fda1e7d4d7be79baf554accf18776407c3d42d332ac6801aac" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.918Z", + "updatedAt": "2026-02-24T10:49:32.523Z", "postProcessHash": "a11e8948f089887ffe84627a4b664fd8b27fccdfff819b4f98d58178d7e65aed" } }, @@ -52994,19 +54146,19 @@ "52f1e721b650aa5a8bb67053afa7caf447a7332e92f416526d36e8941d726d04": { "8c41257fcdc2d116e76c9a1609bc65adf58513acff260b8f2aa36d74bccf31da": { "zh": { - "updatedAt": "2026-02-19T02:24:08.859Z", + "updatedAt": "2026-02-24T10:49:32.455Z", "postProcessHash": "1a12985b2c0c45265adae539a838783a44c5459e59d6c21bdd2082c895da0dac" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.863Z", + "updatedAt": "2026-02-24T10:49:32.459Z", "postProcessHash": "151cbae00371ceb2d35a1cbe4e72574f29a404610e14e100979794aceec5571e" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.864Z", + "updatedAt": "2026-02-24T10:49:32.459Z", "postProcessHash": "1a12985b2c0c45265adae539a838783a44c5459e59d6c21bdd2082c895da0dac" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.919Z", + "updatedAt": "2026-02-24T10:49:32.524Z", "postProcessHash": "cb5abc7684f8d5984ba251c9e72b565d3f8da1a7400b0cfe5d7288cbeb9e06ca" } }, @@ -53022,19 +54174,19 @@ "5a0ce1710868a408e43b0c9859a80ada3b08b93b0d26cb45f2ea004556e9d2b3": { "ccdecf590d1994e9c17ae91e353b32d2f66c08e379ce1eeb73f06a674afd8375": { "ru": { - "updatedAt": "2026-02-19T02:24:08.893Z", + "updatedAt": "2026-02-24T10:49:32.493Z", "postProcessHash": "f6556e33a7a453d18a0af0e707e23c87b926a1ed049f3aa11215b62fd2069a41" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.784Z", + "updatedAt": "2026-02-24T10:49:32.388Z", "postProcessHash": "0a3e2abe4e0e9d846610b29afd0f5fed41ca159defb28263e074a93455bcfaa4" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.783Z", + "updatedAt": "2026-02-24T10:49:32.387Z", "postProcessHash": "a170bbbb8064310b58dc0839530ace273a07c95774c833ba15bafd472b64b026" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.914Z", + "updatedAt": "2026-02-24T10:49:32.515Z", "postProcessHash": "05c547702cf3ec010ebb8f726c709abe97fac9fce6497536ccf5b681788f7cee" } }, @@ -53050,19 +54202,19 @@ "9b3e13e23b506d9d9ec9b2c5fbf8b9d2a62e1de7d0175c5f6330498124203aac": { "86c47ff8f3b3666e1a6b49b2c8302b448389e1e3b41ab3b1450e055082821549": { "ru": { - "updatedAt": "2026-02-19T02:24:08.777Z", + "updatedAt": "2026-02-24T10:49:32.341Z", "postProcessHash": "c0defa7229fee6b27c2a2a3244e13cc4c0ed6f0f4c6f6605a86a70bf36b99648" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.779Z", + "updatedAt": "2026-02-24T10:49:32.343Z", "postProcessHash": "db3ecfe3ab74b3b08afd5d88ea9eba0ec7159b04ced1a9081a7c5db8247b046c" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.796Z", + "updatedAt": "2026-02-24T10:49:32.402Z", "postProcessHash": "96a408123b4168c543a77c179b015d8f620e6307650d53bdf90c2f19ec9ab2a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.852Z", + "updatedAt": "2026-02-24T10:49:32.449Z", "postProcessHash": "c0693ee749502e3e842cdce5b283f1978123a6d1aebdc4962037af92c2cd3f4b" } }, @@ -53078,19 +54230,19 @@ "30f843a3827d19f26bae893b6a89699d15924309d3ee0d771f1309eb391c8171": { "a5eb46f97ff75367e3c2a77e86b555adee47157db34a73cbb68c4faa8e14d033": { "ru": { - "updatedAt": "2026-02-19T02:24:08.785Z", + "updatedAt": "2026-02-24T10:49:32.390Z", "postProcessHash": "da0c38fbfabd7c396006ed747fbe0f6aa5c0dfd8e816c461ffaab1707e3a8e7b" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.792Z", + "updatedAt": "2026-02-24T10:49:32.398Z", "postProcessHash": "655ba8e4e20f3b5f89cae3033f51649118b5face2393e69b8ed2d63f7c170bed" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.794Z", + "updatedAt": "2026-02-24T10:49:32.400Z", "postProcessHash": "89278bc5a6e84647177b28cdc478fb16c00eb59607b5d452a4714361a554537e" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.905Z", + "updatedAt": "2026-02-24T10:49:32.504Z", "postProcessHash": "1b248c25cbcea4268d9a361e9173ec903f55e76b73076d001cb93176dcf28c3a" } }, @@ -53106,19 +54258,19 @@ "15cacb127be1afdc884be3ff13c61ff48d4ae41e28740309f5f445002fb0fa90": { "a9c8fa4f53951ce4026e170171a0517a80777e9037e5bb2f16eab83d3ffaa9cc": { "zh": { - "updatedAt": "2026-02-19T02:24:08.788Z", + "updatedAt": "2026-02-24T10:49:32.393Z", "postProcessHash": "b4e662303048f2238e05348d1019b0e0e0b04e9525846ad9f3f7467ca5471d0d" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.793Z", + "updatedAt": "2026-02-24T10:49:32.399Z", "postProcessHash": "c6b1ffeb8a927241e2108dbeb02a8cbb166d5b270f1e7cdf770147d6ef83a7d2" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.831Z", + "updatedAt": "2026-02-24T10:49:32.437Z", "postProcessHash": "90e0189e896284170a8a1b18bd7f32b66fd4dbd74cc16af1aec13a8f0abd3dba" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.838Z", + "updatedAt": "2026-02-24T10:49:32.445Z", "postProcessHash": "fa167100c0b24dafe0116ee9c7efb76249fd744596bb2bdea75e01ccceb33950" } }, @@ -53158,19 +54310,19 @@ "43aa5066af84a8c935f0fb2dab57ea37c855c50a8c4bf2fe5da1196726ec9767": { "8102f53c258449f037fd5c8bfbe1d4547d061cf4c8af817be8f9e6c45a4504b0": { "ru": { - "updatedAt": "2026-02-19T02:24:08.861Z", + "updatedAt": "2026-02-24T10:49:32.457Z", "postProcessHash": "5a57338364aa8f4e5bb841b8c88171cb082cb610e2ac8b7f4f593a122fe38464" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.864Z", + "updatedAt": "2026-02-24T10:49:32.459Z", "postProcessHash": "033031494d99fd28c7adc85788b6700a631c3ca9ccc12a0a710475ff93b345a4" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.860Z", + "updatedAt": "2026-02-24T10:49:32.456Z", "postProcessHash": "9b908b170277744d493dd84ce9726be28f6aa710423ae3ff5bfbf5d2b3d8e5ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.901Z", + "updatedAt": "2026-02-24T10:49:32.501Z", "postProcessHash": "e2b1c01459ae1011e08611dafb5d6f2bb09f5675e244c83c61f0bca5cd0d5220" } }, @@ -53186,19 +54338,19 @@ "a3a2fbdc5aafe02b0407589bc3e1a8e94202c17584b7025219f1bfd6b9bf4a39": { "4874e6e4325e8473fce83ceca9411bf266bf400e8eb78d3c9e8eec128469d820": { "zh": { - "updatedAt": "2026-02-19T02:24:08.863Z", + "updatedAt": "2026-02-24T10:49:32.458Z", "postProcessHash": "cc5449692198cee8a80360e532b9367d598e3808991e490b4809cc535ba97150" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.867Z", + "updatedAt": "2026-02-24T10:49:32.463Z", "postProcessHash": "1b128db269c12be2125d03f195c663118806c04caea0bed54648c79f2879ccee" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.868Z", + "updatedAt": "2026-02-24T10:49:32.463Z", "postProcessHash": "f64c89c7211eab86773db5c47634e20c644ba83343125a946f7af4ad75ff63c9" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.913Z", + "updatedAt": "2026-02-24T10:49:32.513Z", "postProcessHash": "4779209abcad167ea281ab934f15dc78be29ba6d66775a9d1f73e303d87fd84d" } }, @@ -53214,19 +54366,19 @@ "4877e91053b08c2c45734e5085ccf9117e8354554dd8460e2ec3e3afe7aa0ab7": { "1e4f5fb2eb3f3d09c80229402157ba0cccbf2f37d7521185e9cbb71109edeb84": { "ru": { - "updatedAt": "2026-02-19T02:24:08.818Z", + "updatedAt": "2026-02-24T10:49:32.425Z", "postProcessHash": "c609cc976e4b2f5c379bc5f8787734b42b42dc6281d928384dcc472eaec6813b" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.817Z", + "updatedAt": "2026-02-24T10:49:32.424Z", "postProcessHash": "0e039457a34dd7dd456018afd3fb6be1c008f0c935d809fcb1f602328e8a1e03" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.820Z", + "updatedAt": "2026-02-24T10:49:32.427Z", "postProcessHash": "90ff135d4c9af41b4ef19dc3f68ed88dbc9d1c144adca954dd6fefcf78243a3f" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.834Z", + "updatedAt": "2026-02-24T10:49:32.441Z", "postProcessHash": "367de36663d4d5dd9faa20bf9a9bfd1f3d55f489822320730a7c03fa75841c0b" } }, @@ -53242,19 +54394,19 @@ "a444951bd73cb75b037df1739eb17fc3c4057630058e2cd15b863d55feb1e497": { "be2b70c111bb68681c2eb58d9d87da824e86dac80806aaf1af31eb7e683ee46c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.187Z", + "updatedAt": "2026-02-24T10:49:32.785Z", "postProcessHash": "a69a8cb01764a876458f03b69a78516212b48aaa83276822a31cbe95a9280447" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.210Z", + "updatedAt": "2026-02-24T10:49:32.795Z", "postProcessHash": "f5b00425366d9e5f9f1d74bd931c71c3afdeb85f0fe83d98f4796346c102a5c4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.216Z", + "updatedAt": "2026-02-24T10:49:32.800Z", "postProcessHash": "41a6112aac463dfc4595f0588fc535754fdabd82c8456928dba0310427926364" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.312Z", + "updatedAt": "2026-02-24T10:49:32.912Z", "postProcessHash": "305c93b4d3b1116c6c0acfcbe8d7e431ee8d4f1430522fbbb501c0cf4866d29c" } } @@ -53262,19 +54414,19 @@ "b61feee503868b9ae36d297816fda3d2e834c0f1ae6f4deeefcdd9b66b895886": { "4ef342336cc701c4e8d32cd01c1302bec119023fab8a7c695a4baae3e097696f": { "zh": { - "updatedAt": "2026-02-19T02:24:08.893Z", + "updatedAt": "2026-02-24T10:49:32.494Z", "postProcessHash": "897d22cdc95fedfb5bc831477c535f31271b80876df77597db415be5838b4fe8" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.880Z", + "updatedAt": "2026-02-24T10:49:32.477Z", "postProcessHash": "c9d5c6c4fce7fe663572a9eb480ec12949e97eea603433c109f222cd42661959" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.881Z", + "updatedAt": "2026-02-24T10:49:32.478Z", "postProcessHash": "bd5bbeaad62d6e4229654b54bce7fb7f79bb7acc0a4df7c38d5a8e1e36fae921" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.914Z", + "updatedAt": "2026-02-24T10:49:32.514Z", "postProcessHash": "6857c507cbb31aefd45044154557f0c5e54ab58dcb7cef34eacc06b6c2d16381" } } @@ -53282,19 +54434,19 @@ "b2e9e9045947db36c00975d8bf16f27ba366df3f4c68a977779fbf5a78b77948": { "046cb0e8076cf8c0b6c68469e0acc454e928a24cf0dfeb0b83292ecb2957f821": { "zh": { - "updatedAt": "2026-02-19T02:24:09.263Z", + "updatedAt": "2026-02-24T10:49:32.845Z", "postProcessHash": "69f8c78a9dd7192f9cf0a1c5436633d814683918858fa04bb2f446ea9d679f7a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.276Z", + "updatedAt": "2026-02-24T10:49:32.860Z", "postProcessHash": "4b6701c830b320543ff22211f68de3dcb9496b2ae82fd87a53da2108a258f77f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.273Z", + "updatedAt": "2026-02-24T10:49:32.856Z", "postProcessHash": "50a15c131b000a30b244c4f99accb805712b621a48522d7106ef8d095399bfed" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.313Z", + "updatedAt": "2026-02-24T10:49:32.913Z", "postProcessHash": "d6f27b117a205590962e16be40a880fb91abc67d5a2ba61f69e051347b4f84b3" } } @@ -53302,19 +54454,19 @@ "a8580441e057aef43ff213b00764e321caa0062300adad449c1147c6a00554d7": { "803165c43e8eb2cc396419bba2e85a710e5a34fa1c1f8c024a4ef0cd296866fa": { "ru": { - "updatedAt": "2026-02-19T02:24:09.293Z", + "updatedAt": "2026-02-24T10:49:32.883Z", "postProcessHash": "f31c14c692c2d439870e2c7150c30d1c0a074c5b4fb93ca45f9bae4a87c3d2b9" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.281Z", + "updatedAt": "2026-02-24T10:49:32.865Z", "postProcessHash": "30f3a8d9094d10e45dcb119b0a61e90ea813d4635d0115fd60c9791d38e94584" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.265Z", + "updatedAt": "2026-02-24T10:49:32.847Z", "postProcessHash": "ffb811afaa4dfdf9543f7657d891b8b239a93d69a0e4e11bc9e7e696d0cc60c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.354Z", + "updatedAt": "2026-02-24T10:49:32.956Z", "postProcessHash": "7d8093b5b746ff3044532ce72084d41495500f8c6c89749a0341c6fe8a0196b1" } } @@ -53322,19 +54474,19 @@ "581f0a6e4c0d192c8606c68934251365ad7ea4136bd5acf7058f58a76f6d5710": { "ee59cd484bdaa73a60bc061cc701d580ffd417f73fdcd689e3fdd983d9f475d2": { "zh": { - "updatedAt": "2026-02-19T02:24:09.315Z", + "updatedAt": "2026-02-24T10:49:32.915Z", "postProcessHash": "50c626934c76a76e2e75fa9d7c049c0df13b0b5725e77db2d25a13168fd3603f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.315Z", + "updatedAt": "2026-02-24T10:49:32.916Z", "postProcessHash": "8107a19e4db88645849555abe6df6ec8e3ef104ac58f8840dbb8a407706a8628" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.322Z", + "updatedAt": "2026-02-24T10:49:32.925Z", "postProcessHash": "bfe276699542536286e67e0c4110add1d5cecdca9ff9eb4090bb3dbde9e278c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.371Z", + "updatedAt": "2026-02-24T10:49:32.991Z", "postProcessHash": "b6e0781d86cdcb1b3509da09fcf05178ca8987be7b850f7e1a01693405c0e43e" } } @@ -53342,19 +54494,19 @@ "8d435bf9e6c99e8e1a52f439de6bcbecd2baf3265ece4535053d1e1416ca45c2": { "0c0d01e2f586c0d713dccf1bdfde13a36570342ea30a52d1914566a1af56d594": { "ru": { - "updatedAt": "2026-02-19T02:24:09.330Z", + "updatedAt": "2026-02-24T10:49:32.932Z", "postProcessHash": "b5fdf0954a5691554dd1c793a5b4d719fcc7984c40ee13ec4f67410eab88c006" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.292Z", + "updatedAt": "2026-02-24T10:49:32.882Z", "postProcessHash": "43b5ba9d9e7e98e549020b79dde6974e9828c53be7d59b16e36f99c5594da813" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.277Z", + "updatedAt": "2026-02-24T10:49:32.861Z", "postProcessHash": "127f17089634bba7ad88f57be5d5a89bbe812d477de0e1f40a59c9dbcd2b000c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.368Z", + "updatedAt": "2026-02-24T10:49:32.989Z", "postProcessHash": "d9421fcef5d77713ef89dc6c45931a775c83d08ac275867ae0ebba11c7373531" } } @@ -53362,19 +54514,19 @@ "ff15f334dd81c6f832484d8628568a040ff836d4668005abe916911afbffe911": { "5255a26915e56655751575c9c47141ed725215520f648de9ddb2650d95ec7c9d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.190Z", + "updatedAt": "2026-02-24T10:49:32.785Z", "postProcessHash": "c60574c31a4505724187b7b5cad83eee803524309299521a30db0ebf8bd17aec" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.208Z", + "updatedAt": "2026-02-24T10:49:32.793Z", "postProcessHash": "3d6724177214f5e12e01de50929a105a2af94385a9af23c66014280f323017dc" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.209Z", + "updatedAt": "2026-02-24T10:49:32.794Z", "postProcessHash": "ae0eaf09bfb68236c84975e8362f394e74b2ded55ef62b036fe243b01ff40435" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.249Z", + "updatedAt": "2026-02-24T10:49:32.831Z", "postProcessHash": "453e07a49d810d354eccf9c9aebdc6dd9ea8fe25b0846c8198f35f961e69ed8f" } } @@ -53382,19 +54534,19 @@ "84d3a07f6bb23015f78e31d1cc93e61eaf670a2dcee7c14342d97b32fb037866": { "e5b0ff50a5b4e2b593b51ad0606dd79a8525ea9ba7bc58e22bd24ad8c5a925cc": { "ru": { - "updatedAt": "2026-02-19T02:24:09.264Z", + "updatedAt": "2026-02-24T10:49:32.846Z", "postProcessHash": "07b6f56c0b906579b68fd0fd1a209a9c7877cf56147e377a2f16765f515d1293" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.299Z", + "updatedAt": "2026-02-24T10:49:32.892Z", "postProcessHash": "579f32273f08ca6cc55b0d613a1c72d20317a18e17b2e7511a0e12b1ac2e0566" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.266Z", + "updatedAt": "2026-02-24T10:49:32.848Z", "postProcessHash": "aba8a8a188565b506f8100d134b363a24314ce75b612fd5ae33b8c2954d405e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.305Z", + "updatedAt": "2026-02-24T10:49:32.901Z", "postProcessHash": "ac05a201d7ba11e02c2693c8caba45ff1c1b3c569091ff3f9175746c6a428367" } } @@ -53402,19 +54554,19 @@ "54d5d67f63f4e8a40581478b2c6f0684322d03116d22c84c5ebed5934c483f47": { "04a1c4adbd60bd15811afb47b49c06837b0eb88b3c5f243bc17465571d25d192": { "ru": { - "updatedAt": "2026-02-19T02:24:09.265Z", + "updatedAt": "2026-02-24T10:49:32.847Z", "postProcessHash": "d218f953c26c5b85acae57c8b792f848e540d95a54ec75ebaeccaf5c959f27bb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.289Z", + "updatedAt": "2026-02-24T10:49:32.878Z", "postProcessHash": "3f3f40675eb3d2cdfdef0eabec565749eb3a9cf8823f2d4bad4b97b0f020b6fb" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.271Z", + "updatedAt": "2026-02-24T10:49:32.854Z", "postProcessHash": "d6074fa42ba9268850aec20b31c2c5758215e6a3735326d3cb91c337fc550304" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.356Z", + "updatedAt": "2026-02-24T10:49:32.957Z", "postProcessHash": "f66061bcd423e571f018b97042805a612ef3a55ea601a4f16b89526019fc2ab2" } } @@ -53433,19 +54585,19 @@ }, "44a2121418c10665853a536dedd7553eb6cfcbb6bb546a6e81e42e329c80cc55": { "zh": { - "updatedAt": "2026-02-19T02:24:09.290Z", + "updatedAt": "2026-02-24T10:49:32.879Z", "postProcessHash": "d6bda9e56bd388821fca08d697b62460ee2da3f7144750f7341c3da0ba109704" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.295Z", + "updatedAt": "2026-02-24T10:49:32.885Z", "postProcessHash": "e967ecd99a86a93a95b860e26598f57e5b23e313b0c5b3ddc1ea558ff60c3d8a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.294Z", + "updatedAt": "2026-02-24T10:49:32.884Z", "postProcessHash": "188be55915c40ada4125cd538e4ed34362e6f099e6d2ec846e272b53ab64805c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.306Z", + "updatedAt": "2026-02-24T10:49:32.902Z", "postProcessHash": "8aebdbe4066d995fdb3e7d98254936c8839ee0f53d37f99d5d92a02b02394180" } } @@ -53453,19 +54605,19 @@ "e9c8787fbd5d3ab34de4fbc2069baaf46f6986970cc7b8edaffc49a991d61cf1": { "7b366931a91740ebcbb465a17f5142106ecae677c271c9b69d08fa475ef502a6": { "ru": { - "updatedAt": "2026-02-19T02:24:09.297Z", + "updatedAt": "2026-02-24T10:49:32.888Z", "postProcessHash": "4ead8ffe4624b732fbe4dede640fc270488bd4812504ee0cd5dc64edd8f8d184" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.278Z", + "updatedAt": "2026-02-24T10:49:32.862Z", "postProcessHash": "60d29a44e24697d707c709e7df3c3f9a75047a9f9278eb33ed079c76cc363d51" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.295Z", + "updatedAt": "2026-02-24T10:49:32.885Z", "postProcessHash": "978677d1584966a27761d4f01adcb26eb6b587cf52f014de9038a11c40d5591f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.312Z", + "updatedAt": "2026-02-24T10:49:32.911Z", "postProcessHash": "14a9528285ea97d1972f1cd1b3479b6ce6aa2446027fe83f6bc8640f7d431925" } } @@ -53487,19 +54639,19 @@ }, "1e1a96c2105369104af7752b2bd7aa55c252bfb31abfc65fff72b4c7a098e2a6": { "ru": { - "updatedAt": "2026-02-19T02:24:09.343Z", + "updatedAt": "2026-02-24T10:49:32.946Z", "postProcessHash": "53d18fe22068d335e6b7a7ca5dc3432f64798661c67af2d993b14165240547da" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.344Z", + "updatedAt": "2026-02-24T10:49:32.947Z", "postProcessHash": "18e7473bfe9f6629d3410ce189da51d53f53e068e862d51b64b46e343c510caf" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.344Z", + "updatedAt": "2026-02-24T10:49:32.947Z", "postProcessHash": "ffa5683db6569719d378ac1ea4608944edd7cad4b5dbf10f4a4d765501afffb8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.357Z", + "updatedAt": "2026-02-24T10:49:32.959Z", "postProcessHash": "f9c1dfaf91fb73267d10cc07362884e8f54dce0020ac87a414b42d67f599de4e" } } @@ -53507,19 +54659,19 @@ "dd1f243e110cd8cd4c72fabd62923f7077ed63859ba2c578b1561943fa5490a9": { "38b8464001ddae6ec2a702908a9a44c1549405c54b818345c5ee01e6079833f1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.316Z", + "updatedAt": "2026-02-24T10:49:32.916Z", "postProcessHash": "dfd988f9bd931d0f62129fc532f917b6063872e9db7ad418f6fd10456b767cd8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.319Z", + "updatedAt": "2026-02-24T10:49:32.922Z", "postProcessHash": "1b51e44d2d6b2b3b520e9f9cab02bed1e37e7741d083185ba87232f90841282a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.319Z", + "updatedAt": "2026-02-24T10:49:32.919Z", "postProcessHash": "da1985256a75ae72157e2fc4ca3bf9b061c57e073b251534027a7bb848495691" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.362Z", + "updatedAt": "2026-02-24T10:49:32.964Z", "postProcessHash": "5918df9cebed786855337f41edc2ba7f3660b192ae392a25c0738a018b6b2c00" } } @@ -53527,19 +54679,19 @@ "ba14369199fbec0937cc2e6400083d328a65fa21e4191586d4474ff60d50b27a": { "687b275c30319ae8712f2bb22a713be7698df9bf60e3f0a3a92687b0ad5813e5": { "zh": { - "updatedAt": "2026-02-19T02:24:09.060Z", + "updatedAt": "2026-02-24T10:49:32.671Z", "postProcessHash": "c8d9954849548a3263e9b0eb80061e7d4693c67e20195e446dda88803a55f4d5" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.066Z", + "updatedAt": "2026-02-24T10:49:32.675Z", "postProcessHash": "87108a83b9186570711f4b9d3511971bfd4b6e9db4b994af38c60d7df0ef54b9" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.075Z", + "updatedAt": "2026-02-24T10:49:32.684Z", "postProcessHash": "191d52b5d09ba978ab40b360d705b79e405e9e922b3819b2880923ebeeb1a806" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.177Z", + "updatedAt": "2026-02-24T10:49:32.774Z", "postProcessHash": "e06debcfb577df22cee3c5f3d4bcbcd3d336e518f342085722b64954d9f757ab" } } @@ -53561,19 +54713,19 @@ }, "fab3e9030eaa388b5e956563dbce783f8f80cac027c3fe9357c7981282096f7d": { "ru": { - "updatedAt": "2026-02-19T02:24:09.334Z", + "updatedAt": "2026-02-24T10:49:32.937Z", "postProcessHash": "7bfd5de2fce9d6c835e8f6404422173cc4e4bc3523dab8cc47b92040fb389e3f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.335Z", + "updatedAt": "2026-02-24T10:49:32.937Z", "postProcessHash": "d53fecf2ba5bc5e130f6178aacfb7627e6e27dfbddac70d3f543fdbdd6bc80f1" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.335Z", + "updatedAt": "2026-02-24T10:49:32.938Z", "postProcessHash": "451ab3ff4d5508242f224a239e289651b3c3a9ec4d44c9ae41b918784aab59d2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.354Z", + "updatedAt": "2026-02-24T10:49:32.955Z", "postProcessHash": "8d2871ec557eaf58b1ec4b51731389bc6f60ff5f484d23dc74573a82dfdb885e" } } @@ -53581,19 +54733,19 @@ "6b0a1864f6fd70f19415c4e085caeeff45b83244daed33758454b88d9859c692": { "ecc79a94c617ae9c2438b3b427bea3004cc3f1e8a3f90157b36f8157166a99c0": { "ru": { - "updatedAt": "2026-02-19T02:24:08.825Z", + "updatedAt": "2026-02-24T10:49:32.431Z", "postProcessHash": "7328e13acaae794a00686895198fe25cfe5eb067f892c749f14f3899019cbe8f" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.828Z", + "updatedAt": "2026-02-24T10:49:32.434Z", "postProcessHash": "2cbfcd6a3a217c2df469624b3c932378563e2bf11ca3e6192c22d8bdad69eb17" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.801Z", + "updatedAt": "2026-02-24T10:49:32.408Z", "postProcessHash": "20ac962900278d7250a14840b46f7a6f78c621198b99eefcd20b0ae8203dea65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.839Z", + "updatedAt": "2026-02-24T10:49:32.446Z", "postProcessHash": "e9a8c325de7c0f2c3e758cfc0560b5d1ffd5d3fd5351e0fa74a50166cc3812df" } } @@ -53601,19 +54753,19 @@ "543d200284e9587853538717503646bf5a945bb43ccdb3b059dbf4eac4c1219f": { "54eb6cb69d7901f33c8b60f1ebf53444695ba214c41ecd088af34c6dde0d4e44": { "ru": { - "updatedAt": "2026-02-19T02:24:09.317Z", + "updatedAt": "2026-02-24T10:49:32.917Z", "postProcessHash": "09a774cec364865b453196c440ec674f37c8819f6e6e3299646b87a9b8cccd1d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.323Z", + "updatedAt": "2026-02-24T10:49:32.926Z", "postProcessHash": "18300940bd3fbe0bce544b3433d34f143c978387e6c622e4704209dd63c3202e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.332Z", + "updatedAt": "2026-02-24T10:49:32.933Z", "postProcessHash": "d5784285e90f51c5e6d51300f6404fd3b1d4add13a1906de20009df03ec7a23c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.369Z", + "updatedAt": "2026-02-24T10:49:32.989Z", "postProcessHash": "1138d6dc04aa3cb339ee445e4926f839cca5fbb40b0777fcae2a574849557bb9" } } @@ -53621,19 +54773,19 @@ "fb3d54543e5565bc4305346ef7c2d5312674405acb6e193ffaf4fb30ddd7ce71": { "df9135ddc19fc1bbbb29d708bd2c3afbd621e4a67a544ede4538a80aa5b420b7": { "zh": { - "updatedAt": "2026-02-19T02:24:09.267Z", + "updatedAt": "2026-02-24T10:49:32.849Z", "postProcessHash": "d4e168bc9ba3c7299b663a8c967d8f663174e0d8101eb437e3f876f5f56a82aa" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.333Z", + "updatedAt": "2026-02-24T10:49:32.935Z", "postProcessHash": "dc9dec5325ec3b560c03ebb60dfcb69614acd3f1defde76e30af6e73dffe845a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.264Z", + "updatedAt": "2026-02-24T10:49:32.846Z", "postProcessHash": "0428993b2a0635368d8d3708970e2d2625a646297617317fedf5f74acf530001" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.362Z", + "updatedAt": "2026-02-24T10:49:32.964Z", "postProcessHash": "b6b8a3a9ce2042f4e3201692a8ac37a5fc7568b034b1c3ab24ad422a6f8335a8" } } @@ -53641,19 +54793,19 @@ "14b4676b953c664afb277f933e119c8da2f742590c1a9a4bb7b2beee22a7eb7c": { "5ee021b8f49ccf1b18d5dd6f94a9b7418709365c4195a6b0854ae20f5132dd10": { "ru": { - "updatedAt": "2026-02-19T02:24:09.191Z", + "updatedAt": "2026-02-24T10:49:32.787Z", "postProcessHash": "f7d3aea7e4adb0a83741c09f20eeb272ed66eb3ab09bf033773ae75e9dca8d83" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.197Z", + "updatedAt": "2026-02-24T10:49:32.790Z", "postProcessHash": "322b9afc639a9106704da961eae5e243afcd2081ba6a9cf78c6a96da5e9a152e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.243Z", + "updatedAt": "2026-02-24T10:49:32.825Z", "postProcessHash": "f3d9410444da9ef0d3eac52ca588ad510152ca37a30a3077dabd32c7e3dac7a0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.251Z", + "updatedAt": "2026-02-24T10:49:32.832Z", "postProcessHash": "c45eb04f562b43464c812367d77c32eb891c916075821c2f38ddd7dc389a4083" } } @@ -53661,19 +54813,19 @@ "0f67bde502826e1dba901c267e553e40b45a88ea2514fac35224b3011c9eee95": { "40ccc189c309d81655c42b58d6550569ed8e72b0cd53cc36991d1ab17eeb62a2": { "ru": { - "updatedAt": "2026-02-19T02:24:09.192Z", + "updatedAt": "2026-02-24T10:49:32.787Z", "postProcessHash": "333599dc00bf0ed5eaa17824b51287ee845207e8952815a17db448d63e9e7e4c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.218Z", + "updatedAt": "2026-02-24T10:49:32.801Z", "postProcessHash": "8933570660f6547d74908b107d4fd178e63f1c1b44ce64193cddefecafc5ba04" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.207Z", + "updatedAt": "2026-02-24T10:49:32.793Z", "postProcessHash": "ffeb0d89b04c883c01c798c5c901a15dc5addccdea6bfceeb6b9f47b7bb2e713" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.310Z", + "updatedAt": "2026-02-24T10:49:32.909Z", "postProcessHash": "aba89bcb04132b1b3810a4b46f7c7ec5d41299a1c7d45b785893e424e3e36076" } } @@ -53681,19 +54833,19 @@ "93a056e5b771b1f20f3660dfb370f302960d593ccff14a5684b961c760cac61a": { "b34875547efada966d6f58a27a70b1a17213f7251649cd70a29b9fcfe4aeecfe": { "ru": { - "updatedAt": "2026-02-19T02:24:09.268Z", + "updatedAt": "2026-02-24T10:49:32.850Z", "postProcessHash": "8fa36fc7b6781f18ea683d84f55e3c9cb77526c7a5a8450ba81e3a4361a069ea" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.272Z", + "updatedAt": "2026-02-24T10:49:32.856Z", "postProcessHash": "569971bdf74c2ad9b5664b23a720d68ce2429d66f170ac4259d8bbd15c6826cd" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.330Z", + "updatedAt": "2026-02-24T10:49:32.933Z", "postProcessHash": "d3a962ed96c2dc442dea308be94850e0805661c3eb6bbeedaf83ce49e38119ce" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.356Z", + "updatedAt": "2026-02-24T10:49:32.958Z", "postProcessHash": "d982d2a7e88a3766b0e377f3adb9db2e7417dd05a2b31adca40296c9e70d4fab" } } @@ -53701,19 +54853,19 @@ "ebc5db761ec12b7516bddcdbb93d868ef5c7d1458f56a4288fab25b5e45a980e": { "e20f9f94eb03e49c98c43e022936ac730a22ccaa64a4911703f457858a10f672": { "ru": { - "updatedAt": "2026-02-19T02:24:09.268Z", + "updatedAt": "2026-02-24T10:49:32.850Z", "postProcessHash": "343dfcad413c71040fefbd674aefe668766405519d9e0fa38c00675d72fca7be" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.281Z", + "updatedAt": "2026-02-24T10:49:32.865Z", "postProcessHash": "90820c9820c1c014f58535dd4658a4873488a2c657847aa99b35978254a5a72d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.285Z", + "updatedAt": "2026-02-24T10:49:32.871Z", "postProcessHash": "1759f76c0922f45c12f0a7a0e6a42b3b0e76f1ea4cb7d77a59b823b79afd6e9e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.309Z", + "updatedAt": "2026-02-24T10:49:32.908Z", "postProcessHash": "b38d5fd06e1878a8acbfb6d0c30d8772ea5993f45cfc39ea59f28635e375014f" } } @@ -53721,19 +54873,19 @@ "f016a1612cced253f74884a4791ce47126fba584f3ee773967310982b7597b83": { "cc687fc17daeeb33c7c5bef1a2bc7ce51ba437f92c4354369ab58a024c2123b9": { "ru": { - "updatedAt": "2026-02-19T02:24:09.193Z", + "updatedAt": "2026-02-24T10:49:32.788Z", "postProcessHash": "6a5618a14c838dcf5923004409d7e1f8ca812655a1cb031a9b1a26779e69a4bd" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.241Z", + "updatedAt": "2026-02-24T10:49:32.823Z", "postProcessHash": "c7e64faae60d8f10709fe22b95cef0e05f7789874037f3b456094e010a62b97b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.203Z", + "updatedAt": "2026-02-24T10:49:32.792Z", "postProcessHash": "e2f69896abe6a444c8c20a9d5f88d9effa159344247f5f2de38d20e8181668f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.258Z", + "updatedAt": "2026-02-24T10:49:32.839Z", "postProcessHash": "79ed03f55c8459c439ff564494d0f3fb29d307f54f80ac6eddf65a1973c54f88" } } @@ -53741,19 +54893,19 @@ "f657cce435f5bbd4c37d13d06e137048b8588d93820f3ee19d2b600ed82b6819": { "f4e41d0b3fe1c04866d1690f92f407974255a1b7b269dd34af873b60f54ecb09": { "ru": { - "updatedAt": "2026-02-19T02:24:09.329Z", + "updatedAt": "2026-02-24T10:49:32.932Z", "postProcessHash": "8c0214dd58224cfff2b7b1117bcdae1362d1f9f7cf1ae4cb3891e8367e01fb26" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.320Z", + "updatedAt": "2026-02-24T10:49:32.923Z", "postProcessHash": "7729aa1914b3ae3ec6bde046f8562d1908bc2772e0696dfd0c1233d1972f3af5" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.326Z", + "updatedAt": "2026-02-24T10:49:32.929Z", "postProcessHash": "524c0d09364249bac454cd7267ba2a9e7a79340cdfecbb81781a7d895c9eb8eb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.360Z", + "updatedAt": "2026-02-24T10:49:32.961Z", "postProcessHash": "1e298d97dc0a720af0ce450047f68e27f8ddb8a4e862bea62ca1a2d7374ad050" } } @@ -53775,19 +54927,19 @@ }, "7a2277c1f4c5de6544337ab439cc4f7f6f6704d614203478e96bb1aae453c488": { "ru": { - "updatedAt": "2026-02-19T02:24:09.291Z", + "updatedAt": "2026-02-24T10:49:32.880Z", "postProcessHash": "636d9cd5944a6a85e3d8b275e9fa93a748852573e8b990032cfb5df36017ab76" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.291Z", + "updatedAt": "2026-02-24T10:49:32.881Z", "postProcessHash": "96739de3db9e81f8608b35353a447a0804956fb2773515b9d909f4a534b63d55" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.292Z", + "updatedAt": "2026-02-24T10:49:32.882Z", "postProcessHash": "af234a2fcce1546635d436740723b3a5f8dafcfdf611a8312a48d20fc7bc8a0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.308Z", + "updatedAt": "2026-02-24T10:49:32.906Z", "postProcessHash": "0894fc1e11e05518c732f9c0632b0da28994ba6a182ac6bb3541a1e3d13d08f6" } } @@ -53795,19 +54947,19 @@ "bb301384e711a26eac5ab620725ba3651e9a050418e5c4b03409244a6916096a": { "fa37176654ae0b31692c4310f41376cac060e1fac5de1cd5fa4a6795dccc88be": { "ru": { - "updatedAt": "2026-02-19T02:24:09.269Z", + "updatedAt": "2026-02-24T10:49:32.851Z", "postProcessHash": "fa5471ff89c0226a38e50b999de92d42c1683d5883c57fed41822750f5c08a2b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.289Z", + "updatedAt": "2026-02-24T10:49:32.878Z", "postProcessHash": "66f378585eba035adc97329975619f798d8d03c0c7308c6577a26d4086d156cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.276Z", + "updatedAt": "2026-02-24T10:49:32.860Z", "postProcessHash": "f5d1cba45eda9a17dd97ce648afa7a47048f5247cbbb5589efa18b257d58103f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.305Z", + "updatedAt": "2026-02-24T10:49:32.900Z", "postProcessHash": "5ca9d04ffb1c8f88361e835d769f4e8bef02dcd262e692e51b831d4cf29a8f0f" } } @@ -53815,19 +54967,19 @@ "be5b2c5f34f09aeff162abaf45ccf882807b091723c8992305ab5dd6d9d85255": { "a4494efc6991ad7d0de3d84b86e624697071ddfce8e39ebd42923fd6777c8531": { "zh": { - "updatedAt": "2026-02-19T02:24:09.196Z", + "updatedAt": "2026-02-24T10:49:32.789Z", "postProcessHash": "60c6f04bfec3891b311b6c98f310fe5bea538ceb93121b0908b1693775092c79" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.198Z", + "updatedAt": "2026-02-24T10:49:32.791Z", "postProcessHash": "fa7f17ee6d18ea60185075cb5227ffa2b47976735734b1a15715589d333969ed" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.198Z", + "updatedAt": "2026-02-24T10:49:32.791Z", "postProcessHash": "8619037edd0437b1205746861c21a460513f8e5c092fcb6d01fd73285becfd9f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.260Z", + "updatedAt": "2026-02-24T10:49:32.842Z", "postProcessHash": "d45f28085705aa6a06ad99af90fc592d0fadf44aefc89330faeae4128d2c0a49" } } @@ -53835,19 +54987,19 @@ "b7ac58ff02407e2eedc607e8ffaadc709667604b213c6400361a10c2a2c6e252": { "ae94f635f518e540a73bbd471cee47b91d539ed719fbffdaf358c667006c4bb0": { "zh": { - "updatedAt": "2026-02-19T02:24:09.197Z", + "updatedAt": "2026-02-24T10:49:32.790Z", "postProcessHash": "9198365aca422eb022abf08a160a409a8aacdd6df5907b72e87f0f22cc06ca11" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.199Z", + "updatedAt": "2026-02-24T10:49:32.792Z", "postProcessHash": "8d1884e5b30236d65b1be1d05c476116cea395b4553cdfa3549aeb943fc51286" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.191Z", + "updatedAt": "2026-02-24T10:49:32.786Z", "postProcessHash": "3339b3303898d39914a3587ccb9abf36df71d277730266f66d6895714b8083b7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.248Z", + "updatedAt": "2026-02-24T10:49:32.830Z", "postProcessHash": "22cce033fa55ef78f855c504ecb74e46846a85abe7d4f6d1267f9cf47612003c" } } @@ -53855,19 +55007,19 @@ "f2566c10efb98a7e07538653cda7cc2135c5c1aaaef306a48e8e753ebc662a1e": { "86c47ff8f3b3666e1a6b49b2c8302b448389e1e3b41ab3b1450e055082821549": { "zh": { - "updatedAt": "2026-02-19T02:24:08.803Z", + "updatedAt": "2026-02-24T10:49:32.410Z", "postProcessHash": "db3ecfe3ab74b3b08afd5d88ea9eba0ec7159b04ced1a9081a7c5db8247b046c" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.802Z", + "updatedAt": "2026-02-24T10:49:32.408Z", "postProcessHash": "c0defa7229fee6b27c2a2a3244e13cc4c0ed6f0f4c6f6605a86a70bf36b99648" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.810Z", + "updatedAt": "2026-02-24T10:49:32.417Z", "postProcessHash": "96a408123b4168c543a77c179b015d8f620e6307650d53bdf90c2f19ec9ab2a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.900Z", + "updatedAt": "2026-02-24T10:49:32.499Z", "postProcessHash": "c0693ee749502e3e842cdce5b283f1978123a6d1aebdc4962037af92c2cd3f4b" } } @@ -53875,19 +55027,19 @@ "c3d6ae1d7c3ab47f1321484233d7e2d4c6960c431966f43a50c94da67e615da5": { "7fe2061b7ffe48c965db16b4f632dfa6a0cb32888881320b91a370311396c437": { "ru": { - "updatedAt": "2026-02-19T02:24:09.134Z", + "updatedAt": "2026-02-24T10:49:32.733Z", "postProcessHash": "68c99d929f252ea3754819bd8550b2a2a7794a65733dec05c2fb631087e62dce" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.132Z", + "updatedAt": "2026-02-24T10:49:32.732Z", "postProcessHash": "0f45fa5978c715f5b70bac97a40700cdb702e95641146e734337da0665b66347" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.133Z", + "updatedAt": "2026-02-24T10:49:32.732Z", "postProcessHash": "cbe51f81ff245663766792d694b95ee09dd8d09a492fed40eee4f9251ec512f5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.255Z", + "updatedAt": "2026-02-24T10:49:32.836Z", "postProcessHash": "3681d2f4f2510494c23db7e599d4939ab60ce5f7f9234e64752c2da302193943" } } @@ -53895,19 +55047,19 @@ "6f8f89ce13c70fe1235d08203ef798a559154950245f81065ab893d0e5c542e3": { "f96e0b809311db6c2baef6eea1807c7d62c21afafa50f43dcaed5dc333127e20": { "zh": { - "updatedAt": "2026-02-19T02:24:09.271Z", + "updatedAt": "2026-02-24T10:49:32.854Z", "postProcessHash": "ed9e3cf9f31df034560bdea315422808f234d9f9b3f28d82950b4b1f08cd6eb8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.284Z", + "updatedAt": "2026-02-24T10:49:32.870Z", "postProcessHash": "d4e7c4f8edc510e1b92d0928a91c4688aede5e5a4e116a12437845e4e733b166" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.294Z", + "updatedAt": "2026-02-24T10:49:32.884Z", "postProcessHash": "af42ac78de1b3ef4af093dcb3cab937585c253e6d5c6fffa8cc9537e39d3c8be" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.314Z", + "updatedAt": "2026-02-24T10:49:32.914Z", "postProcessHash": "f56602aea8fb2b26307c6515e490b1ef952365caa4ad491606eb596b30b827c0" } } @@ -53915,19 +55067,19 @@ "857f78e82a54d7a2128693b3d739a16697e3d23a8ab3595b336d9da8d6d1d643": { "3fadea060a820d56c666c2cf5cdeb8e49e9c833dfa43de6b17bb735aecf7c763": { "ru": { - "updatedAt": "2026-02-19T02:24:09.296Z", + "updatedAt": "2026-02-24T10:49:32.886Z", "postProcessHash": "8d42b622db5275d19c8b2345622ed89f140fdf3c8dc21016e057ced32b953a8a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.293Z", + "updatedAt": "2026-02-24T10:49:32.883Z", "postProcessHash": "ae48f70ef7cd6be30bb28a567152140c98665d7b69810e4557151902877df6e6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.297Z", + "updatedAt": "2026-02-24T10:49:32.889Z", "postProcessHash": "0fa1d64f7d00e47668b5c6ed702b5207ba1b593291d6965c23fe6a95a4d21ad7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.307Z", + "updatedAt": "2026-02-24T10:49:32.905Z", "postProcessHash": "fd193c7d6fe872215ed9d3ccc098c71e3c31b619cd69f43a4e20383cd4fbc43c" } } @@ -53935,19 +55087,19 @@ "98f9d0cfd669fd1fa447820ed42dde75e265419fd66cf20c9292293dd4a825b7": { "ef840aa109bf499596594d13130b402a3f00f31d42de8569556571fe1c214cfc": { "ru": { - "updatedAt": "2026-02-19T02:24:09.318Z", + "updatedAt": "2026-02-24T10:49:32.918Z", "postProcessHash": "bd159b2a23c7f8c3497a7d329c4ea2ea4da4e350b1ddde5131a909664e590036" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.317Z", + "updatedAt": "2026-02-24T10:49:32.918Z", "postProcessHash": "0a155db6dab1c70ab5658bf1841efacec4a7ee27ba36ceaba9bd014af7c9151f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.316Z", + "updatedAt": "2026-02-24T10:49:32.916Z", "postProcessHash": "70f45a1ef0d746002c2acedc01b7520bac040b80837e2c05be635833b07ce05e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.359Z", + "updatedAt": "2026-02-24T10:49:32.961Z", "postProcessHash": "aea27d2b7bfa6a3e410895f0a2884893e5072b0ce13a3cdc25c4fe21a7f0e1cc" } } @@ -53955,19 +55107,19 @@ "0ccba8d2db72b1884bbc46c41967afaeff1aa84c34d44e471d4f0a6956691e16": { "94c625175686dfb070b11d461168883b7020c135e87e95dc215bd6a1888c5c54": { "ru": { - "updatedAt": "2026-02-19T02:24:09.199Z", + "updatedAt": "2026-02-24T10:49:32.792Z", "postProcessHash": "59bd1cb4c7bd530470c995b1e67c7dabdcf6213fb83ad1d543daf94722afcb69" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.208Z", + "updatedAt": "2026-02-24T10:49:32.794Z", "postProcessHash": "38c35b4d3cca10d0853f982094bffdd938b92744c668ee76c54a1787b62b291c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.209Z", + "updatedAt": "2026-02-24T10:49:32.794Z", "postProcessHash": "dcb769031d0d88c31280de23e339ec94a17a9909c7584b9a1c2a904e2777a343" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.247Z", + "updatedAt": "2026-02-24T10:49:32.829Z", "postProcessHash": "6d69a8ad05e6d2b038e807eb61b8a6fab36f1a61ebc0d1eaa3e8acf793cbcd55" } } @@ -53975,19 +55127,19 @@ "c3624723e67987627989b19cf8887d0607b1cfe3b554bdb9b1a4afe0241fb796": { "394ce4286ff89f65fa6b50578d4a94d4eaf540883591642f71afb2825984bad3": { "zh": { - "updatedAt": "2026-02-19T02:24:08.877Z", + "updatedAt": "2026-02-24T10:49:32.474Z", "postProcessHash": "a66cd8437683b26f7af6e64d619aabd6068a06add94b6fd451cb715efdb1c2f7" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.879Z", + "updatedAt": "2026-02-24T10:49:32.475Z", "postProcessHash": "c5c0b3b4e4ca5818f4374dc058baaa8104f9fda8c2649e574f9970deaec7bd1b" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.882Z", + "updatedAt": "2026-02-24T10:49:32.479Z", "postProcessHash": "3af582fd0bd98f1c13b20198470f199d3d7217b42d7bfa57ed3d1a32b3b7b0aa" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.917Z", + "updatedAt": "2026-02-24T10:49:32.519Z", "postProcessHash": "55eee9b88f8a679e465e488d16b214ccfb9d48125836c335096609a608bb4502" } } @@ -53995,19 +55147,19 @@ "3f0eaac3f28ba8b2234626f11889b6f51135f12393d659a739adcfe6bb3acaee": { "b93542926f20e8394566dc0612022ddaf2939a3fdd8e5ae25b2ba31cb94de320": { "zh": { - "updatedAt": "2026-02-19T02:24:08.804Z", + "updatedAt": "2026-02-24T10:49:32.411Z", "postProcessHash": "0e031ad4f20b9cbdf52611ad1fc97d0490095f64cf9bee205cae5dd123428d3c" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.829Z", + "updatedAt": "2026-02-24T10:49:32.435Z", "postProcessHash": "bf7a090c88fc25b1be905f3362b42619b3c968fac506f55e335238ba09e63dbe" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.821Z", + "updatedAt": "2026-02-24T10:49:32.428Z", "postProcessHash": "20ac962900278d7250a14840b46f7a6f78c621198b99eefcd20b0ae8203dea65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.838Z", + "updatedAt": "2026-02-24T10:49:32.444Z", "postProcessHash": "d61c052ccbc2187c33a71d9cae4bc2601fa49d856e603c73857b39165c68ce6b" } } @@ -54015,19 +55167,19 @@ "101a525d5bb936cf99909df3325b1ed7ac0b685ee9889c47f517b4323eba52db": { "fead6f3f426b4d09ad7d10dd975751d5778ec0e92cce0f8ec88ce01950911970": { "zh": { - "updatedAt": "2026-02-19T02:24:08.805Z", + "updatedAt": "2026-02-24T10:49:32.412Z", "postProcessHash": "a66cd8437683b26f7af6e64d619aabd6068a06add94b6fd451cb715efdb1c2f7" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.890Z", + "updatedAt": "2026-02-24T10:49:32.485Z", "postProcessHash": "7c771e7995d98b5339ba5b4491ecc81ed23ca94fc99827cae5103402b977ec9a" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.803Z", + "updatedAt": "2026-02-24T10:49:32.409Z", "postProcessHash": "3af582fd0bd98f1c13b20198470f199d3d7217b42d7bfa57ed3d1a32b3b7b0aa" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.903Z", + "updatedAt": "2026-02-24T10:49:32.502Z", "postProcessHash": "55eee9b88f8a679e465e488d16b214ccfb9d48125836c335096609a608bb4502" } } @@ -54049,19 +55201,19 @@ }, "2af46578a95495d588d71822000d88c1ad91983a4942cfbf2fedef2b7ce30c7d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.301Z", + "updatedAt": "2026-02-24T10:49:32.895Z", "postProcessHash": "3a0c0c4af654247f00519a4fdc7f77d9987ca169a6a7374ede369c4a13aaca88" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.302Z", + "updatedAt": "2026-02-24T10:49:32.896Z", "postProcessHash": "c4802cf122bed9e3a782b7bba6714b0a729d91a353ce9f62a91636880875a417" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.302Z", + "updatedAt": "2026-02-24T10:49:32.897Z", "postProcessHash": "81f79a2259c19ec65aebdee562a14cafbad6b818fbfb7027cd6d8db937efb6bd" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.307Z", + "updatedAt": "2026-02-24T10:49:32.904Z", "postProcessHash": "cf997339e956ed8d0c2ea1a32566467c8e75402cbbfba9f6d521cdf8f676c78d" } } @@ -54069,19 +55221,19 @@ "43bdb45dd285638fe98614183eaf90571d4631d1e726c04b99db3c3faa08af32": { "4ba84b799e9b0e8d9b223c47606c717ef7d6ddd565986bc7b238eb33165681f5": { "ru": { - "updatedAt": "2026-02-19T02:24:09.273Z", + "updatedAt": "2026-02-24T10:49:32.857Z", "postProcessHash": "061bbbdef7b4442bb86b67d55ec21cec63215c4283cfac8c7cf7744e58f0c06a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.287Z", + "updatedAt": "2026-02-24T10:49:32.874Z", "postProcessHash": "a8265952d50ebcfdc89789be02d25b8e6fd34cc838316ac41eaacf191c8f1c7e" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.282Z", + "updatedAt": "2026-02-24T10:49:32.867Z", "postProcessHash": "a25eb0c3381a78811592f7adf2c919fe3de5884654029b3932871920950b1114" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.364Z", + "updatedAt": "2026-02-24T10:49:32.965Z", "postProcessHash": "9f174e49d04b72c44783037280b944bf3ebad0e0a08972529a93a8cff020f74c" } } @@ -54089,19 +55241,19 @@ "fbc3d920f0695e12f892f5ecdcfa4bc88cf0bb49809defb12c39db77838dee89": { "505618685d75d6489d64b01bd2297e8b2e4ce44b92900a9edcf4d95a5eebb475": { "ru": { - "updatedAt": "2026-02-19T02:24:08.817Z", + "updatedAt": "2026-02-24T10:49:32.425Z", "postProcessHash": "71584fd55158787ba134cbb8d3a0c3613fb8627d2740bffb9b96c977dc3ed2de" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.830Z", + "updatedAt": "2026-02-24T10:49:32.436Z", "postProcessHash": "9f9ab179d137856b44f914b9f1952d53f661c975160f1af482bbf8f15595bba4" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.821Z", + "updatedAt": "2026-02-24T10:49:32.428Z", "postProcessHash": "20ac962900278d7250a14840b46f7a6f78c621198b99eefcd20b0ae8203dea65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.835Z", + "updatedAt": "2026-02-24T10:49:32.442Z", "postProcessHash": "31606815fc772a9c1ddc3a73402af272cf85ad770825dd09cf40c8c0a3de727e" } } @@ -54109,19 +55261,19 @@ "67e6b09bfe484e48895cf047e4050cb1f08398f2f779e27c7acf3ff69d9c5e8d": { "7b905336c6f753917b4e006f53075b8ba27cb105a18643882989eab9b01e424f": { "ru": { - "updatedAt": "2026-02-19T02:24:09.275Z", + "updatedAt": "2026-02-24T10:49:32.859Z", "postProcessHash": "492d0f5d8d0aaf468917753fb9f24560fec8ed2b2bf0cd4a22c35bb08165cc5f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.333Z", + "updatedAt": "2026-02-24T10:49:32.935Z", "postProcessHash": "74c7e38513e5e670975cf582e5e4335ce7795bd2dcdce704e81dc8eca802e45b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.263Z", + "updatedAt": "2026-02-24T10:49:32.845Z", "postProcessHash": "f53d5bde6532d08d476d40468e4ed0f725e2d2c9b51b7a93f6628213e3fbb99d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.355Z", + "updatedAt": "2026-02-24T10:49:32.957Z", "postProcessHash": "555f2c97fabf9c31760bf8c3a427605e0b1cbec6c0eb5d754e5ed2ab0070fab1" } } @@ -54129,19 +55281,19 @@ "736363d0859d8864ef39d3c2b3906d5ee9e8520ec754a5daaa253102669dbfe3": { "4c2ab8cb337c681d306ce35ffbf49cc6acb8d68b78b1f946b2757bbefd07e898": { "zh": { - "updatedAt": "2026-02-19T02:24:09.275Z", + "updatedAt": "2026-02-24T10:49:32.859Z", "postProcessHash": "9a818e8efcf144aed66c1b1f400b3420628916ac5a200a0980347f5bfe80824d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.298Z", + "updatedAt": "2026-02-24T10:49:32.890Z", "postProcessHash": "0dd508fc178a876624b3a6ee87cc3dce094bf54a591f560039c6ce4956a5ab0d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.280Z", + "updatedAt": "2026-02-24T10:49:32.864Z", "postProcessHash": "6103f6733c2182c6a52501f1695ed0c67a515b0d263b5d4530942613f2b88d1b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.310Z", + "updatedAt": "2026-02-24T10:49:32.910Z", "postProcessHash": "710530903f71531bdf07c1178b858c0c40bd49e41caa6391c0a10fd13dfd2eb5" } } @@ -54177,19 +55329,19 @@ }, "325c5dcfa90fba27e0efaed49648daaa07aecd7c72da3396c490dc43a95b0d7a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.299Z", + "updatedAt": "2026-02-24T10:49:32.893Z", "postProcessHash": "baafb3485754a01b4f61d284a8f3888a04fa084b822ae4fc57510b73e911f135" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.300Z", + "updatedAt": "2026-02-24T10:49:32.894Z", "postProcessHash": "1df5ca42d8022a9d533109f7e17b5ca3052cb17819c3de2efe64aec6d1854cf5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.301Z", + "updatedAt": "2026-02-24T10:49:32.894Z", "postProcessHash": "2f828db2802eaf40066402299706ea64ad3bf8c30999ac5d3071dfeea8df35f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.308Z", + "updatedAt": "2026-02-24T10:49:32.906Z", "postProcessHash": "65a7f6dbe5707f9f5f262a8816bbb5d673c1e50dc4d7f4d114be4f80eec81546" } } @@ -54197,19 +55349,19 @@ "235b40c46d2961005ce3297b1e97ffe8edc82de828ff56822b9e32359796e9a9": { "c5ef2e83c2e151559f9dd5524371a9d5b3447d2d1d74ee4818d09823d6de408d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.149Z", + "updatedAt": "2026-02-24T10:49:32.748Z", "postProcessHash": "519f0f8085c6634af570c30a243224affddd15b814021513cc2a5008a6659332" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.139Z", + "updatedAt": "2026-02-24T10:49:32.738Z", "postProcessHash": "572d5ed8dc3508cfda34ba0960889ddf1f165b5cd4cc2dbab076864f1e407c77" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.231Z", + "updatedAt": "2026-02-24T10:49:32.814Z", "postProcessHash": "8a8fa81e297ebd605e32db3a795d8ff577af712ba31a991b09f3760322f76400" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.257Z", + "updatedAt": "2026-02-24T10:49:32.839Z", "postProcessHash": "d937737f3bda8f4b08cc1c33fa2fbbc278574cde0775e358c8e34d72f00afc5a" } } @@ -54217,19 +55369,19 @@ "462cdde9af0d98973a369e372516b17fe788292eab3b5888894d73e9cbffb6cd": { "d745f7b346b2c1bf0d164fbdb236d9160be09038c4c9ffee5d2fe13aaa441118": { "zh": { - "updatedAt": "2026-02-19T02:24:09.074Z", + "updatedAt": "2026-02-24T10:49:32.682Z", "postProcessHash": "de63337cd3cbaa8841cd41506eaa864fcaec48cec5d74792f5ecf4c5e8ad5e5d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.078Z", + "updatedAt": "2026-02-24T10:49:32.686Z", "postProcessHash": "f5f72bc47f30e9d554030fbf022a7dc4e63babb4dff5880b006b4c8f2b1e24c4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.070Z", + "updatedAt": "2026-02-24T10:49:32.679Z", "postProcessHash": "2f3ee22a3a89cb53a24567da1aa1d4557cb714c57210a9f0fedd825a5c51118b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.174Z", + "updatedAt": "2026-02-24T10:49:32.772Z", "postProcessHash": "ab7111ed9a4bdb6ea6e40901b27b74cbec4693878bd34388080d654712a7bd3c" } } @@ -54237,19 +55389,19 @@ "710ad55c0afad6985a560346d1622540e29d92eadcee6064888e0cacbfeda384": { "54f1a9cd08afe76cfdeea722af528c57303609afdc34748e3328885c439ce7bf": { "ru": { - "updatedAt": "2026-02-19T02:24:08.811Z", + "updatedAt": "2026-02-24T10:49:32.418Z", "postProcessHash": "fdd83de4abe81a4ed4bb122a604e23067c32dffcd83dba38657e520419b3ae3e" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.896Z", + "updatedAt": "2026-02-24T10:49:32.496Z", "postProcessHash": "fe3a97946b8d171f5c6f68f98d07fab2fdc59da69e68da3d7adb085a1b2c3cca" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.807Z", + "updatedAt": "2026-02-24T10:49:32.413Z", "postProcessHash": "1ba022e158b54a75b0132423f8329d3291e54afb0b8f97dbcb4f572208e98a52" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.909Z", + "updatedAt": "2026-02-24T10:49:32.508Z", "postProcessHash": "567041cdeb573c8c41f7363fdcf66281119fea11039c4df0ac11bdacffb483f8" } } @@ -54257,19 +55409,19 @@ "0fb5c4c89db0cb83f6bd1cdef9a19071c391929cb24660f2f66de45b10763ba3": { "23aae78ddaf4de455a27e50918cb30da7db97d56977cd4dbe8df7b2e1cd49fc4": { "ru": { - "updatedAt": "2026-02-19T02:24:08.812Z", + "updatedAt": "2026-02-24T10:49:32.419Z", "postProcessHash": "75570a7669b628cd9f3520788e80a072ab0a1d2c3daa0549e376e5e970d9c2d9" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.809Z", + "updatedAt": "2026-02-24T10:49:32.416Z", "postProcessHash": "7ddf021182820cb62a8d1a7b6d5f2e40827ccf8e55664b97716aa90a96208bcc" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.891Z", + "updatedAt": "2026-02-24T10:49:32.486Z", "postProcessHash": "89bd734baf8aba3cf4c713e0df328b7f6a39b086b4811cd4df5760d775952e02" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.904Z", + "updatedAt": "2026-02-24T10:49:32.503Z", "postProcessHash": "f824ad6f33111599f829ea325a2e4729d92d53c6139c073daa7daea5fce25950" } } @@ -54277,19 +55429,19 @@ "45c65db56b87943c8cc881cc85fe81f875a263a988b758817095b2448ebeab1c": { "ef02a49eb6596c142aa773eb78cf22212510b6f1bb9809d02c025e4d34ab82d7": { "zh": { - "updatedAt": "2026-02-19T02:24:09.150Z", + "updatedAt": "2026-02-24T10:49:32.750Z", "postProcessHash": "4804ad65fb57bdb9aae2087131d4f787992f6dccc19a450e62271cfa5c710c08" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.132Z", + "updatedAt": "2026-02-24T10:49:32.731Z", "postProcessHash": "30ce8b03c55a5a9b0353c2e07d37c4fb5b4a099916c00a6611284da91756faea" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.150Z", + "updatedAt": "2026-02-24T10:49:32.749Z", "postProcessHash": "9d7cdeabcb3f07fa3fce79db2fc40799c79179bae0f2e83b3ce69ae1e3c3aa11" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.255Z", + "updatedAt": "2026-02-24T10:49:32.836Z", "postProcessHash": "d19e7c313107b3b4fe07e6c7261ccfafb52b6815a4eaa71df1261bb5465a0162" } } @@ -54297,19 +55449,19 @@ "b58d28384b38660cb355b5217eb858f4bc83ad7155278c40ae4663b230c74fd8": { "f5263d91719fc0aa0d4dc51eba8629ecf707553c3c6fd5144e8f1ca748775d75": { "zh": { - "updatedAt": "2026-02-19T02:24:09.105Z", + "updatedAt": "2026-02-24T10:49:32.707Z", "postProcessHash": "bff979c740c3f15223de55d8f481713a8c5ee05f0c3c9eba670e193ce9b446a1" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.092Z", + "updatedAt": "2026-02-24T10:49:32.695Z", "postProcessHash": "1f3ea2ddfd7c2f9ee0fe5d9bc02bfe87f4a69b1de00196e435629056b6278228" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.096Z", + "updatedAt": "2026-02-24T10:49:32.698Z", "postProcessHash": "04fe28d56f1ececd2a66c290595d5fed0df4139c5b0dd5598532b3e45030d90e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.116Z", + "updatedAt": "2026-02-24T10:49:32.716Z", "postProcessHash": "5de5c871352c51600d18371a37ced31a60fe4659ed12c7f61f902779f85ba710" } } @@ -54317,19 +55469,19 @@ "8d7c4ba98d5f5bbc6e42b2591da7f2b20f246b15396b0ab2075839fef18b5697": { "157c626f8a13dd4dc09e8313f1bf33c397d35bf379c354eb9d973e648827bef2": { "zh": { - "updatedAt": "2026-02-19T02:24:09.075Z", + "updatedAt": "2026-02-24T10:49:32.683Z", "postProcessHash": "634870082c95d1522b45f62a7857160bdc67886b683879bb41d0c890fd99adf8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.091Z", + "updatedAt": "2026-02-24T10:49:32.695Z", "postProcessHash": "2fa50f3fc2507386389b9a857e9e5ad2630e09d9fe5d9c2b57b28a3bc7025273" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.068Z", + "updatedAt": "2026-02-24T10:49:32.677Z", "postProcessHash": "86f4bc498b5d9b8ee1dd49a68754613cb4a82ebe9517132cb39e331dfa168506" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.183Z", + "updatedAt": "2026-02-24T10:49:32.781Z", "postProcessHash": "010e73e08a4fd58564cd1ca26eca7c38f8e68fe18fbb9a0a14850fc294c37b41" } } @@ -54337,19 +55489,19 @@ "4d0528f558f80f4881563682077f001ad134becf467e305c86fc84dd7697b089": { "42d9d42562a4f705923103bf4a3b7173addf1f1dd5adc163a37dbd936aa49889": { "ru": { - "updatedAt": "2026-02-19T02:24:09.151Z", + "updatedAt": "2026-02-24T10:49:32.750Z", "postProcessHash": "26c1445022c327bb50e357f30917a5dc701c7c6cfbe6f13603f3ce4e497cdf9a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.142Z", + "updatedAt": "2026-02-24T10:49:32.741Z", "postProcessHash": "bc1002167fab0cb53e82d8493abe5bfcbd72a318913f4e9fa1d6d99481d17b6c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.136Z", + "updatedAt": "2026-02-24T10:49:32.735Z", "postProcessHash": "932e57b3a529f24100a821de080ea75e4dd102387acb8b1dd7cb635bf0a60762" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.185Z", + "updatedAt": "2026-02-24T10:49:32.782Z", "postProcessHash": "56e3f51905d1c3278c29c15e74f56adb713ba5581ae4b41c3ab302d472efd834" } } @@ -54385,19 +55537,19 @@ }, "0d180ec93312cdd81d1c07508c47f7d121f695e37337fd15fd6d0c068f0f6c7c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.024Z", + "updatedAt": "2026-02-24T10:49:32.636Z", "postProcessHash": "91da685f333ec6bed3f89a15afdd845c63711ebcead0fe3a30aed7025f6b1b64" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.025Z", + "updatedAt": "2026-02-24T10:49:32.639Z", "postProcessHash": "91dfafa52391cb51aadb3a05ab3c730bdc15e0985f01cb06f518781451ba6676" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.031Z", + "updatedAt": "2026-02-24T10:49:32.645Z", "postProcessHash": "49c069653e7388346b59023d87a219ebea60ab406cf69752b447a7199edd64d4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.055Z", + "updatedAt": "2026-02-24T10:49:32.667Z", "postProcessHash": "579c6f9534611d801dd4de0e607dbbbb2ba3622a28b022790fa7a193038dd336" } } @@ -54419,19 +55571,19 @@ }, "2f641249f3103f7865f16f20a1b9243bb31909125349e4571c47ac9b1b8a6df9": { "ru": { - "updatedAt": "2026-02-19T02:24:09.166Z", + "updatedAt": "2026-02-24T10:49:32.765Z", "postProcessHash": "490d936da845e1372062ec2a262c62f67b4dba3c984ff9bf927995813e5c389d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.166Z", + "updatedAt": "2026-02-24T10:49:32.765Z", "postProcessHash": "869ae63159b30b906f5cce17489bc69c989354b0d12e7d05b89b0212ff0c6157" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.167Z", + "updatedAt": "2026-02-24T10:49:32.766Z", "postProcessHash": "d1c684122b91b888f0dfba7bed7215889a39854e39dd6abfa5b42c36c3223a3e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.179Z", + "updatedAt": "2026-02-24T10:49:32.776Z", "postProcessHash": "6bbe5cb348d0ba4e5880631ed41c0e71cae21ac00be1d7ae62e75d938c10ecb3" } } @@ -54439,19 +55591,19 @@ "2c61f03a4fe808580cff4e8aa1a6939d84eb12b9a43724b98bab278d020bb194": { "4158e73583a46ee61d2835723076f3fd91bdae28b86fb6f4d6ab8870a8146937": { "ru": { - "updatedAt": "2026-02-19T02:24:09.014Z", + "updatedAt": "2026-02-24T10:49:32.626Z", "postProcessHash": "bb27c0e8977f8883fc2bacb1f2138b7e10bb5a6de31b1dacded084da94bc0316" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.013Z", + "updatedAt": "2026-02-24T10:49:32.625Z", "postProcessHash": "786adbbb891856df3581844d21e00478e36dfbf842f3c248032df20ecb3f9680" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.101Z", + "updatedAt": "2026-02-24T10:49:32.703Z", "postProcessHash": "fe25581377d35b8251e8905f61193ae88841991ce7250353d8ab0b3e5c1118df" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.116Z", + "updatedAt": "2026-02-24T10:49:32.717Z", "postProcessHash": "0745cc0d530e0cbd172f82aa86adb4a5ccefe79fae667edf39006a59d41bd619" } } @@ -54459,19 +55611,19 @@ "8fb2e5e5d61ff6b4830012f315c75ccd22ef6f64c4ee7685c2cd3215aabfe79d": { "c393d1a8b5995f5444564d2d762f97bb4815829fdfb74c4739bd527681d89cee": { "zh": { - "updatedAt": "2026-02-19T02:24:09.151Z", + "updatedAt": "2026-02-24T10:49:32.751Z", "postProcessHash": "fce2531e47b053738c341a053a4f1d5a7a259fa5416e8faa549949d51b616f30" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.244Z", + "updatedAt": "2026-02-24T10:49:32.826Z", "postProcessHash": "d5cab276a8a68815b617467166bae5efa3fd5a25c8a8a98dde613df12f0166f6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.223Z", + "updatedAt": "2026-02-24T10:49:32.805Z", "postProcessHash": "7e615d0aae97110e6a8b2113e47faea783e1149ada9e3db30dcdcfada708785d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.249Z", + "updatedAt": "2026-02-24T10:49:32.830Z", "postProcessHash": "049651a99c45b2da1debe0a55317ebe84c78260bd903db807514d1aaddc68a4d" } } @@ -54479,19 +55631,19 @@ "1a54cbb6d0259ab1c0a7866c16289a6efb190e3d138af3035a9b892ce04da57d": { "35875b5d8355a345f2dea01781d4a86cccffca2873f0f1c8151df687559a6ee2": { "ru": { - "updatedAt": "2026-02-19T02:24:09.152Z", + "updatedAt": "2026-02-24T10:49:32.751Z", "postProcessHash": "d2834ccf8d420fcb7db1791af2c366819503f1cae26bb00ff87acf9844376d8a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.156Z", + "updatedAt": "2026-02-24T10:49:32.756Z", "postProcessHash": "353653f590f914f0e36c71ea1015177fa6319fb43e1990c3375afba58d480b19" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.146Z", + "updatedAt": "2026-02-24T10:49:32.745Z", "postProcessHash": "2b2d57a64e6e26bc189f091a8ddf381e8e68492f32a6fbb76c295d67f2d91412" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.173Z", + "updatedAt": "2026-02-24T10:49:32.771Z", "postProcessHash": "237bae44c6a1db69144071535bacbf5885e72602975b8b365f72df0ff9e3f306" } } @@ -54499,19 +55651,19 @@ "c5c96baff0600024d6bbb610d9cae24faf4a22e4f54fbcc16da6eea5801d716e": { "75a61fac01b9a0c4dc6479a31dfe0ccf020bf8c906301ce66ddb70adc32e62a1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.245Z", + "updatedAt": "2026-02-24T10:49:32.826Z", "postProcessHash": "60de08b9e73291dc6c1821537073c223774439ffb9ce26854d2a030e8c02c31a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.212Z", + "updatedAt": "2026-02-24T10:49:32.796Z", "postProcessHash": "fbddc0aab46e0e38e842a90822d1797618d82eb5afc9e1d022e431d9a547fbef" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.225Z", + "updatedAt": "2026-02-24T10:49:32.807Z", "postProcessHash": "2c2835f42eb3989f137eb031dd860631073f7b6eb88cdc373a3ba01593d5b27f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.259Z", + "updatedAt": "2026-02-24T10:49:32.840Z", "postProcessHash": "29a8e558d5b638a176e6458a025df6991e412e2bd2504396bee6f82b0a78f9f7" } } @@ -54519,19 +55671,19 @@ "be5b364ee73eb51fe865a890d10236c2eae4146ef19afc9755721c110139579f": { "e55f970b0157d55548b665f2a95fc93e3875eadfb7a385687eb591b21d592f97": { "zh": { - "updatedAt": "2026-02-19T02:24:08.931Z", + "updatedAt": "2026-02-24T10:49:32.539Z", "postProcessHash": "e56c845f189f57f778d546fd7b2102b9ed58a2c25d9c8e0dbb92151e3ba279a7" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.875Z", + "updatedAt": "2026-02-24T10:49:32.472Z", "postProcessHash": "aebd0815e50ec9585a3367a1ef158aaefb63ebb42803f65547dbe770a4339bf9" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.934Z", + "updatedAt": "2026-02-24T10:49:32.541Z", "postProcessHash": "6351a2fe0f0e41d9b085dad38a029886e4ef6d20c99581d6fdc43ba41b92b195" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.979Z", + "updatedAt": "2026-02-24T10:49:32.588Z", "postProcessHash": "459824da26a11e7550ea114d50033cc8ad5048cde29170f65afbbcb3781e5478" } } @@ -54539,19 +55691,19 @@ "4449f60ff9c38182ac376f1ec8ad4f5c377a1d189bf6b8bd0b3f294437ebd1a5": { "b4657b26faf846e566012308f61103c34dbe662b80add135f7d0720222c74ea5": { "zh": { - "updatedAt": "2026-02-19T02:24:09.076Z", + "updatedAt": "2026-02-24T10:49:32.684Z", "postProcessHash": "8073a43fae69ede3a1ae51b2be353a2bf6836ee6bc9657c6471282179c661f61" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.062Z", + "updatedAt": "2026-02-24T10:49:32.673Z", "postProcessHash": "5eb68f4888d23e43f2a29ca42ac2029ee1873a27b20ea38b669d7c7872cfdd03" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.071Z", + "updatedAt": "2026-02-24T10:49:32.680Z", "postProcessHash": "2eea3a7779228eb500f0b41920165c8dc1bf404adf8e44b1365663b944211de5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.177Z", + "updatedAt": "2026-02-24T10:49:32.774Z", "postProcessHash": "c9d66eb4367e20355248d994aae2b5baf9aed94f48e206107ded11d6f914effe" } } @@ -54573,19 +55725,19 @@ }, "7c7ba57b3b08ab49a76cdc865c778f4d57dbe4caeb70a22a9c9ca7fd4f3b0753": { "zh": { - "updatedAt": "2026-02-19T02:24:08.958Z", + "updatedAt": "2026-02-24T10:49:32.564Z", "postProcessHash": "c859460ba8fb3bc1be9052cc50a860e7a21ea8161a608ef106949cff74005d00" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.965Z", + "updatedAt": "2026-02-24T10:49:32.571Z", "postProcessHash": "6bb04c5af3b36c909d385dbd4b0ab27d598c0509def8b0b8bec19ff566909018" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.973Z", + "updatedAt": "2026-02-24T10:49:32.579Z", "postProcessHash": "11267d5a8ff16f838bbd14206200c4384b2572677ce551a6fd153492f618bb14" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.987Z", + "updatedAt": "2026-02-24T10:49:32.595Z", "postProcessHash": "70b19d761864e42304dcf3d4acd6dbfbbd0e896885807836f4c39ead5550783a" } } @@ -54593,19 +55745,19 @@ "8184344ce9b79685863100b25d75f907caba31a6f26b64caf68881e98ea41913": { "8fe3205e82057a29dc0d8aaa2e33ec896cd304ef416bcfb7264bf8da1fbaaa77": { "zh": { - "updatedAt": "2026-02-19T02:24:09.328Z", + "updatedAt": "2026-02-24T10:49:32.931Z", "postProcessHash": "03a5f5a40f8dc3934220239ca07ac797f8920bb49158151891f1bc9ce44975cd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.328Z", + "updatedAt": "2026-02-24T10:49:32.930Z", "postProcessHash": "d2e64b9ff8d18e67bf0e1b1836e9f5cd5bf7b8d5bf5ec71314aefb01d386f5ad" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.327Z", + "updatedAt": "2026-02-24T10:49:32.930Z", "postProcessHash": "eed284bc3b5f8f5a17ec5f24a1394fdf2dbc3bfd2df7f75f7edb55b647ce0162" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.372Z", + "updatedAt": "2026-02-24T10:49:32.992Z", "postProcessHash": "53f36cdc2216315c8b1283c736ed808892c051653e279df04fa1a677714bd512" } } @@ -54613,19 +55765,19 @@ "0c03db74eb0923183ef12e6e957c01e6d8255d17051d0474807d2dfe15494516": { "8d293de1b22941bb10fe562a4e677c7c7472f7d882ef5aadce39c9033dabb63f": { "zh": { - "updatedAt": "2026-02-19T02:24:09.246Z", + "updatedAt": "2026-02-24T10:49:32.828Z", "postProcessHash": "acad404d7ccedc6a923e8a5c516cb244c3dc9f64f655e227bc96282fe7cec8ee" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.228Z", + "updatedAt": "2026-02-24T10:49:32.810Z", "postProcessHash": "9c5aa8f7eb94cb040cf861dacf699f3b776d62a254939e456df5883457746ffe" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.219Z", + "updatedAt": "2026-02-24T10:49:32.802Z", "postProcessHash": "a020fb2156d428008bc0cceaa3fd09f05efde371478d96e9763516435fa997e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.314Z", + "updatedAt": "2026-02-24T10:49:32.915Z", "postProcessHash": "812feb7ba442be43187aaa594562c93ef61c38d124912e035100b31baa9182a4" } } @@ -54633,19 +55785,19 @@ "a1c0860ae09b803ff5ed9c9a0c438bd6b2800982753e32c40c910f32979fca1d": { "48ad888591a6dabb0298398a02a18436095ab5c603d344f9156ff7e7ccdb28ae": { "zh": { - "updatedAt": "2026-02-19T02:24:09.287Z", + "updatedAt": "2026-02-24T10:49:32.873Z", "postProcessHash": "792d1caba3a0258d816ae731fa188a4112af233ef30eb0ade0b591db73f76271" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.283Z", + "updatedAt": "2026-02-24T10:49:32.869Z", "postProcessHash": "2e1542763054cf7a72ec74976e88e4243e6d66d200e85ef26acc31b6bc656946" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.266Z", + "updatedAt": "2026-02-24T10:49:32.848Z", "postProcessHash": "25dd126d05d40e6d16e0aaaf096cf838a65034b4f00e945e2d7060079be677a8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.360Z", + "updatedAt": "2026-02-24T10:49:32.962Z", "postProcessHash": "f792b62787fc618eee0f8e1672478e25cdb879538fa8aacbcf9f13129dc91b7d" } } @@ -54653,19 +55805,19 @@ "86a43cc92512a5c918f3385b494d3169c660273f3661eb8dafdc49055b720698": { "60b60a413c29322369042c265eefb3d9aa56d79f8c71fe607cd1ac9eeb60e393": { "zh": { - "updatedAt": "2026-02-19T02:24:09.288Z", + "updatedAt": "2026-02-24T10:49:32.877Z", "postProcessHash": "ded3161d5311eaee733d7805cd602dbf10699324922d3a0022f76fc063a926e9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.288Z", + "updatedAt": "2026-02-24T10:49:32.876Z", "postProcessHash": "3531ba8b2d1f83b7281805e2e08d7f6d69e5998385d3a5ca0050f885a9594b48" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.270Z", + "updatedAt": "2026-02-24T10:49:32.853Z", "postProcessHash": "071f842f3610436b701fd6b38bd298de096c98654e5a89031c2827a5c22f7738" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.304Z", + "updatedAt": "2026-02-24T10:49:32.900Z", "postProcessHash": "08808d38b2eba0cf563dd244d1ecfe11bab58ac46bb76b969e118723e544e847" } } @@ -54673,19 +55825,19 @@ "036300ef3b2f4858d6615f663b03ca7a594a026409e0fe0ca41882745b846afc": { "1ad91e7f68dcee666ce7f7d2260270095678629c6052b5b84bf68dc6d54020c4": { "ru": { - "updatedAt": "2026-02-19T02:24:08.932Z", + "updatedAt": "2026-02-24T10:49:32.540Z", "postProcessHash": "3c2888d7a09e1627ba18e35a9310b6818aa6febecebe1c99265aa6699bee9ec6" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.933Z", + "updatedAt": "2026-02-24T10:49:32.541Z", "postProcessHash": "de04856dad3d8bc67d26f47fd7e33db5e0730335c39fd675e1b193ef9dc5cadf" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.931Z", + "updatedAt": "2026-02-24T10:49:32.539Z", "postProcessHash": "83f08dfcd635bcf146e52a19e0188e81904d73447650c5799a628e1f6548834f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.049Z", + "updatedAt": "2026-02-24T10:49:32.660Z", "postProcessHash": "35e170ab5ce1273900ad42a87059528ca78f4d16776af7e37d4ac3ce71034002" } } @@ -54707,19 +55859,19 @@ }, "33f143274df76b50a48e6bb615b6cdca351f07ab64edad604428b005d4f32e0d": { "ru": { - "updatedAt": "2026-02-19T02:24:08.963Z", + "updatedAt": "2026-02-24T10:49:32.569Z", "postProcessHash": "2a93c2b6162732704de3342ed51f84e6da676ed91b6b248751f2802b84540b09" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.965Z", + "updatedAt": "2026-02-24T10:49:32.572Z", "postProcessHash": "9cf4cc880cf7f0fcd8a1fd165aa8baa1ce1e12e2aa8f14fcdef93927c4e3b6cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.971Z", + "updatedAt": "2026-02-24T10:49:32.576Z", "postProcessHash": "55daf6e6e1636043971af6d76ef01f5ce2a1c834320168eefcd3f636da6b9fe7" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.983Z", + "updatedAt": "2026-02-24T10:49:32.590Z", "postProcessHash": "1f5c9e448f4f644e97ea078ff439cbf9c9091d00459bc99e501eb801f7d6e292" } } @@ -54738,19 +55890,19 @@ }, "5962997760b38b2cb309d629f1dcf48964113a84f277bdc508e98c8bad0fa965": { "zh": { - "updatedAt": "2026-02-19T02:24:09.019Z", + "updatedAt": "2026-02-24T10:49:32.632Z", "postProcessHash": "e57be5a38a35056e0731c1c24daadd1eadf503373a393ec690f196c7d1cab9ae" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.017Z", + "updatedAt": "2026-02-24T10:49:32.629Z", "postProcessHash": "5d2c2c3ea0ac2596c96eab4ad2d20d1a72a42fe6d80985d5544abdf8ab2259ad" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.017Z", + "updatedAt": "2026-02-24T10:49:32.630Z", "postProcessHash": "6def404d595e172f0aa922586d045d28eb0f06e23225e801949ed59e974fee7e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.053Z", + "updatedAt": "2026-02-24T10:49:32.664Z", "postProcessHash": "099e6d36ea0c0337d32c3b7b2241be314d9db628d35a2138eabc435558b01247" } } @@ -54758,19 +55910,19 @@ "e79b575c27312875f3076748b2d4de3bfd78216748310c894e316b5c6b915aa6": { "7a7699a4379151bff326d63b86c2e5f5b0c36a7de56625710bbef094f9488e4d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.272Z", + "updatedAt": "2026-02-24T10:49:32.855Z", "postProcessHash": "3d54240fe31b763edad2e0363a2da20ca7d0492cd7987091c22c8f1621b1f19a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.286Z", + "updatedAt": "2026-02-24T10:49:32.872Z", "postProcessHash": "18246fac39c18429893bfabf32cf0c8993b4a61c6236d5bb4e6f97459582422b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.274Z", + "updatedAt": "2026-02-24T10:49:32.858Z", "postProcessHash": "2dd83f5a4c2ce5580f27d2ebbfecf5cf162227dac9a63a831b43a22f109ac7a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.357Z", + "updatedAt": "2026-02-24T10:49:32.959Z", "postProcessHash": "10cd5756a02f6597e51caf41a1162963d6f31ceee9c33b992b13d33035fe83f8" } } @@ -54778,19 +55930,19 @@ "c74acd4897e7b7ee4b2df0bff72a35b3b8acbfe976eaa8215f2fcfc031f94ccf": { "720c459362ca150d27eb7701d7e48ce41817e1142bf4ebb8b4e2a87705715ada": { "ru": { - "updatedAt": "2026-02-19T02:24:09.013Z", + "updatedAt": "2026-02-24T10:49:32.624Z", "postProcessHash": "1b4e6cda6189456452254857006b4403498ef4b666c02b1af1328a0022cc1cac" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.096Z", + "updatedAt": "2026-02-24T10:49:32.699Z", "postProcessHash": "4b6198ef3035f486e26a5153cdbf0c1f9f3fe99a2e51dde5e6b6512898a6806a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.084Z", + "updatedAt": "2026-02-24T10:49:32.690Z", "postProcessHash": "6767b83b8b66f340b28a7000993c89ea59d8a039e5bcc60676b2e2de3a5bb9c3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.109Z", + "updatedAt": "2026-02-24T10:49:32.711Z", "postProcessHash": "a74eb38436f8a212a3571b965522c3aa7f45e5d7c067c352ad17e6a162c3c8e7" } } @@ -54798,19 +55950,19 @@ "503329b0d4a76ca6bed899e9672f8b552300a0c87af309f4216ae734b9861fd2": { "675e12d63a5beef8dc9c071b80bc5249b9dc320e87ed8e63ab1dba75742d1c49": { "zh": { - "updatedAt": "2026-02-19T02:24:09.061Z", + "updatedAt": "2026-02-24T10:49:32.672Z", "postProcessHash": "b704c606b356f3a171fba70c6ce71bc5c099843b54d30e01dd00ac95741bdb85" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.074Z", + "updatedAt": "2026-02-24T10:49:32.683Z", "postProcessHash": "2d93877d4177e77fb15d317a85a027c58ac401aa16a3a0e0d36b8d7086cb3b83" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.071Z", + "updatedAt": "2026-02-24T10:49:32.680Z", "postProcessHash": "5201ebeebeb0f38fad123dec53571d050f556a411b01764acc191901d2166595" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.172Z", + "updatedAt": "2026-02-24T10:49:32.770Z", "postProcessHash": "afeadb26e31fc8a44e6685586e0d49a68f445b09e55483310a8e10e0dcfd6e75" } } @@ -54818,19 +55970,19 @@ "90f0e15a1b59f060a6f0f952d87af6522508eab261e93dd1ff9d2f135297bc7b": { "b323a03a283828a8dd2bdb1310eabc167e779d51e7e53bc928a0c3475022c6ed": { "zh": { - "updatedAt": "2026-02-19T02:24:09.274Z", + "updatedAt": "2026-02-24T10:49:32.858Z", "postProcessHash": "af197fd421aad318b5acfc40e94f1353338a16286ce2b7940867b5014bebc20c" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.284Z", + "updatedAt": "2026-02-24T10:49:32.869Z", "postProcessHash": "ecdd44f368cab2d6b3163104185a7ec046bc8e500863629786ec0844ac478849" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.278Z", + "updatedAt": "2026-02-24T10:49:32.862Z", "postProcessHash": "5ebd0ae88693b6ace149c505ce402968900d3041055c87ce07b329fb941a2dcf" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.367Z", + "updatedAt": "2026-02-24T10:49:32.987Z", "postProcessHash": "2dc0fbc94db22febe7a38f8feb7d5bd1ef620bf175e7e6ce915fd93fb3179b9a" } } @@ -54838,19 +55990,19 @@ "e1777c4c468ab2516b850e57b6f6bc5a611e182371ea737b4494074aa581da40": { "c93f95ca1da1b0eee11a33d644aec21a8b55b826129592b9eba161908812b369": { "ru": { - "updatedAt": "2026-02-19T02:24:09.137Z", + "updatedAt": "2026-02-24T10:49:32.736Z", "postProcessHash": "836ee4e7f66847d750737872d9d4a59991e855597fbc8e3bd71bf78abec1c59b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.145Z", + "updatedAt": "2026-02-24T10:49:32.744Z", "postProcessHash": "a9b5953af0eb576e8ccd31667226ac22e5dc58fbf9a8b1ffc47658b1f929d2b6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.240Z", + "updatedAt": "2026-02-24T10:49:32.821Z", "postProcessHash": "4ad47bfdc7bcdbcdece3681127236bbd12268bb44b79e46724f82eeecd344f11" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.260Z", + "updatedAt": "2026-02-24T10:49:32.841Z", "postProcessHash": "6b53d2aaac0631b30aff020e2d7d8921454c11474395d9a0932bb2390e288fb8" } } @@ -54858,19 +56010,19 @@ "64e0092d1db56a02e6a5bca8f0b5056cf1f521390ec3925bb3e50df81aa7ac85": { "9a5dd87bf7b220294da0bc415b255ea64029a767c79b1e6a895b5d3d57801055": { "zh": { - "updatedAt": "2026-02-19T02:24:09.141Z", + "updatedAt": "2026-02-24T10:49:32.740Z", "postProcessHash": "6705213bb38bb5cebc1c31867a4fb1a8ac67499ddc647d49a75b98258dea0828" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.143Z", + "updatedAt": "2026-02-24T10:49:32.743Z", "postProcessHash": "c0424f2e2a53b60e9ff3116e0f534d15b1c7ce7d255c701b96fcdcec4890c2c6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.144Z", + "updatedAt": "2026-02-24T10:49:32.744Z", "postProcessHash": "14f815cddbeb52ab3431dc67df5448f3427371ee5a0030625cea835f6ec3961f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.249Z", + "updatedAt": "2026-02-24T10:49:32.832Z", "postProcessHash": "9514a8b1b6e70203b976768b0f218ff354df78bba163530606a862095f91977c" } } @@ -54878,19 +56030,19 @@ "d012409948884982e8bdf1e450327b34af2546383469b4fd132b635459e6f305": { "95aa9403608d32399c22cc7fc263d9ab30a605eea3844947170400f89d7e71d1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.149Z", + "updatedAt": "2026-02-24T10:49:32.749Z", "postProcessHash": "2943af782b90e30c378c93d5a5f7a78c15d59e0ac6a8c5a8411ed22d9a3d56bc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.141Z", + "updatedAt": "2026-02-24T10:49:32.740Z", "postProcessHash": "f27c0c2cbf8ea5537615adc29303017de4f60a5a4e9ace846574deb87dd3e36b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.138Z", + "updatedAt": "2026-02-24T10:49:32.737Z", "postProcessHash": "565173b9963589c92d99543cdde600cc8e43f420fe4f56d8f9bf2208312684d9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.175Z", + "updatedAt": "2026-02-24T10:49:32.773Z", "postProcessHash": "a82eb6c397e0e15ccaa9a6d9bf69b4f3affc6ac47f7d16c1f3a69169a1bd1f15" } } @@ -54898,19 +56050,19 @@ "00174dfb396f321fadf5749558a865565bf4dae8cc5d6fa8f305ef68a7f1c6b2": { "d2f79ac832b7a2d7aaa410633fb001b9e95f4660cc65da2bdbe34ab52df0894a": { "ru": { - "updatedAt": "2026-02-19T02:24:09.219Z", + "updatedAt": "2026-02-24T10:49:32.801Z", "postProcessHash": "a1273037a41f448e543a49cc6b332dcdbdaa76e4508491ee3da2a5c2167f6c54" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.134Z", + "updatedAt": "2026-02-24T10:49:32.734Z", "postProcessHash": "3884ace469a387c8b6ac18e67d74191724952ebc944ff8743ce8561ae5b26bc4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.140Z", + "updatedAt": "2026-02-24T10:49:32.739Z", "postProcessHash": "695036bf7e01eeee7d215530e63fc8ddaacffc258d6ea3f9d4f62d2125600d51" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.261Z", + "updatedAt": "2026-02-24T10:49:32.842Z", "postProcessHash": "6ba06d1f6e94f9f8bc9dd9a4c289f55d33cb183563e76a000ca7bbe8575b1cea" } } @@ -54918,19 +56070,19 @@ "774db99efcf187fd85ea22f0f07cfb6cf5fb6cc68251b2913b976e914e74a951": { "cc59400f1e7b6cc7c2ce5902dae7bd2a641bff181193f2f3f16b2cc24b094add": { "zh": { - "updatedAt": "2026-02-19T02:24:09.076Z", + "updatedAt": "2026-02-24T10:49:32.685Z", "postProcessHash": "8906063e9e65110a81c13e0b9c9d2e387932429614545c441dfd986b3d5e3ebe" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.090Z", + "updatedAt": "2026-02-24T10:49:32.694Z", "postProcessHash": "27ee50bd3c1244c541a78248e2ae5bba4ed1718c59c5eae4a9500df066c0aefa" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.060Z", + "updatedAt": "2026-02-24T10:49:32.671Z", "postProcessHash": "7021bcca7d62ee663124e800241dbcb400244493f00cc139410d912657fc36d2" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.186Z", + "updatedAt": "2026-02-24T10:49:32.783Z", "postProcessHash": "d6ee1270ca5df312bfc072995ff56fcecb0e33dc79e02f83f7bca76bb300e45b" } } @@ -54938,19 +56090,19 @@ "4da7a2a8dcc0e8244d17285e749f8d2f66e7c939010b06d93f9506b5e0443395": { "5d4659d3e6e8c514f951b33a0e387bbd5340061d0fa6ede0b8d63a27a889570a": { "zh": { - "updatedAt": "2026-02-19T02:24:09.220Z", + "updatedAt": "2026-02-24T10:49:32.803Z", "postProcessHash": "4f6e6c2465dcb5e419cfb4490536a5e632782fa47282d656d2cc41f1a0173de0" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.230Z", + "updatedAt": "2026-02-24T10:49:32.813Z", "postProcessHash": "af43641fbb074d300c972b709809ed688e65ec09542fe184fd5297f1a0367746" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.243Z", + "updatedAt": "2026-02-24T10:49:32.825Z", "postProcessHash": "7c5b8ba9f23aaf091dc52813bddf19fbfb93d209eee0c1e6613c74cd0a30f883" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.256Z", + "updatedAt": "2026-02-24T10:49:32.838Z", "postProcessHash": "e59dc10fdf2295806287dc71f0ab59082be41523fca3f35e5f56b12ce9383f3c" } } @@ -54958,19 +56110,19 @@ "8a9dc951991e7089ccd4e1eedd2df9ce190a4888a63408845057666bec28693d": { "3ea6e01fdab2aaecd5561d6a3738320c4c955d0937ec5157cb9ac2e69e3fa30b": { "ru": { - "updatedAt": "2026-02-19T02:24:09.221Z", + "updatedAt": "2026-02-24T10:49:32.804Z", "postProcessHash": "525b1b5904bd3a4f1ede52fea7480e84df3a895b478e17d8501531e38f4ba0bb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.226Z", + "updatedAt": "2026-02-24T10:49:32.807Z", "postProcessHash": "1bd517214395f0da20913a0edf5248fdcdd6177ded8d65d15996da8f3678e9e4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.220Z", + "updatedAt": "2026-02-24T10:49:32.803Z", "postProcessHash": "5ac84e9d462918541c5dda231eb1f52b194d0965af30acd1b0f408126ccbc350" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.252Z", + "updatedAt": "2026-02-24T10:49:32.834Z", "postProcessHash": "714e33131ac414c01adf9a1259f2b27c9405eb67daf68d1ae00c0a018b0227ed" } } @@ -54978,19 +56130,19 @@ "e0416bafda40f9b0abd3190774a6d8b8b6fecab49f9676913bac6e5e053b382e": { "aa3e533069b101ec06bf29cb5c1935709f54b0a36858f4636f093f238b277647": { "zh": { - "updatedAt": "2026-02-19T02:24:09.077Z", + "updatedAt": "2026-02-24T10:49:32.686Z", "postProcessHash": "6654fea34bc9331452f1f41f95104e4eed60a2895b61576c1e18c6de058c5261" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.067Z", + "updatedAt": "2026-02-24T10:49:32.676Z", "postProcessHash": "7b6402f41ca1c97095c4db7170bc95383e5618534977b9876f767883e3da27c9" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.094Z", + "updatedAt": "2026-02-24T10:49:32.697Z", "postProcessHash": "85db98062773c3ced6f8d4c9d920d46b6af70c01ebfc2f063b2897538f311ce0" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.183Z", + "updatedAt": "2026-02-24T10:49:32.780Z", "postProcessHash": "8702a74c5e3a8389b3d241d77ad9b010c38eb4d303479bd1ac1da8c32800c421" } } @@ -54998,19 +56150,19 @@ "6bec8fb9d627bbc8d58479b40c1ff2e2105bf84d0574e514ce2d4a909b35d280": { "9892fa9d4ee47152dab0a70403163228e13146e378a484ac01ec35395c96a186": { "zh": { - "updatedAt": "2026-02-19T02:24:09.286Z", + "updatedAt": "2026-02-24T10:49:32.872Z", "postProcessHash": "3f97f5ce3a5135a571368b8ec9dfc44acfe51f8829295ae38a0216ebe2c79852" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.279Z", + "updatedAt": "2026-02-24T10:49:32.863Z", "postProcessHash": "340ef0ab5180da2ea399e1184659d15f4d800815ffcf1760699f636c136b4d75" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.331Z", + "updatedAt": "2026-02-24T10:49:32.933Z", "postProcessHash": "6b47d544d572cac89965bbe6eca8b89de878792837d01762c3545866eac862a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.358Z", + "updatedAt": "2026-02-24T10:49:32.960Z", "postProcessHash": "f5a4de0043f34bf747642ddecc7e137cd6ceb79757838d27cd10fb9a813ee38f" } } @@ -55018,19 +56170,19 @@ "d600a99ead8b0977fbdf31462c610327f9207f07a47047e4cfafebac76ac6789": { "ba98a569e23d5a0b5a2bee157907242c18d05d010d12a96d4526528db77500b5": { "zh": { - "updatedAt": "2026-02-19T02:24:09.078Z", + "updatedAt": "2026-02-24T10:49:32.686Z", "postProcessHash": "b440aba6aedb14d8b49197e5b73a22be15fb4100ffaa22b66edc8fe9700a50b3" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.080Z", + "updatedAt": "2026-02-24T10:49:32.687Z", "postProcessHash": "78385117d611fbb9ccc8936ca1a5e91fadc350a437c5e6213143383b1d4681c8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.072Z", + "updatedAt": "2026-02-24T10:49:32.681Z", "postProcessHash": "79f0ac36b636ffa27a801c3b37c5a05877df71e945e61ffe2075b52802e4c1a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.112Z", + "updatedAt": "2026-02-24T10:49:32.713Z", "postProcessHash": "a7eedff194960a37a51d85ecbd0db76d9ab83f67caa53e622e21ef7c996a6850" } } @@ -55038,19 +56190,19 @@ "6c4d95e5c9add2129eec07c7db776b15731e42064678712cecf1b19d27e9fe1e": { "26bab87ac6555b58f09e971a206121597dc934bf1607e0bc1d1c1ca74b3c8ab5": { "zh": { - "updatedAt": "2026-02-19T02:24:09.016Z", + "updatedAt": "2026-02-24T10:49:32.628Z", "postProcessHash": "03b3c36f8339c6f2fdba3e82b24c140e8cbf1e911121e4e0b6eaecae31c9b1b8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.012Z", + "updatedAt": "2026-02-24T10:49:32.623Z", "postProcessHash": "52821f095c2415db10c2dca47b1c3996708e19d4220cf820c1348f82239305b9" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.081Z", + "updatedAt": "2026-02-24T10:49:32.689Z", "postProcessHash": "2bffbbf8c4e580a60031e783c9b80a917217cdf1b1300cb72155bfaf975d9ab6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.117Z", + "updatedAt": "2026-02-24T10:49:32.718Z", "postProcessHash": "c458117bb9bd4ef6db7a582f54f874aae60e40a5e7ed4ad9fbf0a843b6d06a10" } } @@ -55058,19 +56210,19 @@ "c97c8d3fc1255144232e48ef1068845cf9a505bf268924eb00d02e4a764b06d4": { "cbf44b30af8d393437b434943a6b72c84ddfbb0c5021ffa6ee01fcee470fce64": { "zh": { - "updatedAt": "2026-02-19T02:24:09.016Z", + "updatedAt": "2026-02-24T10:49:32.629Z", "postProcessHash": "16318728cd79e90b5a7be57591fab378a0bbd83a947052bc7c5f0b5745651673" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.011Z", + "updatedAt": "2026-02-24T10:49:32.623Z", "postProcessHash": "d070a83781226d5f96f72ae5d7f9ce826325e7c75aa5e539ad4d19e1060d1adb" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.015Z", + "updatedAt": "2026-02-24T10:49:32.627Z", "postProcessHash": "d337dec79e7617affc078de5ea0ae84861cb8eb5ad6098536fd3a0f593bca97c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.052Z", + "updatedAt": "2026-02-24T10:49:32.664Z", "postProcessHash": "cc3d69064dddf59cf1b34c96033b09ed8e2bb5b1fb9ad772fe1d80a540b21430" } } @@ -55078,19 +56230,19 @@ "aa965228754f809fd54c3e57e8b77d0a2e9c4a048e0e68cef7ae8c333114457a": { "f9ce484d23646e185c37dd955d8f8211aaac0ff9716bb25cc7a6c1dfc7722732": { "zh": { - "updatedAt": "2026-02-19T02:24:09.153Z", + "updatedAt": "2026-02-24T10:49:32.752Z", "postProcessHash": "9503c3d1f69c8825baef824f1528bc0bb2b3e8dfe0478382f2da8df3ebc509e0" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.158Z", + "updatedAt": "2026-02-24T10:49:32.757Z", "postProcessHash": "b8d1cb08f2dcc58a31109d5a9acb65feb9decfaba3a792cccacf273b77ee7607" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.139Z", + "updatedAt": "2026-02-24T10:49:32.738Z", "postProcessHash": "65c95b387a59ecae0ba7efbb103fbd9defdbc7fa7980b825d124594c9ae80945" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.178Z", + "updatedAt": "2026-02-24T10:49:32.775Z", "postProcessHash": "5ecbc79d55ce5868da8dedb50f49a94c7bbcc00ed726555c75b33e7503a3bfcf" } } @@ -55098,19 +56250,19 @@ "db4a603afaa721633684ab401b86356ad8252b3e4987d3d7f3a1c55750046ef3": { "c71c72e22f263d7e5cb4b6bc6151025b50d1a6999e50ff20143e7d9570eab7e8": { "zh": { - "updatedAt": "2026-02-19T02:24:09.153Z", + "updatedAt": "2026-02-24T10:49:32.753Z", "postProcessHash": "f080705bab0cf6c730ca1b98f4b2d1cace5f5ea774a545034c4b22cd807fb41f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.164Z", + "updatedAt": "2026-02-24T10:49:32.763Z", "postProcessHash": "a83f89a51480901146348052c7bf4d86bb0100e769064d0a7f0470f84f68a630" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.155Z", + "updatedAt": "2026-02-24T10:49:32.755Z", "postProcessHash": "00ef1cff36e55b37922eb94720f2f12a81e849ca99532e0c56a261d4bff40328" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.181Z", + "updatedAt": "2026-02-24T10:49:32.778Z", "postProcessHash": "a8f7ddcfd1614d7e0786d1816de4a5edbbe7cd6c3bfac828ac0b6558a206324a" } } @@ -55132,19 +56284,19 @@ }, "deeb4830e0b99b1ec3e055dfeac854f8548d1939d465b5b976f653692a679719": { "ru": { - "updatedAt": "2026-02-19T02:24:09.164Z", + "updatedAt": "2026-02-24T10:49:32.763Z", "postProcessHash": "f6f2deed7263ee2aea93a17e8ff2d670aeddf288f4e82ff8d6598ef2d51df0e7" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.165Z", + "updatedAt": "2026-02-24T10:49:32.764Z", "postProcessHash": "fb2b84a7555135feb54aa1e77b37c0d6603008b8a3920df0993cdb77a91dd3db" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.165Z", + "updatedAt": "2026-02-24T10:49:32.764Z", "postProcessHash": "bb76454149014f7bdc36f7863393db6012f24efc75be9e7938112034bd50338a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.182Z", + "updatedAt": "2026-02-24T10:49:32.780Z", "postProcessHash": "799fda7013475177d5a9b3adafefafdec88f8f261f43a617585c73cbfa391fe0" } } @@ -55152,19 +56304,19 @@ "baa5800841c33574a763c76d84029b7167e28cd0e383b549d3c87bdde30230b1": { "4e66ec48e4681668b3829e07df4225df08079780a33326c20145dbd63d2cf115": { "ru": { - "updatedAt": "2026-02-19T02:24:09.223Z", + "updatedAt": "2026-02-24T10:49:32.806Z", "postProcessHash": "a3e1431145e4820cfeac27708b19095df00f2180627147668b67ba010acc53cb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.246Z", + "updatedAt": "2026-02-24T10:49:32.828Z", "postProcessHash": "4b44f18b0ddedb74045f61c47a88c174bb7714e89989b92f29093af11ae54d97" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.213Z", + "updatedAt": "2026-02-24T10:49:32.797Z", "postProcessHash": "928622a94290e5f9b1135290c7e7ecfecec4a052cf03ce15d427f01e1bdebea1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.256Z", + "updatedAt": "2026-02-24T10:49:32.837Z", "postProcessHash": "4e006e3c7fa9d1aed5b150df1e82ecb41701950cca580b5aba0609d14ea17c9b" } } @@ -55172,19 +56324,19 @@ "6999f92f0023fe1dd1e922ddaaf1df722f316e49e43a1f46219683d3add8c812": { "9280cf92c0f64187017d3e623d9d06cf5122c9cca98da66abea3317bbf634e3b": { "zh": { - "updatedAt": "2026-02-19T02:24:09.154Z", + "updatedAt": "2026-02-24T10:49:32.754Z", "postProcessHash": "6ff97b094763880e16d5d718c47c75784ae23f08beb66d4d12f81058fb0dd861" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.133Z", + "updatedAt": "2026-02-24T10:49:32.733Z", "postProcessHash": "897b020f973f736f9193a6c129f226d928b1ecb6e212f973125498e8e7cf40cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.154Z", + "updatedAt": "2026-02-24T10:49:32.753Z", "postProcessHash": "3d36090e5d2c4b45b214577349e9f255fec1b189eed042a130f6ec2b593e4a44" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.171Z", + "updatedAt": "2026-02-24T10:49:32.769Z", "postProcessHash": "921b9836bb9e5aa7efc745489204fcca9d3096f166d8ab8900d707a3ed10c1d5" } } @@ -55206,19 +56358,19 @@ }, "2bc00dc50640f283a4419149f33ae42e6f623b6c802fd1ff8bb71a3d8bd17f9b": { "zh": { - "updatedAt": "2026-02-19T02:24:09.020Z", + "updatedAt": "2026-02-24T10:49:32.632Z", "postProcessHash": "e648d646c5ee13c9d0c4c6a71699dad8f0d860b54554b22c8cb3801a79f0a7a3" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.021Z", + "updatedAt": "2026-02-24T10:49:32.633Z", "postProcessHash": "28743fbd252892628df2f053d4f5c1f020cda16911c0d15286e091756fee8577" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.021Z", + "updatedAt": "2026-02-24T10:49:32.634Z", "postProcessHash": "5bd15e8ab954e33dfacc7b0c3d20fcfe631ca9f211f1577a579b3ea87068d929" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.054Z", + "updatedAt": "2026-02-24T10:49:32.665Z", "postProcessHash": "8f0b66e53d82526990eaa719781509482c6fc043e483c729f082350621fd438d" } } @@ -55240,19 +56392,19 @@ }, "dc123045c6b5042b3d614457608b29bb8672c7427fb8fabc62bab111e91f1df2": { "zh": { - "updatedAt": "2026-02-19T02:24:09.105Z", + "updatedAt": "2026-02-24T10:49:32.707Z", "postProcessHash": "afef5ff5646f2a8ed09da0466ec4fc27a38cd605ccb3e01ea9d5141fb643c02c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.106Z", + "updatedAt": "2026-02-24T10:49:32.708Z", "postProcessHash": "791be4aaaea9e283ef9c6bb75d0c6bb325f9a541bfdd870ae2eafaa14427aa5d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.107Z", + "updatedAt": "2026-02-24T10:49:32.708Z", "postProcessHash": "21a13800d5f34c249196429ae00fe39e974adc1564ae84ed9bf581127816b50a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.114Z", + "updatedAt": "2026-02-24T10:49:32.715Z", "postProcessHash": "03a74505fd52d9576685ce4efd4ec9e1b95786a36adc7bab2ce0b284c8c6edc6" } } @@ -55260,19 +56412,19 @@ "89191e0f0f3ac7ad6fcbe90e008723be94527b1dc5730c24b0ef28b7567b621a": { "db61043ee1c3c508cdf7d9dd474714bef6965ab628e609c3b20ddf986ef02cc9": { "zh": { - "updatedAt": "2026-02-19T02:24:09.155Z", + "updatedAt": "2026-02-24T10:49:32.755Z", "postProcessHash": "3a60ec5c6f32e2ed28830463ddf8cb36ca67363c82cbdcf1c20a922abb8a666f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.160Z", + "updatedAt": "2026-02-24T10:49:32.759Z", "postProcessHash": "bd104930afdc23bbdef920b1961eefa1416d8526ddbbed7763859b2e49ca7224" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.160Z", + "updatedAt": "2026-02-24T10:49:32.759Z", "postProcessHash": "1ca59c0d5b9e148aa49b1b71892dd8f7756410aada66cac7c4e4325108c62d79" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.186Z", + "updatedAt": "2026-02-24T10:49:32.782Z", "postProcessHash": "4fac0851ca7cab22c104060f0e637270cda2c82b989912293fe1cc569f444fb3" } } @@ -55280,19 +56432,19 @@ "e9514b207fd2f0999e54604bcc5f81ff6fdaee6511cc23ec24b5e33bcbd7a748": { "9824c5507b882758b8df0cd7ac8ec6f8ec745839288f88d8cad0156e2ed55258": { "zh": { - "updatedAt": "2026-02-19T02:24:09.161Z", + "updatedAt": "2026-02-24T10:49:32.760Z", "postProcessHash": "99e9cd074d76d74d290b9d6d4126a078557e51309a89f6103debf219016fdc92" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.163Z", + "updatedAt": "2026-02-24T10:49:32.762Z", "postProcessHash": "12b5bec61f8b4c4ea8e3add4e50e71502d03e77656bb8692b2611015ffc5728d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.163Z", + "updatedAt": "2026-02-24T10:49:32.762Z", "postProcessHash": "0dbbed0b0696605e7e49845d0710f792f6ab4dd5a146d59be9dde9a2caac8fff" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.180Z", + "updatedAt": "2026-02-24T10:49:32.778Z", "postProcessHash": "ab2b0b5cd59e73ce5e44e235aadc258335db448a01a5660ec7950d4c9c831239" } } @@ -55300,19 +56452,19 @@ "bb75403cac8908b2d1e0f7435d3c432ee901f13dfdca991fb73204120a85338c": { "0a7663696896ca536cf8c5b6b0059cce8944689bcec816f2b5c5b41720cbd804": { "zh": { - "updatedAt": "2026-02-19T02:24:09.162Z", + "updatedAt": "2026-02-24T10:49:32.761Z", "postProcessHash": "bb171f436c182f20fa87920fbd5526429a924f8fb07d16208b586fb167ddf36f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.159Z", + "updatedAt": "2026-02-24T10:49:32.758Z", "postProcessHash": "db1b290173ecf75bb6219030a729ffc935b53aee3ce33ec9ab8cdb7d3642a673" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.143Z", + "updatedAt": "2026-02-24T10:49:32.742Z", "postProcessHash": "9e5201f807825a3dbd9bc4122798d7fce0d6cbe7a829d0f0c5332919796d5c2f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.172Z", + "updatedAt": "2026-02-24T10:49:32.770Z", "postProcessHash": "f51e88f0f5a5530ee91d94e776f6234bf757c0c9e2728088978b53aa7e18c7b4" } } @@ -55320,19 +56472,19 @@ "c66448d10c048389547620c0efc34decc72e9f80bc32daa2c49d957e3c02fa1b": { "1f29d5a37e6fed39b5f9602645e28d9fa470dce74a39a6c598dbd0a16867a37c": { "ru": { - "updatedAt": "2026-02-19T02:24:09.226Z", + "updatedAt": "2026-02-24T10:49:32.808Z", "postProcessHash": "fb65084f202689f4ee34716a2315054086519aa0cbfe0c514ca7d1c7017d83a1" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.148Z", + "updatedAt": "2026-02-24T10:49:32.747Z", "postProcessHash": "1af7c5cd828772a70e5756398de03007e47190f46d1528189efceb2618fdec6c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.222Z", + "updatedAt": "2026-02-24T10:49:32.804Z", "postProcessHash": "550c171f01618c3f88ebee516dd1c84e88a03ab69928b3ce2e5c8ad50661a6ac" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.254Z", + "updatedAt": "2026-02-24T10:49:32.835Z", "postProcessHash": "1ba0f348ebd1accc387e699b801cb0f2cb09638b5b517a9db14f84be72397718" } } @@ -55354,19 +56506,19 @@ }, "b52ba3cde1f3314b3bc43d0e7007583192a70f0e98b08a75669a3f9bc1c68636": { "jp": { - "updatedAt": "2026-02-19T02:24:09.032Z", + "updatedAt": "2026-02-24T10:49:32.646Z", "postProcessHash": "2317fae999b852f028e1b44ad72f757db48944f7fcf633aead912a62222a360e" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.033Z", + "updatedAt": "2026-02-24T10:49:32.646Z", "postProcessHash": "836aafcc12c7d4d6473fed9978b9b4ac2e536087f302fddad3462d4355f7479a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.033Z", + "updatedAt": "2026-02-24T10:49:32.647Z", "postProcessHash": "6cd76e206b7a3e8e5a459f9a8439d282952f5fb236efde0910eba68201a42e1f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.056Z", + "updatedAt": "2026-02-24T10:49:32.667Z", "postProcessHash": "dc784850c5a4f41b1bfe641f5ae8015f89098c7ba3af53f4a0086a3a1f879510" } } @@ -55374,19 +56526,19 @@ "a36c558e3cc8eb2a3b03c01a4286bfac9d72237977464d90e7395a10cf2209e0": { "94ce7d6626e94f915dc3f8c3c80748074f7c1a750f5800beccd7406817b5d19f": { "zh": { - "updatedAt": "2026-02-19T02:24:09.081Z", + "updatedAt": "2026-02-24T10:49:32.688Z", "postProcessHash": "03874ad730b8ccc983836110b6604480a9737c1837b6bfeb35232bd6b437a31f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.092Z", + "updatedAt": "2026-02-24T10:49:32.696Z", "postProcessHash": "5c669066a06859611730bd1e474aa246bd1ab5c3a3af81808bfb645c65afd830" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.079Z", + "updatedAt": "2026-02-24T10:49:32.687Z", "postProcessHash": "1d1e815a48422873ec06758a996fd1e2361d7667443f494ffbe8db3e0bcffb89" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.176Z", + "updatedAt": "2026-02-24T10:49:32.773Z", "postProcessHash": "bf64f7053e0ad7d23f5f4ce48f08d09a7f027305c5ddbd8b64981bb1dd6e2b51" } } @@ -55408,19 +56560,19 @@ }, "aae4a0e5bcf6f6bfe34820345686a30d6ee18944690b549e53826932d50cc819": { "zh": { - "updatedAt": "2026-02-19T02:24:08.953Z", + "updatedAt": "2026-02-24T10:49:32.559Z", "postProcessHash": "4594edfe86ecb060298ba8335788c3640098f88f47dc0c9d395ae171a6e962bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.956Z", + "updatedAt": "2026-02-24T10:49:32.562Z", "postProcessHash": "ebab7dd27fca2e09d7ac04a138a5490bc5a9f4535402f122012e1ba7d066bd56" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.976Z", + "updatedAt": "2026-02-24T10:49:32.583Z", "postProcessHash": "82cdc6d922cd3ae6acaca325d604fb683f0de235fdf3bdff892a7bbb0b5b4d4b" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.986Z", + "updatedAt": "2026-02-24T10:49:32.594Z", "postProcessHash": "0d75cdf83f96ba4995999c8ae23115e1be907133bd60f892f7780f2f785c7829" } } @@ -55428,19 +56580,19 @@ "561284460b1fb2a4c59ce07e83be4fee1a8ff052b66a64ff66141a296715102c": { "30382cd05cdfc447ce68389ab117d0b72fb4faf154b6c67bed6c57d0ed565d98": { "ru": { - "updatedAt": "2026-02-19T02:24:09.229Z", + "updatedAt": "2026-02-24T10:49:32.812Z", "postProcessHash": "c2ec88bbed1ffe486869335e72b7c26cc9a05fffcbb098a5636659b0fbb4cd3d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.235Z", + "updatedAt": "2026-02-24T10:49:32.818Z", "postProcessHash": "78225e046c02cb6715aac32fb41f664e99a36fecbf97f4ddfddc520a8f888b11" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.239Z", + "updatedAt": "2026-02-24T10:49:32.820Z", "postProcessHash": "2c9a0809aab254d80deefe22e1f422c665e84c1b9eaa75cba91d857bd0ea9f7c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.261Z", + "updatedAt": "2026-02-24T10:49:32.843Z", "postProcessHash": "c5f938d2e8aa2254f9a0ceb6ef90d901f2d51055427358fb64ec3de460fb764f" } } @@ -55448,19 +56600,19 @@ "8b014d0b3ce023d8c15fd8c5eb2d350cacf9cf3c41dd4b69ff25dd2351d35db0": { "891d96677ae497189e4ef48d65804e3b886d35381aa01b9dd409f5c32ee066aa": { "ru": { - "updatedAt": "2026-02-19T02:24:09.230Z", + "updatedAt": "2026-02-24T10:49:32.812Z", "postProcessHash": "db2275d81a8a3a743c52a25b99297136dd54e81cb112c2ea658fc6e0c235bf02" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.236Z", + "updatedAt": "2026-02-24T10:49:32.819Z", "postProcessHash": "88d16b7eeb4ba7bd09d8419a2806607334aecccb9ff20174da139fb528ed8fd4" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.230Z", + "updatedAt": "2026-02-24T10:49:32.814Z", "postProcessHash": "1b90d5674bc43919be31dc5a42d57be339a0e221000bd70017b3245af84d6d20" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.251Z", + "updatedAt": "2026-02-24T10:49:32.833Z", "postProcessHash": "27760c0725706ba1f250eff39bbc18da16042a212ba89a5117be6796ddcf3f44" } } @@ -55482,19 +56634,19 @@ }, "d5997dc09dcdd4d7bd3cd34211e4609d427899160d1fc9b55847828d6236b7c6": { "jp": { - "updatedAt": "2026-02-19T02:24:08.955Z", + "updatedAt": "2026-02-24T10:49:32.561Z", "postProcessHash": "ec2f0c51f99806a3e153cf608bcde22ef0c9b7266f2f52d936d383ef92e8008c" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.956Z", + "updatedAt": "2026-02-24T10:49:32.563Z", "postProcessHash": "a9432f533651b9b2e4c10b18a13be591b60791e754fbf8cae3273c5f10f57a0a" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.976Z", + "updatedAt": "2026-02-24T10:49:32.583Z", "postProcessHash": "ff8266665cf4edb975ad67efba84cc1c52902189644ae1881b549eb2d7c40f1f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.051Z", + "updatedAt": "2026-02-24T10:49:32.662Z", "postProcessHash": "26891de12184750828f34a11c655f6e375c9b838468d71837c7fb1e005530f07" } } @@ -55518,19 +56670,19 @@ "2e86bca26b2ac693c6c25e4a60919c546b7872ba88d487d37cba83528dd4c1c0": { "82625a723fba7e62c237b3557661bd75bff3e41b4de031a888fc315f70bf8f60": { "ru": { - "updatedAt": "2026-02-19T02:24:09.085Z", + "updatedAt": "2026-02-24T10:49:32.691Z", "postProcessHash": "0c74ef48906eda3d722896d96351cb0202b348bff5692813cfc602f6434924a8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.066Z", + "updatedAt": "2026-02-24T10:49:32.675Z", "postProcessHash": "c94e329d96a4bc5e1fa15e93b3a0908e0f47b06633a44b0c917f3ef8cfdae6ab" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.094Z", + "updatedAt": "2026-02-24T10:49:32.697Z", "postProcessHash": "ff110cd5a0a09f204d9600a9952215dc751b5fa312144864f47bd764d03cce1d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.110Z", + "updatedAt": "2026-02-24T10:49:32.712Z", "postProcessHash": "ec2b96de578082283fca39ba4125132b63616be992696bdea8150f33d6a88569" } } @@ -55538,19 +56690,19 @@ "03f4f6675beb54a72bd7e3d62bec8c07f1c24ef51dcd84e88ba10e86e3a5a9b7": { "eb1beb44798239cd7a4b527f6d7acf65bd7638560f8fda08cbea63789789cbab": { "ru": { - "updatedAt": "2026-02-19T02:24:09.086Z", + "updatedAt": "2026-02-24T10:49:32.691Z", "postProcessHash": "d4e1d3f3a88823acc2cbaffc89f728261f36b891ff7328529017d519f4eef950" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.103Z", + "updatedAt": "2026-02-24T10:49:32.705Z", "postProcessHash": "5047f562d1ddee3f7676e832e3fc524b46e90aa608de48b80f0c6c3fcdf7926a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.099Z", + "updatedAt": "2026-02-24T10:49:32.702Z", "postProcessHash": "c0c69bd145c09734a0bc829c2ee4cf005b3390000d72d973e89699a1b4d43a1d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.117Z", + "updatedAt": "2026-02-24T10:49:32.718Z", "postProcessHash": "df4dec4f5a971886df143dd59d53ade5fe7d1dec4380fe1bf9d1a5902ecd1392" } } @@ -55558,19 +56710,19 @@ "32ffa87be40ab5f31e20d44d8997706429f8284873cee16bf953aa7c8a533e87": { "987df6e0573b5dadab1d721fb8b42546edd8a72a4c4ef547c90da774cfdc0384": { "zh": { - "updatedAt": "2026-02-19T02:24:09.156Z", + "updatedAt": "2026-02-24T10:49:32.756Z", "postProcessHash": "4706ac0730d08f6f1ab820b3dd23f714ceac70570c4ddbee03d9e03c2454e913" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.147Z", + "updatedAt": "2026-02-24T10:49:32.747Z", "postProcessHash": "c1c4898801d8e733cb618ea11acb6b5304ecd7aebbf2e3ceaed32c48cadcbaec" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.152Z", + "updatedAt": "2026-02-24T10:49:32.752Z", "postProcessHash": "9c6d049c1e5b458e861d7ea8cbb6cf42e379708db3305aca6458273bc6c6c9cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.184Z", + "updatedAt": "2026-02-24T10:49:32.781Z", "postProcessHash": "ad24fc98b754a1b109fc5e88b858b177b9910aaf8aaac0034dc3af9e70b92c6f" } } @@ -55578,19 +56730,19 @@ "a2e55a90379e6ffc005d5cc760c9bf50e3a6631ad77cd354c2d442860ad851ea": { "a0801c6bb244ad72c6b1b26969b590462545f49f3c2c06d4078fe79f62be5841": { "ru": { - "updatedAt": "2026-02-19T02:24:09.097Z", + "updatedAt": "2026-02-24T10:49:32.700Z", "postProcessHash": "a7421101de676d8725f1e9a90719830f048cf7c4f55bba40e976fce06b8a79fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.091Z", + "updatedAt": "2026-02-24T10:49:32.694Z", "postProcessHash": "4f90b32df9ea27d54ae0bfbfbb7d26993d436a1d5d3d5f3eee31df9ce95ceaf6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.014Z", + "updatedAt": "2026-02-24T10:49:32.626Z", "postProcessHash": "b9baea647e814630f53f82c26636515f4cd26d5922935bb2ef9c526c09add42d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.115Z", + "updatedAt": "2026-02-24T10:49:32.716Z", "postProcessHash": "ddda64a6a6c4227e020bffc6a9d4671bd0e1ddae2ae8d622ea74a6fb7f7c9316" } } @@ -55614,19 +56766,19 @@ "459dcfc8cfcb0c798eda34051037eaf36f0e8bdbf413d5ca0f86faf6d1ae4e24": { "f469d58719f2670441a26ddce21a692caf6821dcb698ad90eba442b062adb5aa": { "ru": { - "updatedAt": "2026-02-19T02:24:09.089Z", + "updatedAt": "2026-02-24T10:49:32.693Z", "postProcessHash": "ff040cd9fe24236f09181c6e594796a5034f5e98af4de461a9878c4ae1381a30" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.069Z", + "updatedAt": "2026-02-24T10:49:32.678Z", "postProcessHash": "da574e6ef07be0f3b7b069fb682901bfc2807ab85e8cb83074e2b232b131c843" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.080Z", + "updatedAt": "2026-02-24T10:49:32.688Z", "postProcessHash": "6b42ca4edbef3cdb1f388d141f95a14eb620e4391540825aeb078d8904beb08d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.111Z", + "updatedAt": "2026-02-24T10:49:32.712Z", "postProcessHash": "675d8d04ee747b49ac7136aa32c146fd9b402b480d8311e21beb6fd89666219c" } } @@ -55676,19 +56828,19 @@ }, "a43bba009e5857e9724bce35d0170c61353ba5d065e036fab97f6c1351e76839": { "jp": { - "updatedAt": "2026-02-19T02:24:08.975Z", + "updatedAt": "2026-02-24T10:49:32.582Z", "postProcessHash": "7f2d11875eb439e2d0761c08b53da2abfbb7a9e871e2af4bf95a0c093b7d401e" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.977Z", + "updatedAt": "2026-02-24T10:49:32.584Z", "postProcessHash": "b580f43a6ceab1419b4a2e769ffea66207f41828b012bcdb1c16476d2451024d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.034Z", + "updatedAt": "2026-02-24T10:49:32.647Z", "postProcessHash": "dd215e4b2eb56fd45fc850364149e65fb57ecbd92d0eb95528858b479bbacbdd" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.051Z", + "updatedAt": "2026-02-24T10:49:32.663Z", "postProcessHash": "0821a3bb25f32922bba5a8abfc3a4e7a5b2fb8126977b5344c48838c00abda73" } } @@ -55696,19 +56848,19 @@ "299acd2896dbdcc7fc9ec56b51b4a1990b56dd0fe41acb3e57f9cae1bd915ac7": { "99ca8337276f2850a682286f3aa13f69597377997f305892b1182845150c4e2e": { "zh": { - "updatedAt": "2026-02-19T02:24:09.233Z", + "updatedAt": "2026-02-24T10:49:32.816Z", "postProcessHash": "ef3949259dc24e21fb79e3802c4eea5274192430dfbeb2dfdb7f019999a7cfa5" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.247Z", + "updatedAt": "2026-02-24T10:49:32.829Z", "postProcessHash": "cdd3554a34db824fba17a52aaaf6976ad99f2df2f092f67a98a24f68d9efa182" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.193Z", + "updatedAt": "2026-02-24T10:49:32.788Z", "postProcessHash": "0e310b0ef2e824e076993166fa73b95de34030cd34c0eb690fa3ee7bf3f890ea" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.257Z", + "updatedAt": "2026-02-24T10:49:32.838Z", "postProcessHash": "2e6fa8f89ead293450c22c74a5038c76fb94221ceb2e7f1a71baa178c392c65a" } } @@ -55716,19 +56868,19 @@ "3246877b14617a738e90832de040052391f7c8fc094ca44b2455eef30fbf314e": { "d6d3906022ccc3319721785ef9aa9f57093fc737336e72eddec0d952f2c844d7": { "zh": { - "updatedAt": "2026-02-19T02:24:09.325Z", + "updatedAt": "2026-02-24T10:49:32.928Z", "postProcessHash": "0eb77c505f7837923faa463f4268dc3c00e3ca7cc1f11780fc2c3fd6713a825d" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.326Z", + "updatedAt": "2026-02-24T10:49:32.929Z", "postProcessHash": "ef5b34e961c19a6018f60d58cdafb465c5d9c4108984679e3af00c764bbc5642" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.318Z", + "updatedAt": "2026-02-24T10:49:32.919Z", "postProcessHash": "0c3ad89659eaf31e2f42216e60abe0e45e8a3e180a193469c59f20da91122c51" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.363Z", + "updatedAt": "2026-02-24T10:49:32.965Z", "postProcessHash": "bbbd3d0fc0f7387d95ae6d109b71a0980affe878150ba5311188fd9ff2ca1b12" } } @@ -55736,19 +56888,19 @@ "3635e79a2e76bb297d10c5dd4637f4fd94275c1ba1081c959a4f02a8d8049bf6": { "69cff4cb3337c445b437475f175d0c1ab8c863e57aa050035a2284326ea56533": { "zh": { - "updatedAt": "2026-02-19T02:24:09.135Z", + "updatedAt": "2026-02-24T10:49:32.734Z", "postProcessHash": "f22406ca08031b6a3394f44a875745cd9ec929db1612c0396b877c977f95d487" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.144Z", + "updatedAt": "2026-02-24T10:49:32.743Z", "postProcessHash": "a885628c01b5094ed2e356525b3ea3994fdae390b171b6ab920331cad8ff971f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.234Z", + "updatedAt": "2026-02-24T10:49:32.817Z", "postProcessHash": "e1e174150adfaf8e8721b473f6dad372592fef8313bb8a881ffd04a62701f46c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.253Z", + "updatedAt": "2026-02-24T10:49:32.834Z", "postProcessHash": "0f6bd976c5860f0b5120ae6fe5fea1625f7c98f9b383948d4e24eaf432540cd0" } } @@ -55756,19 +56908,19 @@ "c3ae4d87db64f55d260d37bff7580e0a1ff638a6c1bebc984889a0f53e882bd1": { "c8ec9fc9c8400c3e7fc2098760f4d554623fe5eaab093ad69821218853b4e3b8": { "ru": { - "updatedAt": "2026-02-19T02:24:09.011Z", + "updatedAt": "2026-02-24T10:49:32.622Z", "postProcessHash": "e274ae697a0536ab47490a0e2a9d6feeb6ee0d10126b80b4b4e57679f84bff97" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.098Z", + "updatedAt": "2026-02-24T10:49:32.700Z", "postProcessHash": "3a7e99e7ece61d7d9df531889a6b6d11f05f85d73edcca2f254ca4e2be75e26a" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.102Z", + "updatedAt": "2026-02-24T10:49:32.704Z", "postProcessHash": "d4a109f15fe81e5bb6cdd804ea6c63f86c09823965630a614d3278e0698b12e5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.119Z", + "updatedAt": "2026-02-24T10:49:32.719Z", "postProcessHash": "5778551e6f5652778e57be3dde4a1c28e55f2208002f4b2c12461ab2535227d2" } } @@ -55776,19 +56928,19 @@ "7974b5d9fc7e953fa4aecd07c2f6f9176f90a9a89310ebe7fcb27dff7fdf734a": { "b66740bd12022ccefeb425eba94ee09c08528b3a5b347793bb597e953e4f21b2": { "ru": { - "updatedAt": "2026-02-19T02:24:09.136Z", + "updatedAt": "2026-02-24T10:49:32.735Z", "postProcessHash": "4fb540261ff285b927f800bb66e4a283bb2310aa16009e7c772a4fe0f13bbae2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.242Z", + "updatedAt": "2026-02-24T10:49:32.824Z", "postProcessHash": "fa25483e2e6957cb19a580f845a22206763bc0daccca7617ecc4517a8cc7e375" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.225Z", + "updatedAt": "2026-02-24T10:49:32.806Z", "postProcessHash": "ad3f47fa1324975d1fc0061e3b6e88c57ecf19055f9e0f3e1829841545129dbc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.262Z", + "updatedAt": "2026-02-24T10:49:32.844Z", "postProcessHash": "7c9f84e4fdbf4a603534aaed06381b12ef81a4836d0b9f186635126d606662ca" } } @@ -55807,19 +56959,19 @@ }, "83c1d1eeea98d87ba3da3231d2806cc372567257839dc62fd43ae5ea90f39c3c": { "zh": { - "updatedAt": "2026-02-19T02:24:08.995Z", + "updatedAt": "2026-02-24T10:49:32.607Z", "postProcessHash": "4be7b915d531026bac17cc0c58f374b06623b727697945f53b908e6ab6b34918" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.996Z", + "updatedAt": "2026-02-24T10:49:32.608Z", "postProcessHash": "342fc35f8b80414635b94f25378ec526b7e2779a24172d6c5e83301a76afd6cd" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.996Z", + "updatedAt": "2026-02-24T10:49:32.609Z", "postProcessHash": "4b6981e212a7a3ce487c1b7ba441a5477ac0d0dd3d2a78d2ce6bd992e6585d5c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.118Z", + "updatedAt": "2026-02-24T10:49:32.719Z", "postProcessHash": "efcb16bcc36294dfd7026a3267269d2a3b5d586a73a5bca32dacb2ba3ea5acaf" } } @@ -55827,19 +56979,19 @@ "51f9cca65edfee082630f0b1fb8e3a29f4ab177d7d5452a9abc2e1f9b56e3c53": { "96fa3e43effb19ba6584f2d1ae472b68548bb3a136e72cc23135e36bd3bd7b5a": { "zh": { - "updatedAt": "2026-02-19T02:24:09.229Z", + "updatedAt": "2026-02-24T10:49:32.811Z", "postProcessHash": "8c88ff5a375c1ceeffa3f48165c097d6293b3928a22952eaf81e32b21c7c9dc8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.234Z", + "updatedAt": "2026-02-24T10:49:32.818Z", "postProcessHash": "e1e4ef61478d32dbc33d8384fe98356d1e9b78dc34b7451bc1ef490a95103b18" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.214Z", + "updatedAt": "2026-02-24T10:49:32.798Z", "postProcessHash": "48f4ac19ee29aef219cd098515d1ad16b0def9da6a95c000f705025a34a8e224" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.252Z", + "updatedAt": "2026-02-24T10:49:32.833Z", "postProcessHash": "080d1890a76660d60cc5916a7526319b8129c15470c66e8e1e1e211077786c99" } } @@ -55861,19 +57013,19 @@ }, "b12cea079ecc06c9a3d84e944119dba875a9d95adfb681febc0a6194ea83d418": { "zh": { - "updatedAt": "2026-02-19T02:24:09.026Z", + "updatedAt": "2026-02-24T10:49:32.639Z", "postProcessHash": "9a31f945da5957be59092f4b6a3da06aff530461ae6e473a849ae1899830392a" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.029Z", + "updatedAt": "2026-02-24T10:49:32.642Z", "postProcessHash": "3353fd85956bc7ce0c103255a234f7a6dea763aade2040db6e1b6280745d41c6" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.030Z", + "updatedAt": "2026-02-24T10:49:32.642Z", "postProcessHash": "2855a909b86f3e628bbef82144b20cf1e1330bbf64e71b377402e8a44159458e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.059Z", + "updatedAt": "2026-02-24T10:49:32.670Z", "postProcessHash": "c5f3d6d21f0ccdbb83010bbde9edb7437e3cb6fccffe5cbe50e02573b6ee73cb" } } @@ -55881,19 +57033,19 @@ "04bd894d54eb7791d6c20efe6b82643d60ba5f94079895df60cd832a967a8b72": { "b4b191db3e0a1686174b935b4a408eec87a5d10accead9bfce53f6fdb0c78147": { "ru": { - "updatedAt": "2026-02-19T02:24:09.087Z", + "updatedAt": "2026-02-24T10:49:32.692Z", "postProcessHash": "ea8955a39b360c5789c530c3b03d98948318d928fbf66f5dee4500c82e04d74c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.102Z", + "updatedAt": "2026-02-24T10:49:32.704Z", "postProcessHash": "a9a3abe3c958caaa8bcbf17296846516ff0bddb242f35491e4949add096d9555" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.098Z", + "updatedAt": "2026-02-24T10:49:32.701Z", "postProcessHash": "b88a666d313b0230b7cfba55682a3baf805cfa102aec28c09fe178c1094f4a31" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.114Z", + "updatedAt": "2026-02-24T10:49:32.715Z", "postProcessHash": "559917927d8331452f2245c396271b26546a551d567190ff914546dc0758c002" } } @@ -55901,19 +57053,19 @@ "ee7cf7082c51841ba27fc19b990495b38b92128a79d2a323ecbca6bb723f0e8e": { "7deda54447cba9acce76845c952c2c7f4ee86488c276f4a335c96e4c55dc6bcd": { "ru": { - "updatedAt": "2026-02-19T02:24:09.157Z", + "updatedAt": "2026-02-24T10:49:32.756Z", "postProcessHash": "00c3737a47fe87076367c5f47d9902ed50003b8ca68e540b557b4ae3dc6bacbe" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.159Z", + "updatedAt": "2026-02-24T10:49:32.758Z", "postProcessHash": "9be2b5c0b3aa8227805010464eed85f607305f134224b9c9f01260fde9c24152" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.158Z", + "updatedAt": "2026-02-24T10:49:32.757Z", "postProcessHash": "fda4b48e08eead05bcf991f16a558e29fc34cff1ef0f1f86ba18974e19fb7119" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.179Z", + "updatedAt": "2026-02-24T10:49:32.776Z", "postProcessHash": "3daca0bd2f3fa5b2c11aed583f6860dbc838695459ae6ebcfa0ae2b670832467" } } @@ -55921,19 +57073,19 @@ "cbfa6856b07360063ce643d5dc0c1d3cc2418e2639de759af00c6f665fc517e4": { "0140ef2e17d32f74a3b543e6327533884c8025b049e9fdc7af2a729378577a5e": { "ru": { - "updatedAt": "2026-02-19T02:24:09.088Z", + "updatedAt": "2026-02-24T10:49:32.692Z", "postProcessHash": "14ca6cdc3fbc019800d1ab2b245d5f75cfa28484e93aeb91e9a82682a7f0f194" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.089Z", + "updatedAt": "2026-02-24T10:49:32.693Z", "postProcessHash": "6aa71ec4bfb64ac6141da1d33875df04ac54b1fc3ac904c98504f035d296bc4d" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.095Z", + "updatedAt": "2026-02-24T10:49:32.698Z", "postProcessHash": "08b00891741a87bd19db685cd391471622da0a3b2abbe958d09f345186bd2947" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.113Z", + "updatedAt": "2026-02-24T10:49:32.714Z", "postProcessHash": "55435fbdb0801f4f9c3b953cdf8ac7a1238b0a1f8ab832e09224f5d53fd26e72" } } @@ -55941,19 +57093,19 @@ "c91f782ae583639337bdc49114576cfdd9c9355b699a68919bf1bd023713faef": { "bec2f91a18ab29d790a84a8d99cfc87824936240769c4e0889827b57e2472e09": { "zh": { - "updatedAt": "2026-02-19T02:24:09.296Z", + "updatedAt": "2026-02-24T10:49:32.886Z", "postProcessHash": "96472858f38cb719004a2b08f4486e9d1249be74b467d9efbf04ff6eeac79ca5" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.280Z", + "updatedAt": "2026-02-24T10:49:32.864Z", "postProcessHash": "60e3bb97e6840743363aa52c613a740f152ed9859f31336eec9841ab6a5f350c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.277Z", + "updatedAt": "2026-02-24T10:49:32.861Z", "postProcessHash": "bce25c2d42faafc7a5ddf46e0bc226db46499d2f2b49ff7faf8865925997ecf1" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.306Z", + "updatedAt": "2026-02-24T10:49:32.903Z", "postProcessHash": "3ca40c13afbc64d26153138dac331d102f7ed957f5b26ceeec976624388f2e38" } } @@ -55961,19 +57113,19 @@ "abdc65a73d328d0f6587eba73db81db937a7f67106eeb840b67ebf52e35e6379": { "3d443c4abc73eddf8e334725cfa0abf5cbeb70f4475566a8d40953e253b629bc": { "zh": { - "updatedAt": "2026-02-19T02:24:09.093Z", + "updatedAt": "2026-02-24T10:49:32.696Z", "postProcessHash": "6e8c387b0796e22e05587e69f740cff2b1340c55bc22aeab98aea2dfd82f39f9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.101Z", + "updatedAt": "2026-02-24T10:49:32.703Z", "postProcessHash": "2e7fb04929626238e46e7478f004ee07245271484452287ecc0a24fb33d66526" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.104Z", + "updatedAt": "2026-02-24T10:49:32.706Z", "postProcessHash": "21ffa1a2a97ca3e11a0eeb8796e4f9af209867a8691e79d4055e79f3fcf17e4e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.111Z", + "updatedAt": "2026-02-24T10:49:32.713Z", "postProcessHash": "ba640d91a6143c06a7caf126450573d92d14347a1c349f22eff8070ddddcf886" } } @@ -55997,19 +57149,19 @@ "fae1576558dadb0c932329389ce8fbcbeee0d35379cb6c996673cd93aad35a13": { "3c3975cd182172060059f7637ba3d00c8b28a90dce27de128e912a0c986041da": { "ru": { - "updatedAt": "2026-02-19T02:24:09.240Z", + "updatedAt": "2026-02-24T10:49:32.821Z", "postProcessHash": "614cb17c66181d2920e36c452dc405016e814644c75aacb604bf1c252b4301f8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.241Z", + "updatedAt": "2026-02-24T10:49:32.822Z", "postProcessHash": "93c9299c18f94784625059e2cb2f1ba46790078c405a3a2a63ab9069a9c9b633" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.233Z", + "updatedAt": "2026-02-24T10:49:32.816Z", "postProcessHash": "08591097cde9ae41f9e8b63b28285e0acc00a05857d8f8aae827612cb334958d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.253Z", + "updatedAt": "2026-02-24T10:49:32.835Z", "postProcessHash": "24fa5a2cb65e04e22a831f64cb8d14e4cf51ec897e9801b85829194d354ab936" } } @@ -56017,19 +57169,19 @@ "3f14c9de32cc2309c896fed678c5b28a7dbf39af5a00bc45e0fd013b9c4d05d5": { "30c6636556ee6c7c353538457f6b3b57a9f5c21c15e651b2997b487922e38fc3": { "ru": { - "updatedAt": "2026-02-19T02:24:09.325Z", + "updatedAt": "2026-02-24T10:49:32.928Z", "postProcessHash": "834ec5a0adcb1a1341efe7d9314b190b7a42687672519a15428962cc2960eec8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.321Z", + "updatedAt": "2026-02-24T10:49:32.923Z", "postProcessHash": "74c57d7e0b7dd734f111d295a1e656005038dbc7f20581049e3874dcc590218f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.323Z", + "updatedAt": "2026-02-24T10:49:32.927Z", "postProcessHash": "4b2b33173acdf7ee3fed1eac99bba3cd097ed32b6ea6f75f77273ce38c1014a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.359Z", + "updatedAt": "2026-02-24T10:49:32.960Z", "postProcessHash": "f8ed22918bd5b3054479fe8d87fe998532f40b754af023080629ae953a9d9333" } } @@ -56051,19 +57203,19 @@ }, "b7b956c395ea6e55ee99dcc1d604c8efffed05fa53e366dfbb76185b64be9912": { "jp": { - "updatedAt": "2026-02-19T02:24:09.169Z", + "updatedAt": "2026-02-24T10:49:32.768Z", "postProcessHash": "723203eb2190fc18f1a99388d3785ae226e6f7cef770011f3dd63c706cc4e83c" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.170Z", + "updatedAt": "2026-02-24T10:49:32.768Z", "postProcessHash": "6c91c4599ae7bef6b1e7ec8e79dc927c745e71bd9774db3828c13db9b3dd97d7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.170Z", + "updatedAt": "2026-02-24T10:49:32.769Z", "postProcessHash": "ef2d4edeb39a0214dcdec40e152703a83c3086b87806206201918cc0751ba50b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.180Z", + "updatedAt": "2026-02-24T10:49:32.777Z", "postProcessHash": "100f0b6ac9e33e81541fdb827b0919d864ce464b7a6b837da3980737257525cd" } } @@ -56085,19 +57237,19 @@ }, "6ed4cb32b9190bb1623f57931c5a6d0f4b1c675addd26eacf5bf4cc0fdd66305": { "jp": { - "updatedAt": "2026-02-19T02:24:09.035Z", + "updatedAt": "2026-02-24T10:49:32.648Z", "postProcessHash": "8a1428b86cc90a31b5eefbede617ade20e5da25b200eea13ce902a2df4ec6767" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.036Z", + "updatedAt": "2026-02-24T10:49:32.649Z", "postProcessHash": "9ccf2fd79dfa561b9142b2ccf911f0488ed665fa099c980b6254d88306a027f8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.038Z", + "updatedAt": "2026-02-24T10:49:32.650Z", "postProcessHash": "27fa8567fd0ce6b55d8708a70815cbbddfb5e19b56ca73c62c62129823e6cf24" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.059Z", + "updatedAt": "2026-02-24T10:49:32.670Z", "postProcessHash": "629fefdb093d612813202aeaeba6ad71a0c1dd20b183f991f0c166c2d0197132" } } @@ -56119,19 +57271,19 @@ }, "cf2a2ea94b61434c4f36715f7879516680fd02fb369986e79e3683ce032d591a": { "ru": { - "updatedAt": "2026-02-19T02:24:08.968Z", + "updatedAt": "2026-02-24T10:49:32.574Z", "postProcessHash": "0b6b2804cca5aa642b3158e4015fb42946fcb775f91b8bb4926ba7dfc2555031" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.969Z", + "updatedAt": "2026-02-24T10:49:32.575Z", "postProcessHash": "1731093040ac25cb68ca0a1fdb6a57f29dc4a7911a56a30d7bb24b6b4a9f5c03" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.972Z", + "updatedAt": "2026-02-24T10:49:32.578Z", "postProcessHash": "47395f8db473d16f7e3b9ec6d5b79df68df9f702f1fe26967b30fa7fd3d1c38f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.056Z", + "updatedAt": "2026-02-24T10:49:32.668Z", "postProcessHash": "8a995b80b024a4658833dde1e14f46e3a94ad1faa26e7e0518a6c272eb988c24" } } @@ -56183,19 +57335,19 @@ }, "bfcae0a48463fe25dec0024a36705af031e982ab60dac3bf2dd5eb68c119a72f": { "jp": { - "updatedAt": "2026-02-19T02:24:08.961Z", + "updatedAt": "2026-02-24T10:49:32.567Z", "postProcessHash": "88df93a5e55651c42021c8598d47305db03cf46aa751187cc9e476b869537350" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.967Z", + "updatedAt": "2026-02-24T10:49:32.573Z", "postProcessHash": "07f34ac709a3d2423835cdb3f5d40c8bc02ba3fb528733619f9bb1733876025b" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.974Z", + "updatedAt": "2026-02-24T10:49:32.580Z", "postProcessHash": "94bb5725cb6ef74ca3fd1467e0d675570af687f94a3e4bd901dacb8b088cf30a" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.988Z", + "updatedAt": "2026-02-24T10:49:32.599Z", "postProcessHash": "93a5c2930b5e93bfdc2be98996c30e2c9defeb6b924cbb1564a5f51af8180b5e" } } @@ -56203,19 +57355,19 @@ "bca14edd411fa9f3a8a9611aaacff6972d87258f38acd6410fdf5b4d4cdbaa55": { "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3": { "zh": { - "updatedAt": "2026-02-19T02:24:08.873Z", + "updatedAt": "2026-02-24T10:49:32.470Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.898Z", + "updatedAt": "2026-02-24T10:49:32.498Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.874Z", + "updatedAt": "2026-02-24T10:49:32.471Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.899Z", + "updatedAt": "2026-02-24T10:49:32.499Z", "postProcessHash": "6bdb09ec322273b515c242a0a196c778ff9876e649fa65392b8031cb787249d3" } } @@ -56223,19 +57375,19 @@ "90b37c7973739db627d82b16799b1a59ebcb776db33ad8298491b0bbbed6c3de": { "73ba6fad372ebd5b4ddf82f283b3e7b1f303a8f02d8ddee4e4e8d3c0290b12ee": { "zh": { - "updatedAt": "2026-02-19T02:24:08.874Z", + "updatedAt": "2026-02-24T10:49:32.471Z", "postProcessHash": "145cc1d50514ff58bcc52dcb886ef679586408482388ce74a6453176783ec740" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.879Z", + "updatedAt": "2026-02-24T10:49:32.476Z", "postProcessHash": "9976ff0703df12781b4384e877d33ea939f82dc8f368b8820202a96577dbe9d9" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.876Z", + "updatedAt": "2026-02-24T10:49:32.473Z", "postProcessHash": "df8dbf91285e171d9b66711aa4d061dc05bb91b485b9d7e741395d3e9715c03b" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.906Z", + "updatedAt": "2026-02-24T10:49:32.506Z", "postProcessHash": "25c07e54521eb93a8a8151d5f892a4296fb0ae92f642879ebb225460736d4e38" } } @@ -56243,19 +57395,19 @@ "5dcc85853637a46f967236f293c74ce6629e743899ffb1d793ba5c7ffae90dbf": { "6777f02cb4aba6cf43d71fcfd0acc7ed50b7a116661de2ebd8193b82df093941": { "zh": { - "updatedAt": "2026-02-19T02:24:08.891Z", + "updatedAt": "2026-02-24T10:49:32.487Z", "postProcessHash": "b4e662303048f2238e05348d1019b0e0e0b04e9525846ad9f3f7467ca5471d0d" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.808Z", + "updatedAt": "2026-02-24T10:49:32.415Z", "postProcessHash": "d702f68396baf04208f935336dd190abdea35259a8d6531ff9c6854f7d0cc043" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.895Z", + "updatedAt": "2026-02-24T10:49:32.495Z", "postProcessHash": "20ac962900278d7250a14840b46f7a6f78c621198b99eefcd20b0ae8203dea65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.901Z", + "updatedAt": "2026-02-24T10:49:32.500Z", "postProcessHash": "07179ca50fdb05ab6083e484ace470b3751619fb271cdbfc357a25f5d14d4dae" } } @@ -56263,19 +57415,19 @@ "094593271a536e71ddc700495b0cf0f1048d6ab6c2dad60a929934f0798430ea": { "3dd2ef060c7a1cfaa56099a332e54eba203c50d4214e0f5bf98d281ff70e8d9e": { "ru": { - "updatedAt": "2026-02-19T02:24:08.819Z", + "updatedAt": "2026-02-24T10:49:32.426Z", "postProcessHash": "46767ffb52c629ee9cb9f689144a4411288051a95cc2c397619e41c164cc843c" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.826Z", + "updatedAt": "2026-02-24T10:49:32.432Z", "postProcessHash": "0ae3d2a2bc5fd527cc13604c36521dd771b97cc73861fb9abbaa076e80c20494" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.810Z", + "updatedAt": "2026-02-24T10:49:32.417Z", "postProcessHash": "dccec3e19c928e7694d31705709fa3b1a826da9b8f3d16f56bea9732a9d1d8e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.840Z", + "updatedAt": "2026-02-24T10:49:32.447Z", "postProcessHash": "df08ce7221e158318765b13a3362aa2ba80a66def1739a4bb09a0a9eae9ad4e7" } } @@ -56283,19 +57435,19 @@ "27e2bd6338f55fdbb9b18fcf67e0a0a67489a58d4e1c0e9ebb6902b05fc36aac": { "8929ff1edb2d47de0f53425237359fc7c4a1036ef99e001d0d30c2d13140051c": { "ru": { - "updatedAt": "2026-02-19T02:24:08.806Z", + "updatedAt": "2026-02-24T10:49:32.412Z", "postProcessHash": "3997c5d9d56f5bec6137e97cd2a69d89992d4b174b3f23f36d66b7aeaa31546e" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.807Z", + "updatedAt": "2026-02-24T10:49:32.415Z", "postProcessHash": "e7bd8465230bcc3452c8e715fe1035900c7623e68a13c5a066b9ce0ce3d9bf82" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.801Z", + "updatedAt": "2026-02-24T10:49:32.407Z", "postProcessHash": "a4b7ae7f67d2c3df826d81472ef0867d05fb658bb4a3e2ad5944c88f4aa6e654" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.909Z", + "updatedAt": "2026-02-24T10:49:32.509Z", "postProcessHash": "567041cdeb573c8c41f7363fdcf66281119fea11039c4df0ac11bdacffb483f8" } } @@ -56303,19 +57455,19 @@ "19a3aba2f96aa29e64f1d6662e4c6e8d99c98fade3c4d0aa0badaed1632f4c7c": { "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501": { "ru": { - "updatedAt": "2026-02-19T02:24:08.878Z", + "updatedAt": "2026-02-24T10:49:32.474Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.894Z", + "updatedAt": "2026-02-24T10:49:32.494Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.897Z", + "updatedAt": "2026-02-24T10:49:32.497Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.911Z", + "updatedAt": "2026-02-24T10:49:32.510Z", "postProcessHash": "dc4c51508caf2bb72e5375d6abe27b369e6eacb14cc00c78c196a37458e79501" } } @@ -56323,19 +57475,19 @@ "dfad0bc3b6417f406a00ff9ef3820a57dfc8f664400a7ce0134d81da437d7e07": { "79123cc58b0a88edb3bafb181767cf704d4908d66876b9628ebccd1e31728887": { "zh": { - "updatedAt": "2026-02-19T02:24:08.827Z", + "updatedAt": "2026-02-24T10:49:32.433Z", "postProcessHash": "0ae3d2a2bc5fd527cc13604c36521dd771b97cc73861fb9abbaa076e80c20494" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.824Z", + "updatedAt": "2026-02-24T10:49:32.431Z", "postProcessHash": "6cc87da9c91a53af1b6b3ed64af0be54966751ffc0e92099d5616c86c01a18b8" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.818Z", + "updatedAt": "2026-02-24T10:49:32.426Z", "postProcessHash": "dccec3e19c928e7694d31705709fa3b1a826da9b8f3d16f56bea9732a9d1d8e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.836Z", + "updatedAt": "2026-02-24T10:49:32.443Z", "postProcessHash": "df08ce7221e158318765b13a3362aa2ba80a66def1739a4bb09a0a9eae9ad4e7" } } @@ -56343,19 +57495,19 @@ "4b87a5344a9b716648c77706eed8254331cf4a6ce21d8a43d267f67270734d1f": { "fb4dfb8f9e647f53e63097ab00045af768eb9222f514d424b3a57634d8f3681e": { "ru": { - "updatedAt": "2026-02-19T02:24:08.892Z", + "updatedAt": "2026-02-24T10:49:32.492Z", "postProcessHash": "3997c5d9d56f5bec6137e97cd2a69d89992d4b174b3f23f36d66b7aeaa31546e" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.881Z", + "updatedAt": "2026-02-24T10:49:32.477Z", "postProcessHash": "09740d761a2a7ff7191ae230a8deb4ede1d7f7a34e8a580ee7ee14e205590623" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.876Z", + "updatedAt": "2026-02-24T10:49:32.472Z", "postProcessHash": "20ac962900278d7250a14840b46f7a6f78c621198b99eefcd20b0ae8203dea65" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.915Z", + "updatedAt": "2026-02-24T10:49:32.517Z", "postProcessHash": "567041cdeb573c8c41f7363fdcf66281119fea11039c4df0ac11bdacffb483f8" } } @@ -56363,19 +57515,19 @@ "f0a5d6e46b2ddd583ab900563a42b7687a1b4924afd5d0cb5260268c8952f6d0": { "3a8f69d0d17e9065a46d4d7456a503262e2f2a05ac3d4b37f49520b5f716b1c3": { "zh": { - "updatedAt": "2026-02-19T02:24:09.210Z", + "updatedAt": "2026-02-24T10:49:32.796Z", "postProcessHash": "cdd8fea899b5bdef0a7f4127a6d20bb75bdeca9b60bb966cbc36f23c8099a651" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.213Z", + "updatedAt": "2026-02-24T10:49:32.797Z", "postProcessHash": "42b68726239b044c826e76f5b31713e1716ce44b0b6c19fc42f3235beae2d010" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.187Z", + "updatedAt": "2026-02-24T10:49:32.784Z", "postProcessHash": "55e6605f35579b95042119d65466d978fd994860b70f049c16cc8c6d865c60e8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.256Z", + "updatedAt": "2026-02-24T10:49:32.837Z", "postProcessHash": "e6ee566f5dd9e783e7a51f51379197b467339f184bd06879ac9b562c89b5908a" } } @@ -56383,19 +57535,19 @@ "9027438a5e9e30a2c6e8e4d197b479cebf29c05aaa3a716589f591c0ff697c0d": { "d5d6ea5e34429a4a6f22bad136f5d5eb712bbb922cae22a6c870b906c7befadf": { "zh": { - "updatedAt": "2026-02-19T02:24:09.279Z", + "updatedAt": "2026-02-24T10:49:32.863Z", "postProcessHash": "d174d80b968e05d57ef6cb0f23d12dcd93b7cd927ba524a0b92b22ed0ee26840" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.282Z", + "updatedAt": "2026-02-24T10:49:32.866Z", "postProcessHash": "e5da9ec1e2c5745ee867a1f854f35ca12ff74dab586cf48e577866d4996543cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.267Z", + "updatedAt": "2026-02-24T10:49:32.849Z", "postProcessHash": "fe90b32749302d19c1c3f961b9638c72f90b399fe13e780c3233f08804a31105" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.364Z", + "updatedAt": "2026-02-24T10:49:32.966Z", "postProcessHash": "02685cf12b13f755788d890f73af0a6596665546127479e1c748529b0a9c83d6" } } @@ -56403,19 +57555,19 @@ "492b567700669f175480e40ecf1c553c463e77a0bb36e30e76eb3628c35e7db3": { "84c653bd2e6590cbd982437c2304ff4818581c1e60afb256437642c4a3dc66c5": { "ru": { - "updatedAt": "2026-02-19T02:24:09.245Z", + "updatedAt": "2026-02-24T10:49:32.827Z", "postProcessHash": "605260c7c7fad78e50b94866aef89c35f6e2719e3fc655dd39756be33d5069c3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.145Z", + "updatedAt": "2026-02-24T10:49:32.745Z", "postProcessHash": "80378545aadfe422c53caee6b30dee36dd54199f88913764efd6964fd3143094" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.227Z", + "updatedAt": "2026-02-24T10:49:32.809Z", "postProcessHash": "31aef518ed57ee8ab02fdf4902bd2e827828dacd2482f03a18bbdb29f5ee4a2f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.258Z", + "updatedAt": "2026-02-24T10:49:32.840Z", "postProcessHash": "b371d761ee17417b65df360f128a9619589a36fe23350e743bcebf7ed7b6078c" } } @@ -56423,19 +57575,19 @@ "dbc3d877611d9d2c9a27f2ea076decc1afc5907f3c3c02044504a307308653af": { "79b34ec963ce2ab8bc60d33c073caf0fc42c9aed7f3b97c1ed638390938960de": { "zh": { - "updatedAt": "2026-02-19T02:24:09.161Z", + "updatedAt": "2026-02-24T10:49:32.760Z", "postProcessHash": "8b8619fe48a942e76600cc1f22f4064e1c3b8f47823855c1b570c393516f4459" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.147Z", + "updatedAt": "2026-02-24T10:49:32.746Z", "postProcessHash": "fc6661cb434f45d0af02152f3d424c222bfa7962ad80665b75c1533ad63083e3" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.162Z", + "updatedAt": "2026-02-24T10:49:32.761Z", "postProcessHash": "59c70ca936d3311dfe57de8d905526e54a8302096c5faf9279e5eead416036fa" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.175Z", + "updatedAt": "2026-02-24T10:49:32.772Z", "postProcessHash": "692c245b6345dfb790e5b139de344012bb6df702f218434d1c09555a7d55a854" } } @@ -56443,19 +57595,19 @@ "e5b56f33a8458d42151bcbd638d4692704a7d1f97fb2c4ed94143ff1e460a418": { "7eab19fd44668e93c10760c5fe2d6a1421e507a9cec55dfd91ed0fcab85c27f1": { "ru": { - "updatedAt": "2026-02-19T02:24:09.065Z", + "updatedAt": "2026-02-24T10:49:32.674Z", "postProcessHash": "858b36c1f2dc89f0040b3532f200a90fd64038d18ff1395750b0be71191849d0" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.069Z", + "updatedAt": "2026-02-24T10:49:32.678Z", "postProcessHash": "f0154aba4a8879e6389f451b4027fe0f5a1b6d6e648fceadb4ba8171bf5d6081" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.062Z", + "updatedAt": "2026-02-24T10:49:32.673Z", "postProcessHash": "3aebc8161b6b784a161b6562957dfdda69ada72924dc083b391c262699d68eeb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.182Z", + "updatedAt": "2026-02-24T10:49:32.779Z", "postProcessHash": "6737906f84087be4c1c353958d92af57ab8ff66239c6806a7bbd4f581d224920" } } @@ -56463,19 +57615,19 @@ "3f3b14a0c691ae2b5345864fd4ad20a184225db1e35ffcbd455da1aeec5f0d48": { "a9c8fa4f53951ce4026e170171a0517a80777e9037e5bb2f16eab83d3ffaa9cc": { "zh": { - "updatedAt": "2026-02-19T02:24:08.832Z", + "updatedAt": "2026-02-24T10:49:32.438Z", "postProcessHash": "98be0adb514ab99e364abdbbab872ca95c8b60c312d3df36ed607421c9f38c2b" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.823Z", + "updatedAt": "2026-02-24T10:49:32.429Z", "postProcessHash": "c6b1ffeb8a927241e2108dbeb02a8cbb166d5b270f1e7cdf770147d6ef83a7d2" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.830Z", + "updatedAt": "2026-02-24T10:49:32.436Z", "postProcessHash": "100a6e4170215f9fe15c083b750d4be45500a2d7d7846dc224623388d9b9ad91" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.836Z", + "updatedAt": "2026-02-24T10:49:32.442Z", "postProcessHash": "fa167100c0b24dafe0116ee9c7efb76249fd744596bb2bdea75e01ccceb33950" } } @@ -56483,19 +57635,19 @@ "5b41c30593068b713e26045c49b89ef31bda4b2d25564fc71eeafadaa3a88b3b": { "ecb137fd1463f816c7efffc5bf4c604e7cfa7735755e22327018e286ec755267": { "zh": { - "updatedAt": "2026-02-19T02:24:09.298Z", + "updatedAt": "2026-02-24T10:49:32.891Z", "postProcessHash": "71228041f3ec2db0eaea6df41f727fe8d9fb0c2be58156f7e40029f6cbfeaafd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.283Z", + "updatedAt": "2026-02-24T10:49:32.868Z", "postProcessHash": "935e2df6e42ef5eae97f3b0f34534f4ddba200017d97d3170e7db9c138c0cc8b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.269Z", + "updatedAt": "2026-02-24T10:49:32.851Z", "postProcessHash": "8ee6a597195d2d62144b70385821d6d3faa909ba10aaaba5092fb6cbbe5f9d8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.309Z", + "updatedAt": "2026-02-24T10:49:32.907Z", "postProcessHash": "edad1c675da7e5e6a5628c12da5a2ad75cb26e96a4e42cdc77959a37c841ec4b" } } @@ -56503,19 +57655,19 @@ "7c145e871f942571130b488686f2c93299c7784ad34d23a45c99e2947f75208c": { "193be2e12900fc92f5c6cf9d55c9d419bf67397ce7c166154cf4356eaee3bb11": { "zh": { - "updatedAt": "2026-02-19T02:24:09.334Z", + "updatedAt": "2026-02-24T10:49:32.936Z", "postProcessHash": "84717246d459b05e668b44cda8f6d98373e4ad33dc1b061182c57ee0bd17bf6e" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.332Z", + "updatedAt": "2026-02-24T10:49:32.934Z", "postProcessHash": "e8092285f85de8c0fef7d0d689529703a23d3563750f97888238640fc9e81345" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.270Z", + "updatedAt": "2026-02-24T10:49:32.852Z", "postProcessHash": "c716efae67f791d006333fb0f57dbadc4ece9e0eaa66931176f3fa87c2382a19" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.361Z", + "updatedAt": "2026-02-24T10:49:32.963Z", "postProcessHash": "9a66b1ddbbfdf21effd817bb2cccd535d528e371241ffe7eb3d0fa18f7ea22c4" } } @@ -56523,19 +57675,19 @@ "f5b83279dab37d495f5c4fd259883e2f59a812c65ccc8ed0c351f21a2028e710": { "caa363689f97df04d5bdb8cc80dfede581f616ede687804ff5915657268592d2": { "ru": { - "updatedAt": "2026-02-19T02:24:09.321Z", + "updatedAt": "2026-02-24T10:49:32.924Z", "postProcessHash": "6a2c0ad1bdac3f2b0003235f737b0f22c9ea609aa45a68ffb137059978476c05" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.322Z", + "updatedAt": "2026-02-24T10:49:32.925Z", "postProcessHash": "c36543e2adf44d48030e6c03e8f6e8b3839e46aec8b066e1356325acfdd1b129" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.324Z", + "updatedAt": "2026-02-24T10:49:32.927Z", "postProcessHash": "0801238959e627da999d8278755a3887bbcbfc083f7a0870498f6e39dad17d97" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.368Z", + "updatedAt": "2026-02-24T10:49:32.988Z", "postProcessHash": "00f0ea2ab182ba1a52f002cedb13814bb8351b1c4d51532d5b7392b94ea65dfb" } } @@ -56543,19 +57695,19 @@ "bdeb28bdbd403e8a7dbfd53a18daf2d16a5ec80e2b272afff63299b084ee54d4": { "8d2b2934162408394b787a0c9376fd5fc5d3b70e883799983cb40e9cd3caec2b": { "ru": { - "updatedAt": "2026-02-19T02:24:09.218Z", + "updatedAt": "2026-02-24T10:49:32.800Z", "postProcessHash": "eb8a98ada416e3412051b09bd302a439a0f2447cbe3593464e701c38186d586d" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.214Z", + "updatedAt": "2026-02-24T10:49:32.799Z", "postProcessHash": "67c035438edce41a547ba289bea4d3ba574c382a7710ce710b315d1886a6d57b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.232Z", + "updatedAt": "2026-02-24T10:49:32.815Z", "postProcessHash": "61d36899ec8eae83f9ef7362f78061dfcc8ae137ea5210f1806f0b63f5da2b87" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.313Z", + "updatedAt": "2026-02-24T10:49:32.913Z", "postProcessHash": "6bac490c0c9b1dea0026c3a61d8ca917d3eaf03506ff5dca6ba6b2c322986d9d" } } @@ -56563,19 +57715,19 @@ "6d9be1cdfeaef3b95b6937fe4da26361e0723bbb44069a88774c3f6c426953ff": { "27c7a63e2afca841ae5e7d6fe8b9f6f3c513769116043f854361c07302afa76a": { "ru": { - "updatedAt": "2026-02-19T02:24:09.100Z", + "updatedAt": "2026-02-24T10:49:32.702Z", "postProcessHash": "81863e8ff83473d956c120e35c9d4aa45d8d70979c138acb0579d3ca78534dbb" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.099Z", + "updatedAt": "2026-02-24T10:49:32.702Z", "postProcessHash": "d244896da1014b0a4cd9d61cde0d36862b9f8ff7e2c173c5f4158c65fae8d94f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.104Z", + "updatedAt": "2026-02-24T10:49:32.705Z", "postProcessHash": "566def3c95284327382ca7fe92b1a8cb167730df26a9174028c075f430e768e5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.113Z", + "updatedAt": "2026-02-24T10:49:32.714Z", "postProcessHash": "faf942da01046725dea6e5c191878606e6b9f2f0c8dcba3906f6677c13198165" } } @@ -56583,19 +57735,19 @@ "08f3b123bce337ae576d91effb4c4e0aa8ce5818f4196baa0ba59915bd0d269e": { "a29ff4b6f7e821d9ae449a998417a11cc1c6705210186befa92aa45136de5da9": { "ru": { - "updatedAt": "2026-02-19T02:24:09.068Z", + "updatedAt": "2026-02-24T10:49:32.677Z", "postProcessHash": "612e7a8bdc733b9480ab1d7e92f4127f9aaab7330418acf607653cac5f0610fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.072Z", + "updatedAt": "2026-02-24T10:49:32.681Z", "postProcessHash": "a38ceabd8f18bb44348671d89aadc9d48547e7249b09fcc8a62d543eb8966511" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.083Z", + "updatedAt": "2026-02-24T10:49:32.689Z", "postProcessHash": "5f5118305018fdd3488d72b5cd26145f050e86d2eb709f8deea84dd1030d750c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.181Z", + "updatedAt": "2026-02-24T10:49:32.779Z", "postProcessHash": "dee88c5b7d48e89fd8b5f459c0429806fc300d52351c6c0371140faee3177f45" } } @@ -56603,19 +57755,19 @@ "0e3c84ac0dcb64d166a9e4cad32d3420219fe50fe305e36aa358456c172e2cf7": { "318568dae18d539030ba9900a07a5c387e0ffd38a7b84468080ad1adcdccfc39": { "ru": { - "updatedAt": "2026-02-19T02:24:09.143Z", + "updatedAt": "2026-02-24T10:49:32.742Z", "postProcessHash": "00c46ce01f15ad9fdeab2f72691d4fab5783030e67224ce2bc3767c72f58a420" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.148Z", + "updatedAt": "2026-02-24T10:49:32.748Z", "postProcessHash": "2b9ed3b6e9abe2f5307e8e4356e714558f9d57c5e41f54eb4943c1e669090501" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.140Z", + "updatedAt": "2026-02-24T10:49:32.739Z", "postProcessHash": "30e8ebe13f8b17e8593ba3dd75e594be4c97930c33a5e77c1286bbfe51aeaa97" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.262Z", + "updatedAt": "2026-02-24T10:49:32.844Z", "postProcessHash": "579b0d09d68f0d16557c891c93e81f88348b112ff32c65929c17001630f14069" } } @@ -56623,19 +57775,19 @@ "808e737b87d86c00037ee9499555e8d37bc7fd2e51f5ef796a4a104d5f453b14": { "4719caa724ba0e2a9f5dae16a0fe1e64ccb82cd37762f0d2649a253c1acc65eb": { "zh": { - "updatedAt": "2026-02-19T02:24:09.070Z", + "updatedAt": "2026-02-24T10:49:32.679Z", "postProcessHash": "dbd1e9397e889a9c7f66a1d040df799ad545fe0ff2974b8186c5a2a90b1bd100" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.073Z", + "updatedAt": "2026-02-24T10:49:32.682Z", "postProcessHash": "010fabb308c8285f625f3d634f1941a9e92cd0b5a1a170e9886d7c0caddc17c2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.064Z", + "updatedAt": "2026-02-24T10:49:32.674Z", "postProcessHash": "4d677cfe542defa2ba654cec1ee86d16b46db800cef2f502ee7fbdb7f4dd8cdc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.173Z", + "updatedAt": "2026-02-24T10:49:32.771Z", "postProcessHash": "32487a8ab527784ba18a0bf23ae700894c1847ccf853b68535dfaf2b46be050b" } } @@ -56650,19 +57802,19 @@ "66bbf0d8525a651b70357530fa66ca0f30073bb1460c57979838338b1c0d8749": { "9a8d534c4d4974d982e6c1d6d31787e905d1215b8eade3bf1524a2e15a6fa2c0": { "jp": { - "updatedAt": "2026-02-19T02:24:12.834Z", + "updatedAt": "2026-02-24T10:49:36.627Z", "postProcessHash": "818e4633c64fa1a38d9ff6344004d822542d1c75f9ca903990b2dcf9352de3c1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.835Z", + "updatedAt": "2026-02-24T10:49:36.627Z", "postProcessHash": "3074f61c403e9ebcde3ca106438c8b0831b3ed985093f361160cce11270f7c5a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.835Z", + "updatedAt": "2026-02-24T10:49:36.628Z", "postProcessHash": "d198a414e81c93bac339df3d0c993ae01ae0b8e4b92cda3d4cc695d15b0343b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.940Z", + "updatedAt": "2026-02-24T10:49:36.669Z", "postProcessHash": "b5729c5d931bffad3676d3e2d3910ab044a6af951123bdf7321b69217906bafa" } } @@ -56698,19 +57850,19 @@ }, "1e64d8a3e08991452d795b97ab11428dd98753735ae28ec339334c857371afcc": { "ru": { - "updatedAt": "2026-02-19T02:24:10.257Z", + "updatedAt": "2026-02-24T10:49:33.937Z", "postProcessHash": "222371a0d4d497bf4a337a90dc7da30a814a1a5fe7dfe1c88340a2972d6fa6da" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.268Z", + "updatedAt": "2026-02-24T10:49:33.944Z", "postProcessHash": "5a9bb11fb8d3ef91f3616193c8ce25e0b59e8719d5c3bf0d4cb6e2117d1d71f6" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.277Z", + "updatedAt": "2026-02-24T10:49:33.954Z", "postProcessHash": "a152372e9d73dfac071547d0e9bb235279c8f855a30fce98810e630a5f9a54b3" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.297Z", + "updatedAt": "2026-02-24T10:49:33.972Z", "postProcessHash": "12139107df605de53bc5ce70b67db5d2827a1dcf5efecdd5693c7a8947701bef" } } @@ -56816,19 +57968,19 @@ }, "1d91edb91d484e2087822fda67e0f30a906668792b2513cf7ef641a44258e1f1": { "zh": { - "updatedAt": "2026-02-19T02:24:11.787Z", + "updatedAt": "2026-02-24T10:49:35.422Z", "postProcessHash": "aedd693b1ff353037ada4abcd6753a480183fcfc1ac8a28477f54f12fd515488" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.788Z", + "updatedAt": "2026-02-24T10:49:35.422Z", "postProcessHash": "7c11336898853918073c80d40f3f984e4b0b19b9cc0826e2a0a5b60f445f096d" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.788Z", + "updatedAt": "2026-02-24T10:49:35.422Z", "postProcessHash": "a46b5c5c4fdbc8af277fc59af3f2f3921456dc57bdd2a1a6db7fa2117c1d4656" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.782Z", + "updatedAt": "2026-02-24T10:49:35.415Z", "postProcessHash": "ecaa1ad041db5f63a0ec14f282cea35c09bf05a3c060b81aa3a99b82a56617f2" } } @@ -56864,19 +58016,19 @@ }, "6edac742446f8d80f458195516f4d47246c4c4608b46440f5fcc905dd7762c7e": { "zh": { - "updatedAt": "2026-02-19T02:24:13.040Z", + "updatedAt": "2026-02-24T10:49:36.765Z", "postProcessHash": "d7d3df7af06c4ffe57a3bf5401aa0052abc71316080e173f659399ed0367b9d8" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.051Z", + "updatedAt": "2026-02-24T10:49:36.776Z", "postProcessHash": "21edd3969693a280f9c4fba561694660bf80087eb2cd5d5ed4b89b8e8dc07226" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.060Z", + "updatedAt": "2026-02-24T10:49:36.785Z", "postProcessHash": "632f6fdf815c280877ed3ca5e7b4e01d50c69b709395895e07c0833d8e087f4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.081Z", + "updatedAt": "2026-02-24T10:49:36.818Z", "postProcessHash": "6662b85fb414f98eba3a3654746fd93630fb59982156cf00358393988353308c" } } @@ -56895,19 +58047,19 @@ }, "555a83de7b1fedbbe92860951f89c33d800c65562d765e18c773348463b9d4b1": { "ru": { - "updatedAt": "2026-02-19T02:24:10.645Z", + "updatedAt": "2026-02-24T10:49:34.280Z", "postProcessHash": "2010bfaba9b35ac026ebeac0844c035dc28fe3ebfd4575e114431bce87099998" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.642Z", + "updatedAt": "2026-02-24T10:49:34.277Z", "postProcessHash": "706719de21d9af2355e31758dc542a8af38d79ccd448429f51fce038d593d1a3" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.642Z", + "updatedAt": "2026-02-24T10:49:34.278Z", "postProcessHash": "e9a0db514c2b88dea8136647aee893af8fa19d831a7d9ddafa8f5a9d780e8a95" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.702Z", + "updatedAt": "2026-02-24T10:49:34.290Z", "postProcessHash": "4d18defaee3d2dc97fbdc4cdda5cdd60588b97a0e545f2ce052bf16c71a2d7df" } } @@ -56915,19 +58067,19 @@ "4512096e994b4597d26312dcc20aaa261a25d919afc1ca576d81943eb7dba5e8": { "576c6b22e45a20fa5f3f50de6a9f620190ca1b7786a288fd05ea72e443dae788": { "ru": { - "updatedAt": "2026-02-19T02:24:09.666Z", + "updatedAt": "2026-02-24T10:49:33.304Z", "postProcessHash": "e373cc5da1c4018e73e67e337af669d177fb9cafccbaad7df0f220574ca637b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.667Z", + "updatedAt": "2026-02-24T10:49:33.305Z", "postProcessHash": "194a6b150f80e76c230eb83db6e9481a24abecd77f968217c7d858c69ff9d8f3" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.667Z", + "updatedAt": "2026-02-24T10:49:33.305Z", "postProcessHash": "3360a67de5907443a8e86716c5eb692764d58be4f070f22aa09a79d0eafbab92" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.710Z", + "updatedAt": "2026-02-24T10:49:33.342Z", "postProcessHash": "4bc64f2cacc3d3a759bf37f30621d6e4edf1a97a6cdee13f483c951391b0c855" } } @@ -56965,19 +58117,19 @@ }, "4b3a965d2e57d1a954d98e10a60785a810988097b173ae51481c79948f32e671": { "jp": { - "updatedAt": "2026-02-19T02:24:12.963Z", + "updatedAt": "2026-02-24T10:49:36.699Z", "postProcessHash": "e3a1d066e4f5dd498e700e2a8b7cd7df7133e799539f97cae7037dd58598aefc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.965Z", + "updatedAt": "2026-02-24T10:49:36.701Z", "postProcessHash": "fb90ca09add8ef5eb27d7e69a1ae44410c9a995084dc0c2c8193803fa6d0304b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.973Z", + "updatedAt": "2026-02-24T10:49:36.711Z", "postProcessHash": "9c70d7ce46559209d421354e14d09e58ff12c137adc506b6a74488cabeb5877d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.995Z", + "updatedAt": "2026-02-24T10:49:36.727Z", "postProcessHash": "cbcc8060a1b16112c1bb83be803a0afe3122c43ee2eb221dbdc718d424544329" } } @@ -57013,19 +58165,19 @@ }, "1fe4b8c64e0c64cc970eedb6ffef82672c57e3a1fba21e2d6ef078dda5bdc872": { "zh": { - "updatedAt": "2026-02-19T02:24:12.966Z", + "updatedAt": "2026-02-24T10:49:36.702Z", "postProcessHash": "fc8605507a03f14330881f3a6f12e9875053eee50be563c330cfa4af797b416f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.967Z", + "updatedAt": "2026-02-24T10:49:36.703Z", "postProcessHash": "6b44130169c6f5d190c4754e7d3ecd43e76064702da643ae82dd8d77b7ec02f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.982Z", + "updatedAt": "2026-02-24T10:49:36.717Z", "postProcessHash": "004439e4547745393c19fbf0bd313be82fee139b104690101c4df8471373c776" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.996Z", + "updatedAt": "2026-02-24T10:49:36.728Z", "postProcessHash": "00bfee1b34c23e80d6440286c2bfa757e4c71827bdecc3c61d3847f19668dd87" } } @@ -57107,19 +58259,19 @@ }, "5bfb25adf6b055c02cbe0567a16ab93e5da2091da9f916d71539368c66322cb2": { "ru": { - "updatedAt": "2026-02-19T02:24:11.582Z", + "updatedAt": "2026-02-24T10:49:35.235Z", "postProcessHash": "bb9c8d9a1f2ef9a87f6225d925c38a9958662b480f9bf9be007aacd1c671a4b5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.589Z", + "updatedAt": "2026-02-24T10:49:35.238Z", "postProcessHash": "8ecec15b951bf426c07fe730d6dfb4e96765385970977c156568845ff769ff7a" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.590Z", + "updatedAt": "2026-02-24T10:49:35.239Z", "postProcessHash": "355d965b8d3f82ad32149762c99bf8a37a72ed94bed19b8e0bece01db5f5e927" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.635Z", + "updatedAt": "2026-02-24T10:49:35.272Z", "postProcessHash": "047826970bc9673a251a43aea047e867e2162c230f920b188018073d55f0494d" } } @@ -57127,19 +58279,19 @@ "a6c6f5caae2bc4e992523fa520ff46dc98d50e97be7ca2cfd33f5fb560936f24": { "514ebc546a4e5252c5c7e937415882da70cdea046cadec162163156329491aa5": { "ru": { - "updatedAt": "2026-02-19T02:24:12.852Z", + "updatedAt": "2026-02-24T10:49:36.634Z", "postProcessHash": "5c4e2e414f86d3ca3ca2dd6c4f0a96833ca2c05f0e504786b4546c0911f5b13a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.902Z", + "updatedAt": "2026-02-24T10:49:36.636Z", "postProcessHash": "e29c4884826a0ee27abdf0f335faed7c289b3218edf076ba96de349ff8c147b4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.903Z", + "updatedAt": "2026-02-24T10:49:36.637Z", "postProcessHash": "88cace74587c6e0cb21d0f4e9540543de84584faf9248b267c61645b0222f980" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.939Z", + "updatedAt": "2026-02-24T10:49:36.668Z", "postProcessHash": "8f0f25b8baed87c84ecbe28f2fc5e09096c93a6748114419dc07452d91c9a72c" } } @@ -57147,19 +58299,19 @@ "e67d174b415ce4c2fdbc6fd7b6bce5de91b93a7a9bf25d4797f9a44aac12161e": { "46cfa3c0c128e74d7ad1b78e61530adc56ed5270c3e70efc0a1d55bd983af3bd": { "jp": { - "updatedAt": "2026-02-19T02:24:12.901Z", + "updatedAt": "2026-02-24T10:49:36.635Z", "postProcessHash": "8e1798aea9999f3e5dd4e4e24baf25e05e150f4fbd8922d831f58e31b8f25bdf" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.902Z", + "updatedAt": "2026-02-24T10:49:36.635Z", "postProcessHash": "7c5ec73d145d268e85ea7a60f04ae08ec76ac1499b49a1e62a9c49a51663a90f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.903Z", + "updatedAt": "2026-02-24T10:49:36.636Z", "postProcessHash": "207821a4bfa889ac74e96d840316a31e91caa98591e7ec4e0d45d138552d2f0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.987Z", + "updatedAt": "2026-02-24T10:49:36.667Z", "postProcessHash": "9ebf03da66203565f12382059b73fdef26ebfe6e8a8462be6173b7dcb10a86fe" } } @@ -57195,19 +58347,19 @@ }, "a79596c85d5c24694671ed5a6629441f2c8eb1f05e36b7f4f168ee616feda197": { "jp": { - "updatedAt": "2026-02-19T02:24:12.929Z", + "updatedAt": "2026-02-24T10:49:36.660Z", "postProcessHash": "dee37a5947e3a118bc8e47364f6d54242f3d176332d3fbdca35f044a79ef1e71" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.930Z", + "updatedAt": "2026-02-24T10:49:36.660Z", "postProcessHash": "128adb985ed45069c168ecb00df7a4b953284fbe9780f87107ceed4544386065" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.930Z", + "updatedAt": "2026-02-24T10:49:36.661Z", "postProcessHash": "21c42e33d1d931d550608373e311808620f7922e6cc6595e024845815f61e0f7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.941Z", + "updatedAt": "2026-02-24T10:49:36.671Z", "postProcessHash": "09d99295c5642888adf87c802bee8493d3328b39be84bca665089ba8b0bb34d3" } } @@ -57243,19 +58395,19 @@ }, "a031a8a5d4722b4577766beb06d28e5d5de62986bfee56cf6b2c06426fec741d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.918Z", + "updatedAt": "2026-02-24T10:49:36.652Z", "postProcessHash": "1c20c37829682bc47ef8587f772a705a30090bda019b949bff7159589c82c444" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.927Z", + "updatedAt": "2026-02-24T10:49:36.657Z", "postProcessHash": "efd9f8e0cf749811062991fd6ea7f0dfe9e2577cc9fd20352ef479713c12a87f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.928Z", + "updatedAt": "2026-02-24T10:49:36.658Z", "postProcessHash": "70d1459ffdf188a2030e35bb40d3d9b011f33db3ec0ea0681cbc99efe947a16a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.938Z", + "updatedAt": "2026-02-24T10:49:36.667Z", "postProcessHash": "f305fe540531af402be9def78d1d5d8d755ecd2b37c63ad817f7cca3b98b035c" } } @@ -57291,19 +58443,19 @@ }, "8c9746276b6ba0db83c48007673095b31c14b136144dfc4cd2504b913eb52018": { "jp": { - "updatedAt": "2026-02-19T02:24:12.975Z", + "updatedAt": "2026-02-24T10:49:36.660Z", "postProcessHash": "3418f2bb1075abb14080b5095148d9f396affbf871c2d0ab115196f657e6642f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.975Z", + "updatedAt": "2026-02-24T10:49:36.662Z", "postProcessHash": "a6b6e4f87fccb22a3f5a3b27f95b56f7990aabfdc297eabdba5e61749ce96760" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.975Z", + "updatedAt": "2026-02-24T10:49:36.663Z", "postProcessHash": "caff9359974e19fb851607b3038abe896bd940dc8f2d0fa4150b3e0248e2831d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.993Z", + "updatedAt": "2026-02-24T10:49:36.670Z", "postProcessHash": "a0696499bb99eef6e178ead177c50d1e89333d63e5f16e35bef187b8d87fe125" } } @@ -57329,19 +58481,19 @@ }, "ad74259aeca19ecf442dbea060b759bf09fe13e0076c026d397ef3c1dcb021fe": { "jp": { - "updatedAt": "2026-02-19T02:24:13.583Z", + "updatedAt": "2026-02-24T10:49:37.348Z", "postProcessHash": "2859a55f298a8e2d255f06acb1dd7bd9f6bba5de63a908d1b4f8d1dd06566b69" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.584Z", + "updatedAt": "2026-02-24T10:49:37.348Z", "postProcessHash": "23bfcfa17bbdd2a873dee0f6097308ac117f0ad7fb199cec85c7ed8f21edd7f6" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.585Z", + "updatedAt": "2026-02-24T10:49:37.349Z", "postProcessHash": "c5509cdcab4afcc24ebd9ae9504e35b213f27f83bae4ff86a8ffcdc368b44417" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.587Z", + "updatedAt": "2026-02-24T10:49:37.350Z", "postProcessHash": "74ad420e1f705ccd4ac1c25e5d71c69be4ed2b732e8f071cfd75f767c8da5d65" } } @@ -57349,19 +58501,19 @@ "9243607f4388d8b5dd308c945fc7401f9e8869cd97f465d96074e0504689cbcf": { "b31cf941c4db533f74a831be91846244d8b2ec416121853471f18bb131058ec3": { "ru": { - "updatedAt": "2026-02-19T02:24:13.457Z", + "updatedAt": "2026-02-24T10:49:37.254Z", "postProcessHash": "4ba10e5e56cb90e349e64aaf0b454602957e11fe67c7d04866b6ced74520c932" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.458Z", + "updatedAt": "2026-02-24T10:49:37.254Z", "postProcessHash": "733e68c8bb4a4645b20e7c5aecc3f2458d2d6e3e3bf589d9276c676346037119" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.461Z", + "updatedAt": "2026-02-24T10:49:37.257Z", "postProcessHash": "04ea5ec26c8341a04d579fd4ecf7acd112cc5f2ea7a8dcde6e91de194108689a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.565Z", + "updatedAt": "2026-02-24T10:49:37.331Z", "postProcessHash": "7a9e9cefa9aa1c92791724689cf234fe63a91cd8504c2601571cb00795596265" } } @@ -57369,19 +58521,19 @@ "d5d044dbccb47c8cc7503e5219a318800f674322e646562c7a6d66b6cd09dbf5": { "b04f84100c20361b6922a1965990d208a1e25ddad07b50aa60ee2208625eedf4": { "jp": { - "updatedAt": "2026-02-19T02:24:13.459Z", + "updatedAt": "2026-02-24T10:49:37.255Z", "postProcessHash": "9ab61d1cdbc9eba59a31879a647b43b3323c3f946626bb652fdf69595f18abdb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.459Z", + "updatedAt": "2026-02-24T10:49:37.256Z", "postProcessHash": "3d1a3246137aa4ec8ce60cb09e5ab1a5f355bd67987bbf608ba27fa98bcf51da" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.460Z", + "updatedAt": "2026-02-24T10:49:37.256Z", "postProcessHash": "f37e708d743f8369851dc3d4b67a4d0b38a3fc79281d7428326947dc58ada409" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.569Z", + "updatedAt": "2026-02-24T10:49:37.332Z", "postProcessHash": "c9f5d4c8a893b814cef6cae04a1d420a51bde9cd6af0da37fb4fc60bbab253b3" } } @@ -57417,19 +58569,19 @@ }, "5ea9bca0eef1897281c405074a1c965f00f17ef6a89b4e8db839ba25011f2e15": { "zh": { - "updatedAt": "2026-02-19T02:24:13.475Z", + "updatedAt": "2026-02-24T10:49:37.273Z", "postProcessHash": "6f9e3b77cabebd51121e6c0d06039a3a854a584d2aa4bb2acc863afc7b64101c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.478Z", + "updatedAt": "2026-02-24T10:49:37.276Z", "postProcessHash": "acca9810dcf197227a8f65b7c59247d10a07004dd4e4299101badbc573b13254" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.498Z", + "updatedAt": "2026-02-24T10:49:37.281Z", "postProcessHash": "148d51029ccc97725a556b4a32123732eb6a39fd84e72ef874ca0297d10731de" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.570Z", + "updatedAt": "2026-02-24T10:49:37.333Z", "postProcessHash": "5811f10941a29ffefaf5fcdaaec51f95b07499b8806ced3538258008bffad933" } } @@ -57479,19 +58631,19 @@ }, "57dc654a0eabac5f6174cbe20a154b48abb481f3f2d388e12a583fa7ee293db5": { "zh": { - "updatedAt": "2026-02-19T02:24:13.553Z", + "updatedAt": "2026-02-24T10:49:37.317Z", "postProcessHash": "933d7a2c529ec43cf9ace46cc08c1cfe91126208429d8e6824ad2529fae12943" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.555Z", + "updatedAt": "2026-02-24T10:49:37.321Z", "postProcessHash": "e58d6ef808b256039e68f674485382491613b41325465657383211a2794245bf" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.556Z", + "updatedAt": "2026-02-24T10:49:37.322Z", "postProcessHash": "70a0f24983b2b9a63531ae7586e772965a63b0a564173e074036fea4684d1c8e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.574Z", + "updatedAt": "2026-02-24T10:49:37.340Z", "postProcessHash": "ac60b66927d8927ea71d4f129d9c969e43f58825148d44c52154d495af6f6aad" } } @@ -57555,19 +58707,19 @@ }, "e41845962d1ca9ea03b62b2344662b1a6e348f36e6b75a6cd754f31409f50ac1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.558Z", + "updatedAt": "2026-02-24T10:49:37.325Z", "postProcessHash": "f6d1cbc84a220598df0db8a677f63fb59ce32fa3901520261d3b9b4796d9f009" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.559Z", + "updatedAt": "2026-02-24T10:49:37.325Z", "postProcessHash": "054c40fae3a582162837c1d48c38a71a2785177b00a31832bac18c09f1476866" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.561Z", + "updatedAt": "2026-02-24T10:49:37.327Z", "postProcessHash": "676f09ba649e5b8fad49bed9fede40bac62097f8afddde65d75d356ec8e4e119" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.578Z", + "updatedAt": "2026-02-24T10:49:37.344Z", "postProcessHash": "bcaaad86e044968d9d9d9f215ba5991feecaba355284e8c2cb19c2c08d653b06" } } @@ -57589,19 +58741,19 @@ }, "e7fd70effa79724819fbc3bc04f2c2ced9d85b01d80222ab93933c82f9c09269": { "ru": { - "updatedAt": "2026-02-19T02:24:10.388Z", + "updatedAt": "2026-02-24T10:49:34.065Z", "postProcessHash": "cd94822878659a65d28c3af64c65c5220def12ae7a11238483cec33f4e8c1602" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.389Z", + "updatedAt": "2026-02-24T10:49:34.066Z", "postProcessHash": "2fc75fccb9e82906d3105e71bf9a4f1b6323402996f31d8b383982709ef323dc" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.389Z", + "updatedAt": "2026-02-24T10:49:34.066Z", "postProcessHash": "786be9f720fc52de9243e1f3efc116db0bc1542e84f9ac00d4be49d10f5490f7" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.402Z", + "updatedAt": "2026-02-24T10:49:34.080Z", "postProcessHash": "324d6830a3b7d10b1e051a01c838c586e65b17989f449a90acbe965e8bd1dea1" } } @@ -57609,19 +58761,19 @@ "08c008d4e9e8ed1ea2dee5c8e9b616f5393fcb2a1f837535c5e2096475976aea": { "de652559510c4c1e5e5641740641f11478f4604e264f05203d06aee9ac109009": { "jp": { - "updatedAt": "2026-02-19T02:24:10.688Z", + "updatedAt": "2026-02-24T10:49:34.332Z", "postProcessHash": "977c99a910cd031bc350370d67b97ee53ae109671d85cf917acd97b26492771f" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.688Z", + "updatedAt": "2026-02-24T10:49:34.333Z", "postProcessHash": "6f1ba2028c5afc2f68829ab2b9f13929d7d028ac2322ff963a43345ee241e2b5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.689Z", + "updatedAt": "2026-02-24T10:49:34.333Z", "postProcessHash": "378ecc55ca64788ad5dc2861483cbed42f55921d21d47311fb0a0acf12e41c7f" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.711Z", + "updatedAt": "2026-02-24T10:49:34.355Z", "postProcessHash": "ca1fd07729637ef61feadbc07d5af26d1d93c3963e9bf820b501a110f631b61b" } } @@ -57643,19 +58795,19 @@ }, "a7172c8d70b6715349a0733c786bd62ce0e0076296da5dacec331d16e09920cb": { "ru": { - "updatedAt": "2026-02-19T02:24:11.982Z", + "updatedAt": "2026-02-24T10:49:35.659Z", "postProcessHash": "80f94e928ab8c994a849aeb66ecbfb7e0d846d6db8ad97482ea86e98885c7dd0" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.991Z", + "updatedAt": "2026-02-24T10:49:35.664Z", "postProcessHash": "b6c219256316bee787c7a4c52218d66202c5ab64213fcf0e07c7eeb33b6d05cf" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.996Z", + "updatedAt": "2026-02-24T10:49:35.670Z", "postProcessHash": "a4df92e6f1b3d2429720ef5edc4710811592b3d16b78503564ee4814e7f0c629" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.009Z", + "updatedAt": "2026-02-24T10:49:35.738Z", "postProcessHash": "63ebac1bddec8a943d23a0cb3562f09c0636f3dce01a9ab191df28050608818e" } } @@ -57677,19 +58829,19 @@ }, "b04390f51bf1f59894d700e72574de16a8af91217cc9d697fda57b0f3fb08de2": { "jp": { - "updatedAt": "2026-02-19T02:24:11.978Z", + "updatedAt": "2026-02-24T10:49:35.710Z", "postProcessHash": "907636d8b78d5a2d586574d30895d89346f793a39dfa1730e29d04723ed10dd7" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.979Z", + "updatedAt": "2026-02-24T10:49:35.711Z", "postProcessHash": "aac594d2e54eff1d4db3c53bdc23b7e6d6b56d0f1e427fe1dc6b5b98c83443c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.979Z", + "updatedAt": "2026-02-24T10:49:35.711Z", "postProcessHash": "06eaada15c59a253b2e9c63d470f40c12f8084798c339befa1a0be998c116d2d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.011Z", + "updatedAt": "2026-02-24T10:49:35.739Z", "postProcessHash": "fe9f963de621e57447d272ba5b46be0fc3f3446db02fc0b84850e4df433f6e09" } } @@ -57711,19 +58863,19 @@ }, "76ab6f17c7081ecb2f108417ad2d99b3ce742a855b515fa15d98b5b5ebdbefa7": { "zh": { - "updatedAt": "2026-02-19T02:24:11.994Z", + "updatedAt": "2026-02-24T10:49:35.725Z", "postProcessHash": "ac1f0e092b55865cdbc621c1d646146c4402c634f39dab5035a64e4224d949fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.996Z", + "updatedAt": "2026-02-24T10:49:35.728Z", "postProcessHash": "3896837e5344f9a54ceac0d2f1b1a3ca44afc151fb88d66ed573f68bd2aa1e0f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.997Z", + "updatedAt": "2026-02-24T10:49:35.729Z", "postProcessHash": "a6d1be8c4b97f73a2743ce61a59ccdcb715e65f0b956cbafd3dfded7c55a36d3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.016Z", + "updatedAt": "2026-02-24T10:49:35.744Z", "postProcessHash": "1139105935b40a7a790a2518ebc7dfb3c0fac49197913c02c46c1c49fd630587" } } @@ -57759,19 +58911,19 @@ }, "b324ff878d4e5f82f2881fffcddfe8da37cdaee2511417601f00ba0192eb06a2": { "zh": { - "updatedAt": "2026-02-19T02:24:12.096Z", + "updatedAt": "2026-02-24T10:49:35.847Z", "postProcessHash": "f5b8522bd14c149ff72d6d27a627e8b7dd1203e37e8a741628842b1cb1b514a4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.100Z", + "updatedAt": "2026-02-24T10:49:35.858Z", "postProcessHash": "29d0bb861f66293ed2d0d794bebeccd974d8694a37fdbd3d23bfa64e07f1c85c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.116Z", + "updatedAt": "2026-02-24T10:49:35.879Z", "postProcessHash": "60fcabac3ed013f5512c01049120a957d21c9de1d880425ba907bae14e161e3b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.131Z", + "updatedAt": "2026-02-24T10:49:35.894Z", "postProcessHash": "dc1ea1476d93580b91cb0dfaf6edd21e83d28c47e84d969d8399ab447cd5a1fe" } } @@ -57793,19 +58945,19 @@ }, "af0d913c51ae15c4d1a12d619e9641ec7e1d5aab167eb4fd620d4db43d126818": { "ru": { - "updatedAt": "2026-02-19T02:24:12.094Z", + "updatedAt": "2026-02-24T10:49:35.844Z", "postProcessHash": "0506f5f5e63f81bf6cd97c58d1b633567fe47665ceaab0dc1266777c07a6c81b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.097Z", + "updatedAt": "2026-02-24T10:49:35.849Z", "postProcessHash": "cb2b1ccc20f6b6537c6f1e533d5a167c55721911b9bb6f4f9a35a2b4a8a7de52" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.108Z", + "updatedAt": "2026-02-24T10:49:35.868Z", "postProcessHash": "49b4531355f2ddaf5da951559c16d8d2a5e39f66294327542da8e2b368a6c5b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.132Z", + "updatedAt": "2026-02-24T10:49:35.895Z", "postProcessHash": "16634cda221056eaafac0ab01d6066b6d62efe360ee6a912cd8e1c63167cccb2" } } @@ -57813,19 +58965,19 @@ "eedde629d3578cffde1c1a360202ead3bcbad997b04e6fd463a56fdea90a5b33": { "fd8e3cc73dae2f42c033bc640159c952cb1d54b439991ed9fc3211aca6868ef0": { "zh": { - "updatedAt": "2026-02-19T02:24:12.806Z", + "updatedAt": "2026-02-24T10:49:36.489Z", "postProcessHash": "84b70d4abf0981686cf96700db7b42fd516aca798b8a4d4fb56ca3f8abfa56ba" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.807Z", + "updatedAt": "2026-02-24T10:49:36.490Z", "postProcessHash": "82080f1de38c00fa53f7a91df2e515dbe9adf8b3fedac8835cb0dd8b0d03cf92" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.807Z", + "updatedAt": "2026-02-24T10:49:36.492Z", "postProcessHash": "cc5304c6b2aaf6b2ca96f4493c475d99cd8df3d51cbe6bb030c28aabfdfafded" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.810Z", + "updatedAt": "2026-02-24T10:49:36.500Z", "postProcessHash": "c790efd282916632b2c6ede246b6cc2fc8b92a3ce4afd55ad9fc7e81c76847e5" } } @@ -57833,19 +58985,19 @@ "e6704eb072be250409aa3d2d0610003f3c7ba056ba41b31ba93411f082692b41": { "db4497ceb4087eda93139097e8d364eac788ade10936c85a789b3c3dc4860ec9": { "jp": { - "updatedAt": "2026-02-19T02:24:12.751Z", + "updatedAt": "2026-02-24T10:49:36.490Z", "postProcessHash": "b698eabfd15b1e7f2aa2ee1271619fcbd87e1a0a546a99cd1599ae4f85d3d5e0" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.751Z", + "updatedAt": "2026-02-24T10:49:36.491Z", "postProcessHash": "70c5cdfd80d53cd0d2948d321376529b457006c69b58715f1c587a062c5dadbe" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.751Z", + "updatedAt": "2026-02-24T10:49:36.492Z", "postProcessHash": "d1080a3300c26d6b611c22417643e56147afce87cf3ac968995e5388b3090dd1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.764Z", + "updatedAt": "2026-02-24T10:49:36.505Z", "postProcessHash": "938b2abd9b6584080e187ebcae1a4f868786f6931a933ebbf00b232b967687f5" } } @@ -57883,19 +59035,19 @@ }, "0f7c2082f60f6506262316f0e0d8a28ba902a8b84f377087ec8e8deda7cdef95": { "ru": { - "updatedAt": "2026-02-19T02:24:11.405Z", + "updatedAt": "2026-02-24T10:49:35.069Z", "postProcessHash": "e0dd6511f5897d916beba21c8021c1012a964b3ae9403a14543ddb9e6fc973a8" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.407Z", + "updatedAt": "2026-02-24T10:49:35.070Z", "postProcessHash": "c00545cb325df72eabf8b4fd36bb03da2b89a23fa5111952a96944355f47820f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.409Z", + "updatedAt": "2026-02-24T10:49:35.071Z", "postProcessHash": "c5319bedc2162f02f26ff70c79da351a3e556aa0491f8550ebf2afb51026b4ae" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.560Z", + "updatedAt": "2026-02-24T10:49:35.092Z", "postProcessHash": "0ad3d20079c5d991cf5dcc430f2d9e989d579a1f359b0e3055d1236c8fb70e60" } } @@ -57903,19 +59055,19 @@ "31b5542b32056819e0846a16f5ace98c19094c1713316abbf56f8a90d0828243": { "62ddc4945a194bd2d2a354d4e7ce7ba6118d9b576de668c4a8a562b209627af1": { "jp": { - "updatedAt": "2026-02-19T02:24:10.234Z", + "updatedAt": "2026-02-24T10:49:33.924Z", "postProcessHash": "68cc0f1d319657c58efe07d3189a42da1cef98793c102ad8054d4d426194ad61" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.235Z", + "updatedAt": "2026-02-24T10:49:33.925Z", "postProcessHash": "f85ad7af4631d2bcbbc9f7cff832cb5bb602586c5cd7a0b33521022389f2419c" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.237Z", + "updatedAt": "2026-02-24T10:49:33.927Z", "postProcessHash": "1f26bbae3a9badc1266c5285fe7efdd061f8394edc1946b3268759fc044a4471" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.286Z", + "updatedAt": "2026-02-24T10:49:33.962Z", "postProcessHash": "293e1fb01280f1c0f222abb180cb6831a56b66153751448a6d46e39dfcbe360c" } } @@ -57965,19 +59117,19 @@ }, "e64102cc57fdadcf07411cbc730ecfe6321988dc8623a73f08206100d5070b6d": { "zh": { - "updatedAt": "2026-02-19T02:24:10.284Z", + "updatedAt": "2026-02-24T10:49:33.960Z", "postProcessHash": "5a51e417dfefb9d9a73c2288813679292e61fe2aad8120015a483c6d5cdb3409" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.285Z", + "updatedAt": "2026-02-24T10:49:33.961Z", "postProcessHash": "be3e023913e3cbf07bd75e110835f690202963b544d88e03af8e5f754eb37498" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.285Z", + "updatedAt": "2026-02-24T10:49:33.961Z", "postProcessHash": "d1e6060f6d35109c0b04264dafcb51a262e68723411413676f84d108fbd25f36" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.290Z", + "updatedAt": "2026-02-24T10:49:33.965Z", "postProcessHash": "ce9f16cd2d769424f17ed8c6dfe22834448db15f8dcf194dc321b266e3db7968" } } @@ -57985,19 +59137,19 @@ "dc41f273e60164125c9abeb106731850537c8ccb170100723072ece0a1aca89d": { "ed44ffe66e8c1a1ecf0ca6bc07d18f43272ec161a9e95d0e798e64dfe432b703": { "jp": { - "updatedAt": "2026-02-19T02:24:10.266Z", + "updatedAt": "2026-02-24T10:49:33.942Z", "postProcessHash": "24bbb7f0805c3bb354b07f0bcd669f3b27093bbbc5487c5eecb7654792e48d6a" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.266Z", + "updatedAt": "2026-02-24T10:49:33.942Z", "postProcessHash": "47bb849fba988ddae494d74d98876946b94aa4d8f6e4c4f98ddbedb7aca02c95" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.236Z", + "updatedAt": "2026-02-24T10:49:33.925Z", "postProcessHash": "0ff8f122273dc0924d4205c71b1dba96e10eefba8f8b65745aba0ccdaa77789e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.288Z", + "updatedAt": "2026-02-24T10:49:33.964Z", "postProcessHash": "41a390cc470d4717e9fbc8d3e4ad8ce01549d60469fddfcf7a68c30b606be909" } } @@ -58005,19 +59157,19 @@ "d1d7137dd4cb4cc74a1c3c87b1b693b6963f5cfd8bfb5a8b221978ff46d547ec": { "355157027a1047c82f7755ab15b218d98a8e5232865d69edf8a51337a364b541": { "jp": { - "updatedAt": "2026-02-19T02:24:10.235Z", + "updatedAt": "2026-02-24T10:49:33.924Z", "postProcessHash": "26a7b509463ac02cf7dbe51d1fff29ac26268e17f480eb89a06004325e171a63" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.236Z", + "updatedAt": "2026-02-24T10:49:33.926Z", "postProcessHash": "b4a0b1a0f65b17b953eb1b2a2ae2bc2cb82c84511309ef555755b3c7c8209135" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.237Z", + "updatedAt": "2026-02-24T10:49:33.927Z", "postProcessHash": "ae10c00988b745d9923923a5e7487668711cbad5fb69117ff298ec6eb98574b6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.295Z", + "updatedAt": "2026-02-24T10:49:33.970Z", "postProcessHash": "be5ee285d643ee73a4f1c404449f6a9bc016e737f1c605f9c20b8d6e3ba69e23" } } @@ -58057,19 +59209,19 @@ }, "0b85a7bb63284c6b9879053e4df797619b21b10e5733b0332689adc56bad957a": { "jp": { - "updatedAt": "2026-02-19T02:24:10.362Z", + "updatedAt": "2026-02-24T10:49:34.033Z", "postProcessHash": "74907fd534ecdf2357ee9ebab14bcb5c3c4eac2610b508789a9e69be1fda93c0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.363Z", + "updatedAt": "2026-02-24T10:49:34.033Z", "postProcessHash": "f762ed08f26ed2beb1f12a3e7b2c37026ec1ee5b03f3a2fafd12237ee263dd61" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.363Z", + "updatedAt": "2026-02-24T10:49:34.034Z", "postProcessHash": "42dd414af5069f81ccd7624a2900c63bd024f08882ac65b1765efe4d3800d051" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.364Z", + "updatedAt": "2026-02-24T10:49:34.035Z", "postProcessHash": "4f175ad3b05fcbb22f89641ae046f91c5bd4179b3a42b47da5d4c711e6e3f903" } } @@ -58119,19 +59271,19 @@ }, "99314dd9a82dde2c737eb90284b1182c074a20b7307585b55a5382a6a6c631d9": { "zh": { - "updatedAt": "2026-02-19T02:24:10.260Z", + "updatedAt": "2026-02-24T10:49:33.938Z", "postProcessHash": "92aaf41438ced916ad7509588266995598c8fa7dd93ea9b708f4a2ed378b658b" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.265Z", + "updatedAt": "2026-02-24T10:49:33.941Z", "postProcessHash": "22f877290f0c9d68e74556a2f4edc4a9fcb57a73d6300f255efe66f7131ff075" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.273Z", + "updatedAt": "2026-02-24T10:49:33.950Z", "postProcessHash": "13de597a0e09938ba5f68e1baccf3cc45d448fbb0d0ea45fef1a187622900dda" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.293Z", + "updatedAt": "2026-02-24T10:49:33.969Z", "postProcessHash": "bc1e406461cc3ef67b7a3af5f10d8a44ce30034c0e2c48cdbcbbb5a9cda5736a" } } @@ -58153,19 +59305,19 @@ }, "93a0d1380329610d8de6771f9125d8edcf15d2c194620afc3af07d3facb83ba5": { "ru": { - "updatedAt": "2026-02-19T02:24:10.249Z", + "updatedAt": "2026-02-24T10:49:33.933Z", "postProcessHash": "74976e3ab38d1f293995a11912cbcb1c3a7f812b7c1d257e6eba28c94e430a3b" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.264Z", + "updatedAt": "2026-02-24T10:49:33.940Z", "postProcessHash": "17ec839feec291642678cefed41f5b4f7a547f9ce8d83b6ebbfa11266ea2d5ec" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.278Z", + "updatedAt": "2026-02-24T10:49:33.955Z", "postProcessHash": "07d2c91f91c5eb3002e55ff4c970726f546a785dccd3cfa34626ba168c8a52fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.298Z", + "updatedAt": "2026-02-24T10:49:33.973Z", "postProcessHash": "0bb2edebcc130bd334edacc9db2933221a96e6b94cc6582895f13112bcc4e551" } } @@ -58215,19 +59367,19 @@ }, "ede88af8d24981a969e683cb52e9a4305afe18c8bd9705e33de4f8aa2f671f27": { "zh": { - "updatedAt": "2026-02-19T02:24:10.274Z", + "updatedAt": "2026-02-24T10:49:33.951Z", "postProcessHash": "adbc0cef72b9cf421e216f492b7a1f3a69ce87a5f4cca448be2a0cb77a33463f" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.281Z", + "updatedAt": "2026-02-24T10:49:33.957Z", "postProcessHash": "980d6fc3b0c34116d386d114f10ff30e7c076731304e8e873644c8aaafd525c2" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.283Z", + "updatedAt": "2026-02-24T10:49:33.959Z", "postProcessHash": "a958216e1513fe04f26d464a060128296d6486eaec991a01d3b2e931f92a6412" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.301Z", + "updatedAt": "2026-02-24T10:49:33.976Z", "postProcessHash": "15db033e1722e8ee545f5060d7987ae9100f62377e602ed4eda9c1a2b82b935b" } } @@ -58249,19 +59401,19 @@ }, "c65c3ea67e2e1c0610d1a3f1409bcb5f7e5eb5d545f725376d37282553f7050c": { "zh": { - "updatedAt": "2026-02-19T02:24:10.331Z", + "updatedAt": "2026-02-24T10:49:34.004Z", "postProcessHash": "2c7dc0fce9f2985c2c4b9971cf2b84d4dc059713931eca882e7eb0332185967c" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.333Z", + "updatedAt": "2026-02-24T10:49:34.006Z", "postProcessHash": "2a9d208f5469f56a28b1dbe6d541d9789f3a04354d1b3b52dffaaa5bd3e22059" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.338Z", + "updatedAt": "2026-02-24T10:49:34.012Z", "postProcessHash": "d99ac6ffb6633c01f0651c2b0eb2902a1c89aa4b7605a0c91e64a75a1d58906d" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.357Z", + "updatedAt": "2026-02-24T10:49:34.029Z", "postProcessHash": "54816c68af51ae09b03f98b3c5ea0b21ab34ad35d933e344e34e1c8bc62daa78" } } @@ -58283,19 +59435,19 @@ }, "b7f81fff9ef27259bc3a03703fa38d455a37856db6909b1073f6bc8d38cf459a": { "zh": { - "updatedAt": "2026-02-19T02:24:10.335Z", + "updatedAt": "2026-02-24T10:49:34.009Z", "postProcessHash": "3bf234b5fc8647c46ecdd821d0c7c859b17aabab6120ee3f400684c54a35c0a5" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.337Z", + "updatedAt": "2026-02-24T10:49:34.011Z", "postProcessHash": "9cb824cadef93d6319164b2387668d4ece00971ab1ecbb942ebd5ed6cbaeea05" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.341Z", + "updatedAt": "2026-02-24T10:49:34.016Z", "postProcessHash": "e9262ddef8d8c4ebe8bfbc884d492cf1ae8841ef57fa9ad8289c7afcf086ed6a" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.353Z", + "updatedAt": "2026-02-24T10:49:34.025Z", "postProcessHash": "b267a14c14c5a761022267928f05f33c37fd61d00213047d0d89ac2da7785e44" } } @@ -58317,19 +59469,19 @@ }, "4f51d09ee862ec687210818320ba5ca5065c33a0660618531840e3a36d30f9be": { "jp": { - "updatedAt": "2026-02-19T02:24:10.264Z", + "updatedAt": "2026-02-24T10:49:33.940Z", "postProcessHash": "fc6d07b4c9d979e91c1f39245aadc07a82527bfcb9357b65d996387a72585a11" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.280Z", + "updatedAt": "2026-02-24T10:49:33.956Z", "postProcessHash": "f4af8750ad1791ecf0a2120ac16fa288dad40fdd5117934b935f6f8685d7fae0" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.282Z", + "updatedAt": "2026-02-24T10:49:33.958Z", "postProcessHash": "5b77f8f4dda4a3e5b4a43b68a6069d6a0b793a686be99521680bc2769cf21dc1" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.298Z", + "updatedAt": "2026-02-24T10:49:33.973Z", "postProcessHash": "5aebf6cefa06aa1fd4ea550ea90c362ce5be833a2413cd872910bea8ae17546d" } } @@ -58379,19 +59531,19 @@ }, "d074656515c49417ce009c18a9e50eba84d7d595a73db629f9e1d5e25fb56719": { "ru": { - "updatedAt": "2026-02-19T02:24:10.331Z", + "updatedAt": "2026-02-24T10:49:34.005Z", "postProcessHash": "dd7ed0265d71c2d9aa5bb8e4743eb0c301d9d7022194bfc9dd57594e145f91a5" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.332Z", + "updatedAt": "2026-02-24T10:49:34.006Z", "postProcessHash": "552a9f36f16f46eda323e4e90452eb646e3010d421e27ad75bbf9c3abf8f00b8" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.334Z", + "updatedAt": "2026-02-24T10:49:34.008Z", "postProcessHash": "55be0883d39406c1d1a403b8f33fcfda8d3b21fbf3911a04de3331adef1a2e93" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.356Z", + "updatedAt": "2026-02-24T10:49:34.028Z", "postProcessHash": "d4ee27f73a3d1e7099764982161d154a4fcce870af3b62bc0491e9daf8f4e8a2" } } @@ -58429,19 +59581,19 @@ }, "3561e5fb3eecef6cfe533d7d07e77a813675a9e75523528c469dc9ad9954338f": { "ru": { - "updatedAt": "2026-02-19T02:24:12.111Z", + "updatedAt": "2026-02-24T10:49:35.873Z", "postProcessHash": "3067acf08309d812f0f4fe628398e1cf2051a7fbcffa57b5add21d1f2742ac3c" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.121Z", + "updatedAt": "2026-02-24T10:49:35.885Z", "postProcessHash": "1b71eb021c6ee0c3938210d35565d41055e795dc1aa66a063732da0f8831319a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.124Z", + "updatedAt": "2026-02-24T10:49:35.889Z", "postProcessHash": "f5e1e1d9bd2c2428576e1cb4c8990d5c1d739d4ab0bc33f8bf66facdeb4499b3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.133Z", + "updatedAt": "2026-02-24T10:49:35.896Z", "postProcessHash": "a0eea8e071cabad7c5c8fee246c8fc7e7af04f85add0bcf7cb1900fae16ec25d" } } @@ -58520,6 +59672,24 @@ "updatedAt": "2026-02-19T02:24:13.325Z", "postProcessHash": "442302335b26c338ade01cc21c8154b54364ee72332ada719413020b5323e6d5" } + }, + "72efca558a0f0b9c0507db712780256eb80f15e84e2f3db82e7beac47fba1fac": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.120Z", + "postProcessHash": "e4cb2fbb474d66474c4cb18804b61442b2ae36ae20e9e1e4d00accb33043574f" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.120Z", + "postProcessHash": "b493a2f8f0d6305c46c438b77ced9ad0cdbdaabe553bac264ebeb487c39b6dcf" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.121Z", + "postProcessHash": "7376a40ce6d736e3dc277b89a6e01192fa0f62b19a22b6674ac2bf4e1cbd42f5" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.123Z", + "postProcessHash": "229036a500a91aa61cfd161f59af6a361ba7ea5f06f891976b784c5e64e4a892" + } } }, "af83f5091cbd11c80292e416a1b05ce2de0c7f7901e2bca1093a013082a5575a": { @@ -58582,6 +59752,24 @@ "updatedAt": "2026-02-19T02:24:13.323Z", "postProcessHash": "275ada2908589e39c0d344279bcfdbedb8df568e5d0efe94592907d585195a32" } + }, + "2ab57342be82c2211ee09b7f67fd234149d8f105a449ad21ca0a3be1e91fb6e7": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.115Z", + "postProcessHash": "c3e8ade5043e0e83f11f65ee2f5ba6fc6bc682c8c02583303fbbbc90f01eb180" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.117Z", + "postProcessHash": "702b2f4ef54ad313994a6aa9c61971f7924121f906ffc98a252d8a3fdf7056ad" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.118Z", + "postProcessHash": "9a7faa59657816decdd06e3402fed0c5e5ae39e1b199902708235c8b41d91fff" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.119Z", + "postProcessHash": "95e3440cec04f0a818e7bda24b67d7f3d99db30bdf9e0edda28867ad15497fbf" + } } }, "b782f3fcaf5417b4eea3fdff6dc43177b5584a26a8fb8cf65f8ea3547359047d": { @@ -58644,6 +59832,24 @@ "updatedAt": "2026-02-19T02:24:13.321Z", "postProcessHash": "074ffd19f6e13aad1804537a5429e01807deda1ab912c0ca323dec5d37e99306" } + }, + "a6afc3e125569083f4f79c7600c3735dddc8c547c06045945722e5fe15711840": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.116Z", + "postProcessHash": "a4c4096dd01bcba5cb1a54bad41d3ff18ebc42a6b7ed5a5b8d81406d73323bf9" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.116Z", + "postProcessHash": "c0f317107e030c8f59fe16749b63d0e24f9517b7c0b72142a2a2897a032a489a" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.122Z", + "postProcessHash": "b5e78b46d235f9d61a10b493bb5986ff4ad2356ef8af75fe7e1eee5ea3652780" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.123Z", + "postProcessHash": "22e8c9363338be3cb7e50183d59b162d10604837190b16956bde6c607c0dbb72" + } } }, "b0362e4e3915dc96e6ae2e87c5cc5487b9957506e1cffd6abbd1e82403d17ffa": { @@ -58691,19 +59897,19 @@ }, "4f31b8788818bb4df49554b1240ec914cfec26b239c12fc0d99400d100aa736c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.504Z", + "updatedAt": "2026-02-24T10:49:37.287Z", "postProcessHash": "84fc985b4014a4a22edeba83d778d1f9348bcc2c2c42ae2e25c60d6a50b10c64" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.557Z", + "updatedAt": "2026-02-24T10:49:37.324Z", "postProcessHash": "189ee9e315e8c4ea3154d5c3a279dcd025c12ca50f807a1468e0537c4acb4bd9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.564Z", + "updatedAt": "2026-02-24T10:49:37.330Z", "postProcessHash": "d105210d6d724893655276dd040ce4cd09a9424b9b3490724c5b520d8c158376" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.580Z", + "updatedAt": "2026-02-24T10:49:37.346Z", "postProcessHash": "7959877aad7df93e1f8d054fd65f24895460e0c1b89664546d383681f6327744" } } @@ -58711,19 +59917,19 @@ "f94d1c07dbe7edb42d140939b71f80cf101c3b98f120abfa1161b51cc24c9c4c": { "54f1a9f837227da25d926aebe47c9f5517cad3e4f1a852228489f718e9f666f3": { "zh": { - "updatedAt": "2026-02-19T02:24:13.333Z", + "updatedAt": "2026-02-24T10:49:37.131Z", "postProcessHash": "a40f246b8387631d396f1bf7dc5cd902ab48089ad0d3d9b3da21b6b79dcde4b9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.334Z", + "updatedAt": "2026-02-24T10:49:37.131Z", "postProcessHash": "cd5829760276443888420959429ef5faed5b9d296879e9625c639cfd62d8c8fa" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.334Z", + "updatedAt": "2026-02-24T10:49:37.132Z", "postProcessHash": "dc8989ddb6b0042a4a62b4bd2fc1e87f5d2d55a2066bbecf94a59b44581206ed" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.447Z", + "updatedAt": "2026-02-24T10:49:37.241Z", "postProcessHash": "b2bf36e0c4fb7e78260b51d7c3a5077d9b47c88d63d42292cd0663f908c19dfb" } } @@ -58731,19 +59937,19 @@ "c540099447c0bf60907e62f4962142bf66b74fd2a2024261895ba5b0b67cac88": { "5e9d3e1136b70c06e84c55441565c90389535501b0149158c7e4fb3be8743f6f": { "ru": { - "updatedAt": "2026-02-19T02:24:13.335Z", + "updatedAt": "2026-02-24T10:49:37.132Z", "postProcessHash": "bfcb6c504ee13f8617f33337a25f98a64cff8e4d936cdef2db041457665eb50f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.336Z", + "updatedAt": "2026-02-24T10:49:37.133Z", "postProcessHash": "ec5a5555ac0b391827671ebb531cb84db1d2caac6a37f9a873c9cf3b0c9991a3" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.336Z", + "updatedAt": "2026-02-24T10:49:37.133Z", "postProcessHash": "00004c4d0be65d28f1334f18ab4686831dc7d6f1fd0b9250864d8a57e6804a56" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.448Z", + "updatedAt": "2026-02-24T10:49:37.242Z", "postProcessHash": "9630eab5f4ea247d15c8cc50266bd79b1c767b99eb7115cc9b4c4ffa9fbe50d0" } } @@ -58779,19 +59985,19 @@ }, "cebcaeb4e8337b8ce57fc1d1ba5e964fdc0273fc2d118f003229940df241fba6": { "zh": { - "updatedAt": "2026-02-19T02:24:11.698Z", + "updatedAt": "2026-02-24T10:49:35.343Z", "postProcessHash": "1a7017a7bf56e8c6252639d8fb15b82ec06d74c3db8a305bd078d09064aa67e3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.699Z", + "updatedAt": "2026-02-24T10:49:35.344Z", "postProcessHash": "4ef773d7e53498bd7649a2355acf2dacd28bc847be41e84546da70c911bb74ef" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.708Z", + "updatedAt": "2026-02-24T10:49:35.356Z", "postProcessHash": "22bb047a5fc318c313f51b08c1d090dfd1ba3f4ac29bdcf6c2b5c8bbc448c9c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.714Z", + "updatedAt": "2026-02-24T10:49:35.364Z", "postProcessHash": "fc791fa5ff3022a744183d1cf2bb2a29e707b1d9c3e172805f01602461fda3e3" } } @@ -58996,6 +60202,24 @@ "updatedAt": "2026-02-19T02:24:11.899Z", "postProcessHash": "ba61eb54c0cfe9f28d3a084bd702338e5462f794a04705ca62ec3068802aa273" } + }, + "3db1f6d1d6f8b82304063234e770ded1b491bd71e2db76ac952eecf1b278c9c0": { + "ko": { + "updatedAt": "2026-02-24T10:49:35.616Z", + "postProcessHash": "174b080047f098f966f427b127c46a977765a298125b2ba2f1feafa438ab05bb" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:35.619Z", + "postProcessHash": "72cc238e01c6fb0761bddf1b85305e13ae730d120c213549c43d1e77bc55588f" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:35.625Z", + "postProcessHash": "f4e514afc22b1c8e01d13a204c4639986c033c41967ece0725c7cf0972328dae" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:35.626Z", + "postProcessHash": "53d3b80f267eec39cd369fe302cb152e135eb6cedb9b85aa9573588434536e72" + } } }, "be5d20b40a85b6a5539c333aaf8ccbd9f3623d53d929c0185f6e4f69ae3d1646": { @@ -59017,19 +60241,19 @@ "f89b4a1fd3a7ea6c367efa7098581d5b4d39b032f5268cec93d25726893dd296": { "4a099f2b522ce3e467d7645148156799c4f53c01b732625c9f177f5be6cff8d1": { "zh": { - "updatedAt": "2026-02-19T02:24:13.455Z", + "updatedAt": "2026-02-24T10:49:37.252Z", "postProcessHash": "6f27e2cba1f837c478973f8b63fc2a174c71a9137aacab1ca7392917929e4559" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.456Z", + "updatedAt": "2026-02-24T10:49:37.252Z", "postProcessHash": "183d894edd03f43566784f4e5b0989465ae1604680936d366038e11ba0195839" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.456Z", + "updatedAt": "2026-02-24T10:49:37.253Z", "postProcessHash": "692b3439fe8411b068734204fdb5ea2bbcb82f7a0077930c6e4f7f2acb06cd4d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.519Z", + "updatedAt": "2026-02-24T10:49:37.300Z", "postProcessHash": "d1f680767a09077307898cb8cbad80f2e45f2de8582bc6321ec0a19c024c300a" } } @@ -59037,19 +60261,19 @@ "e0a986de2fde0f35af4b9679ab313e9d295cfe52d0910bfeaf4d3436d3ff8355": { "56c5b3b96a1151590d9251fb4be0b7e7a7ba06665bf1df10682a14ca6da1d2c0": { "zh": { - "updatedAt": "2026-02-19T02:24:10.537Z", + "updatedAt": "2026-02-24T10:49:34.200Z", "postProcessHash": "e51509f4cba882f657aac1ea4616b5fe24b2d6c3146e1d512999880e88e668ea" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.538Z", + "updatedAt": "2026-02-24T10:49:34.203Z", "postProcessHash": "d7e1003cd6df93e17596f22429b84c525d0bf5084bd16c8240a7532cd1d9a907" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.540Z", + "updatedAt": "2026-02-24T10:49:34.204Z", "postProcessHash": "335f219d1e4d5f1b57bbc06ff92d01a5adc022a1dd0e75f377877c47056a3db5" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.563Z", + "updatedAt": "2026-02-24T10:49:34.224Z", "postProcessHash": "957bbc873940ac48f93d4de072b4423d7efb85e430507af74c8858bf1b371a0c" } } @@ -59057,19 +60281,19 @@ "3a0f6627e1faaa02cd88fd146bbd9dbf37c30b1192a2461c4f31e98a1062b671": { "0952c73005dece918466c649ad971d0471bc4a1885e952d2bcf7e1bf9033a038": { "ru": { - "updatedAt": "2026-02-19T02:24:10.537Z", + "updatedAt": "2026-02-24T10:49:34.201Z", "postProcessHash": "cb4d21334e28f1bcd7451e48b9545150c2d83aa2ad7466a7af6d91fbb881da53" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.538Z", + "updatedAt": "2026-02-24T10:49:34.202Z", "postProcessHash": "fa46a8bb53e05e97b6a9d696aa3f49742aba932fa35abe5e1b674ec43a7922a7" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.539Z", + "updatedAt": "2026-02-24T10:49:34.203Z", "postProcessHash": "9e7baa5ebd8d07cd8f4185ac229133a89d329fb5f03ba1c60b7f3eb2db2c63f4" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.559Z", + "updatedAt": "2026-02-24T10:49:34.219Z", "postProcessHash": "4761456c08b7192ec213ad360c26e8b98cde7d3a9f9820f9f634c2cf157d4802" } } @@ -59091,19 +60315,19 @@ }, "220f087bc6298e25ab31b06aa579cfb44925f64381e8f889c21f6b5c6ce2ec61": { "jp": { - "updatedAt": "2026-02-19T02:24:12.324Z", + "updatedAt": "2026-02-24T10:49:36.082Z", "postProcessHash": "14eeb274f82d7bade804b96161f66166c0a9eef4942bca57b10779612dca0fad" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.336Z", + "updatedAt": "2026-02-24T10:49:36.089Z", "postProcessHash": "f20b0a1cd4f57cbc6dd89517d038025535cff2eeafd8ddc88af5029c86e26d32" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.337Z", + "updatedAt": "2026-02-24T10:49:36.090Z", "postProcessHash": "3661dce90aacd9f322f8da7c72b77326a6149af4b0bff5f149fa643d39962a22" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.394Z", + "updatedAt": "2026-02-24T10:49:36.154Z", "postProcessHash": "077e99f1f6ed2faaddefd8b058619bd017fb85ada1dc35c8beb7d80751f57526" } } @@ -59125,19 +60349,19 @@ }, "1164fc9ecfa7d94573c8980482185dfb9afc40b7a63abc43d8228ee7fb7817f1": { "jp": { - "updatedAt": "2026-02-19T02:24:12.325Z", + "updatedAt": "2026-02-24T10:49:36.083Z", "postProcessHash": "a98db66fc00d6145ba5fa946cb11bf1566ad4e79797c60be80e053509a56678e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.326Z", + "updatedAt": "2026-02-24T10:49:36.084Z", "postProcessHash": "3be37336db95e6b2d17b166bd3a63b070a0938be4d8b20563c006f1ab3defe77" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.337Z", + "updatedAt": "2026-02-24T10:49:36.090Z", "postProcessHash": "5193931d4c2bfb03ecf853922d34cf4cf324984bfd1b2aa8e7ce94ca89f0144c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.400Z", + "updatedAt": "2026-02-24T10:49:36.162Z", "postProcessHash": "4b8a0bc438eb76b53e103034ff8a6b86b8d47e0e711c710dff8ca67be3fe4104" } } @@ -59159,19 +60383,19 @@ }, "984907336af6dfe222067f655322e372474e6d791017f72dde59c42545a99552": { "zh": { - "updatedAt": "2026-02-19T02:24:12.419Z", + "updatedAt": "2026-02-24T10:49:36.181Z", "postProcessHash": "d4c47d142d6ae509c8c0d231b7373756c4c73888e7f5c309c7fbb51f0328ef57" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.422Z", + "updatedAt": "2026-02-24T10:49:36.185Z", "postProcessHash": "937eefd4d90ec7eba4fe9d430052632dd7cea2bafdcbfd0cf00a8daeffb88168" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.423Z", + "updatedAt": "2026-02-24T10:49:36.185Z", "postProcessHash": "2d741b9cf23f81dbfe176466f0a4a8a3b19fa37b5725b8e521fbfb599d46beb3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.519Z", + "updatedAt": "2026-02-24T10:49:36.275Z", "postProcessHash": "42ce69d8cf7ccea886643839f5ceb3c120247729089c34cd6a4d83b34882caa2" } } @@ -59193,19 +60417,19 @@ }, "04fc4a41a4def702dcf1e04110d90b4dc5205ec1eab5bf7458a2019803937a0a": { "jp": { - "updatedAt": "2026-02-19T02:24:12.377Z", + "updatedAt": "2026-02-24T10:49:36.135Z", "postProcessHash": "ca5e2a39d6a5ca2d0cd8561c107e461c16e64e88d5ed6ff9f69ac7e440563ab6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.429Z", + "updatedAt": "2026-02-24T10:49:36.193Z", "postProcessHash": "9b1a279ed2564b6442d97f19bf66283edc1e85b819918a3f96f7f4a7727f342e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.446Z", + "updatedAt": "2026-02-24T10:49:36.200Z", "postProcessHash": "1cc056ac5330b7ba6453e3424411b80c7526ae336378155e4e4aca371314a4fe" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.466Z", + "updatedAt": "2026-02-24T10:49:36.215Z", "postProcessHash": "89e367fde9c48ed41fe82052326c92d50ed684ff834c74f6ca49ddd5e9429c68" } } @@ -59227,19 +60451,19 @@ }, "3a1d95bba36015c519f3f5daa7fcd40f8bd53a52efae11c7ac78ebc1c26afc3b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.364Z", + "updatedAt": "2026-02-24T10:49:36.117Z", "postProcessHash": "9fed2f306eacdf280bd607039c054c50b02077e45a3bd2f4f33fc4cfa1bbec9a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.369Z", + "updatedAt": "2026-02-24T10:49:36.127Z", "postProcessHash": "10630b90080efd5088cb7bcb353130e39490a6e97940aecfcb8f818d160ce966" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.445Z", + "updatedAt": "2026-02-24T10:49:36.199Z", "postProcessHash": "803a61c0f7a7c9863963dedb4b0a4f12ba02f45cb55251c18efb231b1cf604e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.470Z", + "updatedAt": "2026-02-24T10:49:36.219Z", "postProcessHash": "26da767453864f123cf34a5097bcf63a59cc843c99181721a024034ba45f572f" } } @@ -59261,19 +60485,19 @@ }, "21bf7ebfc58f392fcc2ace0b2617c18d1dff70d40ceed0f6e4fcb603c0d1a595": { "zh": { - "updatedAt": "2026-02-19T02:24:12.375Z", + "updatedAt": "2026-02-24T10:49:36.134Z", "postProcessHash": "c6499604b676ea29ab8700e9db8b9660ad46ac7ce403b58e9a357e4aec6fbbe2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.434Z", + "updatedAt": "2026-02-24T10:49:36.138Z", "postProcessHash": "dd39d39db052c06f0d4a782219b9b048c52cfd37b63a35930d38b32587928619" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.450Z", + "updatedAt": "2026-02-24T10:49:36.143Z", "postProcessHash": "b8fd2381ab0c808b55ca7bd524b0167786dcde971e72f799483bd0edb0cadcd6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.467Z", + "updatedAt": "2026-02-24T10:49:36.160Z", "postProcessHash": "ec01813a93c70d2b7e3037adaa77e9d7e55876d48b63ef3baae7cc0eeb0e593d" } } @@ -59295,19 +60519,19 @@ }, "61e57afa12b111088474faa47accaf86770edab054d213b8e9ad2df4816cf12d": { "ru": { - "updatedAt": "2026-02-19T02:24:12.415Z", + "updatedAt": "2026-02-24T10:49:36.178Z", "postProcessHash": "c64befeae993bf6611a5e7a1738a149fbda754b7178dc233a8677e9c08f703ae" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.417Z", + "updatedAt": "2026-02-24T10:49:36.179Z", "postProcessHash": "b334392bed72346cac6808cee3e5d0dd186f50ae23bdbeb47dd40a5fb84098bb" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.419Z", + "updatedAt": "2026-02-24T10:49:36.182Z", "postProcessHash": "643cbdab2aa808467ddc9d4ee9ecac2f72bc9694dba49aa23b2543490d7e2b30" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.455Z", + "updatedAt": "2026-02-24T10:49:36.209Z", "postProcessHash": "7c2129dac9891a60055160786fd66024472406ce69fcdddad814f21fab0879a2" } } @@ -59329,19 +60553,19 @@ }, "106314e1e33e13ebbde46bc24ea54fd0a55916a180a77933070327f86d902532": { "zh": { - "updatedAt": "2026-02-19T02:24:12.415Z", + "updatedAt": "2026-02-24T10:49:36.177Z", "postProcessHash": "4db113cab4f6350f9d57b342f2a9eaf0a270840d6b3a8f3d9662218922b1ce22" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.423Z", + "updatedAt": "2026-02-24T10:49:36.186Z", "postProcessHash": "14396cbc30c45b595f2a0894fa0e41e875c6129b5699e05147c5efc4533d17ee" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.434Z", + "updatedAt": "2026-02-24T10:49:36.198Z", "postProcessHash": "3c116c0906f97b39b21961f730c12cbc6b1b028178089b21f22564516c5c6999" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.463Z", + "updatedAt": "2026-02-24T10:49:36.212Z", "postProcessHash": "4c6e7bef8b585b80b039d13bba2baa8358e6d6152ffd1e4d398e0037daea2449" } } @@ -59363,19 +60587,19 @@ }, "38d15f72c4c665b69408dd6797cddb8d2c0b2416a09e8f553ce5ba4f42dfb287": { "ru": { - "updatedAt": "2026-02-19T02:24:12.318Z", + "updatedAt": "2026-02-24T10:49:36.118Z", "postProcessHash": "c103c50fa0ca7f26205f46c938c6b57e67c6fbea64f19feeac9bd48c9521dd9b" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.368Z", + "updatedAt": "2026-02-24T10:49:36.123Z", "postProcessHash": "4689a72fa73dc199d1604d35121b03bc5f7897c64ce21b6e14581f756b8a9f54" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.381Z", + "updatedAt": "2026-02-24T10:49:36.139Z", "postProcessHash": "29566eb4f9ccda60af3bb9ced79c393ab0c31d88bd2466c11ad778008f33b996" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.393Z", + "updatedAt": "2026-02-24T10:49:36.154Z", "postProcessHash": "1102c4ea9686e525ea62fcee9adf10f793fd76abfd14953f97ef559053db4012" } } @@ -59397,19 +60621,19 @@ }, "8d5001db3e0106f9858c8ee1ea895316078f61e64b1a69479e289a6c86167f06": { "ru": { - "updatedAt": "2026-02-19T02:24:12.413Z", + "updatedAt": "2026-02-24T10:49:36.176Z", "postProcessHash": "2ca5f85fce9f60a6debbc74eab965631e39380a8d670d3e2b32c7a2096bd3bc0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.432Z", + "updatedAt": "2026-02-24T10:49:36.196Z", "postProcessHash": "0dd777a68d5c86c25799bbdb39b9e39ff36d196c732e59732abfa472957b67d5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.433Z", + "updatedAt": "2026-02-24T10:49:36.197Z", "postProcessHash": "26daa2172b904ed13a18a0a1286ef79b0b72129af0e94dbe2c96ed1b08ad15ed" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.517Z", + "updatedAt": "2026-02-24T10:49:36.272Z", "postProcessHash": "6462a614be07a169c9b7049dc53d39a8afc38a3cd203df9f96142322b5169ab4" } } @@ -59445,19 +60669,19 @@ }, "f364dfb521af615643c155a21228af31c68b679206b6ea07399e5610c034fec8": { "jp": { - "updatedAt": "2026-02-19T02:24:12.363Z", + "updatedAt": "2026-02-24T10:49:36.116Z", "postProcessHash": "62397188a5514b1ae1bdf269c9060d22b024ac3979507f308b97341fc33d90a4" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.372Z", + "updatedAt": "2026-02-24T10:49:36.130Z", "postProcessHash": "61700fb1d780df149f0bfb09fa89af4ff14f5dc352f42648ba9cc58e5bd52181" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.375Z", + "updatedAt": "2026-02-24T10:49:36.134Z", "postProcessHash": "9e867c58b4bbd7347e60ca145a01c6330c8bd8f51c087b87ae3b6dbbd586f239" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.453Z", + "updatedAt": "2026-02-24T10:49:36.208Z", "postProcessHash": "73a520abe0057c50b5b1ac6cdd9382e70c77cec271c9314df47ace73dbdc0430" } } @@ -59479,19 +60703,19 @@ }, "2d84955b9b1da554f40cf029de82be7e211d4b9baadb7b49d277de1cb654c472": { "zh": { - "updatedAt": "2026-02-19T02:24:12.420Z", + "updatedAt": "2026-02-24T10:49:36.182Z", "postProcessHash": "5828dbb898c4d890f39549d885b0f9b9f3826795707c475d552fc3b1110578c9" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.433Z", + "updatedAt": "2026-02-24T10:49:36.196Z", "postProcessHash": "ac7c6b9fd20823585d84d812720f5b06152e24a421f7f91576f550166790b734" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.422Z", + "updatedAt": "2026-02-24T10:49:36.184Z", "postProcessHash": "b807dc227978ceef48d4853cfc358ad723d84205a9c82e4c6f00df1f96d6bced" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.515Z", + "updatedAt": "2026-02-24T10:49:36.217Z", "postProcessHash": "5edda7288cb949e4f04869bbd33dc94337dc58214bc32ea9cedeb1898ecffab5" } } @@ -59513,19 +60737,19 @@ }, "70e180d463e9c25da05366b466171477265c62fb72f1b9a6ae300f2551bdb7e8": { "zh": { - "updatedAt": "2026-02-19T02:24:12.405Z", + "updatedAt": "2026-02-24T10:49:36.116Z", "postProcessHash": "617fdefb64e73c5931034586d6fa6b7d96dc888a2dd685912df29521517087a4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.429Z", + "updatedAt": "2026-02-24T10:49:36.194Z", "postProcessHash": "6bf93801b8b40cf0a46a2c278d0725db5c29f718a590b576af02d32ccb261062" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.447Z", + "updatedAt": "2026-02-24T10:49:36.201Z", "postProcessHash": "e022ff1225a2436c34a46a82134df25f96523f589f967cc25d0293c78a453ca1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.452Z", + "updatedAt": "2026-02-24T10:49:36.206Z", "postProcessHash": "8ad59e9d0ab059841cd6c3ca59ff761aec8903b299fda336a531662832ff9656" } } @@ -59547,19 +60771,19 @@ }, "2e6d613c18a39118625c8fa10aeb847016682c780f8abb1e21ea55463813e6d1": { "zh": { - "updatedAt": "2026-02-19T02:24:12.364Z", + "updatedAt": "2026-02-24T10:49:36.168Z", "postProcessHash": "84fefacbf575f837b337eb715b84dd8c3ddd6f79a8ed225b90769a4ef3b46e4c" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.424Z", + "updatedAt": "2026-02-24T10:49:36.187Z", "postProcessHash": "1682271cf540e085ac945452bb13da4fa7df08fb2c4eb64ce3b4c5644fd83845" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.426Z", + "updatedAt": "2026-02-24T10:49:36.189Z", "postProcessHash": "aae46c46049ce0c935e9f8f3645721f5d0ed2b463eae47aa974679faf52fd5dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.453Z", + "updatedAt": "2026-02-24T10:49:36.207Z", "postProcessHash": "d03ad229c937eff72964a410f1cc13164aefbd0c3a388c34f7c1b1a38f5bb2a1" } } @@ -59581,19 +60805,19 @@ }, "5784716bc6060f79ac53ce1dcbf4d0412882d8649b3fbac133f1724ca1f70450": { "jp": { - "updatedAt": "2026-02-19T02:24:12.405Z", + "updatedAt": "2026-02-24T10:49:36.169Z", "postProcessHash": "a1806ccb173b97f336443a6d411e37f6a159ac071eeffafbfa7b6c844d18b8dc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.411Z", + "updatedAt": "2026-02-24T10:49:36.174Z", "postProcessHash": "9db01599c09e8332fe568ed81101084bc0d64a160dc629c1851c68cc14f292b9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.414Z", + "updatedAt": "2026-02-24T10:49:36.176Z", "postProcessHash": "a41f658afe79234d509b91e1cbeaece4f8b2c8ee603289fe9af68f9d9238d1c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.451Z", + "updatedAt": "2026-02-24T10:49:36.205Z", "postProcessHash": "348e8982327d6d4eac77eb65b49317953990ad0c60e1afd179e244f9d4d2e8d2" } } @@ -59615,19 +60839,19 @@ }, "ef5abb8ab6f0887d1e26856f3e1a5848080a7bca0ddfd64fa446f4ad4ee88d6d": { "ru": { - "updatedAt": "2026-02-19T02:24:12.481Z", + "updatedAt": "2026-02-24T10:49:36.230Z", "postProcessHash": "3ad25a0bb8aaaf9e90387f5548f4fea5fe860d0d440fea9b569e4a111f5c85d0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.491Z", + "updatedAt": "2026-02-24T10:49:36.244Z", "postProcessHash": "a68ba7f1154f40a2c5ca753aaebb0898728a36f55dafc6823e89a7c896aefcad" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.493Z", + "updatedAt": "2026-02-24T10:49:36.246Z", "postProcessHash": "d63b2a167bc168cf8a7fa9b2efb7431291320faf32d93d39330f4eeb3dae1b7a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.514Z", + "updatedAt": "2026-02-24T10:49:36.269Z", "postProcessHash": "fffaf42011948c3c190fc324460dfb073b59f10474a955521c1b14efd257e72c" } } @@ -59663,19 +60887,19 @@ }, "49ad28bf44be00ae2c11cb3ad561a902db334744bc4cb5eb80f613001aeacdc6": { "ru": { - "updatedAt": "2026-02-19T02:24:12.386Z", + "updatedAt": "2026-02-24T10:49:36.146Z", "postProcessHash": "270c098ea62c88e1f739a37065541f1056ff4e004d77a36d446b7ca0fdf142aa" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.389Z", + "updatedAt": "2026-02-24T10:49:36.150Z", "postProcessHash": "e1af4a70346c8be1219dd485f82d0f44c0cc7ae20e88feac1283b9755b26e3e9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.391Z", + "updatedAt": "2026-02-24T10:49:36.151Z", "postProcessHash": "f5179e9a98fff8f5d5b3186a3187462756e407a1c7cac8bf19dd650715639501" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.403Z", + "updatedAt": "2026-02-24T10:49:36.165Z", "postProcessHash": "d6c47953ef96713cbb40c7f70f1e569bec974c669c356f585acf6c008ae7008d" } } @@ -59697,19 +60921,19 @@ }, "dc799225fadb0b1bb4a977e67b812e9796227db7e1be46955cd25faee377c3bb": { "jp": { - "updatedAt": "2026-02-19T02:24:12.363Z", + "updatedAt": "2026-02-24T10:49:36.115Z", "postProcessHash": "68576495f956ef1dfad9d14816005fbd83a4adc7ff4605ed856f679df650560f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.368Z", + "updatedAt": "2026-02-24T10:49:36.123Z", "postProcessHash": "54bdd650ad665bdfd0ce10ecadf3c4121e164fdcebf1fb1fe364a87ef36978a8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.428Z", + "updatedAt": "2026-02-24T10:49:36.192Z", "postProcessHash": "8682fe209c70844ffb121987d8c195a5f4223a7701d843378b5ad85b67687d23" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.465Z", + "updatedAt": "2026-02-24T10:49:36.213Z", "postProcessHash": "0bf58d7e56589cd60f1ab172e5e463c406a71cb31d5512c5825291670109d500" } } @@ -59745,19 +60969,19 @@ }, "48d35f3aa50edfe7c4dd7379b2c7d037e793011e997513674a3c20ce477e87ac": { "zh": { - "updatedAt": "2026-02-19T02:24:12.387Z", + "updatedAt": "2026-02-24T10:49:36.147Z", "postProcessHash": "f2a0e736a38df86a3719152e0279d158790a64932001020bc183eb46dd00c318" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.388Z", + "updatedAt": "2026-02-24T10:49:36.148Z", "postProcessHash": "119c43ec7a615b7aebb2ceae9d197e3f2fd3fb75613c3139b4dc4c355e2ee28f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.388Z", + "updatedAt": "2026-02-24T10:49:36.148Z", "postProcessHash": "70344685c4cd29db8b1b93f57ae8898a758d505a0b2b61c4cd1c50c36e3969a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.396Z", + "updatedAt": "2026-02-24T10:49:36.158Z", "postProcessHash": "f57ddb567e86907c5475670f46043784c543cbad9b9a72f9a4c30188d5c57de2" } } @@ -59779,19 +61003,19 @@ }, "70edfb1534f948a3a507d736dcb452bcf6dad25ad3a624196d8d4d8c3876e7d3": { "zh": { - "updatedAt": "2026-02-19T02:24:12.449Z", + "updatedAt": "2026-02-24T10:49:36.203Z", "postProcessHash": "009faac4003f8e663893052019e9e737409b759132834fb3d7e57ccfdd9f812f" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.446Z", + "updatedAt": "2026-02-24T10:49:36.200Z", "postProcessHash": "c16d15dd7222402cdcd1c84fb6e1c7e704f19df2904461ac95ed4be7ab4c4c70" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.447Z", + "updatedAt": "2026-02-24T10:49:36.201Z", "postProcessHash": "ff6eaf01a7281e413245384537160dd8c33ea3e47fd2baffdf731849bbd45542" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.456Z", + "updatedAt": "2026-02-24T10:49:36.210Z", "postProcessHash": "e51e3d3d54c2894db0e85cd74f901c88613127430a0fc33d36868d344b942910" } } @@ -59813,19 +61037,19 @@ }, "93b063df841c4c4afeccfbc10adf460c5c3078072b55273722227941e04a614d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.320Z", + "updatedAt": "2026-02-24T10:49:36.078Z", "postProcessHash": "2fa27848534f565a44ad5df65860534995a26ad7cd7f228b01050828204cd131" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.333Z", + "updatedAt": "2026-02-24T10:49:36.087Z", "postProcessHash": "780d0c40d2358fba83e17961741e7f12707eaa5d4531ef1563db83169c151685" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.339Z", + "updatedAt": "2026-02-24T10:49:36.092Z", "postProcessHash": "973333c21583670b5be62793a756daf4679a0ed9a6dad56f0a9f4331237a7b12" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.353Z", + "updatedAt": "2026-02-24T10:49:36.108Z", "postProcessHash": "7eaa8fd306940d79629a0bcf83139de8983367685abca3edca19b95446871459" } } @@ -59847,19 +61071,19 @@ }, "36d73a85578225ed4399b1d6d60dc3ba5d86b9d2123e14ebe3a9ee5efeb0cfa4": { "ru": { - "updatedAt": "2026-02-19T02:24:12.367Z", + "updatedAt": "2026-02-24T10:49:36.122Z", "postProcessHash": "98168dab926a2e80a9ab16029e1a2b4a53ed8ee3c3bee59829b8ba8a96ad90b8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.445Z", + "updatedAt": "2026-02-24T10:49:36.199Z", "postProcessHash": "635b075556803a9bce75c0c4a9a38ee1a18bc8dc4749f86b53df3b0bd7ebfaf9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.448Z", + "updatedAt": "2026-02-24T10:49:36.202Z", "postProcessHash": "1cd6ca2a410140364f4642ef752f2f0aa22dd99460e4efcae53a2063864cbf06" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.467Z", + "updatedAt": "2026-02-24T10:49:36.216Z", "postProcessHash": "4136a40986d4e30b6c01f2f4c24bdf6aae5876a37fe74a68e4a2a8f73fe17e62" } } @@ -59881,19 +61105,19 @@ }, "88979a36b0bf0a676933ebe7932d62ae75d64396cb07a877cb57ed8c2bd45dc1": { "ru": { - "updatedAt": "2026-02-19T02:24:12.411Z", + "updatedAt": "2026-02-24T10:49:36.123Z", "postProcessHash": "ce9fc3e90975cbf70fea57badb393a56e4207f6200384dbbf003a5e0e20411eb" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.417Z", + "updatedAt": "2026-02-24T10:49:36.131Z", "postProcessHash": "44ffa452525bb009f03d959671e8699ace82aa610374ae9bcc31b6c1a7a11396" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.425Z", + "updatedAt": "2026-02-24T10:49:36.188Z", "postProcessHash": "454cc58b9f5b5b4390902eee4ccdc52b5d768cf8a7312a23a3cec4763ae42f6f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.464Z", + "updatedAt": "2026-02-24T10:49:36.212Z", "postProcessHash": "c8b3613fde16c7d0dbab720d3ce71fca4737c229a85815db318798700e722f96" } } @@ -59915,19 +61139,19 @@ }, "986680f501a99549ef8c9bed863d26767f96a04a645179d661b435a8ff3001c3": { "ru": { - "updatedAt": "2026-02-19T02:24:12.409Z", + "updatedAt": "2026-02-24T10:49:36.171Z", "postProcessHash": "322719e8d77916c85aca41f16c56fa9ea8c01ecc18a2210a94fbba72a6504fc5" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.410Z", + "updatedAt": "2026-02-24T10:49:36.172Z", "postProcessHash": "15dd6b1691342345a249300ef0a0c464907431e99880be3818f0c3cee435e1f5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.412Z", + "updatedAt": "2026-02-24T10:49:36.175Z", "postProcessHash": "2afeb88e72f39c1f578807f3c2526efd74551f737a4b4baedc81daf2e8ab1d55" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.457Z", + "updatedAt": "2026-02-24T10:49:36.211Z", "postProcessHash": "641b6768f6b305bd93708a4bdbdcc397f2d53dfa78f7d01e824bbeebd8972a37" } } @@ -59949,19 +61173,19 @@ }, "de87fe20a24b80d68dc2bed9db6aeae6e12e0bc1cd3c7d35957dcf29bf5df491": { "zh": { - "updatedAt": "2026-02-19T02:24:12.319Z", + "updatedAt": "2026-02-24T10:49:36.077Z", "postProcessHash": "bc18fd64012708fe2bf71cb22c9a7d64c41e927742375fbd683fbeacc0ff2b24" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.338Z", + "updatedAt": "2026-02-24T10:49:36.091Z", "postProcessHash": "7277c2ed0b8b4f115058823016d266782ab3f610d7d4449d19f51ede486f6321" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.341Z", + "updatedAt": "2026-02-24T10:49:36.093Z", "postProcessHash": "a54cce7a52ae2a471dd6ac16893d29aefba3521ce071ae8499c06ba634021062" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.398Z", + "updatedAt": "2026-02-24T10:49:36.159Z", "postProcessHash": "2ef3310ebae0406e9f9d8a15d9d524599b753f960bc0d0083d06fc939c8c2b06" } } @@ -60011,19 +61235,19 @@ }, "545473bcbbe97d58b699ef873a8142635ee1e2928d1d753926c0f694bde07e7f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.391Z", + "updatedAt": "2026-02-24T10:49:36.152Z", "postProcessHash": "b1fb7b20831fd11f2ecfd7e5b2045b2dec4f4a06c552e354f99c665a39102fcd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.391Z", + "updatedAt": "2026-02-24T10:49:36.152Z", "postProcessHash": "4259615b22eb4f7e413c312ede5f4f202e7567c9841ca01b146f5c13642fde3d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.392Z", + "updatedAt": "2026-02-24T10:49:36.153Z", "postProcessHash": "d0b9f8ee50b59b08a6578b310110ec7b4addece59a1078c56e5682fd653b5b0c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.392Z", + "updatedAt": "2026-02-24T10:49:36.153Z", "postProcessHash": "cb3f457b1d8453a20438096eb2f602408865d2abac7c1809b9795012cceeaf90" } } @@ -60045,19 +61269,19 @@ }, "04144634d33ccb2957317fd89e166f631d274c124c6883d3848fe7afd36b5467": { "zh": { - "updatedAt": "2026-02-19T02:24:12.321Z", + "updatedAt": "2026-02-24T10:49:36.079Z", "postProcessHash": "a52de7c737d69a6832df05cc7abc21bb41b2af840450dee3cea94fdd5a40b85e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.322Z", + "updatedAt": "2026-02-24T10:49:36.079Z", "postProcessHash": "2954ff28a7b86b3b34c3eea0f0a5bf3dd51dc5a3bff910ce30fc497902eec837" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.336Z", + "updatedAt": "2026-02-24T10:49:36.089Z", "postProcessHash": "516e64041d16789869fc104876ea5c97afd166f9bfa8b531e521084d37695773" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.396Z", + "updatedAt": "2026-02-24T10:49:36.157Z", "postProcessHash": "947309048b762b38a9e4a8c942cb39e3294f0b6dc5a0fdc54740ae6eecabb226" } } @@ -60079,19 +61303,19 @@ }, "cf5d5557703dafe1ea8a4d130f66115f673d37631883753bc97acc8ed19a0b0c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.366Z", + "updatedAt": "2026-02-24T10:49:36.120Z", "postProcessHash": "80de6ce04b86e50d1d99f07e77300d23a16663675aa8caab3d4b658851a804e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.421Z", + "updatedAt": "2026-02-24T10:49:36.184Z", "postProcessHash": "2205b8d882807e04eadb47fc7f9e8a6018b7d5d61fe9f5f1c0d688f5535c4039" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.427Z", + "updatedAt": "2026-02-24T10:49:36.191Z", "postProcessHash": "f642a2400e8d88fe7ec8a8749ef4d8ae704bf0219ebccd4fd77322df4815a713" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.468Z", + "updatedAt": "2026-02-24T10:49:36.217Z", "postProcessHash": "9528ceeeaf0fc513a6d6707e56c955035c7f78234c3e0a2d96ae16b33363cd84" } } @@ -60113,19 +61337,19 @@ }, "6971d278b3e3d885a3eec80e278fa5352c54e14bac5c0df31f8841af81b4010c": { "zh": { - "updatedAt": "2026-02-19T02:24:12.316Z", + "updatedAt": "2026-02-24T10:49:36.075Z", "postProcessHash": "440e2fbb468276d5e6ddb6db29c8b3e6f61e264b0e5ca326dbb7223a133919cc" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.379Z", + "updatedAt": "2026-02-24T10:49:36.088Z", "postProcessHash": "2cf303d1cf7bc7d1662ab1930803b05211be737a16a906c83c4f0f0514a48f08" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.379Z", + "updatedAt": "2026-02-24T10:49:36.089Z", "postProcessHash": "6fd3fa871594d3ef5ea89ac79483ef8b049649fe6e677cd3037a41ec625d6f3a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.393Z", + "updatedAt": "2026-02-24T10:49:36.105Z", "postProcessHash": "76a3e635fda2c15385354ec2daa21dce8b88cd6d3cdf61e1aa41abbe1c8612be" } } @@ -60147,19 +61371,19 @@ }, "58f372a32f1a1b5a10beb43b6d888c8f8cb5eea56a2b59e0e17005342f0feef4": { "jp": { - "updatedAt": "2026-02-19T02:24:12.374Z", + "updatedAt": "2026-02-24T10:49:36.132Z", "postProcessHash": "36665a30536d7f96b9cd6077065d51dd253ae6c4c5d53354e7147553d47424b1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.375Z", + "updatedAt": "2026-02-24T10:49:36.133Z", "postProcessHash": "dc4825ed554d62e6a090c9a24da60648eb8afa1f351c1a6c16175cb3ad00a71b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.449Z", + "updatedAt": "2026-02-24T10:49:36.203Z", "postProcessHash": "381aa80f519f62ba70c52de2a2a6249d96aa33bdf8954771a472fc0062524d1c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.468Z", + "updatedAt": "2026-02-24T10:49:36.216Z", "postProcessHash": "c1e52bb928b1371a07c2714bbcd3ea7a621a5bdb662ed1f710d21f4062dbe77e" } } @@ -60195,19 +61419,19 @@ }, "d9aa07882e0d35881c08f4ab8c2bac10559806588428d1f353f7751eb80c345e": { "ru": { - "updatedAt": "2026-02-19T02:24:12.386Z", + "updatedAt": "2026-02-24T10:49:36.146Z", "postProcessHash": "5f1f0772bb06211d221e168bfe5a2bf354dffc49de4e60684e1771d44073b18b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.388Z", + "updatedAt": "2026-02-24T10:49:36.149Z", "postProcessHash": "6ab4a9a4e241c7e54f4bf4968c655b574fc89d948aecda49235b23509fe6c633" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.390Z", + "updatedAt": "2026-02-24T10:49:36.151Z", "postProcessHash": "7e8462bb0f2fea4a9537a6b09390975557585758e122f62a9f9f83b9d17ab647" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.403Z", + "updatedAt": "2026-02-24T10:49:36.166Z", "postProcessHash": "f38843dbe28da5958f3aaf3c467cfb23fde8241ee8529fb6f195f752114e1f60" } } @@ -60229,19 +61453,19 @@ }, "a373777f896e9daaa33788cf44c71da60362aa1a6b40f458e03a1fcccf7c8d2b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.367Z", + "updatedAt": "2026-02-24T10:49:36.122Z", "postProcessHash": "b75c2c76ead5206dda7bcbc801b5ac827fac0a047457b9bb7a271ef7a689c3a1" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.371Z", + "updatedAt": "2026-02-24T10:49:36.129Z", "postProcessHash": "050a510421690283d8a0cb0c5304637ccab19882f1d437d3eee6023137a29cca" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.427Z", + "updatedAt": "2026-02-24T10:49:36.137Z", "postProcessHash": "651bcf2d2706a7a4e3841d15d73955fe1a1a08f054675ab36149f1ed554fcbd1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.454Z", + "updatedAt": "2026-02-24T10:49:36.155Z", "postProcessHash": "10ab79c34a54ac863f505439577dd30f0b4567cee02e3c2e8ac78e2a94f6e1d9" } } @@ -60263,19 +61487,19 @@ }, "e118e8ceb0be6c3b9135ded47eb52a547dd7793ea1ed1e821b43ea6cd0bd8141": { "jp": { - "updatedAt": "2026-02-19T02:24:12.408Z", + "updatedAt": "2026-02-24T10:49:36.171Z", "postProcessHash": "4c690a98d3e7538cbd2f04ad331e9cdca197e6380c8022bb0a500264ca7bd035" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.412Z", + "updatedAt": "2026-02-24T10:49:36.175Z", "postProcessHash": "35f81fbb9f0e01b8d5887c422d5334bef37f41d7e066a238ad87ce8e8a4e6b89" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.416Z", + "updatedAt": "2026-02-24T10:49:36.178Z", "postProcessHash": "ae50bc8e3f4829b9f0c762884d2a89507ad50455e0eca82bf1cdd1c02a85f360" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.452Z", + "updatedAt": "2026-02-24T10:49:36.206Z", "postProcessHash": "7fe33159da7d49c3b93a90b01984cfda1be15f6b681c9dd2e0801c7a7380fbd3" } } @@ -60297,19 +61521,19 @@ }, "0767116fdaa2dcc948fd3678e4a38f73d7830324c8b129662b5450768aaac232": { "zh": { - "updatedAt": "2026-02-19T02:24:12.319Z", + "updatedAt": "2026-02-24T10:49:36.077Z", "postProcessHash": "c42cfaa2152b4e877b8a398f7f91c2479a0f374be68325c995925be9c8b42c15" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.341Z", + "updatedAt": "2026-02-24T10:49:36.093Z", "postProcessHash": "7ebd6267233d8a571ae62e94118327bbfb38d14844ab3f57ac15fbdfcdaedec9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.342Z", + "updatedAt": "2026-02-24T10:49:36.094Z", "postProcessHash": "765bb556bfd46bf769603ad6a8934d2566108331cd3e7896eed9f48fedcda9b7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.398Z", + "updatedAt": "2026-02-24T10:49:36.160Z", "postProcessHash": "7e2db84e6cdfddea6f9354e4035272cc8843ead3805c28a09da2100075b591aa" } } @@ -60331,19 +61555,19 @@ }, "12c4e648c17ee6adcf722539c6dcde008152e7dd2f2733a94ccdf19fcd04f41a": { "ru": { - "updatedAt": "2026-02-19T02:24:12.323Z", + "updatedAt": "2026-02-24T10:49:36.081Z", "postProcessHash": "319b60652402f6c808045b2f1768fe1028cb44f1244d4f634ccb6658283ecd76" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.323Z", + "updatedAt": "2026-02-24T10:49:36.082Z", "postProcessHash": "44cba6fad8c47ec16b90b83891ab5718ebd223113436707a63c095f547fcdda9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.339Z", + "updatedAt": "2026-02-24T10:49:36.091Z", "postProcessHash": "2565cada861d6b73ac8810e2907566e191915d4807e5d6af55cada393142120e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.399Z", + "updatedAt": "2026-02-24T10:49:36.161Z", "postProcessHash": "00cfa53e706cfdf8d2cfdb7232ec451f5d3c79454fb0b76092fda8260584eb89" } } @@ -60365,19 +61589,19 @@ }, "e14d6d13c719ae6d806be61507486bc1b32b03bc17046f1d8a228f18c083d37d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.326Z", + "updatedAt": "2026-02-24T10:49:36.085Z", "postProcessHash": "1c5a621bd8be0c0674ee4e1d4fe8885cae02174300087c8ae56475f6eab388ff" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.328Z", + "updatedAt": "2026-02-24T10:49:36.085Z", "postProcessHash": "e2cb54a00ee2d521d7c39bfba09b2482e7755be62c3f1b1135169e47af6e502a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.340Z", + "updatedAt": "2026-02-24T10:49:36.092Z", "postProcessHash": "e7e73286bcfb0613ce8016fdaf7a478eae52d896024fb95d71199bb331b0deac" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.395Z", + "updatedAt": "2026-02-24T10:49:36.156Z", "postProcessHash": "3ea8fabbc1fe218dc70be62e47adffefdcf95a3d4f372ced67a867c6055174b4" } } @@ -60399,19 +61623,19 @@ }, "2419102a16dd06bcf4d40d7cd93af3b29f1ec0f4910f1210cba5d6ce7d27a83c": { "jp": { - "updatedAt": "2026-02-19T02:24:12.371Z", + "updatedAt": "2026-02-24T10:49:36.082Z", "postProcessHash": "696031941001cf617d6efbdd1e5e400376e0bb16d1894a19dce8da968831fc5a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.376Z", + "updatedAt": "2026-02-24T10:49:36.084Z", "postProcessHash": "4c5e29152cd8ec9c7e39cb3a1c08b450ef45434b5a3eb80475c69bb86b256239" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.378Z", + "updatedAt": "2026-02-24T10:49:36.086Z", "postProcessHash": "9abb8b9f08ba1a5b931747d0f18abdd73e2671c8daeca52af88ff5495d038afd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.397Z", + "updatedAt": "2026-02-24T10:49:36.159Z", "postProcessHash": "905c76cccad2068f511fd69434dca8f36278c3253ec9aafc889e5982ca0d7834" } } @@ -60433,19 +61657,19 @@ }, "8ed5afba01523f8bea175deaa3de39286a091092bfc53fa816e3fa8a4d0d4810": { "zh": { - "updatedAt": "2026-02-19T02:24:12.321Z", + "updatedAt": "2026-02-24T10:49:36.078Z", "postProcessHash": "00fde372938b55cdcf2a71cbc8bfc3e40920e76149c088cebeeb615495bde276" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.324Z", + "updatedAt": "2026-02-24T10:49:36.083Z", "postProcessHash": "d66d5344da88d919942b9cc1211d04b1dbf7b5279af4b9ff771a5cd7c8a61a47" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.335Z", + "updatedAt": "2026-02-24T10:49:36.087Z", "postProcessHash": "12da758258940a1241ce90c3428a64f9c839e75bb91ef5c3e684867d9e194e16" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.397Z", + "updatedAt": "2026-02-24T10:49:36.158Z", "postProcessHash": "7fefe1f58deb3eaa9925f4952683169b83ef87509b9a7a70812f0f904c30a7b3" } } @@ -60467,19 +61691,19 @@ }, "961854bd357775275df9787b60d0984d10d4cc51782054c82a48cf61c89c9b30": { "zh": { - "updatedAt": "2026-02-19T02:24:12.365Z", + "updatedAt": "2026-02-24T10:49:36.119Z", "postProcessHash": "26077f5ad7a7a164f3a5eb9200dd7b311dc327f2cf2a2f8815fceadd62e2c88d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.373Z", + "updatedAt": "2026-02-24T10:49:36.132Z", "postProcessHash": "f5ae88ecb00f60c210bdc7e164227125e7dcc0851c7268fd4d30073413129698" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.378Z", + "updatedAt": "2026-02-24T10:49:36.137Z", "postProcessHash": "02aea0e65ff2ebae6b9157059e0982f8b6f307beec62f52231ddc39da460e274" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.393Z", + "updatedAt": "2026-02-24T10:49:36.154Z", "postProcessHash": "d6e33abcf8e1ab587b1e6606a2ed43e55b617559b2341338d1befc3a70b7a4bd" } } @@ -60501,19 +61725,19 @@ }, "84d9dc96fe4d67a3ef63f213c8b28fce9df1b5d52a2e7dee0196e12196e10dc0": { "ru": { - "updatedAt": "2026-02-19T02:24:12.315Z", + "updatedAt": "2026-02-24T10:49:36.074Z", "postProcessHash": "be787a96cffcefeb2c2e24bcf1ecf9cada4c9edcfbd89e1dc28057a10c81ecdf" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.325Z", + "updatedAt": "2026-02-24T10:49:36.084Z", "postProcessHash": "44be3c30f76c1e438e7d803aacf66ef84758d4b92eee5c28fd55fa59ff066902" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.330Z", + "updatedAt": "2026-02-24T10:49:36.086Z", "postProcessHash": "b1ebcf56a65d123c7f7cae7e73aced0ba909be6634835c41de355262e6e276dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.353Z", + "updatedAt": "2026-02-24T10:49:36.107Z", "postProcessHash": "d6bb3b480b05376831d75bafdd3e3a021bd7f923e159a5ba293b9013279acbcd" } } @@ -60535,19 +61759,19 @@ }, "d92c1e407d1194128148a3b982934f1300eefd6a68affd0d16780039561a8a00": { "zh": { - "updatedAt": "2026-02-19T02:24:12.317Z", + "updatedAt": "2026-02-24T10:49:36.076Z", "postProcessHash": "b64eaad0a525c65429d96c4ca8cc59f14b16ec57e09708a2a560ca7fee0fba4a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.335Z", + "updatedAt": "2026-02-24T10:49:36.088Z", "postProcessHash": "a05e8c3e2d46b208b16fe4c71032f5c7fc634b1531d831861df6c5e6ea77fc7a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.338Z", + "updatedAt": "2026-02-24T10:49:36.091Z", "postProcessHash": "66c1745beb2fff2b266290a9e841095d8110208b0e305947dedc813eee7e242e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.399Z", + "updatedAt": "2026-02-24T10:49:36.161Z", "postProcessHash": "7e412fe9b8070d26eb76328382f6fcc214d358cba1125d7df3d8a09f769b8dbd" } } @@ -60569,19 +61793,19 @@ }, "76527efbf4866ee39397f08a379932eb90122023d5ac47d02e6baeff6c96b1c0": { "jp": { - "updatedAt": "2026-02-19T02:24:12.382Z", + "updatedAt": "2026-02-24T10:49:36.141Z", "postProcessHash": "7e401eeed66e1c2c3b021e9c7528d7ae2a68739b97b13dc76e6a08ce6e8ccbdf" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.384Z", + "updatedAt": "2026-02-24T10:49:36.142Z", "postProcessHash": "d22238c943dccba1356841b026d41e3a0cddc1cd036aee21cd2865c07647ebc9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.384Z", + "updatedAt": "2026-02-24T10:49:36.143Z", "postProcessHash": "dec87caff8e8085b1e70c808c6a138768b8a7ed6580f5b76f26a7a0284333905" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.402Z", + "updatedAt": "2026-02-24T10:49:36.164Z", "postProcessHash": "76b85431571bdb1308374d25fd26486ae52473a545db55024a4b20deebcb5c4b" } } @@ -60603,19 +61827,19 @@ }, "abba13d0a1336668f8b00e8de96b78284da6f12c8cb0c5f09afe99f54e6e807e": { "ru": { - "updatedAt": "2026-02-19T02:24:12.482Z", + "updatedAt": "2026-02-24T10:49:36.231Z", "postProcessHash": "8d3e11c56a584ff67b1676d5b6e0ecc84d2e46c36d3dd83445e5087a1da48dbc" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.486Z", + "updatedAt": "2026-02-24T10:49:36.238Z", "postProcessHash": "7c0a489c40be73bc3f1d8cec191f2b8a9e805fdfc8e3aafde684ac459590e9eb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.488Z", + "updatedAt": "2026-02-24T10:49:36.240Z", "postProcessHash": "d918d5eb62179c771cb3ad9eb41ed50279a41fd1ba6c3ee18935e0c3e86e1367" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.582Z", + "updatedAt": "2026-02-24T10:49:36.270Z", "postProcessHash": "c10c5fc1a1ecde6b13b383cb037be10d7bdf8455ea000af3e718b1fedeec7a58" } } @@ -60637,19 +61861,19 @@ }, "1a96b140976e0d78f930b3c2e824de48121784f58acc4a59dd43d8ae8eb14458": { "jp": { - "updatedAt": "2026-02-19T02:24:12.480Z", + "updatedAt": "2026-02-24T10:49:36.229Z", "postProcessHash": "8423e25e05bdd594a445ee12a9d8de99872dc1ab2d3a1cf633796f91102a87a8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.488Z", + "updatedAt": "2026-02-24T10:49:36.239Z", "postProcessHash": "02813c0c7a26f5ea694bb0fdfbcf2537156c232b671df064835aa14d2c864181" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.502Z", + "updatedAt": "2026-02-24T10:49:36.256Z", "postProcessHash": "5be13f69ab00572528786fb8231ab94522695a2805230ed416a0ab4d7322b3e3" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.579Z", + "updatedAt": "2026-02-24T10:49:36.266Z", "postProcessHash": "f66d3347841eb5fd42125e5e09ff74fc986cf5005344a9e80e832e15319d86ff" } } @@ -60671,19 +61895,19 @@ }, "bb7272febb11e052524d4a89470e84c920ebd791ce0ea1a537eaeffe0d5a574e": { "zh": { - "updatedAt": "2026-02-19T02:24:12.485Z", + "updatedAt": "2026-02-24T10:49:36.237Z", "postProcessHash": "b80ab2df9feed50d7b8a29d1279c21e7e8d26397380b4e782abc34bb9dbf263f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.487Z", + "updatedAt": "2026-02-24T10:49:36.238Z", "postProcessHash": "19e3039cf728dbcbc4abc0c00179b72d0ebe3d67f94ee64468639468259baf27" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.506Z", + "updatedAt": "2026-02-24T10:49:36.261Z", "postProcessHash": "6fcd08de98e4b93e6cabd957e89b29424185bddd39c15eb892d240ae08445f87" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.511Z", + "updatedAt": "2026-02-24T10:49:36.265Z", "postProcessHash": "36792727e214d03066184ddf7206812e1ef665f5a9544b9b771d53a0f07aeb3d" } } @@ -60735,19 +61959,19 @@ }, "58bef77d4f28a031de857dd5338bdb0b54e8f07bc6d9b518509e4a077670cc2b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.483Z", + "updatedAt": "2026-02-24T10:49:36.234Z", "postProcessHash": "ff2f32ec19d614bb465c17dc2adf42e0944320dd0d0b57bbf82a326a7bca0937" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.501Z", + "updatedAt": "2026-02-24T10:49:36.256Z", "postProcessHash": "ddfb6ffcc0afdd139faf2c24f13cdaadd0e99e41af549422a3b3d7e1028a28f4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.506Z", + "updatedAt": "2026-02-24T10:49:36.260Z", "postProcessHash": "7e98f3af2cc8bcdde491b328b38e6dc3f501d69d7e9fc27b052d5f78b4c42f65" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.582Z", + "updatedAt": "2026-02-24T10:49:36.325Z", "postProcessHash": "a8cbb47cb26028d2e9e62c1da24af72576bce9fcb5ae00236054562e3bb5df74" } } @@ -60769,19 +61993,19 @@ }, "fc5dcdbd46bb88350b2e23afd51183a8b46beb5973799b12de624999939ec15d": { "zh": { - "updatedAt": "2026-02-19T02:24:12.544Z", + "updatedAt": "2026-02-24T10:49:36.297Z", "postProcessHash": "a58a8d8f75fe857414a44e9f305f1ae9141473af67d16df39a64e3ec7442c1a7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.546Z", + "updatedAt": "2026-02-24T10:49:36.299Z", "postProcessHash": "bc4230a53efa15a393677df684d0db8d2d1acad3ee71371fa9cfb1c7199494f6" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.546Z", + "updatedAt": "2026-02-24T10:49:36.300Z", "postProcessHash": "1ba88477c165c62dc0a732ab566d63a5beac7b8a371e6490f2b66098ae6127e0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.583Z", + "updatedAt": "2026-02-24T10:49:36.326Z", "postProcessHash": "b0f07afbfc1e02377a983c81fa396b5c0806e9b7ee8dffe41c1ef6952b301486" } } @@ -60819,19 +62043,19 @@ }, "046c1d0c2a01d3741f1f23107f4331ca7b2b2c79a5bd947cf897d3ffa5d0242b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.472Z", + "updatedAt": "2026-02-24T10:49:36.220Z", "postProcessHash": "56ea6bbf3bcee75090b717a2228e083010646967b08d44ad3d8a1e5089a792dd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.490Z", + "updatedAt": "2026-02-24T10:49:36.243Z", "postProcessHash": "cead69ff3eb0b49fb2a31a39eb6065ddd7c4df14551e693008b0e1f4a7a91321" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.507Z", + "updatedAt": "2026-02-24T10:49:36.261Z", "postProcessHash": "6393fd6a384aafe898929b8d32e51e97d61c8ac90c2d2b1f231b168193538843" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.583Z", + "updatedAt": "2026-02-24T10:49:36.327Z", "postProcessHash": "be14dccc8f0e52bdbed8cbe6118edaedd1644e3c4be2a924ca52dc5f4ebf51aa" } } @@ -60853,19 +62077,19 @@ }, "7a58bc134e0729cedb4812b19c0c204eca19f549b13114c96c045e76c20a7a52": { "ru": { - "updatedAt": "2026-02-19T02:24:12.492Z", + "updatedAt": "2026-02-24T10:49:36.245Z", "postProcessHash": "ced5d180199fe0a6f1e5f5261a74cdbcaabf860a3f76c4aca1835f1791888fee" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.495Z", + "updatedAt": "2026-02-24T10:49:36.247Z", "postProcessHash": "15810e35eb3fb2e2426098a66ad8d56249afbade6132f507ce7be5df5ed5cd11" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.499Z", + "updatedAt": "2026-02-24T10:49:36.252Z", "postProcessHash": "8c6193d9059ce467152ddb2a844d78ddd2971cc62a8857aee66c0fe92fc67d58" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.519Z", + "updatedAt": "2026-02-24T10:49:36.275Z", "postProcessHash": "ac693d20f3992e2966553683e125ebddce32ab17f3ba5e8bccbea5b090ac8d80" } } @@ -60887,19 +62111,19 @@ }, "41df080a6e11e6e62ca57ea6511165bf288262a9788b1f201339584f8dcc2b08": { "ru": { - "updatedAt": "2026-02-19T02:24:12.318Z", + "updatedAt": "2026-02-24T10:49:36.118Z", "postProcessHash": "d216d7cd94c4e5641802638a1e815fe4ecd7d9a63f8ad9ed53c39601ad5e54c7" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.377Z", + "updatedAt": "2026-02-24T10:49:36.136Z", "postProcessHash": "81644eeb1550b19681a20f492caa9d6f3c101856f3473c43b8ca15d1db2de48f" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.378Z", + "updatedAt": "2026-02-24T10:49:36.136Z", "postProcessHash": "fd422a4fc85419dcb0f5ef2d022e3ed3b3a92547ea29766500cf8df4990f655a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.396Z", + "updatedAt": "2026-02-24T10:49:36.157Z", "postProcessHash": "70d89eaa0449562071631dd1b65c12eb2414ebfda57ac6b6540eebf168bea1bc" } } @@ -60921,19 +62145,19 @@ }, "81f760562f625f157ce3977a38baecb40abd30347ec37bf31093a418fd4af70e": { "zh": { - "updatedAt": "2026-02-19T02:24:12.410Z", + "updatedAt": "2026-02-24T10:49:36.173Z", "postProcessHash": "969b3589603ebf1feaabfd63a5518441dd240f2860a484d994d386ebfa7c051f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.418Z", + "updatedAt": "2026-02-24T10:49:36.181Z", "postProcessHash": "f9c7cca108ba391d7e3b781cd1f53296c71f46fd2b83ad9edb752dc544da5bab" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.420Z", + "updatedAt": "2026-02-24T10:49:36.182Z", "postProcessHash": "f2124abf9e3fa82d33d74599c0f06f4db0ffb423af3cba2ae3a6877f7ab4267e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.455Z", + "updatedAt": "2026-02-24T10:49:36.209Z", "postProcessHash": "4f789bfe92e6db95dae12f4a3572758998ecaa023c44d32424e49829462c1a8a" } } @@ -60955,19 +62179,19 @@ }, "f922229926919f6d99f3e6bc8ae491415771eb8e2b811512587392a064104baa": { "jp": { - "updatedAt": "2026-02-19T02:24:12.424Z", + "updatedAt": "2026-02-24T10:49:36.187Z", "postProcessHash": "6a14427d1325ac7461fc4109a70c5882fa647f66516a16722dcd87cd95b5e0e9" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.427Z", + "updatedAt": "2026-02-24T10:49:36.191Z", "postProcessHash": "ede6704f2d859f86e4ff18d6ec314c6431a01e197d166bacb64da1c5d553f15a" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.430Z", + "updatedAt": "2026-02-24T10:49:36.194Z", "postProcessHash": "0616e9303fe2c7ec9e4061b83c967427ef81124e01a040cded74ca02cdb18063" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.464Z", + "updatedAt": "2026-02-24T10:49:36.212Z", "postProcessHash": "45cb08b0546ab9d7e0a502b483de979b1cc40ecbb7443d639912a59252430dcb" } } @@ -60989,19 +62213,19 @@ }, "c179c4b17fa7cc1985fdc424d157a182ee126dbb047351328e7e749b5238f877": { "jp": { - "updatedAt": "2026-02-19T02:24:12.408Z", + "updatedAt": "2026-02-24T10:49:36.170Z", "postProcessHash": "4295e65e20fbd58cc6dcfac180c493de9df6e3439491692605b324f40bc88e27" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.416Z", + "updatedAt": "2026-02-24T10:49:36.179Z", "postProcessHash": "5251ff69e2f815b203e56d34a6c3cba95fdddb25548522940a4274784532d637" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.425Z", + "updatedAt": "2026-02-24T10:49:36.188Z", "postProcessHash": "3e68edc76854ce0ddf046749934dd83d5177cc44e380aac07614b8bba12d40a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.454Z", + "updatedAt": "2026-02-24T10:49:36.208Z", "postProcessHash": "d36f2d6c211ddc36c0a03ae8178f7e848b5e186d881fa1ac7517c74120f70dd7" } } @@ -61023,19 +62247,19 @@ }, "67c9308768a83092a4135f49a70f4982122fb27b5d57752fc6ad41748c4fa690": { "ru": { - "updatedAt": "2026-02-19T02:24:12.406Z", + "updatedAt": "2026-02-24T10:49:36.170Z", "postProcessHash": "55c8ac4c5c68688c63a921acb6fd437321a0c12406ff6a9a9e7fd90e49224829" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.411Z", + "updatedAt": "2026-02-24T10:49:36.173Z", "postProcessHash": "3d8d592f75032df6c686ed4a12c5fa911a644750122d086967096570460cf8cf" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.421Z", + "updatedAt": "2026-02-24T10:49:36.183Z", "postProcessHash": "481d3e38a4662ab41f9686fd8cfd956ba645a956e85987e89d77809e21315c38" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.451Z", + "updatedAt": "2026-02-24T10:49:36.205Z", "postProcessHash": "b3a92c927c5266258873b16e6d88060fc5e68b940ba80f0746f34e79dde44d31" } } @@ -61057,19 +62281,19 @@ }, "e54f2c9e6db69464d9e75b4e9f7f9d387b94a49c5e91762a4c08770a8598f97b": { "jp": { - "updatedAt": "2026-02-19T02:24:12.413Z", + "updatedAt": "2026-02-24T10:49:36.175Z", "postProcessHash": "71d88f1ae9c874a1fac037f4ca57fff5d92403893b74d460ef3459186ca91bd7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.414Z", + "updatedAt": "2026-02-24T10:49:36.177Z", "postProcessHash": "3c264c71bc52598f30e1aa8bf11e1dca3e40d5c2ebd3a63d1fc3d568382789a0" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.418Z", + "updatedAt": "2026-02-24T10:49:36.180Z", "postProcessHash": "9e9f9ee2f755753146cbaa79423ffbd2116012c761a46a02dbea078b415ed43d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.465Z", + "updatedAt": "2026-02-24T10:49:36.213Z", "postProcessHash": "efe80df78aac29d61f4bff13761c16204294db74b998f093d5720c797ee2c4e7" } } @@ -61091,19 +62315,19 @@ }, "33b2a4b619e95a160fe7fc63319618ee10cee3c5306a7f9b342c2e2c16b80c11": { "jp": { - "updatedAt": "2026-02-19T02:24:12.369Z", + "updatedAt": "2026-02-24T10:49:36.128Z", "postProcessHash": "e4552080905b60af83dd5a1406b7d40488ce011bf31f073ac874688d644dd97e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.370Z", + "updatedAt": "2026-02-24T10:49:36.129Z", "postProcessHash": "fb960e429dcbdd40fabc0dc4bc98cadc2a8160cc158719424cd036f4dae509c6" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.450Z", + "updatedAt": "2026-02-24T10:49:36.204Z", "postProcessHash": "b0e929211eb566e6f406fe822326fb754a6dcf84ebaa1519767b4d10c9599002" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.466Z", + "updatedAt": "2026-02-24T10:49:36.214Z", "postProcessHash": "62ee9de54c20b4c329d5835732a928b51577d9fe89e9ce41f86ad4e60c5ac772" } } @@ -61125,19 +62349,19 @@ }, "64ebececcfe48b23c192b66c999438074e7aea1b4c7a097643fa63884fa16927": { "zh": { - "updatedAt": "2026-02-19T02:24:12.373Z", + "updatedAt": "2026-02-24T10:49:36.132Z", "postProcessHash": "bb64182585c938634a024a07d3c3b1d570218bd6346bb1998ab56bdd43b1253c" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.380Z", + "updatedAt": "2026-02-24T10:49:36.138Z", "postProcessHash": "97448f79a447ef359168b21abb5fb70c0370612d93f9eff0189e12e70eeb1424" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.380Z", + "updatedAt": "2026-02-24T10:49:36.139Z", "postProcessHash": "d6a4d91b5f20ad6b1880fa327b6cbf4c7861cb7f367e7f35f6e4b3146652eb2a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.394Z", + "updatedAt": "2026-02-24T10:49:36.155Z", "postProcessHash": "c42378b1a61d29e8d51d2902d8727bbbda9e7a42cd9a7e1e0ec4d63785e205aa" } } @@ -61159,19 +62383,19 @@ }, "14d9f598fadecfa7e7ddd9bd4d07b86b524d05bda53674dbfba5d27bdcd5bc3b": { "zh": { - "updatedAt": "2026-02-19T02:24:12.480Z", + "updatedAt": "2026-02-24T10:49:36.174Z", "postProcessHash": "2f12b301826c2b10b4072ead1c2cbce4c8215de9c6bd3e58e14cc9cbc361300a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.488Z", + "updatedAt": "2026-02-24T10:49:36.181Z", "postProcessHash": "fcf6eb8d56bc5ef97e127636b03276339a1d138efc6b276dcc3a2925364bfd1d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.509Z", + "updatedAt": "2026-02-24T10:49:36.204Z", "postProcessHash": "86986ee23984e80c22b2755cde7052faa4dda3e257297d204d9e765714e7dff6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.518Z", + "updatedAt": "2026-02-24T10:49:36.272Z", "postProcessHash": "790d9e95f55cb5eff9f8dbe74e407f5b9fbb29127b2a93a4d9ac873e9c555cbf" } } @@ -61207,19 +62431,19 @@ }, "3eacf8ced4271e3680fa2f0f8d508dc3f953e7abb32f1d492b377fcfb7532db9": { "zh": { - "updatedAt": "2026-02-19T02:24:12.387Z", + "updatedAt": "2026-02-24T10:49:36.147Z", "postProcessHash": "275a65c44c5c4b20cbc19cf86a9b5aa7ee387d5ac2f272ad03c687df55f49f50" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.389Z", + "updatedAt": "2026-02-24T10:49:36.150Z", "postProcessHash": "d9ec34df2bfb4d08036a95abffa23923a655b2c7380e6716e9bcc4a3abce30be" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.390Z", + "updatedAt": "2026-02-24T10:49:36.150Z", "postProcessHash": "9c05f86a5edca7a273836b3e253bfb09a77211d9689af4455662caba2e58284c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.403Z", + "updatedAt": "2026-02-24T10:49:36.165Z", "postProcessHash": "f09b4f37b8b74349956e530b03e69080efb9baa04a27acc3312f597d0bc2b220" } } @@ -61241,19 +62465,19 @@ }, "7f1b231af5e02ce0032e61058483d264aaeaebb50f34d4a47c409f968745e8e3": { "zh": { - "updatedAt": "2026-02-19T02:24:12.381Z", + "updatedAt": "2026-02-24T10:49:36.140Z", "postProcessHash": "711b4375790c8ec717483d3df58aec5689884280d106eb5adb3a19bd8d8151dd" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.382Z", + "updatedAt": "2026-02-24T10:49:36.141Z", "postProcessHash": "c0d0bd356cfcd2506da1035a9621aeef7cc4176841118f5504321db5a9f1057d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.384Z", + "updatedAt": "2026-02-24T10:49:36.144Z", "postProcessHash": "7f1ffb9d8e5cf0f748d7b0f82bb0e0127edac7b4e95316b06a3fcc8f94e808c1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.402Z", + "updatedAt": "2026-02-24T10:49:36.164Z", "postProcessHash": "b0899553e64ed5d704ffad83ef2a92591847390d61ee4f07c81f5b79fbc54f43" } } @@ -61275,19 +62499,19 @@ }, "88397a4f1140adc955dfa146062eaaebc02bfa3e4ef725c71f8b6f3ebcca2e4a": { "ru": { - "updatedAt": "2026-02-19T02:24:12.489Z", + "updatedAt": "2026-02-24T10:49:36.241Z", "postProcessHash": "9ac818cb0706b7edf002055f889b1e9eae0d7b0b88ccad131dfd0eb31256f153" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.545Z", + "updatedAt": "2026-02-24T10:49:36.298Z", "postProcessHash": "7fbda08f6b694e955e9c784045562520ce08225410ae7296afd9674d787ccf5e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.545Z", + "updatedAt": "2026-02-24T10:49:36.299Z", "postProcessHash": "0bfde2bc4693bfd966831e17247afe827060fd2668f199a8ad20440aeabfd3d4" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.574Z", + "updatedAt": "2026-02-24T10:49:36.320Z", "postProcessHash": "540a2f2ef0c430254f09d5600412aa4f1856bddd06a89762f072fddcc78243fd" } } @@ -61309,19 +62533,19 @@ }, "5f0fc10ac6c5557aa3343ac542ca709891a640eb98b7ebac2770366e81aadad9": { "ru": { - "updatedAt": "2026-02-19T02:24:12.498Z", + "updatedAt": "2026-02-24T10:49:36.250Z", "postProcessHash": "7371d9ba704ab7c7140b4e57c7093846f73b3249b11438380d564ad2a7cbc948" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.508Z", + "updatedAt": "2026-02-24T10:49:36.262Z", "postProcessHash": "d7cd291f722df48db0e17864326b710d8b0cc5eec9b1205da957cb694f9edea8" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.542Z", + "updatedAt": "2026-02-24T10:49:36.296Z", "postProcessHash": "c746e2796a37d175c29d696f9f5bce2892effb7f9d30b606bd0eee1eea315332" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.571Z", + "updatedAt": "2026-02-24T10:49:36.316Z", "postProcessHash": "f7ac8cfd0c49ffa2f413365ad35ddfc568f0f1ed53b68e94229101f421a82c94" } } @@ -61357,19 +62581,19 @@ }, "fb63f58fec092b5e50ee88513450b37292a6ba475bdeae7f5f4eb3ff998103c9": { "ru": { - "updatedAt": "2026-02-19T02:24:12.551Z", + "updatedAt": "2026-02-24T10:49:36.303Z", "postProcessHash": "8a1c67bd23fec925e52bac7ef6e2c1de94677868f4d454cd2b02db61ed888924" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.555Z", + "updatedAt": "2026-02-24T10:49:36.306Z", "postProcessHash": "9e1f1f9840ea78d460c427c7c82c308eb639a9a8b3fe5dba24ff5d4570f930fb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.556Z", + "updatedAt": "2026-02-24T10:49:36.307Z", "postProcessHash": "319ab306b3262ccb4cca47e41f61bab95888c70ce24669594fa2929b61b47d36" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.584Z", + "updatedAt": "2026-02-24T10:49:36.327Z", "postProcessHash": "d883ddec0f71d81dbe76341271d77d9470cb0691a1bd18a9c9440ddc8aa6834c" } } @@ -61391,19 +62615,19 @@ }, "3b1ef1f337115e47a21c92598eb45160670de66f8f59c2c6dff1efbe6f6c65fd": { "ru": { - "updatedAt": "2026-02-19T02:24:12.525Z", + "updatedAt": "2026-02-24T10:49:36.281Z", "postProcessHash": "ac2a4e102572dbc466036f439470fd714196ca7ec5baa315b30cb3e6a94f6aa9" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.529Z", + "updatedAt": "2026-02-24T10:49:36.285Z", "postProcessHash": "7cc1600c8cd371b6996395428a787d3e33c074c03c4cd0748037b7638396f295" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.533Z", + "updatedAt": "2026-02-24T10:49:36.288Z", "postProcessHash": "59a2a2c672bcda7c9da6d85a3506e0f8be67b5cf9a20a36d99eb9a3eed42011e" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.568Z", + "updatedAt": "2026-02-24T10:49:36.313Z", "postProcessHash": "3de737289d9a3ea04ac3e7d6158584546e547f19437707cc7d70729caad1112e" } } @@ -61425,19 +62649,19 @@ }, "4d3ffd7ddf585364f625f7bd12d4f5e02a30ef24a088be286a8d9cdb7dccaeb5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.612Z", + "updatedAt": "2026-02-24T10:49:36.343Z", "postProcessHash": "49b8924229a5d5da34a9b32e6e6ded12305f2ee409fa0f0fd8306152bef55b4a" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.619Z", + "updatedAt": "2026-02-24T10:49:36.346Z", "postProcessHash": "3976f0efc3bc3b8b2d9eb5863b3c329e27ca4f45855edb4cce6e877f7d517e22" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.630Z", + "updatedAt": "2026-02-24T10:49:36.353Z", "postProcessHash": "f4d4da19dc97e1106cadccc0648b0e6ada6baf59e85739102641416d030ca492" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.650Z", + "updatedAt": "2026-02-24T10:49:36.379Z", "postProcessHash": "3a353392d32a8b62f685dd19bf002e8dddbfa9cb54d500d48d440d545bdb35c9" } } @@ -61459,19 +62683,19 @@ }, "19e2d947459ce39d2f5b4d0909d78abfca295c74bc957b7b6a3be6e7afd97a29": { "ru": { - "updatedAt": "2026-02-19T02:24:12.615Z", + "updatedAt": "2026-02-24T10:49:36.288Z", "postProcessHash": "031c7d19de2f9672cf04445988ae8690bcafc21ee7ce0b99546e71b3a02d1475" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.623Z", + "updatedAt": "2026-02-24T10:49:36.290Z", "postProcessHash": "8d1badcdf9c281809a6371108d37c6c7e138260180fc8a6af3c0e8ec7aee75f4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.628Z", + "updatedAt": "2026-02-24T10:49:36.291Z", "postProcessHash": "98eced5b404c19d30ed974a0606e77e8d807dfe955bae15a555b5877ec49c6eb" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.650Z", + "updatedAt": "2026-02-24T10:49:36.316Z", "postProcessHash": "a3628ae3ebf2ebbcff605072e6a2202365e188cd4a2e4c632e18e1a9fb0c16fc" } } @@ -61493,19 +62717,19 @@ }, "854585758cce39c72594312e50ec045c67d55e64ca935d32e4bcf121a737e8fd": { "jp": { - "updatedAt": "2026-02-19T02:24:12.476Z", + "updatedAt": "2026-02-24T10:49:36.227Z", "postProcessHash": "2491aa4e44ba6104533b66b723662f98732e58cbb72239fd6fc7b695529b09fc" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.485Z", + "updatedAt": "2026-02-24T10:49:36.236Z", "postProcessHash": "5a321fe3592d1e020c16568019331dfd2a3f924d3ce74e6c38300bd62e5b3659" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.501Z", + "updatedAt": "2026-02-24T10:49:36.255Z", "postProcessHash": "ec06d72029471c2638ea4ab0645087efd0079224c0fe29a02f62c88aeaf2e0a2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.581Z", + "updatedAt": "2026-02-24T10:49:36.325Z", "postProcessHash": "275e09659191b4b1ab640f20d4166c620328e9e60205b729c96238f211991480" } } @@ -61541,19 +62765,19 @@ }, "29183e603d1b5dc8a02bf7ea249029c02bcbda37aa9e53c25db03074081bda7d": { "ru": { - "updatedAt": "2026-02-19T02:24:12.548Z", + "updatedAt": "2026-02-24T10:49:36.301Z", "postProcessHash": "c6f197e8b3b4e96c1c6ddb7a44a11c724489ac7e27a1fe917154ab17cb7e26e1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.550Z", + "updatedAt": "2026-02-24T10:49:36.302Z", "postProcessHash": "e25e28b48a288bf8aa7a46742ceb8b0b529a1a98290387d2ac18788da950762e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.553Z", + "updatedAt": "2026-02-24T10:49:36.304Z", "postProcessHash": "ec9f7331c1d1ec727bdcb508db76d2088ff2875f0edc79c874b4188c64e08b20" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.582Z", + "updatedAt": "2026-02-24T10:49:36.326Z", "postProcessHash": "237dc7c194a684f5d98cdf2e159f3c1a88447d58b8c5aa9934270f3ded5d30c8" } } @@ -61575,19 +62799,19 @@ }, "2d8157cb702eddafeb198889e4f2f83b988d65f30fd30687c3c6d95fc2518a26": { "zh": { - "updatedAt": "2026-02-19T02:24:12.474Z", + "updatedAt": "2026-02-24T10:49:36.224Z", "postProcessHash": "18c74dc20600a3ca5e2b9b000664b205fd2a2a09ca0f04d38e5b179c38405905" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.479Z", + "updatedAt": "2026-02-24T10:49:36.229Z", "postProcessHash": "c86b48e5097782d0b7693acdb92316b044ec49e876f635c33a31f62fb7382e48" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.495Z", + "updatedAt": "2026-02-24T10:49:36.248Z", "postProcessHash": "506e36a2f7d6fe96e09f33ff95cd2083df6fa1046b4f42c8b46ce8823cc4f5f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.512Z", + "updatedAt": "2026-02-24T10:49:36.267Z", "postProcessHash": "a6eb30cd492751ae1ba7f7087cfc525a5e038477ff50b0ed8bc6ed15555a0897" } } @@ -61609,19 +62833,19 @@ }, "d69edb51a8b1de51cab8ec1520f20a84ea5f1e28563475e331bebbc0f435d383": { "jp": { - "updatedAt": "2026-02-19T02:24:12.489Z", + "updatedAt": "2026-02-24T10:49:36.241Z", "postProcessHash": "04656dd863fafebd7dea6c541f80e343eebf42a65c867a877bbfb14347ba5515" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.500Z", + "updatedAt": "2026-02-24T10:49:36.254Z", "postProcessHash": "01948ca7e731c81735a3437486f6ebc12e1a3458a9e1beb037c22ad593059c9d" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.504Z", + "updatedAt": "2026-02-24T10:49:36.258Z", "postProcessHash": "6f02fc9aa6bff592cdd3e256661baa7d15d483e5506f60c4db073e430856b34f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.571Z", + "updatedAt": "2026-02-24T10:49:36.317Z", "postProcessHash": "f191fa086e0b525e454859cec3871e2667e344503d350fa49b96d529b8e2eaa6" } } @@ -61643,19 +62867,19 @@ }, "2a2bebd6d1f517dc9a9133c849c05bbd802c0262b585e359810abf6185f7780f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.487Z", + "updatedAt": "2026-02-24T10:49:36.239Z", "postProcessHash": "c54ddfd7ba2814371a612eb99cd8d0fc7d58c11b7004ea80178bc52296b373d4" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.496Z", + "updatedAt": "2026-02-24T10:49:36.248Z", "postProcessHash": "69437c4169f5809c78b36ab834312d7efbd28783ff59a167ff22427971de2bda" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.496Z", + "updatedAt": "2026-02-24T10:49:36.249Z", "postProcessHash": "25d25b3c2c1357f6e299b909513c288826bc6dc3af2a63db26eece44aa66744b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.517Z", + "updatedAt": "2026-02-24T10:49:36.271Z", "postProcessHash": "609afb309f819059a05fe55cd684d1bec17e2660d22c275924487637e5ddc9a9" } } @@ -61691,19 +62915,19 @@ }, "df28308aaa4b27981185848d3720c2585d3a6607152e762c177d0ab1fd5ca142": { "jp": { - "updatedAt": "2026-02-19T02:24:12.556Z", + "updatedAt": "2026-02-24T10:49:36.307Z", "postProcessHash": "2474ca09870c6b4644f7c233e20bcd848b7cf3baa5384c1708261ce481c8cce7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.557Z", + "updatedAt": "2026-02-24T10:49:36.308Z", "postProcessHash": "c7dc55b87c3fdcde4903d6870105802b03d4856636e738d54bc5a38116738086" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.558Z", + "updatedAt": "2026-02-24T10:49:36.309Z", "postProcessHash": "552c1d6822d4bff6a8d1b3c12342f93f80033565f6cb37d856872d6c668e056b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.566Z", + "updatedAt": "2026-02-24T10:49:36.311Z", "postProcessHash": "0e3aef0b201313361b7d07d711ee9adec0b2ee240a4cfbed8634cbb7904a8da7" } } @@ -61725,19 +62949,19 @@ }, "6e4633ea3b61fb27d1cc1ccbcc5d7f1172c3fd9ddf29dc883491b259d67f05db": { "zh": { - "updatedAt": "2026-02-19T02:24:12.528Z", + "updatedAt": "2026-02-24T10:49:36.283Z", "postProcessHash": "bf05a31c63bf0cbad666c2294941408b2ff0813df4a29276ef542e42b3e7c9c0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.535Z", + "updatedAt": "2026-02-24T10:49:36.291Z", "postProcessHash": "689a27630c4dd3105e3151ff243cb8651c43e2149cdc555a221f437ec098c9aa" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.537Z", + "updatedAt": "2026-02-24T10:49:36.292Z", "postProcessHash": "c0aa82aa98c1629ef33dc1d1a8a7a71f2c4807a21eff485aede723464b207dc1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.573Z", + "updatedAt": "2026-02-24T10:49:36.319Z", "postProcessHash": "80749ccfe7a3b78956422e6bc72eb36411ecd5abb664cd58d01fd8d5a10ee4f2" } } @@ -61759,19 +62983,19 @@ }, "83c199cca3ba4fa951b9f0f4d10568ccde8fb7f7cdd9d0153cce9f664004b197": { "jp": { - "updatedAt": "2026-02-19T02:24:12.492Z", + "updatedAt": "2026-02-24T10:49:36.245Z", "postProcessHash": "bafb6876414bf4d9c01107e1dae885f6f045186b6b34c3ae822819691a28bd26" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.502Z", + "updatedAt": "2026-02-24T10:49:36.257Z", "postProcessHash": "a738adab1b52897939ef5bf48c01601ac22c3f06802af018bcba257c82fe7bc3" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.504Z", + "updatedAt": "2026-02-24T10:49:36.257Z", "postProcessHash": "f1a63e451bd209a9659714705e2faa447e4d7753364180679fad414aa28be94d" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.568Z", + "updatedAt": "2026-02-24T10:49:36.312Z", "postProcessHash": "74360b941b76f960b3a3139f8015e2515b5bb6f5d6946052db58b32f51b1d868" } } @@ -61807,19 +63031,19 @@ }, "6349c451d45cd742b54fe9deb7cea36acc24550911b1bfb8d97b69cc448927e5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.551Z", + "updatedAt": "2026-02-24T10:49:36.302Z", "postProcessHash": "60214894548e2206c566423048dcfc31efaf1483095346113b8a65def4b1cb44" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.553Z", + "updatedAt": "2026-02-24T10:49:36.305Z", "postProcessHash": "54f0f8c913a4287e9dec29c00e076ba37a5bbb2293410fbeaf234bb03be7f0de" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.554Z", + "updatedAt": "2026-02-24T10:49:36.305Z", "postProcessHash": "afb42f502d72aa9e51a9307728aa2bb429df05230f4a231ae5d1db1ac34c8de6" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.567Z", + "updatedAt": "2026-02-24T10:49:36.312Z", "postProcessHash": "361c9109c43e83043de9f99dc87bd2a97d1801658e00375861f76dd8fa79fbab" } } @@ -61841,19 +63065,19 @@ }, "b1b02d02afc9ce136ab2f8dce5aaaaa68354578d2fb6d6be98e81aa6556481d5": { "ru": { - "updatedAt": "2026-02-19T02:24:12.588Z", + "updatedAt": "2026-02-24T10:49:36.330Z", "postProcessHash": "27bb03d9dfb42385c11ac3c49326e03f758d617a9f92f0133da14ed83ea9a9a2" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.596Z", + "updatedAt": "2026-02-24T10:49:36.337Z", "postProcessHash": "63d5ba37d56d052ca196c1e49622fcb3a85fa3dc3cce63445b9b03029b062428" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.617Z", + "updatedAt": "2026-02-24T10:49:36.345Z", "postProcessHash": "3bf7247ffac9d9fd55d28e9b12c2215753ff71346d525f970dd353498ff587de" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.649Z", + "updatedAt": "2026-02-24T10:49:36.379Z", "postProcessHash": "f15de7696e8e07fcab644ebe3a142f4e67726fa80a3ae7a311fac98e297a7401" } } @@ -61875,19 +63099,19 @@ }, "7618a91beb02c7531bf935465c2cece27b5dfd1fcb2bd24ad88714a0b0ac08a9": { "zh": { - "updatedAt": "2026-02-19T02:24:12.524Z", + "updatedAt": "2026-02-24T10:49:36.329Z", "postProcessHash": "203fdce9079edada2b29dd3ad78a798597d0408b05ac78eaa224cec4191718e5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.593Z", + "updatedAt": "2026-02-24T10:49:36.334Z", "postProcessHash": "25e000bdf303e91fe3619da0691bc489d4ef2a72879675975c62077686e7edd3" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.635Z", + "updatedAt": "2026-02-24T10:49:36.357Z", "postProcessHash": "b5cf5909e5a0c0c770adaef5dae8ff7c0ccb24df682e30a4a5da451945ab5eb7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.652Z", + "updatedAt": "2026-02-24T10:49:36.382Z", "postProcessHash": "80b4690032e9f8efebd5c2a4ac94619a911ef203cf53903df2fc174e6de58302" } } @@ -61909,19 +63133,19 @@ }, "cd924e5918fa63f0b3a0d11ef69302a4d76c9db9927d9907e38e1a83e0469962": { "jp": { - "updatedAt": "2026-02-19T02:24:12.592Z", + "updatedAt": "2026-02-24T10:49:36.334Z", "postProcessHash": "b8c97dff3b784d543feeb1749bbd899a62c3560d24a90174001825bc2c80c0bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.620Z", + "updatedAt": "2026-02-24T10:49:36.347Z", "postProcessHash": "916abcf128602adc6d561ffdce9e09f874ce4e9223c4a1fb58d3a0a3880adb31" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.646Z", + "updatedAt": "2026-02-24T10:49:36.371Z", "postProcessHash": "bb0f9685cd3c32b9134c8cb023ef31a46b7baa231c10a1d9a45653f4e3dce096" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.651Z", + "updatedAt": "2026-02-24T10:49:36.380Z", "postProcessHash": "7b30a795b8a258542be8b5c673d4622321bc1fb92dc7ce5f90fbe4dd2c65ae9c" } } @@ -61957,19 +63181,19 @@ }, "0b9c9951066bf5998c19847f24dbc39f9c13ed6682773a2f7a316248f41544d5": { "jp": { - "updatedAt": "2026-02-19T02:24:12.559Z", + "updatedAt": "2026-02-24T10:49:36.309Z", "postProcessHash": "30c9cc3ee23596e537c897164418b07743aefa20aaa0c9ecf02d9a52bf66dda5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.565Z", + "updatedAt": "2026-02-24T10:49:36.310Z", "postProcessHash": "a603c56505d9ebb9d91952a9b99a602da3045c019e94ccaf13e8459b125c865f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.566Z", + "updatedAt": "2026-02-24T10:49:36.310Z", "postProcessHash": "5cd6ed3692dc2ad7b5e9d4e4155f495ac7fd9e6bc7034c613e4cc37edec08de1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.572Z", + "updatedAt": "2026-02-24T10:49:36.318Z", "postProcessHash": "07445cdcbdd91236905eab91b940a3bfaa02cb9d6b91414dfc2409a04e493b6f" } } @@ -61991,19 +63215,19 @@ }, "bfa1089a35d82da90926114636d106367b8afe16441207181be112619cf8a931": { "zh": { - "updatedAt": "2026-02-19T02:24:12.474Z", + "updatedAt": "2026-02-24T10:49:36.224Z", "postProcessHash": "0ca2fcae12e1840e6edad5bb45e7c2fcad5dc826c12ff4b6c42cb10ec9669dc6" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.494Z", + "updatedAt": "2026-02-24T10:49:36.247Z", "postProcessHash": "0bffce8d2511b447d742ac78b5fe5e2d56e457ef42fd6b2cbfa89be88fbf60e0" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.497Z", + "updatedAt": "2026-02-24T10:49:36.250Z", "postProcessHash": "fa9713b2e38713f3d25f70861e868f1b5755591613740934e5226cce3cb18a09" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.584Z", + "updatedAt": "2026-02-24T10:49:36.327Z", "postProcessHash": "a986b19037246f1ec59973832bbe785cf4d2654a43090cf08526eace58fc09a1" } } @@ -62025,19 +63249,19 @@ }, "1f0a7500a30e7d6cc51e35c29c871aa7176f7770c4de19cb89794cf37b5a54d5": { "ru": { - "updatedAt": "2026-02-19T02:24:12.526Z", + "updatedAt": "2026-02-24T10:49:36.282Z", "postProcessHash": "f1b147ef0ef6f7f26d099ed2f97bf9bc98b2282be11e1d50b200cfd2803ff464" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.534Z", + "updatedAt": "2026-02-24T10:49:36.289Z", "postProcessHash": "c89d137f2236bcf91a5ff4cb1ab9f0736bb8e8edae94d9d8921c456e5cddccbc" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.538Z", + "updatedAt": "2026-02-24T10:49:36.294Z", "postProcessHash": "85f023dec81aa67c2f1f5d57a489d4e89b28b61d46a4bd51792240be313bf92b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.577Z", + "updatedAt": "2026-02-24T10:49:36.322Z", "postProcessHash": "c73f8482d2049b5870104c7d2dc4e62ec3806fe8a5e331ce361284e5a53c1bd1" } } @@ -62059,19 +63283,19 @@ }, "d63d627a7c06c47de543bb6890686abaa47ad5cf20126e8f2ed96b70f59d4c74": { "ru": { - "updatedAt": "2026-02-19T02:24:12.587Z", + "updatedAt": "2026-02-24T10:49:36.330Z", "postProcessHash": "c7017a26ef521d3324f477b9e3170a8fa2bc541df2a8d0f36d53d3d7e99dd6f8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.592Z", + "updatedAt": "2026-02-24T10:49:36.334Z", "postProcessHash": "7c5bd22287e7f48b016448a5947ecad681fd527777d6bfdb4b93f2c014110223" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.623Z", + "updatedAt": "2026-02-24T10:49:36.350Z", "postProcessHash": "62bb84669abbc7dc8cdc96a5c53977f497cd32ac384d9859cba452a9463ae059" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.649Z", + "updatedAt": "2026-02-24T10:49:36.377Z", "postProcessHash": "a39037acb6a31de30e3ec0e8fa2fa137c6d79a8011a2abc9994651889636689e" } } @@ -62107,19 +63331,19 @@ }, "9d7bc1c84f7091eb0b0eac923f16eb635d759eed167eee757ec5898ba2fd21e7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.547Z", + "updatedAt": "2026-02-24T10:49:36.300Z", "postProcessHash": "511a40d3bf1e01185650c8f6e30984429a0f8dda7502c4775c96db7b23c4f6bc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.552Z", + "updatedAt": "2026-02-24T10:49:36.303Z", "postProcessHash": "e18c8efcc0b5c19667a4d237e1be101ea1ec15d30defb6b0bdcb041fb3cdc0c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.552Z", + "updatedAt": "2026-02-24T10:49:36.304Z", "postProcessHash": "3f60b4e00da9331e4b47405d7f5d7a60b2005dfa7f2e16040a5960cde6b57bbc" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.576Z", + "updatedAt": "2026-02-24T10:49:36.321Z", "postProcessHash": "9e39a550eb98d5d285db78a9623b25fd75e9615e1b47e9ce3296890a9b5da2b6" } } @@ -62141,19 +63365,19 @@ }, "4f6441a91c31c5a8df87d1ba108c021f3e983cfe7acc06f09d5b2fb0418810d0": { "zh": { - "updatedAt": "2026-02-19T02:24:12.473Z", + "updatedAt": "2026-02-24T10:49:36.280Z", "postProcessHash": "7fcc3518a6fc5fcef9085c28ef74aaf5ddd548202fc147323be78c0ef2c5dc44" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.525Z", + "updatedAt": "2026-02-24T10:49:36.281Z", "postProcessHash": "6fd6693751234eabdb2f92317f6337cf7053cbbcc2fdd9bbad5b416920d7895b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.537Z", + "updatedAt": "2026-02-24T10:49:36.292Z", "postProcessHash": "58be906eece0cb970826b64ba144aaca5a331d600e81ce3d2637f56f45a900e1" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.577Z", + "updatedAt": "2026-02-24T10:49:36.322Z", "postProcessHash": "8666e8510062c7cf4c7ab78f9006faaa9b3854953a1668157d91a27f7e33877a" } } @@ -62191,19 +63415,19 @@ }, "488eb5cd3946aa7a841e3787f32edbfa7afa3d93a8c50206a39a2174c76862b8": { "ru": { - "updatedAt": "2026-02-19T02:24:12.593Z", + "updatedAt": "2026-02-24T10:49:36.335Z", "postProcessHash": "e1f68033d85cab4e17a0f76ef6bba4e40fa7024717b6712d0aba270a44879327" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.629Z", + "updatedAt": "2026-02-24T10:49:36.352Z", "postProcessHash": "05cac910a8fee713d94d1dccfbe42f04f19ef8cd8b33c5539845b813c7c4eb66" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.639Z", + "updatedAt": "2026-02-24T10:49:36.361Z", "postProcessHash": "cf8640629fc14fe88a05a1c3f695d17a68386c5a5d7e441cdb0cb58bad7d6df2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.647Z", + "updatedAt": "2026-02-24T10:49:36.374Z", "postProcessHash": "35259735e001d19b45840e6e37faa0b4099ac902c4b5768e0db31fe395ab8c01" } } @@ -62225,19 +63449,19 @@ }, "5472970924dff6bc7b5c52971f8df3d76f41f230dc03a9cccafd7464f1369f7c": { "ru": { - "updatedAt": "2026-02-19T02:24:12.477Z", + "updatedAt": "2026-02-24T10:49:36.227Z", "postProcessHash": "42e25b788d9ece8f0e96d2dbf3eca40969a86411b0c988c3cf26f6f328706546" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.505Z", + "updatedAt": "2026-02-24T10:49:36.259Z", "postProcessHash": "5564c00206aa25f5255e68049aca1faf0331695ae919dba184b35caabf3f3bfb" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.542Z", + "updatedAt": "2026-02-24T10:49:36.263Z", "postProcessHash": "592a48a22dae3bc04276d19a55c9edbf0f9fab778a3e8fcb62c5f739324e381a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.580Z", + "updatedAt": "2026-02-24T10:49:36.324Z", "postProcessHash": "04a1448bbbe876e9740a2e2582f6fcf7a8008643270aecc59dd82ddeee6131f5" } } @@ -62273,19 +63497,19 @@ }, "49e975a26bdad756ee0cd2047b1ffcb3b998c035afeb9fdd6b347c5a70066d72": { "zh": { - "updatedAt": "2026-02-19T02:24:12.527Z", + "updatedAt": "2026-02-24T10:49:36.221Z", "postProcessHash": "df497d940457edf325dc755a95fe76e335cc5c3fc716df75368fff57e14f5e0b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.541Z", + "updatedAt": "2026-02-24T10:49:36.258Z", "postProcessHash": "ddaf96a3feb07011fcc1a5e3b4a3f6f506638e6153a20c6f381a8ac7ccfd60cb" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.543Z", + "updatedAt": "2026-02-24T10:49:36.296Z", "postProcessHash": "653b42e8863f791770c9926d2d1467c686f098b282a56baac2726b66b476b9b0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.572Z", + "updatedAt": "2026-02-24T10:49:36.318Z", "postProcessHash": "009bc5a6ab859894eb3fae55a14804f81de3cbf49b7d6cf3c98016799875e6f3" } } @@ -62307,19 +63531,19 @@ }, "4a90733dba0cf0aaa8a55107f11d305f8803397fa9daa595adf6c733f0230089": { "jp": { - "updatedAt": "2026-02-19T02:24:12.478Z", + "updatedAt": "2026-02-24T10:49:36.228Z", "postProcessHash": "db16d6a42556955f58d7f7392687a7e00c98b25025015e9bed190973ae879cb9" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.491Z", + "updatedAt": "2026-02-24T10:49:36.243Z", "postProcessHash": "35ecf33418191648f3a4e8af36062ac7f85843e07837c7ddec177b87326f6bce" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.505Z", + "updatedAt": "2026-02-24T10:49:36.260Z", "postProcessHash": "043c30bf012b77b253a3a9900ae73c04dfc876615eede540020d9a1425d22a14" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.516Z", + "updatedAt": "2026-02-24T10:49:36.271Z", "postProcessHash": "63daf589d426f2166541f0564bce529d58af297684788861c29b5299156d43d6" } } @@ -62355,19 +63579,19 @@ }, "968c83f8b15b919d34fe663e1f8f1c596b79dafbc53e069edb1aba422377da5a": { "zh": { - "updatedAt": "2026-02-19T02:24:12.688Z", + "updatedAt": "2026-02-24T10:49:36.374Z", "postProcessHash": "adc4ebf47438124b16cb9508c5d93d02dfd9846f89b503d01b8b745c0198acb4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.689Z", + "updatedAt": "2026-02-24T10:49:36.430Z", "postProcessHash": "5e8a37326781428bbe3a9740ecd261f26fa5cec333dabe58192f6ec34ef0e0e5" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.691Z", + "updatedAt": "2026-02-24T10:49:36.431Z", "postProcessHash": "8fb7ad43bafb13a941b851c6f2b7e3cd4f300bcae7e3d3174bf7c14f153f7c01" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.693Z", + "updatedAt": "2026-02-24T10:49:36.433Z", "postProcessHash": "e0045e9e86f46032f62fd46f8269ad533f43d1da2f24cd6d0b34479cd84f91a3" } } @@ -62389,19 +63613,19 @@ }, "ac9612c87ea64d4199bddcc557c6173d5f40d8d6ffa9b9d9dd86ad5cfab9d81f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.589Z", + "updatedAt": "2026-02-24T10:49:36.331Z", "postProcessHash": "6d0336c2fa6b5d7bb00ef15cf1fccb0243780b8d7cb2e451d1b8434ba7bde7be" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.638Z", + "updatedAt": "2026-02-24T10:49:36.360Z", "postProcessHash": "d51682408e1939cefccf8a74d14547a73b72531fda4a2c007a4a3eb074a3218e" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.642Z", + "updatedAt": "2026-02-24T10:49:36.365Z", "postProcessHash": "0500223f6a4f12d22819b23304d034fd5cd907952d960346f455e6c65fc13bb7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.714Z", + "updatedAt": "2026-02-24T10:49:36.448Z", "postProcessHash": "3f8783beee5e339e8e4972f71de26a3dbe880f05e9024c4b32f509fcfcfa2a2c" } } @@ -62423,19 +63647,19 @@ }, "4316885c73983dcf96e84cf2243eb2ceaad8ed402566d053e265e5a7f7eb1741": { "zh": { - "updatedAt": "2026-02-19T02:24:12.685Z", + "updatedAt": "2026-02-24T10:49:36.428Z", "postProcessHash": "4d9b61b175d14ff96ea4e5007ce37bbf194c6af2e2cfa8465c80a06bf2761f14" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.685Z", + "updatedAt": "2026-02-24T10:49:36.428Z", "postProcessHash": "c59715866a4a4f7ded6e53d7fa0fe3c819d0cc3b1e484c200624ca197529c47b" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.686Z", + "updatedAt": "2026-02-24T10:49:36.429Z", "postProcessHash": "5d214fc243244171b4abcfb77b6d667ff9b8cb82562ae18e84d7d926238d8b96" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.703Z", + "updatedAt": "2026-02-24T10:49:36.441Z", "postProcessHash": "a4c04f65d45df51562b46368d0425c793b98856c6f042d0fbd067a3be11d9dbf" } } @@ -62457,19 +63681,19 @@ }, "a1277ba0f51defbd5e3ef87f804116023b3971c3aff67715d14cbaacbb2bd1e0": { "zh": { - "updatedAt": "2026-02-19T02:24:12.611Z", + "updatedAt": "2026-02-24T10:49:36.342Z", "postProcessHash": "06badbc4a2475b5314d39e56ca05f5fe6e7e2b5fb7a5b6ec255c49cf22ef5cde" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.642Z", + "updatedAt": "2026-02-24T10:49:36.366Z", "postProcessHash": "9a15fb9e282c37598d5856544ee2ebb13af98222917abc221110ea7f9a113e07" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.645Z", + "updatedAt": "2026-02-24T10:49:36.368Z", "postProcessHash": "1287c36f3172ef71d23750e8e3c6df59febde5205e15a8235db58e69fb7d5704" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.713Z", + "updatedAt": "2026-02-24T10:49:36.447Z", "postProcessHash": "7ffd9ed9c5f30e54eca8eb4386d6d67056615e2736df2dac725618fe73c6642b" } } @@ -62491,19 +63715,19 @@ }, "8d0e124f5edfd89dd5eafc58c6078ac20760268db3a2eaad24567d7b54f65d08": { "jp": { - "updatedAt": "2026-02-19T02:24:12.604Z", + "updatedAt": "2026-02-24T10:49:36.341Z", "postProcessHash": "27c8cca77fc0332c8ad86443f455c2eb5b172f913cca842a5a97db020871ead2" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.604Z", + "updatedAt": "2026-02-24T10:49:36.342Z", "postProcessHash": "3fd105614eed461e4a7491a93c17444bd8e5580a33d2f13c6e5ff08f30c7f8d8" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.640Z", + "updatedAt": "2026-02-24T10:49:36.364Z", "postProcessHash": "e8f43c7be8e081d45a307ce7a70f80ebb991c77d1e9dd1e72a468555084df476" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.706Z", + "updatedAt": "2026-02-24T10:49:36.442Z", "postProcessHash": "1ad7c8fc94bcd3f77dd67b9965e496bd02f4716e8d855db9ff1099a78374fca4" } } @@ -62525,19 +63749,19 @@ }, "6f551e583d885d82c64c421053d1004d38979b8e67d9bb877b4312493b8dbf20": { "ru": { - "updatedAt": "2026-02-19T02:24:12.472Z", + "updatedAt": "2026-02-24T10:49:36.279Z", "postProcessHash": "e22c082c04d16cd3b699fa1c5a5f8c7373d78c9536c451a2438ff1ed7c691716" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.530Z", + "updatedAt": "2026-02-24T10:49:36.286Z", "postProcessHash": "51867de947d1c8a057b880663db348d737908512258ab59330042a254888a603" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.534Z", + "updatedAt": "2026-02-24T10:49:36.289Z", "postProcessHash": "1cd39ef122225c795d2dc6f64fef644859edc341608a005337572726823d235f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.567Z", + "updatedAt": "2026-02-24T10:49:36.311Z", "postProcessHash": "0354299c82f15571320fd4f9b2ec9eaec604139e4888dc55b464f3c532ae9382" } } @@ -62573,19 +63797,19 @@ }, "7c9fcea0d6b86d528e792ecf0890c71d66d02b4149b22ccb60cbe6ea8badd78f": { "zh": { - "updatedAt": "2026-02-19T02:24:12.547Z", + "updatedAt": "2026-02-24T10:49:36.300Z", "postProcessHash": "1f821143b5d4fe9f52c28fe867c170cd4a6220582e9874b8ca83cd69f9d5bd9b" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.550Z", + "updatedAt": "2026-02-24T10:49:36.301Z", "postProcessHash": "9fc9727f7f3d92c457f3776d90ec638be6ef0f81ac77eee293e7d1f22b11b758" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.554Z", + "updatedAt": "2026-02-24T10:49:36.306Z", "postProcessHash": "d513ec32f4676580f9c43de590b1ad6fab5939eb9a7b0a398d90d631ba30192c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.570Z", + "updatedAt": "2026-02-24T10:49:36.314Z", "postProcessHash": "0a316b70d694c36f69ee548f950f5334fd0225b022965184ee2f947e575e2792" } } @@ -62607,19 +63831,19 @@ }, "2427cb570193232409914c6180bf391a0b7991379504a6fe35c3a9c9eb447ae0": { "ru": { - "updatedAt": "2026-02-19T02:24:12.471Z", + "updatedAt": "2026-02-24T10:49:36.278Z", "postProcessHash": "caca8ff01a32aba3f4e6d9dbeca5fa48b9a081a571f9dfa3721a966d39580114" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.531Z", + "updatedAt": "2026-02-24T10:49:36.286Z", "postProcessHash": "2c1151c86292125a450e5a42f92555ac4107914335688d3ffc7f3643038ecfc4" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.539Z", + "updatedAt": "2026-02-24T10:49:36.294Z", "postProcessHash": "28a3ae0eae6b200ef5279023b5fe37c0ca8fe6bd489de1acf423aaf830421b65" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.569Z", + "updatedAt": "2026-02-24T10:49:36.314Z", "postProcessHash": "311bc47738c5ed899ea5ae039d9d75f4e214786961c36bae5080a8cb252c1fb0" } } @@ -62641,19 +63865,19 @@ }, "15546ed496d425b9e0ce3c9271a63195b7cdea1f05f4bc1525328e9b9e5a12dc": { "zh": { - "updatedAt": "2026-02-19T02:24:12.478Z", + "updatedAt": "2026-02-24T10:49:36.228Z", "postProcessHash": "ccfc0c37a767843d08ee7597f5449cea80cc5190384ae65479e059225b2e6786" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.481Z", + "updatedAt": "2026-02-24T10:49:36.230Z", "postProcessHash": "54979ee5365b39873ee94d9ab89ff8fec8744da2d98927c64a177661259b6e13" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.542Z", + "updatedAt": "2026-02-24T10:49:36.295Z", "postProcessHash": "6f98415ab021bb16a2a6b07a3e9bd1fd592bac60cbc133ba4e6e498f4edf1f32" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.576Z", + "updatedAt": "2026-02-24T10:49:36.321Z", "postProcessHash": "f19a8a00bded6f974f87eadf04d675b26519d651d42a4262f4866410ef61fd5a" } } @@ -62675,19 +63899,19 @@ }, "445bb6ed7c56231c6cbff83a46d9e134915c808d0564b0ba0ba756c2b8113848": { "ru": { - "updatedAt": "2026-02-19T02:24:12.471Z", + "updatedAt": "2026-02-24T10:49:36.277Z", "postProcessHash": "2477f7c371721fea2a733aa7a26faf4b4ad47ab700b763117f9a9346afda203a" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.533Z", + "updatedAt": "2026-02-24T10:49:36.288Z", "postProcessHash": "cefea57d2e89f2007eefd961bdcdfbbd7e9945636df8f73b6accf5b135799600" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.535Z", + "updatedAt": "2026-02-24T10:49:36.290Z", "postProcessHash": "ee6db905b12abb9db90a42fac5c7ac8043b25a86e2fb14eacb81e83500fd63c8" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.569Z", + "updatedAt": "2026-02-24T10:49:36.313Z", "postProcessHash": "01a4b41a90bed45bb3ddb3c8b2dcc4911a396256c33ac3392fb5f3d3a2385bb5" } } @@ -62709,19 +63933,19 @@ }, "c4f01c6ee5ffb3ad70789331abca577d132bbeb80e65de69d41f8ee1d6a22513": { "zh": { - "updatedAt": "2026-02-19T02:24:12.594Z", + "updatedAt": "2026-02-24T10:49:36.285Z", "postProcessHash": "4c0af8fcfe0ce165394ec08e60930df19dc7e936d958f5097a9b2a29d87f9486" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.599Z", + "updatedAt": "2026-02-24T10:49:36.287Z", "postProcessHash": "eb0371f5676c794277f28752710540de06e6150ee5d5326287fd3a1de9d17926" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.643Z", + "updatedAt": "2026-02-24T10:49:36.293Z", "postProcessHash": "0da071691854adebf9f5ebcedb518413ea29a48bb8fff8dd61d8803145b4265f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.651Z", + "updatedAt": "2026-02-24T10:49:36.320Z", "postProcessHash": "67eec8c5e48f91b9d5a438fc18b92a240420100d5494d3064123de5cf5956844" } } @@ -62743,19 +63967,19 @@ }, "9e82f98b48af1585f287a16220bef98f2d1d567ab4713b12eb6e4c82e91d64b8": { "zh": { - "updatedAt": "2026-02-19T02:24:12.523Z", + "updatedAt": "2026-02-24T10:49:36.328Z", "postProcessHash": "ba50df0d97d675b98ee8ea21e5b55249dfe9e06b717c559ec4721d5be8456f66" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.524Z", + "updatedAt": "2026-02-24T10:49:36.329Z", "postProcessHash": "49119f23d3ae8394d947e5b0d67832708ff2196ad1e9d687fe21d131b1675d3d" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.631Z", + "updatedAt": "2026-02-24T10:49:36.354Z", "postProcessHash": "62418b08f285c3057434a7611db843566efc637eddc2afc4adea78e22fd39546" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.651Z", + "updatedAt": "2026-02-24T10:49:36.381Z", "postProcessHash": "53e04219b5846bb6337ac748691a0f670b6a7dce3ae56ccfedff265c0a9b4c4a" } } @@ -62777,19 +64001,19 @@ }, "1f56875d92278ecf1a4d6627d9416636aefad0436c1b5ae4fea21ab72242564d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.589Z", + "updatedAt": "2026-02-24T10:49:36.332Z", "postProcessHash": "69eb9b64d2b560921665474bb42288be297d32c3ac862e72737781f9b64f0a50" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.637Z", + "updatedAt": "2026-02-24T10:49:36.359Z", "postProcessHash": "94e0024ca468a8fe198173acd7db2df7df7b4f9202584ce2b3cdf74dbda1d5d1" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.686Z", + "updatedAt": "2026-02-24T10:49:36.370Z", "postProcessHash": "b97843f152f66081120a6d4478a14f3551e55d18e2f379cf87c3b1c15ff0c1b2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.702Z", + "updatedAt": "2026-02-24T10:49:36.439Z", "postProcessHash": "d24a5620c9f9a4121032065de46fbc2d0f5864c6f4ec4a4073a5acf6aec08289" } } @@ -62825,19 +64049,19 @@ }, "f01a41ba577538ccf256994816c3b622609d099542b559336439ce07c2e7a34d": { "jp": { - "updatedAt": "2026-02-19T02:24:12.689Z", + "updatedAt": "2026-02-24T10:49:36.429Z", "postProcessHash": "2c71ad8304f75b1e4ba7eedddb50d296feaba1d51db8804f42144a483da6af89" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.691Z", + "updatedAt": "2026-02-24T10:49:36.431Z", "postProcessHash": "85bc47af6908bdc5544a3f43900f8eb8a20184cffcd2823f0571ed6672ec7656" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.692Z", + "updatedAt": "2026-02-24T10:49:36.432Z", "postProcessHash": "d119b3352c643dd6f23f02b94604f04faafcff487a35dfd93091109ea84db51b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.717Z", + "updatedAt": "2026-02-24T10:49:36.449Z", "postProcessHash": "5d5531e0eff1b6bb76c06a43eecd02be8d4f9cbc6ddc7640acb034d387dcdaf8" } } @@ -62859,19 +64083,19 @@ }, "aa3ea818b674aa41c2f77615666660eab573f95e353c6bd09737bd93f200b929": { "jp": { - "updatedAt": "2026-02-19T02:24:12.602Z", + "updatedAt": "2026-02-24T10:49:36.340Z", "postProcessHash": "2f0c9662f4fdb48db3e1cc4275241c86092a39e37c7cd3c7474a26de8778733f" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.613Z", + "updatedAt": "2026-02-24T10:49:36.344Z", "postProcessHash": "43be1123e953b5e08ccddf9351f253076d724784b8aa0a617feb752ae8794127" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.631Z", + "updatedAt": "2026-02-24T10:49:36.354Z", "postProcessHash": "d1dff2013b195a295f773e936d2d619ffc16a3d8d6161a28f24689000299b2ae" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.713Z", + "updatedAt": "2026-02-24T10:49:36.447Z", "postProcessHash": "ece91f1c389ead2c4ca3db9f80487934dc8b022f8f4b694708eed921395eb09c" } } @@ -62893,19 +64117,19 @@ }, "8a04bd8c73861aa1047c30a901f794b86121d207bab22768289e93fcf723cddb": { "zh": { - "updatedAt": "2026-02-19T02:24:12.621Z", + "updatedAt": "2026-02-24T10:49:36.348Z", "postProcessHash": "7e54878cab17d59fe404fdcf8603745db65c91f9490075b06a721e47892871c7" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.627Z", + "updatedAt": "2026-02-24T10:49:36.351Z", "postProcessHash": "1151080246f52b9b05e1e4bd84e98bb7801812c6bf3dc53711d9fe33b40a6d82" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.644Z", + "updatedAt": "2026-02-24T10:49:36.367Z", "postProcessHash": "413f826cccc429428a03ed65255fb375365e9021f6041bff036426b8207a61e2" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.711Z", + "updatedAt": "2026-02-24T10:49:36.445Z", "postProcessHash": "ad7c32280f8d6621b21268d401a67a2a65607d3694f45369a402664208074f78" } } @@ -62927,19 +64151,19 @@ }, "8866f38afb9404b21f3ef45b6409091c8ac2b29930f284e676e80b5e961982c7": { "jp": { - "updatedAt": "2026-02-19T02:24:12.635Z", + "updatedAt": "2026-02-24T10:49:36.357Z", "postProcessHash": "e4afbc725b26f2a3ae1e3cee189df10de1f5ee4ed62ea87aa6671023d3e4934d" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.640Z", + "updatedAt": "2026-02-24T10:49:36.363Z", "postProcessHash": "88926c246ba79d5dfd2512d9ae977d6ac0724f80da2df2865e4aff910b8ce5dc" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.687Z", + "updatedAt": "2026-02-24T10:49:36.372Z", "postProcessHash": "64ccc059c02427a0e1215fd6904b833128a824aba94bd6aeb33c401e937d5a39" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.703Z", + "updatedAt": "2026-02-24T10:49:36.440Z", "postProcessHash": "8f1b1a22c13930064d0f7d8de623c236005f42cb5a6680e1508d6685041174fe" } } @@ -62961,19 +64185,19 @@ }, "e02c8067b1d74a92272976ee1ff03f49c52586e8f855d77e85b592fb0a4cc6e6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.641Z", + "updatedAt": "2026-02-24T10:49:36.365Z", "postProcessHash": "ea39ef12d4d9e4c8bf2bdf2d06de40b9315ab95dc6a7f8dc3e1c2c139dc72012" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.645Z", + "updatedAt": "2026-02-24T10:49:36.369Z", "postProcessHash": "bdcfb6e615d8df37c3a7aedbda91e3cff9f921fc00e022c3aae6c21e115db462" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.686Z", + "updatedAt": "2026-02-24T10:49:36.371Z", "postProcessHash": "3c5db73ef1fdbca7d31c30d7cfa1ca5a1b537262c61d014bb508995b7d11715f" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.715Z", + "updatedAt": "2026-02-24T10:49:36.448Z", "postProcessHash": "077b01a6bf40ddd0410982d5137fed5848380912a8895518b11489a223a8bcfe" } } @@ -63009,19 +64233,19 @@ }, "b1578f27ec3742eff741847beb918b89dd7f076e76c74a30b679cd471bcf6c04": { "jp": { - "updatedAt": "2026-02-19T02:24:12.690Z", + "updatedAt": "2026-02-24T10:49:36.430Z", "postProcessHash": "5b680f5559fccdea5c1e826545bdc1d6d75947fa61df0b1ff7516d6acf4e2e72" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.693Z", + "updatedAt": "2026-02-24T10:49:36.432Z", "postProcessHash": "fdb0ea12bce0c5e800f7358738074dc2b24fa54d913638f75ebe220fc9b0cd12" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.693Z", + "updatedAt": "2026-02-24T10:49:36.432Z", "postProcessHash": "738236ae2fd209957c9aa2749fc24b8ce4b53e8b44e19a108bb1644417ece04b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.716Z", + "updatedAt": "2026-02-24T10:49:36.449Z", "postProcessHash": "d97c3915b6f8081b850db4494426c23610fb291550c15939123feb053cfb6d1b" } } @@ -63029,19 +64253,19 @@ "1b65c9df36184fe3892f65bc212c5c9daf9b2c3db34d9b103bcc3b0170671792": { "4869f73fec7d89b7cfd022242223c330c780e694c701eb570c03eb7a35098b54": { "ru": { - "updatedAt": "2026-02-19T02:24:08.813Z", + "updatedAt": "2026-02-24T10:49:32.420Z", "postProcessHash": "389aadaf5281999ec16d2bb3ce5382789db8ad2675459b41add40a9132348005" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.814Z", + "updatedAt": "2026-02-24T10:49:32.421Z", "postProcessHash": "3339330006f6bc3fd06aa90c70dc5bff7e65e56413d34bb038d3d9df93f0e759" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.816Z", + "updatedAt": "2026-02-24T10:49:32.424Z", "postProcessHash": "431700e001bd2ab63a35685daed96215fac83b85a09df8d11e907b5eff81226f" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.842Z", + "updatedAt": "2026-02-24T10:49:32.449Z", "postProcessHash": "1170245c53bb9605f7f42eabdc1a59bf6fdfb468ca67ab30df42fa7ff884ab32" } } @@ -63049,19 +64273,19 @@ "3e893d38531568494c40a5c7da42cc3f5ee1a765309a4021238e1b243736e7bb": { "4869f73fec7d89b7cfd022242223c330c780e694c701eb570c03eb7a35098b54": { "zh": { - "updatedAt": "2026-02-19T02:24:08.813Z", + "updatedAt": "2026-02-24T10:49:32.420Z", "postProcessHash": "30ddf68e349ed321ec846e2444a5ec111096ff4bc7e99d2566ad838417da50fe" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.815Z", + "updatedAt": "2026-02-24T10:49:32.422Z", "postProcessHash": "d977abd365cf6aece379c954b7b32b3d3ea48cf18177b788b231bbd3ff0d4f5e" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.815Z", + "updatedAt": "2026-02-24T10:49:32.422Z", "postProcessHash": "1f5401c131ab2abd9b2c89e575374bf9499210c2ef4c0085f15be17fb59ff521" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.837Z", + "updatedAt": "2026-02-24T10:49:32.444Z", "postProcessHash": "e9b8808bc0f93032b983bae14b8a82190b7989758db642ceaeebe7999d215d82" } } @@ -63069,19 +64293,19 @@ "e2c080e611f00dcab5bc3bdf5254d87a5e827798220ca4f91f014f7d4c7a658b": { "190dc6ddd76d7eb91db0c676b7667d0b535a2a85ba67864f32d0e0350b990b37": { "ru": { - "updatedAt": "2026-02-19T02:24:08.888Z", + "updatedAt": "2026-02-24T10:49:32.484Z", "postProcessHash": "a682434228ea0ffd14ae11aa82aaab1856fab555469c2d33745bb1574ceb90da" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.888Z", + "updatedAt": "2026-02-24T10:49:32.485Z", "postProcessHash": "c375a75ce10124b0c06b7a65c18aae1d10d556802d91487cbfea0f48891e6b68" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.889Z", + "updatedAt": "2026-02-24T10:49:32.485Z", "postProcessHash": "ea7e0cfd0748d4a25291c37e1a7eb9ca93fc2ae85e61a630a54e231411973bb1" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.910Z", + "updatedAt": "2026-02-24T10:49:32.509Z", "postProcessHash": "656bc4c1a87309b514213a1a57a4ddeebb91460e79ef0b48bc17f34d6eabc26f" } } @@ -63103,19 +64327,19 @@ }, "7687e6c86a0120bab1f899acb32d1a4746de5e815726021d72341219b16d9d74": { "jp": { - "updatedAt": "2026-02-19T02:24:08.962Z", + "updatedAt": "2026-02-24T10:49:32.568Z", "postProcessHash": "9d41912ffcf5dc8b324ff1ceaf7f3f7def94c990b253b0eaa5e4a46a6cb5fe32" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.962Z", + "updatedAt": "2026-02-24T10:49:32.569Z", "postProcessHash": "0bf8368cb05ad8c762be32c0895dd2c26b6b268f8c87b367499842331a9a47c5" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.963Z", + "updatedAt": "2026-02-24T10:49:32.570Z", "postProcessHash": "bc663e93e84382c44fbd96aa26e1bc2349b0428564e95dea65b5997470409ed6" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.977Z", + "updatedAt": "2026-02-24T10:49:32.585Z", "postProcessHash": "b329517207477ae15e8d87d233861fd4ac37a561859dfa0010ab390c838a4d18" } } @@ -63123,19 +64347,19 @@ "09c01fc0ccef24ff10fbc2576ba05561535bec037a4348069c2d847ff2c49f1c": { "ed51d6c3026594d0ef90de441bf36dff57ad4a32048a288a0186952eb2f80596": { "jp": { - "updatedAt": "2026-02-19T02:24:09.910Z", + "updatedAt": "2026-02-24T10:49:33.527Z", "postProcessHash": "5fb6ba7f3883edcd6e80d30e5d88e221524047390f4fcf57d1b4fe45ec3357dc" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.875Z", + "updatedAt": "2026-02-24T10:49:33.492Z", "postProcessHash": "aeb8394be71ed1061e83064d537f294b81d7edbf3bf22f408d1b12b885bacd65" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.876Z", + "updatedAt": "2026-02-24T10:49:33.493Z", "postProcessHash": "6f678e393b47fd6972edab7a65e15740c905b117282aaf8243acc9309fd8fa15" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.914Z", + "updatedAt": "2026-02-24T10:49:33.532Z", "postProcessHash": "36b2132f92bda28a4a636ba821b761a35d94729a56764cae53ecfe9ce7ffaab4" } } @@ -63143,19 +64367,19 @@ "6c91d3c013ac7bc7d495e9fcbe37229a06f30ba87a51f471a120d0444f68182e": { "704db75218a1c57a28c12794c14c9636e6dda82ba2f63764fbc2a7d327dd3047": { "zh": { - "updatedAt": "2026-02-19T02:24:10.858Z", + "updatedAt": "2026-02-24T10:49:34.541Z", "postProcessHash": "0844b14b2514a487dc17b18441fde9d59c8987d3c4f7bea7ec7f4c111fcd9bfe" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.859Z", + "updatedAt": "2026-02-24T10:49:34.541Z", "postProcessHash": "fd39c3665f39ed5d895b3d55f12dc79632de6e184e019a8f80f6be3667ce2942" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.860Z", + "updatedAt": "2026-02-24T10:49:34.542Z", "postProcessHash": "80446e03f1000ed392fef949c3429dccc9090a0dcb33b570d67c7b14b283da93" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.878Z", + "updatedAt": "2026-02-24T10:49:34.560Z", "postProcessHash": "0c0f10dbaa69fe2377b3367efed8f321e6bffe613eb6071fe483ac8216b52f00" } } @@ -63163,19 +64387,19 @@ "4473d032f9f09b58816fa33eefa9c58e89d8155dc2f80dfc6156231505bfa050": { "149558e56598d90d1c2cc57b2a1c7daffe1a2a4ecd88bbf4a54a029b31bf0e6b": { "zh": { - "updatedAt": "2026-02-19T02:24:10.860Z", + "updatedAt": "2026-02-24T10:49:34.543Z", "postProcessHash": "6613306e4cbd7546825ab06dbaf7df4c11ae1a8ee4740f6a944ee0f6e43ace27" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.861Z", + "updatedAt": "2026-02-24T10:49:34.544Z", "postProcessHash": "860850eded99c3c8e4c7dcdc6a1975185d37ca02b513d24bd829c84334e39507" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.863Z", + "updatedAt": "2026-02-24T10:49:34.545Z", "postProcessHash": "90a9d7b5aa05c9c91573525ec3134f07bdaafd317f702bcf1520a1fa65a5a379" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.877Z", + "updatedAt": "2026-02-24T10:49:34.559Z", "postProcessHash": "5e53ce1126a3168f392a72806421bc5b2812b66d7322619f0a833cffd6e556ed" } } @@ -63197,19 +64421,19 @@ }, "9f7c335f78fe026e8cd25b990fd62f1b37f054705eccef80331810aba95e3736": { "jp": { - "updatedAt": "2026-02-19T02:24:11.429Z", + "updatedAt": "2026-02-24T10:49:35.101Z", "postProcessHash": "ac31ca46689963ee676f902b359925b20a2df3e3fea9cf9e6a04f2c549fe7864" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.433Z", + "updatedAt": "2026-02-24T10:49:35.106Z", "postProcessHash": "17fd3dff0e30a254dcb9d4ac2b71234def2b8731346a40ed55d3c116cbdf4876" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.450Z", + "updatedAt": "2026-02-24T10:49:35.109Z", "postProcessHash": "3d766bca03825994c30697c85a93339ec1f1da5ed7a22ddb66e72148b14cdd02" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.639Z", + "updatedAt": "2026-02-24T10:49:35.283Z", "postProcessHash": "da01b6058d6636039d277641febb55b446f94c00cf8704d629985755bb86fee7" } } @@ -63217,19 +64441,19 @@ "bc64791b5f316c10afe009ccdc31ad2d7580f484280e3064495418e56fce6ab9": { "6823bf0147231c01f98cb101c07cbf35fb8a0f1018f2e586940075ded724b7a8": { "zh": { - "updatedAt": "2026-02-19T02:24:11.570Z", + "updatedAt": "2026-02-24T10:49:35.219Z", "postProcessHash": "4daadee7414b8d1ababb5ffb9f2f6ab1fa063c4b3e269e9ad548b6efd5c02071" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.570Z", + "updatedAt": "2026-02-24T10:49:35.220Z", "postProcessHash": "db8549d54870ee5a79b0df4994aff248f129da803b9aae8f98f661154ee00ecc" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.571Z", + "updatedAt": "2026-02-24T10:49:35.220Z", "postProcessHash": "18824902d5be4b5acc782ae192d09452467063294523792d141e0b2421b273b4" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.618Z", + "updatedAt": "2026-02-24T10:49:35.265Z", "postProcessHash": "e23b24a429f43537186e93a4bdc90e154c756ba220a3fe9d074b824c360570bb" } } @@ -63251,19 +64475,19 @@ }, "736369e297aea7c0d5e0589ca6a9d1fe3a1b405162395f71c90157dcc5a07042": { "jp": { - "updatedAt": "2026-02-19T02:24:11.575Z", + "updatedAt": "2026-02-24T10:49:35.226Z", "postProcessHash": "a4312e07a80b3e215a98fb3f3eab5febb52e25a8697371282dc6fe086844d147" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.576Z", + "updatedAt": "2026-02-24T10:49:35.227Z", "postProcessHash": "2dc027e9310f2c6e5b5978523a1ec09f86236bd4775fdb4e68d47721b81a90d5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.576Z", + "updatedAt": "2026-02-24T10:49:35.228Z", "postProcessHash": "ffe2d0481f899231624e557fa9e5479057127c6b2495af0bdd5ff3d59067b53e" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.616Z", + "updatedAt": "2026-02-24T10:49:35.263Z", "postProcessHash": "a77e0fa52f710312561464245ab3151eecefba651f2394a720ba1d5411a77818" } } @@ -63285,19 +64509,19 @@ }, "f7485899c9cb61d71f78697f2b2a050256c54edd28f7685bbdb33ccb1aed3ef1": { "zh": { - "updatedAt": "2026-02-19T02:24:11.574Z", + "updatedAt": "2026-02-24T10:49:35.225Z", "postProcessHash": "7ed1bd99d66255dece9dc4b68286661b62fd074b73c1012f04808eabf658fa9f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.574Z", + "updatedAt": "2026-02-24T10:49:35.226Z", "postProcessHash": "80487439224b3b6e242275f3c47ecdd6bb6cc62ac71ea549cc3f313aea164461" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.575Z", + "updatedAt": "2026-02-24T10:49:35.227Z", "postProcessHash": "ffa782d0b1c8be4ede13f3eae0353429f8a46f37158804d7eca8ed535d758d07" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.613Z", + "updatedAt": "2026-02-24T10:49:35.259Z", "postProcessHash": "f8e3c4e58d38517778b56234236646a8bd0f2b52d7963dc0f4599b53436d8ce8" } } @@ -63333,19 +64557,19 @@ }, "2392ea60bbd8a06ac504b2b36ce69a3e74ebca0c00b75377b0c5934d6c2fda2f": { "ru": { - "updatedAt": "2026-02-19T02:24:11.578Z", + "updatedAt": "2026-02-24T10:49:35.231Z", "postProcessHash": "214db4573c38324dc9b02fd4adaf2c0701d856d8e5040bcea94040c65c3bfdef" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.579Z", + "updatedAt": "2026-02-24T10:49:35.232Z", "postProcessHash": "3bdb956c5dd5f83975fc7b9a2d84946b317cc22da6b13cacd028b29e482b63e6" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.596Z", + "updatedAt": "2026-02-24T10:49:35.243Z", "postProcessHash": "28c49510c965747568bda9ae30803981fce2508f50039ed24e44f72a059c3b03" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.610Z", + "updatedAt": "2026-02-24T10:49:35.256Z", "postProcessHash": "3c0e924dcec9b8743eb4e557d182502dd3f180ee8c5030ccaad2c58ae97059a2" } } @@ -63395,19 +64619,19 @@ }, "f1de33340089dfd19522d50fc03f86ca988f3b83cb7380c9b3623b5c910d4c6c": { "ru": { - "updatedAt": "2026-02-19T02:24:11.981Z", + "updatedAt": "2026-02-24T10:49:35.713Z", "postProcessHash": "a03bd1f4f1055fa2ec1e6eac3efa95bb782e35b8aac88b2244009d6181c3340a" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.985Z", + "updatedAt": "2026-02-24T10:49:35.716Z", "postProcessHash": "364fd341b5816a4379186a0c6cbd650fe48a1ad2d012174eb7660f9ad5f73ab6" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.986Z", + "updatedAt": "2026-02-24T10:49:35.717Z", "postProcessHash": "80958f09494f77f60622a8d3fe8399b9e7b1c5ef72d6197d2c881cb902dee351" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.015Z", + "updatedAt": "2026-02-24T10:49:35.743Z", "postProcessHash": "24ef125ed194745ce062522c789a4ddfcb8a057e06643faedcfe65ac2cb82402" } } @@ -63429,19 +64653,19 @@ }, "de224ef218674711259b26ff85793c28ce770f9761410039fa7c137175675aa6": { "jp": { - "updatedAt": "2026-02-19T02:24:12.045Z", + "updatedAt": "2026-02-24T10:49:35.772Z", "postProcessHash": "d6585b94fd25c1079477d2dc6436b8c6ffff578de346c30da391d5718cac8769" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.046Z", + "updatedAt": "2026-02-24T10:49:35.773Z", "postProcessHash": "3602bc611ce9e5800bc61fcc6d9a7b068706060027673af52cb130a991ae3222" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.055Z", + "updatedAt": "2026-02-24T10:49:35.784Z", "postProcessHash": "56f1cede362df8b5aa8c14a25fbb1f0737189246edbaa952c291f6d23156bc75" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.076Z", + "updatedAt": "2026-02-24T10:49:35.820Z", "postProcessHash": "fd944642a738351f732e2460f2c1882db134341059e7b62189b9f17089971b57" } } @@ -63463,19 +64687,19 @@ }, "e0f9980f899db6721612029e0bcc11ca10413788501012812c0c34b40aef928c": { "ru": { - "updatedAt": "2026-02-19T02:24:12.407Z", + "updatedAt": "2026-02-24T10:49:36.222Z", "postProcessHash": "c962788778c20333daa48e859885e2e5263293f2858f95bae1e2c7399981fc87" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.475Z", + "updatedAt": "2026-02-24T10:49:36.226Z", "postProcessHash": "ec2701613e2389472cc8576ff042310d849b0c92fda22646c4566f027b1680db" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.498Z", + "updatedAt": "2026-02-24T10:49:36.252Z", "postProcessHash": "25dbea2da5657611631dc577c9593b4d755bc32991e647209b3129f07d3f4922" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.513Z", + "updatedAt": "2026-02-24T10:49:36.268Z", "postProcessHash": "8b60f1d42029ea0ec8eeffee88c0c360fd86996055f28e44cd9ec0d54b9b1080" } } @@ -63497,19 +64721,19 @@ }, "da2589a9c63015848682ba393531d3ea78fe060db084c8eff55d2052a684d54f": { "jp": { - "updatedAt": "2026-02-19T02:24:12.474Z", + "updatedAt": "2026-02-24T10:49:36.225Z", "postProcessHash": "2fd70ede90dd3764fd13277e14a980b837c87dd533bb3152a68ebd304f5635a9" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.498Z", + "updatedAt": "2026-02-24T10:49:36.251Z", "postProcessHash": "3d37b99708720e4ab52cbb1d5df01610a317ac9829c590e8012290499f444896" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.499Z", + "updatedAt": "2026-02-24T10:49:36.253Z", "postProcessHash": "16ba3472aec8efba35efad0a2d4d578749413019c7c70046c9d77d07520fb20c" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.512Z", + "updatedAt": "2026-02-24T10:49:36.265Z", "postProcessHash": "01d6e8dbdce1ea23356dd55b5afc2aa335d68c2ceb6d67e947d6c3c61a26c3e9" } } @@ -63531,19 +64755,19 @@ }, "63550731eed249c416233c29dbb8931c476f7e2b5175d5b7d542fb022655fe41": { "jp": { - "updatedAt": "2026-02-19T02:24:12.615Z", + "updatedAt": "2026-02-24T10:49:36.345Z", "postProcessHash": "bfce40536790620f049608f68da2267029555a6afb38a0097810aa6bff97d964" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.622Z", + "updatedAt": "2026-02-24T10:49:36.349Z", "postProcessHash": "45e3543d3ae813e2c586d7c5b8d7c96327f804ec134d0529509c52a72fb85248" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.633Z", + "updatedAt": "2026-02-24T10:49:36.356Z", "postProcessHash": "f96c404893ac4d963d5e90d741d99e08c325243d19f3e8927945706783c18a4b" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.647Z", + "updatedAt": "2026-02-24T10:49:36.375Z", "postProcessHash": "cb13aed50baacbf0337b109fbebdad7785efd53d52231a22405cf00f300e3520" } } @@ -63565,19 +64789,19 @@ }, "a80b122b06ac3cf216190b46240a3cee6ecef12626ae2d7fc2b5858a2233698c": { "ru": { - "updatedAt": "2026-02-19T02:24:12.907Z", + "updatedAt": "2026-02-24T10:49:36.641Z", "postProcessHash": "2d98efdf1e742a735a66cd43ac8600310ebfc17ac79ae32de4a049223df80d76" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.907Z", + "updatedAt": "2026-02-24T10:49:36.642Z", "postProcessHash": "195c281038299832b4a5ececee6e716c209b8b72c38100b6fe77996731d59263" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.908Z", + "updatedAt": "2026-02-24T10:49:36.642Z", "postProcessHash": "93be2493fa3a135bd6e80d87be32927bd411c366b65471a9d0a11a92f8a4a7cd" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.988Z", + "updatedAt": "2026-02-24T10:49:36.722Z", "postProcessHash": "85456479ff2c92d6ba3b211677c3a5a87772bb07debcc5257bb76c44abcd8cab" } } @@ -63613,19 +64837,19 @@ }, "c7ee7c099cc556559d527123ebec4b6b71e08f36c60abb28670f3f17a8884012": { "ru": { - "updatedAt": "2026-02-19T02:24:12.910Z", + "updatedAt": "2026-02-24T10:49:36.645Z", "postProcessHash": "c6055871aefe0b24368d77f140e62db599e3b63d6bcdae2c031ed6bc5d399393" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.976Z", + "updatedAt": "2026-02-24T10:49:36.713Z", "postProcessHash": "726017e2506f3b5acfdeefdb10dd3dbee1eaba9cea990a9dbe72c9f966adf8aa" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.978Z", + "updatedAt": "2026-02-24T10:49:36.715Z", "postProcessHash": "e68a120e0e107a666870ebde3484ea5e7b2fd57fcf99da05e091b41891ec8aae" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.002Z", + "updatedAt": "2026-02-24T10:49:36.733Z", "postProcessHash": "e9a2581339af09aa02b260c01b0586596f36ac8170f10e7d88284a3d18e1057e" } } @@ -63675,19 +64899,19 @@ }, "cccb7cfed93fa7a299a20907f86735a6729dc9032607f627c6f4c15f48d5d3e0": { "ru": { - "updatedAt": "2026-02-19T02:24:13.509Z", + "updatedAt": "2026-02-24T10:49:37.326Z", "postProcessHash": "db4e02b9f3b6a2840de7a19ae9d10d8c8327bfb2356bf43b6b898143435d79a8" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.509Z", + "updatedAt": "2026-02-24T10:49:37.327Z", "postProcessHash": "8d231d36b4c232fde6ce08b140f6db352a4f4547175d17cf5b6edc91482d1b33" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.510Z", + "updatedAt": "2026-02-24T10:49:37.330Z", "postProcessHash": "f82f8a8aa720b8294f5db6af6c4bc6ea10c6d9f253d6a1fee074b3abbf611b33" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.519Z", + "updatedAt": "2026-02-24T10:49:37.342Z", "postProcessHash": "4ff815707c36aa8bc300076a95a89f780b32f560dbdf528176408a8e1b611843" } } @@ -63695,19 +64919,19 @@ "7fa91d3e9277d29648377258b21a5b26a75f784b28afc9333af412ea3fb501bf": { "cf0b12ff0323c6a43e02be87ca7003ef71e317b28d5706864f4467714de70ec3": { "jp": { - "updatedAt": "2026-02-19T02:24:09.167Z", + "updatedAt": "2026-02-24T10:49:32.766Z", "postProcessHash": "25f52742a9f5be116e1c8906993b0a1b8d27169f270d437bfc8b32c8e1654a61" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.168Z", + "updatedAt": "2026-02-24T10:49:32.767Z", "postProcessHash": "2da71176248996f5e42ff94a74c5630ba077a93b5fc481d1ba85322a03bab1e7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.168Z", + "updatedAt": "2026-02-24T10:49:32.767Z", "postProcessHash": "c7f3de75c221d8ca03de496134addb6471ae1e1f8864217099aeb20e888951da" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.176Z", + "updatedAt": "2026-02-24T10:49:32.774Z", "postProcessHash": "a6a379bf7b2959c690b9541aaa538964e6f5efc5d6c284fbf2948dc7d42ef10d" } } @@ -63715,19 +64939,19 @@ "a55dc659e2f582111206789e029b2cb6a02823dd8e6dc56a4fa975787531a11a": { "c6c1eb1889987864b337da2eb4f626845a4d9da1eda58e5a1a36ae533af4461f": { "ru": { - "updatedAt": "2026-02-19T02:24:09.107Z", + "updatedAt": "2026-02-24T10:49:32.709Z", "postProcessHash": "9ca6570d92f27b04e24f2aa40bb3259a8709c6036cb42a8d6c287f66b4ea555a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.108Z", + "updatedAt": "2026-02-24T10:49:32.709Z", "postProcessHash": "b5bfc3b74834dbd325d338b9799fc811c250be7c04a8edf831a2399c013269ad" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.108Z", + "updatedAt": "2026-02-24T10:49:32.710Z", "postProcessHash": "6d5fe7b285c4ed24282b850c96fd90251b4a4a931508f8ffbb42052ec9d90bab" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.178Z", + "updatedAt": "2026-02-24T10:49:32.775Z", "postProcessHash": "2d83109185d049a0bd666fde188965744b17e5a01e54eacb90b559561965e8db" } } @@ -63735,19 +64959,19 @@ "d77536f4da40248601adc591b0357b82553927c8e7c01fd562e7e735d152ba39": { "4c4eaa3e44a1e06df44197b5b771c539b7fca21dabf080c938a23bfd135742a7": { "zh": { - "updatedAt": "2026-02-19T02:24:11.977Z", + "updatedAt": "2026-02-24T10:49:35.709Z", "postProcessHash": "8e2411cdb60040f0ec2a97619fa3526b206aa2614809ac8522dc6bd436dadb48" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.977Z", + "updatedAt": "2026-02-24T10:49:35.709Z", "postProcessHash": "18731d90819f9ad5f8a6bdb9525d40f435eeea720292f0b9e678ebfe034ba2d2" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.978Z", + "updatedAt": "2026-02-24T10:49:35.710Z", "postProcessHash": "ad8f13eec0393f395e35994377a3f1766a87e3246bacf2d2c72ff5d1c62e279a" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.067Z", + "updatedAt": "2026-02-24T10:49:35.801Z", "postProcessHash": "01cd76267ded109a4361a050b90b28bfe534dad27ce48ce4df8583e92acb2b5b" } } @@ -63769,19 +64993,19 @@ }, "7ca206c1079979e2979375b58c7946360fe9e8268e45ab1bd03f0cbcecf1e406": { "jp": { - "updatedAt": "2026-02-19T02:24:13.496Z", + "updatedAt": "2026-02-24T10:49:37.280Z", "postProcessHash": "844ff666332e2cc6b23d5dbe2890ac5adb0d48b3581e546aadee498a3554e258" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.499Z", + "updatedAt": "2026-02-24T10:49:37.282Z", "postProcessHash": "ca452dd46c1a1a2a69229c13c290dafd14e613abcb945aa0096b02cbb56b0fd3" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.505Z", + "updatedAt": "2026-02-24T10:49:37.288Z", "postProcessHash": "f5b56ccb40f76a82b89bf452d0af743e77891bd2a5ab2d3c284ac15f618f3a85" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.518Z", + "updatedAt": "2026-02-24T10:49:37.300Z", "postProcessHash": "0cf96fa869525c9a325569430e33fa7fb9ad1c00a86bddb4539dd618c634a3c2" } } @@ -63803,19 +65027,19 @@ }, "4b1500264994be0961ca3f1b0ba93cd5f0a735092ce9ccbaa4cf7c6497550877": { "ru": { - "updatedAt": "2026-02-19T02:24:11.693Z", + "updatedAt": "2026-02-24T10:49:35.337Z", "postProcessHash": "6db844ece599b8c0a68b15b210b6a274a8391c2401a79482886b7a009fa1daa4" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.695Z", + "updatedAt": "2026-02-24T10:49:35.339Z", "postProcessHash": "b5d6a45991485b327de5c3603f27e041db4aa978d8147390a9dd0067c7835d3e" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.702Z", + "updatedAt": "2026-02-24T10:49:35.348Z", "postProcessHash": "277740e3cc444e99751d75eddb081a6908c517bcd247a30ddb7b1ddf0a1c2cbd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.712Z", + "updatedAt": "2026-02-24T10:49:35.361Z", "postProcessHash": "affe5644864b435018594f8296fc959e6a98b3dbfbde470ac558736fbf6464d3" } } @@ -63851,19 +65075,19 @@ }, "1751d425a27dbcca7f9dcdb1893b8caf1f13e342107d3b5899e69a72c25bc56d": { "ru": { - "updatedAt": "2026-02-19T02:24:13.503Z", + "updatedAt": "2026-02-24T10:49:37.286Z", "postProcessHash": "1975560f548890cb40eb31791ae8649f94c7b594006eded4f8cfbdf13046c6af" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.507Z", + "updatedAt": "2026-02-24T10:49:37.290Z", "postProcessHash": "005544e74dd0c7ef6fcffd166adf3ada7a316f7982301960396642f46341fc40" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.508Z", + "updatedAt": "2026-02-24T10:49:37.291Z", "postProcessHash": "3a7a5f5cf35df38781d321409b0c6637988f54018efdd2d7efe3c37a150577dd" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.517Z", + "updatedAt": "2026-02-24T10:49:37.299Z", "postProcessHash": "aeb11e6d23f7fd351c9f0e844ccd5b48c844cc93a4d8e58097644555cfbcee49" } } @@ -63885,19 +65109,19 @@ }, "51bd31aeb422fb7abf863b9e7c48d1d15f05e0f02c19f22e4b44d526286fb104": { "jp": { - "updatedAt": "2026-02-19T02:24:09.732Z", + "updatedAt": "2026-02-24T10:49:33.368Z", "postProcessHash": "9f674f09300bd6d5f0dd50af40d76ed8d34081f5d722746735a8c8206bd81572" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.733Z", + "updatedAt": "2026-02-24T10:49:33.368Z", "postProcessHash": "1b3c46bf9a5905538f1fde1d5de46c8b1e5f6009e82a42df2f515ade0c901b20" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.735Z", + "updatedAt": "2026-02-24T10:49:33.370Z", "postProcessHash": "8f18f7707848a6b1c296eac14ff7071321a1f07ba20149c4060df756c30d281d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.750Z", + "updatedAt": "2026-02-24T10:49:33.385Z", "postProcessHash": "6dd7e67983effe9353aa18fad0208d780788bec9b71fe3e59a0a8c25009885ea" } } @@ -63919,19 +65143,19 @@ }, "1928720df8484ff373e07237519a9e9d588845d6cd02d76e11d16035175ef3a4": { "zh": { - "updatedAt": "2026-02-19T02:24:12.035Z", + "updatedAt": "2026-02-24T10:49:35.761Z", "postProcessHash": "ec44526675681d031d7d019476b5e265987f9e4f46afa21787efeddb3f94706e" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.053Z", + "updatedAt": "2026-02-24T10:49:35.780Z", "postProcessHash": "a57362a58542197fd4ad638d6c06f0c518c0a99a2b141bbfa2209d09ccf90440" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.054Z", + "updatedAt": "2026-02-24T10:49:35.780Z", "postProcessHash": "6ec4d0350e21717840ff5cb34088c696a305a77b2dccce0f72ffe9f5578830e7" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.070Z", + "updatedAt": "2026-02-24T10:49:35.806Z", "postProcessHash": "c6a7e0bb406b43c866e38d7dcb0748bc01be2da1aec2bf2880ca591f482ea4a8" } } @@ -63953,19 +65177,19 @@ }, "baf323d945c34de61c388f15fcd75b14d8518125583ab8153afc8e8941c1ec2c": { "ru": { - "updatedAt": "2026-02-19T02:24:12.366Z", + "updatedAt": "2026-02-24T10:49:36.120Z", "postProcessHash": "d7a7c3673a1d89038ac6b090f526a85ac4cd819e983a4a0e60c3cbc72a188dbb" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.428Z", + "updatedAt": "2026-02-24T10:49:36.192Z", "postProcessHash": "df7cc6060df9abfb85c6945d59b86e702c06903cd437da77dde74137f0e97f77" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.431Z", + "updatedAt": "2026-02-24T10:49:36.195Z", "postProcessHash": "f7296eaa6d9fed596016313305a91dce18dffa624b45d0ec9e6e24ee9eb31e97" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.470Z", + "updatedAt": "2026-02-24T10:49:36.220Z", "postProcessHash": "5445511772d22ec67cabff8b7d1d33ac875f0deeb91781c643f95a6ab9950ea3" } } @@ -63987,19 +65211,19 @@ }, "42a816361856d5c3aec1d1e294b61edd5b5e5a9ab91661b3adf42e56ba4a60ce": { "jp": { - "updatedAt": "2026-02-19T02:24:09.880Z", + "updatedAt": "2026-02-24T10:49:33.497Z", "postProcessHash": "cb1fd23e9dbcee0f962af0f5a714f0b3e3296555c5bb911bced3cfe982f62bb3" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.881Z", + "updatedAt": "2026-02-24T10:49:33.498Z", "postProcessHash": "1f878a7482944f1279012729e50156fd644f5360f94367b9b668131e4ad6f3f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.881Z", + "updatedAt": "2026-02-24T10:49:33.498Z", "postProcessHash": "99fd21cd78953d5aa45f55b088ea814e8667a08d874034afe5d527fcb7a0e3ba" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.913Z", + "updatedAt": "2026-02-24T10:49:33.531Z", "postProcessHash": "809bbeb7dc75407d5e39fcbabdee40f12fe0a77efbd5b26b73722e715d2d133e" } } @@ -64049,19 +65273,19 @@ }, "26daa2bbb52b818db93006588ee72aa65ff606b0331d34f155b18fd073752122": { "ru": { - "updatedAt": "2026-02-19T02:24:09.877Z", + "updatedAt": "2026-02-24T10:49:33.494Z", "postProcessHash": "d96f0f6a267c2492ebf29369979943adea5e4138f376adeec7204d9588ad32a7" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.879Z", + "updatedAt": "2026-02-24T10:49:33.496Z", "postProcessHash": "567b937462d60984939898aabfe346637ce08b58f057890c0a64f59119e2cd9f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.882Z", + "updatedAt": "2026-02-24T10:49:33.500Z", "postProcessHash": "9b8672860509a85dc876c3facb07fcce15e59eefec527968a9e89eb509bac735" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.980Z", + "updatedAt": "2026-02-24T10:49:33.621Z", "postProcessHash": "2f0aef3af05a2db44a400e3c7a37cba888bf2babb2ab669b09fbe2c468958fc0" } } @@ -64097,19 +65321,19 @@ }, "dac1867cabfa18342185b6ed432d2500eb65d144cef879f5629d9f0870e07bc6": { "jp": { - "updatedAt": "2026-02-19T02:24:09.889Z", + "updatedAt": "2026-02-24T10:49:33.506Z", "postProcessHash": "50af95df0195ef57a48eafe11d6182211edbfb5e6e9c86d6f9180ec9557f2747" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.889Z", + "updatedAt": "2026-02-24T10:49:33.507Z", "postProcessHash": "5914eb2c45ae5993c9d7832f022dfbd33295556b7173e4881e0c0fc2441aee45" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.890Z", + "updatedAt": "2026-02-24T10:49:33.507Z", "postProcessHash": "e9b8aab2283ef37d5446cf8fab9afefe055d4b4ee3766e21e2d1011bc20685b7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.919Z", + "updatedAt": "2026-02-24T10:49:33.536Z", "postProcessHash": "782e21d66642c784ca7ac71210a1eb3f0998b94cd1df4ad7cca4b6f9f36ef9ca" } } @@ -64131,19 +65355,19 @@ }, "1f0c93033fc8d8a8355967131046f3281fabb0f9933ba568b87fdd1ef36e6d51": { "jp": { - "updatedAt": "2026-02-19T02:24:09.876Z", + "updatedAt": "2026-02-24T10:49:33.493Z", "postProcessHash": "3dbec8fa1e248b9ea59caa91beff7bb6c900837a20e054503636430278a56673" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.880Z", + "updatedAt": "2026-02-24T10:49:33.496Z", "postProcessHash": "716d2d0661005d03e0b195b994e7d60a50fcc0bd094af19fdeb0c64a34ef7937" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.883Z", + "updatedAt": "2026-02-24T10:49:33.500Z", "postProcessHash": "efcdf2eeccd9ed3fa8891670447b8bbe0c1f4eae904a92d94b5875a308cd15f3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.967Z", + "updatedAt": "2026-02-24T10:49:33.589Z", "postProcessHash": "80d482fcbb31cb555d5d3e707e50aa021cfb09e54d4027b255852e0c51349bf8" } } @@ -64179,19 +65403,19 @@ }, "73508b541e9a46c45279968b657567d8b64ffa17b7597526fab966de9c822f23": { "jp": { - "updatedAt": "2026-02-19T02:24:09.896Z", + "updatedAt": "2026-02-24T10:49:33.513Z", "postProcessHash": "a49fa4877748b972d8e4843267512692fda21068b1c6fd9d6917e16465e341a0" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.908Z", + "updatedAt": "2026-02-24T10:49:33.525Z", "postProcessHash": "1785792ac80b7f115f446d9dc432b67052e6c4b3bcca6d02c404548f67eecac5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.909Z", + "updatedAt": "2026-02-24T10:49:33.526Z", "postProcessHash": "450ce58e4e7c814e227a91463593a6add108a75d787f245e97573cf5f77944f4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.917Z", + "updatedAt": "2026-02-24T10:49:33.535Z", "postProcessHash": "f7b9783036ae9818e7d96543714908850bd5363cfc3dc8d2992810f8c54e946a" } } @@ -64213,19 +65437,19 @@ }, "06b6ccad93cdbabc67d1e243fd9fcac3c450b36ff88d9a7bbcad47b00a9c82fe": { "ru": { - "updatedAt": "2026-02-19T02:24:09.878Z", + "updatedAt": "2026-02-24T10:49:33.495Z", "postProcessHash": "c15783633f46c62c313bc3fb9a19ceb871d9c43a3cc36e858d6f6c3604bd2334" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.879Z", + "updatedAt": "2026-02-24T10:49:33.495Z", "postProcessHash": "a811c08a374a8b889f73e71182e036f9998514a3fc977905961f8770ed2e88a2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.882Z", + "updatedAt": "2026-02-24T10:49:33.499Z", "postProcessHash": "04cdd5d52181f437d0c7c0b6c5017ad4a5458e6517e2c9caa3d06cb6b083bf21" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.973Z", + "updatedAt": "2026-02-24T10:49:33.596Z", "postProcessHash": "3f2e6a33ec1d2a696302a68c1a5366376fb9775ea0701023c3a295a871eaf0b7" } } @@ -64277,19 +65501,19 @@ }, "e095d9f7251b1e78a166f0f3c72e759993bd8632be14d237abfe63d830521738": { "zh": { - "updatedAt": "2026-02-19T02:24:09.892Z", + "updatedAt": "2026-02-24T10:49:33.509Z", "postProcessHash": "63cb134913d9501d3caaebc77d14878428fb3695ff53b5c2f849c209d55d29cc" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.893Z", + "updatedAt": "2026-02-24T10:49:33.510Z", "postProcessHash": "3ede17925943eb0cec7c70242ec84b5487ccd6f7556cc9f41fb2bb163ced3db8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.910Z", + "updatedAt": "2026-02-24T10:49:33.528Z", "postProcessHash": "cecae2318fa4251bb73ea847ac30379c2d857540e0a80297040682157a0ccc1c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.916Z", + "updatedAt": "2026-02-24T10:49:33.534Z", "postProcessHash": "61509e1e07849bf081bdc1265dbb1a2cde10af51ea2c982214e66939f0516dbe" } } @@ -64339,19 +65563,19 @@ }, "3187b09c349b1adf87847d9bc68764db974f4e613ea3777992bb5dccceaefb28": { "ru": { - "updatedAt": "2026-02-19T02:24:09.890Z", + "updatedAt": "2026-02-24T10:49:33.508Z", "postProcessHash": "299de5d0fb6be5aeaeb8d80f0b4204d99fe0a9e1ce86c6fb5c53eebaf73b3dd2" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.891Z", + "updatedAt": "2026-02-24T10:49:33.508Z", "postProcessHash": "30a1d4b5c09214fc5af811d1de5f38cc9b1abc21a20fa7cf16ce1aceeeb51609" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.891Z", + "updatedAt": "2026-02-24T10:49:33.509Z", "postProcessHash": "822292e38078cb596ed261c631a31be0b4c72046a00ddfd9e738cab5cdf5e70a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.983Z", + "updatedAt": "2026-02-24T10:49:33.626Z", "postProcessHash": "e6fa7cc5249edb1b76ee1272cc07b08977d17f1fe402038395d121a22d233482" } } @@ -64373,19 +65597,19 @@ }, "c4a727111b7f27139c579382a705f6bc039320305a98a7d662b7687cfbe3eb77": { "zh": { - "updatedAt": "2026-02-19T02:24:09.885Z", + "updatedAt": "2026-02-24T10:49:33.502Z", "postProcessHash": "f9da4caff0c1299c877fdef187cd5577a072d653e294f15e21c0a790d6545e26" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.887Z", + "updatedAt": "2026-02-24T10:49:33.505Z", "postProcessHash": "b0e3b98eca544b69bc4ccecaf86c3a40b9f5d463fc4feea5e00c9e5509c06a43" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.888Z", + "updatedAt": "2026-02-24T10:49:33.506Z", "postProcessHash": "2e3b40a7a7686efb532b889458752aac3322963cf5387287de3e79e2d220a883" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.918Z", + "updatedAt": "2026-02-24T10:49:33.536Z", "postProcessHash": "9e6e43103f2aab3cd9f7a4a2342491e125d6738d6a083f902dd3b8637fc4f1c9" } } @@ -64421,19 +65645,19 @@ }, "37367dda8383340265a9c32a8d67bcdb41abb516d96376bdbaec81ba0d3f85b3": { "jp": { - "updatedAt": "2026-02-19T02:24:11.691Z", + "updatedAt": "2026-02-24T10:49:35.335Z", "postProcessHash": "fe93466efea4e288a36763ca55e451b64305d34163fab0b61236b1f991f83cd3" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.697Z", + "updatedAt": "2026-02-24T10:49:35.341Z", "postProcessHash": "ccac54af9e7e8122d1c2b936c63518a94258ba10209e71e4e782857a66733bd5" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.704Z", + "updatedAt": "2026-02-24T10:49:35.350Z", "postProcessHash": "8daad5adb3056cfa07b06e41821c7491acf6d55703119bcc543394eefb4fd52c" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.768Z", + "updatedAt": "2026-02-24T10:49:35.400Z", "postProcessHash": "1353d412544e568f435be72394a8f630ca99d3aa13fd291dfde7daea212a3939" } } @@ -64457,19 +65681,19 @@ "1f819b9f5ca69fcf87b7849cf94d2f21309490e25c5bff56964a6896a8071f5b": { "67a23b832e1f7a6a586999a588abbad63388d3655d525d491167eb5d6a685114": { "ru": { - "updatedAt": "2026-02-19T02:24:08.885Z", + "updatedAt": "2026-02-24T10:49:32.482Z", "postProcessHash": "ae643c57adc621e54a90b49cc947c35ad6ba51763a7e5c99b023e65ab6b4ee5c" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.886Z", + "updatedAt": "2026-02-24T10:49:32.483Z", "postProcessHash": "d478e99614c0aed6b3889f5cc27c82420f0e88e3b668c866d717094b711d1c0f" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.887Z", + "updatedAt": "2026-02-24T10:49:32.483Z", "postProcessHash": "b4e662303048f2238e05348d1019b0e0e0b04e9525846ad9f3f7467ca5471d0d" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.921Z", + "updatedAt": "2026-02-24T10:49:32.526Z", "postProcessHash": "a49b9f1beb0de14c5302385a11f426f95bf1083f38f0221e681cba29bce49ea4" } } @@ -64477,19 +65701,19 @@ "86c0e2bc113ba7fa2371646d59691cdc772479e580531660cf16acd5ecd95db5": { "4759aaf6e5077d0f57367491b8519652877477b72cf08f39cf4d5300fa6aac85": { "ru": { - "updatedAt": "2026-02-19T02:24:08.935Z", + "updatedAt": "2026-02-24T10:49:32.542Z", "postProcessHash": "393089e18eebbc210f636d6dddb0e5fcb5236fdb39ea4c177ae879617be6019d" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.937Z", + "updatedAt": "2026-02-24T10:49:32.544Z", "postProcessHash": "1191353ea9f5c1e47fb98520a439b291d1ba3b2e69e67ce3800b5e2dc4285359" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.939Z", + "updatedAt": "2026-02-24T10:49:32.545Z", "postProcessHash": "7c1673a5d118ad57b631193f5ef7bffbd45a3360677221939463f285ad110844" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.050Z", + "updatedAt": "2026-02-24T10:49:32.661Z", "postProcessHash": "100ebb06f8a919ba911fdd888f7ae78acabc62f3a191a1a5edfabdb152a4d83b" } } @@ -64525,19 +65749,19 @@ }, "83940db90c7d30a0da7d917038a661e22f20a8546cd935c2d10c0ced0fb683cf": { "ru": { - "updatedAt": "2026-02-19T02:24:08.950Z", + "updatedAt": "2026-02-24T10:49:32.557Z", "postProcessHash": "e51a7401638e4bc4509b07f65cf8efa4cc9bb2f999e1b4c009df3d935c3b7a9c" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.953Z", + "updatedAt": "2026-02-24T10:49:32.559Z", "postProcessHash": "eabea2eb1a623d138e47141a3e4603527149a0883290200873947a96afdeaf53" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.957Z", + "updatedAt": "2026-02-24T10:49:32.563Z", "postProcessHash": "99b0429dd5aa8fb04c484e1fee7883fe2b22e192413d30900e83ac8eb123f811" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.039Z", + "updatedAt": "2026-02-24T10:49:32.652Z", "postProcessHash": "731833048a8fc3328e5ac3f49096c171f6bab95a0c8556bada731201d6abd740" } } @@ -64559,19 +65783,19 @@ }, "490b9574335ea7bf885f1a6656df62047379554af5111593dcb00bacd768b59b": { "jp": { - "updatedAt": "2026-02-19T02:24:08.944Z", + "updatedAt": "2026-02-24T10:49:32.551Z", "postProcessHash": "993630f0c032671e8ccf2ffbe38eff8b5597c59d010d7e2f69ec3c035ca0562f" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.945Z", + "updatedAt": "2026-02-24T10:49:32.552Z", "postProcessHash": "739790effce102a3a0545db62aa70af7ada264bfb3ccc7bd7297b133a7946182" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.945Z", + "updatedAt": "2026-02-24T10:49:32.552Z", "postProcessHash": "b5f2d134ad529e7415e1e6bbade2517474b02342dbcf0a08d407b984b95c00e6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.049Z", + "updatedAt": "2026-02-24T10:49:32.661Z", "postProcessHash": "66c0c2ea96cdfa957b14ae34c9861e3025e02732520625b28ab0289af7ab9736" } } @@ -64593,19 +65817,19 @@ }, "4c8e04a273046756c12a65eaf433cef34dd9cc53b9823fbd443de52918cd68ab": { "jp": { - "updatedAt": "2026-02-19T02:24:08.951Z", + "updatedAt": "2026-02-24T10:49:32.558Z", "postProcessHash": "0fe2ff9ce6435ad3c78b21ccb5f2d153b3f5afd9d46c39ca98ab690eafbf5359" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.959Z", + "updatedAt": "2026-02-24T10:49:32.565Z", "postProcessHash": "3cb989f003f90221758fdc5b03a975f99a338cae4600b509e583145ef837fedd" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.961Z", + "updatedAt": "2026-02-24T10:49:32.568Z", "postProcessHash": "fa2bd03390d35b52a53b1c5e5db3bd6f3c11307b2ce1546acf39e7b61bf46fc7" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.047Z", + "updatedAt": "2026-02-24T10:49:32.659Z", "postProcessHash": "9815f03d3f5d7d4cd5154ac1c92b552c18b2188d324346a38550f8e43e97ebda" } } @@ -64613,19 +65837,19 @@ "6efcd227e93083a56fafb0409cb6f3d265391a1a8cecd3051eafb93bac08f871": { "63b5115dd3a467bf5a3e6a7da77de5c4fd21bbefd893f7359de9ff0719f1600e": { "zh": { - "updatedAt": "2026-02-19T02:24:08.936Z", + "updatedAt": "2026-02-24T10:49:32.543Z", "postProcessHash": "469b97b8b3259f4a781ec5f1acef73efdfc12c304d4a9d1fbddb463b2a169681" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.937Z", + "updatedAt": "2026-02-24T10:49:32.543Z", "postProcessHash": "a2cfec2be31c2f02987542d2abda866023bea0c5d0ae1d30f87ade0f250668d2" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.938Z", + "updatedAt": "2026-02-24T10:49:32.545Z", "postProcessHash": "96bc4e5ecd86d7c2b32cad834a728b937b270b26b0d207c97751c0d276787357" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.045Z", + "updatedAt": "2026-02-24T10:49:32.657Z", "postProcessHash": "835a9f16332840ab5a4253dccbefb46bdcb27fee85065609a71b3466a7657a48" } } @@ -64647,19 +65871,19 @@ }, "c2362a67e1350ddccf7d75c22a52e65c453486c04f51dce350237cd6d0510fe7": { "jp": { - "updatedAt": "2026-02-19T02:24:08.948Z", + "updatedAt": "2026-02-24T10:49:32.555Z", "postProcessHash": "3c654c3b54c73a0942d05464129f3435d1aeadcba7fce2d099cbccf277943e79" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.949Z", + "updatedAt": "2026-02-24T10:49:32.556Z", "postProcessHash": "432939044e784e38fcc4a7b72ce6de3c1303bd10daa2c72d6b8fa039c4441fe8" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.950Z", + "updatedAt": "2026-02-24T10:49:32.557Z", "postProcessHash": "3fae7065cfb7645b306bc333678b01b142c9108526a9fe8bf835e958c4043ba6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.054Z", + "updatedAt": "2026-02-24T10:49:32.665Z", "postProcessHash": "bdcc3470a1d72e5c2487e4023c9eb4681c1bc3737fa73568c80b2334240b3c72" } } @@ -64681,19 +65905,19 @@ }, "5bd81f3954ce3ccaa18168b2864d94a6f726f38f12239beefc63c57625fb2e65": { "ru": { - "updatedAt": "2026-02-19T02:24:08.955Z", + "updatedAt": "2026-02-24T10:49:32.560Z", "postProcessHash": "9883fdd2912a9339a47dc7ff1f10d04b49f6497d000e696d2540f4eba488c68f" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.966Z", + "updatedAt": "2026-02-24T10:49:32.572Z", "postProcessHash": "054d51e665b49deff2c59bfbd1da154132cde28921321aa28028d9768bebd41a" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.967Z", + "updatedAt": "2026-02-24T10:49:32.574Z", "postProcessHash": "d6670f74b2fa9f24407b9197d71cd34f0f86d04fa9acdaef8016c575deb5cb07" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.048Z", + "updatedAt": "2026-02-24T10:49:32.659Z", "postProcessHash": "45774bb48cf0b9f467a0608b8aad96f5fca9abb3fb25c09fc1e4d6eeb28464ae" } } @@ -64701,19 +65925,19 @@ "c15c41512f97a5eabf1889e103e9b08c92a6da64f39f920afb029e3757365ca5": { "5c37cb19d499a9857911a61391eea4da9592964ccf59c5e946e1529f8170eb97": { "zh": { - "updatedAt": "2026-02-19T02:24:10.752Z", + "updatedAt": "2026-02-24T10:49:34.413Z", "postProcessHash": "7134600517bc83b586f0397ef1abd14d337009909420a8d87a73708926c1c7d4" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.752Z", + "updatedAt": "2026-02-24T10:49:34.413Z", "postProcessHash": "f6809eaed8da1b3f664aed1bcd122ef165d2a2ecd871f1d492e5bf551fe7b448" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.753Z", + "updatedAt": "2026-02-24T10:49:34.414Z", "postProcessHash": "37256eabe408ca1410d4c3b88a6ae6cb086001c24e9e1b4a31d57baff72ee9e9" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.769Z", + "updatedAt": "2026-02-24T10:49:34.438Z", "postProcessHash": "108b75b0c828d69c3c7986f324bd09755e936a0969b401c23121b0b387085ddf" } } @@ -64735,19 +65959,19 @@ }, "884ff7d00ec445ed4c670d062d3fee86cad0f4aaea0ced2c80663731f6347c4c": { "ru": { - "updatedAt": "2026-02-19T02:24:10.818Z", + "updatedAt": "2026-02-24T10:49:34.484Z", "postProcessHash": "605efca3c7ac16ecafb0f878b96074ff33ea189a49fe3fca14be7ae1cf0fb6d2" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.818Z", + "updatedAt": "2026-02-24T10:49:34.484Z", "postProcessHash": "2dc53b869e73d5636957db4ad9649e442b663287a036a8631edb7cd4590f7f86" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.819Z", + "updatedAt": "2026-02-24T10:49:34.485Z", "postProcessHash": "7f53c4e555aabdba9f59f5c123f7dc58f53afa5f514974f658418d68f2b3f869" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.830Z", + "updatedAt": "2026-02-24T10:49:34.495Z", "postProcessHash": "f69782790d83ce88ee399359b1b39f719ba65df81c1d678810266ccf5f728452" } } @@ -64783,19 +66007,19 @@ }, "989e0307dde6f6490a4448bb1d1275eb76af0839bceea69373e22c01911fc3a9": { "ru": { - "updatedAt": "2026-02-19T02:24:11.341Z", + "updatedAt": "2026-02-24T10:49:35.000Z", "postProcessHash": "adb3a333020fca3a57cba6563d1449dece0cba5dd6ae219baec7bddaab08b547" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.342Z", + "updatedAt": "2026-02-24T10:49:35.001Z", "postProcessHash": "3d91b318b353c17ba810fea8b9dabedf7791de555849f1b0eb7a56116f8416ea" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.342Z", + "updatedAt": "2026-02-24T10:49:35.002Z", "postProcessHash": "1ed8354f64e17800d757744bd7dd1e04bfee90e70e248e85fd1793892cd537a6" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.346Z", + "updatedAt": "2026-02-24T10:49:35.006Z", "postProcessHash": "a466ef07afce2dc2c2e45c1bb835738f4eec9bd72390d06dda08a1c6e60d46d9" } } @@ -64831,19 +66055,19 @@ }, "4835fd358af49ebe4269902c1e66631aac8e79dbf44cad3e25d4483e1236ae96": { "ru": { - "updatedAt": "2026-02-19T02:24:11.690Z", + "updatedAt": "2026-02-24T10:49:35.335Z", "postProcessHash": "37ec10931508f5db22f5e5f5f5909a0f1630a8b1b7df33efc58ad1f95c3c326f" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.693Z", + "updatedAt": "2026-02-24T10:49:35.337Z", "postProcessHash": "93e85966fe285d8e2fd6d748a3b767183c3b1a9d2188f18b1c78b7b987a1b5bc" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.762Z", + "updatedAt": "2026-02-24T10:49:35.353Z", "postProcessHash": "3ee1e5b36eb0fc53d56fc256bd969ebc775d2791a6583f1c34f8b0dac71e51a0" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.775Z", + "updatedAt": "2026-02-24T10:49:35.363Z", "postProcessHash": "aab2ab447d0a099ed6081b2132795eea33b21e7d1ae09c47e8c92540f1790d4f" } } @@ -64895,19 +66119,19 @@ "95c4c380288f49495a883224f344bfbe30cbb3518cf30f0ffeba60fc2d5c77c1": { "9a576b79d8c28e4c246e0cedfd8c9c2fae9f210d26cc2c409da57936dba99182": { "ru": { - "updatedAt": "2026-02-19T02:24:13.327Z", + "updatedAt": "2026-02-24T10:49:37.124Z", "postProcessHash": "b4c558c54523d098419ae7d415313f16f3927db9f018f1c1318940e481a8e1b6" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.328Z", + "updatedAt": "2026-02-24T10:49:37.124Z", "postProcessHash": "f923c762557c98edd913b5d9bdb83dc4c52e39c1cecf014483040cd42a909256" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.328Z", + "updatedAt": "2026-02-24T10:49:37.125Z", "postProcessHash": "98c197d04a4cdc79503b9579c2b5a224e6b5da17d5f412700a42339b3817ddaf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.434Z", + "updatedAt": "2026-02-24T10:49:37.231Z", "postProcessHash": "7edcd6bac89ddf3332911ae2b6798a33670ab31c1d2ed4086c0ce8ed2e1f3471" } } @@ -64943,19 +66167,19 @@ }, "bcdc653aed169d06d1ccf187b16f6e1b240639d196a216ea91b6a802e72d81fc": { "zh": { - "updatedAt": "2026-02-19T02:24:13.350Z", + "updatedAt": "2026-02-24T10:49:37.148Z", "postProcessHash": "f7af913290c534bb18dd21ab925484e1a22a68644739d4990ce381adff6df256" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.407Z", + "updatedAt": "2026-02-24T10:49:37.204Z", "postProcessHash": "4b371b3f2e3035208b73490257c319769ff0c9746b3c99856c575a9bf5d4864e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.420Z", + "updatedAt": "2026-02-24T10:49:37.216Z", "postProcessHash": "6fa341f89204a9f56b72ce7caadf8e8846ad77876805ae827de451851dd1c7a4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.436Z", + "updatedAt": "2026-02-24T10:49:37.233Z", "postProcessHash": "91644ae8f5c3471fb351622bc815f4ad87e0c2c89660f6cbedff6b9be6ff891f" } } @@ -64977,19 +66201,19 @@ }, "4a64e083512d4903a5af246ad3d9dc72d89481357c4d69418bc93868ab152caa": { "zh": { - "updatedAt": "2026-02-19T02:24:13.340Z", + "updatedAt": "2026-02-24T10:49:37.199Z", "postProcessHash": "d7d33e7c41f0892db5347916cda85279e47d16aaee443c3ce7580d49ad36fbbc" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.350Z", + "updatedAt": "2026-02-24T10:49:37.202Z", "postProcessHash": "8ff4db055d787b3d38a79953779387bd6f68f952164504e83b44bbec3c638a23" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.412Z", + "updatedAt": "2026-02-24T10:49:37.208Z", "postProcessHash": "138e64a9300971da312b52ca55fe5af85011395f5817f5588adfdbaee6732662" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.440Z", + "updatedAt": "2026-02-24T10:49:37.236Z", "postProcessHash": "d274b38a4e48310996955937abf006e6b5d3061c0fa290be724f38cd29bf8b23" } } @@ -65011,19 +66235,19 @@ }, "39618cb610303c8a02055b949a4c41af4ced986bfdd5528f78b54bd9acff9ad9": { "ru": { - "updatedAt": "2026-02-19T02:24:13.341Z", + "updatedAt": "2026-02-24T10:49:37.200Z", "postProcessHash": "182902a41a0d82ef33d18405e7ca0c48e10a44e01cb50a4afb97e924fd3f760b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.408Z", + "updatedAt": "2026-02-24T10:49:37.205Z", "postProcessHash": "9591ba1396820e9c328c7409403627fdd9982a08cb0adeec2a6a87e965b41071" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.417Z", + "updatedAt": "2026-02-24T10:49:37.213Z", "postProcessHash": "62dbf9cdfb0dddd32526a54d051fd059f80ea1b07a8dea2fe4ae919b71c77fcb" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.439Z", + "updatedAt": "2026-02-24T10:49:37.235Z", "postProcessHash": "4a42823a2514fabe6980d21825ba453643a26a3bb2609f9ddf7036a47385a6b0" } } @@ -65061,19 +66285,19 @@ }, "244a210f8919bc2241841ce255f00bf1d190f0127bad2425b53eb93e65989ff1": { "ru": { - "updatedAt": "2026-02-19T02:24:13.664Z", + "updatedAt": "2026-02-24T10:49:37.510Z", "postProcessHash": "093b91c9111cba3fb0a467f2ab32d099aa82b40263ce5039d7d3372984d1853f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.664Z", + "updatedAt": "2026-02-24T10:49:37.511Z", "postProcessHash": "f6802b5e602bcc2927fec9c38214241bd373386b84ceaa69514d0cfdb31a3e9d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.665Z", + "updatedAt": "2026-02-24T10:49:37.513Z", "postProcessHash": "1b704e034960c0fbae4d68a8e0d1d2402e8db64b4f1aa6f4cb810c51dd653542" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.702Z", + "updatedAt": "2026-02-24T10:49:37.583Z", "postProcessHash": "6ab34593cc9e4e0249b2d26e0dac0eca853e939b077e5c422910db2f6ad4b654" } } @@ -65109,19 +66333,19 @@ }, "bfc90401d1251f48ade1984fb196f2adcf092b828381e19f1446972995d9bde2": { "ru": { - "updatedAt": "2026-02-19T02:24:13.677Z", + "updatedAt": "2026-02-24T10:49:37.531Z", "postProcessHash": "258a52e161062e124ef62dc7f376663e6afba2c604e8709d25df3bcf2b0c9629" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.678Z", + "updatedAt": "2026-02-24T10:49:37.532Z", "postProcessHash": "8d69b7cc9c65de4825c68c93458710ea3e2cdf469dc40f7ad959bd6d2f5fde7d" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.689Z", + "updatedAt": "2026-02-24T10:49:37.547Z", "postProcessHash": "6b435e9d5ed52a2fc474463f8657a06e9cff8c7e36b90a74c2252cb5fefb6f15" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.699Z", + "updatedAt": "2026-02-24T10:49:37.560Z", "postProcessHash": "acb0c46edc5dbf2d2b78a62c8fd65fd68ee33f1dd9863497a251d2e2ec081754" } } @@ -65171,19 +66395,19 @@ }, "6b541efa71e4c920252a1ded50381a539f9f5f7a40416e10c64b3166bac7c21c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.676Z", + "updatedAt": "2026-02-24T10:49:37.530Z", "postProcessHash": "fd90a3d7cc2aef9fc967c7cc07bb36eec3da5724f48b842b44efa69791cfbb74" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.680Z", + "updatedAt": "2026-02-24T10:49:37.533Z", "postProcessHash": "19475150d39d45db5451571c91955d2ce15be8e10eddd91afff35245a655e237" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.681Z", + "updatedAt": "2026-02-24T10:49:37.536Z", "postProcessHash": "728fbbcdc2a98f4d2af407b50a11dce3bd073f6899cca5b4ab92e2cb2a20e5e5" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.711Z", + "updatedAt": "2026-02-24T10:49:37.591Z", "postProcessHash": "40f76d56942f024d715621f7ed76d2ef1fb2c2ec5717ef6a21d1a387cf5d55f3" } } @@ -65205,19 +66429,19 @@ }, "d5a2d5ef82b889b7d91854454e99fc1e8387eab4edbb0ea9a0a70c651e0ce3d3": { "zh": { - "updatedAt": "2026-02-19T02:24:13.715Z", + "updatedAt": "2026-02-24T10:49:37.593Z", "postProcessHash": "10d4a0ad5d4224f1fb5f0f76ef254221ce732184e1eadb9a62f8805586c6edae" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.716Z", + "updatedAt": "2026-02-24T10:49:37.594Z", "postProcessHash": "d812ab9b291fcdad6b19e0aba428afafaaa70bbffae5b8c95e7c9e587a2e7845" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.717Z", + "updatedAt": "2026-02-24T10:49:37.594Z", "postProcessHash": "1ccb7c4dbdc26b644c1d39c8cff9d7c6db5e34386c1394142b68c35c28a46390" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.701Z", + "updatedAt": "2026-02-24T10:49:37.562Z", "postProcessHash": "6245b4f5480300f271f45da4d1e0ae66f92c4005df0353a9d26895fd1b0210e6" } } @@ -65253,19 +66477,19 @@ }, "960cb81f97c6f51a3de393242389cc0b03b3243352e4c063e176ec651089cd5f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.685Z", + "updatedAt": "2026-02-24T10:49:37.542Z", "postProcessHash": "968f20f4ae2e06a8ce4ab2f6602b6c904ee57516976ebca0f06db59bd1de5532" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.686Z", + "updatedAt": "2026-02-24T10:49:37.545Z", "postProcessHash": "1b4ad8d0f28b37284ba7aa1f3ecfb7ca67543990dfa8895ad1a08f4c9932648c" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.691Z", + "updatedAt": "2026-02-24T10:49:37.550Z", "postProcessHash": "78121e128420134919c26bb41d47c71b834fa7957a176e88c949f737845ab057" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.707Z", + "updatedAt": "2026-02-24T10:49:37.586Z", "postProcessHash": "7347100e207935eb213fcf1a34db36fd5f7617a6c8376de9c8a4d77be669857b" } } @@ -65287,19 +66511,19 @@ }, "d73d2560e945da699bf5034e39c824f7c94d3e01463a8b162dd8cbeb5e79a95a": { "zh": { - "updatedAt": "2026-02-19T02:24:13.590Z", + "updatedAt": "2026-02-24T10:49:37.509Z", "postProcessHash": "5cc1296a2fa3557d13bf864a7a1a2596e5f37ea37ac436337093d52581439672" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.665Z", + "updatedAt": "2026-02-24T10:49:37.512Z", "postProcessHash": "f269eb2c3a3a28d2d210bc185a677b63577d58e8381bbc5500adc1b0fb2185a4" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.666Z", + "updatedAt": "2026-02-24T10:49:37.513Z", "postProcessHash": "d20ad380ba99c28de31730d2c3f4b6f604f433b0bd5e919d89f48f0fa7327135" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.707Z", + "updatedAt": "2026-02-24T10:49:37.587Z", "postProcessHash": "1ee8d68a386bccdf51a83fc9772e6dcb50e778e69fc078185e7512dfe097702d" } } @@ -65349,19 +66573,19 @@ }, "2f620ced15acaabe1928083d5c4b4d94fae02101ca12d0a6a39be77aa27c40b8": { "ru": { - "updatedAt": "2026-02-19T02:24:13.679Z", + "updatedAt": "2026-02-24T10:49:37.533Z", "postProcessHash": "3efce9b9712ccd3c034b4cac432195b227e1c17b2a843f92cccb814353f1369b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.681Z", + "updatedAt": "2026-02-24T10:49:37.537Z", "postProcessHash": "4231ce99e1b308cb148c9a1bd260d60c23dcc26318db106a220897d5776d1593" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.682Z", + "updatedAt": "2026-02-24T10:49:37.539Z", "postProcessHash": "1791d3c6d2bb8d3701e5225ea98f41c9382e258b4204472c357f89d42e41c694" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.710Z", + "updatedAt": "2026-02-24T10:49:37.590Z", "postProcessHash": "319d27d7af1ae432d75e0f1a7401bbfbc76e3999ac7556e5e84b4f1f552747c2" } } @@ -65399,19 +66623,19 @@ "2a5b02021662cef8a4106612ec32c461b7083915d0e7ec2edb386ede0ce409e3": { "60fa53acb957fe4fcfe52783f5c603f64c80c34f62b9ffbf48ec9eec0edc8961": { "zh": { - "updatedAt": "2026-02-19T02:24:10.129Z", + "updatedAt": "2026-02-24T10:49:33.778Z", "postProcessHash": "7690ff9ada87053c24b2817213dac867aca244b1043448b3377a9eeb37a5ac1f" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.129Z", + "updatedAt": "2026-02-24T10:49:33.779Z", "postProcessHash": "cf963746cd4329a0eebfa30349e10dc554285767eec36f5bfd71a7e3dd57a0fe" }, "ru": { - "updatedAt": "2026-02-19T02:24:10.133Z", + "updatedAt": "2026-02-24T10:49:33.783Z", "postProcessHash": "8b01fbb5523804c61fa6ac49bb857a41f14a4fe52fae5aa480e38fd9b9f460c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.161Z", + "updatedAt": "2026-02-24T10:49:33.833Z", "postProcessHash": "e98568bd1ac6efe42a61badd45648a1df496f9d2f82f0303a127be6e4e9fbdcc" } } @@ -65419,19 +66643,19 @@ "2f8c8032ea7b515cc50768cb3dfc13fc901e669819058fc039aa1294b870d4a5": { "c060ff03464816f89655a43a417fefc5b8bf2e543f55c003250e4ce26f328ea0": { "ru": { - "updatedAt": "2026-02-19T02:24:11.935Z", + "updatedAt": "2026-02-24T10:49:35.582Z", "postProcessHash": "90faaf8f1d7e015d4f713ea81f854356f8f696e50a7be55954554c1dc1998c9a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.935Z", + "updatedAt": "2026-02-24T10:49:35.582Z", "postProcessHash": "314e53f63760a958ecd9f505b86698bbcf3b3f1998a94f68c69adc383f4d7a3d" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.935Z", + "updatedAt": "2026-02-24T10:49:35.583Z", "postProcessHash": "7258d672c832f941aac6a3792aeda91be834282c84bbc8e676c62767b367cb08" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.957Z", + "updatedAt": "2026-02-24T10:49:35.595Z", "postProcessHash": "84cb24da2f526dc374eff4cef2f8d04cb6239deb98501c6968cc80ec0aaf6ec2" } } @@ -65453,19 +66677,19 @@ }, "3987f8cbb6c763a2d015bb0a13b4cb26914503e5ef7001b6cca1b92d7792f782": { "jp": { - "updatedAt": "2026-02-19T02:24:12.117Z", + "updatedAt": "2026-02-24T10:49:35.880Z", "postProcessHash": "ce3938d169cdeac29aad70f516dc989e55feaa16f5c97861be11c2d03f639e19" }, "ru": { - "updatedAt": "2026-02-19T02:24:12.117Z", + "updatedAt": "2026-02-24T10:49:35.880Z", "postProcessHash": "7bbb014cd745b1a074ab54f07da8deee940cc9e53586a69f379ba0ae707062e1" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.118Z", + "updatedAt": "2026-02-24T10:49:35.881Z", "postProcessHash": "780e0dea1bd50276ec1a58c1ad05308a05365a5e27c7f5e7e7a7bf845a465d67" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.192Z", + "updatedAt": "2026-02-24T10:49:35.897Z", "postProcessHash": "e0cf3a9f1804fa76e0328cd06793471bf84963c91c61babf7a014a98fb1b1ac1" } } @@ -65473,19 +66697,19 @@ "0e8014174cf219033e594cf1991366d1c50255304bcb8a492565027c944c47e1": { "2bba7ff9f47b723989c7821ce7338958fb3004a0a3aba7d2142fb5d88271f228": { "ru": { - "updatedAt": "2026-02-19T02:24:12.753Z", + "updatedAt": "2026-02-24T10:49:36.495Z", "postProcessHash": "cfd93fdb99d19dfff63fe30da75068bd2cf667cac57d07fa8b0bf5da914c65a3" }, "jp": { - "updatedAt": "2026-02-19T02:24:12.755Z", + "updatedAt": "2026-02-24T10:49:36.495Z", "postProcessHash": "6cbdd7402d73919b4e2c373ce4cd4b44694dfb2d93053b5a35cf910433cac309" }, "zh": { - "updatedAt": "2026-02-19T02:24:12.756Z", + "updatedAt": "2026-02-24T10:49:36.495Z", "postProcessHash": "f79328234400b4d6f275d56c24ddb29516ab2e942c8eb16bf8a3995f648f54f0" }, "ko": { - "updatedAt": "2026-02-19T02:24:12.759Z", + "updatedAt": "2026-02-24T10:49:36.502Z", "postProcessHash": "a3538963010a91e8bb801f16757d2cca1cecb430922f9ea90b5a41313f696f54" } } @@ -65493,19 +66717,19 @@ "362315404c5957cc819e837a8b2bb4af29b17c84625977a438710a7ec06e6195": { "3179c84b30d5c3f01a0e1e1e6930204209c28deee76b98f40dea411b84f4f1a4": { "zh": { - "updatedAt": "2026-02-19T02:24:08.989Z", + "updatedAt": "2026-02-24T10:49:32.599Z", "postProcessHash": "73fc30daeb9f693b9aa2642aa0e972e2cb4808852080d24715c1a2864515a7f0" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.990Z", + "updatedAt": "2026-02-24T10:49:32.600Z", "postProcessHash": "d193237718a7c2b135cc51ecea0a3e7b4a50138950b9f313e0f45cbf2f29717f" }, "ru": { - "updatedAt": "2026-02-19T02:24:08.990Z", + "updatedAt": "2026-02-24T10:49:32.601Z", "postProcessHash": "b5c45cdfbbca3e53d08272a6fdf93c4fec9d3e8341e46b8905fefe614ec3e1f4" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.985Z", + "updatedAt": "2026-02-24T10:49:32.593Z", "postProcessHash": "41f543cf5449cd918ce47f91852957234c2a13540e0f76846f091f25a6b35255" } } @@ -65513,19 +66737,19 @@ "ffc0b8b982ba0af51759bd5056be71b224d11084042533b244a427c0bee32f11": { "0945229ca9aab7a437942d33385e0028c284bf0bc5a3e2e308829be8e4b1e705": { "ru": { - "updatedAt": "2026-02-19T02:24:08.991Z", + "updatedAt": "2026-02-24T10:49:32.602Z", "postProcessHash": "4d0c0d4b14a34eb934330eec502a39c4d8d808c2277a09a845d4091ea1100039" }, "jp": { - "updatedAt": "2026-02-19T02:24:08.992Z", + "updatedAt": "2026-02-24T10:49:32.603Z", "postProcessHash": "8dedce0ec347d5236c1b846dbb07690ed220be6a51cc1c30505331ae7cc61946" }, "zh": { - "updatedAt": "2026-02-19T02:24:08.994Z", + "updatedAt": "2026-02-24T10:49:32.605Z", "postProcessHash": "7cc9c85217f178da3a4b26b5a9e4b620a210ab26810dffbd98259e92d6276679" }, "ko": { - "updatedAt": "2026-02-19T02:24:08.982Z", + "updatedAt": "2026-02-24T10:49:32.590Z", "postProcessHash": "411192d027aa2d2a5270e34f2f87dbfab3993373a4663a4fd8ac96066a8bb735" } } @@ -65561,19 +66785,19 @@ }, "305afbbb6d384293666a6038053cdee701561cbf0303f7959c3989136d493051": { "jp": { - "updatedAt": "2026-02-19T02:24:09.303Z", + "updatedAt": "2026-02-24T10:49:32.897Z", "postProcessHash": "ea11f4919c5270e048607dea728b1f659d7f065b36d617955cbb9cbcfb830c25" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.303Z", + "updatedAt": "2026-02-24T10:49:32.898Z", "postProcessHash": "1acd88d8b7574e458fcfb32a524ca69c97dce85df69f2caccc1dd2a461a0fa62" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.304Z", + "updatedAt": "2026-02-24T10:49:32.899Z", "postProcessHash": "d45c4c85b065aee8d863bc87dba25e726d44403c5381b09ea7bb9f65ff2e2e13" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.311Z", + "updatedAt": "2026-02-24T10:49:32.911Z", "postProcessHash": "152f9bfadb8493594f012cefc073aecd03093d7121c00024ae7790932a71372a" } } @@ -65581,19 +66805,19 @@ "b0d6b0b3a80afe55d0fc40159d0c8cce35b9e9819b04de769fa537183a679b57": { "afb40c7d2cc36e85296e08f2e9a8d3f95a78c3af52090b4f4ce30959810b028e": { "ru": { - "updatedAt": "2026-02-19T02:24:09.348Z", + "updatedAt": "2026-02-24T10:49:32.951Z", "postProcessHash": "14091bcd8459851f2c70b2bcb204ee87420120d195f1c82383e451eb361a3d0c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.349Z", + "updatedAt": "2026-02-24T10:49:32.952Z", "postProcessHash": "9a3ca4b47d449c4f7ee142e923f0c31230240f852e76d67779db6296de15e6e5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.349Z", + "updatedAt": "2026-02-24T10:49:32.953Z", "postProcessHash": "fc9292cd34ff32f0ef0dc64a20cbd474809ec5ac25e3affec2b7fcbddd14a7fb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.370Z", + "updatedAt": "2026-02-24T10:49:32.991Z", "postProcessHash": "d949a4cf8964c9787624b8d5f2e0b3f19f3e238742bf4356cc74abd374675106" } } @@ -65601,19 +66825,19 @@ "161b8185090aacb449d0732b7880a373221329720c47f6b745eaf044e5037894": { "234517d08256ba2038c510b53ed8628be2914d644c2c35d9e36b5f39345c175e": { "jp": { - "updatedAt": "2026-02-19T02:24:09.776Z", + "updatedAt": "2026-02-24T10:49:33.399Z", "postProcessHash": "7fa0875558e3f1d0613f1f1be755e3b70258b96b338c8547928babc2063cd5b1" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.839Z", + "updatedAt": "2026-02-24T10:49:33.465Z", "postProcessHash": "9e1a6513fe2579eafe465bf7f3262f15350d930ca4ed42b2350b3fa9d450181f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.839Z", + "updatedAt": "2026-02-24T10:49:33.466Z", "postProcessHash": "b502f3a2eec48a6b841631c9fefa35285fb511d11c38b332ec2dd1d93adaad45" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.742Z", + "updatedAt": "2026-02-24T10:49:33.377Z", "postProcessHash": "825aa566088c02c3a7b31137f298ece6bc13762482012839745f19159f517d10" } } @@ -65621,19 +66845,19 @@ "e26b38c6434b154285d8a2b7bf0437d385d176a94f976c3a5654da7921af5e65": { "21c7519bdbce000273dedb7e3ceb7290f312947ee21b39936e1e9da384a30777": { "ru": { - "updatedAt": "2026-02-19T02:24:09.781Z", + "updatedAt": "2026-02-24T10:49:33.400Z", "postProcessHash": "2c26b1c2b3769f77832d9ac236f91c5856d0bd01a5cfe8f48377fb8dd5dc0110" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.784Z", + "updatedAt": "2026-02-24T10:49:33.404Z", "postProcessHash": "206b75848b964a9b57ac3bba3d2e83cd2c4c15c110e6b71dcf5fcf4d91e3cbba" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.837Z", + "updatedAt": "2026-02-24T10:49:33.464Z", "postProcessHash": "308cbfa7f2a0ce2cf09c3d993e6c7d6e59e987818632ef495df8d4cacb8c10fc" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.770Z", + "updatedAt": "2026-02-24T10:49:33.393Z", "postProcessHash": "231b6935f80563b6f16e01033f9c0d786cd1493663384883740cb75886dd2cfa" } } @@ -65641,19 +66865,19 @@ "232e09c8f05fbfc0c4c17c4cfd989403f94b8205d5459f721943c548b0f08db4": { "b19ac776c49fecf1a520fbbe0181d571f46d0c647c8b54ac0884e4629f990582": { "zh": { - "updatedAt": "2026-02-19T02:24:09.781Z", + "updatedAt": "2026-02-24T10:49:33.401Z", "postProcessHash": "bffb5bb639b31d18e9d4557cf33330bc7edc8afc9a5b535f0790ad63d4699a50" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.860Z", + "updatedAt": "2026-02-24T10:49:33.478Z", "postProcessHash": "24e2c51271a00bbb6dcb785f44d57a457640840454a169a9265e87c9ef69cbeb" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.862Z", + "updatedAt": "2026-02-24T10:49:33.480Z", "postProcessHash": "fb80fcc949ee0f5db75b04b92d334a38e76cbc4d31c425b6ec753fb46803db7d" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.756Z", + "updatedAt": "2026-02-24T10:49:33.390Z", "postProcessHash": "f992c8f527b1c98b04e12119fe4af622d6e4e32de366956bf67953c13d074ff4" } } @@ -65661,19 +66885,19 @@ "74b0cf0e6be39c92173ecf252a62b2d8a6c42797b5478d37c954acc134e5b882": { "ce1db0a7f4d97700383c6b6153afce68d75733901026d65c399e0b39bf4d376a": { "jp": { - "updatedAt": "2026-02-19T02:24:09.782Z", + "updatedAt": "2026-02-24T10:49:33.402Z", "postProcessHash": "19322d8caff4cf066300a91b9f2696b30aac55dbb13bb23f02057ed898135191" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.783Z", + "updatedAt": "2026-02-24T10:49:33.402Z", "postProcessHash": "d664439317ebe1111f3cf8b7ef056fee5367e86fd1f974d33117aa314ad304f9" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.841Z", + "updatedAt": "2026-02-24T10:49:33.468Z", "postProcessHash": "50e986c18cac53df2b176cfd36bb877b31bc5049b09092b610626d184e9d2be3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.741Z", + "updatedAt": "2026-02-24T10:49:33.376Z", "postProcessHash": "610b0a0efe28930304a02972bd22c3dd813792b9eec26ab93cfbdf13e14b672b" } } @@ -65681,19 +66905,19 @@ "e3e515aa27aded23b1644262018b533d162037730b011a8457840582def69f5e": { "0f165a5bfffb1cf1073b78ed8c189fd619ff4b9423560a3054b372cff07f7147": { "jp": { - "updatedAt": "2026-02-19T02:24:09.784Z", + "updatedAt": "2026-02-24T10:49:33.403Z", "postProcessHash": "9dd0766b5e4bf587932048e7ea2904a57ac7f511075c0b1aaa9993f2d0873b65" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.786Z", + "updatedAt": "2026-02-24T10:49:33.407Z", "postProcessHash": "a5f77c6dab249b047b623cf24008c0d352fced322ab5c1495d2e3e227a2e2725" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.790Z", + "updatedAt": "2026-02-24T10:49:33.410Z", "postProcessHash": "489da7acb0f16062d4e81e093af339b6d0d0033945052ee5437453f45e07989c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.752Z", + "updatedAt": "2026-02-24T10:49:33.387Z", "postProcessHash": "096c816e6b888d793bd5f2bd0c5b1e320d4e3ad7a610a65f8f8411ffa41e1c3a" } } @@ -65701,19 +66925,19 @@ "2d51dbc8afbc06699fa93085f71b21840148ff073108160e74505a029484ba08": { "ec115aa5c39393e0278fcfa3d87263b4a2a1575fbe3358806ff3c5e99a6549af": { "ru": { - "updatedAt": "2026-02-19T02:24:09.786Z", + "updatedAt": "2026-02-24T10:49:33.406Z", "postProcessHash": "11b90c0b776bf8e747c07cb35fd87ef5e4b2bc72263a59bb7215c86904fef49a" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.787Z", + "updatedAt": "2026-02-24T10:49:33.407Z", "postProcessHash": "d0b3fe834197cde65f976c480b830f55c1de0d05d4a71b1817af8a7e308590fe" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.793Z", + "updatedAt": "2026-02-24T10:49:33.414Z", "postProcessHash": "dcc4218892ee489c23fb6fc57990e1665b3ae4d5cb0a76fe8762209df0794fcb" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.751Z", + "updatedAt": "2026-02-24T10:49:33.385Z", "postProcessHash": "0ae7658f00766637447f54be40d9f5bb8e138500ad91c92345aba75eaf929b13" } } @@ -65721,19 +66945,19 @@ "c7b9806464aae5497de51e0d1e3493829d93e7ed3645d7a1b19e911bb5b4672c": { "8d88e70368c89add205cd7ffffed43433e9d2af7616fda54f346a8e5245a0d3c": { "zh": { - "updatedAt": "2026-02-19T02:24:09.788Z", + "updatedAt": "2026-02-24T10:49:33.409Z", "postProcessHash": "927195ade63c66d5bf4a6dfea1a71a657387d36759ad0cb8a0768ab14fee5499" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.789Z", + "updatedAt": "2026-02-24T10:49:33.410Z", "postProcessHash": "5834707b1faa1ea1d616b046b4e66f7ef9197e0d0d4330147318f8b2d1197bf7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.791Z", + "updatedAt": "2026-02-24T10:49:33.412Z", "postProcessHash": "f421e55a83fdfb5d0e0e30fb3e39bdce37239cbfb59d9b1a8065a4b620ee3c0a" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.757Z", + "updatedAt": "2026-02-24T10:49:33.391Z", "postProcessHash": "4f15c8b6b3c8d3206d0f8cbc6c5d3fcc05ff72542c3fc1b6843d5fbb8aa51cac" } } @@ -65741,19 +66965,19 @@ "28d23f6df451c939b6de0800c7c8b4c8a3bad5713dfd40245fb412d52084c200": { "2047a084f14aef058291ff867c801c236daa0d408c7f61d9d376cfc8a0ab4822": { "ru": { - "updatedAt": "2026-02-19T02:24:09.796Z", + "updatedAt": "2026-02-24T10:49:33.418Z", "postProcessHash": "aa9fe31c55c560d870160e045aecd74392a0bcedbfbb1522cf095a49ca92ef6f" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.798Z", + "updatedAt": "2026-02-24T10:49:33.420Z", "postProcessHash": "d8acdf49a4a9099922da90dc50508b27d6d5584499f30f639cd1dff2ee114403" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.801Z", + "updatedAt": "2026-02-24T10:49:33.423Z", "postProcessHash": "dda3d9e2ceb2ead78056485cd6d2352c1aab678fea33257b1000becab57bd9b5" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.749Z", + "updatedAt": "2026-02-24T10:49:33.384Z", "postProcessHash": "7f0853bc13a31ffdbc7688d8b7db00d494eba923e8590ce5fa1713e2f3b193c5" } } @@ -65761,19 +66985,19 @@ "7d2470f93b5b56ab86f717ca766f3773d62a2731b06e1aa3fcd8d76b2aaf063d": { "f126be0b3fc4a508946282e74f025264ac802e6b2ecceff031f871d9f5ea12fa": { "jp": { - "updatedAt": "2026-02-19T02:24:09.796Z", + "updatedAt": "2026-02-24T10:49:33.419Z", "postProcessHash": "82ea3a561f9760e943fa01b087b8816a3594bc75e9d248d18b2809097af4d2b7" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.799Z", + "updatedAt": "2026-02-24T10:49:33.421Z", "postProcessHash": "6163ca6d438b2eb75b94574e5d51ac2ed9c21ec7af11944878c85d0b6dbe55ce" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.800Z", + "updatedAt": "2026-02-24T10:49:33.422Z", "postProcessHash": "62b0361a533a3b537ef07029b28e0450209d5342b5af468ec6cdc2a20df54691" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.747Z", + "updatedAt": "2026-02-24T10:49:33.382Z", "postProcessHash": "9acccaa4028f9558b71f480166897d890d44471a6b3c5fbbbbaa2b36fb62a2e3" } } @@ -65781,19 +67005,19 @@ "f9e0dd35b5b26997590bba758f959532b05a728659e8ec609c10fe2ff5b05f88": { "cb8a1fd79d7e66a5513b71b9bef55d524327e91bd002af8d48a6b98432d1451d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.797Z", + "updatedAt": "2026-02-24T10:49:33.419Z", "postProcessHash": "eb712d78c0afc16e6d568259636eabce532659e56f8d246fc5d0c36eba6c035c" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.797Z", + "updatedAt": "2026-02-24T10:49:33.420Z", "postProcessHash": "c06c7f047f91786ddb70179415dcb82256e8fab21086892ad7aa8013a297ad96" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.799Z", + "updatedAt": "2026-02-24T10:49:33.422Z", "postProcessHash": "176b786612b67184e410ac0db5c2fe0b81006feddd0460a59c8430e94316ea15" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.749Z", + "updatedAt": "2026-02-24T10:49:33.383Z", "postProcessHash": "4c45f3a6193da7232dbf847d0fb241085e50c5aafbe7db028d0c347d5bb7438f" } } @@ -65801,19 +67025,19 @@ "e7a403937c4434c320f076e4357da0cd17f868f8913c2f0f5911646127f68427": { "a0c508dc3e32a3866f27050fa59fa70dcbb5645cbb1d33189c6127b804cd7590": { "jp": { - "updatedAt": "2026-02-19T02:24:09.837Z", + "updatedAt": "2026-02-24T10:49:33.463Z", "postProcessHash": "b66770172b3da7c5dde5168a5f2e54b9423f84fa0a8df7f148d02a2f311b9506" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.843Z", + "updatedAt": "2026-02-24T10:49:33.470Z", "postProcessHash": "ad41d11e665a662f15377cd8916472810b68625d7afafb8b51761901fee045cc" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.858Z", + "updatedAt": "2026-02-24T10:49:33.475Z", "postProcessHash": "7db4955191a7d3be0aa507702c4a527d50c6356ccf711881dd9d35295699eb4e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.746Z", + "updatedAt": "2026-02-24T10:49:33.381Z", "postProcessHash": "c904c64dd99dd2f55dc77be7a3ad22f51c8d88ad617298f1a8a0b3cc1a34b2be" } } @@ -65821,19 +67045,19 @@ "2b0143f2ae89631dba556057a8e5d810817d6199870c1d1dd215837e7679434d": { "66300c130795097005f96e206099c4a867b21e50d24f41a72e5dd836642c4b52": { "zh": { - "updatedAt": "2026-02-19T02:24:09.785Z", + "updatedAt": "2026-02-24T10:49:33.404Z", "postProcessHash": "eef1cac3abe5667b7daa03cda32200fc99736ce4840dc4336f77db2d5f8069a8" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.792Z", + "updatedAt": "2026-02-24T10:49:33.413Z", "postProcessHash": "b3275ef69b92085123baf7bc9d475da57a9a38481744d2657b249b917d0b27b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.793Z", + "updatedAt": "2026-02-24T10:49:33.415Z", "postProcessHash": "130d9ea79b2b64b70cf13d50580456d030e84bd16f630fe5034b000dbb4181f3" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.742Z", + "updatedAt": "2026-02-24T10:49:33.377Z", "postProcessHash": "4758b96d1315f1e43351f5d6db9929774c16ed5f50d9b9564a59d449967a63d1" } } @@ -65841,19 +67065,19 @@ "03f774b3d68ee9301807610224d14ba38be54afe2593c842b06c80a3e2c49e49": { "6dcb2d903c090a7e1c71727213eb0e8b94ddb232ff2bbbde6f1fb0facc05fc8d": { "zh": { - "updatedAt": "2026-02-19T02:24:09.838Z", + "updatedAt": "2026-02-24T10:49:33.464Z", "postProcessHash": "1597b2c826f565e32c33a650b796175efda6646bb9ac6f910dbc4998035dcafd" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.856Z", + "updatedAt": "2026-02-24T10:49:33.473Z", "postProcessHash": "3413754876b250c20e3a64b5d3941c6ddd1879cbfdf57de1dce856bcea8deca6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.857Z", + "updatedAt": "2026-02-24T10:49:33.474Z", "postProcessHash": "62dc5970b0d005532472c03269769e58bad002a8ba9d3888383f463b9b81ddf8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.751Z", + "updatedAt": "2026-02-24T10:49:33.386Z", "postProcessHash": "4546a0ba67c1394cc4c3051997abb5e09676643ed4b60051f8b94f6438c1dc49" } } @@ -65861,19 +67085,19 @@ "4bc65c4685111b19b06e50a6a32e0a19ba83e8d95e6a262d78be8e7f467bb5e2": { "2e91d99c8bb93c041399a6dafa607c2871cddb34d9fc56bef96cddb38c101db0": { "jp": { - "updatedAt": "2026-02-19T02:24:09.838Z", + "updatedAt": "2026-02-24T10:49:33.465Z", "postProcessHash": "53cdcbccce673a701ee244399f2a01e72fdf6108bb61530eabdc6ea95b21e3fd" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.842Z", + "updatedAt": "2026-02-24T10:49:33.469Z", "postProcessHash": "c430b5e797e09e6aa653993a55cf7ce434a0273d451d6d5efebbb8d63ce929c8" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.845Z", + "updatedAt": "2026-02-24T10:49:33.472Z", "postProcessHash": "17b4d92f04c33e86f00ff3e969cc2164e8baf7e808b26563adbe5b54ee7bf567" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.753Z", + "updatedAt": "2026-02-24T10:49:33.387Z", "postProcessHash": "c86166871c16ffb2ab31d2efb67657252d6577b9bf89ebd15cae9f5233137f74" } } @@ -65881,19 +67105,19 @@ "ff86704d8bca7852ee58e1031d436612b5685f3fcc3257a7759f332880a22353": { "981e14dc3f2eb945749981a5035a4f92416b4c6316b670f7c03675795df1d080": { "jp": { - "updatedAt": "2026-02-19T02:24:09.840Z", + "updatedAt": "2026-02-24T10:49:33.466Z", "postProcessHash": "65cf275f3885b49e95a6ac1e14024ad03f95c9ce19e812a4a911079937a4409b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.840Z", + "updatedAt": "2026-02-24T10:49:33.467Z", "postProcessHash": "be56caab45e8fd2b7e250b11a5fca44bb9a84b1799621a1e00da8bc0d80e3fcb" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.844Z", + "updatedAt": "2026-02-24T10:49:33.471Z", "postProcessHash": "2b4a5f0574055c8701c027b638a9aee90377870c3382dd4d4b65a676be6660a9" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.743Z", + "updatedAt": "2026-02-24T10:49:33.378Z", "postProcessHash": "111db86bc8590248803cdd845f034a8dce73f6d3257c099cfadef0ab320de909" } } @@ -65901,19 +67125,19 @@ "68a1a6edeb522342b45f9a0e04cb0cf2a29402d04faf707b9e49f549ef65d94c": { "dc2411877008fe8d58185be8020f6dd9801a017043249680e2a90f4268031b6a": { "ru": { - "updatedAt": "2026-02-19T02:24:09.841Z", + "updatedAt": "2026-02-24T10:49:33.467Z", "postProcessHash": "2ac3afd61073b6654d818c1f6a6d99cd8e11c9905f4f37072fc8bf17508ba076" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.855Z", + "updatedAt": "2026-02-24T10:49:33.472Z", "postProcessHash": "8350f631696283fbef8ac8d95b47cf0cbdb6e0bb3a458ce5d5427f31798ca6b7" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.858Z", + "updatedAt": "2026-02-24T10:49:33.476Z", "postProcessHash": "03c6df8884b87cc6a1165a01402249fb6c6783ff1a40eb1a91bc67b58fc63df6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.747Z", + "updatedAt": "2026-02-24T10:49:33.381Z", "postProcessHash": "d528219971045ff9f54d8aa8c483a7fc61e9c6dc3bac4c74ec8c084a01b61186" } } @@ -65921,19 +67145,19 @@ "ba3ff256f63dbb67bb3ce2f5f8970705d89adefca07b49fc445dc1901724d1f7": { "13131cd18e055603f9befc3f4d7e7bec3d62c981410bf61403ee473678a1e917": { "jp": { - "updatedAt": "2026-02-19T02:24:09.842Z", + "updatedAt": "2026-02-24T10:49:33.469Z", "postProcessHash": "726e85016ecee23436e80398898f820b4891343e282ba6cb32c1cc2d5778f1d3" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.843Z", + "updatedAt": "2026-02-24T10:49:33.470Z", "postProcessHash": "48d0f057d7ff4528c482adc666e9313df85a8fb9653262eb250047371615ca2b" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.844Z", + "updatedAt": "2026-02-24T10:49:33.471Z", "postProcessHash": "2cffa30ea65482000416b982d6dbb4f3afe0f16dc1767b3c4c293a665d82a1c6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.744Z", + "updatedAt": "2026-02-24T10:49:33.379Z", "postProcessHash": "3f43681a6c8c2a2393e47bf60b39ee2a87da6b86a506afc7660aa447b37505ef" } } @@ -65941,19 +67165,19 @@ "d688d2edad7ac30bbdc587561b05d01c33f70d8a2bb83af4205cc5230813fc19": { "2d993f45ae68630f8be0ed80003b2b09620f9cdfd0fc75f3b8eb2748a5f7cd70": { "jp": { - "updatedAt": "2026-02-19T02:24:09.788Z", + "updatedAt": "2026-02-24T10:49:33.408Z", "postProcessHash": "78f8f1b0d1b86fc073ab5299819cc22d1933ca1c4e0de41cca8a3518c7362a69" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.792Z", + "updatedAt": "2026-02-24T10:49:33.412Z", "postProcessHash": "723f3604817dd79a0676e1cb96b7beaff8bf86bf2e351320b41f0e81743d7d10" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.794Z", + "updatedAt": "2026-02-24T10:49:33.416Z", "postProcessHash": "7ba1042a5f93e9f0a9d2cd89028efa32454a70faa498412793676e9f6674f06e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.746Z", + "updatedAt": "2026-02-24T10:49:33.380Z", "postProcessHash": "255d6ef08115bb9e66b073086b3da45bab9b6897c0f3dfcac47ca43db9cfdc12" } } @@ -65961,19 +67185,19 @@ "d4fadff5bb4733fccafc46e9ab20a2a2f668bd22c63c88dafb5ad0865062f06b": { "d94346904e819e06ef58999543bb79bb46b3afe54a704c507bd7c351b976f541": { "zh": { - "updatedAt": "2026-02-19T02:24:09.790Z", + "updatedAt": "2026-02-24T10:49:33.411Z", "postProcessHash": "41298b0deb8e61ccfb93cb26786d2ebaf3bb2f542c6febe55c7c28cc64190003" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.794Z", + "updatedAt": "2026-02-24T10:49:33.417Z", "postProcessHash": "1b3dac134ef62897d1d40669e4bf1d9aec81fb37d5e46406d007b816f3e2671f" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.795Z", + "updatedAt": "2026-02-24T10:49:33.417Z", "postProcessHash": "d3acb29c875e08ad16bc13f06ac3e56e7c410cc5ff274dd5ced00416f64f6c6b" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.774Z", + "updatedAt": "2026-02-24T10:49:33.398Z", "postProcessHash": "b946761fd85dc4c4629c591ce94c70a2dcba289b6189bb240475abe5253cee67" } } @@ -65981,19 +67205,19 @@ "161bd57ad388f54d657d2afb4c436fea69c298b0c1fdc07effdf10f6c8f5dd18": { "5abf98f9a8a227ad5fd66cceb7f65da0e2252d51e8ee2cd671d039d709ce5018": { "zh": { - "updatedAt": "2026-02-19T02:24:09.857Z", + "updatedAt": "2026-02-24T10:49:33.474Z", "postProcessHash": "ca3c3af62ffacfecc943c24a17b55fc6bacd135ee775a6aed9724839330e8d26" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.859Z", + "updatedAt": "2026-02-24T10:49:33.477Z", "postProcessHash": "60682f7a483cbf25750498b863bf9eb0f8d42b6703ec37cbb09adc8b44d8456b" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.860Z", + "updatedAt": "2026-02-24T10:49:33.478Z", "postProcessHash": "df0620d30f44829bb168b144580ed2804a83072f4eb5ff0b035f3c6f4f7f8fd4" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.744Z", + "updatedAt": "2026-02-24T10:49:33.378Z", "postProcessHash": "2b761c99a84239df4b94c42cf1dcf2e05f1c14ed62656c6dfd09c56a1074960e" } } @@ -66001,19 +67225,19 @@ "fd449a26450e9784a5a8b3e329c41dfc1c9989ca51f740686f03421adc9e6f36": { "854e08ea0d39f52ae5ad49def3bf2c638afb6b3a1ff4888c5abe0cfedb2e57e2": { "zh": { - "updatedAt": "2026-02-19T02:24:09.863Z", + "updatedAt": "2026-02-24T10:49:33.481Z", "postProcessHash": "e13f61b27411db40bc8aca7d9da7b13713a3427603775a99009ff1b1bee77efc" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.863Z", + "updatedAt": "2026-02-24T10:49:33.481Z", "postProcessHash": "6c8fd23f00c0a505962df1b4b370bf81267aa31bcf7bc9ea89098dea7d3ee3f8" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.864Z", + "updatedAt": "2026-02-24T10:49:33.482Z", "postProcessHash": "1ad51b9064a91446b34cf8dc8a97b6a66e12725fb5c8c41b1d1a48f0bb22403e" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.772Z", + "updatedAt": "2026-02-24T10:49:33.396Z", "postProcessHash": "c67b4ed1d29a00bea5380509959a6859cb94fd6afe8676dd63a09734ddaace05" } } @@ -66021,19 +67245,19 @@ "464b93ebbb8fc92d4c0acb2a64ba42c9c40c45c213039f37dff104b4cbb5c804": { "c08a8d18fffb8a685daafa1911cfa5a0082eb8e3df15d8b2090d8f729902b354": { "zh": { - "updatedAt": "2026-02-19T02:24:09.864Z", + "updatedAt": "2026-02-24T10:49:33.483Z", "postProcessHash": "0f71c7b977075392cab5a68e50ce303c7d6a1465ab5ef74e0e0579a215ad92a2" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.865Z", + "updatedAt": "2026-02-24T10:49:33.483Z", "postProcessHash": "da583398c7054af823e94462514cc740df1636861877a28da00197b92c30e8c6" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.866Z", + "updatedAt": "2026-02-24T10:49:33.484Z", "postProcessHash": "43fdc833a31b10ea4e7826f0ca2259639c342be10c4e25bf363d028ced40d4f6" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.755Z", + "updatedAt": "2026-02-24T10:49:33.389Z", "postProcessHash": "136a3e7ec1a4587b51bee9436a811713c807c9c796ba41340009639eaeb93865" } } @@ -66041,19 +67265,19 @@ "9e734c592c6fc38d584a0967c1fab2fbb7e17d9a1e5199c59092192c13beab2b": { "0f99cd56539aaab9a7398d1b6b766b6da7043754d658fd26cd3ff3cbe06c6930": { "ru": { - "updatedAt": "2026-02-19T02:24:09.801Z", + "updatedAt": "2026-02-24T10:49:33.423Z", "postProcessHash": "88a23c74e14bfd5224e5ad3f9ccd1c2144e3dfdd0da8187bb20ee06b56119c0f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.802Z", + "updatedAt": "2026-02-24T10:49:33.424Z", "postProcessHash": "e8e986956e66fe1db739df8240d5388db2bef14738166a2e650ac721fc649ad5" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.802Z", + "updatedAt": "2026-02-24T10:49:33.424Z", "postProcessHash": "d426ce07651b854f5e52ed588c087a091a6ac1d024f617fc363e449401854120" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.750Z", + "updatedAt": "2026-02-24T10:49:33.384Z", "postProcessHash": "2ad2c9cec411eb502a9f9a96f38189ddda5b24eb8c62329f91eb6667da3355ec" } } @@ -66075,19 +67299,19 @@ }, "c90765de4139cbbde965a15a68d7cd63862a42755609601d24a0b7fc613143b8": { "jp": { - "updatedAt": "2026-02-19T02:24:09.901Z", + "updatedAt": "2026-02-24T10:49:33.517Z", "postProcessHash": "2378bf225463194fdab7dff772e3365b9eb832e2176cda354dd776d8560655af" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.901Z", + "updatedAt": "2026-02-24T10:49:33.518Z", "postProcessHash": "b7e4d625fcf869b864d1182863cb65c9cb13b3755225359d30e079fffc82e121" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.956Z", + "updatedAt": "2026-02-24T10:49:33.578Z", "postProcessHash": "157c89b692240193bfbe9f294dce714f7a4e4cd32599d448653c55469ff9ce3f" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.971Z", + "updatedAt": "2026-02-24T10:49:33.594Z", "postProcessHash": "2486dd387a7ef00a30b1d5e0b59fd49dd4145525188123ba36d1a0046952f32f" } } @@ -66095,19 +67319,19 @@ "a0b704d4762f3c195d55430a6f2e88b017827506ced141d9e21b3aee9eebf1ed": { "4ba2de3eedaf6496c607e6d936908bfbfa3da6846916774bde2d594c15377a5a": { "ru": { - "updatedAt": "2026-02-19T02:24:09.961Z", + "updatedAt": "2026-02-24T10:49:33.583Z", "postProcessHash": "f9f77ff55d5109b507ae0ff811b3af69b528c097dcd5a0da7bcdaac9360b9601" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.961Z", + "updatedAt": "2026-02-24T10:49:33.584Z", "postProcessHash": "d68a0d1177e3978786015a31700a7d2318e262eea5352e9870810786373db84f" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.962Z", + "updatedAt": "2026-02-24T10:49:33.584Z", "postProcessHash": "fd17b9c481e591631a92a6e26b5612123344913435ca75b77975600ee1c0498c" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.979Z", + "updatedAt": "2026-02-24T10:49:33.604Z", "postProcessHash": "948fd82a08bf21c437b65d0e849b35913539c360bf604d4604f881277c26337c" } } @@ -66129,19 +67353,19 @@ }, "2717de9ccbc089eee7153ad6b5be5ef459301f22aacd8478c5d955f1690c6690": { "ru": { - "updatedAt": "2026-02-19T02:24:09.893Z", + "updatedAt": "2026-02-24T10:49:33.511Z", "postProcessHash": "04e93276c5e72bd9b2c9322149c8058ce2c84d12a665be50d489eaa2ad1f7f77" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.894Z", + "updatedAt": "2026-02-24T10:49:33.511Z", "postProcessHash": "2772f82869974677c2d997870f5d123addab30b9aad378c2396d0bb283067bf4" }, "zh": { - "updatedAt": "2026-02-19T02:24:09.898Z", + "updatedAt": "2026-02-24T10:49:33.514Z", "postProcessHash": "51ee9d323abc70e79be3d9c4f641ac21cb0c0ee34e323ebe85b16f2836633154" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.912Z", + "updatedAt": "2026-02-24T10:49:33.529Z", "postProcessHash": "de4f84c459ae21c7b8a8fbd1f767458739e4aa9ef775cb412f24a2812eff7a26" } } @@ -66149,19 +67373,19 @@ "605066a5417053fe65713ad3794b7bc634cc75cd69c90e8d55cfe6baae40124e": { "d343bf67c141b854a3d210e7cb00c5ca2d179992ef6ccdd7cc240d8268573950": { "zh": { - "updatedAt": "2026-02-19T02:24:09.923Z", + "updatedAt": "2026-02-24T10:49:33.542Z", "postProcessHash": "0a0c16cac413d14ce1dcab685cf80f229e59451f682318f72792b5b3d792d284" }, "jp": { - "updatedAt": "2026-02-19T02:24:09.924Z", + "updatedAt": "2026-02-24T10:49:33.542Z", "postProcessHash": "3fbfc838e2a4e6f78c221464375386eb8f2848cade59b5bb973f2b42275a07d0" }, "ru": { - "updatedAt": "2026-02-19T02:24:09.924Z", + "updatedAt": "2026-02-24T10:49:33.543Z", "postProcessHash": "f1c828a39e195053cb7b69ffcbd6f47ac331a453e5c34ef959c156fffa5c13b8" }, "ko": { - "updatedAt": "2026-02-19T02:24:09.914Z", + "updatedAt": "2026-02-24T10:49:33.532Z", "postProcessHash": "3b527ab243e8a507dbc799bbe1df69ee8466995f839159664400ed82d0dc255a" } } @@ -66169,19 +67393,19 @@ "99c7c21f6c4bab188fd12191f73eb07b85cb4fec40ce5079936a434d41294fd3": { "5def621e39117115257057d7e164a083f36e0a90a45bac4fb37c65ae33cb2629": { "jp": { - "updatedAt": "2026-02-19T02:24:11.658Z", + "updatedAt": "2026-02-24T10:49:35.300Z", "postProcessHash": "be52f0136798d340b2c8a1f240e1c3a9da896b994f4709a522b20488bf4ee22a" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.658Z", + "updatedAt": "2026-02-24T10:49:35.301Z", "postProcessHash": "05a6b1098e07d4629affbd45a636c37ebc4722accec22df678d0dd4a389c02f5" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.660Z", + "updatedAt": "2026-02-24T10:49:35.304Z", "postProcessHash": "fe0ff3e12482e400be4e72a721875183450a6faf7735fe0e5ee2e5136da7f5a1" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.645Z", + "updatedAt": "2026-02-24T10:49:35.289Z", "postProcessHash": "a1c6840f5557ba6dfa73f283f3ddf4c266dc9cc47a9b41bb88ef6e4bee70eefa" } } @@ -66189,19 +67413,19 @@ "7df623524fd4cf25f8368c141bd456fc775cb7ff0fa1e3350a54ea84bbc83f94": { "ee317e204f9759ec62eb82034e666f90e43d7b8344f8e8bad98a119f4ddbbc96": { "ru": { - "updatedAt": "2026-02-19T02:24:11.661Z", + "updatedAt": "2026-02-24T10:49:35.305Z", "postProcessHash": "7e90e4fe082dfdda68dd437883995bd622dd33c7f08b77bb852bde0c5197b46c" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.662Z", + "updatedAt": "2026-02-24T10:49:35.305Z", "postProcessHash": "db3767a59885e1466432081aac9a59b2a806a6f08b7f64f2b884510f83bb1c63" }, "zh": { - "updatedAt": "2026-02-19T02:24:11.662Z", + "updatedAt": "2026-02-24T10:49:35.306Z", "postProcessHash": "bd44dbffda7c99a35040a365b4a1b93f22ac48a2612ca73f0279a6109987e0df" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.615Z", + "updatedAt": "2026-02-24T10:49:35.261Z", "postProcessHash": "ef13c86f62152bf55f61a7eab0ed753eeb215d51773f4ee6b8b5465396d91e89" } } @@ -66237,19 +67461,19 @@ }, "ed3c3783e6f67791a1246ef58e2e2f51316116fd00d131edca719aad3d7fb091": { "zh": { - "updatedAt": "2026-02-19T02:24:11.696Z", + "updatedAt": "2026-02-24T10:49:35.340Z", "postProcessHash": "97aeb9e43f9b95a09db1df94b604658620cbbe125b18d9d630eb180c2216aa10" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.700Z", + "updatedAt": "2026-02-24T10:49:35.345Z", "postProcessHash": "c8afc16510a70b02612ac8e8e21e55e16726cdd520d5b5944922e42c4fed0afe" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.701Z", + "updatedAt": "2026-02-24T10:49:35.346Z", "postProcessHash": "93e4077305c28c4f635ffe705294c94e9415884cbfdf620792293e7127b9d9fd" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.774Z", + "updatedAt": "2026-02-24T10:49:35.362Z", "postProcessHash": "d294f006f4900bfd377e794c744654b3db3c310e6f32bfe96047f16e6003226f" } } @@ -66257,19 +67481,19 @@ "be41a7ef9f45da28073069ea84a1b184662992884a544dcae1863f0c5bf81c24": { "36e29e4bc1d1b87b9719e235af54bc351430b6b1bdc7e3d24129cb85be151109": { "ru": { - "updatedAt": "2026-02-19T02:24:13.066Z", + "updatedAt": "2026-02-24T10:49:36.794Z", "postProcessHash": "9edbd5fc24db712bfe7f0cb6cc248ff39a079af1423418f4a74d6eb6cd6b7c73" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.067Z", + "updatedAt": "2026-02-24T10:49:36.794Z", "postProcessHash": "3feec5de92c95ca9a52a4cd72c5b319a6d2bb260472ca46ae79289ee53d189f5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.068Z", + "updatedAt": "2026-02-24T10:49:36.795Z", "postProcessHash": "08a56ef03216617baac71cfdc509020b983c0f49b28d97fd37be3b4a6e54b35f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.076Z", + "updatedAt": "2026-02-24T10:49:36.807Z", "postProcessHash": "a067b233e8f7ebbd6264113f5d2aa374d4f933b8dab4991bdf7dbacadeb943e9" } } @@ -66291,19 +67515,19 @@ }, "f0203ed02d09cc36fc61368c6e3087f78e594837daf68c457a466d321bfa2e63": { "jp": { - "updatedAt": "2026-02-19T02:24:13.162Z", + "updatedAt": "2026-02-24T10:49:36.893Z", "postProcessHash": "1ea5da34337c427ff858b257f84b1a10703cb36ce306d3e28334782655668cb9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.165Z", + "updatedAt": "2026-02-24T10:49:36.896Z", "postProcessHash": "4a98b975f78a3279258cff219e72fdefc9e834258e5ebdd6eaf804def67654c4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.171Z", + "updatedAt": "2026-02-24T10:49:36.904Z", "postProcessHash": "4d39c4d6c0548e22652466534461997354dc1ec5be5907170311e309240e7d09" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.189Z", + "updatedAt": "2026-02-24T10:49:36.947Z", "postProcessHash": "94a51cae72e6e1bcf3db9efcb83fd234a42c7601176c118d2bd54016869a5c59" } } @@ -66311,19 +67535,19 @@ "30700750979900a8e97eedf5711d0165905a0cb08d817599cc1683d0d7747ac4": { "61f303577fccfa8874127e674ab738ee53e7606af4f07e5594b91de7f1c85fbe": { "ru": { - "updatedAt": "2026-02-19T02:24:13.095Z", + "updatedAt": "2026-02-24T10:49:36.834Z", "postProcessHash": "06e9a98093ab01f1f0096ee8905d9945a69eb944b30f5087447326c11b89c549" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.096Z", + "updatedAt": "2026-02-24T10:49:36.835Z", "postProcessHash": "c9ebb990f2148bfc4d4e95bd406f05cce9ee59255a9618667814efe83e942396" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.096Z", + "updatedAt": "2026-02-24T10:49:36.836Z", "postProcessHash": "a14668bff6d1dbac457220e6e5b36cb7534ea102df4a835152d3cb40c03b912a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.127Z", + "updatedAt": "2026-02-24T10:49:36.868Z", "postProcessHash": "81c7127590dce2db67c774d1d96a4007ce2ec595af1c8fb58066944b8ebcaeeb" } } @@ -66345,19 +67569,19 @@ }, "0063cf2c4e9e4da603fff1e72af19d4eee0c352f214bd6b2b517f9e197bf5b35": { "zh": { - "updatedAt": "2026-02-19T02:24:13.100Z", + "updatedAt": "2026-02-24T10:49:36.840Z", "postProcessHash": "80d18ed20dd9f094ad0bb333bd3ce9c321d69ab9b8f335598e1b616145bbfb0c" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.107Z", + "updatedAt": "2026-02-24T10:49:36.849Z", "postProcessHash": "17ab018b167f9f66d46f5c88949462ee3a4cef58850c8cd5015a81df0aa4474f" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.110Z", + "updatedAt": "2026-02-24T10:49:36.851Z", "postProcessHash": "070ac7982d6ff802cbc96713687e830da85ad5d42060c2b8b468d74c6ffa26a6" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.131Z", + "updatedAt": "2026-02-24T10:49:36.871Z", "postProcessHash": "c2394db3598c3a3e7db1ba63feb97e9c41ad908c8310a5d4922106cfc24bd47b" } } @@ -66365,19 +67589,19 @@ "88b309277e7d3f9403f7163201c8ed888a8ec26d9b94d2a510f3037a352b9cf6": { "0ce1834bf473a3458d010f915125889857dc061813374fbadaef70d35892da7a": { "ru": { - "updatedAt": "2026-02-19T02:24:13.097Z", + "updatedAt": "2026-02-24T10:49:36.836Z", "postProcessHash": "76249c1ba4a8337bffdab1f071f6b4abd8feab1537e7c1524076ee25013aefa3" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.098Z", + "updatedAt": "2026-02-24T10:49:36.837Z", "postProcessHash": "9b1733d2c7e8d8714e8af1f59ede92f98af67d7c9559caa06aed656956e30a19" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.098Z", + "updatedAt": "2026-02-24T10:49:36.837Z", "postProcessHash": "8b1894e8b02e93b14378528bda9402bbce7ae2191a228113364a133d208d4c8c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.117Z", + "updatedAt": "2026-02-24T10:49:36.858Z", "postProcessHash": "803b4f25dc136b64f6bc41b0a16bb26f4608b4a33d558244c37d6ba0a8c996ec" } } @@ -66385,19 +67609,19 @@ "9f4a539e0b7d3f93ba20a6f6d259c289c453d001504abd7f46d0bfa62cb10ae0": { "498186e49d79feb42c0d70c3316ff6b46bb1babc84f5551a10b12d6d04e78353": { "ru": { - "updatedAt": "2026-02-19T02:24:13.033Z", + "updatedAt": "2026-02-24T10:49:36.762Z", "postProcessHash": "4428def6c87b95231d39137ccd32e58243835c2d746c78fa2a655e9ced40b6f4" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.050Z", + "updatedAt": "2026-02-24T10:49:36.774Z", "postProcessHash": "4e715218588df663c89143ebddd282c8860ba5141fbaac3cf0221f96d39da7c4" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.056Z", + "updatedAt": "2026-02-24T10:49:36.782Z", "postProcessHash": "d46b442aae4e070ec89015a698ae3bb2f211077161ec2673eb2ffb79c35e4a78" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.129Z", + "updatedAt": "2026-02-24T10:49:36.869Z", "postProcessHash": "3f0d970883f43f7d612973075d121c93c6d14be8a8675c3c1e4c34cf72b99848" } } @@ -66405,19 +67629,19 @@ "f0ed78e93915c46ca590dd7dc5002a2141ada99ff92db1b235e04464a05b99f9": { "de483ab4930286f4feb638c253510a6eb262d6095bebcef0b30d7fbb19c0f4e7": { "zh": { - "updatedAt": "2026-02-19T02:24:13.058Z", + "updatedAt": "2026-02-24T10:49:36.784Z", "postProcessHash": "ba1fa0eedda40bd27cb557cac4f94ea4b61d3a40b336c423d04ca798cf85f178" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.060Z", + "updatedAt": "2026-02-24T10:49:36.786Z", "postProcessHash": "19aac419428b696b1ce04d74478951f86a4d96a189a13a04c7e1690a4adfcb02" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.064Z", + "updatedAt": "2026-02-24T10:49:36.792Z", "postProcessHash": "cd95c3c592b930634ea0fa7aa4d638db6ff228c4a166fe86a4be1846580b7446" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.118Z", + "updatedAt": "2026-02-24T10:49:36.858Z", "postProcessHash": "7719c87adf43c1e9b4a7c1b86cf7e11a9d79901dacefa63e74c3474b271c3df2" } } @@ -66439,19 +67663,19 @@ }, "91e36a9e3905b599c3fa60783ce383108ac18fe1f68e6c33dd4581f48489dea0": { "jp": { - "updatedAt": "2026-02-19T02:24:13.356Z", + "updatedAt": "2026-02-24T10:49:37.156Z", "postProcessHash": "11de673cdccf7e88be64093b7033407aa4e206555d0052a1250ab00342454ff4" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.363Z", + "updatedAt": "2026-02-24T10:49:37.161Z", "postProcessHash": "73265905b6673cb0142b84ceb146030972dcc7422a2fb2629cca813e8117cb55" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.365Z", + "updatedAt": "2026-02-24T10:49:37.165Z", "postProcessHash": "c41360e069189415d0f4ebdc68f6d9a053574de66eff2b7b6c48251f9182e4e7" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.371Z", + "updatedAt": "2026-02-24T10:49:37.169Z", "postProcessHash": "81d0308949dca20f8ae3bbbc9fb602906ded0d8e4b05a136c72e8d6d952e8e5d" } } @@ -66459,19 +67683,19 @@ "4468e6fb021e88b9b69ebb7e6fe21734ba9513ad4a2ab5d6270049d8aea15d23": { "df9ddc66127e68d8bb6dbe2bcc83bd391f8f30203a2e25b8f0846b16b4ba01ad": { "zh": { - "updatedAt": "2026-02-19T02:24:13.297Z", + "updatedAt": "2026-02-24T10:49:37.135Z", "postProcessHash": "729dc4173e074d50e4a0c30bc94c448829e8daa1b8424f8f959988fd6a4c6905" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.337Z", + "updatedAt": "2026-02-24T10:49:37.136Z", "postProcessHash": "299073c818c8ebd9a93d89da6530312792bbbdc644634d397efd5081a60ac336" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.337Z", + "updatedAt": "2026-02-24T10:49:37.137Z", "postProcessHash": "ecbed810e52c844bf280223e1019601e0820cbe3c22bb8b89f9a3096c4f05c1f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.372Z", + "updatedAt": "2026-02-24T10:49:37.170Z", "postProcessHash": "05d9d50fc00808cf05f51672c5ea711726bcc79d1130c0e8f87534f03698b187" } } @@ -66479,19 +67703,19 @@ "287cb4f5fcd889fb87a1044bc12801c8fd19da04aaceae3ceb1a452fbbc59cdf": { "677ff03ac297df2caf89f9a5108a44d23a30a0da12646d492665f149d9a710f7": { "ru": { - "updatedAt": "2026-02-19T02:24:13.344Z", + "updatedAt": "2026-02-24T10:49:37.141Z", "postProcessHash": "b805596fadad21ade3ddb0bbfc466d21c6b1983e65b38d5526c7a256951fadf5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.345Z", + "updatedAt": "2026-02-24T10:49:37.142Z", "postProcessHash": "f9229538a9498ece360e7618fc17c4bc99fb78660d2e72b5861aa2f0b2653e81" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.346Z", + "updatedAt": "2026-02-24T10:49:37.143Z", "postProcessHash": "e1d97060460cab4905d811ceffd46c44d6461d4134aa5826fe267a7428deed19" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.445Z", + "updatedAt": "2026-02-24T10:49:37.239Z", "postProcessHash": "b1408b7c1697baf95f0d09271eb828708388f9ecc26733e50f449e53727f619c" } } @@ -66513,19 +67737,19 @@ }, "a14641d75e8bd5664910aa97ef11d7433533e59bbd53321732150adb56ff36bd": { "jp": { - "updatedAt": "2026-02-19T02:24:13.348Z", + "updatedAt": "2026-02-24T10:49:37.146Z", "postProcessHash": "e293ca74abc15ce8d0826b61aab529ab935d6f5d03653f67ddb8f4b6af9954d1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.351Z", + "updatedAt": "2026-02-24T10:49:37.148Z", "postProcessHash": "a1fdf1516ad48a251d8004a21c07e798bb0ecc900ebba480be7cf0c39b6e481d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.409Z", + "updatedAt": "2026-02-24T10:49:37.206Z", "postProcessHash": "0889515a0958fd22fc7516b0e84e8c23d9b8abc08268667c7383fd0ef105d738" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.444Z", + "updatedAt": "2026-02-24T10:49:37.238Z", "postProcessHash": "7f9ded828c5279c7c0162e1460cc21bf038eeac1ae67fcd23d9578beaf58cd86" } } @@ -66547,19 +67771,19 @@ }, "ffbe3318616dc487e0456cc6a593b632e4cba1dad21300d8a64a1d3ec6829ae3": { "ru": { - "updatedAt": "2026-02-19T02:24:13.353Z", + "updatedAt": "2026-02-24T10:49:37.212Z", "postProcessHash": "cb7c8df271fe9e67578044cfa707c58c1d0f40e6cf36ed0f6f9cb3be0569335d" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.366Z", + "updatedAt": "2026-02-24T10:49:37.229Z", "postProcessHash": "a316d64e6dc9574136dfb368f677f081a32423e3f88eb96c8fa746d27b367b9e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.368Z", + "updatedAt": "2026-02-24T10:49:37.229Z", "postProcessHash": "dfb1ac8006b9f46b74d1bd109389e2616f3fcebbcd7f79d8ca1cc780078f5b41" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.381Z", + "updatedAt": "2026-02-24T10:49:37.240Z", "postProcessHash": "2814b43666e86901dea16b2956718a19ed6f73292a75e7eaa5ba89d087c82eb9" } } @@ -66581,19 +67805,19 @@ }, "06e9f6d4dc706c167c35727c6869d5eeac42ca959c159fddb21bf40222210159": { "zh": { - "updatedAt": "2026-02-19T02:24:13.430Z", + "updatedAt": "2026-02-24T10:49:37.227Z", "postProcessHash": "73e555c444f4025df61c79999f48cd4cdb5eb26df5b321872ad74ef6a8d2a1b5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.424Z", + "updatedAt": "2026-02-24T10:49:37.220Z", "postProcessHash": "93cf957ce722427a4af1787cc9210e7a4d4fd71d31487a6c2affbe5a9015a2f3" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.431Z", + "updatedAt": "2026-02-24T10:49:37.228Z", "postProcessHash": "781bc73b0d055d19e8f22a26ec9e0c767b1db58e212fdd50cc1ecfca8bdcb801" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.449Z", + "updatedAt": "2026-02-24T10:49:37.242Z", "postProcessHash": "2941d6f82aa5a8eb68a98fb40ed37ada2ed289a5458432a3fc224c06a1b38405" } } @@ -66629,19 +67853,19 @@ }, "36dc68c4d40130d7c8cf951d30412a6c887273c4bc9e257a4c044a7c8cb5138c": { "zh": { - "updatedAt": "2026-02-19T02:24:13.341Z", + "updatedAt": "2026-02-24T10:49:37.139Z", "postProcessHash": "c9b986a6092e8cd70923904ca7264bd421b9cc8f83e1d17f4d89bd13ab04f2c9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.343Z", + "updatedAt": "2026-02-24T10:49:37.140Z", "postProcessHash": "b648091aec4bc052730fcb3161b8fa4b2512748ac51d572d3e36e6af7ff452dc" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.351Z", + "updatedAt": "2026-02-24T10:49:37.149Z", "postProcessHash": "4587f14166805c85f550edc8ecf0351178ec4cf2693d33470a4ea882550abcfa" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.378Z", + "updatedAt": "2026-02-24T10:49:37.172Z", "postProcessHash": "da4f3f50f0cbd6b85551949e5350b22b95ba217fefab44dd63be942efb4cf257" } } @@ -66663,19 +67887,19 @@ }, "ec51e7fcf442d0da645a2e6320669c7299471f14b1dc2c2850a3108116fb23ca": { "jp": { - "updatedAt": "2026-02-19T02:24:13.452Z", + "updatedAt": "2026-02-24T10:49:37.245Z", "postProcessHash": "6f2f2c7da041f00b3279dbea307047410c06e9efc3a60bb535b62879fb27d482" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.423Z", + "updatedAt": "2026-02-24T10:49:37.220Z", "postProcessHash": "54b2f829e4806acb7b48006388cba982483bc113cede7e1c21a2d0e78d771efe" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.426Z", + "updatedAt": "2026-02-24T10:49:37.222Z", "postProcessHash": "fb7ab0d4b76414eb892183cedbbecc92b23e326e288e89027a14228344fff711" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.451Z", + "updatedAt": "2026-02-24T10:49:37.245Z", "postProcessHash": "b3a4a89ece1babe5755b5f2baabde242968df4bb3be1dee4e3873d27b552f11c" } } @@ -66697,19 +67921,19 @@ }, "4aeaa0d5f0fb2fe03b326849284b5f62bf428195da156bf7f9aea5c9702a0f27": { "zh": { - "updatedAt": "2026-02-19T02:24:13.347Z", + "updatedAt": "2026-02-24T10:49:37.144Z", "postProcessHash": "9769fb2f2d102750a318ac9319edde0e9d12f16b6a1d14dda3788f6904ded1e9" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.354Z", + "updatedAt": "2026-02-24T10:49:37.153Z", "postProcessHash": "4594525209c30471618857f432b5dc153cfc8cbc4934a4de6c5c3d8be71722fb" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.356Z", + "updatedAt": "2026-02-24T10:49:37.157Z", "postProcessHash": "e41902df33da4462b0494d7bdd63c7bf5e9b3c85beab1af4eb85aefe00bc6205" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.370Z", + "updatedAt": "2026-02-24T10:49:37.168Z", "postProcessHash": "b1465f276f294cef96b737f07d3cb135403c77ba6e5217b4c8f9463151f17144" } } @@ -66731,19 +67955,19 @@ }, "5e346d219443359f341f3283bbb0310fdcfc39b21039b075022ddbd4f1c6099c": { "zh": { - "updatedAt": "2026-02-19T02:24:13.413Z", + "updatedAt": "2026-02-24T10:49:37.209Z", "postProcessHash": "29770c9e672b5944214cd28d6ea3e43299ea23515e6acc8f511b760682d4588a" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.419Z", + "updatedAt": "2026-02-24T10:49:37.215Z", "postProcessHash": "9209e8f92c7022340d059c459eb22d98c14d142cafb983db82a1e38afec7ef9e" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.428Z", + "updatedAt": "2026-02-24T10:49:37.224Z", "postProcessHash": "2942fffccfa2df9b2964a9a5ebfcc390d49460bdf713cfa6c005bb8cb24cc293" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.450Z", + "updatedAt": "2026-02-24T10:49:37.244Z", "postProcessHash": "6eb019b49f9e615fc318fcd23fb1f356e3872f1be8b76c53b69c68861192e184" } } @@ -66765,19 +67989,19 @@ }, "a313e631d4dda498b0486577b06a6b03cf2d6950bbf3f3c1203bb78048fc4244": { "zh": { - "updatedAt": "2026-02-19T02:24:13.535Z", + "updatedAt": "2026-02-24T10:49:37.385Z", "postProcessHash": "131d3022982aead5dd15ff5d59da69ab64b8fd1925e2a3105eaaaf2ef0f5a691" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.536Z", + "updatedAt": "2026-02-24T10:49:37.386Z", "postProcessHash": "867499b88c0d8b64f9fc6cc994c0c2f836457c367c72e61eb3c395113d643c1c" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.541Z", + "updatedAt": "2026-02-24T10:49:37.389Z", "postProcessHash": "69fc0e2fe3a284441d929fc2e7c6d71b8770eb6099fe8b84962b60835270f40d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.577Z", + "updatedAt": "2026-02-24T10:49:37.488Z", "postProcessHash": "e5a63c8388adc94a8ba80e8730ef7840ca26b70300a3b56c1b2a0465495a5b68" } } @@ -66799,19 +68023,19 @@ }, "9a042dc33872ce1409fa6a82a907fb24547bbc1c3717a42ee4c0dcb71ead0f6c": { "zh": { - "updatedAt": "2026-02-19T02:24:13.540Z", + "updatedAt": "2026-02-24T10:49:37.389Z", "postProcessHash": "c50007c2cab9eae43302c011609d5d8e8eee43d1f12820acaedaa42caeda9378" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.548Z", + "updatedAt": "2026-02-24T10:49:37.395Z", "postProcessHash": "09cb8abcd471e72f04497996cead64c595b275b74ddb0e319d2b0ebb9ce3629d" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.548Z", + "updatedAt": "2026-02-24T10:49:37.397Z", "postProcessHash": "e863154ade010387a77fb65a244115f5a71bf2ac9782908636197bf1c03337a7" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.572Z", + "updatedAt": "2026-02-24T10:49:37.484Z", "postProcessHash": "00a42d6502dae9f6c22eeff384d348cc37449493199117d5278463c82ebaccc5" } } @@ -66833,19 +68057,19 @@ }, "8469afab66d736b44f2d28a8eff97ffc27a07d64a15291e3f0faefaed658a768": { "zh": { - "updatedAt": "2026-02-19T02:24:13.608Z", + "updatedAt": "2026-02-24T10:49:37.451Z", "postProcessHash": "f5b7ec985e9bee4ad0c1639c7ffcffd29592805a23532f7aa733e6c5690a2df5" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.620Z", + "updatedAt": "2026-02-24T10:49:37.456Z", "postProcessHash": "c950dbe2f5b722fe3a34d17abafb0bcdc655990dae8b890e614a9bf0f3cbd17b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.621Z", + "updatedAt": "2026-02-24T10:49:37.457Z", "postProcessHash": "5a0d1c133934d9a2d171762909024967ee3a47b8c28a5f1f89ff642a7bc6c108" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.654Z", + "updatedAt": "2026-02-24T10:49:37.489Z", "postProcessHash": "a1df5af2bc9e9bce3ad8ed2bf86876eda06bd43d7376b05764bc86ed2395095f" } } @@ -66867,19 +68091,19 @@ }, "94882845a997dd5ad6331550e3cda5bcb0082338392862325eefa135f39e110f": { "zh": { - "updatedAt": "2026-02-19T02:24:13.535Z", + "updatedAt": "2026-02-24T10:49:37.386Z", "postProcessHash": "790419e73a711d6bb385ce8968897178f544845ed55f6024ea112869a9843ceb" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.537Z", + "updatedAt": "2026-02-24T10:49:37.387Z", "postProcessHash": "711eca29befbe0832dd745cc48a496086fd958a23dab591cbf7abb1892ddcea7" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.538Z", + "updatedAt": "2026-02-24T10:49:37.387Z", "postProcessHash": "12a3d8f1519c0d97d19e5f9aa99a746972dd6c60dcbf6d92ec1c1ef3722b7c8d" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.582Z", + "updatedAt": "2026-02-24T10:49:37.492Z", "postProcessHash": "93e064bcf4c0f8a676b031691bccc1c22e35d17eb225001d9e8f7ab486c7b231" } } @@ -66901,19 +68125,19 @@ }, "42c4d229f4db2abdec977e4713929ff497bf35c84f5cc61d26c22b3b7727811f": { "jp": { - "updatedAt": "2026-02-19T02:24:13.625Z", + "updatedAt": "2026-02-24T10:49:37.390Z", "postProcessHash": "699e5e16e8e845f5c7231f0ebd25c27d687c716684d93e0b1808995469a1c198" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.633Z", + "updatedAt": "2026-02-24T10:49:37.396Z", "postProcessHash": "ce2013868c199c0bb9d1c5095f5cc5ca2daebc1637e530dcf578953a6a6ff151" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.633Z", + "updatedAt": "2026-02-24T10:49:37.397Z", "postProcessHash": "bfde83d0796ca45bf153ee0c13693ed1cc162a4748c3158d97e327a42b0b7f37" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.652Z", + "updatedAt": "2026-02-24T10:49:37.485Z", "postProcessHash": "2e58a1133e19bd846c5ca8f66930bb17827657fdd00467534593501d67a64e66" } } @@ -66921,19 +68145,19 @@ "f55ababb3bb4d9ed26142309399dbd55bc3c08ab4d9b0aa613605e989453e6e8": { "6b5c04fcbc3c9cde85be3e548acdb27424aefbc071d385fe4b5034034442808e": { "ru": { - "updatedAt": "2026-02-19T02:24:13.474Z", + "updatedAt": "2026-02-24T10:49:37.309Z", "postProcessHash": "116ef4697955d17c3842375fcbf2d05fd38906a985e174c94c26723a9c44c572" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.527Z", + "updatedAt": "2026-02-24T10:49:37.378Z", "postProcessHash": "c516af3b1002423064d70b8e60bfa8ed5b9c4500fe5cb33a4455b3383820a392" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.529Z", + "updatedAt": "2026-02-24T10:49:37.379Z", "postProcessHash": "33d5a5b956f88df6df86a5667045b3b84bcb0cd4755251e2439e723412a02f0a" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.567Z", + "updatedAt": "2026-02-24T10:49:37.480Z", "postProcessHash": "fb1c6b6638b83e92d7c2f6b76b421802aa48cf0437f3acb937e9a17192b698ee" } } @@ -66955,19 +68179,19 @@ }, "6b0c16ea41c2ce7afe060d6ad14ecbbd21a32368850b296907e43961553fedc9": { "jp": { - "updatedAt": "2026-02-19T02:24:13.621Z", + "updatedAt": "2026-02-24T10:49:37.457Z", "postProcessHash": "93a784e2f393b15af94781bd069f76fd42992669d0ff1de7233662fcb0612cda" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.641Z", + "updatedAt": "2026-02-24T10:49:37.470Z", "postProcessHash": "2025e9f6ecc014f2e26f3c667eeb38fde37256f5538b02336b681f5a6d8aecf6" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.648Z", + "updatedAt": "2026-02-24T10:49:37.478Z", "postProcessHash": "b7fca5806493b56cbdc565664e0ddaf91c68f914fa70ce17796c6f86b60dc391" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.651Z", + "updatedAt": "2026-02-24T10:49:37.483Z", "postProcessHash": "9af7912ee43fb62f6759fc8ac0f44572d5602894e6f2530299634a0ce75ab81e" } } @@ -66989,19 +68213,19 @@ }, "408bcaf98f4a1054d44845e5f0cd1637b4a4e505b3c863c568c11af0aa851050": { "jp": { - "updatedAt": "2026-02-19T02:24:13.624Z", + "updatedAt": "2026-02-24T10:49:37.459Z", "postProcessHash": "94be24254dcaaa1db0a993dec04070019f0f0a23020ccd4f8d5b4ec2ff1fd809" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.638Z", + "updatedAt": "2026-02-24T10:49:37.468Z", "postProcessHash": "bf08eedec3f45c896b81435ca1b3ad387e9400c9f6fd4edd2225d3ea4f9c028e" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.644Z", + "updatedAt": "2026-02-24T10:49:37.472Z", "postProcessHash": "b36e9d8a65d512112c029b71d16326674e89a1f06b521c60d48d1454bcc1e2f2" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.657Z", + "updatedAt": "2026-02-24T10:49:37.495Z", "postProcessHash": "8f3c9077b58f703270971d784f498be66f21a7b4964e7b819d6de2b2ea823528" } } @@ -67023,19 +68247,19 @@ }, "c442f8604c91f2fc96fb26b9524228fe0a607846d1aae0b7098d6d7fc59726f8": { "zh": { - "updatedAt": "2026-02-19T02:24:13.549Z", + "updatedAt": "2026-02-24T10:49:37.398Z", "postProcessHash": "f978de44b209a6cf539235ed61a98c5905e95130df858f721c4c80a1642bbed5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.551Z", + "updatedAt": "2026-02-24T10:49:37.399Z", "postProcessHash": "83f8bb0725bee9e20c57ac85c8be39afa11eea30ee6871195433d5d5712badbf" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.559Z", + "updatedAt": "2026-02-24T10:49:37.400Z", "postProcessHash": "1393ce67a69e8ad55d88d58434cb00701d21a5370a1bd85d1030bda881776c5b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.569Z", + "updatedAt": "2026-02-24T10:49:37.481Z", "postProcessHash": "d179c15a7f8cf8b87ca781e4213ae0be7533218cd353b6b5d82193ce2c7210af" } } @@ -67057,19 +68281,19 @@ }, "9850e71be3f6b23bb71882f117232dc483e857760f9f93469a8c71d85babc411": { "ru": { - "updatedAt": "2026-02-19T02:24:13.619Z", + "updatedAt": "2026-02-24T10:49:37.456Z", "postProcessHash": "5d742fccc62bc715dfe669151e291f8f439186440dcf6bb96420cae64ab53c14" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.632Z", + "updatedAt": "2026-02-24T10:49:37.465Z", "postProcessHash": "e41ecddaad8358d3e979ca370362ff259c835c62083b1d81c04b8070e51e2cbc" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.643Z", + "updatedAt": "2026-02-24T10:49:37.472Z", "postProcessHash": "e8ff07b94634ec77e2db7c5df6a0e53272d001cbf74567e43ca9c8dab4c14e08" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.651Z", + "updatedAt": "2026-02-24T10:49:37.484Z", "postProcessHash": "65e046d5172845f8d0d6225a8d492aebde020a4033a74480ed0183c84b11c35d" } } @@ -67091,19 +68315,19 @@ }, "36c618c44cdf2b5da7fc05dcd06bb534875399c0dc23588d96508b82c54c00f0": { "ru": { - "updatedAt": "2026-02-19T02:24:13.615Z", + "updatedAt": "2026-02-24T10:49:37.453Z", "postProcessHash": "b01befcb14639dca80d7c7248f84e07e4911c08ef4d762f2f0c78912298d09b5" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.616Z", + "updatedAt": "2026-02-24T10:49:37.454Z", "postProcessHash": "8ab1fb6b3b9a1dc1fcb541a870b2768691a5eefc4e126f0fb58f66bc4708d6ff" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.642Z", + "updatedAt": "2026-02-24T10:49:37.471Z", "postProcessHash": "27d26d7e9a859f543e68bd6c2319839258c9452097f29bba075b6aa9cb90c315" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.654Z", + "updatedAt": "2026-02-24T10:49:37.488Z", "postProcessHash": "d74df3787dc31b440e44e2530d3ed5be5a92d6fca6252b44302dc71c1c5edde3" } } @@ -67125,19 +68349,19 @@ }, "26d49aa6ddd69064cbfe4867b5f37f8d14af0653028f9ab3a78e94cb0c12cccd": { "zh": { - "updatedAt": "2026-02-19T02:24:13.625Z", + "updatedAt": "2026-02-24T10:49:37.460Z", "postProcessHash": "2391e7c9af2b5e338a8ab4115fa77c9e7d1818c95fb813aa1b63cfec60010e19" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.630Z", + "updatedAt": "2026-02-24T10:49:37.464Z", "postProcessHash": "810982e21a28a86aa0aa0b3a6373f407834ef8264b7322fe4d71b6dfbc68293f" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.644Z", + "updatedAt": "2026-02-24T10:49:37.473Z", "postProcessHash": "474858e870787011762bab7d26725e53ba06fdfd483d2d6bcc383773c594772c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.656Z", + "updatedAt": "2026-02-24T10:49:37.492Z", "postProcessHash": "95ba931abf173678a4d1e0964c3ef3edf089a8e6cbbbe4201916f344533b3ea9" } } @@ -67145,19 +68369,19 @@ "e10a1009b38d9d4cfa81929b1d74f8e18e971518fd536733d382ec21f62ad399": { "0ef65d47b67f8f93992a7d278c9a7c3e0ae3f23c875d26ac1dcb873156693ecf": { "zh": { - "updatedAt": "2026-02-19T02:24:13.530Z", + "updatedAt": "2026-02-24T10:49:37.380Z", "postProcessHash": "ce4c5de612ecd8fa0fd16760a64c68541894cc3948169f3365f7ff254bde05a1" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.531Z", + "updatedAt": "2026-02-24T10:49:37.382Z", "postProcessHash": "189e45901b7a66167772ded43b3b94233ee8fe665016ae0e01998fadd40f9646" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.532Z", + "updatedAt": "2026-02-24T10:49:37.383Z", "postProcessHash": "a0374157c3c23463612460403da4377edb0543fff48916a82390447eaa0c45bc" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.580Z", + "updatedAt": "2026-02-24T10:49:37.491Z", "postProcessHash": "67a3b0188f4b50e4db409ed584809073c6a224f4756b48ac986ec35fc90e215d" } } @@ -67165,19 +68389,19 @@ "231bfad8ce35594c0b05f2f357107a91c4189ec09b3d353a0e1b007a9eea0e76": { "24750b214a38c4c3604d6f634653903b482ee3f19d52c0907fae633cb432c1f5": { "zh": { - "updatedAt": "2026-02-19T02:24:13.531Z", + "updatedAt": "2026-02-24T10:49:37.381Z", "postProcessHash": "13090a6566df1fb5dd50f7a2d0733f52b9b4c550bfca4cecfb1c6b369a3a27a0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.534Z", + "updatedAt": "2026-02-24T10:49:37.384Z", "postProcessHash": "d3fab1dd6272da8f836615cd38936ffd0b061079d25ea73312bffe96a8c2e7a6" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.605Z", + "updatedAt": "2026-02-24T10:49:37.449Z", "postProcessHash": "130a30a9d7c9ae38bf249d2a5161b9f8109ab28ae84c2dfe098f9721a151eedf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.658Z", + "updatedAt": "2026-02-24T10:49:37.497Z", "postProcessHash": "4e28202afa4654a4152ffa577d9b4caf661eace42d88021869ba8aab54846cb2" } } @@ -67199,19 +68423,19 @@ }, "4b42adaaa29f0c9fc73d538b84b1da453030892e6692dacffe25e2b927568842": { "ru": { - "updatedAt": "2026-02-19T02:24:13.617Z", + "updatedAt": "2026-02-24T10:49:37.454Z", "postProcessHash": "37ea1536dbe880942f715f42bb9d5fe7d8cdd1bf5f9e865a3bc63388a6e46fe9" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.639Z", + "updatedAt": "2026-02-24T10:49:37.469Z", "postProcessHash": "1f75ebea05931f5e9eef761cac1c247a71d7c90a1dd3a07469869c9324aac604" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.641Z", + "updatedAt": "2026-02-24T10:49:37.471Z", "postProcessHash": "673188b71c0e295985b09a5196d733a80fd20292a2d0228e21412f828a86baa4" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.655Z", + "updatedAt": "2026-02-24T10:49:37.490Z", "postProcessHash": "244d1c24e536096518e40ea9b063c20257686ce773bbdd2cc2831713b55bfa63" } } @@ -67233,19 +68457,19 @@ }, "98b02b3fd4aa4ed552f1a9141f77dcd595dfc9a4bbbfa383396a284d09d1e01e": { "jp": { - "updatedAt": "2026-02-19T02:24:13.660Z", + "updatedAt": "2026-02-24T10:49:37.500Z", "postProcessHash": "4daa9a82a10a3e789378a8f8dc67be72d85c775ea655f09e844fdade3c23e5d1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.659Z", + "updatedAt": "2026-02-24T10:49:37.498Z", "postProcessHash": "50eccd133a864d9b90a02524bd8e2147b6be68b1b0f2aa94d49223937f754fc4" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.647Z", + "updatedAt": "2026-02-24T10:49:37.477Z", "postProcessHash": "1876b40bf0915ba79ac8474ded65dc3beaeca6162b44af26d67a3258e45048cf" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.659Z", + "updatedAt": "2026-02-24T10:49:37.499Z", "postProcessHash": "11bff7aa38e57fe810e5f052c5a71c2f38fd18822533e42b5defc343817e7a05" } } @@ -67267,19 +68491,19 @@ }, "5360a0e86fe853a52b8876f4c505407b783081d7f2efc52a45c384f0aa6cbf85": { "ru": { - "updatedAt": "2026-02-19T02:24:13.617Z", + "updatedAt": "2026-02-24T10:49:37.455Z", "postProcessHash": "978fabb77015ca651f75568426bc24684f93740343676e7458a9844cec68900a" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.634Z", + "updatedAt": "2026-02-24T10:49:37.467Z", "postProcessHash": "17d284b6aede3fe6f4d1155810bcadb4c83ee9013137127298d00da4be00960e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.639Z", + "updatedAt": "2026-02-24T10:49:37.469Z", "postProcessHash": "c3ff10e9d293cfba0f3138ebbe0ddc6691a400ce72d9d436a7adcd12040ffd08" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.658Z", + "updatedAt": "2026-02-24T10:49:37.496Z", "postProcessHash": "d9b1d0233de1a6a8f916cc547e7bae7c5931d9aa78e3e3fbfb02369bb798731c" } } @@ -67301,19 +68525,19 @@ }, "61e1868acb1ff9c800b9a025c30a32536f6578e38046d5ed0a5e2dbaeb3ca0f1": { "ru": { - "updatedAt": "2026-02-19T02:24:13.638Z", + "updatedAt": "2026-02-24T10:49:37.467Z", "postProcessHash": "dfd026526b7cc5fc7af969309f985bba9de53263777d16ab6bf9d7806b4d2f22" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.646Z", + "updatedAt": "2026-02-24T10:49:37.474Z", "postProcessHash": "c6f9dcb7cc974762ef3121b325d8aba0bf4e4aa1ecad2c9aab987536ac022cb2" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.647Z", + "updatedAt": "2026-02-24T10:49:37.474Z", "postProcessHash": "9fe79c126c9e7f58436753179cbb10907287ca9d82b7f84a3721b0f0addb686f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.655Z", + "updatedAt": "2026-02-24T10:49:37.490Z", "postProcessHash": "9298afb7c0c85c5f097aeea5af30c5b2bea93372e10cc08d726b86995326121a" } } @@ -67321,19 +68545,19 @@ "15fbffc1aa469a5ed41b1304ade1bad9c148140a6498d4dc69daaf7c6e9cd1d2": { "fa92180bb232d60fa94a585ac765c1107a92bcc1c90d1d1f19e555979268b3a2": { "ru": { - "updatedAt": "2026-02-19T02:24:13.533Z", + "updatedAt": "2026-02-24T10:49:37.383Z", "postProcessHash": "171956db00dcb4c335362fb07b201e003658e1455dbbfad54def5d329e730964" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.533Z", + "updatedAt": "2026-02-24T10:49:37.384Z", "postProcessHash": "f5ab6cf7403ffdf37897d47cb3739a15065915e1fb8df1645e4c0798730009c8" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.606Z", + "updatedAt": "2026-02-24T10:49:37.450Z", "postProcessHash": "3e83456580e51e6e0994a235c848d96d045aa85502602ba9c02b6a5fdc86f49b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.657Z", + "updatedAt": "2026-02-24T10:49:37.494Z", "postProcessHash": "7d8a6036b41281c8f88390bfd07e4b3a2f390c8775f53955ed54bcd6e1190ff3" } } @@ -67341,19 +68565,19 @@ "238ef3241a980c16187440ec532243a895c84647673481432018201209e65cee": { "3250690c0f33ffbf80782f5481d0d386b41da25ec0e130fe45f906ee569c48f1": { "ru": { - "updatedAt": "2026-02-19T02:24:13.627Z", + "updatedAt": "2026-02-24T10:49:37.461Z", "postProcessHash": "48fb30f5ca07c176a35a882b566e791d89501cbc63911eb7765224603daf7668" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.628Z", + "updatedAt": "2026-02-24T10:49:37.462Z", "postProcessHash": "eca08e06957abafafd6d68278751b8f42b5041638ea620b011777699d56c51c0" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.629Z", + "updatedAt": "2026-02-24T10:49:37.463Z", "postProcessHash": "7ecca716eaf7ea6477e21a2f4229821c27b89d8790b053967d59df70a31f2a5c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.650Z", + "updatedAt": "2026-02-24T10:49:37.482Z", "postProcessHash": "df584185b9f691161692d85a5f32e1f5e90081a74d439a3d9968c956509a98ee" } } @@ -67361,19 +68585,19 @@ "62d301be5c9b7c2c3a8fb85b273c07d20d07b855f2e9daf1879780952533505c": { "a5bbdab6cd9a71c6d02594424a3606a05d0ba362256db3b1994e37b6ea020e84": { "ru": { - "updatedAt": "2026-02-19T02:24:13.541Z", + "updatedAt": "2026-02-24T10:49:37.390Z", "postProcessHash": "957b7fce99e43c92c1ac9057bdb920dc80128f00eed28b0a8fdcf1bbde1f25b2" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.542Z", + "updatedAt": "2026-02-24T10:49:37.391Z", "postProcessHash": "46cdfaa03d4d7feb0850921c95d95e0b2c55b92d955791166b8e7abcb335e560" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.543Z", + "updatedAt": "2026-02-24T10:49:37.392Z", "postProcessHash": "6bba0ad7b8c605a2713e45d785fe7b7d787c74868b235656bbd6d971dd927ec8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.566Z", + "updatedAt": "2026-02-24T10:49:37.479Z", "postProcessHash": "4b94f6abd3e5da3bfd2c5d62bc3d0e1905ce1ade5c845e44d50458601b07c8d1" } } @@ -67395,19 +68619,19 @@ }, "822d996c3151913bf2730fb9a1f6dbb2a2f315020d683d34a8bc521a70c78642": { "zh": { - "updatedAt": "2026-02-19T02:24:13.539Z", + "updatedAt": "2026-02-24T10:49:37.388Z", "postProcessHash": "69e7bf32b6844c1a05fcd051eef189b14eeba74e02356fd47b646a0575bac1e3" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.562Z", + "updatedAt": "2026-02-24T10:49:37.475Z", "postProcessHash": "2a70efaffc9f2d6989da40c04f8957c7b277080122a10e674678e6925c7304a0" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.564Z", + "updatedAt": "2026-02-24T10:49:37.476Z", "postProcessHash": "5d98e68d68e988d72b1d16d03a04c1c68c2937b6b2d77119e472ed0a304fbd6c" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.575Z", + "updatedAt": "2026-02-24T10:49:37.487Z", "postProcessHash": "5f9a69c6f9f9c12fd11c6441a448b5688cefe3adbd3af9498705943bae038024" } } @@ -67415,19 +68639,19 @@ "d996b2d253927aca1dfb5915d1c786245387f5eaae65c753917a0269ff6a848d": { "94f91dc369fb981211a34be076d64c624ff059bd3812b9822c2db4905c1d8d56": { "ru": { - "updatedAt": "2026-02-19T02:24:13.628Z", + "updatedAt": "2026-02-24T10:49:37.462Z", "postProcessHash": "d3318843415514bf2a6cde3e340ebce1391ef6e614b480c44444dfa49696b79b" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.629Z", + "updatedAt": "2026-02-24T10:49:37.463Z", "postProcessHash": "de7d99045a6ae5c7b5f32885f5fb986b9396a90df48bbdbbfcf5f46176235104" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.630Z", + "updatedAt": "2026-02-24T10:49:37.464Z", "postProcessHash": "d46c1b25933706b577412a4e7517fe13b89e20bf830a45d12c6b8e69e08fd13e" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.652Z", + "updatedAt": "2026-02-24T10:49:37.485Z", "postProcessHash": "fed5d4fc7f9c1b5cac6235b5b3b7eec314693b47a5049b5f1d9ca509243b6f64" } } @@ -67449,19 +68673,19 @@ }, "85b568bdec4d78d44b5228e50d188ca66b340f86dfd1a679982be5562c81f769": { "jp": { - "updatedAt": "2026-02-19T02:24:13.549Z", + "updatedAt": "2026-02-24T10:49:37.398Z", "postProcessHash": "eaaf79e231560bd524a64d10a744e5940230d2e75f8fc3971fe803454c61db19" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.558Z", + "updatedAt": "2026-02-24T10:49:37.400Z", "postProcessHash": "e868111a36a209dcaec46abbb3f943abd5c50d77399c3bce7dc1306defb244a0" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.561Z", + "updatedAt": "2026-02-24T10:49:37.401Z", "postProcessHash": "dfe6202d9bee2b22f5b6893441e1443153e74db600af0e7615d84b59110ac7ca" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.571Z", + "updatedAt": "2026-02-24T10:49:37.483Z", "postProcessHash": "a9d988ea48bf3aa3eac27d5f57690f9f581efe88cb215fd523e81d5abe50c86a" } } @@ -67469,19 +68693,19 @@ "bb5918ae22eb2b76e227199ae69f82be69ab96dca6c8fcef2efe5d5dcb00d4ae": { "3f9bbe21c9983bfe77353bfc92a48a8ca44520398e05f4c6909752ea178929fe": { "ru": { - "updatedAt": "2026-02-19T02:24:13.544Z", + "updatedAt": "2026-02-24T10:49:37.392Z", "postProcessHash": "3543b5557a9bd94334f0ad6a8d643f727834ca17cb85a447b86644db28413fa9" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.544Z", + "updatedAt": "2026-02-24T10:49:37.393Z", "postProcessHash": "0538bd7d2aabf507f3fdec4d18d752aa22a8ac04d4f41dd11feb0b04ed570b10" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.545Z", + "updatedAt": "2026-02-24T10:49:37.393Z", "postProcessHash": "41da4233ad9f9d6d7bad097b29b223a17bd3381d0edae08c5de466c3f0d77756" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.576Z", + "updatedAt": "2026-02-24T10:49:37.487Z", "postProcessHash": "19264b689fa4ecffa7de305ec0574aecee60519f7f1d5a8f00faca18a5906982" } } @@ -67503,19 +68727,19 @@ }, "b74cbd7f1d3159c90e06b009c73bdde3b383ff359440d6febca847d7e1b3719b": { "zh": { - "updatedAt": "2026-02-19T02:24:13.622Z", + "updatedAt": "2026-02-24T10:49:37.458Z", "postProcessHash": "d2a8a485f1d664ad73cc09bf36c7b683d674f3f285972d5bfcbd4b6602818b75" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.623Z", + "updatedAt": "2026-02-24T10:49:37.459Z", "postProcessHash": "ab682b7ad2934532e1d6626a72cd63fe673f9e16ba7787d9f10bb5bc4aa49ea9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.626Z", + "updatedAt": "2026-02-24T10:49:37.461Z", "postProcessHash": "ff733e999ee998630cf307ff7e6a712fc5745f2159bfff50a6a93c21fca713c8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.653Z", + "updatedAt": "2026-02-24T10:49:37.486Z", "postProcessHash": "ba13486747cdd29abcf886c50be63b6a1733c20b6de7cd588545d97d6e471130" } } @@ -67523,19 +68747,19 @@ "6ce07531879623dcea22c214d36309f893c8d35c562c1d25bc7c07d81020e404": { "c3cce027bea236190d27cd6975195945bb06d194d95a3419a1df934fbc568f6c": { "jp": { - "updatedAt": "2026-02-19T02:24:13.545Z", + "updatedAt": "2026-02-24T10:49:37.394Z", "postProcessHash": "1f4e2c876ba7f3aa7f70e4217012d0fa4303360a32e53e483f8fd6b31d8a7ad1" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.546Z", + "updatedAt": "2026-02-24T10:49:37.394Z", "postProcessHash": "d6783e9b084d02096571d966086931ebf36e0092a5878f43a06656d4d552a1d9" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.547Z", + "updatedAt": "2026-02-24T10:49:37.395Z", "postProcessHash": "eb9afef169435113bc220b9261ee8d2e11ca725adbe7f291b5c072223d283594" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.583Z", + "updatedAt": "2026-02-24T10:49:37.494Z", "postProcessHash": "31d4e25427046d1eef370449bee761d27af218e7f1e1546399aab02911ee3c1a" } } @@ -67557,19 +68781,19 @@ }, "5bcbccd20760c0a297403938fbd156f694ba548cc39c7e6a13baf37e8eaa9e15": { "ru": { - "updatedAt": "2026-02-19T02:24:13.674Z", + "updatedAt": "2026-02-24T10:49:37.572Z", "postProcessHash": "cac0e553996209e199fa687e2d9b97cde0a4fb8d6710aaaed36410831b795502" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.717Z", + "updatedAt": "2026-02-24T10:49:37.574Z", "postProcessHash": "e1da4f2a2fde1b1c5ba773303af22a73c7a78ef8398f868ffb148ae587a3a2fe" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.719Z", + "updatedAt": "2026-02-24T10:49:37.576Z", "postProcessHash": "88a2e34d08cd6c0b19038b088cf6f56da9f76bbaace1529b42aec084034b9898" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.730Z", + "updatedAt": "2026-02-24T10:49:37.588Z", "postProcessHash": "e795d6960c8b9cf7e139d5fc1260700aa454297fe0e3b21ca6d8a401874ec1d0" } } @@ -67591,19 +68815,19 @@ }, "582923e90a8013b5c6ac8295643a1b9ef447c60d5bbfc5384d335ceaa612991d": { "zh": { - "updatedAt": "2026-02-19T02:24:13.676Z", + "updatedAt": "2026-02-24T10:49:37.573Z", "postProcessHash": "1c02070386c81b7e66c1d5f3251ed51329275d3d72c68c2d171730a2adbf2d69" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.720Z", + "updatedAt": "2026-02-24T10:49:37.578Z", "postProcessHash": "98cd0e4a919cca11abd6464fc0d59982c2651d7d7bcc010ce9edb78902d89e84" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.723Z", + "updatedAt": "2026-02-24T10:49:37.579Z", "postProcessHash": "4ddaaecadd188bea0a9ef155f3051a8139f59d55a05bea811e373496ad9c06ec" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.725Z", + "updatedAt": "2026-02-24T10:49:37.580Z", "postProcessHash": "faed63ca848b423f2d098af905d9075a3d7b53f5e22fed9e01e37392f3329619" } } @@ -67625,19 +68849,19 @@ }, "2ca67416023311bf1ba93063c4526464493b62d12eff5d1bb00c54227a9d22e2": { "zh": { - "updatedAt": "2026-02-19T02:24:13.673Z", + "updatedAt": "2026-02-24T10:49:37.571Z", "postProcessHash": "b436699528b13765c4db2fe4dd96f1249edd65918f13f8b1a8ac4d083e104a74" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.678Z", + "updatedAt": "2026-02-24T10:49:37.573Z", "postProcessHash": "85e5a9a5d9777f623df3994442f80fac2856850827c0e0f2dca35b2b29abb673" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.718Z", + "updatedAt": "2026-02-24T10:49:37.574Z", "postProcessHash": "0eee076394503c57fd386332986c2c880025c889e8b4b26af0e66d6d37123ca7" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.729Z", + "updatedAt": "2026-02-24T10:49:37.585Z", "postProcessHash": "e9b1630f43320b8dccd309920ba0c6af7989eea8f9814d16ba32ef593eea957b" } } @@ -67645,19 +68869,19 @@ "a60e8e1819a1db7472f82fc26172d87e8df26f9013e0a7aaf26ccfdd4be72850": { "38c435040eaac3147a4b165e8f2e2eea100525b71769ee62c7de7604c2c7decd": { "ru": { - "updatedAt": "2026-02-19T02:24:13.668Z", + "updatedAt": "2026-02-24T10:49:37.515Z", "postProcessHash": "c4f8113f59001f7a45725bc47fce423bff9f21d0494f96e275ab0a5f43dedfd5" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.669Z", + "updatedAt": "2026-02-24T10:49:37.569Z", "postProcessHash": "47e2848fd38ff48cc18733c27280150f462241895c06efa28e2edd9418a1c66c" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.671Z", + "updatedAt": "2026-02-24T10:49:37.571Z", "postProcessHash": "2074c19b487f5722125de6b6f435a4663b06180b8e5003ddbae6e6b5b5bf19c2" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.727Z", + "updatedAt": "2026-02-24T10:49:37.581Z", "postProcessHash": "1814d5ef4d7c015bda152f3a69e542c9d10c567769fdb0398d8a31c89ccd7497" } } @@ -67665,19 +68889,19 @@ "b603731797a9ceaa0da3b93a5ab89802e9d2e8ab02eca089ed957d9c6ae3a493": { "f62a91e91d0291db670a757d9d47f1081f432946a2f078ba78b7d71169cfbba0": { "ru": { - "updatedAt": "2026-02-19T02:24:13.669Z", + "updatedAt": "2026-02-24T10:49:37.569Z", "postProcessHash": "9bcf755ecf1f569b784c30821e273db8a876260e4249f86d20cbb441309d0acc" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.670Z", + "updatedAt": "2026-02-24T10:49:37.570Z", "postProcessHash": "f796bb1201be5e805e5d06b30739cd40f1e269615819d5504aeb6dc4fb7bdfce" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.671Z", + "updatedAt": "2026-02-24T10:49:37.571Z", "postProcessHash": "64a91cb128709fc8d803a1713cfddde87e78869510902b0461b67bd948531e35" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.730Z", + "updatedAt": "2026-02-24T10:49:37.589Z", "postProcessHash": "767b7c932bce9d5550f95a1c971d6b72831484258d5f66c0f9786432282e1597" } } @@ -67699,19 +68923,19 @@ }, "f643fec27383195641cb86dffc5892d1003bc4f6cab56c0e9eb11fde929abeb1": { "ru": { - "updatedAt": "2026-02-19T02:24:13.637Z", + "updatedAt": "2026-02-24T10:49:37.541Z", "postProcessHash": "e98a935409198fe9fb4fbb0349bc466ccdd5917955f2fe9d5052ff796411480b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.684Z", + "updatedAt": "2026-02-24T10:49:37.542Z", "postProcessHash": "a11dc648e627138f9abadad315d27e93df0c7bedddc01afb033032243809ad5e" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.694Z", + "updatedAt": "2026-02-24T10:49:37.553Z", "postProcessHash": "6bf31ecaff7cffe192393d730cc7066a64fa0129d61887e6be62cd97c9ad4fd8" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.700Z", + "updatedAt": "2026-02-24T10:49:37.561Z", "postProcessHash": "02d898b9f21f07dda9088985b576f3cebc5e02a3d0f8d615cdfe767a3f250ce8" } } @@ -67733,19 +68957,19 @@ }, "30284aa48cc9552c1b5675298c389f02c19fd3865a293a5550b21bea063fd909": { "zh": { - "updatedAt": "2026-02-19T02:24:13.718Z", + "updatedAt": "2026-02-24T10:49:37.575Z", "postProcessHash": "f6cc5b026fcbaa426366fef77dae602bd7624ab2af838eaf39bde90256ccf713" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.719Z", + "updatedAt": "2026-02-24T10:49:37.576Z", "postProcessHash": "c9e7820f53cc132f2ee27b46d0e4cb46f770a359e5ef1472188e87b128296746" }, "ru": { - "updatedAt": "2026-02-19T02:24:13.720Z", + "updatedAt": "2026-02-24T10:49:37.577Z", "postProcessHash": "e949095cc3a9ef1eae0489ad2958009f4462f5a00247492d164658981c7e2bde" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.729Z", + "updatedAt": "2026-02-24T10:49:37.587Z", "postProcessHash": "399753ddf6b0ec596db45138aa33a108a0aadfd1182d9a52f2b7e9b9d7f0c79e" } } @@ -67767,19 +68991,19 @@ }, "7a8378a5cfbcda5ce3289928be6154a1fb3ec5f57f8c68bdd844411f323d8d51": { "ru": { - "updatedAt": "2026-02-19T02:24:13.609Z", + "updatedAt": "2026-02-24T10:49:37.452Z", "postProcessHash": "0363d13595e05512d5191c74234f2ef93e1522d86c1fd7aa71d58eb3e34c9646" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.611Z", + "updatedAt": "2026-02-24T10:49:37.452Z", "postProcessHash": "c5cee66d927b01abf84255f416510ddd7ee6c0ddab1f315d2b946f665fe3b787" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.632Z", + "updatedAt": "2026-02-24T10:49:37.466Z", "postProcessHash": "59d4901a560871737d92de76537df0e1c1cb340d3bffe2601c5719a601d2f85b" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.711Z", + "updatedAt": "2026-02-24T10:49:37.493Z", "postProcessHash": "94751b245e65bdcee7d222548e00758ba7b6474acbc9b3d097acb3003421170c" } } @@ -67801,19 +69025,19 @@ }, "8818e6cd232df9d48c1e275ac5f3b449f44122bc3eae265430bbfebf1d52d6d4": { "ru": { - "updatedAt": "2026-02-19T02:24:13.688Z", + "updatedAt": "2026-02-24T10:49:37.547Z", "postProcessHash": "441704a50183428b8871423a704bb533282e8be2e533f8d460cac06ca3d4a4d9" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.715Z", + "updatedAt": "2026-02-24T10:49:37.568Z", "postProcessHash": "91799c1ee5d577407691da50cd55f3a64bf9d889c9bbf8360be2a89774b9b35b" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.695Z", + "updatedAt": "2026-02-24T10:49:37.554Z", "postProcessHash": "17e872fcb605331c1e6ed93cdd559640bf4c2ee70d9206664766b2e4ca340cde" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.710Z", + "updatedAt": "2026-02-24T10:49:37.567Z", "postProcessHash": "cf49fef56ba0e3303f57d0135968757bacc28a7055c6bc62f6c440d294787692" } } @@ -67821,19 +69045,19 @@ "bfb58d5cbdc24f6053ae835b2d24696f7b72c27d2af3c4d62b32ed0b6d1e1e7b": { "e5e8a9802af1a2365a9bf0cad2a867635f116b1d90b0ad7bf9630130e3271916": { "ru": { - "updatedAt": "2026-02-19T02:24:13.133Z", + "updatedAt": "2026-02-24T10:49:36.954Z", "postProcessHash": "0a0aa38a9c9d12bf9a1f96af3cf84199d9c05b6ae1982db1e0f13764ba942831" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.134Z", + "updatedAt": "2026-02-24T10:49:36.955Z", "postProcessHash": "90e8272e87180fc603790bf45a4d9bc7636cf4226cec81f49bddc5255d7ae7ee" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.135Z", + "updatedAt": "2026-02-24T10:49:36.956Z", "postProcessHash": "5305ff47dcc52521f5c70fda6374b2a0f166e9db4145f348208c21da685b512f" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.263Z", + "updatedAt": "2026-02-24T10:49:37.049Z", "postProcessHash": "91629d7282d36a558b80eb2b142b3685843798b95a267a3067de63a5490d3f90" } } @@ -67856,24 +69080,42 @@ "updatedAt": "2026-02-19T02:24:13.263Z", "postProcessHash": "d6aa2e0f22b62708af3930ac15bd8f5dde6559e575c9de5ebe00558f8e41726e" } + }, + "2ce36c1203a6698a525776bf2066c89d8932d1253cf4056f8a4d6df3bee1c61b": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.058Z", + "postProcessHash": "bcdcc7e426e0cc13b56f84a599107b6d66cadff7edc6f1c7c3ef08969fe36135" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.059Z", + "postProcessHash": "6c4e9001224d5d1751a3892f61a4c0dc85dbcf0773cf25b184d766c179b5475e" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.060Z", + "postProcessHash": "60a38f98551553bde6473fcad8198c629ca59dabb3712e723c5997113f02fb06" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.061Z", + "postProcessHash": "98c846484c94c93ba052b28ce2c5bdfe58f9384a025938109f571b4840fefc9c" + } } }, "627d1cb5885920d04d9e3a368c1cf0382a38645e3d49617f63652ce9db4041b4": { "6714741bd7c0b2ab970322e7e7ca6377ebe1951b009fd4e2563bdccb67ae0cc4": { "ru": { - "updatedAt": "2026-02-19T02:24:10.647Z", + "updatedAt": "2026-02-24T10:49:34.282Z", "postProcessHash": "82b1e0986d55b7106a48b178e52aea29b55c92b199cec64b64245c241da5cac7" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.648Z", + "updatedAt": "2026-02-24T10:49:34.283Z", "postProcessHash": "5405b6dcb6deb58c3d8376cbbcf8698132ad6d07099704f40f6c3f4cc16afc99" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.649Z", + "updatedAt": "2026-02-24T10:49:34.284Z", "postProcessHash": "c531d16fd86a19b00dc2926a9f3af6199fbef481f6111d77d3c33d47d4832e0e" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.703Z", + "updatedAt": "2026-02-24T10:49:34.291Z", "postProcessHash": "80dc8f9911d0302ec65010b743524e6205815f28fbd332f2644c5abfe9c51954" } } @@ -67881,19 +69123,19 @@ "5dbc32193aa02c206de497d80186374773c5e285bb49062f5b70024f060aea12": { "3055605dda30adeaf51ed0caa8aa64874da7caf42a38da2235cd76903e8f0e2a": { "ru": { - "updatedAt": "2026-02-19T02:24:10.816Z", + "updatedAt": "2026-02-24T10:49:34.482Z", "postProcessHash": "6aa17e8b66378ec4d772c5db6211a57a2fe4675271b1815d46ff605d35ed3791" }, "jp": { - "updatedAt": "2026-02-19T02:24:10.817Z", + "updatedAt": "2026-02-24T10:49:34.483Z", "postProcessHash": "baa2bf406aa7d9d04e42636380fc7669b7707b55f6d9aadad05257f26fd992a8" }, "zh": { - "updatedAt": "2026-02-19T02:24:10.817Z", + "updatedAt": "2026-02-24T10:49:34.483Z", "postProcessHash": "56c5077e01ad9b010f22ca42010648538c55ae8a3e63aef9074661dee879cc80" }, "ko": { - "updatedAt": "2026-02-19T02:24:10.822Z", + "updatedAt": "2026-02-24T10:49:34.487Z", "postProcessHash": "7e9af35d2a07205b78bcafe4c453ec91ee6c8ef92aecb0c59a886446050f030b" } } @@ -67901,19 +69143,19 @@ "fc2849983fec7138ff6f01234ecf0261a6086f936c10580d0064b43ed01ec1fd": { "9d869229aa692546cd48d19370594bc3538cc7e0186668b78bbe5267483d6090": { "ru": { - "updatedAt": "2026-02-19T02:24:13.667Z", + "updatedAt": "2026-02-24T10:49:37.514Z", "postProcessHash": "0d6f4b138369f7d1df5cfd409e2f05c9f9f221176298bb8dc125135dbeb38497" }, "zh": { - "updatedAt": "2026-02-19T02:24:13.668Z", + "updatedAt": "2026-02-24T10:49:37.515Z", "postProcessHash": "9dee0df2265f50afee8af8d73459c119a7bd13c2446b3757861fcd178f59ffad" }, "jp": { - "updatedAt": "2026-02-19T02:24:13.671Z", + "updatedAt": "2026-02-24T10:49:37.522Z", "postProcessHash": "231dae8e36f053c627d591a6ab80e523e6695ed209ab65382df154a4336ffb92" }, "ko": { - "updatedAt": "2026-02-19T02:24:13.701Z", + "updatedAt": "2026-02-24T10:49:37.583Z", "postProcessHash": "edcb94465f6067b97dbc3214d209b16b5d77d129e082165ab7e6cb82e0624a5d" } } @@ -67921,22 +69163,702 @@ "0700401f74b1332401714e66d250491b91323f6d7a4cbbe80af81edd8bc93547": { "cc6610b90bd61bc2d58463fcb5cca789f167c4f500445b9c000724125836b3d6": { "zh": { - "updatedAt": "2026-02-19T02:24:11.717Z", + "updatedAt": "2026-02-24T10:49:35.367Z", "postProcessHash": "46a17303eb4886feaf7fb285404e47d0914241867b1686f030938397add09ec4" }, "jp": { - "updatedAt": "2026-02-19T02:24:11.718Z", + "updatedAt": "2026-02-24T10:49:35.368Z", "postProcessHash": "09a77c72a3ab6d258e3add062dc4e564c41a1e960808f9ad2cf590075122098f" }, "ru": { - "updatedAt": "2026-02-19T02:24:11.718Z", + "updatedAt": "2026-02-24T10:49:35.368Z", "postProcessHash": "d46a5bd27458256431a7743c2d3cd8d7b6aded1307129e2e3bbda01d5dc76c44" }, "ko": { - "updatedAt": "2026-02-19T02:24:11.719Z", + "updatedAt": "2026-02-24T10:49:35.369Z", "postProcessHash": "63752fbc296c4441af9f06d0ce493b840544ba72bcffd085ee8f9f120a461112" } } + }, + "994356e2c0c69192721add62740fcf0cd6b197f0981e5ae55c30f9476fd93456": { + "dd9eca516d8d150fdfb6a51d131d6f1e57cfa47acf7abcee70f9e77b2f60922f": { + "ko": { + "updatedAt": "2026-02-24T10:49:36.681Z", + "postProcessHash": "778f47be294c4793d70d3b945153c4ea61bd6369d7f7f1b061c554280cd4c275" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:36.682Z", + "postProcessHash": "0d65dd09f09c75ba2b7f69743f1be0c51dff684a41e009476c82800510bd2314" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:36.682Z", + "postProcessHash": "1a635826ecca6d116a815bbc27ea371ae9c909eee85db74b982eb568be656ae6" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:36.683Z", + "postProcessHash": "34a89f1f735ae973442a597ae63e81190d6b003c21f3d32e4855626e56483957" + } + } + }, + "d85d65ab2fcb4681f207160e3dc4bf4063ca258461da549515483d1db1c5f8a6": { + "017f574127f909641a3e7c014420c6954edb618ef3d438854515fd0f5dd1e298": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.108Z", + "postProcessHash": "6c629899e6563a179a946a76d3080fc7591b76028d28c64908617e464d3fdbc3" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.110Z", + "postProcessHash": "612d2b6d43ea19dcb2247e71b21d902a459f81caed0160cd4aa27b58aba7a1f7" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.110Z", + "postProcessHash": "2ae8459a89f533f52077935ebf208d1e59a72687681ab09bbe8dc2f00cc7af9a" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.111Z", + "postProcessHash": "458b3e607b9499ebc8404c062237da5f96d1c49d3146e4b9a95d2f2594db796c" + } + } + }, + "f56b08b096e9bb94553a4958aa96e90d53b8d0ede4fa349f3ee28fc29d5be6dd": { + "bb031e2d05b305b2261057e255af00642437862a0ef708ba397719a87b6a33e7": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.112Z", + "postProcessHash": "227a469cbef4c788602ff6d7d206cb2764a4c08ff402ab4212948b8289a1ee6c" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.112Z", + "postProcessHash": "a0131584149adccbf9e109648ea8244c1020a0641184a68ee57ea557f60ed038" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.113Z", + "postProcessHash": "6af2237f66b8b9747c0ff57ea15b6c619e1f3ec607f97c6377782e0ded236b8c" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.114Z", + "postProcessHash": "dadb8eacf2c2d91b3e5462a3131af8d04cec83502f2a585a682af5399b9887e3" + } + } + }, + "31bd1d207fa644a6c5eab6b7b49cba7eb75af37646de29eba5c1e5112d947e96": { + "4ef385db95bf4e51625cebe44fd2bc47625890a8288cb172038671ebe2852be5": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.177Z", + "postProcessHash": "f5abdbe88a5b65a3d89a520d04e177ca6d5067be35ed8247ff0ffcfb04540856" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.178Z", + "postProcessHash": "0a558d34f34afefdebf789e1d9b38c043c7fe54dce4bdbadb8df77e3a8d4f498" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.179Z", + "postProcessHash": "eb1564f9f372be03a573ed8ef24bc6b705a6249f82b40806874958cd9ca25f5a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.179Z", + "postProcessHash": "eed85abcc9983137e33d9b1dbebf2470b2322e3e1ab2de4e1294aab5d2fbf60b" + } + } + }, + "e860e4e946230a90b0d9b0d367fa01d1aa684b85d1286d163cf7861cc58bf4cb": { + "a5134319e705b1c282132840c7531ef3e7a2278e37bf1b5b058401503abbb18f": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.178Z", + "postProcessHash": "1af08b7c252ecfdea1d4c9a464d84c342df448255cf332e67addc1622f3ddf02" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.180Z", + "postProcessHash": "e90099cdcf064f8649fb81b77394386ca71f4605e135ade186ec8bc6a1f4dc5b" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.180Z", + "postProcessHash": "3ca39f98b4f0d1b4aa86e64626ebb9a94440dc32b517ad54955b93351bb5b964" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.181Z", + "postProcessHash": "dc412cee4ab402fa99f173a1694937d94f57b0608a45f7eb664a28d4ec155f26" + } + } + }, + "3474bfaeeb848ec94fa48acf067eb855a06492ab920034f734e578383c363b60": { + "991e50e50ab9d0976cf302ed4faa18bdaeb0cac0624a483b9831919e954d81f2": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.181Z", + "postProcessHash": "6e7a2a23ff1c72435711217c0c1faf30dd228b5a52813f754634202d474ce6e0" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.182Z", + "postProcessHash": "2f65ff6561116154f19867e3572f67792d5b202d4c38d4e81d3d3f8dc7e99eee" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.183Z", + "postProcessHash": "cae87783ae1714ddee44ad96b990f4b3a210d34ddcfef609457116c3aeadb247" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.183Z", + "postProcessHash": "77259a00751b143c3fdea0d3e0bc5d8e35532f9435f51cd4cbce8dd3b1830ad8" + } + } + }, + "4d62d488729be2f37dd5612afe89c99c672da0432da3d4e1eb72dfa22b888b74": { + "d863c27ab9b0d92bdadb7f6117d132c7d9ea2fb90076ea2c8c4a94492892bef5": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.184Z", + "postProcessHash": "41348238c28cb0cb25c3ba1c4ce33e22a5ddac81544e336b7ea63fb1274c8915" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.185Z", + "postProcessHash": "b84059301eefb7a7e765a5a76386d1b5c92af36486303d65d6b0e2b7473be9f0" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.186Z", + "postProcessHash": "44a3c7516da3dd50a260d62b7293a1d663dbd5bf2b431ca57d51fd28ea3476ef" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.187Z", + "postProcessHash": "fab073e8411defe9af107dd994b8df183c21ba7937bd569d321db21599922858" + } + } + }, + "0a1c713f023ccd6cf281402efb405c1a78b9c3268f9b6a0b8fecdd0d623427cf": { + "06741e61597873ca81a862e58811c2c7c80e02cf2df44ccc619fe89257ba1a4c": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.350Z", + "postProcessHash": "f0f7bce8c4f7f6d905b68b294351adda53c0f9e51b27c2d80a7fdc92e6fb5207" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.414Z", + "postProcessHash": "160ff17916ead5ae4ed0ad910f2bfe33876d7c8439c8284275a6f27166f2433b" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.416Z", + "postProcessHash": "9205ba4f62fe5ca98dbf2fb399b3125bddf11aedaf8bdaed85773ec2c969e9fb" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.428Z", + "postProcessHash": "12e87c5c1fde55fa245db72bc6d8842df547a2428c82957f81a49edf1ca27572" + } + } + }, + "c21c501e87d872b0573fc33971d7dc15b17a08c3c7d7b9d5226c3cae53d2c3ed": { + "e33e071b01088cb880c465d3e186bbc7e0a0d2d705533a0f0e11e58902ff79d6": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.352Z", + "postProcessHash": "0feb68a68f17a42dd299335690f390f0be45b1a54dca8cedc413074ee59964ab" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.354Z", + "postProcessHash": "6d90c88aadda46e88530d9a49b7694c568d2f1cf07b53f145971a4a9984dcac8" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.401Z", + "postProcessHash": "b0d2a00e49c16538a1762ce3e751413fce2ad9a46c277ff56b7390f71acf0812" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.404Z", + "postProcessHash": "61bfe08cdace3c6be23f483ca14cde9337e7fb84b6bf5b4398e63aed5ab6ee64" + } + } + }, + "bd94ee0e9b752d9f380bf1466d22dba85728e051c0654fa4e5b43acbb9e6ca3d": { + "caca4206d8ac77c5af7250b68688f2dd5b9b9997aa5c2ea3e465fb05ed37a870": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.353Z", + "postProcessHash": "3ff7ca4d02f4a4e5f1b17e76ecf0685e94a0ca144e676ad2261efdee46d9ca28" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.355Z", + "postProcessHash": "b2675f92302c3492580643a50f8b69f9a8fb90f352a2dd322d2ddcb756c60257" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.356Z", + "postProcessHash": "1ca5a4cc10a85b2060cd6d8c9a35a501f754b3873e5287f55849b87879fac934" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.358Z", + "postProcessHash": "a6807b13d8886146ff5c4ab7f611bba856fed748a7ca77cbed1c675abc7900ae" + } + } + }, + "29cba4c112eaecda825a055587f33ce0bd9c6c3e9d426a73de51fbd4b2a3af4d": { + "a1a7676e8f61e757bb206715cbfc9537b21e8e31aeb3a01afa9eaed48e982a8d": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.354Z", + "postProcessHash": "a21fdeda3bf3acec21b1e68ecac0d7913547bd8c534dd9ff391d1c612c3695c3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.402Z", + "postProcessHash": "bdb65ebe70352448ab33c8aa0b57a1208278a8c42657d20da3e58475316d2086" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.403Z", + "postProcessHash": "6414404aed00b8731005aebe46bfa31e32793ef2a85bbfb5cbff3975c7262080" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.404Z", + "postProcessHash": "14c7b9a1e5f07adb15faaa6536b3bead3ace724720a72918ea6aa729b8414c20" + } + } + }, + "f8155f297bbd196c9f831baf20a04c8bacafd819eb966aeea8f19b49427e2368": { + "c403cfeda04d2494ba903b49405afc92783d9c6424fdb66b508cd60a0a074152": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.356Z", + "postProcessHash": "6a5c4ea9bd6d7b56affea232a1ef9a16876bbc103f4faa0172c8a695764a25d3" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.357Z", + "postProcessHash": "518b912f3d6b01bc061910549802b738b920f868c8b7a3dafffbf6a2177e4b93" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.359Z", + "postProcessHash": "bc1851474021f1686d1b63e6067ff1619b4027faa3506b3b0fd52cefcbf78656" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.360Z", + "postProcessHash": "75f2db64873e46b3db6414cd95b1c881c6d4f32c73473749328840c932611620" + } + } + }, + "bdebca2ca47f584608b845e27ced6c5ea7155eace2f9f892d467ac62832810a6": { + "b55e14253f6b411705db795d3172974e97ecdf86d868ffe7729504480a7ed25d": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.358Z", + "postProcessHash": "5b8f5c73b8e7efc7f9ccc9ecc2851553170a1733599a3ed24aba723f0e46956d" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.361Z", + "postProcessHash": "dd8d2e7fb14c0885453c6d9570f131d0c42295d65f756a6e264d8d195e347ebe" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.362Z", + "postProcessHash": "c785f0ad4f2f13eacab7800a0e8d745f50e9b2f34f1071d54871d7993d325d88" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.371Z", + "postProcessHash": "20ccff613642469ebc39d0354e1a1afef7419a6f28b6d18adcbdb81b6a53d3c7" + } + } + }, + "6c01d2c364c4a400d0744be96cb0836084b5ea372ab503de4b3a9c3e0b9c53f0": { + "a661bf2e6fb5193d6ca40b7bba5bcf2dd659cf93989ea5b636370eabc49b8794": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.359Z", + "postProcessHash": "487f8a5bbd629146176b873e3406e736e95bd2fc566e27e84b0ae7b428e78c70" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.359Z", + "postProcessHash": "27126961df9196814a6e984a91586f6a62f63bc9e7ab0075bd34dd8244010981" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.361Z", + "postProcessHash": "4493ac8ea31f829e7cb5a09cdce2252a1d6f68ba5c29915dbd4d8a480807d848" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.364Z", + "postProcessHash": "855dc9c3025cef969af0101fd168c45592f104c23e5f553e7499bc34fc22ef32" + } + } + }, + "7158be6bc513762827d840969ef328946a0c2ee6aa397d24c9132e9100dd5ebd": { + "4663d6bdd0aad269fca214df106c0c1e367f493d5070a491b6ae42af80dcd8a3": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.362Z", + "postProcessHash": "9a56a378bc1486904c705195c69aae623c9f2ded483b2309a19c2d6bf2a8fe49" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.364Z", + "postProcessHash": "6400dfa31cdcb2643de9385390f605fe5e489ed33e4931cbbc7ada3402a0ad86" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.365Z", + "postProcessHash": "26318d7daa9aa47a0f2ed523fa8ba1485cfc33e50462e5c08e72978523688b82" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.369Z", + "postProcessHash": "d4fe32e280e5751c958e32d81dc106ab55aea98b53e9b3f2aa383e3976bb98c3" + } + } + }, + "1a1e0a41a11c642e968bfe7aaf4db4a01c828051f2742657189fd48ff472b173": { + "afecc0b04fc43aa8b2ca3be892538d5286bbcf1de2bd05103a980bcc377d0b4c": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.363Z", + "postProcessHash": "dc72f10da8f0ea55078fd55e947dd5af1b3fe441dd6d619ba3d56f90981415cd" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.365Z", + "postProcessHash": "005a560f192f45b145b7d3653b64f2f328e298be40f093f5213357163935fd73" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.368Z", + "postProcessHash": "5672c2ac66e42b168ac1e34c20143073fb880404681d97c768d8bb45a3a42ecc" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.370Z", + "postProcessHash": "a5b2b8bb4303530393b88c46f7e7d372197c754148851777cf259e475d8f1dde" + } + } + }, + "405eb5bed2a7c618e6d9e754d3d39afa6ba003f4643249a6963a3adf0871a521": { + "c10783030340be84d29acae69801901555c143663ed7f2d932cd39928d6fab4f": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.363Z", + "postProcessHash": "01222ec710f90c8f31d1603d0d1dce0105f50c71bd6240525b9c4c62911a81dd" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.366Z", + "postProcessHash": "b3a9227fa90760c63c68c16a6777d18542f5f8ca23c6f89ff1762c6e5d8fe65d" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.367Z", + "postProcessHash": "cec5ed6b2bb8f785e9ec09947bf6fec0432d0cedb70639c9e6c346cc12b86e29" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.369Z", + "postProcessHash": "e9bf235a234c4a424b9cc5cddf8cf7154861aee297104f4416a70a49c1d647ec" + } + } + }, + "554305cb213f29ecd021133868530c6bfc6e7bf4171dfae85274b5f880baf463": { + "e8ca31bf6d8ddecdad9dd67fa1a7b0c493337f9c027518442d20fa25b0f403d7": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.366Z", + "postProcessHash": "2a6b4f0de0f62ddb098a333c8c076c6fbc2a47ecdf5bf5b0ba4e3a2bb7d9f580" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.368Z", + "postProcessHash": "38ab5ebd920bf60233e577176fa6c98ab437a57ed40f98d24f90ad205f01457d" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.371Z", + "postProcessHash": "9111ea631217f08ec1ca730cb7a0c95a83af05c7b82d60624c41b0af11a1f820" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.372Z", + "postProcessHash": "3f05eac4915fa484e45965c80ee09348589dff7ca7d543a6981dfa7a4352969d" + } + } + }, + "e20f10f321a6655992b80675becee776e2d7192ecd772dd535e2f97fe1445429": { + "be850a97efec54b454ad77b47fa098a72e91329e37cd4e152efc9ec71bbfbb91": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.375Z", + "postProcessHash": "1e8fcc9a597fdbd266586247ed6cc858fb76ab2e3122f4d94dfd29ae14c539ab" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.376Z", + "postProcessHash": "043e9129b341a92107395548ddd3e03ba29ebca83d33b3c495aa946f39afd72d" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.377Z", + "postProcessHash": "0302f1c18d7cb0b14dfbba8da1ef8576e65ae263697f96ad5598695d93fe9b11" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.377Z", + "postProcessHash": "625fede2fe416ca50106fc15ac9272893c71d282439d7e211c5c9930627a0968" + } + } + }, + "7c184404df835971f82866c2bcfd101fbb9dab33cb1ff3c462a28bc8651e0122": { + "a82a3ff2a7ff59c9e9bb1e56cb1de03f4085223328031317c3759d7c49013ffb": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.402Z", + "postProcessHash": "99a5bce6f335957cbafdd9b7e11ee8eee92aaf6177b5c2e88d006eb4a3330932" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.406Z", + "postProcessHash": "a3d39d661035b0f0b5f1881c10394f00358b95bc6832a5e54cddcca70f243640" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.411Z", + "postProcessHash": "80b1b300a87556d42ccec26329b01a7dcbdd0467830f355bc54b9acb1b3ffeff" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.416Z", + "postProcessHash": "d25e941da27f651eba5350d2abd2894b696d0871b2b1941af9f4fb5ff925c78c" + } + } + }, + "882deccc563df6de827884d36a77d90f40e0ee5091fcc61a39968561827106cb": { + "1e59afc5c1cb741772bf9a18457091e01230a245d817d546717ec594a22178c2": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.403Z", + "postProcessHash": "afc292394b39fac7731e9e404aa469b897a34280be412150a1a57d5e8b88304a" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.409Z", + "postProcessHash": "a759b2789621de1fa9ca30cbc4fd14cc34f8b838bf953de4962f4f597ed7b96a" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.415Z", + "postProcessHash": "4d2d4e35e124b9a354fd43d34d9a99be462cc1701448b25c293b064716e8f1da" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.415Z", + "postProcessHash": "f15352478f3a95d360913e8de0de63fb2d60c1a0ad05d25bf2e6b6dc312dc24c" + } + } + }, + "9350a63d5b7f187a616d324493eecf62c2fae82e4663a0f8ff47c877b085126b": { + "356c70dea50cc688209153a7f495f49745d65a8bc169fcf2fcd4975cad169fef": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.405Z", + "postProcessHash": "e8582fb15029349ee7a31c346c1dd80ea95b8baba30e4cafda2bf8aa7ae6b6a8" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.415Z", + "postProcessHash": "d2d86d806f76b70295704172305e4b097a9e668a4ad89866db3bbc18026ba929" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.423Z", + "postProcessHash": "32c84543dc0c018110bd435c1bf74714918cfb3394751e2b8e1634d63e7f0886" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.426Z", + "postProcessHash": "e8ab32270210dbc0677013d85325d068215fd411c05361a8a6222e7358515042" + } + } + }, + "7c9bb768fc8e9fcb9151372d30ff48ce42ca7a0258b5c1e9a24c088da8249c19": { + "281add91389e4d172fc56fae1534695c9dea10e4e74b027c382e65dca1ff9a13": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.406Z", + "postProcessHash": "09c8dc56f303b6deba364f4a22a3997fea61deeb5b9031f34a395c217c0bf68e" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.412Z", + "postProcessHash": "64a5444aaca24e7acefac70b8e34c6976cbeee5ab43d916086c09dd7a73aebad" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.420Z", + "postProcessHash": "4297a19ea00c783b9beadfa1fd9f7f8c8f6346440b7f00ebc15aa786c9209d34" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.427Z", + "postProcessHash": "9206af3e111ab76af39d9dcfd6bb7b9153cda70cfa63a77b0678607ae84d0e18" + } + } + }, + "3a1922f11c31c49a7bc2cfb4ddcd14e25396871751ee4e4acd7ec3efb80db083": { + "e72f060583314b476ad744582d7f9f9ab542eef225abfafa57ab75eb90ad0365": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.407Z", + "postProcessHash": "4441929f9d107f1d56b0d974c5dedda7af787528e6770ffd5ccb9e16f4ce5b60" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.408Z", + "postProcessHash": "4a14ee1d473c4d4f9f2fc62391a2189fac233136b16038548663bbc0f045ebb7" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.417Z", + "postProcessHash": "a41fd01187ed701e806cedf218fa3cfe1fc92001a752e761adebdf00472e0405" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.429Z", + "postProcessHash": "f53a66427c88dba1be56edafa87611edca4e1f28c783a1fa90820c8aad9b0841" + } + } + }, + "c75c955d6453468f9aeaa4a75ff165dbe36f0154d1a87e2b7bce04e8fccc6358": { + "44c3ced931104ce86b16c0316df522ecc853b7be890aef91f80719c87714b0ee": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.408Z", + "postProcessHash": "2f316932aaf8ee2bbaa81d46e96915c8de7fffe93bfa72476dff289995c70ce8" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.409Z", + "postProcessHash": "1f9d90f838e4c65ed175849b1111b1556c2c92d81bf453bf708671185c5b1908" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.410Z", + "postProcessHash": "4bc8b015784ac03b5a64849f45167aa07dd6d8c4ed878e348081269368994994" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.411Z", + "postProcessHash": "fc9eb023f4d195504816a2f8d8c4257e4da59794e73caac4058e20274c487026" + } + } + }, + "d9b23a89d3219e36b20bb03e92e35369b08e949c731e85f5e04b63a02e9986b2": { + "5cfc85019c327d659afd2eaa3ffa358e863788ca0b9537ed82afbf3fd8bd0a1a": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.410Z", + "postProcessHash": "9791c9aa88d91c9b99c13071377aa8327b8bab6cdc1b67e6b103b6b114285291" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.413Z", + "postProcessHash": "f317942f8c41f89525cc371d54b021395573798462589117a11d8df825e1b081" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.419Z", + "postProcessHash": "0dfbd47b4d7b2c660ecc9d32de3726a0238e6c8a42ee45500d07bd94c35724f4" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.422Z", + "postProcessHash": "eaaf6a3fc98d0a9dc23ba1b1ecc1e896d64e86d5194f49ede9b767f52be8c6e9" + } + } + }, + "ef1a5fa74e391b0c510d44233f54d3531a9499c293196339b43a8f16484b14f6": { + "3366fbba1d8914413ada0be2ab2590a0cf419275aacfe6711394fd51dbb36b69": { + "ru": { + "updatedAt": "2026-02-24T10:49:37.418Z", + "postProcessHash": "7507d02b29ef9f12e83cc0f7b9337857a466e971cc92af8e6f69d71bd2267e43" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.423Z", + "postProcessHash": "fdef0219b0a8d7056eb4dfac247ab7d8c1ef627e620a56894f8d5260b4eafd1f" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.426Z", + "postProcessHash": "dd27809a44f05e1bae78813ef8bb363e36383df9d636fd2efc0f0bb038ee8c86" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.434Z", + "postProcessHash": "c5d8bc566afdb1785e03c5282b7a3a38e778561fd96a33706dfb428e257b0bd4" + } + } + }, + "28021548f4ae79cebcf0f7e8ec8a0ad519e7cfe2da5729d55742e761a0f264d8": { + "fbc00f4b132acf05fb14565c04c020591aac3da5b250b8be78a17ac70c84fb86": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.419Z", + "postProcessHash": "d901fd607c1f67e1da3e898f5d7644f93848fbb19fd18d5c0d8aa8df1647d1ae" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.425Z", + "postProcessHash": "43844392fdbaba30f5b3aa61ae1d81934c174d8ad94b13af9a864efb28d3c2d5" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.428Z", + "postProcessHash": "f2403438e17aff21c7514ecdfb31845c26d59bedf03ab0c9c077d974f8e73994" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.435Z", + "postProcessHash": "1b472a1ecfcaf222f2878f58c083f8be1eb90b3946d0d3f2c094a662ca7d6d97" + } + } + }, + "dd64e1acbeda4b08c80d459267c564d107c865a8b60705ac75277f9a350aab47": { + "a96c382da74e39c7c01be28e24426455282e2611d9bcecc0e83fd347a18c7320": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.421Z", + "postProcessHash": "c270c2d742bb9c2d68d1c15c76e37585acdc74b0b3f9370241f451e37a130c88" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.430Z", + "postProcessHash": "e096bdcb2a3c0faff912bac62e8fcb2f2b94291b7ed279207b0a757e1442ae45" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.431Z", + "postProcessHash": "da337ee6bfed6a676f5f7c3893535c3d18dadcba52cedacedfc2b86eb77a434a" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.432Z", + "postProcessHash": "06bb68fd30b52090c0219369373d3882d226f30b0ed2fca86f2fb8f7b6167653" + } + } + }, + "89b25389e876929dab7f8a3c2cd2e6b65d07efeb1b0f877f24e801e9733b9b37": { + "220264aaefc1334a6fc6210f767c377e86ab39fd993fb7358bde51cdabf9a1f9": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.422Z", + "postProcessHash": "568294e898b9ed19869229273570a0d9caacfe268def84f1a92281ccec596d32" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.429Z", + "postProcessHash": "117a555446900714af9bc7bf339c3ed130f31431df1c585657b8f92f25bcfb90" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.431Z", + "postProcessHash": "9aebe8316e2d47d39dd6ce6fd6c1cfb351e9e21ba19c4b2e8b6013cdf712da38" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.434Z", + "postProcessHash": "aead56a1e15b1105ab0e8270e13c88334827ce31d687dc63c8c3aa76b45fe4ab" + } + } + }, + "4b01c7dd827637983a071be96251455c94a76de8f1e8d932766534ef8216dbd4": { + "d9ca249e2edd2ae7146190346c98864151176c32f845131090220830c63d5138": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.424Z", + "postProcessHash": "4bbfbe33cc1d72450cf7b103af32bc3934f9b7b446f0b9822eccb1b37a5ef57a" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.432Z", + "postProcessHash": "f6d48280c1ebef9d4fe501886b62399461290173078ea9cadd0e37a4021d3fac" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.433Z", + "postProcessHash": "3670ad1b2a05194bc741808ba024837987e0ed063c0793a103217fda0b334045" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.435Z", + "postProcessHash": "7d835d6b315490bfe38d248bf91ce96e3a296cedba03c741b3bbc6fc18079683" + } + } + }, + "1b58a9eaf9857d04143851f754dc6593281d99d6ff14d5ab19561d1c8f9928ec": { + "8d300d0cef0bff68a968c695749eaeb75c06e02b0fdb8b4f160bcdd827c120bd": { + "ko": { + "updatedAt": "2026-02-24T10:49:37.436Z", + "postProcessHash": "f4dcefccdec6834f092faaa11f7ae191d884b955772da400ad13d451859b40b5" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.436Z", + "postProcessHash": "35a1544316e7fd623c9eb6d630042512d2b8ddb3ecd4d9baa6c254bcae59cfb6" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.437Z", + "postProcessHash": "7e2b2f1c6d3e8279b1c17333a12d1ebb46341baeef06fa8711988d1c320f45f3" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.437Z", + "postProcessHash": "d63e34496e1076d00214e5867d5957ae9ef165ba0775861c256bf1963e41adaf" + } + } + }, + "85053ba1655c9d851ad251f345192272fb86c88b2db722266d3fc73753c90543": { + "d17074ea4ae2f160e8f5c1eb489c2c4b2338bdb236ebc7babbb675ed0e4ad60d": { + "jp": { + "updatedAt": "2026-02-24T10:49:37.500Z", + "postProcessHash": "b13ee37ea168a222bf8908de62cfe07a0528117ef4d1885955d54ed1174d1197" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.501Z", + "postProcessHash": "b46719966229147f8af57fdea52b55e1e28154d7daaaed00493f3f0eb7569106" + }, + "zh": { + "updatedAt": "2026-02-24T10:49:37.503Z", + "postProcessHash": "2b51fdd7608d75f0b609c8179ff1d2394ec788a69d6942b7473f7e731033f395" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.505Z", + "postProcessHash": "25ced8c40f3b4982175de29bb30703e06c9a264262ca2ca6dbfe709a56b16be0" + } + } + }, + "f8a6f7672dabf71b4d1c48af932bea22ea5aab571f31565c5b53f95306da00b9": { + "fa8e3f45deab02e724785b4d8fd921bf3b6d5072a0e01dc22207ad33ee5e3c66": { + "zh": { + "updatedAt": "2026-02-24T10:49:37.501Z", + "postProcessHash": "51f9d1068e325231751c795812d9626385f6c3410717ba43eb0f4318793951cd" + }, + "ko": { + "updatedAt": "2026-02-24T10:49:37.502Z", + "postProcessHash": "1b7ae43f80b2271bbc7b13c5424e2ce3fdbb056ad5a4ae9ba4ab27d5b01b591f" + }, + "jp": { + "updatedAt": "2026-02-24T10:49:37.502Z", + "postProcessHash": "94820f0430bfa96d129985a37db46830b53396607864a16279f82d1a35e0a113" + }, + "ru": { + "updatedAt": "2026-02-24T10:49:37.504Z", + "postProcessHash": "ab046c561d35a03851dc2e6cd011c169669c1b0627b1a17990a20591d33baaf3" + } + } } } } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index 2a0464c5bd5..8a46c21e0fe 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -68,7 +68,6 @@ ClickHouse はオープンソースであるため、ClickHouse の従業員だ | [allow_statistics_optimize](/operations/settings/settings#allow_statistics_optimize) | `1` | | [use_statistics](/operations/settings/settings#use_statistics) | `1` | | [use_statistics_cache](/operations/settings/settings#use_statistics_cache) | `1` | -| [enable_full_text_index](/operations/settings/settings#enable_full_text_index) | `1` | | [allow_experimental_delta_kernel_rs](/operations/settings/settings#allow_experimental_delta_kernel_rs) | `1` | | [allow_insert_into_iceberg](/operations/settings/settings#allow_insert_into_iceberg) | `0` | | [enable_join_runtime_filters](/operations/settings/settings#enable_join_runtime_filters) | `1` | @@ -94,6 +93,9 @@ ClickHouse はオープンソースであるため、ClickHouse の従業員だ | [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | | [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | | [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [ast_fuzzer_runs](/operations/settings/settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/operations/settings/settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/operations/settings/settings#allow_fuzz_query_functions) | `0` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md index c99151532fa..785c2d3217e 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md @@ -27,7 +27,7 @@ BYOC は特に大規模なデプロイメント向けに設計されており、 * AWS (GA) * GCP (Private Preview)。ご興味のある方は[こちら](https://clickhouse.com/cloud/bring-your-own-cloud)からウェイティングリストにご登録ください。 -* Azure (Roadmap)。ご興味のある方は[こちら](https://clickhouse.com/cloud/bring-your-own-cloud)からウェイティングリストにご登録ください。 +* Azure (Private Preview)。ご興味のある方は[こちら](https://clickhouse.com/cloud/bring-your-own-cloud)からウェイティングリストにご登録ください。 **対応しているクラウドリージョン:** [サポート対象リージョン](https://clickhouse.com/docs/cloud/reference/supported-regions) ドキュメントに記載されているすべての**パブリックリージョン**が、BYOC デプロイメントで利用可能です。プライベートリージョンは現在サポートされていません。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md index 23dffdfd12a..359ae2d32c2 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md @@ -84,7 +84,7 @@ Mac で `clickhouse-local` を実行するには、`./clickhouse local` を使 -## 例 1: Integration エンジンを使用して MySQL から ClickHouse Cloud へ移行する \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} +## 例: Integration エンジンを使用して MySQL から ClickHouse Cloud へ移行する \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} ソースの MySQL データベースからデータを読み取るために、[integration table engine](/engines/table-engines/integrations/mysql/)([mysql table function](/sql-reference/table-functions/mysql/) によってその場で作成されます)を使用し、[remoteSecure table function](/sql-reference/table-functions/remote/) を使用して、宛先である ClickHouse Cloud 上のテーブルにデータを書き込みます。 @@ -121,18 +121,4 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');" :::note `clickhouse-local` ホストマシン上にデータがローカル保存されることはありません。代わりに、データはソースの MySQL テーブルから読み込まれ、そのまま ClickHouse Cloud サービス上の宛先テーブルに書き込まれます。 -::: - -## 例 2: JDBC ブリッジを使用して MySQL から ClickHouse Cloud へ移行する \{#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge\} - -ソースの MySQL データベースからデータを読み取るために、[jdbc table function](/sql-reference/table-functions/jdbc.md) によってオンデマンドで作成される [JDBC integration table engine](/engines/table-engines/integrations/jdbc.md) を、[ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) と MySQL JDBC ドライバーと組み合わせて使用します。データを書き込む際には、[remoteSecure table function](/sql-reference/table-functions/remote.md) を使用して、宛先となる ClickHouse Cloud サービス上のテーブルにデータを書き込みます。 - -セルフマネージドな ClickHouse の移行 - -### 宛先の ClickHouse Cloud サービスで: \{#on-the-destination-clickhouse-cloud-service-1\} - -#### ターゲットデータベースを作成します: \{#create-the-destination-database-1\} - -```sql - CREATE DATABASE db -``` +::: \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md index 3247e4531f1..ee0cdf00e82 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md @@ -43,6 +43,10 @@ import crash_reports_collection from '@site/static/images/cloud/reference/crash- ::: +## 2026年2月20日 \{#february-20-2026\} + +- **ClickPipes:** 非アクティブ状態のリバースプライベートエンドポイントは、設定された猶予期間の後に自動的に削除されるようになりました。これにより、未使用または誤って構成されたエンドポイントがバックエンドに無期限に残り続けることを防ぎます。詳細については、自動クリーンアップに関する[ドキュメント](/integrations/clickpipes/aws-privatelink#automatic-cleanup)を参照してください。 + ## 2026年2月13日 \{#february-13-2026\} - [BigQuery Connector](/integrations/clickpipes/bigquery/overview) がプライベートプレビューとして利用可能になりました。詳細についてはこの[ブログ記事](https://clickhouse.com/blog/bigquery-clickpipe-private-preview)を参照し、アクセスを希望される方は[ウェイトリスト](https://clickhouse.com/cloud/clickpipes/bigquery-connector)にご登録ください。 @@ -1608,7 +1612,7 @@ ClickHouse Cloud は、SOC2 Type II 準拠、本番ワークロード向けの ### 一般的な変更 \{#general-changes-5\} -- ローカルの ClickHouse テーブルおよび HTTP ソースからの[辞書](/sql-reference/dictionaries/index.md)のサポートを追加 +- ローカルの ClickHouse テーブルおよび HTTP ソースからの[辞書](/sql-reference/statements/create/dictionary)のサポートを追加 - ムンバイ[リージョン](/cloud/reference/supported-regions)のサポートを追加 ### コンソールの変更 \{#console-changes-30\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/dictionary/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/dictionary/index.md index 08f508876a4..1fc5bb30a71 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/dictionary/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/dictionary/index.md @@ -3,16 +3,17 @@ slug: /dictionary title: 'Dictionary' keywords: ['dictionary', 'dictionaries'] description: 'Dictionary は、高速なルックアップのためのキー値型データ表現を提供します。' -doc_type: 'reference' +doc_type: 'guide' --- import dictionaryUseCases from '@site/static/images/dictionary/dictionary-use-cases.png'; import dictionaryLeftAnyJoin from '@site/static/images/dictionary/dictionary-left-any-join.png'; import Image from '@theme/IdealImage'; + # Dictionary \{#dictionary\} -ClickHouse における Dictionary は、さまざまな[内部および外部ソース](/sql-reference/dictionaries#dictionary-sources)からのデータをインメモリの[キー・バリュー](https://en.wikipedia.org/wiki/Key%E2%80%93value_database)形式で表現し、超低レイテンシーなルックアップクエリのために最適化されたものです。 +ClickHouse における Dictionary は、さまざまな[内部および外部ソース](/sql-reference/statements/create/dictionary/sources#dictionary-sources)からのデータをインメモリの[キー・バリュー](https://en.wikipedia.org/wiki/Key%E2%80%93value_database)形式で表現し、超低レイテンシーなルックアップクエリのために最適化されたものです。 Dictionary は次の用途に有用です: @@ -87,7 +88,7 @@ Controversial_ratio: 0 #### Dictionary の適用 \{#applying-a-dictionary\} -これらの概念を示すために、投票データに対して Dictionary を使用します。Dictionary は通常メモリ上に保持されるため([ssd_cache](/sql-reference/dictionaries#ssd_cache) は例外)、データサイズに留意しておく必要があります。ここで `votes` テーブルのサイズを確認します: +これらの概念を示すために、投票データに対して Dictionary を使用します。Dictionary は通常メモリ上に保持されるため([ssd_cache](/sql-reference/statements/create/dictionary/layouts/ssd-cache) は例外)、データサイズに留意しておく必要があります。ここで `votes` テーブルのサイズを確認します: ```sql SELECT table, @@ -105,7 +106,7 @@ GROUP BY table データは Dictionary 内で非圧縮のまま保存されるため、すべてのカラム(実際にはそうしません)を Dictionary に保存すると仮定すると、少なくとも 4GB のメモリが必要になります。Dictionary はクラスター全体でレプリケートされるため、このメモリ量は *ノードごとに* 確保しておく必要があります。 -> 以下の例では、Dictionary 用のデータは ClickHouse テーブルを起点としています。これは最も一般的な Dictionary のソースですが、ファイル、HTTP、さらには [Postgres](/sql-reference/dictionaries#postgresql) を含むデータベースなど、[複数のソース](/sql-reference/dictionaries#dictionary-sources) がサポートされています。後ほど示すように、Dictionary は自動更新が可能であり、頻繁に変更が発生する小規模なデータセットをダイレクトに JOIN で参照可能にする理想的な手段です。 +> 以下の例では、Dictionary 用のデータは ClickHouse テーブルを起点としています。これは最も一般的な Dictionary のソースですが、ファイル、HTTP、さらには [Postgres](/sql-reference/statements/create/dictionary/sources/postgresql) を含むデータベースなど、[複数のソース](/sql-reference/statements/create/dictionary/sources#dictionary-sources) がサポートされています。後ほど示すように、Dictionary は自動更新が可能であり、頻繁に変更が発生する小規模なデータセットをダイレクトに JOIN で参照可能にする理想的な手段です。 Dictionary には、ルックアップを行うためのプライマリキーが必要です。これは概念的にはトランザクションデータベースのプライマリキーと同じで、一意である必要があります。上記のクエリでは、JOIN キーである `PostId` に対してルックアップを行います。Dictionary には、`votes` テーブルから `PostId` ごとの賛成票と反対票の合計が格納されている必要があります。以下は、この Dictionary 用データを取得するクエリです。 @@ -319,20 +320,20 @@ Peak memory usage: 666.82 MiB. ### Dictionary の `LAYOUT` を選択する \{#choosing-the-dictionary-layout\} -`LAYOUT` 句は、Dictionary の内部データ構造を決定します。複数のオプションがあり、その詳細は[こちら](/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory)に記載されています。適切なレイアウトを選択するためのヒントは[こちら](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)で確認できます。 +`LAYOUT` 句は、Dictionary の内部データ構造を決定します。複数のオプションがあり、その詳細は[こちら](/sql-reference/statements/create/dictionary/layouts#ways-to-store-dictionaries-in-memory)に記載されています。適切なレイアウトを選択するためのヒントは[こちら](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)で確認できます。 ### Dictionary の更新 \{#refreshing-dictionaries\} `LIFETIME` を `MIN 600 MAX 900` として Dictionary に指定しています。LIFETIME は Dictionary の更新間隔を表し、ここで指定した値により 600~900 秒のランダムな間隔で定期的に再読み込みが行われます。このランダムな間隔は、多数のサーバーで更新を行う際に、Dictionary のソースへの負荷を分散するために必要です。更新中も Dictionary の旧バージョンに対するクエリは引き続き実行可能であり、クエリがブロックされるのは初回ロード時のみです。`(LIFETIME(0))` を設定すると、Dictionary が更新されなくなる点に注意してください。 Dictionary は `SYSTEM RELOAD DICTIONARY` コマンドを使用して強制的に再読み込みできます。 -ClickHouse や Postgres のようなデータベースソースの場合、クエリのレスポンスに基づいて実際に変更があった場合にのみ Dictionary を更新するように設定でき、一定間隔での更新に代えてこの方式を利用できます。詳細は[こちら](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)を参照してください。 +ClickHouse や Postgres のようなデータベースソースの場合、クエリのレスポンスに基づいて実際に変更があった場合にのみ Dictionary を更新するように設定でき、一定間隔での更新に代えてこの方式を利用できます。詳細は[こちら](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)を参照してください。 ### その他の Dictionary タイプ \{#other-dictionary-types\} -ClickHouse では、[Hierarchical](/sql-reference/dictionaries#hierarchical-dictionaries)、[Polygon](/sql-reference/dictionaries#polygon-dictionaries)、および [Regular Expression](/sql-reference/dictionaries#regexp-tree-dictionary) の各 Dictionary もサポートしています。 +ClickHouse では、[Hierarchical](/sql-reference/statements/create/dictionary/layouts/hierarchical)、[Polygon](/sql-reference/statements/create/dictionary/layouts/polygon)、および [Regular Expression](/sql-reference/statements/create/dictionary/layouts/regexp-tree) の各 Dictionary もサポートしています。 ### 参考情報 \{#more-reading\} - [辞書を利用してクエリを高速化する](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [辞書の高度な設定](/sql-reference/dictionaries) \ No newline at end of file +- [辞書の高度な設定](/sql-reference/statements/create/dictionary) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md index 76dbf8ee078..c150db551a1 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md @@ -37,6 +37,7 @@ CREATE TABLE iceberg_table_local ENGINE = IcebergLocal(path_to_table, [,format] [,compression_method]) ``` + ## エンジン引数 \{#engine-arguments\} 引数の説明は、それぞれ `S3`、`AzureBlobStorage`、`HDFS` および `File` エンジンにおける引数の説明と同様です。 @@ -69,12 +70,13 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table ``` + ## エイリアス \{#aliases\} テーブルエンジン `Iceberg` は、現在は `IcebergS3` のエイリアスになっています。 ## スキーマの進化 \{#schema-evolution\} -現時点では、CH を用いることで、時間の経過とともにスキーマが変更された Iceberg テーブルを読み取ることができます。現在サポートしているのは、カラムの追加・削除が行われたり、その順序が変更されたテーブルの読み取りです。また、値が必須だったカラムを、NULL を許容するカラムに変更することもできます。加えて、単純型に対しては、以下の許可されている型変換をサポートしています: +ClickHouse は、時間の経過とともにスキーマが進化した Iceberg テーブルの読み取りをサポートしています。現在サポートしているのは、カラムの追加・削除が行われたり、その順序が変更されたテーブルの読み取りです。また、値が必須だったカラムを、NULL を許容するカラムに変更することもできます。加えて、単純型に対しては、以下の許可されている型変換をサポートしています: * int -> long * float -> double * decimal(P, S) -> decimal(P', S)(P' > P の場合) @@ -91,29 +93,32 @@ ClickHouse は Iceberg テーブルに対する SELECT クエリの実行時に ClickHouse は Iceberg テーブルに対するタイムトラベルをサポートしており、特定のタイムスタンプまたはスナップショット ID を指定して過去のデータをクエリできます。 -## 削除行を含むテーブルの処理 \{#deleted-rows\} +## 削除された行を含むテーブルの処理 \{#deleted-rows\} -現在サポートされているのは、[position deletes](https://iceberg.apache.org/spec/#position-delete-files) を使用する Iceberg テーブルのみです。 +ClickHouse は、次の削除方式を使用する Iceberg テーブルの読み取りに対応しています。 -次の削除方式は**サポートされていません**: +- [位置削除 (Position deletes)](https://iceberg.apache.org/spec/#position-delete-files) +- [等価削除 (Equality deletes)](https://iceberg.apache.org/spec/#equality-delete-files)(バージョン 25.8 以降でサポート) -* [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files) -* [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors)(v3 で導入) +以下の削除方式は**サポートされていません**。 + +- [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors)(v3 で導入) ### 基本的な使用方法 \{#basic-usage\} ```sql -SELECT * FROM example_table ORDER BY 1 -SETTINGS iceberg_timestamp_ms = 1714636800000 + SELECT * FROM example_table ORDER BY 1 + SETTINGS iceberg_timestamp_ms = 1714636800000 ``` ```sql -SELECT * FROM example_table ORDER BY 1 -SETTINGS iceberg_snapshot_id = 3547395809148285433 + SELECT * FROM example_table ORDER BY 1 + SETTINGS iceberg_snapshot_id = 3547395809148285433 ``` 注意: 同じクエリ内で `iceberg_timestamp_ms` パラメータと `iceberg_snapshot_id` パラメータを同時に指定することはできません。 + ### 重要な考慮事項 \{#important-considerations\} * **スナップショット** は通常、次のタイミングで作成されます: @@ -186,6 +191,7 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 * ts1 と ts2 の時点: 元の 2 列のみが表示される * ts3 の時点: 3 列すべてが表示され、1 行目の price 列は NULL になる + #### シナリオ 2: 履歴スキーマと現在のスキーマの差異 \{#scenario-2\} 現在時点を指定したタイムトラベルクエリでは、現在のテーブルとは異なるスキーマが表示される場合があります: @@ -228,6 +234,7 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 これは、`ALTER TABLE` が新しいスナップショットを作成せず、現在のテーブルについては Spark がスナップショットではなく最新のメタデータファイルから `schema_id` の値を取得するために発生します。 + #### シナリオ 3: 過去と現在のスキーマの差異 \{#scenario-3\} 2つ目の制約は、タイムトラベルを行っても、テーブルに最初のデータが書き込まれる前の状態は取得できないという点です。 @@ -249,6 +256,7 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 ClickHouse における挙動は Spark と同じです。概念的には Spark の SELECT クエリを ClickHouse の SELECT クエリに置き換えて考えれば、同じように動作します。 + ## メタデータファイルの解決 \{#metadata-file-resolution\} ClickHouse で `Iceberg` テーブルエンジンを使用する場合、システムは Iceberg テーブル構造を記述する適切な metadata.json ファイルを特定する必要があります。以下は、この解決プロセスの概要です。 @@ -291,6 +299,7 @@ CREATE TABLE example_table ENGINE = Iceberg( **注**: 通常は Iceberg Catalog がメタデータの解決を担当しますが、ClickHouse の `Iceberg` テーブルエンジンは S3 に保存されたファイルを Iceberg テーブルとして直接解釈します。そのため、これらの解決ルールを理解しておくことが重要です。 + ## データキャッシュ \{#data-cache\} `Iceberg` テーブルエンジンおよびテーブル関数は、`S3`、`AzureBlobStorage`、`HDFS` ストレージと同様にデータキャッシュをサポートします。詳細は[こちら](../../../engines/table-engines/integrations/s3.md#data-cache)を参照してください。 @@ -301,4 +310,4 @@ CREATE TABLE example_table ENGINE = Iceberg( ## 関連項目 \{#see-also\} -- [Iceberg テーブル関数](/sql-reference/table-functions/iceberg.md) +- [Iceberg テーブル関数](/sql-reference/table-functions/iceberg.md) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md index ca614e05e51..a107558ba82 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md @@ -7,7 +7,7 @@ title: 'MySQL テーブルエンジン' doc_type: 'reference' --- -# MySQL テーブルエンジン \{#mysql-table-engine\} +# MySQL table engine \{#mysql-table-engine\} MySQL エンジンを使用すると、リモートの MySQL サーバー上に保存されているデータに対して `SELECT` および `INSERT` クエリを実行できます。 @@ -62,6 +62,7 @@ SETTINGS CREATE TABLE test_replicas (id UInt32, name String, age UInt32, money UInt32) ENGINE = MySQL(`mysql{2|3|4}:3306`, 'clickhouse', 'test_replicas', 'root', 'clickhouse'); ``` + ## 使用例 \{#usage-example\} MySQL でテーブルを作成します: @@ -87,7 +88,7 @@ mysql> select * from test; 1 row in set (0,00 sec) ``` -通常の引数を使って ClickHouse にテーブルを作成する: +通常の引数指定を用いて ClickHouse にテーブルを作成します: ```sql CREATE TABLE mysql_table @@ -115,7 +116,7 @@ CREATE TABLE mysql_table ENGINE = MySQL(creds, table='test') ``` -MySQL テーブルからのデータ取得: +MySQL テーブルからデータを取得する: ```sql SELECT * FROM mysql_table @@ -127,6 +128,7 @@ SELECT * FROM mysql_table └────────────────┴────────┘ ``` + ## 設定 \{#mysql-settings\} デフォルト設定は接続の再利用も行わないため、効率的とは言えません。以下の設定により、サーバーが 1 秒あたりに処理できるクエリ数を増やすことができます。 @@ -196,4 +198,4 @@ SELECT * FROM mysql_table ## 関連項目 \{#see-also\} - [MySQL テーブル関数](../../../sql-reference/table-functions/mysql.md) -- [MySQL を辞書のソースとして使用する](/sql-reference/dictionaries#mysql) +- [MySQL を辞書のソースとして使用する](/sql-reference/statements/create/dictionary/sources#mysql) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md index de78c3976a1..14e919fdeb7 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md @@ -141,5 +141,5 @@ SELECT * FROM odbc_t ## 関連項目 \{#see-also\} -- [ODBC 辞書](/sql-reference/dictionaries#mysql) +- [ODBC 辞書](/sql-reference/statements/create/dictionary/sources#mysql) - [ODBC テーブル関数](../../../sql-reference/table-functions/odbc.md) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md index ac08cf80337..e4b9834c480 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md @@ -229,7 +229,7 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) **関連情報** * [`postgresql` テーブル関数](../../../sql-reference/table-functions/postgresql.md) -* [PostgreSQL をディクショナリのソースとして使用する](/sql-reference/dictionaries#mysql) +* [PostgreSQL をディクショナリのソースとして使用する](/sql-reference/statements/create/dictionary/sources#mysql) ## 関連コンテンツ \{#related-content\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index be89835ce31..95869b6feea 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -283,6 +283,56 @@ SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%' 月単位のパーティションキーは、指定した範囲に含まれる日付を持つデータブロックだけを読み取れるようにします。この場合、データブロックには多数の日付(最大で 1 か月分)に対応するデータが含まれている可能性があります。ブロック内ではデータは主キーでソートされていますが、主キーの先頭のカラムとして日付が含まれていない場合があります。そのため、主キーのプレフィックスを指定せずに日付条件のみを含むクエリを使用すると、単一の日付だけを対象とする場合よりも多くのデータを読み取ることになります。 +### 主キー内の決定論的式に対する索引の利用 \{#use-of-index-for-deterministic-expressions-in-primary-keys\} + +主キーにはカラム名だけでなく、式を含めることができます。これらの式は単純な関数チェーンに限定されず、決定論的である限り、任意の式ツリー(たとえば、入れ子になった関数や複合式)にすることができます。 + +式は、同じ入力値に対して常に同じ結果を返す場合に **決定論的** と呼ばれます(例: `length()`, `toDate()`, `lower()`, `left()`, `cityHash64()`, `toUUID()`。`now()` や `rand()` はこれに当てはまりません)。主キーに決定論的な式が含まれている場合、ClickHouse はクエリ内の定数値に対してそれらの式を適用し、その結果を用いて主キー索引に対する条件を構築できます。これにより、`=`, `IN`, `has` のような述語に対してデータスキップが可能になります。 + +一般的なユースケースとしては、主キーをコンパクトに保ちつつ(例: 長い `String` の代わりにハッシュを保存する)、元のカラムに対する述語でも索引を利用できるようにする、というものがあります。 + +決定論的(だが単射ではない)主キーの例: + +```sql +ENGINE = MergeTree() +ORDER BY length(user_id) +``` + +索引を使用できる述語の例: + +```sql +SELECT * FROM table WHERE user_id = 'alice'; +SELECT * FROM table WHERE user_id IN ('alice', 'bob'); +SELECT * FROM table WHERE has(['alice', 'bob'], user_id); +``` + +これらの場合、ClickHouse は `length('alice')`(およびその他の定数)を一度だけ計算し、その長さの値を使ってプライマリキー索引内の範囲を絞り込みます。文字列の長さは**単射ではない**ため、異なる `user_id` 文字列が同じ長さになることがあります。そのため、索引が余分な granule(偽陽性)を読み取る可能性があります。元の述語(`user_id = ...`、`IN` など)は読み取り後にも適用されるため、結果の正しさは保たれます。 + +決定的な式がさらに**単射**(使用されている引数型に対して、異なる入力から同じ出力が生成されない)でもある場合、ClickHouse は `!=`、`NOT IN`、`NOT has(...)` といった否定形に対しても索引を効果的に使用できます。たとえば、`reverse(p)` および `hex(p)` は `String` に対して単射です。 + +単射なプライマリキーの例: + +```sql +ENGINE = MergeTree() +ORDER BY hex(p) +``` + +より複雑な単射な式もサポートされています。たとえば、次のようなものがあります。 + +```sql +ENGINE = MergeTree() +ORDER BY reverse(tuple(reverse(p), hex(p))) +``` + +索引を利用できる述語の例: + +```sql +SELECT * FROM table WHERE p != 'abc'; +SELECT * FROM table WHERE p NOT IN ('abc', '12345'); +SELECT * FROM table WHERE NOT has(['abc', '12345'], p); +``` + + ### 部分的に単調なプライマリキーに対する索引の利用 \{#use-of-index-for-partially-monotonic-primary-keys\} 例として、月の日付を考えます。1 か月という範囲では[単調な数列](https://en.wikipedia.org/wiki/Monotonic_function)ですが、より長い期間では単調ではありません。このようなものは部分的に単調な数列です。ユーザーが部分的に単調なプライマリキーでテーブルを作成すると、ClickHouse は通常どおりスパースな索引を作成します。ユーザーがこの種類のテーブルからデータを取得する際、ClickHouse はクエリ条件を解析します。ユーザーが索引の 2 つのマークの間のデータを取得しようとし、かつその 2 つのマークが同じ 1 か月の範囲内に収まっている場合、ClickHouse はクエリのパラメータと索引マークとの距離を計算できるため、この特定のケースでは索引を使用できます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 282cc37dc9e..dd1fc9d544c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -7,13 +7,8 @@ title: 'テキストインデックスによる全文検索' doc_type: 'reference' --- -import BetaBadge from '@theme/badges/BetaBadge'; - - # テキストインデックスによる全文検索 \{#full-text-search-with-text-indexes\} - - テキストインデックス([inverted indexes](https://en.wikipedia.org/wiki/Inverted_index) とも呼ばれます)は、テキストデータに対する高速な全文検索を可能にします。 テキストインデックスは、トークンから、それぞれのトークンを含む行番号への対応関係を格納します。 トークンは、トークナイゼーションと呼ばれる処理によって生成されます。 @@ -43,7 +38,7 @@ import BetaBadge from '@theme/badges/BetaBadge'; 3: i, have, two, dogs, and, a, cat ``` -また、「I」「the」「and」など、ほぼすべての行に含まれるフィラーワードも削除します。 +また、「I」「the」「and」などの、ほぼすべての行に出現する語も削除します。 ```result 1: cat, likes, mice @@ -51,7 +46,7 @@ import BetaBadge from '@theme/badges/BetaBadge'; 3: have, two, dogs, cat ``` -テキスト索引には(概念的には)次のような情報が含まれます。 +(概念的には)テキスト索引には次のような情報が含まれます。 ```result afraid : [2] @@ -81,13 +76,7 @@ If query SELECT value FROM system.settings WHERE name = 'compatibility'; ``` -返り値 - -```text -25.4 -``` - -または値を 26.2 より小さくする場合は、テキスト索引を使用するために、さらに 3 つの設定を行う必要があります。 +`26.2` 未満の値(例: `25.4`)が返ってきた場合は、テキスト索引を使用するために、追加で 3 つの設定を行う必要があります。 ```sql SET enable_full_text_index = true; @@ -147,7 +136,7 @@ ALTER TABLE table ``` -既存のテーブルに索引を追加する場合、既存テーブルのパーツに対してその索引をマテリアライズすることを推奨します(そうしないと、索引のないパーツでの検索は低速な総当たりスキャンにフォールバックします)。 +既存のテーブルに索引を追加する場合、既存テーブルのパーツに対してその索引をマテリアライズすることを推奨します(そうしないと、索引のないパーツでの検索は低速な総当たりスキャンにフォールバックしてしまいます)。 ```sql ALTER TABLE table MATERIALIZE INDEX text_idx SETTINGS mutations_sync = 2; diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md index 7bd4116f791..2e6f08f1e03 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # Dictionary テーブルエンジン \{#dictionary-table-engine\} -`Dictionary` エンジンは、[Dictionary](../../../sql-reference/dictionaries/index.md) のデータを ClickHouse のテーブルとして利用できるようにします。 +`Dictionary` エンジンは、[Dictionary](../../../sql-reference/statements/create/dictionary/index.md) のデータを ClickHouse のテーブルとして利用できるようにします。 ## 例 \{#example\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md b/i18n/jp/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md index 8552135a314..e4841add445 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md @@ -168,7 +168,8 @@ SELECT mcc, count() FROM cell_towers GROUP BY mcc ORDER BY count() DESC LIMIT 10 上記のクエリおよび [MCC リスト](https://en.wikipedia.org/wiki/Mobile_country_code) に基づくと、基地局数が最も多い国は米国、ドイツ、ロシアです。 -これらの値をデコードするために、ClickHouse で [Dictionary](../../sql-reference/dictionaries/index.md) を作成することを検討してもよいでしょう。 +これらの値をデコードするために、ClickHouse で [Dictionary](../../sql-reference/statements/create/dictionary/index.md) を作成することを検討してもよいでしょう。 + ## ユースケース:地理データの活用 \{#use-case\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md index a97879997f6..6d1b8979e80 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md @@ -30,12 +30,12 @@ dbt は、[ClickHouse がサポートするアダプター](https://github.com/C {/*AUTOGENERATED_START*/ } -| ページ | 説明 | -| ---------------------------------------------------------------------------- | --------------------------------------------- | -| [Features and Configurations](/integrations/dbt/features-and-configurations) | 利用可能な機能と一般的な設定の概要 | -| [Materializations](/integrations/dbt/materializations) | 利用可能なマテリアライゼーションとその設定 | -| [Guides](/integrations/dbt/guides) | dbt を ClickHouse と連携して使用するためのガイド | -| [Materialized Views](/integrations/dbt/materialization-materialized-view) | materialized_view マテリアライゼーションに関する専用ドキュメント | +| ページ | 説明 | +| --------------------------------------------------------------------------------------------- | --------------------------------------------- | +| [Features and Configurations](/integrations/dbt/features-and-configurations) | 利用可能な機能と一般的な設定の概要 | +| [Materializations](/integrations/dbt/materializations) | 利用可能なマテリアライゼーションとその設定 | +| [Guides](/integrations/dbt/guides) | dbt を ClickHouse と連携して使用するためのガイド | +| [Materialization: materialized_view](/integrations/dbt/materialization-materialized-view) | materialized_view マテリアライゼーションに関する専用ドキュメント | {/*AUTOGENERATED_END*/ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md index d0f09bab0ae..5239e407c7b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md @@ -3,8 +3,8 @@ sidebar_label: 'マテリアライゼーション: materialized_view' slug: /integrations/dbt/materialization-materialized-view sidebar_position: 4 description: 'materialized_view マテリアライゼーション専用のドキュメント' -keywords: ['ClickHouse', 'dbt', 'materialized view', 'リフレッシュ可能', '外部ターゲットテーブル', 'キャッチアップ'] -title: 'Materialized Views' +keywords: ['ClickHouse', 'dbt', 'materialized_view', 'リフレッシュ可能', 'Materialized Views', 'キャッチアップ'] +title: 'マテリアライゼーション: materialized_view' doc_type: 'guide' --- @@ -292,13 +292,63 @@ GROUP BY event_date, event_type 1. `materialization_target_table()` の呼び出しを更新する 2. `dbt run --full-refresh -s your_mv_model` を実行する -### 暗黙的ターゲット方式と明示的ターゲット方式の動作比較\{#explicit-target-behavior\} +### よくある問題のトラブルシューティング \{#explicit-target-troubleshooting\} -| Operation | Implicit target | Explicit target | -| --- | --- | --- | -| First dbt run | すべてのリソースが作成される | すべてのリソースが作成される | -| Next dbt run | **個々のリソースを個別に管理できず、すべてが一括で処理される:**

**target table**:
変更は `on_schema_change` 設定で管理される。デフォルトでは `ignore` が設定されているため、新しいカラムは反映されない。

**MVs**: すべてが `alter table modify query` 操作で更新される | **変更を個別に適用できる:**

**target table**:
dbt で定義された MVs の target table かどうかを自動検出する。該当する場合、カラムの変更はデフォルトで `mv_on_schema_change` 設定の `fail` 値で管理されるため、カラムが変更されると失敗する。このデフォルト値は保護レイヤーとして追加されている。

**MVs**: それぞれの SQL が `alter table modify query` 操作で更新される。 | -| dbt run --full-refresh | **個々のリソースを個別に管理できず、すべてが一括で処理される:

target table**:
target table が空の状態で再作成される。すべての MVs の SQL をまとめて用いたバックフィルを構成するために `catchup` を利用できる。`catchup` はデフォルトで `True`。

**MVs**: すべて再作成される。 | **変更は個別に適用される:

target table:** 通常どおり再作成される。

**MVs**: drop して再作成される。初回バックフィルのために `catchup` を利用できる。`catchup` はデフォルトで `True`。

**注記: この処理の間、MVs が再作成されるまで target table は空、または部分的にしかデータがロードされていない状態になる。これを回避するには、次のセクションの target table を反復的に更新する方法について参照すること。**| +#### `run` 実行中または実行後にターゲットテーブルが空のままになる \{#target-table-empty\} + +これが起こりうる理由はいくつかあります。 + +- materialized view が `catchup=False` で設定されているか、ターゲットテーブルが `repopulate_from_mvs_on_full_refresh=False` で設定されているために、materialized view の作成時やターゲットテーブルの再作成時にバックフィルが実行されない可能性があります。これは想定された動作です。そのため、materialized view の SQL を使ってデータを再投入したい場合は、materialized view で `catchup=True`(デフォルト値)を設定するか、ターゲットテーブルで `repopulate_from_mvs_on_full_refresh=True` を設定してください。重複を避けるため、両方を同時に有効にしないように注意してください。詳細については [configuration セクション](#explicit-target-configuration) を確認してください。 +- `dbt run --full-refresh` を実行している間、materialized view がデフォルトの `catchup=True` を使用している場合、ターゲットテーブルは再作成され、MV がデータを順番に再投入します。この状況を避けるには、[Full refresh with explicit targets](#explicit-target-full-refresh) を確認してください。 + +#### `repopulate_from_mvs_on_full_refresh=True` が設定されたターゲットテーブルに対して `dbt run --full-refresh` を実行すると、プロジェクト内の現在の SQL ではなく、古い materialized view バージョンのロジックが使用される \{#full-refresh-with-repopulate-from-mvs-on-full-refresh\} + +`repopulate_from_mvs_on_full_refresh=True` は、ClickHouse にすでに定義されている既存の MV(materialized view)の SQL を使用します。新しい materialized view 定義が使用されるようにするには、ターゲットテーブルで `dbt run --full-refresh` を実行する前に、各 materialized view に対して `dbt run` を実行してください。 + +#### 実行後に重複データが発生する \{#duplicate-data\} + +考えられる原因: + +- materialized view 側で `catchup=True` が有効になっており、かつターゲットテーブル側で `repopulate_from_mvs_on_full_refresh=True` も有効になっている場合: 実行したい処理に応じて、どちらか一方のみを有効にしてください。詳細については[設定セクション](#explicit-target-configuration)を参照してください。 +- ターゲットテーブルが `WHERE 0` を付けずに定義されている場合: ターゲットテーブルは空で作成されるべきですが、`WHERE 0` が含まれていないと、内部クエリによってデータが挿入される可能性があります。この句が必ず含まれていることを確認してください。 + +#### アクティブなインジェスト中に `dbt run --full-refresh` が実行された場合のデータ損失 \{#data-loss-active-ingestion\} + +`dbt run --full-refresh` を実行した後、ソーステーブルの一部の行がターゲットテーブルに存在しないことがあります。 +ClickHouse の materialized view は insert トリガーとして動作し、存在している間にのみデータを取り込みます。フルリフレッシュ中には、MV が削除されて再作成される短時間の空白期間(「blind window」)が発生します。この期間中にソーステーブルに挿入された行は取り込まれません。詳細については、[アクティブなインジェスト中の動作](#behavior-during-active-ingestion) セクションを参照してください。 + +### デバッグ方法 \{#debugging-techniques\} + +#### ClickHouse 内の MV の現在の出力先を確認する \{#check-mv-target\} + +materialized view がどこに書き込んでいるかを確認するには、`system.tables` を照会します。 + +```sql +SELECT + name as mv_name, + replaceRegexpOne( + create_table_query, + '.*TO\\s+`?([^`\\s(]+)`?\\.`?([^`\\s(]+)`?.*', + '\\1.\\2' + ) AS target_table +FROM system.tables +WHERE database = 'your_schema' + AND engine = 'MaterializedView' +``` + + +#### dbt がテーブルを materialized view のターゲットとして認識しているか確認する \{#check-dbt-recognition\} + +dbt の実行中に、次のログメッセージが出力されているか確認します: + +>Table `` is used as a target by a dbt-managed materialized view. Defaulting mv_on_schema_change to "fail" to prevent data loss. + +このメッセージが表示される場合、そのテーブルが少なくとも 1 つの dbt 管理の materialized view のターゲットとして検出されたことを意味します。 +このメッセージが表示されるはずなのに出てこない場合は、次の点を確認してください: + +- materialized view モデルで `{{ materialization_target_table(ref('your_target')) }}` が正しく定義されていること +- materialized view モデルの config に `materialized='materialized_view'` が指定されていること +- materialized view とターゲットテーブルの両方が少なくとも一度は実行されていること ### 暗黙的ターゲットから明示的ターゲットへの移行 \{#migration-implicit-to-explicit\} @@ -367,23 +417,34 @@ select a, b, c from {{ source('raw', 'table_2') }} **3. 必要に応じて、[明示的なターゲット](#explicit-target) セクションの手順に従って反復的に更新します。** -## インジェスト実行中の挙動 \{#behavior-during-active-ingestion\} +## 暗黙的ターゲット方式と明示的ターゲット方式の動作比較\{#behavior-comparison\} + +### 一般的な動作 \{#general-behavior\} + +| Operation | Implicit target | Explicit target | +| --- | --- | --- | +| First dbt run | すべてのリソースが作成される | すべてのリソースが作成される | +| Next dbt run | **個々のリソースを個別には管理できず、すべて一括で処理される:**

**target table**:
変更は `on_schema_change` 設定で管理される。デフォルトでは `ignore` に設定されているため、新しいカラムは処理されない。

**Materialized views**: すべてが `alter table modify query` 操作で更新される | **変更は個別に適用できる:

target table**:
dbt で定義された materialized view によって生成された target table かどうかを自動検出する。該当する場合、スキーマ変更はデフォルトで `mv_on_schema_change` 設定の `fail` 値で管理されるため、カラムが変更されると失敗する。このデフォルト値は保護レイヤーとして追加されている。

**Materialized views**: 各ビューの SQL が `alter table modify query` 操作で更新される。 | +| dbt run --full-refresh | **個々のリソースを個別には管理できず、すべて一括で処理される:

target table**:
target table が空の状態で再作成される。すべての materialized view の SQL をまとめて用いたバックフィルを構成するために `catchup` を利用できる。`catchup` はデフォルトで `True`。

**Materialized views**: すべて再作成される。 | **変更は個別に適用される:

target table:** 通常どおり再作成される。

**Materialized views**: drop して再作成する。初回バックフィルのために `catchup` を利用できる。`catchup` はデフォルトで `True`。

**注意: この処理の間、materialized view が再作成されるまでは target table は空、もしくは一部のみロードされた状態になる。これを避けるには、次のセクションで説明する target table の繰り返し更新の方法を確認すること。**| + +### インジェスト実行中の挙動 \{#behavior-during-active-ingestion\} -ClickHouse の materialized view は **insert トリガー** として動作するため、存在している期間のデータしか取り込みません。materialized view が削除されて再作成された場合(たとえば `--full-refresh` 中など)、その時間枠にソーステーブルへ挿入された行は MV によって処理され **ません**。この状態は MV が「blind」であると呼ばれます。 +モデルを反復的に更新する際には、さまざまな操作が挿入中のデータとどのように相互作用するかを理解しておく必要があります。 -さらに、**catch-up** 処理(MV 側の `catchup`、あるいはターゲットテーブル側の `repopulate_from_mvs_on_full_refresh` のいずれの場合も)は、MV の SQL を用いて `INSERT INTO ... SELECT` を実行します。ソーステーブルへの挿入が同時に行われていると、catch-up クエリには MV がすでに処理した(または作成直後に処理する)行が含まれる可能性があり、ターゲットテーブル内に **重複データ** が発生しうる点に注意が必要です。ターゲットテーブルで `ReplacingMergeTree` のような重複排除を行うエンジンを使用することで、このリスクを低減できます。 +- ClickHouse の materialized view は **insert トリガー** として動作するため、存在している期間のデータしか取り込みません。materialized view が削除されて再作成された場合(たとえば `--full-refresh` 中など)、その時間枠にソーステーブルへ挿入された行は materialized view によって処理され **ません**。この状態は materialized view が「blind」であると呼ばれます。 +- 各種 `catchup` プロセスはすべて、materialized view の SQL を用いた `INSERT INTO ... SELECT` 操作に基づいており、materialized view 自体の動作とは独立しています。いったん `INSERT` が開始されると、その処理によって新しいデータは取り込まれませんが、アタッチされている materialized view によって取り込まれます。 次の表は、ソーステーブルに対して挿入が継続的に行われているときに、各操作がどの程度安全かをまとめたものです。 -### 暗黙的なターゲット操作 \{#ingestion-implicit-target\} +#### 暗黙的なターゲット操作 \{#ingestion-implicit-target\} | 操作 | 内部処理 | 挿入実行中の安全性 | |-----------|------------------|------------------------------------| -| 最初の `dbt run` | 1. ターゲットテーブルを作成
2. データを挿入(`catchup=True` の場合)
3. MV を作成 | ⚠️ **ステップ 1〜3 の間、MV はソースへの挿入を検知できません。** この間にソースに挿入された行は取り込まれません。 | -| 2 回目以降の `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 安全。MV はアトミックに更新されます。 | -| `dbt run --full-refresh` | 1. バックアップテーブルを作成
2. データを挿入(`catchup=True` の場合)
3. MV を DROP
4. テーブルを交換
5. MV を再作成 | ⚠️ **再作成中、MV はソースへの挿入を検知できません。** ステップ 3〜5 の間にソースに挿入されたデータは、新しいターゲットテーブルには反映されません。 | +| 最初の `dbt run` | 1. ターゲットテーブルを作成
2. データを挿入(`catchup=True` の場合)
3. materialized view を作成 | ⚠️ **ステップ 1〜3 の間、materialized view はソースへの挿入を検知できません。** この間にソースに挿入された行は取り込まれません。 | +| 2 回目以降の `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 安全。materialized view はアトミックに更新されます。 | +| `dbt run --full-refresh` | 1. バックアップテーブルを作成
2. データを挿入(`catchup=True` の場合)
3. materialized view を DROP
4. テーブルを交換
5. materialized view を再作成 | ⚠️ **再作成中、materialized view はソースへの挿入を検知できません。** ステップ 3〜5 の間にソースに挿入されたデータは、新しいターゲットテーブルには反映されません。 | -### 明示的なターゲット操作 \{#ingestion-explicit-target\} +#### 明示的なターゲット操作 \{#ingestion-explicit-target\} **materialized view モデル:** diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md index a23a76a5ff1..20df9e66351 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md @@ -9,4 +9,4 @@ doc_type: 'reference' # Cassandra 連携 \{#cassandra-integration\} -Cassandra との連携は Dictionary を介して行えます。詳細は[こちら](/sql-reference/dictionaries#cassandra)を参照してください。 \ No newline at end of file +Cassandra との連携は Dictionary を介して行えます。詳細は[こちら](/sql-reference/statements/create/dictionary/sources/cassandra)を参照してください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index 01d7bdb4e7c..2e2d7c0cc7f 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -42,9 +42,6 @@ ClickHouse に接続するための公式の C# クライアントです。 `ClickHouse.Driver` は、次の .NET バージョンに対応しています。 -* .NET Framework 4.6.2 -* .NET Framework 4.8 -* .NET Standard 2.1 * .NET 6.0 * .NET 8.0 * .NET 9.0 @@ -355,8 +352,8 @@ using ClickHouse.Driver; using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("id", 1L); -parameters.Add("name", "Alice"); +parameters.AddParameter("id", 1L); +parameters.AddParameter("name", "Alice"); await client.ExecuteNonQueryAsync( "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})", @@ -413,7 +410,7 @@ var options = new InsertOptions using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("max_id", 100L); +parameters.AddParameter("max_id", 100L); var reader = await client.ExecuteReaderAsync( "SELECT * FROM default.my_table WHERE id < {max_id:Int64}", @@ -683,7 +680,7 @@ while (reader.Read()) 3. **SQL の型ヒントでタイムゾーンを指定する。** `Unspecified` の DateTime 値を、UTC ではない DateTime カラムに対するパラメータとして使用する場合は、SQL 内にタイムゾーンを含めます: ```csharp var parameters = new ClickHouseParameterCollection(); - parameters.Add("dt", myDateTime); + parameters.AddParameter("dt", myDateTime); await client.ExecuteNonQueryAsync( "INSERT INTO table (dt) VALUES ({dt:DateTime('Europe/Amsterdam')})", diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx index c92cab20652..2e6fabb74f6 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx @@ -123,9 +123,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 証明書と鍵を検証するには、[openssl](https://docs.openssl.org/master/man1/openssl/)のようなツールを使用してください: * 秘密鍵の整合性を確認します: `openssl rsa -in [key-file.key] -check -noout` - * クライアント証明書の CN が対象ユーザーのものと一致していることを確認する: + * クライアント証明書の CN がユーザーと一致していることを確認します: * ユーザー証明書から CN を取得します - `openssl x509 -noout -subject -in [user.cert]` - * 次のクエリを実行して、同じ値がデータベースに設定されていることを確認します: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'`(このクエリでは、`auth_params` に ` {"common_names":["some_user"]}` のような値が出力されます) + * 次のクエリを実行して、同じ値がデータベース側に設定されていることを確認します: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'`(このクエリでは、`auth_params` フィールドに ` {"common_names":["some_user"]}` のような値が出力されます) ::: @@ -177,8 +177,8 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | Method | Arguments | Description | Default | Key | | ------------------------------------ | --------------------- | ------------------------------------------------------------------------------------- | ------- | -------------------- | - | `setSocketRcvbuf(long size)` | `size` - バイト数 | TCP ソケットの受信バッファを設定します。このバッファは JVM の管理外メモリ上に確保されます。 | `8196` | `socket_rcvbuf` | - | `setSocketSndbuf(long size)` | `size` - バイト数 | TCP ソケットの送信バッファを設定します。このバッファは JVM の管理外メモリ上に確保されます。 | `8196` | `socket_sndbuf` | + | `setSocketRcvbuf(long size)` | `size` - バイト数 | TCP ソケットの受信バッファを設定します。このバッファは JVM 管理外のメモリ上に確保されます。 | `8196` | `socket_rcvbuf` | + | `setSocketSndbuf(long size)` | `size` - バイト数 | TCP ソケットの送信バッファを設定します。このバッファは JVM 管理外のメモリ上に確保されます。 | `8196` | `socket_sndbuf` | | `setSocketKeepAlive(boolean value)` | `value` - 有効/無効を示すフラグ | すべての TCP ソケットに対してオプション `SO_KEEPALIVE` を設定します。TCP Keep-Alive は、接続の生存状態を確認する仕組みを有効にします。 | - | `socket_keepalive` | | `setSocketTcpNodelay(boolean value)` | `value` - 有効/無効を示すフラグ | すべての TCP ソケットに対してオプション `SO_NODELAY` を設定します。この TCP オプションにより、ソケットは可能な限り速やかにデータを送信します。 | - | `socket_tcp_nodelay` | | `setSocketLinger(int secondsToWait)` | `secondsToWait` - 秒数 | クライアントが作成するすべての TCP ソケットに対して linger 時間を設定します。 | - | `socket_linger` | @@ -208,10 +208,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------- | ------- | ---------------------------------------- | - | `addProxy(ProxyType type, String host, int port)` | `type` - プロキシの種類
`host` - プロキシのホスト名または IP
`port` - プロキシのポート番号 | サーバーとの通信に使用するプロキシを設定します。 | - | `proxy_type`, `proxy_host`, `proxy_port` | - | `setProxyCredentials(String user, String pass)` | `user` - プロキシのユーザー名
`pass` - パスワード | プロキシ認証に使用するユーザー認証情報を設定します。 | - | `proxy_user`, `proxy_password` | + | Method | Arguments | Description | Default | Key | + | ------------------------------------------------- | ----------------------------------------------------------------------- | ---------------------------- | ------- | ---------------------------------------- | + | `addProxy(ProxyType type, String host, int port)` | `type` - プロキシの種類
`host` - プロキシのホスト名または IP
`port` - プロキシのポート番号 | サーバーとの通信に使用するプロキシを設定します。 | - | `proxy_type`, `proxy_host`, `proxy_port` | + | `setProxyCredentials(String user, String pass)` | `user` - プロキシのユーザー名
`pass` - パスワード | プロキシでの認証に使用するユーザー資格情報を設定します。 | - | `proxy_user`, `proxy_password` |
@@ -223,7 +223,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `httpHeaders(Map headers)` | `headers` - HTTP ヘッダーを含むマップ | 複数の HTTP ヘッダー値をまとめて設定します。 | `none` | `none` | - + | Method | Arguments | Description | Default | Key | | ----------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------- | ------- | ------ | | `serverSetting(String name, String value)` | `name` - 設定名
`value` - 設定値 | 各クエリとともにサーバーへ渡す設定を指定します。個々の操作で指定された設定によって上書きされる場合があります。 [設定の一覧](/operations/settings/query-level) | `none` | `none` | @@ -256,6 +256,44 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra
+ ### クライアント識別 \{#client-identification\} + + クエリログには、リクエストの発信元アプリケーションを識別するフィールドが2つあります: `client_name` と `http_user_agent` です。ネイティブ TCP プロトコルはアプリケーションの識別に `client_name` を使用し、HTTP プロトコルは `http_user_agent` を使用します。クライアントビルダーには、両プロトコルに対して正しい値を設定するための `setClientName` メソッドがあります。 + `http_user_agent` フィールドは、`User-Agent` ヘッダーの一般的な形式に従って設定されます: `application-name[/version] [(operating-system; architecture; ...)]`。 + この値のセットは、アプリケーション、クライアントライブラリ、HTTP クライアントライブラリの各レイヤーに対して繰り返されます。`setClientName` メソッドで設定された値がリストの先頭に来ます。 + + 例: + + ```java showLineNumbers + client.setClientName("my-app-01/1.0"); + ``` + + これにより、次の `http_user_agent` 値が生成されます: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + アプリケーションは自身を識別するために独自のHTTPヘッダー `User-Agent` を設定できます。ただし、`clickhouse-java-v2/0.9.6-SNAPSHOT` の部分がヘッダーの末尾に追加されます。 + + ### 操作の識別 \{#operation-identification\} + + クエリログには、操作を識別しクエリログに追加情報を付加するために使用できる `query_id` と `log_comment` という2つのフィールドがあります。 + + `query_id` は操作の一意の識別子です。アプリケーションから `QuerySettings` クラスの `setQueryId` メソッドを呼び出すことで設定できます。 + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.setQueryId("some-query-id"); + ``` + + `log_comment` はクエリログに追加できるコメントです。`QuerySettings` クラスの `logComment` メソッドを呼び出すことで、アプリケーションから設定できます。 + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.logComment("some-comment"); + ``` + ### サーバー設定 \{#server-settings\} サーバー側の設定は、クライアント作成時に一度クライアントレベルで設定できます(`Builder`の`serverSetting`メソッドを参照)。また、操作レベルでも設定できます(操作設定クラスの`serverSetting`を参照)。 @@ -303,9 +341,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra [サポートされている形式](/interfaces/formats)の列挙型。ClickHouseがサポートするすべての形式を含みます。 - * `raw` - 利用者が生データのトランスコードを行う必要があります - * `full` - クライアント側でデータのトランスコードを行い、生のデータストリームをそのまま受け取ることができます - * `-` - この形式では ClickHouse がサポートしていない操作 + * `raw` - ユーザー側で生データをトランスコードする必要があります + * `full` - クライアントが自前でデータのトランスコードを行い、生のデータストリームをそのまま受信できます + * `-` - この形式に対して ClickHouse がサポートしない操作 このクライアントバージョンは以下をサポートします: @@ -375,15 +413,15 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | [ArrowStream](/interfaces/formats/ArrowStream) | raw | raw | | [ORC](/interfaces/formats/ORC) | raw | raw | | [One](/interfaces/formats/One) | raw | * | - | [Npy](/interfaces/formats/Npy) | raw | 生データ | + | [Npy](/interfaces/formats/Npy) | raw | raw | | [RowBinary](/interfaces/formats/RowBinary) | full | full | | [RowBinaryWithNames](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | - | [RowBinaryWithNamesAndTypes](/interfaces/formats/RowBinaryWithNamesAndTypes) | フル | フル | + | [RowBinaryWithNamesAndTypes](/interfaces/formats/RowBinaryWithNamesAndTypes) | full | full | | [RowBinaryWithDefaults](/interfaces/formats/RowBinaryWithDefaults) | full | - | - | [Native](/interfaces/formats/Native) | full | 生データ | + | [Native](/interfaces/formats/Native) | full | raw | | [Null](/interfaces/formats/Null) | * | raw | | [XML](/interfaces/formats/XML) | - | raw | - | [CapnProto](/interfaces/formats/CapnProto) | raw | 生データ | + | [CapnProto](/interfaces/formats/CapnProto) | raw | raw | | [LineAsString](/interfaces/formats/LineAsString) | raw | raw | | [Regexp](/interfaces/formats/Regexp) | raw | * | | [RawBLOB](/interfaces/formats/RawBLOB) | raw | raw | @@ -476,14 +514,14 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 挿入操作の構成オプション。 - **構成方法** + **設定メソッド** | メソッド | 説明 | | ----------------------------------------------- | -------------------------------------------------------------------------------- | | `setQueryId(String queryId)` | 操作に割り当てるクエリ ID を設定します。デフォルト: `null`。 | - | `setDeduplicationToken(String token)` | 重複排除トークンを設定します。このトークンはサーバーに送信され、クエリを識別するために利用できます。デフォルト: `null`。 | - | `setInputStreamCopyBufferSize(int size)` | コピー用バッファのサイズ。書き込み操作時に、ユーザーが提供した入力ストリームから出力ストリームへデータをコピーする際に使用されます。デフォルト: `8196`。 | - | `serverSetting(String name, String value)` | 個々の操作に対するサーバー設定を指定します。 | + | `setDeduplicationToken(String token)` | 重複排除トークンを設定します。このトークンはサーバーに送信され、クエリを識別するために使用できます。デフォルト: `null`。 | + | `setInputStreamCopyBufferSize(int size)` | コピー用バッファのサイズ。書き込み処理時に、ユーザーが提供した入力ストリームから出力ストリームへデータをコピーする際に使用されます。デフォルト: `8196`。 | + | `serverSetting(String name, String value)` | 操作単位で個別のサーバー設定を指定します。 | | `serverSetting(String name, Collection values)` | 操作用に複数の値を持つ個別のサーバー設定を指定します。コレクションの要素は `String` 型の値である必要があります。 | | `setDBRoles(Collection dbRoles)` | 操作の実行前に有効にする DB ロールを設定します。コレクションの要素はすべて `String` 値である必要があります。 | | `setOption(String option, Object value)` | 構成オプションを生の値として設定します。これはサーバー設定ではありません。 | @@ -496,10 +534,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra このオブジェクトは接続を解放するため、できるだけ早くクローズする必要があります。前のレスポンスのすべてのデータが完全に読み取られるまで、接続を再利用できません。 ::: - | メソッド | 説明 | - | ------------------------------- | ---------------------------------------------------- | - | `OperationMetrics getMetrics()` | 操作メトリクスを表すオブジェクトを返します。 | - | `String getQueryId()` | アプリケーション(操作設定経由)またはサーバーによってこの操作に割り当てられたクエリ ID を返します。 | + | メソッド | 説明 | + | ------------------------------- | -------------------------------------------------------- | + | `OperationMetrics getMetrics()` | 操作メトリクスを表すオブジェクトを返します。 | + | `String getQueryId()` | この操作に対して、アプリケーション(操作設定経由)またはサーバーによって割り当てられたクエリ ID を返します。 | ## クエリAPI \{#query-api\} @@ -522,7 +560,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **戻り値** - `QueryResponse`型の将来形 - 結果データセットおよびサーバー側メトリクスのような追加情報。データセットを使い終わったら Response オブジェクトをクローズする必要があります。 + `QueryResponse`型の Future — 結果データセットおよびサーバー側メトリクスなどの追加情報。データセットを使い終わったら Response オブジェクトをクローズする必要があります。 **例** @@ -572,7 +610,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **戻り値** - `QueryResponse`型の将来値 - 結果データセットとサーバー側メトリクスなどの追加情報。データセットを消費した後はResponseオブジェクトをクローズする必要があります。 + `QueryResponse`型の Future — 結果データセットおよびサーバー側メトリクスなどの追加情報。データセットを使い終わったら Response オブジェクトをクローズする必要があります。 **例** @@ -642,34 +680,34 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra クエリ操作の構成オプション。 - **構成方法** - - | メソッド | 説明 | - | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | 操作に割り当てられるクエリ ID を設定します。 | - | `setFormat(ClickHouseFormat format)` | レスポンス形式を設定します。利用可能な形式の完全な一覧については `RowBinaryWithNamesAndTypes` を参照してください。 | - | `setMaxExecutionTime(Integer maxExecutionTime)` | サーバー側での操作の最大実行時間を設定します。読み取りタイムアウトには影響しません。 | - | `waitEndOfQuery(Boolean waitEndOfQuery)` | レスポンスを返す前にクエリの終了を待機するようサーバーに要求します。 | - | `setUseServerTimeZone(Boolean useServerTimeZone)` | クライアント設定で指定されたサーバーのタイムゾーンが、操作結果内の日付/時刻型を解釈する際に使用されます。デフォルトは `false` です。 | - | `setUseTimeZone(String timeZone)` | サーバーに対し、時刻変換に `timeZone` を使用するよう要求します。[session_timezone](/operations/settings/settings#session_timezone) を参照してください。 | - | `serverSetting(String name, String value)` | 操作ごとに個別のサーバー設定を指定します。 | - | `serverSetting(String name, Collection values)` | 操作用に複数の値を持つ個別のサーバー設定を指定します。コレクションの要素は `String` 型の値である必要があります。 | - | `setDBRoles(Collection dbRoles)` | 操作実行前に有効化する DB ロールを設定します。コレクションの要素はすべて `String` 値である必要があります。 | - | `setOption(String option, Object value)` | 構成オプションを生の形式で設定します。これはサーバー設定ではありません。 | + **設定方法** + + | メソッド | 説明 | + | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | 操作に割り当てるクエリ ID を設定します。 | + | `setFormat(ClickHouseFormat format)` | レスポンス形式を設定します。利用可能な形式の一覧については `RowBinaryWithNamesAndTypes` を参照してください。 | + | `setMaxExecutionTime(Integer maxExecutionTime)` | サーバー側での操作の最大実行時間を設定します。読み取りタイムアウトには影響しません。 | + | `waitEndOfQuery(Boolean waitEndOfQuery)` | レスポンスを返す前にクエリの終了を待機するようサーバーに要求します。 | + | `setUseServerTimeZone(Boolean useServerTimeZone)` | クライアント設定で指定されたサーバーのタイムゾーンを用いて、操作結果内の日付/時刻型の値を解析します。デフォルト値は `false` です。 | + | `setUseTimeZone(String timeZone)` | サーバーに対して、時刻の変換に `timeZone` を使用するよう要求します。[session_timezone](/operations/settings/settings#session_timezone) を参照してください。 | + | `serverSetting(String name, String value)` | 操作ごとに個別のサーバー設定を指定します。 | + | `serverSetting(String name, Collection values)` | 操作に対して、1 つのサーバー設定に複数の値を設定します。コレクションの要素は `String` 型の値である必要があります。 | + | `setDBRoles(Collection dbRoles)` | 操作の実行前に適用する DB ロールを設定します。コレクションの要素はすべて `String` 値である必要があります。 | + | `setOption(String option, Object value)` | 構成オプションを生の値として設定します。これはサーバー設定ではありません。 | ### QueryResponse \{#queryresponse\} クエリの実行結果を保持するレスポンスオブジェクトです。クライアントがサーバーからレスポンスを受け取った場合にのみ利用可能です。 :::note - このオブジェクトは接続を解放するため、できるだけ早くクローズする必要があります。前のレスポンスのすべてのデータが完全に読み取られるまで、接続は再利用できません。 + このオブジェクトは接続を解放するため、できるだけ早くクローズする必要があります。前のレスポンスのすべてのデータが完全に読み取られるまで、接続を再利用できません。 ::: | メソッド | 説明 | | ------------------------------- | -------------------------------------------------- | - | `ClickHouseFormat getFormat()` | レスポンスデータのエンコード形式を返します。 | - | `InputStream getInputStream()` | 指定された形式の非圧縮データのバイトストリームを返します。 | - | `OperationMetrics getMetrics()` | 操作メトリクスを表すオブジェクトを返します。 | + | `ClickHouseFormat getFormat()` | レスポンス内のデータがエンコードされている形式を返します。 | + | `InputStream getInputStream()` | 指定された形式でエンコードされた非圧縮データのバイトストリームを返します。 | + | `OperationMetrics getMetrics()` | 操作メトリクスを保持するオブジェクトを返します。 | | `String getQueryId()` | アプリケーション(操作設定またはサーバー)によってこの操作に割り当てられたクエリ ID を返します。 | | `TimeZone getTimeZone()` | レスポンス内の Date/DateTime 型を処理する際に使用するタイムゾーンを返します。 | @@ -748,9 +786,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 完全なサンプルコードは、リポジトリの `example` [フォルダ](https://github.com/ClickHouse/clickhouse-java/tree/main/examples)に格納されています: - * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - 主なサンプル集です。 - * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - Spring Boot アプリケーションにおけるクライアントの使用例。 - * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - Ktor(Kotlin)アプリケーションでクライアントを使用するサンプルです。 + * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - 主要なサンプル一式です。 + * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - Spring Boot アプリケーションでクライアントを使用する例。 + * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - Ktor(Kotlin)ベースのアプリケーションでクライアントを使用するサンプルです。 ## データの読み取り \{#reading-data\} @@ -758,8 +796,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra * `query()` メソッドは、データを含む `InputStream` を保持する低レベルな `QueryResponse` オブジェクトを返します。通常はストリーミング読み取りのために `ClickHouseBinaryFormatReader` と組み合わせて使用されますが、他の任意のカスタムリーダー実装でも利用できます。`QueryResponse` は、結果セットのメタデータおよびメトリクスへのアクセスも提供します。 * `queryAll()` メソッドと `GenericRecord` を使用すると、行単位でのデータアクセスが容易になります。この場合、結果セット全体がメモリに読み込まれます。 - * `queryRecords()` メソッドは `com.clickhouse.client.api.query.Records` を返し、これは `GenericRecord` オブジェクト用のイテレータです。このメソッドはストリーミング方式を採用しており - (データはメモリにロードされません)、`GenericRecord` を通じてデータにアクセスします。 + * `queryRecords()` メソッドは `com.clickhouse.client.api.query.Records` を返し、これは `GenericRecord` オブジェクト用のイテレータです。このメソッドはストリーミング方式を採用しており(データはメモリにロードされません)、`GenericRecord` を通じてデータにアクセスします。 **注意:** ストリーミング方式ではデータをネットワークストリームから直接読み取るため、読み取りが遅いとサーバーの書き込みタイムアウトが発生する可能性があります。 @@ -767,10 +804,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`ClickHouseBinaryFormatReader` メソッド** - * `getList(...)` - 任意の `Array(...)` を `List` として読み取ります。柔軟な型付き読み取りのデフォルトとして利用できます。ネストされた配列をサポートします。 - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - プリミティブ互換な値からなる一次元配列に最適です。 - * `getStringArray(...)` - `Array(String)`(および名前で表現される enum 値)用。 - * `getObjectArray(...)` - ネストされた配列を含む、任意の `Array(...)` 要素型に対応する汎用オプションです。Nullable 値を持つ配列やネストされた配列を読み取る際に使用します。 + * `getList(...)` - 任意の `Array(...)` を `List` として読み取ります。柔軟に型を扱う読み取りのデフォルトとして適しています。ネストされた配列をサポートします。 + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - プリミティブ型互換の値で構成された1次元配列に最適です。 + * `getStringArray(...)` - `Array(String)` 型(および名前で表現される enum 値)向け。 + * `getObjectArray(...)` - ネストされた配列を含む任意の `Array(...)` 要素型に対応する汎用的なオプションです。Nullable 値を含む配列やネストされた配列を読み取るために使用します。 すべてのメソッドに対して、インデックスベースと名前ベースのオーバーロードが利用可能です。インデックスは1始まりです。インデックスベースはカラムへの直接アクセスを行います。 名前ベースのメソッドは、毎回インデックスの検索が必要です。 @@ -792,13 +829,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`GenericRecord` メソッド** - * `getList(...)` - 任意の `Array(...)` を `List` として読み取ります。型を柔軟に扱う読み取りのデフォルトとして適しています。ネストされた配列もサポートします。 - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - プリミティブ互換の値で構成される一次元配列を扱う場合に最適です。 - * `getStringArray(...)` - `Array(String)` 型(および名前で表現される enum 値)向け。 - * `getObjectArray(...)` - ネストされた配列を含む、任意の `Array(...)` 要素型に対応する汎用的なオプションです。Nullable な値を含む配列やネストされた配列を読み取る際に使用します。 + * `getList(...)` - 任意の `Array(...)` を `List` として読み取ります。柔軟な型付き読み取りのデフォルトとして利用できます。ネストされた配列もサポートします。 + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - プリミティブ互換の値で構成された一次元配列に最適です。 + * `getStringArray(...)` - `Array(String)` 型(および名前で表現される enum 値)用。 + * `getObjectArray(...)` - ネストされた配列を含む、任意の `Array(...)` の要素型に対応できる汎用的なオプションです。Nullable な値を含む配列やネストされた配列を読み取るために使用します。 - すべてのメソッドに対して、インデックスベースおよび名前ベースのオーバーロードが利用可能です。インデックスは1始まりです。インデックスベースはカラムへの直接アクセスを行います。 - 名前ベースのメソッドは、呼び出しのたびにインデックスの検索が必要です。 + すべてのメソッドに対して、インデックスベースと名前ベースのオーバーロードが利用可能です。インデックスは1始まりです。インデックスベースはカラムへの直接アクセスを行います。 + 名前ベースのメソッドは、毎回インデックスの検索が必要です。 ````java try (QueryResponse response = client.query("SELECT * FROM my_table").get()) { @@ -1102,14 +1139,14 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra } ``` - * 呼び出すメソッドは 1 つだけで、別途リクエストオブジェクトを作成する必要はありません。 + * 呼び出すメソッドは 1 つだけで、追加のリクエストオブジェクトを作成する必要はありません。 * リクエストボディストリームは、すべてのデータのコピーが完了すると自動的にクローズされます。 - * 新しい低レベル API `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)` が利用可能です。`com.clickhouse.client.api.DataStreamWriter` は独自のデータ書き込みロジックを実装できるように設計されています。たとえば、キューからデータを読み取る場合などに利用できます。 + * 新しい低レベル API `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)` が利用可能です。`com.clickhouse.client.api.DataStreamWriter` は独自のデータ書き込みロジックを実装できるように設計されています。たとえば、キューからデータを読み出すようなケースです。 ### データの読み取り * データはデフォルトで `RowBinaryWithNamesAndTypes` フォーマットで読み込まれます。現在、データバインディングが必要な場合はこのフォーマットのみがサポートされています。 - * データは、`List com.clickhouse.client.api.Client#queryAll(java.lang.String)` メソッドを使用して、レコードのコレクションとして読み取ることができます。このメソッドはデータをメモリ上に読み込み、接続を解放します。呼び出し側での追加のリソース管理は不要です。`GenericRecord` はデータへのアクセス手段を提供し、一部の変換処理を実装しています。 + * データは、`List com.clickhouse.client.api.Client#queryAll(java.lang.String)` メソッドを使用してレコードのコレクションとして読み取れます。このメソッドはデータをメモリに読み込み、接続を解放します。呼び出し側での追加のリソース管理は不要です。`GenericRecord` はデータへのアクセス手段を提供し、各種変換処理も実装しています。 ```java Collection records = client.queryAll("SELECT * FROM table"); @@ -1303,7 +1340,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra あるいは、圧縮を無効にする方法もいくつかあります。 1. 接続URLで `compress=0` を指定して圧縮を無効化します: `http://localhost:8123/default?compress=0` - 2. クライアント設定で無効化します: + 2. クライアント設定で無効にします: ```java showLineNumbers ClickHouseClient client = ClickHouseClient.builder() @@ -1401,37 +1438,37 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | プロパティ | デフォルト | 説明 | | ------------------------------- | ------- | ------------------------------------------------------------------------- | | auto_discovery | `false` | クライアントが system テーブルおよび/または clickhouse-keeper/zookeeper から追加のノードを検出するかどうか。 | - | node_discovery_interval | `0` | ノード検出の実行間隔(ミリ秒)。値が 0 または負の場合は、一度だけ検出を実行することを意味します。 | + | node_discovery_interval | `0` | ノード検出を実行する間隔(ミリ秒)。値が 0 または負の場合は、一度だけ検出を実行することを意味します。 | | node_discovery_limit | `100` | 一度に検出対象となるノードの最大数。0 以下の値は上限なしを意味します。 | ### ロードバランシング Javaクライアントは負荷分散ポリシーに従ってリクエストを送信するClickHouseノードを選択します。一般的に、負荷分散ポリシーは次の事項を担当します: - 1. 管理対象ノードリストからノードを1つ取得します。 - 2. ノードの状態を管理する。 - 3. 必要に応じて(自動ディスカバリが有効な場合)、ノードディスカバリ用のバックグラウンドプロセスをスケジュールし、ヘルスチェックを実行します。 + 1. 管理対象ノード一覧から 1 つのノードを取得します。 + 2. ノードの状態を管理します。 + 3. (自動ディスカバリが有効な場合)必要に応じてノードディスカバリ用のバックグラウンドプロセスをスケジュールし、ヘルスチェックを実行します。 ロードバランシングを構成するためのオプションは次のとおりです: - | プロパティ | デフォルト | 説明 | - | ----------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | load_balancing_policy | `""` | ロードバランシングポリシーは次のいずれかです:
  • `firstAlive` - リクエストは管理対象ノードリストの最初の正常なノードに送信されます
  • `random` - リクエストは管理対象ノードリストからランダムに選択されたノードに送信されます
  • `roundRobin` - リクエストは管理対象ノードリスト内の各ノードに順番に送信されます
  • `ClickHouseLoadBalancingPolicy` を実装する完全修飾クラス名 - カスタムロードバランシングポリシー
  • ポリシーが指定されていない場合、リクエストは管理対象ノードリストの最初のノードに送信されます | - | load_balancing_tags | `""` | ノードを絞り込むためのロードバランシング用タグ。リクエストは指定したタグを持つノードにのみ送信されます。 | - | health_check_interval | `0` | ヘルスチェックの間隔をミリ秒単位で指定します。0 以下の値は一度だけ実行されることを意味します。 | - | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | ヘルスチェックの方法。次のいずれかを指定できます:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - `select 1` クエリの実行によってチェックします
  • `ClickHouseHealthCheckMethod.PING` - プロトコル固有のチェックで、一般的により高速です
  • | - | node_check_interval | `0` | ノードチェック間隔(ミリ秒単位)。負の値は 0 として扱われます。前回のチェックから指定した時間が経過している場合にノードのステータスがチェックされます。
    `health_check_interval` と `node_check_interval` の違いは、`health_check_interval` オプションがノード(全ノードまたは障害ノード)のリストに対してステータスをチェックするバックグラウンドジョブをスケジューリングするのに対し、`node_check_interval` は特定のノードについて、前回のチェックからどれだけの時間が経過した後にチェックを行うかを指定する点です | - | check_all_nodes | `false` | すべてのノードを対象にヘルスチェックを行うか、障害が発生しているノードのみを対象にするかを指定します。 | + | プロパティ | デフォルト | 説明 | + | ----------------------------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | load_balancing_policy | `""` | ロードバランシングポリシーは次のいずれかです:
  • `firstAlive` - リクエストは管理対象ノードのリスト内で最初に見つかった正常なノードに送信されます
  • `random` - リクエストは管理対象ノードのリストからランダムに選択されたノードに送信されます
  • `roundRobin` - リクエストは管理対象ノードのリスト内の各ノードに順番に送信されます
  • `ClickHouseLoadBalancingPolicy` を実装する完全修飾クラス名 - カスタムのロードバランシングポリシー
  • ポリシーが指定されていない場合、リクエストは管理対象ノードのリストの最初のノードに送信されます | + | load_balancing_tags | `""` | ノードを絞り込むためのロードバランシング用タグ。リクエストは指定したタグを持つノードにのみ送信されます。 | + | health_check_interval | `0` | ヘルスチェックの間隔をミリ秒単位で指定します。0 以下の値は一度だけ実行されることを意味します。 | + | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | ヘルスチェック方式。次のいずれかを指定できます:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - `select 1` クエリの実行によってチェックします
  • `ClickHouseHealthCheckMethod.PING` - プロトコル固有の方法によるチェックで、一般的により高速です
  • | + | node_check_interval | `0` | ノードチェック間隔(ミリ秒単位)。負の値は 0 として扱われます。前回のチェックから指定した時間が経過している場合にノードのステータスがチェックされます。
    `health_check_interval` と `node_check_interval` の違いは、`health_check_interval` オプションがノード(全ノードまたは障害ノード)のリストに対してステータスをチェックするバックグラウンドジョブをスケジューリングするのに対し、`node_check_interval` は特定のノードごとに、前回のチェックからどれだけ時間が経過していれば再チェックを行うかを指定する点です | + | check_all_nodes | `false` | すべてのノードを対象にヘルスチェックを行うか、障害が発生しているノードのみを対象にするかを指定します。 | ### フェイルオーバーとリトライ Javaクライアントは、失敗したクエリのフェイルオーバーおよびリトライ動作を設定するための構成オプションを提供します: - | プロパティ | デフォルト | 説明 | - | ---------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | failover | `0` | 1 つのリクエストに対して許可されるフェイルオーバーの最大回数。0 または負の値の場合は、フェイルオーバーは行われません。フェイルオーバーでは、障害から復旧するために、失敗したリクエストを(負荷分散ポリシーに従って)別のノードに送信します。 | - | retry | `0` | 1 つのリクエストに対して許可されるリトライの最大回数。0 または負の値の場合はリトライを行いません。リトライは、ClickHouse サーバーが `NETWORK_ERROR` エラーコードを返した場合にのみ、同じノードに対してリクエストを再送信します | - | repeat_on_session_lock | `true` | セッションがロックされている場合に、`session_timeout` または `connect_timeout` に従ってタイムアウトに達するまで実行を繰り返すかどうか。ClickHouse サーバーが `SESSION_IS_LOCKED` エラーコードを返した場合には、その失敗したリクエストを再試行します | + | プロパティ | デフォルト | 説明 | + | ---------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | failover | `0` | 1 つのリクエストで許可されるフェイルオーバーの最大回数。0 または負の値の場合、フェイルオーバーは行われません。フェイルオーバーとは、障害から復旧するために、失敗したリクエストを(負荷分散ポリシーに従って)別のノードに送信することです。 | + | retry | `0` | 1 つのリクエストに対して許可されるリトライの最大回数です。0 または負の値の場合はリトライを行いません。リトライは、ClickHouse サーバーが `NETWORK_ERROR` エラーコードを返した場合にのみ、同じノードに対してリクエストを再送信します。 | + | repeat_on_session_lock | `true` | セッションがロックされている場合に、`session_timeout` または `connect_timeout` に基づいてタイムアウトするまでリクエストの実行を繰り返すかどうか。ClickHouse サーバーが `SESSION_IS_LOCKED` エラーコードを返した場合、失敗したリクエストが再試行されます。 | ### カスタムHTTPヘッダーの追加 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx index 77b3274bad7..adc84349d12 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx @@ -69,9 +69,9 @@ import TabItem from '@theme/TabItem'; クラスパスに jar を追加する必要があるアプリケーションで JDBC ドライバーを使用している場合は、次の場所から jar をダウンロードしてクラスパスに追加する必要があります: - * [Maven Central](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc) から取得してクラスパスに追加します + * [Maven Central](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc) からダウンロードしてクラスパスに追加します * バージョン `0.9.4` 以降では、アーティファクト https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all が利用可能です。 - * すべての shaded 依存関係を含む JAR ファイルを取得するには、修飾子 `all` を使用してください。 + * すべての shaded 依存関係を含む JAR を取得するには、修飾子 `all` を使用してください。 * または公式リポジトリの[こちら](https://github.com/ClickHouse/clickhouse-java/releases)から入手できます ## 設定 \{#configuration\} @@ -94,10 +94,10 @@ import TabItem from '@theme/TabItem'; URL の構文については、次の点に注意してください: - * URL では **エンドポイントを 1 つだけ** 指定できます - * デフォルトである 'HTTP' 以外のプロトコルを使用する場合は、そのプロトコルを明示的に指定する必要があります + * URL で指定できるエンドポイントは **1 つのみ** です + * プロトコルがデフォルトの 'HTTP' 以外の場合は、明示的に指定する必要があります * デフォルトの '8123' 以外のポートを使用する場合は、ポート番号を明示的に指定する必要があります - * ドライバーはポート番号からプロトコルを自動判別しないため、プロトコルを明示的に指定する必要があります + * ドライバーはポート番号からプロトコルを推測しないので、必ず明示的に指定してください * プロトコルを明示している場合は、`ssl` パラメータは不要です。 ### 接続プロパティ \{#connection-properties\} @@ -106,17 +106,17 @@ import TabItem from '@theme/TabItem'; **ドライバープロパティ**: - | プロパティ | デフォルト値 | 説明 | - | ----------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------- | - | `disable_frameworks_detection` | `true` | User-Agent に基づくフレームワークの検出を無効にする | - | `jdbc_ignore_unsupported_values` | `false` | ドライバーの動作に影響しない箇所では `SQLFeatureNotSupportedException` を抑制します | - | `clickhouse.jdbc.v1` | `false` | 新しい JDBC 実装ではなく旧来の JDBC 実装を使用する | - | `default_query_settings` | `null` | クエリ実行時にデフォルトのクエリ設定を渡せるようにする | - | `jdbc_resultset_auto_close` | `true` | `Statement` のクローズ時に `ResultSet` を自動的にクローズします | - | `beta.row_binary_for_simple_insert` | `false` | `RowBinary` writer ベースの `PreparedStatement` 実装を使用します。`INSERT INTO ... VALUES` クエリでのみ動作します。 | - | `jdbc_resultset_auto_close` | `true` | `Statement` をクローズすると `ResultSet` も自動的にクローズされます | - | `jdbc_use_max_result_rows` | `false` | サーバープロパティ `max_result_rows` を使用して、クエリから返される行数を制限できるようにします。有効にすると、ユーザー設定のオーバーフローモードを上書きします。詳細は JavaDoc を参照してください。 | - | `jdbc_sql_parser` | `JAVACC` | どの SQL パーサーを使用するかを設定します。選択肢: `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`。 | + | プロパティ | デフォルト値 | 説明 | + | ----------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------ | + | `disable_frameworks_detection` | `true` | User-Agent に基づくフレームワークの検出を無効にする | + | `jdbc_ignore_unsupported_values` | `false` | ドライバーの動作に影響しない場合は `SQLFeatureNotSupportedException` をスローしません | + | `clickhouse.jdbc.v1` | `false` | 新しい JDBC 実装ではなく旧来の JDBC 実装を使用する | + | `default_query_settings` | `null` | クエリ実行時にデフォルトのクエリ設定を渡せるようにする | + | `jdbc_resultset_auto_close` | `true` | `Statement` のクローズ時に `ResultSet` を自動的にクローズします | + | `beta.row_binary_for_simple_insert` | `false` | `RowBinary` writer に基づく `PreparedStatement` 実装を使用します。`INSERT INTO ... VALUES` クエリでのみ動作します。 | + | `jdbc_resultset_auto_close` | `true` | `Statement` をクローズすると `ResultSet` も自動的にクローズします | + | `jdbc_use_max_result_rows` | `false` | サーバープロパティ `max_result_rows` を使用して、クエリから返される行数を制限します。有効にすると、ユーザーが設定したオーバーフローモードを上書きします。詳細は JavaDoc を参照してください。 | + | `jdbc_sql_parser` | `JAVACC` | 使用する SQL パーサーを構成します。利用可能なオプション: `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`。 | :::note サーバー設定 @@ -155,6 +155,40 @@ import TabItem from '@theme/TabItem'; 注記: JDBC URL およびプロパティを URL エンコードする必要はありません。自動的にエンコードされます。 + ### クライアント識別 \{#client-identification\} + + リクエストの発信元アプリケーションを識別する方法は2つあります:接続プロパティで `com.clickhouse.client.api.ClientConfigProperties#CLIENT_NAME` を設定するか、`java.sql.Connection#setClientInfo(String name, String value)` メソッドを使用してください。 + + ```java showLineNumbers + Properties properties = new Properties(); + properties.setProperty(ClientConfigProperties.CLIENT_NAME.getKey(), "my-app-01"); + Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", properties); + ``` + + ```java showLineNumbers + conn.setClientInfo(com.clickhouse.jdbc.ClientInfoProperties.APPLICATION_NAME.getKey(), "my-app-01"); + ``` + + どちらの方法でも、クエリログの `http_user_agent` の値は以下のようになります: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + ### 操作の識別 \{#operation-identification\} + + JDBCドライバーは各操作に対して `query_id` を生成します(現時点では、サーバー例外に含まれています)。 + + 操作に対して `log_comment` を設定するには、`com.clickhouse.jdbc.StatementImpl#getLocalSettings` メソッドを使用します。これには、 + `Statement` または `PreparedStatement` を事前に `com.clickhouse.jdbc.StatementImpl` にキャストする必要があります。 + + ```java showLineNumbers + StatementImpl stmt = (StatementImpl) conn.createStatement(); + stmt.getLocalSettings().logComment("some-comment"); + ``` + + **注意:** `localSettings` はスレッド間で共有されるため、このアプローチはステートメントのシングルスレッド使用にのみ有効です。 + ## サポートされるデータ型 \{#supported-data-types\} JDBCドライバは基盤となる[Javaクライアント](/integrations/java#supported-data-types)と同じデータ形式をサポートしています。 @@ -164,11 +198,11 @@ import TabItem from '@theme/TabItem'; 以下のマッピングが適用されます: * `ResultSet#getObject(columnIndex)` メソッドは、対応する Java クラスのオブジェクトを返します(`Int8` -> `java.lang.Byte`、`Int16` -> `java.lang.Short` など)。 - * `ResultSetMetaData#getColumnType(columnIndex)` メソッドは対応する JDBC 型を返します(`Int8` -> `java.lang.Byte`、`Int16` -> `java.lang.Short` など)。 + * `ResultSetMetaData#getColumnType(columnIndex)` メソッドは、対応する JDBC 型を返します(`Int8` -> `java.lang.Byte`、`Int16` -> `java.lang.Short` など)。 マッピングを変更する方法はいくつかあります: - * `ResultSet#getObject(columnIndex, class)` メソッドは値を `class` 型に変換しようとします。変換にはいくつかの制限があります。詳細は各セクションを参照してください。 + * `ResultSet#getObject(columnIndex, class)` メソッドは値を `class` 型に変換しようとします。変換処理にはいくつかの制約があります。詳しくは各セクションを参照してください。 **数値型** @@ -195,34 +229,34 @@ import TabItem from '@theme/TabItem'; | Bool | BOOLEAN | java.lang.Boolean | * 数値型同士は相互に変換可能です。したがって、`Int8` を `Float64` として取得したり、その逆も可能です。 - * `rs.getObject(1, Float64.class)` は、`Int8` カラムの値を `Float64` 型の値として返します。 - * `rs.getLong(1)` は、`Int8` カラムの値を `Long` 型の値として返します。 - * `rs.getByte(1)` は、`Int16` カラムの値が `Byte` の範囲に収まる場合、その値を `Byte` 型の値として返します。 - * 広い型から狭い型への変換は、データが破損するおそれがあるため推奨されません。 - * `Bool` 型は数値型としても扱えます。 - * すべての数値型は `java.lang.String` として取得できます。 + * `rs.getObject(1, Float64.class)` は、`Int8` カラムの値を `Float64` 型として返します。 + * `rs.getLong(1)` は、`Int8` カラムの値を `Long` 型として返します。 + * `rs.getByte(1)` は、`Int16` カラムの値が `Byte` の範囲に収まる場合、その値を `Byte` 型として返します。 + * 広い型から狭い型への変換は、データ破損の危険性があるため推奨できません。 + * `Bool` 型は数値としても扱えます。 + * すべての数値型は `java.lang.String` として読み取ることができます。 **文字列型** - | ClickHouse型 | JDBC型 | Javaクラス | - | ----------- | ------- | ---------------- | - | String | VARCHAR | java.lang.String | - | FixedString | VARCHAR | java.lang.String | + | ClickHouse 型 | JDBC 型 | Java クラス | + | ------------ | ------- | ---------------- | + | String | VARCHAR | java.lang.String | + | FixedString | VARCHAR | java.lang.String | - * `String` は `java.lang.String` 型または `byte[]` 型としてのみ取得できます。 + * `String` は `java.lang.String` 型または `byte[]` 型としてのみ読み取れます。 * `FixedString` は値をそのまま読み出しますが、カラムの長さに達するまで末尾がゼロバイト(\0)でパディングされます。(たとえば、`FixedString(10)` で `'John'` を指定した場合、`'John\0\0\0\0\0\0\0\0\0'` として読み取られます。) **Enum型** - | ClickHouse型 | JDBC型 | Javaクラス | - | ----------- | ----- | ---------------- | - | Enum8 | OTHER | java.lang.String | - | Enum16 | OTHER | java.lang.String | + | ClickHouse 型 | JDBC 型 | Java クラス | + | ------------ | ------ | ---------------- | + | Enum8 | OTHER | java.lang.String | + | Enum16 | OTHER | java.lang.String | * `Enum8` および `Enum16` は、デフォルトで `java.lang.String` にマッピングされます。 - * Enum の値は、専用の getter メソッドまたは `getObject(columnIndex, Integer.class)` メソッドを使用して数値として読み取ることができます。 - * `Enum16` は内部的には short 型に、`Enum8` は byte 型にマッピングされます。データ破損のリスクがあるため、`Enum16` を byte 型として読み出すことは避けてください。 - * Enum の値は、`PreparedStatement` で文字列または数値として設定できます。 + * Enum の値は、対応する getter メソッドか `getObject(columnIndex, Integer.class)` メソッドを使用して数値型として取得できます。 + * `Enum16` は内部的に short 型に、`Enum8` は byte 型にマッピングされます。データ破損のリスクがあるため、`Enum16` を byte 型として読み取ることは避けてください。 + * Enum の値は、`PreparedStatement` で文字列値または数値として設定できます。 **日付/時刻型** @@ -235,30 +269,30 @@ import TabItem from '@theme/TabItem'; | Time | TIME | java.sql.Time | | Time64 | TIME | java.sql.Time | - * 日付/時刻型は、JDBC との互換性を高めるために `java.sql` 型にマッピングされます。ただし、`ResultSet#getObject(columnIndex, Class)` の第 2 引数に対応するクラスを指定することで、`java.time.LocalDate`、`java.time.LocalDateTime`、`java.time.LocalTime` を取得することも可能です。 - * `rs.getObject(1, java.time.LocalDate.class)` は、`Date` カラムの `java.time.LocalDate` 型の値を返します。 - * `rs.getObject(1, java.time.LocalDateTime.class)` は、`DateTime` カラムの `java.time.LocalDateTime` 型の値を返します。 - * `rs.getObject(1, java.time.LocalTime.class)` は、`Time` カラムの `java.time.LocalTime` 型の値を返します。 - * `Date`, `Date32`, `Time`, `Time64` はサーバーのタイムゾーン設定の影響を受けません。 - * `DateTime`、`DateTime64` はサーバーのタイムゾーンまたはセッションタイムゾーンの影響を受けます。 - * `DateTime` および `DateTime64` は、`getObject(colIndex, ZonedDateTime.class)` を使用することで `ZonedDateTime` として取得できます。 + * 日付/時刻型は、JDBC との互換性を高めるために `java.sql` 型にマッピングされます。ただし、`ResultSet#getObject(columnIndex, Class)` の第 2 引数に対応するクラスを渡すことで、`java.time.LocalDate`、`java.time.LocalDateTime`、`java.time.LocalTime` を取得することもできます。 + * `rs.getObject(1, java.time.LocalDate.class)` は、`Date` カラムの値を `java.time.LocalDate` として返します。 + * `rs.getObject(1, java.time.LocalDateTime.class)` は、`DateTime` カラムの値を `java.time.LocalDateTime` として返します。 + * `rs.getObject(1, java.time.LocalTime.class)` は、`Time` カラムの値を `java.time.LocalTime` として返します。 + * `Date`, `Date32`, `Time`, `Time64` はサーバーのタイムゾーン設定に依存しません。 + * `DateTime`、`DateTime64` はサーバーまたはセッションのタイムゾーン設定の影響を受けます。 + * `DateTime` および `DateTime64` は、`getObject(colIndex, ZonedDateTime.class)` を使うと `ZonedDateTime` として取得できます。 **ネスト型** - | ClickHouse型 | JDBC型 | Javaクラス | - | ----------- | --------------- | ------------------------- | - | Array | ARRAY | java.sql.Array | - | Tuple | OTHER | com.clickhouse.data.Tuple | - | Map | JAVA_OBJECT | java.util.Map | - | Nested | ARRAY | java.sql.Array | + | ClickHouse 型 | JDBC 型 | Java クラス | + | ------------ | --------------- | ------------------------- | + | Array | ARRAY | java.sql.Array | + | Tuple | OTHER | com.clickhouse.data.Tuple | + | Map | JAVA_OBJECT | java.util.Map | + | Nested | ARRAY | java.sql.Array | - * `Array` は、JDBC との互換性を保つため、デフォルトでは `java.sql.Array` にマッピングされます。これは、返される配列値に関する情報量を増やす目的もあり、型推論に役立ちます。 + * `Array` は、JDBC との互換性を保つため、デフォルトでは `java.sql.Array` にマッピングされます。これは、返される配列値の型情報をより多く持たせる目的もあり、型推論に有用です。 * `Array` は `getResultSet()` メソッドを実装しており、元の配列と同じ内容の `java.sql.ResultSet` を返します。 * コレクション型を `java.lang.String` として読み出すべきではありません。配列内の文字列値に引用符が付与されないなど、データの表現方法として妥当ではないためです(例: 配列内の文字列値に対して引用符が付かないなど)。 - * `Map` は、値は `getObject(columnIndex, Class)` メソッドでしか読み取れないため、`JAVA_OBJECT` にマッピングされます。 - * `Map` は名前付きのカラムを持っていないため、`java.sql.Struct` ではありません。 - * `Tuple` は異なる型の要素を含めることができ、`List` を使用するのは有効ではないため、`Object[]` にマッピングされます。 - * `Tuple` は `getObject(columnIndex, Array.class)` メソッドを使用することで `Array` として読み出すことができます。この場合、`Array#baseTypeName` は `Tuple` 型のカラム定義を返します。 + * `Map` は、値を `getObject(columnIndex, Class)` メソッドでしか読み取れないため、`JAVA_OBJECT` にマッピングされます。 + * `Map` は名前付きカラムを持たないため、`java.sql.Struct` ではありません。 + * `Tuple` は異なる型の要素を含めることができるため `Object[]` にマッピングされており、`List` を使用することはできません。 + * `Tuple` は `getObject(columnIndex, Array.class)` メソッドを使用することで `Array` として読み取ることができます。この場合、`Array#baseTypeName` は `Tuple` カラムの定義を返します。 **配列の書き込み** @@ -267,8 +301,8 @@ import TabItem from '@theme/TabItem'; このメソッドは 2 つの引数を受け取ります: - * `typeName` - 配列要素の型名。例: `Array(Int32)` -> `"Int32"`。 - * `elements` - 実際の配列要素です。例えば `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}` のようになります。 + * `typeName` - 配列要素の型名。たとえば `Array(Int32)` -> `"Int32"`。 + * `elements` - 実際の配列要素です。例えば `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}` と指定します。 `Tuple` は `Object[]` または `java.sql.Struct` として表現できます(タプルの書き込み方法については以下を参照してください)。 @@ -379,7 +413,7 @@ import TabItem from '@theme/TabItem'; } ``` - **Map の読み込み** + **Map の読み取り** `Map` は `getObject(columnIndex, Map.class)` メソッドを使用することで `java.collections.Map` オブジェクトとして読み取ることができます。 @@ -404,10 +438,10 @@ import TabItem from '@theme/TabItem'; `java.sql.Connection#createStruct` を使用して `java.sql.Struct` オブジェクトをインスタンス化します。このオブジェクトは、複数のデータベース間でネストされたデータの扱いを統一するために設計されています。 Struct のファクトリメソッドに設定を渡すには、Connection オブジェクトが必要です。 - このメソッドは 2 つの引数を受け取ります: + このメソッドは 2 つの引数を受け取ります: - * `typeName` - ネストされた要素の型名です。例えば `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"` となります。 - * `elements` - 実際のネストされた要素を表します。たとえば `[1, 'test']` -> `new Object[] {1, 'test'}` となります。 + * `typeName` - ネストされた要素の型名。例えば `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`。 + * `elements` - ネストされた実際の要素を表します。たとえば `[1, 'test']` -> `new Object[] {1, 'test'}` のように指定します。 **例** @@ -452,21 +486,21 @@ import TabItem from '@theme/TabItem'; **地理型** - | ClickHouse型 | JDBC型 | Javaクラス | - | ------------ | ----- | -------------- | - | Point | OTHER | double[] | - | Ring | OTHER | double[][] | - | Polygon | OTHER | double[][][] | - | MultiPolygon | OTHER | double[][][][] | + | ClickHouse 型 | JDBC 型 | Java クラス | + | ------------ | ------ | -------------- | + | Point | OTHER | double[] | + | Ring | OTHER | double[][] | + | Polygon | OTHER | double[][][] | + | MultiPolygon | OTHER | double[][][][] | **Nullable型とLowCardinality型** * `Nullable` と `LowCardinality` は、他の型をラップする特殊な型です。 - * `Nullable` は、`ResultSetMetaData` における型名の返され方に影響します + * `Nullable` は、`ResultSetMetaData` で返される型名に影響します **特殊型** - | ClickHouse型 | JDBC型 | Javaクラス | + | ClickHouse 型 | JDBC 型 | Java クラス | | ----------------------- | --------- | --------------------- | | UUID | OTHER | java.util.UUID | | IPv4 | OTHER | java.net.Inet4Address | @@ -475,9 +509,9 @@ import TabItem from '@theme/TabItem'; | AggregateFunction | OTHER | (バイナリ表現) | | SimpleAggregateFunction | (ラップされた型) | (ラップされたクラス) | - * `UUID` は JDBC の標準型ではありませんが、JDK には含まれています。デフォルトでは、`getObject()` メソッドは `java.util.UUID` を返します。 - * `UUID` は、`getObject(columnIndex, String.class)` メソッドを使用することで、`String` として読み書きできます。 - * `IPv4` と `IPv6` は JDBC の標準型ではありませんが、JDK には含まれています。デフォルトでは、`getObject()` メソッドで `java.net.Inet4Address` と `java.net.Inet6Address` が返されます。 + * `UUID` は JDBC の標準型には含まれませんが、JDK には含まれています。デフォルトでは `getObject()` メソッドから `java.util.UUID` が返されます。 + * `UUID` は、`getObject(columnIndex, String.class)` メソッドを使用することで、`String` として読み取りおよび書き込みが可能です。 + * `IPv4` と `IPv6` は JDBC の標準型ではありませんが、JDK には含まれています。デフォルトでは、`getObject()` メソッドから `java.net.Inet4Address` と `java.net.Inet6Address` のオブジェクトが返されます。 * `getObject(columnIndex, String.class)` メソッドを使用すると、`IPv4` および `IPv6` を `String` 型として読み書きできます。 ### 日付、時刻、タイムゾーンの処理 \{#handling-dates-times-and-timezones\} @@ -605,7 +639,7 @@ import TabItem from '@theme/TabItem'; Linuxでは、同等の設定のみでは問題が解決しない場合があります。Linuxがソケットのキープアライブ設定を扱う方法の違いにより、追加の手順が必要です。以下の手順に従ってください: - 1. `/etc/sysctl.conf` または関連する設定ファイルで、以下の Linux カーネルパラメータを調整します: + 1. `/etc/sysctl.conf` などの設定ファイルで、以下の Linux カーネルパラメータを調整します: * `net.inet.tcp.keepidle`: 60000 * `net.inet.tcp.keepintvl`: 45000 @@ -614,9 +648,9 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60(デフォルトの 300 秒より短く設定することも検討できます) + * `net.ipv4.tcp_keepalive_time`: 60(この値をデフォルトの 300 秒より短くすることも検討できます) - 2. カーネルパラメータを変更したら、以下のコマンドを実行して変更内容を反映させます: + 2. カーネルパラメータを変更したら、次のコマンドを実行して変更を適用します: ```shell sudo sysctl -p @@ -632,34 +666,33 @@ import TabItem from '@theme/TabItem'; ### 主な変更点 \{#key-changes\} - | 機能 | V1(旧) | V2(新) | - | ---------------------------------- | -------- | ------------------------- | - | トランザクション対応 | 一部サポートあり | サポートなし | - | レスポンスカラム名の変更 | 一部サポートあり | サポートなし | - | 複数文 SQL | サポートなし | 許可されていない | - | 名前付きパラメーター | サポートあり | サポートなし(JDBC 仕様に準拠していないため) | - | `PreparedStatement` を用いたデータストリーミング | サポートあり | サポートなし | + | 機能 | V1(旧) | V2(新) | + | --------------------------------- | -------- | ------------------------- | + | トランザクション対応 | 一部サポートあり | サポートなし | + | レスポンスのカラム名変更 | 一部サポートあり | サポートなし | + | 複数文 SQL | サポートなし | 許可されていない | + | 名前付きパラメーター | サポートあり | サポートなし(JDBC 仕様に準拠していないため) | + | `PreparedStatement` によるデータストリーミング | サポートあり | サポートなし | - * JDBC V2 はより軽量な実装とするために設計されており、一部の機能が削除されています。 - * ストリーミングデータは JDBC 仕様および Java の仕様には含まれていないため、JDBC V2 ではサポートされていません。 - * JDBC V2 では明示的な設定が必要です。フェイルオーバー用のデフォルト設定はありません。 - * プロトコルは URL で明示的に指定する必要があります。ポート番号からプロトコルを暗黙的に判別する処理は行われません。 + * JDBC V2 はより軽量になるよう実装されており、一部の機能が削除されています。 + * ストリーミングデータ機能は JDBC 仕様および Java の仕様に含まれていないため、JDBC V2 ではサポートされていません。 + * JDBC V2 では明示的な設定が必要です。フェイルオーバーのデフォルト構成はありません。 + * プロトコルは URL で明示的に指定する必要があります。ポート番号に基づくプロトコルの自動判別は行われません。 ### 設定の変更 \{#configuration-changes\} 列挙型は2種類のみです: * `com.clickhouse.jdbc.DriverProperties` - ドライバー固有の構成プロパティです。 - * `com.clickhouse.client.api.ClientConfigProperties` - クライアント構成プロパティです。クライアント構成 - の変更点については、[Java クライアントのドキュメント](/integrations/language-clients/java/client/client.mdx#migration_from_v1_config)を参照してください。 + * `com.clickhouse.client.api.ClientConfigProperties` - クライアントの構成プロパティです。クライアント構成の変更については、[Java クライアントのドキュメント](/integrations/language-clients/java/client/client.mdx#migration_from_v1_config)を参照してください。 接続プロパティは次のように解析されます: - * URL はまず解析されてプロパティが取得され、その値が他のすべてのプロパティより優先されます。 + * URL を最初に解析してプロパティを取得し、その値が他のすべてのプロパティを上書きします。 * ドライバーのプロパティはクライアント側に渡されません。 - * エンドポイント(ホスト、ポート、プロトコル)は URL から自動的に解釈されます。 + * エンドポイント(ホスト、ポート、プロトコル)は URL から解析されます。 - 例: + Example: ```java String url = "jdbc:ch://my-server:8443/default?" + @@ -701,7 +734,7 @@ import TabItem from '@theme/TabItem'; | Decimal256 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | | Bool | ✅ | BOOLEAN | java.lang.Boolean | BOOLEAN | java.lang.Boolean | - * 最大の違いは、ポータビリティを高めるために符号なし型が Java の型にマッピングされるようになったことです。 + * 最大の違いは、移植性を高めるために符号なし型を Java の型にマッピングしている点です。 **文字列型** @@ -711,21 +744,21 @@ import TabItem from '@theme/TabItem'; | FixedString | ✅ | VARCHAR | java.lang.String | VARCHAR | java.lang.String | * `FixedString` は両方のバージョンで、そのままの値として読み出されます。たとえば、`'John'` を格納した `FixedString(10)` は `'John\0\0\0\0\0\0\0\0\0'` として読み出されます。 - * `PreparedStatement#setBytes` が使用されると、`unhex('')` に変換され、その後 `String` 型として読み取られます。 - * 文字列は UTF-8 でエンコードされて保存されます。 + * `PreparedStatement#setBytes` を使用した場合、その値は `unhex('')` に変換され、その後 `String` として読み取られます。 + * 文字列は UTF-8 エンコーディングで保存されます。 **日付/時刻型** - | ClickHouse 型 | V1 との互換性 | JDBC 型 (V2) | Java クラス (V2) | JDBC 型 (V1) | Java クラス (V1) | - | ------------ | -------- | ----------- | ------------------ | ------------ | ------------------------ | - | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | Time | ✅ | TIME | java.sql.Time | 新しい型/サポート対象外 | 新しい型/サポート対象外 | - | Time64 | ✅ | TIME | java.sql.Time | 新しい型/非対応 | 新しい型/非対応 | + | ClickHouse 型 | V1 との互換性 | JDBC 型 (V2) | Java クラス (V2) | JDBC 型 (V1) | Java クラス (V1) | + | ------------ | -------- | ----------- | ------------------ | ----------- | ------------------------ | + | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | Time | ✅ | TIME | java.sql.Time | 新しい型/非対応 | 新しい型/非対応 | + | Time64 | ✅ | TIME | java.sql.Time | 新しい型/未サポート | 新しい型/未サポート | - * `Time` と `Time64` は、新しい型としてのサポートは V2 のみです。 + * `Time` と `Time64` は、V2 でのみ新しい型としてサポートされます。 * `DateTime` と `DateTime64` は、JDBC との互換性を高めるために `java.sql.Timestamp` にマッピングされます。 **Enum型** @@ -736,7 +769,7 @@ import TabItem from '@theme/TabItem'; | Enum8 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | | Enum16 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | - **ネストされた型** + **ネスト型** | ClickHouse 型 | V1 との互換性 | JDBC 型 (V2) | Java クラス (V2) | JDBC 型 (V1) | Java クラス (V1) | | ------------ | -------- | --------------- | -------------- | ----------- | ---------------------- | @@ -745,15 +778,15 @@ import TabItem from '@theme/TabItem'; | Map | ❌ | JAVA_OBJECT | java.util.Map | STRUCT | java.util.Map | | Nested | ❌ | ARRAY | java.sql.Array | STRUCT | java.sql.Struct | - * V2 では、`Array` は JDBC との互換性を維持するため、デフォルトで `java.sql.Array` にマッピングされます。これは、返される配列値に関する情報量を増やすためでもあり、型推論に役立ちます。 + * V2 では、`Array` は JDBC との互換性を維持するため、デフォルトで `java.sql.Array` にマッピングされます。これは返される配列値について、より多くの情報を提供するためでもあり、型推論に有用です。 * In V2 では `Array` が `getResultSet()` メソッドを実装し、元の配列と同一の内容を持つ `java.sql.ResultSet` を返します。 * V1 では `Map` に対して `STRUCT` を使用しますが、常に `java.util.Map` オブジェクトを返します。V2 では、`Map` を `JAVA_OBJECT` にマッピングすることでこれを修正しています。 - * V1 は `Tuple` に対して `STRUCT` を使用しますが、常に `List` を返します。V2 では `Tuple` を `OTHER` にマッピングし、デフォルトで `Object[]` を返します。 - * V2ではタプルを書き込むための `com.clickhouse.data.Tuple#Tuple` が導入されました。これにより、値がタプルか配列かを判別する処理が簡単になります。 - * `PreparedStatement#setBytes` と `ResultSet#getBytes` はコレクション型では使用することができません。これらのメソッドはバイナリデータを扱うために設計されています。 - * 通常、Array 型の読み書きには `java.sql.Array` を使用します。JDBC ドライバはこれを完全にサポートしています。 - * V2 では `Nested` は `Array` にマッピングされ、タプル配列として扱われます。 - * V2 では `java.sql.Struct` は部分的にのみサポートされます。`Struct` は Array 型に非常によく似ており、キーと値のペアをサポートしないためです。`Struct` は `Tuple` の値を書き込むために使用できます。 + * V1 は `Tuple` に対して `STRUCT` を使用しますが、常に `List` オブジェクトを返します。V2 では `Tuple` を `OTHER` にマッピングし、デフォルトで `Object[]` を返します。 + * V2ではタプルを書き込むための `com.clickhouse.data.Tuple#Tuple` が導入されました。これにより、値がタプルか配列かを判別しやすくなります。 + * `PreparedStatement#setBytes` と `ResultSet#getBytes` はコレクション型に対しては使用できません。これらのメソッドはバイナリ文字列を扱うために設計されています。 + * 通常、`Array` 型の読み書きには `java.sql.Array` を使用します。JDBC ドライバはこの方式を完全にサポートしています。 + * V2 では `Nested` は `Array` にマッピングされ、タプルの配列として表現されます。 + * V2 では `java.sql.Struct` に対するサポートは限定的です。`Struct` は Array 型と非常によく似た型であり、キーと値のペアをサポートしないためです。`Struct` は `Tuple` の値を書き込むために使用できます。 **地理型** @@ -773,7 +806,7 @@ import TabItem from '@theme/TabItem'; | ClickHouse 型 | V1 との互換性 | JDBC 型 (V2) | Java クラス (V2) | JDBC 型 (V1) | Java クラス (V1) | | ----------------------- | -------- | ----------- | --------------------- | ----------- | --------------------- | - | JSON | ❌ | OTHER | java.lang.String | サポートなし | サポートなし | + | JSON | ❌ | OTHER | java.lang.String | 非対応 | 非対応 | | AggregateFunction | ✅ | OTHER | (バイナリ表現) | OTHER | (バイナリ表現) | | SimpleAggregateFunction | ✅ | (ラップされた型) | (ラップされたクラス) | (ラップされた型) | (ラップされたクラス) | | UUID | ✅ | OTHER | java.util.UUID | VARCHAR | java.util.UUID | @@ -783,16 +816,16 @@ import TabItem from '@theme/TabItem'; | Variant | ❌ | OTHER | java.lang.Object | サポートなし | サポートなし | * V1 では `UUID` に対して `VARCHAR` を使用しますが、常に `java.util.UUID` オブジェクトを返します。V2 では、`UUID` を `OTHER` にマッピングすることでこの問題を解消し、`java.util.UUID` オブジェクトを返します。 - * V1 では `IPv4` と `IPv6` に対して `VARCHAR` を使用しますが、戻り値は常に `java.net.Inet4Address` および `java.net.Inet6Address` オブジェクトです。V2 では、`IPv4` と `IPv6` を `OTHER` にマッピングすることでこの問題を解消し、`java.net.Inet4Address` および `java.net.Inet6Address` オブジェクトを返します。 + * V1 では `IPv4` と `IPv6` に対して `VARCHAR` を使用しますが、常に `java.net.Inet4Address` および `java.net.Inet6Address` オブジェクトを返します。V2 では、`IPv4` と `IPv6` を `OTHER` にマッピングすることでこの問題を解消し、`java.net.Inet4Address` および `java.net.Inet6Address` オブジェクトを返します。 * `Dynamic` と `Variant` は V2 で導入された新しい型です。V1 ではサポートされていません。 * `JSON` は `Dynamic` 型に基づく型であるため、V2 でのみサポートされています。 - * IPv4およびIPv6の値は、`getBytes(columnIndex)` メソッドを使用して `byte[]` として読み取ることもできます。ただし、これらの型については専用のクラスを使用することを推奨します。 + * IPv4およびIPv6の値は、`getBytes(columnIndex)` メソッドを使用して `byte[]` として読み取ることもできます。ただし、これらの型には専用クラスを使用することを推奨します。 * V2 では、IP アドレスを数値として読み取ることはサポートされていません。IP アドレスの変換は `InetAddress` クラス側で行う方がより適切な実装と考えられているためです。 ### データベースメタデータの変更 \{#database-metadata-changes\} * V2 ではデータベースを指す用語として `Schema` のみを使用します。`Catalog` という用語は今後の使用のために予約されています。 - * V2 は `DatabaseMetaData.supportsTransactions()` および `DatabaseMetaData.supportsSavepoints()` に対して `false` を返します。これは今後の開発で変更される予定です。 + * V2 は `DatabaseMetaData.supportsTransactions()` および `DatabaseMetaData.supportsSavepoints()` に対して `false` を返します。この挙動は今後の開発で変更される予定です。 @@ -882,16 +915,16 @@ import TabItem from '@theme/TabItem'; **接続プロパティ**: - | プロパティ | デフォルト値 | 説明 | - | -------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | `continueBatchOnError` | `false` | エラーが発生してもバッチ処理を継続するかどうか | - | `createDatabaseIfNotExist` | `false` | データベースが存在しない場合に自動的に作成するかどうか | - | `custom_http_headers` | | カンマ区切りで指定するカスタム HTTP ヘッダー。例:`User-Agent=client1,X-Gateway-Id=123` | - | `custom_http_params` | | カンマ区切りのカスタム HTTP クエリパラメータ。例:`extremes=0,max_result_rows=100` | - | `nullAsDefault` | `0` | `0` - null 値をそのまま扱い、null を許容しないカラムに null を挿入しようとした場合は例外をスローする; `1` - null 値をそのまま扱い、挿入時の null チェックを無効にする; `2` - クエリ実行および挿入の両方で、null を対応するデータ型のデフォルト値に置き換える | - | `jdbcCompliance` | `true` | 標準的な同期的 UPDATE/DELETE 文と疑似トランザクションをサポートするかどうか | - | `typeMappings` | | ClickHouse データ型と Java クラスの対応付けをカスタマイズします。これにより、[`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) と [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-) の両方の戻り値に影響します。例:`UInt128=java.lang.String,UInt256=java.lang.String` | - | `wrapperObject` | `false` | [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) が Array / Tuple 型の列に対して java.sql.Array / java.sql.Struct オブジェクトを返すかどうかを制御します。 | + | プロパティ | デフォルト値 | 説明 | + | -------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `continueBatchOnError` | `false` | エラー発生時もバッチ処理を継続するかどうか | + | `createDatabaseIfNotExist` | `false` | データベースが存在しない場合に自動的に作成するかどうか | + | `custom_http_headers` | | カンマ区切りのカスタム HTTP ヘッダー。例:`User-Agent=client1,X-Gateway-Id=123` | + | `custom_http_params` | | カンマ区切りで指定するカスタム HTTP クエリパラメータ。例:`extremes=0,max_result_rows=100` | + | `nullAsDefault` | `0` | `0` - null 値をそのまま扱い、null を許容しないカラムに null を挿入しようとした場合は例外をスローする; `1` - null 値をそのまま扱い、挿入時の null チェックを無効にする; `2` - クエリ実行および挿入の両方で、null を対応するデータ型のデフォルト値に置き換える | + | `jdbcCompliance` | `true` | 標準的な同期型の UPDATE/DELETE 文および疑似トランザクションをサポートするかどうか | + | `typeMappings` | | ClickHouse データ型と Java クラスの対応付けをカスタマイズします。これにより、[`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) および [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-) の両方の戻り値に影響します。例: `UInt128=java.lang.String,UInt256=java.lang.String` | + | `wrapperObject` | `false` | [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) が Array / Tuple 型の列に対して java.sql.Array / java.sql.Struct を返すかどうかを指定します。 | 注記: 詳細については[JDBC固有の設定](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java)を参照してください。 @@ -903,7 +936,7 @@ import TabItem from '@theme/TabItem'; * AggregatedFunction - :warning: `SELECT * FROM table ...` 構文はサポートされません * 10進数 - 一貫性を保つため、21.9 以降では `SET output_format_decimal_trailing_zeros=1` を設定します - * Enum - 文字列値および整数値の両方として扱える + * Enum - 文字列値と整数値のどちらとしても扱える * UInt64 - client-v1 では `long` にマッピングされます ::: @@ -1079,16 +1112,16 @@ import TabItem from '@theme/TabItem'; ## SSLプロパティ \{#ssl-properties\} - | 名前 | デフォルト値 | 指定可能な値 | 説明 | - | -------------------- | ------ | ------------ | ----------------------------------------------------- | - | `ssl` | false | true, false | 接続で SSL/TLS を有効にするかどうかを指定します | - | `sslmode` | strict | strict, none | サーバーの SSL/TLS 証明書を検証するかどうか | - | `sslrootcert` | | | SSL/TLS ルート証明書ファイルへのパス | - | `sslcert` | | | SSL/TLS 証明書ファイルへのパス | - | `sslkey` | | | PKCS#8 形式の RSA 鍵 | - | `key_store_type` | | JKS, PKCS12 | `KeyStore`/`TrustStore` ファイルの種類または形式を指定します | - | `trust_store` | | | `TrustStore` ファイルのパス | - | `key_store_password` | | | `KeyStore` 設定で指定された `KeyStore` ファイルへアクセスするために必要なパスワード | + | 名前 | デフォルト値 | 利用可能な値 | 説明 | + | -------------------- | ------ | ------------ | -------------------------------------------------- | + | `ssl` | false | true, false | 接続で SSL/TLS を有効にするかどうかを指定します | + | `sslmode` | strict | strict, none | サーバーの SSL/TLS 証明書を検証するかどうかを指定します | + | `sslrootcert` | | | SSL/TLS ルート証明書ファイルへのパス | + | `sslcert` | | | SSL/TLS 証明書ファイルへのパス | + | `sslkey` | | | PKCS#8 形式の RSA 鍵 | + | `key_store_type` | | JKS, PKCS12 | `KeyStore`/`TrustStore` ファイルのタイプまたはフォーマットを指定します | + | `trust_store` | | | `TrustStore` ファイルへのパス | + | `key_store_password` | | | `KeyStore` 設定で指定された `KeyStore` ファイルにアクセスするためのパスワード | これらのプロパティを設定することで、JavaアプリケーションとClickHouseサーバー間の通信は暗号化された接続上で行われ、データ転送中のセキュリティが強化されます。 @@ -1112,7 +1145,7 @@ import TabItem from '@theme/TabItem'; ## 大量挿入時のJDBCタイムアウトの解決 \{#v07-resolving-jdbc-timeout-on-large-inserts\} - ClickHouseで実行時間の長い大規模なインサート処理を実行する際、次のようなJDBCタイムアウトエラーが発生することがあります: + ClickHouseで実行時間が長くなる大規模な挿入(INSERT)を行う際、次のようなJDBCタイムアウトエラーが発生することがあります: ```plaintext Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] @@ -1120,9 +1153,9 @@ import TabItem from '@theme/TabItem'; これらのエラーはデータ挿入プロセスを妨げ、システムの安定性に影響を与える可能性があります。この問題に対処するには、クライアントOSのタイムアウト関連設定をいくつか調整する必要があります。 - ### macOS \{#v07-mac-os\} + ### Mac OS \{#v07-mac-os\} - macOS では、以下の設定を調整することでこの問題を解決できます: + macOSでは、以下の設定を調整することで問題を解決できます: * `net.inet.tcp.keepidle`: 60000 * `net.inet.tcp.keepintvl`: 45000 @@ -1132,7 +1165,7 @@ import TabItem from '@theme/TabItem'; ### Linux \{#v07-linux\} - Linuxでは、同等の設定のみでは問題が解決しない場合があります。Linuxにおけるソケットキープアライブ設定の処理方法の違いにより、追加の手順が必要です。以下の手順に従ってください: + Linuxでは、同等の設定のみでは問題が解決しない場合があります。Linuxがソケットのキープアライブ設定を扱う方法の違いにより、追加の手順が必要です。以下の手順に従ってください: 1. `/etc/sysctl.conf` または関連する設定ファイルで、以下の Linux カーネルパラメータを調整します: @@ -1143,15 +1176,15 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60(デフォルトの 300 秒より短く設定することも検討できます) + * `net.ipv4.tcp_keepalive_time`: 60(デフォルトの 300 秒からこの値を引き下げることも検討できます) - 2. カーネルパラメータを変更したら、以下のコマンドを実行して変更を適用します: + 2. カーネルパラメータを変更したら、次のコマンドを実行して変更を反映します: ```shell sudo sysctl -p ``` - これらの設定を行った後、クライアントがソケットの Keep-Alive オプションを有効にしていることを確認する必要があります: + これらの設定を行った後、クライアントがソケットでKeep Aliveオプションを有効にしていることを確認する必要があります: ```java properties.setProperty("socket_keepalive", "true"); diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/misc/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/misc/index.md index 09abd7792ab..63cefd33d28 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/misc/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/misc/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/misc -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['visual interfaces', 'GUI', 'proxy', 'third-party integrations'] title: 'ツール' description: 'ツールセクションのランディングページ' doc_type: 'landing-page' diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md index f29772d161b..5dbb2bca027 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -42,8 +42,6 @@ ClickHouse テーブルのインポートおよびクエリのプッシュダウ パフォーマンスを比較したものです。✔︎ は完全なプッシュダウンを示し、ダッシュは 1 分経過後に クエリがキャンセルされたことを示します。すべてのテストは、メモリ 36 GB 搭載の MacBook Pro M4 Max 上で実行しました。 -{/* cd dev/tpch && make ch && make pg && make run */ } - | クエリ | PostgreSQL | pg_clickhouse | プッシュダウン | | -------: | ---------: | ----------------: | :-----: | | [クエリ 1] | 4693 ms | 268 ms | ✔︎ | @@ -56,7 +54,7 @@ ClickHouse テーブルのインポートおよびクエリのプッシュダウ | [クエリ 8] | 342 ms | 156 ms | ✔︎ | | [クエリ 9] | 3094 ms | 298 ms | ✔︎ | | [クエリ 10] | 581 ms | 197 ms | ✔︎ | -| [クエリ 11] | 212 ms | 24 ms | ✔︎ | +| [クエリ 11] | 212 ms | 24 ms | | | [クエリ 12] | 1116 ms | 84 ms | ✔︎ | | [クエリ 13] | 958 ms | 1368 ms | | | [クエリ 14] | 181 ms | 73 ms | ✔︎ | @@ -69,7 +67,6 @@ ClickHouse テーブルのインポートおよびクエリのプッシュダウ | [クエリ 21] | 1349 ms | 4434 ms | | | [クエリ 22] | 258 ms | 1415 ms | | - ### ソースコードからコンパイル \{#compile-from-source\} #### 一般的な Unix \{#general-unix\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md index 5ab21f83568..3c6523d5127 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -341,8 +341,7 @@ DROP FOREIGN TABLE uact CASCADE; ## DML SQL リファレンス \{#dml-sql-reference\} -以下の SQL [DML] 文では pg_clickhouse を使用する場合があります。以下の例は、 -[make-logs.sql] によって CREATE で作成されたこれらの ClickHouse テーブルに依存します。 +以下の SQL [DML] 文では pg_clickhouse を使用する場合があります。例は次の ClickHouse テーブルを前提としています。 ```sql CREATE TABLE logs ( @@ -552,6 +551,10 @@ try=# EXECUTE avg_durations_between_dates('2025-12-09', '2025-12-13'); (5 rows) ``` +:::warning +パラメータ化された実行を行うと、[underlying bug] が [fixed] された 25.8 より前の ClickHouse バージョンでは、[http driver](#create-server) が DateTime のタイムゾーンを正しく変換できなくなります。PostgreSQL は、`PREPARE` を使用していない場合でも、パラメータ化されたクエリプランを使用することがある点に注意してください。正確なタイムゾーン変換が必要なクエリで、かつ 25.8 以降へのアップグレードが選択肢にない場合は、代わりに [binary driver](#create-server) を使用してください。 +::: + pg_clickhouse は、集約処理を通常どおりプッシュダウンし、その様子は [EXPLAIN](#explain) の verbose 出力から確認できます。 ```pgsql @@ -684,7 +687,14 @@ SET pg_clickhouse.session_settings TO $$ $$; ``` -pg_clickhouse は設定を検証せず、クエリごとにそれらをそのまま ClickHouse に渡します。 +pg_clickhouse 自身の動作を妨げる場合には、一部の設定は無視されます。 +対象となる設定は次のとおりです: + +* `date_time_output_format`: HTTP ドライバでは「iso」である必要があります +* `format_tsv_null_representation`: HTTP ドライバではデフォルト値である必要があります +* `output_format_tsv_crlf_end_of_line` HTTP ドライバではデフォルト値である必要があります + +それ以外の場合、pg_clickhouse は設定を検証せず、クエリごとにそれらをそのまま ClickHouse に渡します。 したがって、ClickHouse の各バージョンで利用可能なすべての設定をサポートします。 pg_clickhouse は `pg_clickhouse.session_settings` を設定する前にロードされている必要があることに注意してください。[shared library preloading] を利用するか、 @@ -742,18 +752,16 @@ shared_preload_libraries = pg_clickhouse 各セッションのメモリ使用量と読み込みオーバーヘッドを削減するのに有用ですが、ライブラリを更新した場合はクラスターを再起動する必要があります。 -## 関数と演算子のリファレンス \{#function-and-operator-reference\} - -### データ型 \{#data-types\} +## データ型 \{#data-types\} -pg_clickhouse は、次の ClickHouse データ型を PostgreSQL データ型にマッピングします: +pg_clickhouse は、次の ClickHouse データ型を PostgreSQL データ型にマッピングします。[IMPORT FOREIGN SCHEMA](#import-foreign-schema) はカラムをインポートする際に PostgreSQL カラムで最初に指定されている型を使用し、追加の型は [CREATE FOREIGN TABLE](#create-foreign-table) 文で使用できます: | ClickHouse | PostgreSQL | 備考 | -| -----------|------------------|---------------------------------------| +|------------|------------------|---------------------------------------| | Bool | boolean | | | Date | date | | | Date32 | date | | -| DateTime | timestamp | | +| DateTime | timestamptz | | | Decimal | numeric | | | Float32 | real | | | Float64 | double precision | | @@ -764,13 +772,129 @@ pg_clickhouse は、次の ClickHouse データ型を PostgreSQL データ型に | Int64 | bigint | | | Int8 | smallint | | | JSON | jsonb | HTTP エンジンのみ | -| String | text | | +| String | text, bytea | | | UInt16 | integer | | | UInt32 | bigint | | | UInt64 | bigint | 値が BIGINT の最大値を超えるとエラー | | UInt8 | smallint | | | UUID | uuid | | +追加の注意事項と詳細は以下のとおりです。 + +### BYTEA \{#bytea\} + +ClickHouse は PostgreSQL の [BYTEA] 型に相当する型を提供していませんが、[String] 型に任意のバイト列を格納することができます。一般的に、ClickHouse の文字列は PostgreSQL の [TEXT] にマッピングしますが、バイナリデータを扱う場合は [BYTEA] にマッピングしてください。例: + +```sql +-- Create clickHouse table with String columns. +SELECT clickhouse_raw_query($$ + CREATE TABLE bytes ( + c1 Int8, c2 String, c3 String + ) ENGINE = MergeTree ORDER BY (c1); +$$); + +-- Create foreign table with BYTEA columns. +CREATE FOREIGN TABLE bytes ( + c1 int, + c2 BYTEA, + c3 BYTEA +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Insert binary data into the foreign table. +INSERT INTO bytes +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the results. +SELECT * FROM bytes; +``` + +最後の`SELECT`クエリの出力は以下のとおりです: + +```pgsql + c1 | c2 | c3 +----+------------------------------------------------------------+------------------------------------ + 1 | \x1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | \xae3b28cde02542f81acce8783245430d + 2 | \x5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | \x23e7c6cacb8383f878ad093b0027d72b + 3 | \x53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | \x7e969132fc656148b97b6a2ee8bc83c1 + 4 | \x4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | \x8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +ClickHouse のカラムにヌルバイトが含まれている場合、[TEXT] カラムを使用する外部テーブルは正しい値を出力しないことに注意してください。 + +```sql +-- Create foreign table with TEXT columns. +CREATE FOREIGN TABLE texts ( + c1 int, + c2 TEXT, + c3 TEXT +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Encode binary data as hex. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +出力結果: + +```pgsql + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b + 3 | 53ac2c1fa83c8f64603fe9568d883331 | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +2行目と3行目には切り詰められた値が含まれていることに注意してください。これは、PostgreSQLがNUL終端文字列に依存しており、文字列内のNULをサポートしていないためです。 + +バイナリ値を [TEXT] カラムに挿入しようとすると、成功し、期待どおりに動作します: + +```sql +-- Insert via text columns: +TRUNCATE texts; +INSERT INTO texts +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the data. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +テキストのカラムは正しく表示されます: + +```pgdsql + + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b0027d72b + 3 | 53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +しかし、それらを [BYTEA] として読み取った場合は、以下のようにはなりません: + +```pgsql +# SELECT * FROM bytes; + c1 | c2 | c3 +----+------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------ + 1 | \x5c783162663766306363383231643331313738363136613535613865306335323637373733353339376364646536663431353361396664336437 | \x5c786165336232386364653032353432663831616363653837383332343534333064 + 2 | \x5c783566366539653132636438353932373132653633383031366634623161326537333233306565343064623439386330663062316463383431 | \x5c783233653763366361636238333833663837386164303933623030323764373262 + 3 | \x5c783533616332633166613833633866363436303366653935363864383833333331303037643632383164653333306134623565373238663965 | \x5c783765393639313332666336353631343862393762366132656538626338336331 + 4 | \x5c783465336332653463623735343261343531373361386461633933396464633462633735323032653334326562633736396230663564613266 | \x5c783865663330663434633635343830643132623635306162366232623034323435 +(4 rows) +``` + +:::tip +原則として、エンコードされた文字列には [TEXT] カラム、バイナリデータには [BYTEA] カラムを使用し、これらを入れ替えて使わないでください。 +::: + + +## 関数と演算子のリファレンス \{#function-and-operator-reference\} + ### 関数 \{#functions\} これらの関数は、ClickHouse データベースに対してクエリを実行するためのインターフェースを提供します。 @@ -851,6 +975,7 @@ ClickHouse に自動的にプッシュダウンされます。ただし、一部 * `btrim`: [trimBoth](https://clickhouse.com/docs/sql-reference/functions/string-functions#trimboth) * `strpos`: [position](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#position) * `regexp_like`: [match](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#match) +* `md5`: [MD5](https://clickhouse.com/docs/sql-reference/functions/hash-functions#MD5) ### カスタム関数 \{#custom-functions\} @@ -1008,9 +1133,25 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL ドキュメント: ドル引用符付き文字列定数" [library preloading]: https://www.postgresql.org/docs/18/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD + "PostgreSQL ドキュメント: 共有ライブラリのプリロード" -"PostgreSQL ドキュメント: 共有ライブラリのプリロード - [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES +[PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "PostgreSQL ドキュメント: PREPARE に関する注意事項" - [query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse - "ClickHouse ドキュメント: ClickHouse でのプリペアドステートメントの代替手段" \ No newline at end of file + +[query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse + "ClickHouse ドキュメント: ClickHouse でのプリペアドステートメントの代替手段" + +[underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 + "ClickHouse/ClickHouse#85847 マルチパートフォームの一部のクエリが settings を読み込まない" + +[fixed]: https://github.com/ClickHouse/ClickHouse/pull/85570 + "ClickHouse/ClickHouse#85570 HTTP の multipart 処理を修正" + +[BYTEA]: https://www.postgresql.org/docs/current/datatype-binary.html + "PostgreSQL ドキュメント: バイナリデータ型" + +[String]: https://clickhouse.com/docs/sql-reference/data-types/string + "ClickHouse ドキュメント: String" + +[TEXT]: https://www.postgresql.org/docs/current/datatype-character.html + "PostgreSQL ドキュメント: 文字データ型" \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md index daad6fbbe7f..ae0a68e1ac8 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md @@ -224,54 +224,54 @@ taxi=# \det+ taxi.* ```pgsql taxi=# \d taxi.trips - Foreign table "taxi.trips" - Column | Type | Collation | Nullable | Default | FDW options ------------------------+-----------------------------+-----------+----------+---------+------------- - trip_id | bigint | | not null | | - vendor_id | text | | not null | | - pickup_date | date | | not null | | - pickup_datetime | timestamp without time zone | | not null | | - dropoff_date | date | | not null | | - dropoff_datetime | timestamp without time zone | | not null | | - store_and_fwd_flag | smallint | | not null | | - rate_code_id | smallint | | not null | | - pickup_longitude | double precision | | not null | | - pickup_latitude | double precision | | not null | | - dropoff_longitude | double precision | | not null | | - dropoff_latitude | double precision | | not null | | - passenger_count | smallint | | not null | | - trip_distance | double precision | | not null | | - fare_amount | numeric(10,2) | | not null | | - extra | numeric(10,2) | | not null | | - mta_tax | numeric(10,2) | | not null | | - tip_amount | numeric(10,2) | | not null | | - tolls_amount | numeric(10,2) | | not null | | - ehail_fee | numeric(10,2) | | not null | | - improvement_surcharge | numeric(10,2) | | not null | | - total_amount | numeric(10,2) | | not null | | - payment_type | text | | not null | | - trip_type | smallint | | not null | | - pickup | character varying(25) | | not null | | - dropoff | character varying(25) | | not null | | - cab_type | text | | not null | | - pickup_nyct2010_gid | smallint | | not null | | - pickup_ctlabel | real | | not null | | - pickup_borocode | smallint | | not null | | - pickup_ct2010 | text | | not null | | - pickup_boroct2010 | text | | not null | | - pickup_cdeligibil | text | | not null | | - pickup_ntacode | character varying(4) | | not null | | - pickup_ntaname | text | | not null | | - pickup_puma | integer | | not null | | - dropoff_nyct2010_gid | smallint | | not null | | - dropoff_ctlabel | real | | not null | | - dropoff_borocode | smallint | | not null | | - dropoff_ct2010 | text | | not null | | - dropoff_boroct2010 | text | | not null | | - dropoff_cdeligibil | text | | not null | | - dropoff_ntacode | character varying(4) | | not null | | - dropoff_ntaname | text | | not null | | - dropoff_puma | integer | | not null | | + Foreign table "taxi.trips" + Column | Type | Collation | Nullable | Default | FDW options +-----------------------+--------------------------+-----------+----------+---------+------------- + trip_id | bigint | | not null | | + vendor_id | text | | not null | | + pickup_date | date | | not null | | + pickup_datetime | timestamp with time zone | | not null | | + dropoff_date | date | | not null | | + dropoff_datetime | timestamp with time zone | | not null | | + store_and_fwd_flag | smallint | | not null | | + rate_code_id | smallint | | not null | | + pickup_longitude | double precision | | not null | | + pickup_latitude | double precision | | not null | | + dropoff_longitude | double precision | | not null | | + dropoff_latitude | double precision | | not null | | + passenger_count | smallint | | not null | | + trip_distance | double precision | | not null | | + fare_amount | numeric(10,2) | | not null | | + extra | numeric(10,2) | | not null | | + mta_tax | numeric(10,2) | | not null | | + tip_amount | numeric(10,2) | | not null | | + tolls_amount | numeric(10,2) | | not null | | + ehail_fee | numeric(10,2) | | not null | | + improvement_surcharge | numeric(10,2) | | not null | | + total_amount | numeric(10,2) | | not null | | + payment_type | text | | not null | | + trip_type | smallint | | not null | | + pickup | character varying(25) | | not null | | + dropoff | character varying(25) | | not null | | + cab_type | text | | not null | | + pickup_nyct2010_gid | smallint | | not null | | + pickup_ctlabel | real | | not null | | + pickup_borocode | smallint | | not null | | + pickup_ct2010 | text | | not null | | + pickup_boroct2010 | text | | not null | | + pickup_cdeligibil | text | | not null | | + pickup_ntacode | character varying(4) | | not null | | + pickup_ntaname | text | | not null | | + pickup_puma | integer | | not null | | + dropoff_nyct2010_gid | smallint | | not null | | + dropoff_ctlabel | real | | not null | | + dropoff_borocode | smallint | | not null | | + dropoff_ct2010 | text | | not null | | + dropoff_boroct2010 | text | | not null | | + dropoff_cdeligibil | text | | not null | | + dropoff_ntacode | character varying(4) | | not null | | + dropoff_ntaname | text | | not null | | + dropoff_puma | integer | | not null | | Server: taxi_srv FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') ``` @@ -318,7 +318,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 9.438 ms ``` -* 乗客数に基づく平均コストを計算します: +* 乗客数に基づいて平均料金を計算します: ```pgsql taxi=# SELECT @@ -370,7 +370,8 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 30.978 ms ``` -* 各乗車の所要時間を分単位で計算し、その結果を所要時間ごとにグループ化します: +* 各乗車の所要時間を分単位で計算し、その結果を + 所要時間ごとにグループ化します: ```pgsql taxi=# SELECT @@ -420,9 +421,11 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 36.895 ms ``` -* LaGuardia 空港または JFK 空港への乗車データを取得します: +* 表示用タイムゾーンをニューヨークに設定し、LaGuardia 空港または JFK 空港への乗車データを取得します: ```pgsql + taxi=# SET timezone = 'America/New_York'; + SET taxi=# SELECT pickup_datetime, dropoff_datetime, @@ -440,13 +443,13 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') WHERE dropoff_nyct2010_gid IN (132, 138) ORDER BY pickup_datetime LIMIT 5; - pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour - ---------------------+---------------------+--------------+---------------------+----------------------+--------------+------+-----+------ - 2015-07-01 00:04:14 | 2015-07-01 00:15:29 | 13.30 | -34 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:09:42 | 2015-07-01 00:12:55 | 6.80 | 50 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:23:04 | 2015-07-01 00:24:39 | 4.80 | -125 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:27:51 | 2015-07-01 00:39:02 | 14.72 | -101 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:32:03 | 2015-07-01 00:55:39 | 39.34 | 48 | 138 | LGA | 2015 | 1 | 0 + pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour + ------------------------+------------------------+--------------+---------------------+----------------------+--------------+------+-----+------ + 2015-06-30 20:04:14-04 | 2015-06-30 20:15:29-04 | 13.30 | -34 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:09:42-04 | 2015-06-30 20:12:55-04 | 6.80 | 50 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:23:04-04 | 2015-06-30 20:24:39-04 | 4.80 | -125 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:27:51-04 | 2015-06-30 20:39:02-04 | 14.72 | -101 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:32:03-04 | 2015-06-30 20:55:39-04 | 39.34 | 48 | 138 | LGA | 2015 | 30 | 20 (5 rows) Time: 17.450 ms @@ -493,7 +496,7 @@ ClickHouse サービス内のテーブルに関連付けられた Dictionary を `LIFETIME` を 0 に設定すると、自動更新が無効になり、S3 バケットへの 不要なトラフィックを避けることができます。別のケースでは、異なる値を 設定することもあります。詳細については、[Refreshing dictionary data using - LIFETIME](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime) を参照してください。 + LIFETIME](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime) を参照してください。 ::: 2. 次に、これをインポートします: @@ -631,7 +634,7 @@ ClickHouse サービス内のテーブルに関連付けられた Dictionary を [EXPLAIN]: https://www.postgresql.org/docs/current/sql-explain.html "SQL コマンド: EXPLAIN" -[dictionary]: /sql-reference/dictionaries/index.md +[dictionary]: /sql-reference/statements/create/dictionary [PGXN]: https://pgxn.org/dist/pg_clickhouse "PGXN 上の pg_clickhouse" @@ -644,5 +647,5 @@ ClickHouse サービス内のテーブルに関連付けられた Dictionary を [Postgres image]: https://hub.docker.com/_/postgres "Docker Hub 上の Postgres OCI イメージ" -[Refreshing dictionary data using LIFETIME]: /sql-reference/dictionaries/index.md#refreshing-dictionary-data-using-lifetime +[Refreshing dictionary data using LIFETIME]: /sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime "ClickHouse ドキュメント: LIFETIME を使用した Dictionary データの更新" \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/index.md index 7f1941f5cd0..05e7e68b72d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/integrations/tools/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/tools -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['ClickHouse integrations', 'SQL clients', 'data integrations', 'tools', 'third-party'] title: 'ツール' description: 'ツールセクション用ランディングページ' doc_type: 'landing-page' @@ -12,4 +12,4 @@ doc_type: 'landing-page' |-----------|---------------------------------------------------------------------------------------------------------------------------------| | [SQL Client](/integrations/sql-clients) | ClickHouse をさまざまな一般的なデータベース管理、分析、可視化ツールと統合する方法 | | [Data Integrations](/integrations/tools/data-integrations) | ClickHouse 向けのデータ連携 | -| [Misc](/integrations/audit-splunk) | ClickHouse 用のその他のツール | \ No newline at end of file +| [Misc](/integrations/misc) | ClickHouse 用のその他のツール | \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/caches.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/caches.md index 7e67ee7e301..1188daed69a 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/caches.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/caches.md @@ -27,7 +27,7 @@ doc_type: 'reference' * [ベクトル類似性インデックス](../engines/table-engines/mergetree-family/annindexes.md) キャッシュ。 * [テキストインデックス](../engines/table-engines/mergetree-family/textindexes.md#caching) キャッシュ。 * [Avro format](/interfaces/formats/Avro) スキーマキャッシュ。 -* [Dictionaries](../sql-reference/dictionaries/index.md) データキャッシュ。 +* [Dictionaries](../sql-reference/statements/create/dictionary/index.md) データキャッシュ。 * スキーマ推論キャッシュ。 * S3、Azure、ローカルおよびその他のディスクを対象とした [Filesystem cache](storing-data.md)。 * [Userspace page cache](/operations/userspace-page-cache)。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md index 09ef61d3c33..3eb270b9c6d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md @@ -52,7 +52,7 @@ SETTINGS allow_introspection_functions = 1 * `addressToLine`、`addressToLineWithInlines`、`addressToSymbol`、`demangle` などの [introspection 関数](../../sql-reference/functions/introspection.md) を使用して、ClickHouse コード内の関数名およびその位置を取得します。特定のクエリについてプロファイルを取得するには、`trace_log` テーブルからデータを集約する必要があります。個々の関数単位、またはスタックトレース全体単位でデータを集約できます。 -`trace_log` の情報を可視化する必要がある場合は、[flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) や [speedscope](https://github.com/laplab/clickhouse-speedscope) の使用を検討してください。 +`trace_log` の情報を可視化する必要がある場合は、[flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) や [speedscope](https://www.speedscope.app) の使用を検討してください。 ## 例 \{#example\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md index d53ec741c39..3128d86416c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md @@ -375,7 +375,7 @@ ClickHouse を使い始めたばかりの場合は、この設定は変更しな ``` -## dictionaries_config \{#dictionaries_config\} +## dictionaries_config \{#dictionaries_config\} 辞書の設定ファイルへのパス。 @@ -386,7 +386,7 @@ ClickHouse を使い始めたばかりの場合は、この設定は変更しな 参照: -* 「[Dictionaries](../../sql-reference/dictionaries/index.md)」。 +* 「[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)」。 **例** @@ -1901,12 +1901,14 @@ PostgreSQL プロトコル経由でクライアントと通信するためのポ | `select_from_system_db_requires_grant` | `SELECT * FROM system.` を実行する際に権限が必要かどうか(権限が不要な場合は任意のユーザーが実行可能かどうか)を設定します。true に設定した場合、このクエリには system 以外のテーブルと同様に `GRANT SELECT ON system.
    ` が必要です。例外として、いくつかの system テーブル(`tables`、`columns`、`databases`、および `one`、`contributors` のような一部の定数テーブル)は依然として全員がアクセス可能です。また、`SHOW` 権限(例: `SHOW USERS`)が付与されている場合、対応する system テーブル(つまり `system.users`)にはアクセスできます。 | `true` | | `settings_constraints_replace_previous` | ある設定に対して設定プロファイル内で定義された制約が、その設定に対する以前の制約(他のプロファイルで定義されたもの)による動作を、新しい制約で設定されていないフィールドも含めて打ち消すかどうかを設定します。また、`changeable_in_readonly` 制約タイプを有効にします。 | `true` | | `table_engines_require_grant` | 特定のテーブルエンジンを使用してテーブルを作成する際に権限が必要かどうかを設定します。 | `false` | +| `throw_on_unmatched_row_policies` | テーブルに行ポリシーが存在するにもかかわらず、現在のユーザーに対応する行ポリシーが 1 つもない場合に、そのテーブルから読み取ろうとしたときに例外をスローするかどうかを設定します。 | `false` | | `users_without_row_policies_can_read_rows` | パーミッシブな行ポリシーを持たないユーザーが `SELECT` クエリを使用して行を読み取れるかどうかを設定します。たとえば、ユーザー A と B がいて、行ポリシーが A に対してのみ定義されている場合、この設定が true であればユーザー B はすべての行を閲覧できます。この設定が false の場合、ユーザー B はどの行も閲覧できません。 | `true` | 例: ```xml + true true true true diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md index 3d93a21755d..7fb96f58b55 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md @@ -40,12 +40,14 @@ ClickHouse における設定ファイルの詳細については、[""Configura | `select_from_system_db_requires_grant` | `SELECT * FROM system.
    ` を実行するのに権限が必要か、また任意のユーザーが実行できるかどうかを設定します。true に設定した場合、このクエリには、通常テーブルと同様に `GRANT SELECT ON system.
    ` が必要になります。例外として、いくつかの system テーブル(`tables`、`columns`、`databases` と、`one`、`contributors` などの一部の定数テーブル)は依然として全ユーザーがアクセス可能です。また、`SHOW USERS` のような `SHOW` 権限が付与されている場合、対応する system テーブル(すなわち `system.users`)にはアクセスできます。 | `true` | | `settings_constraints_replace_previous` | ある設定に対する settings profile 内の制約が、その設定に対して以前に定義された制約(他のプロファイル内で定義されたもの)による動作を、新しい制約で設定されていないフィールドも含めて打ち消すかどうかを設定します。また、`changeable_in_readonly` 制約タイプを有効化します。 | `true` | | `table_engines_require_grant` | 特定のテーブルエンジンを使用してテーブルを作成する際に、権限が必要かどうかを設定します。 | `false` | +| `throw_on_unmatched_row_policies` | テーブルに行ポリシーが存在するものの、そのいずれも現在のユーザー向けではない場合に、そのテーブルからの読み取りで例外をスローするかどうかを設定します。 | `false` | | `users_without_row_policies_can_read_rows` | 許可する行ポリシーを持たないユーザーが、`SELECT` クエリを使用して行を読み取れるかどうかを設定します。例えば、ユーザー A と B がいて、行ポリシーが A のみに対して定義されている場合、この設定が true であれば、ユーザー B はすべての行を閲覧できます。この設定が false の場合、ユーザー B はいかなる行も閲覧できません。 | `true` | 例: ```xml + true true true true @@ -927,7 +929,7 @@ ZooKeeper 上のテーブルへのパス。 関連項目: -* "[Dictionaries](../../sql-reference/dictionaries/index.md)"。 +* "[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)"。 **例** @@ -4958,6 +4960,10 @@ ClickHouse はサーバー上のすべてのテーブルに対してこの設定 ``` +## users_to_ignore_early_memory_limit_check \{#users_to_ignore_early_memory_limit_check\} + +早期メモリ制限チェックを無視するUSERをカンマ区切りで指定するリストです。USERがこのリストに含まれていない場合、合計メモリ使用量が制限を超えるとクエリは拒否されます。 + ## validate_tcp_client_information \{#validate_tcp_client_information\} クエリパケット受信時にクライアント情報を検証するかどうかを制御します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index fa8abf17a7b..68a6a5a3ccb 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -466,6 +466,18 @@ BSON 形式のスキーマ推論を行う際に、サポートされていない CapnProto フォーマットでスキーマ推論を行う際に、サポートされていない型のカラムをスキップする +## input_format_connection_handling \{#input_format_connection_handling\} + + + + + +このオプションを有効にすると、接続が予期せず切断された場合でも、エラーとして扱われるのではなく、バッファ内に残っているデータが解析および処理されます。 + +:::note +このオプションを有効にすると、並列解析が無効になり、重複排除を行えなくなります。 +::: + ## input_format_csv_allow_cr_end_of_line \{#input_format_csv_allow_cr_end_of_line\} @@ -972,6 +984,18 @@ JSON / JSONCompact / JSONColumnsWithMetadata 入力フォーマットに対し 入力フォーマットでデータを解析する際に生成されるブロックのサイズを、バイト単位で制限します。ClickHouse 側でブロックを生成する行ベースの入力フォーマットで使用されます。 0 はバイト数に制限がないことを意味します。 +## input_format_max_block_wait_ms \{#input_format_max_block_wait_ms\} + + + + + +行ベースの入力フォーマットをパースする際に、ブロックが出力されるまでの待機時間の最大値をミリ秒単位で制限します。0 を指定すると無制限になります。 + +:::note +このオプションは `input_format_connection_handling` が有効な場合にのみ動作します。値を設定すると並列パースが無効化され、重複排除(deduplication)は行えなくなります。 +::: + ## input_format_max_bytes_to_read_for_schema_inference \{#input_format_max_bytes_to_read_for_schema_inference\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md index fb0fc7f5895..8c75f02b2b7 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -604,6 +604,16 @@ YTsaurus との統合用の実験的なテーブルエンジンです。 YTsaurus との統合向けの実験的なテーブルエンジンです。 +## allow_fuzz_query_functions \{#allow_fuzz_query_functions\} + + + + + + + +`fuzzQuery` 関数を有効にします。この関数は、クエリ文字列に対してランダムな AST の変異を適用します。 + ## allow_general_join_planning \{#allow_general_join_planning\} @@ -630,9 +640,11 @@ Hyperscan ライブラリを使用する関数の利用を許可します。コ +**別名**: `allow_experimental_insert_into_iceberg` + - + Iceberg テーブルに対する `insert` クエリの実行を許可します。 @@ -1069,9 +1081,9 @@ Join モードでパッチパーツを適用する際に使用する一時キャ ## apply_row_policy_after_final \{#apply_row_policy_after_final\} - + - + 有効にすると、*MergeTree テーブルに対して ROW POLICY と PREWHERE が FINAL 処理の後に適用されます(特に ReplacingMergeTree の場合に有用です)。 無効にすると、ROW POLICY は FINAL の前に適用されます。この場合、ReplacingMergeTree などのエンジンで重複排除に使われるべき行を @@ -1120,6 +1132,32 @@ Arrow Flight リクエストで使用するディスクリプタの種類。'pat - 'path' — FlightDescriptor::Path を使用(デフォルト。ほとんどの Arrow Flight サーバーで動作) - 'command' — SELECT クエリとともに FlightDescriptor::Command を使用(Dremio では必須) +## ast_fuzzer_any_query \{#ast_fuzzer_any_query\} + + + + + + + +false(デフォルト)の場合、サーバー側の AST fuzzer(`ast_fuzzer_runs` で制御)は読み取り専用クエリ(SELECT、EXPLAIN、SHOW、DESCRIBE、EXISTS)に対してのみファジングを行います。true の場合、DDL や INSERT を含むすべてのクエリ種別がファジングされます。 + +## ast_fuzzer_runs \{#ast_fuzzer_runs\} + + + + + + + +各通常クエリの後にランダムなクエリを実行し、その結果を破棄するサーバー側のAST fuzzerを有効にします。 + +- 0:無効(デフォルト)。 +- 0と1の間の値(両端を含まない):1回の通常クエリに対して、単一のfuzzクエリを実行する確率。 +- 1以上の値:通常クエリ1つあたりに実行するfuzzクエリの回数。 + +fuzzerは、すべてのセッションにわたるすべてのクエリからASTフラグメントを蓄積し、時間の経過とともにより興味深い変異を生成します。失敗したfuzzクエリはサイレントに破棄され、結果がクライアントに返されることはありません。 + ## asterisk_include_alias_columns \{#asterisk_include_alias_columns\} @@ -3344,8 +3382,6 @@ BLOB ストレージの操作情報を system.blob_storage_log テーブルに ## enable_full_text_index \{#enable_full_text_index\} - - **別名**: `allow_experimental_full_text_index` @@ -5337,6 +5373,30 @@ INTERSECT クエリにおけるデフォルトモードを設定します。取 サンプルは、設定 `jemalloc_collect_global_profile_samples_in_trace_log` またはクエリ設定 `jemalloc_collect_profile_samples_in_trace_log` を用いて `system.trace_log` に保存することもできます。 [Allocation Profiling](/operations/allocation-profiling) を参照してください。 +## jemalloc_profile_text_collapsed_use_count \{#jemalloc_profile_text_collapsed_use_count\} + + + + + +jemalloc ヒーププロファイルで「collapsed」出力形式を使用する場合に、バイト数ではなく割り当て回数で集計します。false(デフォルト)の場合は各スタックを生存バイト数で重み付けし、true の場合は生存割り当て回数で重み付けします。 + +## jemalloc_profile_text_output_format \{#jemalloc_profile_text_output_format\} + + + + + +system.jemalloc_profile_text テーブル内の jemalloc ヒーププロファイルの出力形式です。'raw'(生のプロファイル)、'symbolized'(シンボル付きの jeprof 形式)、または 'collapsed'(FlameGraph 形式)のいずれかを指定できます。 + +## jemalloc_profile_text_symbolize_with_inline \{#jemalloc_profile_text_symbolize_with_inline\} + + + + + +jemalloc ヒーププロファイルをシンボル化する際にインラインフレームを含めるかどうかを制御します。有効にするとインラインフレームが含まれ、シンボル化処理が大幅に遅くなる可能性があります。無効にするとインラインフレームはスキップされます。`symbolized` および `collapsed` 出力形式にのみ影響します。 + ## join_algorithm \{#join_algorithm\} @@ -8201,6 +8261,14 @@ AND チェーン内で定数を用いた比較条件を補完し、フィルタ 現在、この設定を有効にするには `optimize_skip_unused_shards` が必要です(その理由は、将来的にこの設定がデフォルトで有効になる可能性があり、その場合に正しく動作するのは、データが Distributed テーブル経由で挿入されている、つまりデータが sharding_key に従って分散されている場合に限られるためです)。 ::: +## optimize_dry_run_check_part \{#optimize_dry_run_check_part\} + + + + + +有効な場合は、`OPTIMIZE ... DRY RUN` は `checkDataPart` を使用してマージ後のデータパートを検証します。検証に失敗すると、例外がスローされます。 + ## optimize_empty_string_comparisons \{#optimize_empty_string_comparisons\} @@ -11119,14 +11187,6 @@ TCP が keepalive プローブの送信を開始するまで、その接続が 反転テキスト索引から構築されたヒントを使用する際のフィルタ選択度の上限値。 -## text_index_use_bloom_filter \{#text_index_use_bloom_filter\} - - - - - -テスト目的で、テキスト索引における Bloom フィルターの使用を有効または無効にします。 - ## throw_if_no_data_to_insert \{#throw_if_no_data_to_insert\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md index d47cdf70732..21870959f75 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md @@ -10,53 +10,55 @@ import SystemTableCloud from '@site/i18n/jp/docusaurus-plugin-content-docs/curre -[辞書](../../sql-reference/dictionaries/index.md) に関する情報が含まれます。 +[辞書](../../sql-reference/statements/create/dictionary/index.md)に関する情報を含みます。 -列: +列: {/*AUTOGENERATED_START*/ } -* `database` ([String](../../sql-reference/data-types/)) — DDL クエリによって作成された辞書を含むデータベース名。その他の辞書の場合は空文字列。 -* `name` ([String](../../sql-reference/data-types/)) — 辞書名。 -* `uuid` ([UUID](../../sql-reference/data-types/)) — 辞書の UUID。 -* `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](../../sql-reference/data-types/)) — 辞書のステータス。取りうる値: - * **NOT_LOADED** — 使用されていないため、辞書はロードされていない - * **LOADED** — 辞書が正常にロードされた - * **FAILED** — エラーにより辞書をロードできなかった - * **LOADING** — 現在辞書をロード中 - * **LOADED_AND_RELOADING** — 辞書は正常にロードされており、現在再ロード中(よくある理由: SYSTEM RELOAD DICTIONARY クエリ、タイムアウト、辞書設定の変更) - * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — - * **timeout** — - * **dictionary config has changed)** — - * **FAILED_AND_RELOADING** — エラーにより辞書をロードできず、現在再ロード中。 -* `origin` ([String](../../sql-reference/data-types/)) — 辞書を定義する設定ファイルへのパス。 -* `type` ([String](../../sql-reference/data-types/)) — 辞書の割り当て方式の種類。メモリ内に辞書を格納する方式。 -* `key.names` ([Array(String)](../../sql-reference/data-types/)) — 辞書によって提供されるキー名の配列。 -* `key.types` ([Array(String)](../../sql-reference/data-types/)) — 辞書によって提供されるキー型の対応する配列。 -* `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — 辞書によって提供される属性名の配列。 -* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — 辞書によって提供される属性型の対応する配列。 -* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 辞書に割り当てられた RAM の量。 -* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 階層インデックスに割り当てられた RAM の量。 -* `query_count` ([UInt64](../../sql-reference/data-types/)) — 辞書がロードされてから、または直近の正常な再ロード以降のクエリ数。 -* `hit_rate` ([Float64](../../sql-reference/data-types/)) — キャッシュ辞書について、値がキャッシュ内に存在した参照の割合(パーセンテージ)。 -* `found_rate` ([Float64](../../sql-reference/data-types/)) — 値が見つかった参照の割合(パーセンテージ)。 -* `element_count` ([UInt64](../../sql-reference/data-types/)) — 辞書に保存されている項目数。 -* `load_factor` ([Float64](../../sql-reference/data-types/)) — 辞書の使用率(ハッシュ辞書の場合はハッシュテーブルの使用率/ロードファクタ)。 -* `source` ([String](../../sql-reference/data-types/)) — 辞書のデータソースを記述するテキスト。 -* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — メモリ内での辞書の最小存続時間。この時間経過後、ClickHouse は辞書の再ロードを試みる(`invalidate_query` が設定されている場合は、その内容が変更されたときのみ)。秒単位で指定。 -* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — メモリ内での辞書の最大存続時間。この時間経過後、ClickHouse は辞書の再ロードを試みる(`invalidate_query` が設定されている場合は、その内容が変更されたときのみ)。秒単位で指定。 -* `loading_start_time` ([DateTime](../../sql-reference/data-types/)) — 辞書のロード開始時刻。 -* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — 辞書のロードまたは更新の終了時刻。辞書ソースに関する問題を監視し、原因を調査するのに役立つ。 -* `error_count` ([UInt64](../../sql-reference/data-types/)) — 直近の正常なロード以降のエラー数。辞書ソースに関する問題を監視し、原因を調査するのに役立つ。 -* `loading_duration` ([Float32](../../sql-reference/data-types/)) — 辞書のロードに要した時間。 -* `last_exception` ([String](../../sql-reference/data-types/)) — 辞書の作成または再ロード時に、辞書を作成できなかった場合に発生したエラーの内容。 -* `comment` ([String](../../sql-reference/data-types/)) — 辞書に対するコメントの内容。 + +* `database` ([String](../../sql-reference/data-types/)) — DDL クエリによって作成された Dictionary を含むデータベース名。他の Dictionary の場合は空文字列。 +* `name` ([String](../../sql-reference/data-types/)) — Dictionary 名。 +* `uuid` ([UUID](../../sql-reference/data-types/)) — Dictionary の UUID。 +* `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](../../sql-reference/data-types/)) — Dictionary のステータス。取りうる値: + * **NOT_LOADED** — 使用されていないため Dictionary はロードされていない + * **LOADED** — Dictionary が正常にロードされた + * **FAILED** — エラーにより Dictionary をロードできなかった + * **LOADING** — Dictionary をロード中 + * **LOADED_AND_RELOADING** — Dictionary は正常にロード済み + * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — かつ現在再ロード中 (主な理由: SYSTEM RELOAD DICTIONARY クエリ、 + * **timeout** — タイムアウト、 + * **dictionary config has changed)** — Dictionary 設定の変更 など)。 + * **FAILED_AND_RELOADING** — エラーにより Dictionary をロードできず、現在ロード中。 +* `origin` ([String](../../sql-reference/data-types/)) — Dictionary を記述する設定ファイルへのパス。 +* `type` ([String](../../sql-reference/data-types/)) — Dictionary の割り当て方式。Storing Dictionaries in Memory。 +* `key.names` ([Array(String)](../../sql-reference/data-types/)) — Dictionary により提供されるキー名の配列。 +* `key.types` ([Array(String)](../../sql-reference/data-types/)) — Dictionary により提供されるキー型の対応する配列。 +* `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — Dictionary により提供される属性名の配列。 +* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — Dictionary により提供される属性型の対応する配列。 +* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — Dictionary に割り当てられた RAM 量。 +* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 階層型索引に割り当てられた RAM 量。 +* `query_count` ([UInt64](../../sql-reference/data-types/)) — Dictionary がロードされてから、または最後に正常に再起動されてからのクエリ数。 +* `hit_rate` ([Float64](../../sql-reference/data-types/)) — キャッシュ Dictionary に対し、値がキャッシュ内に存在した使用の割合 (パーセンテージ)。 +* `found_rate` ([Float64](../../sql-reference/data-types/)) — 値が見つかった使用の割合 (パーセンテージ)。 +* `element_count` ([UInt64](../../sql-reference/data-types/)) — Dictionary に保存されているアイテム数。 +* `load_factor` ([Float64](../../sql-reference/data-types/)) — Dictionary の充填率 (ハッシュ Dictionary の場合はハッシュテーブルの充填率)。 +* `source` ([String](../../sql-reference/data-types/)) — Dictionary のデータソースを記述するテキスト。 +* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — メモリ上の Dictionary の最小存続時間。その時間経過後に、ClickHouse は Dictionary の再ロードを試行する (invalidate_query が設定されている場合は、変更されているときのみ)。秒単位で指定。 +* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — メモリ上の Dictionary の最大存続時間。その時間経過後に、ClickHouse は Dictionary の再ロードを試行する (invalidate_query が設定されている場合は、変更されているときのみ)。秒単位で指定。 +* `loading_start_time` ([DateTime](../../sql-reference/data-types/)) — Dictionary のロード開始時刻。 +* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — Dictionary のロードまたは更新の終了時刻。Dictionary ソースに関する問題を監視し、その原因を調査するのに役立つ。 +* `error_count` ([UInt64](../../sql-reference/data-types/)) — 直近の正常なロード以降のエラー数。Dictionary ソースに関する問題を監視し、その原因を調査するのに役立つ。 +* `loading_duration` ([Float32](../../sql-reference/data-types/)) — Dictionary ロードの所要時間。 +* `last_exception` ([String](../../sql-reference/data-types/)) — Dictionary を作成または再ロードする際に発生し、Dictionary を作成できなかった場合のエラーのテキスト。 +* `comment` ([String](../../sql-reference/data-types/)) — Dictionary に対するコメントのテキスト。 {/*AUTOGENERATED_END*/ } **例** -辞書を設定します。 +Dictionary を設定します: + ```sql CREATE DICTIONARY dictionary_with_comment diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/events.md b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/events.md index 612cb11e943..c75c60eefe1 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/events.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/operations/system-tables/events.md @@ -1,28 +1,424 @@ --- -description: 'システムで発生したイベント数に関する情報を保持するシステムテーブル。' -keywords: ['system table', 'イベント'] +description: 'システム内で発生したイベントの回数に関する情報を保持するシステムテーブル。' +keywords: ['システムテーブル', 'イベント'] slug: /operations/system-tables/events title: 'system.events' doc_type: 'reference' --- import SystemTableCloud from '@site/i18n/jp/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -システム内で発生したイベントの数に関する情報が含まれています。たとえば、このテーブルでは、ClickHouse サーバーの起動以降に処理された `SELECT` クエリの件数を確認できます。 +システム内で発生したイベント数に関する情報を含みます。たとえば、このテーブルでは、ClickHouse サーバーの起動以降に処理された `SELECT` クエリの件数を確認できます。 列: {/*AUTOGENERATED_START*/ } * `event` ([String](../../sql-reference/data-types/)) — イベント名。 -* `value` ([UInt64](../../sql-reference/data-types/)) — 発生したイベント数。 +* `value` ([UInt64](../../sql-reference/data-types/)) — 発生したイベントの数。 * `description` ([String](../../sql-reference/data-types/)) — イベントの説明。 {/*AUTOGENERATED_END*/ } -サポートされているイベントの一覧は、ソースファイル [src/Common/ProfileEvents.cpp](https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/ProfileEvents.cpp) で確認できます。 + + + + 以下のイベントはClickHouse OSSで利用できます: + + {/*AUTOGENERATED_START id='oss_events'*/ } + + | イベント | 説明 | + | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | + | `クエリ` | 解釈され実行される可能性のあるクエリ数。パースに失敗したクエリや、AST サイズ制限、QUOTA 制限、同時実行クエリ数の制限により拒否されたクエリは含みません。ClickHouse 自身が発行した内部クエリを含む場合があります。サブクエリはカウントしません。 | + | `SelectQuery` | `Query` と同じですが、SELECT クエリに限定されます。 | + | `InitialQuery` | `Query` と同様ですが、初期クエリのみをカウントします(`is_initial_query` を参照)。 | + | `InitialSelectQuery` | `InitialQuery` と同じですが、SELECT クエリにのみ適用されます。 | + | `QueriesWithSubqueries` | すべてのサブクエリを含めたクエリ数をカウントします。 | + | `SelectQueriesWithSubqueries` | すべてのサブクエリを含めた SELECT クエリ数をカウントします。 | + | `FileOpen` | オープンしたファイルの数。 | + | `Seek` | lseek 関数が呼び出された回数。 | + | `ReadBufferFromFileDescriptorRead` | ファイルディスクリプタからの読み取り(read/pread)の回数。ソケットは含みません。 | + | `ReadBufferFromFileDescriptorReadBytes` | ファイルディスクリプタから読み取られたバイト数。ファイルが圧縮されている場合は、圧縮データのサイズを示します。 | + | `WriteBufferFromFileDescriptorWrite` | ファイルディスクリプタへの書き込み(write/pwrite)の回数。ソケットは含みません。 | + | `WriteBufferFromFileDescriptorWriteBytes` | ファイルディスクリプタに書き込まれたバイト数。ファイルが圧縮されている場合は、圧縮データのサイズを示します。 | + | `FileSync` | ファイルに対して F_FULLFSYNC/fsync/fdatasync 関数が呼び出された回数。 | + | `FileSyncElapsedMicroseconds` | ファイルに対する F_FULLFSYNC/fsync/fdatasync システムコールの完了を待機していた合計時間。 | + | `IOBufferAllocs` | I/O バッファ(ReadBuffer/WriteBuffer 用)の割り当て回数。 | + | `IOBufferAllocBytes` | I/O バッファ(ReadBuffer/WriteBuffer 用)に割り当てられたバイト数。 | + | `DiskReadElapsedMicroseconds` | read システムコールの完了を待機していた合計時間。ページキャッシュからの読み取りも含みます。 | + | `DiskWriteElapsedMicroseconds` | write システムコールの完了を待機していた合計時間。ページキャッシュへの書き込みも含みます。 | + | `NetworkReceiveElapsedMicroseconds` | ネットワークからデータを受信する、または受信を待機していた合計時間。ClickHouse に関連するネットワーク処理のみを対象とし、サードパーティライブラリによる処理は含みません。 | + | `NetworkSendElapsedMicroseconds` | ネットワークへデータを送信する、または送信を待機していた合計時間。ClickHouse に関連するネットワーク処理のみを対象とし、サードパーティライブラリによる処理は含みません。 | + | `NetworkReceiveBytes` | ネットワークから受信した総バイト数。ClickHouse に関連するネットワーク処理のみを対象とし、サードパーティライブラリによる処理は含みません。 | + | `NetworkSendBytes` | ネットワークへ送信した総バイト数。ClickHouse に関連するネットワーク処理のみを対象とし、サードパーティライブラリによる処理は含みません。 | + | `GlobalThreadPoolExpansions` | グローバルスレッドプールに新しいスレッドが追加された累計回数を表します。このメトリクスは、処理需要の増加に対応してグローバルスレッドプールがどの程度の頻度でスケールアウトされたかを示します。 | + | `GlobalThreadPoolThreadCreationMicroseconds` | 新しいスレッドが開始されるまで待機していた累積時間。 | + | `GlobalThreadPoolLockWaitMicroseconds` | グローバルスレッドプール内で、スレッドがロックの取得を待機していた累積時間。 | + | `GlobalThreadPoolJobs` | グローバルスレッドプールにプッシュされたジョブの累計数。 | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | ジョブがスレッドプール内でスケジュールされてから、ワーカースレッドによって実行のために取得されるまでの経過時間を測定します。このメトリクスにより、ジョブ処理の遅延を特定でき、スレッドプールが新しいタスクにどれだけ迅速に応答しているかを示します。 | + | `LocalThreadPoolExpansions` | ローカルスレッドプールを拡張するために、グローバルスレッドプールからスレッドが借用された累計回数。 | + | `LocalThreadPoolShrinks` | ローカルスレッドプールからグローバルスレッドプールにスレッドが返却された累計回数。 | + | `LocalThreadPoolThreadCreationMicroseconds` | ローカルスレッドプールが、グローバルプールからスレッドを借用できるようになるまで待機していた累積時間。 | + | `LocalThreadPoolJobs` | ローカルスレッドプールにプッシュされたジョブの累計数。 | + | `LocalThreadPoolBusyMicroseconds` | スレッドが実際の処理を実行していた累積時間。 | + | `LocalThreadPoolJobWaitTimeMicroseconds` | ジョブがスレッドプール内でスケジュールされてから、ワーカースレッドによって実行のために取得されるまでの経過時間を測定します。このメトリクスにより、ジョブ処理の遅延を特定でき、スレッドプールが新しいタスクにどれだけ迅速に応答しているかを示します。 | + | `QueryPlanOptimizeMicroseconds` | クエリプランの最適化を実行するのに費やされた累積時間。 | + | `ContextLock` | Context のロックが取得された、または取得しようとした累計回数。このロックはグローバルロックです。 | + | `RWLockAcquiredReadLocks` | heavy な RWLock において、読み取りロックが取得された累計回数。 | + | `QueryProfilerSignalOverruns` | オーバーランによりクエリプロファイラシグナルの処理を破棄した回数と、オーバーランにより OS が配信しなかったシグナルの回数の合計。 | + | `QueryProfilerRuns` | QueryProfiler が実行された累計回数。 | + | `MainConfigLoads` | メイン構成が再読み込みされた累計回数。 | + | `ServerStartupMilliseconds` | サーバーの起動開始からソケットの listen を開始するまでに経過した時間(ミリ秒単位)。 | + | `AsyncLoaderWaitMicroseconds` | クエリが非同期ローダージョブの完了を待機していた累積時間。 | + | `LogTrace` | ログレベル Trace のログメッセージ数。 | + | `LogDebug` | ログレベル Debug のログメッセージ数。 | + | `LogInfo` | ログレベル Info のログメッセージ数。 | + | `LogWarning` | ログレベル Warning のログメッセージ数。 | + | `LoggerElapsedNanoseconds` | ロギングに費やされた累積時間。 | + | `InterfaceNativeSendBytes` | ネイティブインターフェイス経由で送信されたバイト数 | + | `InterfaceNativeReceiveBytes` | ネイティブインターフェイス経由で受信されたバイト数 | + | `MemoryWorkerRun` | バックグラウンドでの MemoryWorker の実行回数 | + | `MemoryWorkerRunElapsedMicroseconds` | バックグラウンド処理に MemoryWorker が費やした合計時間 | + | `AsyncLoggingFileLogTotalMessages` | ファイルログ向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + | `AsyncLoggingErrorFileLogTotalMessages` | エラー用ファイルログ向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + | `AsyncLoggingTextLogTotalMessages` | text_log 向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + + {/*AUTOGENERATED_END*/ } + + + + 以下のイベントは ClickHouse Cloud で利用できます: + + {/*AUTOGENERATED_START id='cloud_events'*/ } + + | イベント | 説明 | + | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `クエリ` | 解釈され、実行される可能性のあるクエリの数。パースに失敗したクエリや、AST サイズ制限、QUOTA 制限、同時実行クエリ数の制限により拒否されたクエリは含みません。ClickHouse 自身が開始する内部クエリを含むことがあります。サブクエリはカウントしません。 | + | `SelectQuery` | `Query` と同じですが、SELECT クエリに限定されます。 | + | `InitialQuery` | `Query` と同様ですが、初期クエリのみをカウントします(`is_initial_query` を参照)。 | + | `QueriesWithSubqueries` | すべてのサブクエリを含めたクエリ数。 | + | `SelectQueriesWithSubqueries` | すべてのサブクエリを含めた SELECT クエリ数。 | + | `SelectQueriesWithPrimaryKeyUsage` | WHERE 条件の評価にプライマリキーを使用する SELECT クエリ数。 | + | `QueryTimeMicroseconds` | すべてのクエリの合計実行時間。 | + | `SelectQueryTimeMicroseconds` | SELECT クエリの合計実行時間。 | + | `OtherQueryTimeMicroseconds` | SELECT および INSERT 以外のクエリの合計実行時間。 | + | `FileOpen` | 開かれたファイルの数。 | + | `Seek` | 関数 `lseek` が呼び出された回数。 | + | `ReadBufferFromFileDescriptorRead` | ファイルディスクリプタからの読み取り(read/pread)の回数。ソケットは含みません。 | + | `ReadBufferFromFileDescriptorReadBytes` | ファイルディスクリプタから読み取られたバイト数。ファイルが圧縮されている場合は、圧縮データのサイズを表します。 | + | `WriteBufferFromFileDescriptorWrite` | ファイルディスクリプタへの書き込み(write/pwrite)の回数。ソケットは含みません。 | + | `WriteBufferFromFileDescriptorWriteBytes` | ファイルディスクリプタに書き込まれたバイト数。ファイルが圧縮されている場合は、圧縮データのサイズを表します。 | + | `ReadCompressedBytes` | 圧縮ソース(ファイル、ネットワーク)から読み取られたバイト数(解凍前のバイト数)。 | + | `CompressedReadBufferBlocks` | 圧縮ソース(ファイル、ネットワーク)から読み取られた圧縮ブロック数(互いに独立して圧縮されているデータブロック数)。 | + | `CompressedReadBufferBytes` | 圧縮ソース(ファイル、ネットワーク)から読み取られた非圧縮バイト数(解凍後のバイト数)。 | + | `OpenedFileCacheHits` | オープン済みファイルのキャッシュ内でファイルが見つかり、再度オープンする必要がなかった回数。 | + | `OpenedFileCacheMisses` | オープン済みファイルのキャッシュ内でファイルが見つかったものの、その結果として再度オープンしなければならなかった回数。 | + | `OpenedFileCacheMicroseconds` | OpenedFileCache のメソッドの実行に費やされた時間。 | + | `IOBufferAllocs` | I/O バッファ(ReadBuffer/WriteBuffer 用)の割り当て回数。 | + | `IOBufferAllocBytes` | I/O バッファ(ReadBuffer/WriteBuffer 用)に割り当てられたバイト数。 | + | `ArenaAllocChunks` | メモリアリーナ(GROUP BY などの処理で使用)のために割り当てられた chunk の数。 | + | `ArenaAllocBytes` | メモリアリーナ(GROUP BY などの処理で使用)のために割り当てられたバイト数。 | + | `FunctionExecute` | 通常の SQL 関数の呼び出し回数(SQL 関数はブロック単位で呼び出されるため、この数値はブロック数を表します)。 | + | `TableFunctionExecute` | テーブル関数の呼び出し回数。 | + | `DefaultImplementationForNullsRows` | 関数の実行時に、NULL に対するデフォルト実装で処理された行数。 | + | `DefaultImplementationForNullsRowsWithNulls` | 関数の実行時に、NULL を含む行のうち、NULL に対するデフォルト実装で処理された行数。 | + | `MarkCacheHits` | マークキャッシュ内でエントリが見つかり、マークファイルを読み込む必要がなかった回数。 | + | `MarkCacheMisses` | マークキャッシュ内でエントリが見つからず、マークファイルをメモリに読み込む必要があった回数。この処理はコストが高く、クエリレイテンシの増加につながります。 | + | `QueryConditionCacheHits` | クエリ条件キャッシュでエントリが見つかり(マークの読み取りをスキップできる)、ヒットした回数。SETTING use_query_condition_cache = 1 が有効な SELECT クエリに対してのみ更新されます。 | + | `QueryConditionCacheMisses` | クエリ条件キャッシュでエントリが見つからず(マークの読み取りをスキップできない)、ミスした回数。SETTING use_query_condition_cache = 1 が有効な SELECT クエリに対してのみ更新されます。 | + | `CreatedReadBufferOrdinary` | データ読み取りのために、他の読み取り方式と比較して通常の read buffer が作成された回数。 | + | `DiskReadElapsedMicroseconds` | read システムコールを待機するのに費やした合計時間。ページキャッシュからの読み取りも含みます。 | + | `DiskWriteElapsedMicroseconds` | write システムコールを待機するのに費やした合計時間。ページキャッシュへの書き込みも含みます。 | + | `NetworkReceiveElapsedMicroseconds` | ネットワークからデータを受信する、または受信を待機するのに費やした合計時間。ClickHouse に関連するネットワーク処理のみがカウントされ、サードパーティライブラリによるものは含みません。 | + | `NetworkSendElapsedMicroseconds` | ネットワークへデータを送信する、または送信を待機するのに費やした合計時間。ClickHouse に関連するネットワーク処理のみがカウントされ、サードパーティライブラリによるものは含みません。 | + | `NetworkReceiveBytes` | ネットワークから受信したバイト数の合計。ClickHouse に関連するネットワーク処理のみがカウントされ、サードパーティライブラリによるものは含みません。 | + | `NetworkSendBytes` | ネットワークへ送信したバイト数の合計。ClickHouse に関連するネットワーク処理のみがカウントされ、サードパーティライブラリによるものは含みません。 | + | `GlobalThreadPoolExpansions` | グローバルスレッドプールに新しいスレッドが追加された累計回数をカウントします。このメトリクスは、処理需要の増加に対応してグローバルスレッドプールがどの程度スケールアウトしたかを示します。 | + | `GlobalThreadPoolThreadCreationMicroseconds` | 新しいスレッドが起動するまでの待機に費やした累計時間。 | + | `GlobalThreadPoolLockWaitMicroseconds` | グローバルスレッドプール内で、スレッドがロックの取得待ちに費やした累計時間。 | + | `GlobalThreadPoolJobs` | グローバルスレッドプールにプッシュされたジョブの累計数をカウントします。 | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | ジョブがスレッドプールでスケジューリングされてから、ワーカースレッドによって実行のためにピックアップされるまでの経過時間を測定します。このメトリクスは、ジョブ処理の遅延を特定し、新規タスクに対するスレッドプールの応答性を示します。 | + | `LocalThreadPoolExpansions` | ローカルスレッドプールを拡張するために、グローバルスレッドプールからスレッドが借用された累計回数をカウントします。 | + | `LocalThreadPoolShrinks` | ローカルスレッドプールからグローバルスレッドプールへスレッドが返却された累計回数をカウントします。 | + | `LocalThreadPoolThreadCreationMicroseconds` | ローカルスレッドプールが、グローバルプールからスレッドを借用可能になるまでの待機に費やした累計時間。 | + | `LocalThreadPoolLockWaitMicroseconds` | ローカルスレッドプール内で、スレッドがロックの取得待ちに費やした累計時間。 | + | `LocalThreadPoolJobs` | ローカルスレッドプールにプッシュされたジョブの累計数をカウントします。 | + | `LocalThreadPoolBusyMicroseconds` | スレッドが実際の処理を実行することに費やした累計時間。 | + | `LocalThreadPoolJobWaitTimeMicroseconds` | ジョブがスレッドプールでスケジューリングされてから、ワーカースレッドによって実行のためにピックアップされるまでの経過時間を測定します。このメトリクスは、ジョブ処理の遅延を特定し、新規タスクに対するスレッドプールの応答性を示します。 | + | `RemoteReadThrottlerBytes` | 'max_remote_read_network_bandwidth_for_server' / 'max_remote_read_network_bandwidth' のスロットリング機構を通過したバイト数。 | + | `RemoteWriteThrottlerBytes` | 'max_remote_write_network_bandwidth_for_server' / 'max_remote_write_network_bandwidth' のスロットリング機構を通過したバイト数。 | + | `InsertedRows` | すべてのテーブルに対して INSERT された行数。 | + | `InsertedBytes` | すべてのテーブルに対して INSERT されたバイト数(非圧縮。メモリ上に格納されているカラムのサイズ)。 | + | `ZooKeeperInit` | ZooKeeper との接続が確立された回数。 | + | `ZooKeeperTransactions` | ZooKeeper に対する操作回数。読み取り・書き込みの両方の操作およびマルチトランザクションを含む。 | + | `ZooKeeperList` | ZooKeeper への「list」(getChildren)リクエストの回数。 | + | `ZooKeeperCreate` | ZooKeeper への「create」リクエストの回数。 | + | `ZooKeeperRemove` | ZooKeeper への「remove」リクエストの回数。 | + | `ZooKeeperExists` | ZooKeeper への「exists」リクエストの回数。 | + | `ZooKeeperGet` | ZooKeeper への「get」リクエストの回数。 | + | `ZooKeeperSet` | ZooKeeper への「set」リクエストの回数。 | + | `ZooKeeperMulti` | ZooKeeper への「multi」リクエスト(複合トランザクション)の回数。 | + | `ZooKeeperMultiRead` | ZooKeeper への読み取り用「multi」リクエスト(複合トランザクション)の回数。 | + | `ZooKeeperMultiWrite` | ZooKeeper への書き込み用「multi」リクエスト(複合トランザクション)の回数。 | + | `ZooKeeperSync` | ZooKeeper への「sync」リクエストの回数。これらのリクエストが必要または有用になることはまれである。 | + | `ZooKeeperClose` | ZooKeeper との接続が任意に切断された回数。 | + | `ZooKeeperWatchResponse` | ZooKeeper からウォッチ通知を受信した回数。 | + | `ZooKeeperWaitMicroseconds` | リクエスト発行後、ZooKeeper からのレスポンス待機に費やしたマイクロ秒の合計(すべてのリクエストスレッドの合計)。 | + | `ZooKeeperBytesSent` | ZooKeeper との通信でネットワーク経由で送信されたバイト数。 | + | `ZooKeeperBytesReceived` | ZooKeeper との通信でネットワーク経由で受信したバイト数。 | + | `DistributedConnectionTries` | 分散接続試行の総回数。 | + | `DistributedConnectionUsable` | 利用可能なサーバー(必要なテーブルを保持しているが、データが古い可能性のあるサーバー)への分散接続が成功した総回数。 | + | `SuspendSendingQueryToShard` | async_query_sending_for_remote が有効な場合に、分片へのクエリ送信を一時停止した総回数。 | + | `CompileFunction` | 生成された LLVM コードのコンパイル(複雑な式向けに融合関数を作成するため)が開始された回数。 | + | `CompileExpressionsMicroseconds` | 式を LLVM コードにコンパイルするのに費やされた合計時間。 | + | `CompileExpressionsBytes` | 式のコンパイルに使用されたバイト数。 | + | `QueryPlanOptimizeMicroseconds` | クエリプランの最適化を実行するのに費やされた合計時間。 | + | `SelectedParts` | MergeTree テーブルからの読み取りのために選択されたデータパーツの数。 | + | `SelectedPartsTotal` | MergeTree テーブルから読み取るパーツを選択する前の、データパーツの総数。 | + | `SelectedRanges` | MergeTree テーブルからの読み取りのために選択されたすべてのデータパーツ内の(非隣接)レンジ数。 | + | `SelectedMarks` | MergeTree テーブルからの読み取りのために選択されたマーク(索引グラニュール)の数。 | + | `SelectedMarksTotal` | MergeTree テーブルから読み取るマークを選択する前の、マーク(索引グラニュール)の総数。 | + | `SelectedRows` | すべてのテーブルから SELECT された行数。 | + | `SelectedBytes` | すべてのテーブルから SELECT されたバイト数(非圧縮。メモリ上に格納されているカラムのサイズ)。 | + | `RowsReadByMainReader` | メインリーダーによって MergeTree テーブルから読み取られた行数(PREWHERE ステップ後)。 | + | `RowsReadByPrewhereReaders` | PREWHERE リーダーによって MergeTree テーブルから読み取られた行数(合計)。 | + | `LoadedDataParts` | 初期化中に MergeTree テーブルによってロードされたデータパーツの数。 | + | `LoadedDataPartsMicroseconds` | 初期化中に MergeTree テーブルがデータパーツのロードに費やしたマイクロ秒。 | + | `FilteringMarksWithPrimaryKeyMicroseconds` | PK(プライマリキー)によるパーツのフィルタリングに費やした時間。 | + | `WaitMarksLoadMicroseconds` | マークのロードに費やした時間。 | + | `BackgroundLoadingMarksTasks` | マークをロードするバックグラウンドタスクの数。 | + | `MarksTasksFromCache` | マークがすでにキャッシュに存在していたため、同期的にロードされた回数。 | + | `LoadedMarksFiles` | ロードされたマークファイルの数。 | + | `LoadedMarksCount` | ロードされたマークの数(カラム全体での合計)。 | + | `LoadedMarksMemoryBytes` | ロードされたマークのメモリ上での表現サイズ。 | + | `LoadedPrimaryIndexFiles` | ロードされたプライマリ索引ファイルの数。 | + | `LoadedPrimaryIndexRows` | ロードされたプライマリキーの行数。 | + | `LoadedPrimaryIndexBytes` | ロードされたプライマリキーのバイト数。 | + | `Merge` | 開始されたバックグラウンドマージの数。 | + | `MergeSourceParts` | マージのためにスケジュールされたソースパーツの数。 | + | `MergedRows` | バックグラウンドマージで読み取られた行数。これはマージ前の行数。 | + | `MergedColumns` | マージの水平方向ステージでマージされたカラム数。 | + | `MergedUncompressedBytes` | バックグラウンドマージのために読み取られた非圧縮バイト数(メモリ上に格納されているカラムのサイズ)。これはマージ前の値。 | + | `MergeTotalMilliseconds` | バックグラウンドマージに費やした合計時間。 | + | `MergeExecuteMilliseconds` | バックグラウンドマージの実行においてビジー状態だった時間の合計。 | + | `MergeHorizontalStageTotalMilliseconds` | バックグラウンドマージの水平方向ステージに費やした合計時間。 | + | `MergeHorizontalStageExecuteMilliseconds` | バックグラウンドマージの水平方向ステージの実行においてビジー状態だった時間の合計。 | + | `MergeVerticalStageTotalMilliseconds` | バックグラウンドマージの垂直方向ステージに費やした合計時間。 | + | `MergeProjectionStageTotalMilliseconds` | バックグラウンドマージのプロジェクションステージに費やした合計時間。 | + | `MergeProjectionStageExecuteMilliseconds` | バックグラウンドマージのプロジェクションステージの実行においてビジー状態だった時間の合計。 | + | `MergePrewarmStageTotalMilliseconds` | バックグラウンドマージにおけるプリウォーム段階に費やされた合計時間。 | + | `MergePrewarmStageExecuteMilliseconds` | バックグラウンドマージにおけるプリウォーム段階の実行にビジー状態で費やされた合計時間。 | + | `MergeTreeDataWriterRows` | MergeTree テーブルに INSERT された行数。 | + | `MergeTreeDataWriterUncompressedBytes` | MergeTree テーブルに INSERT されたデータのうち、メモリ上に保持されるカラムの非圧縮バイト数。 | + | `MergeTreeDataWriterCompressedBytes` | MergeTree テーブルに INSERT されたデータについて、ファイルシステムに書き込まれたバイト数。 | + | `MergeTreeDataWriterBlocks` | MergeTree テーブルに INSERT されたブロック数。各ブロックはレベル 0 のデータパーツを形成します。 | + | `MergeTreeDataWriterBlocksAlreadySorted` | MergeTree テーブルに INSERT されたブロックのうち、既にソート済みであったブロック数。 | + | `MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` | MergeMutate エグゼキュータタスクの executeStep() に費やされた時間。 | + | `MergeMutateBackgroundExecutorTaskResetMicroseconds` | MergeMutate エグゼキュータのタスクをリセットするのに費やされた時間。 | + | `CommonBackgroundExecutorTaskExecuteStepMicroseconds` | Common エグゼキュータタスクの executeStep() に費やされた時間。 | + | `CommonBackgroundExecutorTaskResetMicroseconds` | Common エグゼキュータのタスクをリセットするのに費やされた時間。 | + | `MergeTreeDataWriterSortingBlocksMicroseconds` | ブロックのソートに費やされた時間。 | + | `InsertedCompactParts` | Compact 形式で挿入されたパーツ数。 | + | `MergedIntoCompactParts` | Compact 形式にマージされたパーツ数。 | + | `RegexpWithMultipleNeedlesCreated` | 複数のニードルを持つ正規表現(VectorScan ライブラリ)のコンパイル回数。 | + | `RegexpWithMultipleNeedlesGlobalCacheHit` | グローバルキャッシュから、複数のニードルを持つコンパイル済み正規表現(VectorScan ライブラリ)を取得した回数。 | + | `RegexpWithMultipleNeedlesGlobalCacheMiss` | グローバルキャッシュから、複数のニードルを持つコンパイル済み正規表現(VectorScan ライブラリ)の取得に失敗した回数。 | + | `ContextLock` | Context ロックを獲得、または獲得を試行した回数。このロックはグローバルロックです。 | + | `ContextLockWaitMicroseconds` | Context ロックの待ち時間(マイクロ秒)。 | + | `RWLockAcquiredReadLocks` | heavy な RWLock でリードロックが獲得された回数。 | + | `PartsLockHoldMicroseconds` | MergeTree テーブルでデータパーツロックを保持していた合計時間。 | + | `PartsLockWaitMicroseconds` | MergeTree テーブルでデータパーツロックの獲得を待機していた合計時間。 | + | `RealTimeMicroseconds` | 処理スレッド(クエリおよびその他のタスク)で費やされた合計(ウォールクロック)時間(これは合計値である点に注意)。 | + | `UserTimeMicroseconds` | 処理スレッド(クエリおよびその他のタスク)が CPU 命令をユーザーモードで実行するのに費やした合計時間。これには、メインメモリアクセス、キャッシュミス、分岐予測ミス、ハイパースレッディングなどにより CPU パイプラインがストールしていた時間も含まれます。 | + | `SystemTimeMicroseconds` | 処理スレッド(クエリおよびその他のタスク)が CPU 命令を OS カーネルモードで実行するのに費やした合計時間。これはシステムコール内で費やされた時間であり、ブロッキングシステムコール中の待機時間は含みません。 | + | `MemoryAllocatorPurge` | メモリアロケータのパージがリクエストされた合計回数。 | + | `MemoryAllocatorPurgeTimeMicroseconds` | メモリアロケータのパージに要した合計時間。 | + | `SoftPageFaults` | クエリ実行スレッドで発生したソフトページフォールトの数。ソフトページフォールトは通常、メモリアロケータキャッシュのミスを意味し、OS に新しいメモリマッピングを要求し、その後に物理メモリページの割り当てが必要になります。 | + | `OSCPUWaitMicroseconds` | スレッドが実行可能状態であったものの、OS によるスケジューリング待ちになっていた合計時間(OS の観点)。 | + | `OSCPUVirtualTimeMicroseconds` | OS から見た CPU 使用時間。仮想化による非自発的な待ち時間は含みません。 | + | `OSWriteBytes` | ディスクまたはブロックデバイスに書き込まれたバイト数。ページキャッシュ上のダーティページとして存在するバイトは含みません。また、OS によって非同期的に書き込まれたデータを含まない場合があります。 | + | `OSReadChars` | ページキャッシュを含む、ファイルシステムから読み取られたバイト数。 | + | `OSWriteChars` | ページキャッシュを含む、ファイルシステムへ書き込まれたバイト数。 | + | `QueryProfilerRuns` | QueryProfiler の実行回数。 | + | `S3ReadMicroseconds` | S3 ストレージへの GET および HEAD リクエストの処理時間。 | + | `S3ReadRequestsCount` | S3 ストレージへの GET および HEAD リクエストの回数。 | + | `S3ReadRequestsErrors` | S3 ストレージへの GET および HEAD リクエストで発生した、スロットリング以外のエラー数。 | + | `S3ReadRequestAttempts` | S3 ストレージへの GET および HEAD リクエストについて、初回試行およびすべての再試行を含む試行回数。ただし、S3 のリトライ戦略により内部的に実行される再試行は除きます。 | + | `S3WriteMicroseconds` | S3 ストレージへの POST、DELETE、PUT、PATCH リクエストの処理時間。 | + | `S3WriteRequestsCount` | S3 ストレージへの POST、DELETE、PUT、PATCH リクエストの回数。 | + | `S3WriteRequestAttempts` | S3 ストレージへの POST、DELETE、PUT、PATCH リクエストについて、初回試行およびすべての再試行を含む試行回数。ただし、リトライ戦略により内部的に実行される再試行は除きます。 | + | `DiskS3ReadMicroseconds` | DiskS3 ストレージへの GET および HEAD リクエストの処理時間。 | + | `DiskS3ReadRequestsCount` | DiskS3 ストレージへの GET および HEAD リクエストの回数。 | + | `DiskS3ReadRequestsErrors` | DiskS3 ストレージへの GET および HEAD リクエストで発生した、スロットリング以外のエラー数。 | + | `DiskS3ReadRequestAttempts` | DiskS3 ストレージへの GET および HEAD リクエストについて、初回試行およびすべての再試行を含む試行回数。ただし、S3 のリトライ戦略により内部的に実行される再試行は除きます。 | + | `DiskS3WriteMicroseconds` | DiskS3 ストレージへの POST、DELETE、PUT、PATCH リクエストの処理時間。 | + | `DiskS3WriteRequestsCount` | DiskS3 ストレージへの POST、DELETE、PUT、PATCH リクエストの回数。 | + | `DiskS3WriteRequestAttempts` | DiskS3 ストレージに対する POST、DELETE、PUT、PATCH リクエストの試行回数。最初の試行および再試行を含みますが、リトライ戦略により内部的に行われる再試行は含みません。 | + | `S3DeleteObjects` | S3 API の DeleteObject 呼び出し回数。 | + | `S3ListObjects` | S3 API の ListObjects 呼び出し回数。 | + | `S3HeadObject` | S3 API の HeadObject 呼び出し回数。 | + | `S3PutObject` | S3 API の PutObject 呼び出し回数。 | + | `S3GetObject` | S3 API の GetObject 呼び出し回数。 | + | `DiskS3DeleteObjects` | DiskS3 API の DeleteObject 呼び出し回数。 | + | `DiskS3ListObjects` | DiskS3 API の ListObjects 呼び出し回数。 | + | `DiskS3HeadObject` | DiskS3 API の HeadObject 呼び出し回数。 | + | `DiskS3PutObject` | DiskS3 API の PutObject 呼び出し回数。 | + | `DiskS3GetObject` | DiskS3 API の GetObject 呼び出し回数。 | + | `DiskPlainRewritableS3DirectoryCreated` | S3ObjectStorage 用の 'plain_rewritable' メタデータストレージによって作成されたディレクトリ数。 | + | `DiskPlainRewritableS3DirectoryRemoved` | S3ObjectStorage 用の 'plain_rewritable' メタデータストレージによって削除されたディレクトリ数。 | + | `S3Clients` | 作成された S3 クライアントの数。 | + | `ReadBufferFromS3Microseconds` | S3 からの読み取りに要した時間。 | + | `ReadBufferFromS3InitMicroseconds` | S3 への接続初期化に要した時間。 | + | `ReadBufferFromS3Bytes` | S3 から読み取られたバイト数。 | + | `WriteBufferFromS3Microseconds` | S3 への書き込みに要した時間。 | + | `WriteBufferFromS3Bytes` | S3 に書き込まれたバイト数。 | + | `CachedReadBufferReadFromCacheHits` | ファイルシステムキャッシュからの読み取りがキャッシュヒットとなった回数。 | + | `CachedReadBufferReadFromCacheMisses` | ファイルシステムキャッシュからの読み取りがキャッシュミスとなった回数。 | + | `CachedReadBufferReadFromSourceMicroseconds` | ファイルシステムキャッシュのソース(リモートファイルシステムなど)からの読み取りに要した時間。 | + | `CachedReadBufferReadFromCacheMicroseconds` | ファイルシステムキャッシュからの読み取りに要した時間。 | + | `CachedReadBufferReadFromSourceBytes` | ファイルシステムキャッシュのソース(リモートファイルシステムなど)から読み取られたバイト数。 | + | `CachedReadBufferReadFromCacheBytes` | ファイルシステムキャッシュから読み取られたバイト数。 | + | `CachedReadBufferCacheWriteBytes` | ソース(リモートファイルシステムなど)からファイルシステムキャッシュへ書き込まれたバイト数。 | + | `CachedReadBufferCacheWriteMicroseconds` | ファイルシステムキャッシュへのデータ書き込みに要した時間。 | + | `CachedReadBufferCreateBufferMicroseconds` | バッファ準備に要した時間。 | + | `CachedWriteBufferCacheWriteBytes` | ソース(リモートファイルシステムなど)からファイルシステムキャッシュへ書き込まれたバイト数。 | + | `CachedWriteBufferCacheWriteMicroseconds` | ファイルシステムキャッシュへのデータ書き込みに要した時間。 | + | `FilesystemCacheLoadMetadataMicroseconds` | ファイルシステムキャッシュのメタデータ読み込みに要した時間。 | + | `FilesystemCacheCreatedKeyDirectories` | 作成されたキー用ディレクトリの数。 | + | `FilesystemCacheBackgroundDownloadQueuePush` | ファイルシステムキャッシュにおいて、バックグラウンドダウンロード用に送信されたファイルセグメント数。 | + | `FilesystemCacheLockKeyMicroseconds` | キャッシュキーのロックに要した時間。 | + | `FilesystemCacheLockMetadataMicroseconds` | ファイルシステムキャッシュのメタデータロックに要した時間。 | + | `FilesystemCacheLockCacheMicroseconds` | ファイルシステムキャッシュのロックに要した時間。 | + | `FilesystemCacheReserveMicroseconds` | ファイルシステムキャッシュ領域の予約に要した時間。 | + | `FilesystemCacheReserveAttempts` | ファイルシステムキャッシュ領域の予約試行回数。 | + | `FilesystemCacheGetOrSetMicroseconds` | ファイルシステムキャッシュの getOrSet() に要した時間。 | + | `FilesystemCacheGetMicroseconds` | ファイルシステムキャッシュの get() に要した時間。 | + | `FileSegmentCompleteMicroseconds` | ファイルシステムキャッシュにおける FileSegment::complete() の処理時間 | + | `FileSegmentLockMicroseconds` | ファイルセグメントのロックに要した時間 | + | `FileSegmentWriteMicroseconds` | ファイルセグメントの write() 実行時間 | + | `FileSegmentUseMicroseconds` | ファイルセグメントの use() 実行時間 | + | `FileSegmentHolderCompleteMicroseconds` | ファイルセグメントホルダーの complete() 実行時間 | + | `FileSegmentFailToIncreasePriority` | キャッシュロックの競合が高く、優先度を上げられなかった回数 | + | `FilesystemCacheHoldFileSegments` | ファイルシステムキャッシュに保持されているファイルセグメント数 | + | `FilesystemCacheUnusedHoldFileSegments` | ファイルシステムキャッシュに保持されたが使用されなかったファイルセグメント数(シークや LIMIT n などが理由) | + | `RemoteFSSeeks` | 非同期バッファに対する seek の総回数 | + | `RemoteFSPrefetches` | リモートファイルシステムからの非同期読み取りで実行されたプリフェッチの回数 | + | `RemoteFSCancelledPrefetches` | (seek が原因で)キャンセルされたプリフェッチの回数 | + | `RemoteFSUnusedPrefetches` | バッファ破棄時点で保留中だったプリフェッチの数 | + | `RemoteFSPrefetchedReads` | プリフェッチ済みバッファからの読み取り回数 | + | `RemoteFSPrefetchedBytes` | プリフェッチ済みバッファから読み取られたバイト数 | + | `RemoteFSUnprefetchedReads` | プリフェッチされていないバッファからの読み取り回数 | + | `RemoteFSUnprefetchedBytes` | プリフェッチされていないバッファから読み取られたバイト数 | + | `RemoteFSBuffers` | リモートファイルシステムからの非同期読み取り用に作成されたバッファ数 | + | `WaitPrefetchTaskMicroseconds` | プリフェッチリーダーを待機していた時間 | + | `ThreadpoolReaderTaskMicroseconds` | 非同期読み取りでデータ取得に費やした時間 | + | `ThreadpoolReaderReadBytes` | 非同期読み取りにおいてスレッドプールタスクから読み取られたバイト数 | + | `ThreadpoolReaderSubmit` | 非同期読み取りにおいてスレッドプールタスクから読み取られたバイト数 | + | `ThreadpoolReaderSubmitReadSynchronously` | スレッドプールにタスクをスケジュールせず同期的に読み取った回数 | + | `ThreadpoolReaderSubmitReadSynchronouslyBytes` | 同期的に読み取られたバイト数 | + | `ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` | 同期的な読み取りに費やした時間 | + | `ThreadpoolReaderSubmitLookupInCacheMicroseconds` | 内容がキャッシュされているかの確認に費やした時間 | + | `FileSegmentWaitReadBufferMicroseconds` | ファイルセグメント単位のメトリクス:内部読み取りバッファ(キャッシュ待ちを含む)を待機していた時間 | + | `FileSegmentReadMicroseconds` | ファイルセグメント単位のメトリクス:ファイルからの読み取りに費やした時間 | + | `FileSegmentCacheWriteMicroseconds` | ファイルセグメント単位のメトリクス:キャッシュへのデータ書き込みに費やした時間 | + | `FileSegmentUsedBytes` | ファイルセグメント単位のメトリクス:現在のファイルセグメントから実際に使用されたバイト数 | + | `ThreadPoolReaderPageCacheMiss` | ThreadPoolReader 内の読み取りがページキャッシュから行われず、スレッドプールに引き渡された回数 | + | `ThreadPoolReaderPageCacheMissBytes` | ThreadPoolReader 内で、ページキャッシュから読み取られずスレッドプールに引き渡された際に読み取られたバイト数 | + | `ThreadPoolReaderPageCacheMissElapsedMicroseconds` | ThreadPoolReader の非同期ジョブ内で、ページキャッシュから読み取られなかった場合のデータ読み取りに費やした時間 | + | `SynchronousReadWaitMicroseconds` | ローカルの非同期読み取りにおいて、同期読み取りを待機していた時間 | + | `AsynchronousRemoteReadWaitMicroseconds` | 非同期のリモート読み取りを待機していた時間 | + | `SynchronousRemoteReadWaitMicroseconds` | 同期的なリモート読み取りを待機していた時間 | + | `MainConfigLoads` | メイン設定が再読み込みされた回数 | + | `MetadataFromKeeperCacheHit` | Keeper へのリクエストを行わずに、オブジェクトストレージのメタデータ要求がキャッシュから応答された回数 | + | `MetadataFromKeeperCacheMiss` | オブジェクトストレージのメタデータ要求に対して、Keeper から応答を取得する必要があった回数 | + | `MetadataFromKeeperCacheUpdateMicroseconds` | Keeper からの応答待ちを含め、キャッシュの更新に要した合計時間 | + | `MetadataFromKeeperUpdateCacheOneLevel` | ディレクトリツリーの 1 レベルに対してキャッシュ更新が行われた回数 | + | `MetadataFromKeeperTransactionCommit` | メタデータトランザクションのコミットが試行された回数 | + | `MetadataFromKeeperCleanupTransactionCommit` | 削除済みオブジェクトのクリーンアップ用メタデータトランザクションのコミットが試行された回数 | + | `MetadataFromKeeperOperations` | Keeper へのリクエストが行われた回数 | + | `MetadataFromKeeperIndividualOperations` | Keeper への単一または複数リクエストによって読み書きされたパスの数 | + | `MetadataFromKeeperIndividualOperationsMicroseconds` | Keeper への単一または複数リクエストの処理に要した時間 | + | `SharedMergeTreeMetadataCacheHintLoadedFromCache` | Keeper へアクセスせずにメタデータキャッシュヒントがキャッシュから見つかった回数 | + | `ScalarSubqueriesCacheMiss` | スカラーサブクエリからの読み取りがキャッシュされておらず、完全に再計算する必要があった回数 | + | `ServerStartupMilliseconds` | サーバーの起動開始からソケットのリッスン開始までに経過した時間(ミリ秒) | + | `MergerMutatorsGetPartsForMergeElapsedMicroseconds` | パーツからレンジを構築するために、データパーツのスナップショット取得に要した時間 | + | `MergerMutatorPrepareRangesForMergeElapsedMicroseconds` | マージ述語に従ってマージ可能なパーツレンジを準備するのに要した時間 | + | `MergerMutatorSelectPartsForMergeElapsedMicroseconds` | マージ可能なレンジからパーツを選択するのに要した時間 | + | `MergerMutatorRangesForMergeCount` | マージ候補となるレンジの数 | + | `MergerMutatorPartsInRangesForMergeCount` | マージ候補となるパーツの数 | + | `MergerMutatorSelectRangePartsCount` | マージのために選択されたレンジ内のパーツ数 | + | `AsyncLoaderWaitMicroseconds` | クエリが非同期ローダージョブを待機していた合計時間 | + | `LogTrace` | ログレベル Trace のログメッセージ数 | + | `LogDebug` | ログレベル Debug のログメッセージ数 | + | `LogInfo` | ログレベル Info のログメッセージ数 | + | `LogWarning` | ログレベル Warning のログメッセージ数 | + | `LogError` | ログレベル Error のログメッセージ数 | + | `LoggerElapsedNanoseconds` | ロギングに費やした累積時間 | + | `InterfaceHTTPSendBytes` | HTTP インターフェイスを通じて送信されたバイト数 | + | `InterfaceHTTPReceiveBytes` | HTTP インターフェイスを通じて受信したバイト数 | + | `InterfaceNativeSendBytes` | ネイティブインターフェイスを通じて送信されたバイト数 | + | `InterfaceNativeReceiveBytes` | ネイティブインターフェイスを通じて受信したバイト数 | + | `InterfacePrometheusSendBytes` | Prometheus インターフェイスを通じて送信されたバイト数 | + | `InterfacePrometheusReceiveBytes` | Prometheus インターフェイスを通じて受信したバイト数 | + | `InterfaceInterserverSendBytes` | インターサーバーインターフェイスを通じて送信されたバイト数 | + | `InterfaceInterserverReceiveBytes` | インターサーバーインターフェイスを通じて受信したバイト数 | + | `SharedMergeTreeVirtualPartsUpdates` | 仮想パーツの更新回数 | + | `SharedMergeTreeVirtualPartsUpdatesByLeader` | リーダーによる仮想パーツの更新回数 | + | `SharedMergeTreeVirtualPartsUpdateMicroseconds` | 仮想パーツ更新に要したマイクロ秒数 | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` | ZooKeeper からの仮想パーツ更新の回数 | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` | ZooKeeper からの仮想パーツ更新に要したマイクロ秒数 | + | `SharedMergeTreeVirtualPartsUpdatesPeerNotFound` | ピアからの仮想パーツ更新が、ピアが見つからないために失敗した回数 | + | `SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` | 仮想パーツ更新におけるリーダー選出が成功した回数 | + | `SharedMergeTreeMergeMutationAssignmentAttempt` | マージまたはミューテーションの割り当てを試行した回数 | + | `SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` | マージ対象がなく、マージまたはミューテーションの割り当て試行が失敗した回数 | + | `SharedMergeTreePartsKillerRuns` | parts killer が実行された回数 | + | `SharedMergeTreePartsKillerMicroseconds` | parts killer のメインスレッドが要した時間 | + | `SharedMergeTreeMergeSelectingTaskMicroseconds` | SMT でのマージ選択タスクの実行時間(マイクロ秒単位) | + | `SharedMergeTreeScheduleDataProcessingJob` | scheduleDataProcessingJob が呼び出された回数 | + | `SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` | scheduleDataProcessingJob が呼び出されたが処理するものがなかった回数 | + | `SharedMergeTreeScheduleDataProcessingJobMicroseconds` | scheduleDataProcessingJob の実行時間 | + | `SharedMergeTreeHandleBlockingPartsMicroseconds` | scheduleDataProcessingJob におけるブロッキングパーツ処理に要した時間 | + | `SharedMergeTreeHandleFetchPartsMicroseconds` | scheduleDataProcessingJob におけるフェッチ済みパーツ処理に要した時間 | + | `SharedMergeTreeHandleOutdatedPartsMicroseconds` | scheduleDataProcessingJob における古いパーツ処理に要した時間 | + | `SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` | scheduleDataProcessingJob における tryUpdateDiskMetadataCacheForPart の処理時間 | + | `DiskConnectionsCreated` | ディスク向けに新規作成されたコネクション数 | + | `DiskConnectionsReused` | ディスク向けに再利用されたコネクション数 | + | `DiskConnectionsReset` | ディスク向けにリセットされたコネクション数 | + | `DiskConnectionsPreserved` | ディスク向けに保持されたコネクション数 | + | `DiskConnectionsExpired` | ディスク向けで期限切れとなったコネクション数 | + | `DiskConnectionsElapsedMicroseconds` | ディスク向けコネクションの作成に要した合計時間 | + | `HTTPConnectionsCreated` | HTTP クライアントコネクションとして新規作成された数 | + | `HTTPConnectionsReused` | HTTP クライアントコネクションとして再利用された数 | + | `HTTPConnectionsPreserved` | HTTP クライアントコネクションとして保持された数 | + | `HTTPConnectionsElapsedMicroseconds` | HTTP クライアントコネクションの作成に要した合計時間 | + | `HTTPServerConnectionsCreated` | HTTP サーバーコネクションとして新規作成された数 | + | `HTTPServerConnectionsReused` | HTTP サーバーコネクションとして再利用された数 | + | `HTTPServerConnectionsPreserved` | HTTP サーバーコネクションとして保持された数(keep-alive が成功した回数) | + | `HTTPServerConnectionsExpired` | 期限切れとなった HTTP サーバーコネクション数 | + | `HTTPServerConnectionsReset` | サーバー側でクローズまたはリセットされた HTTP サーバーコネクション数 | + | `AddressesDiscovered` | HTTP コネクションのための DNS 解決で新たに検出されたアドレスの合計数 | + | `ReadWriteBufferFromHTTPRequestsSent` | ReadWriteBufferFromHTTP によって送信された HTTP リクエスト数 | + | `ReadWriteBufferFromHTTPBytes` | ReadWriteBufferFromHTTP によって送受信されたペイロードバイト数の合計(HTTP ヘッダーは含まない) | + | `ConcurrencyControlSlotsGranted` | 1 クエリあたり 1 スレッドが保証され、かつ設定 'use_concurrency_control' = 0 のクエリに対して割り当てられた CPU スロット数 | + | `ConcurrencyControlSlotsAcquiredNonCompeting` | 競合しない CPU スロットが取得された合計数 | + | `MemoryWorkerRun` | バックグラウンドで MemoryWorker によって実行された回数 | + | `MemoryWorkerRunElapsedMicroseconds` | バックグラウンド処理に対して MemoryWorker が費やした合計時間 | + | `FilterTransformPassedRows` | クエリ内でフィルタを通過した行数 | + | `FilterTransformPassedBytes` | クエリ内でフィルタを通過したバイト数 | + | `IndexBinarySearchAlgorithm` | 索引マークに対して二分探索アルゴリズムが使用された回数 | + | `IndexGenericExclusionSearchAlgorithm` | 索引マークに対して汎用除外探索アルゴリズムが使用された回数 | + | `AsyncLoggingConsoleTotalMessages` | コンソールログ出力用の非同期キューに送信された(受理または破棄された)メッセージ数 | + | `AsyncLoggingFileLogTotalMessages` | ファイルログ向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + | `AsyncLoggingErrorFileLogTotalMessages` | エラー用ファイルログ向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + | `AsyncLoggingTextLogTotalMessages` | text_log 向けに非同期キューへ送信されたメッセージ数(受理および破棄されたものを含む) | + + {/*AUTOGENERATED_END*/ } + + **例** @@ -31,18 +427,18 @@ SELECT * FROM system.events LIMIT 5 ``` ```text -┌─イベント─────────────────────────────────┬─値─┬─説明────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ -│ Query │ 12 │ 解釈され、実行される可能性のあるクエリの数。パースに失敗したクエリや、AST サイズ制限、クォータ制限、同時に実行されているクエリ数の制限により拒否されたクエリは含まない。ClickHouse 自身によって開始される内部クエリを含む場合がある。サブクエリはカウントしない。 │ -│ SelectQuery │ 8 │ Query と同様だが、SELECT クエリのみを対象とする。 │ -│ FileOpen │ 73 │ 開かれたファイルの数。 │ -│ ReadBufferFromFileDescriptorRead │ 155 │ ファイルディスクリプタからの読み取り(read/pread)の回数。ソケットは含まない。 │ -│ ReadBufferFromFileDescriptorReadBytes │ 9931 │ ファイルディスクリプタから読み取られたバイト数。ファイルが圧縮されている場合は、圧縮後のデータサイズを示す。 │ +┌─event─────────────────────────────────┬─value─┬─description────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +│ Query │ 12 │ Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. │ +│ SelectQuery │ 8 │ Same as Query, but only for SELECT queries. │ +│ FileOpen │ 73 │ Number of files opened. │ +│ ReadBufferFromFileDescriptorRead │ 155 │ Number of reads (read/pread) from a file descriptor. Does not include sockets. │ +│ ReadBufferFromFileDescriptorReadBytes │ 9931 │ Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. │ └───────────────────────────────────────┴───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` **関連項目** -* [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) — 定期的に計算されるメトリクスが格納されています。 -* [system.metrics](/operations/system-tables/metrics) — 即時に計算されるメトリクスが格納されています。 -* [system.metric_log](/operations/system-tables/metric_log) — テーブル `system.metrics` および `system.events` のメトリクス値の履歴が格納されています。 -* [Monitoring](../../operations/monitoring.md) — ClickHouse のモニタリングに関する基本的な概念。 +* [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) — 定期的に計算されるメトリクスを保持します。 +* [system.metrics](/operations/system-tables/metrics) — 即時に計算されるメトリクスを保持します。 +* [system.metric_log](/operations/system-tables/metric_log) — テーブル `system.metrics` および `system.events` のメトリクス値の履歴を保持します。 +* [Monitoring](../../operations/monitoring.md) — ClickHouse のモニタリングに関する基本概念です。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md deleted file mode 100644 index 238100584ab..00000000000 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md +++ /dev/null @@ -1,2571 +0,0 @@ ---- -description: 'ClickHouse における外部辞書機能の概要' -sidebar_label: '辞書の定義' -sidebar_position: 35 -slug: /sql-reference/dictionaries -title: '辞書' -doc_type: 'reference' ---- - -import SelfManaged from '@site/i18n/jp/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; -import CloudDetails from '@site/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md'; -import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; -import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; - -# Dictionaries \{#dictionaries\} - -Dictionary は、さまざまな種類の参照リストに便利なマッピング(`key -> attributes`)です。 - -ClickHouse は、クエリで使用できる Dictionary を操作するための専用関数をサポートしています。参照テーブルとの `JOIN` を使うよりも、Dictionary 関数を使う方が簡単で効率的です。 - -ClickHouse は次の種類の Dictionary をサポートしています: - -- [一連の関数](../../sql-reference/functions/ext-dict-functions.md) を持つ Dictionaries。 -- 特定の [一連の関数](../../sql-reference/functions/embedded-dict-functions.md) を持つ [Embedded dictionaries](#embedded-dictionaries)。 - -:::tip チュートリアル -ClickHouse で Dictionary の利用を始める場合、このトピックを扱ったチュートリアルがあります。[こちら](tutorial.md) を参照してください。 -::: - -さまざまなデータソースから独自の Dictionary を作成できます。Dictionary のソースには、ClickHouse テーブル、ローカルテキストファイルまたは実行可能ファイル、HTTP(s) リソース、あるいは別の DBMS を使用できます。詳細については「[Dictionary Sources](#dictionary-sources)」を参照してください。 - -ClickHouse は次のことを行います: - -- Dictionary を RAM に完全または部分的に格納します。 -- Dictionary を定期的に更新し、欠落している値を動的にロードします。言い換えると、Dictionary は動的にロードできます。 -- xml ファイルまたは [DDL queries](../../sql-reference/statements/create/dictionary.md) を使って Dictionary を作成できるようにします。 - -Dictionary の設定は 1 つ以上の xml ファイル内に配置できます。設定ファイルへのパスは [dictionaries_config](../../operations/server-configuration-parameters/settings.md#dictionaries_config) パラメータで指定します。 - -Dictionary は、[dictionaries_lazy_load](../../operations/server-configuration-parameters/settings.md#dictionaries_lazy_load) 設定に応じて、サーバー起動時または初回使用時にロードできます。 - -[dictionaries](/operations/system-tables/dictionaries) システムテーブルには、サーバーで設定されている Dictionary に関する情報が含まれています。各 Dictionary について、次の情報を確認できます: - -- Dictionary のステータス。 -- 設定パラメータ。 -- Dictionary に割り当てられた RAM の量や、Dictionary が正常にロードされてからのクエリ数といったメトリクス。 - - - -## DDL クエリによる Dictionary の作成 \{#creating-a-dictionary-with-a-ddl-query\} - -Dictionary は [DDL クエリ](../../sql-reference/statements/create/dictionary.md) で作成できます。この方法が推奨されます。DDL クエリで作成された Dictionary には次のような利点があります。 - -- サーバーの設定ファイルに追加のレコードを追記する必要がありません。 -- Dictionary をテーブルやビューと同様に、第一級のエンティティとして扱うことができます。 -- Dictionary テーブル関数ではなく、`SELECT` といった馴染みのある構文を使ってデータを直接読み取ることができます。`SELECT` 文を通じて Dictionary に直接アクセスする場合、キャッシュされる Dictionary はキャッシュ済みデータのみを返し、キャッシュされない Dictionary は保持している全データを返すことに注意してください。 -- Dictionary の名前を容易に変更できます。 - -## 設定ファイルを使用して Dictionary を作成する \{#creating-a-dictionary-with-a-configuration-file\} - - - -:::note -設定ファイルを使用して Dictionary を作成する方法は ClickHouse Cloud ではサポートされていません。DDL(上記参照)を使用し、`default` ユーザーとして Dictionary を作成してください。 -::: - -Dictionary の設定ファイルは次の形式です。 - -```xml - - An optional element with any content. Ignored by the ClickHouse server. - - - /etc/metrika.xml - - - - - - - - -``` - -同じファイル内で、任意の数の Dictionary を[設定](#configuring-a-dictionary)できます。 - -:::note -`SELECT` クエリで記述することで、小規模な Dictionary の値を変換できます([transform](../../sql-reference/functions/other-functions.md) 関数を参照)。この機能は Dictionary 機能とは無関係です。 -::: - -## Dictionary の設定 \{#configuring-a-dictionary\} - - - -Dictionary を XML ファイルで設定する場合、その設定は次のような構造になります。 - -```xml - - dict_name - - - - - - - - - - - - - - - - - -``` - -対応する [DDL クエリ](../../sql-reference/statements/create/dictionary.md) は次の構造です。 - -```sql -CREATE DICTIONARY dict_name -( - ... -- attributes -) -PRIMARY KEY ... -- complex or single key configuration -SOURCE(...) -- Source configuration -LAYOUT(...) -- Memory layout configuration -LIFETIME(...) -- Lifetime of dictionary in memory -``` - -## メモリ内における Dictionary の保存 \{#storing-dictionaries-in-memory\} - -Dictionary をメモリ内に保存する方法はいくつかあります。 - -最適な処理速度を実現できるため、[flat](#flat)、[hashed](#hashed)、および [complex_key_hashed](#complex_key_hashed) を推奨します。 - -キャッシュ方式は、性能が低下する可能性があることと、最適なパラメータ選定が難しいことから推奨されません。詳細は [cache](#cache) セクションを参照してください。 - -Dictionary のパフォーマンスを向上させる方法はいくつかあります。 - -* `GROUP BY` の後に、Dictionary を扱う関数を呼び出します。 -* 取得する属性を「単射」としてマークします。属性は、異なるキーが異なる属性値に対応する場合に単射と呼ばれます。そのため、`GROUP BY` でキーから属性値を取得する関数を使用している場合、この関数は自動的に `GROUP BY` の外に取り出されます。 - -ClickHouse は Dictionary に関するエラーに対して例外をスローします。エラーの例は次のとおりです。 - -* 参照しようとしている Dictionary をロードできなかった。 -* `cached` Dictionary へのクエリ中のエラー。 - -[system.dictionaries](../../operations/system-tables/dictionaries.md) テーブルで Dictionary の一覧とそのステータスを確認できます。 - - - -設定は次のようになります。 - -```xml - - - ... - - - - - - ... - - -``` - -対応する [DDL クエリ](../../sql-reference/statements/create/dictionary.md): - -```sql -CREATE DICTIONARY (...) -... -LAYOUT(LAYOUT_TYPE(param value)) -- layout settings -... -``` - -レイアウトに `complex-key*` を含まない辞書はキーとして [UInt64](../../sql-reference/data-types/int-uint.md) 型を持ち、`complex-key*` 辞書は複合キー(任意の型を含み得る複雑なキー)を持ちます。 - -XML 辞書における [UInt64](../../sql-reference/data-types/int-uint.md) キーは `` タグで定義されます。 - -設定例(キーのカラム key_column は UInt64 型): - -```xml -... - - - key_column - -... -``` - -複合(`complex`)キーを持つ XML 辞書は `` タグで定義します。 - -複合キーの設定例(キーが [String](../../sql-reference/data-types/string.md) 型の要素を 1 つだけ持つ場合): - -```xml -... - - - - country_code - String - - -... -``` - -## メモリ内に Dictionary を格納する方法 \{#ways-to-store-dictionaries-in-memory\} - -Dictionary データをメモリ内に格納する方法には、それぞれ CPU および RAM の使用量に関するトレードオフがあります。どのレイアウトを使用するかを判断する際の出発点としては、Dictionary 関連の[ブログ記事](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)内の「[Choosing a Layout](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)」セクションに掲載されている決定木が有用です。 - -- [flat](#flat) -- [hashed](#hashed) -- [sparse_hashed](#sparse_hashed) -- [complex_key_hashed](#complex_key_hashed) -- [complex_key_sparse_hashed](#complex_key_sparse_hashed) -- [hashed_array](#hashed_array) -- [complex_key_hashed_array](#complex_key_hashed_array) -- [range_hashed](#range_hashed) -- [complex_key_range_hashed](#complex_key_range_hashed) -- [cache](#cache) -- [complex_key_cache](#complex_key_cache) -- [ssd_cache](#ssd_cache) -- [complex_key_ssd_cache](#complex_key_ssd_cache) -- [direct](#direct) -- [complex_key_direct](#complex_key_direct) -- [ip_trie](#ip_trie) - -### flat \{#flat\} - -Dictionary は、flat 配列の形式で完全にメモリ上に格納されます。Dictionary はどの程度のメモリを使用するのでしょうか?使用量は、(使用領域における)最大キー値のサイズに比例します。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型であり、値は `max_array_size`(デフォルト — 500,000)までに制限されます。Dictionary の作成時に、これより大きなキーが見つかった場合、ClickHouse は例外をスローし、Dictionary を作成しません。Dictionary の flat 配列の初期サイズは、`initial_array_size` 設定(デフォルト — 1024)で制御されます。 - -すべての種類のソースがサポートされます。更新時には、(ファイルまたはテーブルからの)データが全体として読み込まれます。 - -この方式は、Dictionary を格納するために利用可能なすべての方式の中で、最も高いパフォーマンスを提供します。 - -設定例: - -```xml - - - 50000 - 5000000 - - -``` - -または - -```sql -LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) -``` - -### hashed \{#hashed\} - -Dictionary はハッシュテーブルの形式で、完全にメモリ上に格納されます。Dictionary には、任意の識別子を持つ要素をいくつでも含めることができます。実際には、キーの数が数千万件に達することもあります。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -あらゆる種類のソースをサポートします。更新時には、データ(ファイルまたはテーブルから)は全体が読み込まれます。 - -設定例: - -```xml - - - -``` - -または - -```sql -LAYOUT(HASHED()) -``` - -設定例: - -```xml - - - - 10 - - - 10000 - - - 0.5 - - -``` - -または - -```sql -LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### sparse_hashed \{#sparse_hashed\} - -`hashed` に似ていますが、メモリ消費量を抑える代わりに CPU 使用量が増加します。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -設定例: - -```xml - - - - - - - -``` - -または - -```sql -LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -この種類の Dictionary でも `shards` を使用できます。また、`sparse_hashed` は `hashed` よりも遅いため、`hashed` よりも `sparse_hashed` で `shards` を使うことのほうが重要になります。 - -### complex_key_hashed \{#complex_key_hashed\} - -この種のストレージは、複合[キー](#dictionary-key-and-fields)と併せて使用します。`hashed` と同様です。 - -設定例: - -```xml - - - - - - - -``` - -または - -```sql -LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### complex_key_sparse_hashed \{#complex_key_sparse_hashed\} - -このストレージタイプは、複合[キー](#dictionary-key-and-fields)用です。[sparse_hashed](#sparse_hashed)と同様です。 - -設定例: - -```xml - - - - - - - -``` - -または - -```sql -LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### hashed_array \{#hashed_array\} - -Dictionary は完全にメモリ内に格納されます。各 attribute は配列として格納されます。キーとなる attribute は、値が attributes 配列内のインデックスであるハッシュテーブルの形式で格納されます。Dictionary には、任意の識別子を持つ任意数の要素を含めることができます。実際には、キー数が数千万件に達することがあります。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -あらゆる種類のソースがサポートされます。更新時には、データ(ファイルまたはテーブルからのもの)は全体が一括で読み込まれます。 - -設定例: - -```xml - - - - -``` - -または - -```sql -LAYOUT(HASHED_ARRAY([SHARDS 1])) -``` - -### complex_key_hashed_array \{#complex_key_hashed_array\} - -このストレージタイプは、複合[キー](#dictionary-key-and-fields)で使用するためのものです。[hashed_array](#hashed_array)と同様です。 - -構成例: - -```xml - - - -``` - -または - -```sql -LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) -``` - -### range_hashed \{#range_hashed\} - -Dictionary は、範囲とそれに対応する値の順序付き配列を持つハッシュテーブル形式でメモリ上に保持されます。 - -このストレージ方式は `hashed` と同様に動作し、キーに加えて日付/時刻(任意の数値型)の範囲も使用できます。 - -例: このテーブルには、各広告主ごとの割引が次の形式で格納されています。 - -```text -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 123 │ 2015-01-16 │ 2015-01-31 │ 0.25 │ -│ 123 │ 2015-01-01 │ 2015-01-15 │ 0.15 │ -│ 456 │ 2015-01-01 │ 2015-01-15 │ 0.05 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ -``` - -日付範囲のサンプルを使用するには、[structure](#dictionary-key-and-fields) 内で `range_min` と `range_max` 要素を定義します。これらの要素には `name` と `type` の要素を含める必要があります(`type` が指定されていない場合、デフォルトの型である Date 型が使用されます)。`type` には任意の数値型(Date / DateTime / UInt64 / Int32 / その他)を指定できます。 - -:::note -`range_min` と `range_max` の値は `Int64` 型に収まる必要があります。 -::: - -例: - -```xml - - - - min - - - - - advertiser_id - - - discount_start_date - Date - - - discount_end_date - Date - - ... -``` - -または - -```sql -CREATE DICTIONARY discounts_dict ( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Date, - amount Float64 -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'discounts')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(RANGE_HASHED(range_lookup_strategy 'max')) -RANGE(MIN discount_start_date MAX discount_end_date) -``` - -これらのディクショナリを使用するには、`dictGet` 関数に、範囲を指定するための追加引数を渡す必要があります。 - -```sql -dictGet('dict_name', 'attr_name', id, date) -``` - -クエリ例: - -```sql -SELECT dictGet('discounts_dict', 'amount', 1, '2022-10-20'::Date); -``` - -この関数は、指定された `id` と、渡された日付を含む日付範囲に対応する値を返します。 - -アルゴリズムの詳細は次のとおりです。 - -* `id` が見つからない場合、またはその `id` に対応する範囲が見つからない場合、属性の型のデフォルト値を返します。 -* 範囲が重複していて `range_lookup_strategy=min` の場合、一致する範囲のうち `range_min` が最小のものを返し、さらに複数見つかった場合は `range_max` が最小のものを返し、それでも複数見つかった場合(複数の範囲が同じ `range_min` と `range_max` を持つ場合)は、それらの中からランダムな範囲を返します。 -* 範囲が重複していて `range_lookup_strategy=max` の場合、一致する範囲のうち `range_min` が最大のものを返し、さらに複数見つかった場合は `range_max` が最大のものを返し、それでも複数見つかった場合(複数の範囲が同じ `range_min` と `range_max` を持つ場合)は、それらの中からランダムな範囲を返します。 -* `range_max` が `NULL` の場合、その範囲は開区間です。`NULL` は取りうる最大値として扱われます。`range_min` については、開区間として `1970-01-01` か `0` (-MAX_INT) を使用できます。 - -設定例: - -```xml - - - ... - - - - - - - - Abcdef - - - StartTimeStamp - UInt64 - - - EndTimeStamp - UInt64 - - - XXXType - String - - - - - - -``` - -または - -```sql -CREATE DICTIONARY somedict( - Abcdef UInt64, - StartTimeStamp UInt64, - EndTimeStamp UInt64, - XXXType String DEFAULT '' -) -PRIMARY KEY Abcdef -RANGE(MIN StartTimeStamp MAX EndTimeStamp) -``` - -重複する範囲および端が開いている範囲を含む設定例: - -```sql -CREATE TABLE discounts -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -ENGINE = Memory; - -INSERT INTO discounts VALUES (1, '2015-01-01', Null, 0.1); -INSERT INTO discounts VALUES (1, '2015-01-15', Null, 0.2); -INSERT INTO discounts VALUES (2, '2015-01-01', '2015-01-15', 0.3); -INSERT INTO discounts VALUES (2, '2015-01-04', '2015-01-10', 0.4); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-15', 0.5); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-10', 0.6); - -SELECT * FROM discounts ORDER BY advertiser_id, discount_start_date; -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 1 │ 2015-01-01 │ ᴺᵁᴸᴸ │ 0.1 │ -│ 1 │ 2015-01-15 │ ᴺᵁᴸᴸ │ 0.2 │ -│ 2 │ 2015-01-01 │ 2015-01-15 │ 0.3 │ -│ 2 │ 2015-01-04 │ 2015-01-10 │ 0.4 │ -│ 3 │ 1970-01-01 │ 2015-01-15 │ 0.5 │ -│ 3 │ 1970-01-01 │ 2015-01-10 │ 0.6 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ - --- RANGE_LOOKUP_STRATEGY 'max' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'max')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.2 │ -- two ranges are matching, range_min 2015-01-15 (0.2) is bigger than 2015-01-01 (0.1) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.4 │ -- two ranges are matching, range_min 2015-01-04 (0.4) is bigger than 2015-01-01 (0.3) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.5 │ -- two ranges are matching, range_min are equal, 2015-01-15 (0.5) is bigger than 2015-01-10 (0.6) -└─────┘ - -DROP DICTIONARY discounts_dict; - --- RANGE_LOOKUP_STRATEGY 'min' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'min')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.1 │ -- two ranges are matching, range_min 2015-01-01 (0.1) is less than 2015-01-15 (0.2) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.3 │ -- two ranges are matching, range_min 2015-01-01 (0.3) is less than 2015-01-04 (0.4) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.6 │ -- two ranges are matching, range_min are equal, 2015-01-10 (0.6) is less than 2015-01-15 (0.5) -└─────┘ -``` - -### complex_key_range_hashed \{#complex_key_range_hashed\} - -Dictionary は、範囲とそれに対応する値の順序付き配列を持つハッシュテーブルの形式でメモリ上に保存されます([range_hashed](#range_hashed) を参照)。このストレージ形式は、複合 [キー](#dictionary-key-and-fields) と共に使用するためのものです。 - -設定例: - -```sql -CREATE DICTIONARY range_dictionary -( - CountryID UInt64, - CountryKey String, - StartDate Date, - EndDate Date, - Tax Float64 DEFAULT 0.2 -) -PRIMARY KEY CountryID, CountryKey -SOURCE(CLICKHOUSE(TABLE 'date_table')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(COMPLEX_KEY_RANGE_HASHED()) -RANGE(MIN StartDate MAX EndDate); -``` - -### cache \{#cache\} - -Dictionary は、固定数のセルを持つキャッシュ内に保存されます。これらのセルには、頻繁に使用される要素が格納されます。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -Dictionary の検索時には、まずキャッシュが検索されます。各データブロックについて、キャッシュ内に見つからない、または古くなっているすべてのキーが、`SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)` を使用してソースから取得されます。受信したデータはキャッシュに書き込まれます。 - -キーが Dictionary に存在しない場合、キャッシュ更新タスクが作成され、更新キューに追加されます。更新キューのプロパティは、`max_update_queue_size`、`update_queue_push_timeout_milliseconds`、`query_wait_timeout_milliseconds`、`max_threads_for_updates` の各設定で制御できます。 - -キャッシュ型 Dictionary の場合、キャッシュ内データの有効期限である [lifetime](#refreshing-dictionary-data-using-lifetime) を設定できます。あるセルにデータが読み込まれてから `lifetime` で指定された時間より長く経過している場合、そのセルの値は使用されず、キーは期限切れと見なされます。このキーは、次回使用が必要になったときに再リクエストされます。この動作は、`allow_read_expired_keys` 設定で構成できます。 - -これは、Dictionary を格納する方法の中で最も効率が低い方法です。キャッシュの速度は、適切な設定と利用シナリオに強く依存します。キャッシュ型 Dictionary は、ヒット率が十分に高い場合(推奨 99% 以上)にのみ良好に動作します。平均ヒット率は、[system.dictionaries](../../operations/system-tables/dictionaries.md) テーブルで確認できます。 - -`allow_read_expired_keys` 設定が 1(デフォルトは 0)に設定されている場合、Dictionary は非同期更新をサポートできます。クライアントがキーを要求し、そのすべてがキャッシュ内にあるものの、一部が期限切れである場合、Dictionary はクライアントに期限切れのキーの値を返し、ソースからそれらを非同期でリクエストします。 - -キャッシュ性能を向上させるには、`LIMIT` を含むサブクエリを使用し、Dictionary を利用する関数を外側で呼び出してください。 - -すべての種類のソースがサポートされています。 - -設定例: - -```xml - - - - 1000000000 - - 0 - - 100000 - - 10 - - 60000 - - 4 - - -``` - -または - -```sql -LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) -``` - -十分に大きなキャッシュサイズを設定します。セル数は実際に試しながら選定する必要があります。 - -1. ある値を設定する。 -2. キャッシュが完全に埋まるまでクエリを実行する。 -3. `system.dictionaries` テーブルを使ってメモリ使用量を評価する。 -4. 必要なメモリ使用量に達するまで、セル数を増減させる。 - -:::note -ClickHouse をデータソースとして使用しないでください。ランダムリードを伴うクエリの処理が遅くなるためです。 -::: - -### complex_key_cache \{#complex_key_cache\} - -このタイプのストレージは、複合[キー](#dictionary-key-and-fields)で使用します。`cache` と同様です。 - -### ssd_cache \{#ssd_cache\} - -`cache` と同様ですが、データを SSD 上に、インデックスを RAM 上に保存します。更新キューに関連するすべてのキャッシュ Dictionary 設定は、SSD キャッシュ Dictionary にも適用できます。 - -Dictionary キーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -```xml - - - - 4096 - - 16777216 - - 131072 - - 1048576 - - /var/lib/clickhouse/user_files/test_dict - - -``` - -または - -```sql -LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 - PATH '/var/lib/clickhouse/user_files/test_dict')) -``` - -### complex_key_ssd_cache \{#complex_key_ssd_cache\} - -このタイプのストレージは、複合[キー](#dictionary-key-and-fields)向けに使用します。`ssd_cache` と同様のものです。 - -### direct \{#direct\} - -Dictionary はメモリに常駐せず、リクエストの処理中にソースへ直接アクセスします。 - -Dictionary のキーは [UInt64](../../sql-reference/data-types/int-uint.md) 型です。 - -ローカルファイルを除く、すべての種類の [ソース](#dictionary-sources) がサポートされています。 - -設定例: - -```xml - - - -``` - -または - -```sql -LAYOUT(DIRECT()) -``` - -### complex_key_direct \{#complex_key_direct\} - -このストレージタイプは、複合[キー](#dictionary-key-and-fields)で使用します。`direct` と同様です。 - -### ip_trie \{#ip_trie\} - -この Dictionary は、ネットワークプレフィックスによる IP アドレス検索向けに設計されています。CIDR 表記で IP 範囲を保持し、特定の IP がどのプレフィックス(例: サブネットや ASN の範囲)に属するかを高速に判別できるため、ジオロケーションやネットワーク分類といった IP ベースの検索に最適です。 - - - -### ClickHouse オープンソースで Regular Expression Tree Dictionary を使用する \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} - -ClickHouse オープンソースでは、正規表現ツリーを含む YAML ファイルへのパスを指定した `YAMLRegExpTree` ソースを使用して Regular Expression Tree Dictionary を定義します。 - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -... -``` - -Dictionary のソース `YAMLRegExpTree` は、正規表現ツリーの構造を表します。例えば、次のとおりです。 - -```yaml -- regexp: 'Linux/(\d+[\.\d]*).+tlinux' - name: 'TencentOS' - version: '\1' - -- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' - name: 'Android' - versions: - - regexp: '33/tclwebkit' - version: '13' - - regexp: '3[12]/tclwebkit' - version: '12' - - regexp: '30/tclwebkit' - version: '11' - - regexp: '29/tclwebkit' - version: '10' -``` - -この構成は、正規表現ツリーのノードのリストで構成されます。各ノードは次の構造を持ちます。 - -* **regexp**: ノードの正規表現。 -* **attributes**: ユーザー定義の Dictionary 属性のリスト。この例には 2 つの属性 `name` と `version` があります。最初のノードは両方の属性を定義します。2 番目のノードは属性 `name` のみを定義します。属性 `version` は 2 番目のノードの子ノードによって与えられます。 - * 属性の値には、マッチした正規表現のキャプチャグループを参照する **バックリファレンス** を含めることができます。この例では、最初のノードにおける属性 `version` の値は、正規表現内のキャプチャグループ `(\d+[\.\d]*)` へのバックリファレンス `\1` から構成されています。バックリファレンス番号は 1 から 9 までで、`$1` または `\1`(番号 1 の場合)のように記述します。バックリファレンスは、クエリ実行時にマッチしたキャプチャグループで置き換えられます。 -* **child nodes**: regexp ツリーノードの子のリストで、それぞれが独自の属性と(場合によっては)子ノードを持ちます。文字列のマッチングは深さ優先で行われます。文字列が regexp ノードにマッチした場合、Dictionary はそのノードの子ノードにもマッチするかどうかを確認します。マッチする場合は、最も深い位置でマッチしたノードの属性が割り当てられます。子ノードの属性は、同名の親ノードの属性を上書きします。YAML ファイル内での子ノード名は、前述の例の `versions` のように任意に指定できます。 - -正規表現ツリー Dictionary には、`dictGet`、`dictGetOrDefault`、`dictGetAll` 関数からのみアクセスできます。 - -例: - -```sql -SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); -``` - -結果: - -```text -┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ -│ ('Android','12') │ -└─────────────────────────────────────────────────────────────────┘ -``` - -この場合、まず最上位レイヤーの第 2 ノードで正規表現 `\d+/tclwebkit(?:\d+[\.\d]*)` にマッチさせます。その後 Dictionary はさらに子ノードを探索し、文字列が `3[12]/tclwebkit` にもマッチすることを検出します。結果として、属性 `name` の値は(第 1 レイヤーで定義されている)`Android` となり、属性 `version` の値は(子ノードで定義されている)`12` となります。 - -強力な YAML 設定ファイルを用いることで、regexp tree dictionaries をユーザーエージェント文字列パーサーとして使用できます。[uap-core](https://github.com/ua-parser/uap-core) をサポートしており、機能テスト [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) でその使用方法を示しています。 - -#### 属性値の収集 \{#collecting-attribute-values\} - -場合によっては、葉ノードの値だけでなく、マッチした複数の正規表現から値を返せると便利なことがあります。このようなケースでは、専用の [`dictGetAll`](../../sql-reference/functions/ext-dict-functions.md#dictGetAll) 関数を使用できます。あるノードが型 `T` の属性値を持つ場合、`dictGetAll` は 0 個以上の値を含む `Array(T)` を返します。 - -デフォルトでは、キーごとに返されるマッチ数には上限がありません。上限は、`dictGetAll` に対するオプションの第 4 引数として指定できます。配列は *トポロジカル順* で埋められます。つまり、子ノードが親ノードより前に来て、兄弟ノードは元の定義内の順序に従います。 - -例: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - tag String, - topological_index Int64, - captured Nullable(String), - parent String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -LIFETIME(0) -``` - -```yaml -# /var/lib/clickhouse/user_files/regexp_tree.yaml -- regexp: 'clickhouse\.com' - tag: 'ClickHouse' - topological_index: 1 - paths: - - regexp: 'clickhouse\.com/docs(.*)' - tag: 'ClickHouse Documentation' - topological_index: 0 - captured: '\1' - parent: 'ClickHouse' - -- regexp: '/docs(/|$)' - tag: 'Documentation' - topological_index: 2 - -- regexp: 'github.com' - tag: 'GitHub' - topological_index: 3 - captured: 'NULL' -``` - -```sql -CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; -INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); -SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; -``` - -結果: - -```text -┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ -│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ -│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ -│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ -└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ -``` - -#### マッチングモード \{#matching-modes\} - -パターンマッチングの動作は、特定の Dictionary の設定によって変更できます。 - -- `regexp_dict_flag_case_insensitive`: 大文字と小文字を区別しないマッチングを行います(デフォルトは `false`)。個々の正規表現内で `(?i)` および `(?-i)` を用いて上書きできます。 -- `regexp_dict_flag_dotall`: `.` が改行文字にもマッチするようにします(デフォルトは `false`)。 - -### ClickHouse Cloud で Regular Expression Tree Dictionary を使用する \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} - -上記で使用した `YAMLRegExpTree` ソースは ClickHouse オープンソース版では動作しますが、ClickHouse Cloud では動作しません。ClickHouse で regexp tree dictionaries を使用するには、まず ClickHouse オープンソース版でローカルの YAML ファイルから regexp tree dictionary を作成し、その後 `dictionary` テーブル関数と [INTO OUTFILE](../statements/select/into-outfile.md) 句を使用して、この dictionary を CSV ファイルに書き出します。 - -```sql -SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') -``` - -CSV ファイルの内容は次のとおりです。 - -```text -1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" -2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" -3,2,"33/tclwebkit","['version']","['13']" -4,2,"3[12]/tclwebkit","['version']","['12']" -5,2,"3[12]/tclwebkit","['version']","['11']" -6,2,"3[12]/tclwebkit","['version']","['10']" -``` - -ダンプしたファイルのスキーマは次のとおりです: - -* `id UInt64`: RegexpTree ノードの ID。 -* `parent_id UInt64`: ノードの親の ID。 -* `regexp String`: 正規表現文字列。 -* `keys Array(String)`: ユーザー定義属性の名前。 -* `values Array(String)`: ユーザー定義属性の値。 - -ClickHouse Cloud で Dictionary を作成するには、まず次のテーブル構造を持つ `regexp_dictionary_source_table` テーブルを作成します: - -```sql -CREATE TABLE regexp_dictionary_source_table -( - id UInt64, - parent_id UInt64, - regexp String, - keys Array(String), - values Array(String) -) ENGINE=Memory; -``` - -次に、ローカルの CSV を次のように更新します。 - -```bash -clickhouse client \ - --host MY_HOST \ - --secure \ - --password MY_PASSWORD \ - --query " - INSERT INTO regexp_dictionary_source_table - SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') - FORMAT CSV" < regexp_dict.csv -``` - -詳しくは [Insert Local Files](/integrations/data-ingestion/insert-local-files) を参照してください。ソーステーブルを初期化した後、テーブルソースごとに RegexpTree を作成できます。 - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -PRIMARY KEY(regexp) -SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) -LIFETIME(0) -LAYOUT(regexp_tree); -``` - -## Embedded Dictionaries \{#embedded-dictionaries\} - - - -ClickHouse には、ジオベースを扱うための組み込み機能が含まれています。 - -これにより、次のことが可能になります: - -- リージョンの ID を使用して、任意の言語でその名前を取得する。 -- リージョンの ID を使用して、都市、地域、連邦管区、国、または大陸の ID を取得する。 -- あるリージョンが別のリージョンに属しているかどうかを確認する。 -- 親リージョンのチェーンを取得する。 - -すべての関数は、「translocality」に対応しており、地域の帰属関係について異なる見方を同時に扱うことができます。詳細については、「web analytics dictionaries を扱うための関数」のセクションを参照してください。 - -内部 Dictionary は、デフォルトのパッケージでは無効になっています。 -有効にするには、サーバー設定ファイル内の `path_to_regions_hierarchy_file` と `path_to_regions_names_files` のパラメータのコメントを解除します。 - -ジオベースはテキストファイルから読み込まれます。 - -`regions_hierarchy*.txt` ファイルを `path_to_regions_hierarchy_file` ディレクトリに配置します。この設定パラメータには `regions_hierarchy.txt` ファイル (デフォルトのリージョン階層) へのパスを指定する必要があり、その他のファイル (`regions_hierarchy_ua.txt` など) も同じディレクトリ内に配置する必要があります。 - -`regions_names_*.txt` ファイルを `path_to_regions_names_files` ディレクトリに配置します。 - -これらのファイルを自分で作成することもできます。ファイル形式は次のとおりです: - -`regions_hierarchy*.txt`: TabSeparated (ヘッダなし)、カラム: - -- リージョン ID (`UInt32`) -- 親リージョン ID (`UInt32`) -- リージョンタイプ (`UInt8`): 1 - 大陸、3 - 国、4 - 連邦管区、5 - 地域、6 - 都市; それ以外の値は使用されません -- 人口 (`UInt32`) — 省略可能なカラム - -`regions_names_*.txt`: TabSeparated (ヘッダなし)、カラム: - -- リージョン ID (`UInt32`) -- リージョン名 (`String`) — タブや改行を含めることはできません。エスケープされていても不可です。 - -RAM に保存するためにフラットな配列が使用されます。このため、ID は 100 万を超えないようにする必要があります。 - -Dictionary は、サーバーを再起動せずに更新できます。ただし、利用可能な Dictionary の集合自体は更新されません。 -更新の際には、ファイルの更新時刻がチェックされます。ファイルが変更されている場合、その Dictionary が更新されます。 -変更のチェック間隔は `builtin_dictionaries_reload_interval` パラメータで設定します。 -(初回利用時の読み込みを除く) Dictionary の更新はクエリをブロックしません。更新中、クエリは古いバージョンの Dictionary を使用します。更新中にエラーが発生した場合、そのエラーはサーバーログに書き込まれ、クエリは引き続き古いバージョンの Dictionary を使用します。 - -ジオベースを含む Dictionary は、定期的に更新することを推奨します。更新時には、新しいファイルを生成し、別の場所に書き出します。すべての準備が整ったら、それらをサーバーが使用するファイル名にリネームします。 - -OS 識別子や検索エンジンを扱うための関数も存在しますが、使用しないでください。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md index 7cae0bd5950..f857726923a 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md @@ -957,6 +957,39 @@ SELECT modulo(5, 2) 1 ``` +## moduloLegacy \{#moduloLegacy\} + +導入バージョン: v1.1 + +除算の余りを計算します。これはレガシーな modulo の実装で、C++ の `%` 演算子を使用しており、負の引数に対して負の結果を返す場合があります。この関数は、従来のテーブルのパーティションロジックとの後方互換性のために存在します。標準的な動作には `modulo` または `positiveModulo` を使用してください。 + +**構文** + +```sql +moduloLegacy(a, b) +``` + +**引数** + +* `a` — 被除数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `b` — 除数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) + +**戻り値** + +除算の剰余を返します。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) + +**使用例** + +**基本的な使用方法** + +```sql title=Query +SELECT moduloLegacy(10, 3) +``` + +```response title=Response +1 +``` + ## moduloOrNull \{#moduloOrNull\} 導入: v25.5 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md index 34d22f621a7..20d31f7420e 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md @@ -4758,6 +4758,76 @@ SELECT indexOfAssumeSorted([1, 3, 3, 3, 4, 4, 5], 4) ``` +## kql_array_sort_asc \{#kql_array_sort_asc\} + +導入バージョン: v23.10 + +1つ以上の配列を昇順にソートします。最初の配列がソートされ、そのソート順に合わせて後続の配列も並べ替えられます。NULL 値は末尾に配置されます。これは KQL (Kusto Query Language) 互換の関数です。 + +**構文** + +```sql +kql_array_sort_asc(array1[, array2, ..., nulls_last]) +``` + +**引数** + +* `array1` — ソートする配列。[`Array(T)`](/sql-reference/data-types/array) +* `array2` — 省略可能。`array1` のソート順に従って並べ替える追加の配列。[`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — 省略可能。NULL を最後に配置するかどうかを示すブール値。デフォルトは true。[`UInt8`](/sql-reference/data-types/int-uint) + +**戻り値** + +昇順にソートされた配列のタプルを返します。[`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**使用例** + +**基本的な使い方** + +```sql title=Query +SELECT kql_array_sort_asc([3, 1, 2]) +``` + +```response title=Response +([1, 2, 3]) +``` + + +## kql_array_sort_desc \{#kql_array_sort_desc\} + +導入バージョン: v23.10 + +1 つ以上の配列を降順にソートします。最初の配列がソートされ、そのソート結果に合わせて 2 番目以降の配列の要素が並べ替えられます。NULL 値は末尾に配置されます。これは KQL (Kusto Query Language) 互換の関数です。 + +**構文** + +```sql +kql_array_sort_desc(array1[, array2, ..., nulls_last]) +``` + +**引数** + +* `array1` — ソート対象の配列。[`Array(T)`](/sql-reference/data-types/array) +* `array2` — 省略可能な追加の配列で、`array1` のソート順に従って並べ替えられます。[`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — NULL 値を末尾に配置するかどうかを示す省略可能なブール値。デフォルトは true。[`UInt8`](/sql-reference/data-types/int-uint) + +**戻り値** + +降順にソートされた配列を要素とするタプルを返します。[`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT kql_array_sort_desc([3, 1, 2]) +``` + +```response title=Response +([3, 2, 1]) +``` + + ## length \{#length\} 導入バージョン: v1.1 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md index a41e48fe7de..b793233eb90 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md @@ -74,6 +74,266 @@ SELECT 1 = 1, 1 = 2; └──────────────┴──────────────┘ ``` +## globalIn \{#globalIn\} + +導入バージョン: v1.1 + +`in` と同様ですが、分散クエリではグローバルな Set 配布を行います。Set はすべてのリモートサーバーに送信されます。 + +**構文** + +```sql +globalIn(x, set) +``` + +**引数** + +* `x` — 確認する値。 - `set` — 値の集合。 + +**戻り値** + +x が set に含まれている場合は 1、そうでない場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalInIgnoreSet \{#globalInIgnoreSet\} + +導入バージョン: v1.1 + +`in` と同様ですが、分散クエリにおいて Set をグローバルに配布します。Set はすべてのリモートサーバーに送信されます。 +これは、Set を作成することなく型解析に使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +globalIn(x, set) +``` + +**引数** + +* `x` — 判定対象の値。 - `set` — 値の Set。 + +**返り値** + +x が set に含まれている場合は 1、そうでない場合は 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotIn \{#globalNotIn\} + +導入バージョン: v1.1 + +`notIn` と同様ですが、分散クエリにおいてグローバルな Set 分散を使用します。Set はすべてのリモートサーバーに送信されます。 + +**構文** + +```sql +globalNotIn(x, set) +``` + +**引数** + +* `x` — 判定対象の値。 - `set` — 値の集合。 + +**戻り値** + +x が set に含まれていない場合は 1 を返し、含まれている場合は 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotInIgnoreSet \{#globalNotInIgnoreSet\} + +導入バージョン: v1.1 + +`notIn` と同様ですが、分散クエリでグローバルな Set 配布を使用します。Set はすべてのリモートサーバーに送信されます。 +これは、Set を作成することなく型解析を行うために使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +globalNotIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の集合。 + +**戻り値** + +x が set に含まれていなければ 1 を、そうでなければ 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) 型 + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotNullIn \{#globalNotNullIn\} + +導入バージョン: v1.1 + +`notNullIn` と同様ですが、分散クエリにおいてグローバル Set の分散を使用します。Set はすべてのリモートサーバーに送信されます。 + +**構文** + +```sql +globalNotNullIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の集合。 + +**戻り値** + +`x` が `set` に含まれていない場合は 1、そうでない場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNotNullInIgnoreSet \{#globalNotNullInIgnoreSet\} + +導入バージョン: v1.1 + +`notNullIn` と同様ですが、分散クエリにおいてグローバルな Set 分散を使用します。Set はすべてのリモートサーバーに送信されます。 +これは、Set を作成せずに型解析を行うために使用される IgnoreSet 版です。 + +**構文** + +```sql +globalNotNullIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の集合。 + +**戻り値** + +x が set に含まれていない場合は 1、それ以外の場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNullIn \{#globalNullIn\} + +導入: v1.1 + +`nullIn` と同様ですが、分散クエリにおいてグローバルな Set 分散を使用します。Set はすべてのリモートサーバーに送信されます。 + +**構文** + +```sql +globalNullIn(x, set) +``` + +**引数** + +* `x` — 判定する値。 - `set` — 値の集合。 + +**戻り値** + +x が set に含まれている場合は 1、それ以外の場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## globalNullInIgnoreSet \{#globalNullInIgnoreSet\} + +導入バージョン: v1.1 + +`nullIn` と同じですが、分散クエリにおいてグローバルな Set 分散を使用します。Set はすべてのリモートサーバーに送信されます。 +これは、型解析用に Set を作成せずに使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +globalNullIn(x, set) +``` + +**引数** + +* `x` — 判定する値。 - `set` — 値の集合。 + +**返り値** + +x が set に含まれている場合は 1 を返し、そうでない場合は 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + ## greater \{#greater\} 導入バージョン: v1.1 @@ -144,6 +404,72 @@ SELECT 2 >= 1, 2 >= 2, 1 >= 2; └───────────────────────┴───────────────────────┴───────────────────────┘ ``` +## in \{#in\} + +導入: v1.1 + +左オペランドが右オペランドの集合に含まれているかどうかを判定します。含まれていれば 1 を、そうでなければ 0 を返します。左オペランド内の NULL 値はスキップされます(Set に含まれないものとして扱われます)。 + +**構文** + +```sql +in(x, set) +``` + +**引数** + +* `x` — チェックする値。 +* `set` — 値の集合。 + +**返り値** + +`x` が `set` 内に含まれている場合は 1 を、そうでない場合は 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## inIgnoreSet \{#inIgnoreSet\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの Set の要素かどうかをチェックします。要素であれば 1 を、そうでなければ 0 を返します。左オペランド内の NULL 値はスキップされ(Set に含まれないものとして扱われ)ます。 +これは、Set を作成せずに型解析のために使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +in(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の集合を表す Set。 + +**戻り値** + +x が Set に含まれていれば 1、含まれていなければ 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + ## isDistinctFrom \{#isDistinctFrom\} 導入バージョン: v25.11 @@ -340,4 +666,201 @@ SELECT 1 != 2, 1 != 1; └─────────────────┴─────────────────┘ ``` +## notIn \{#notIn\} + +導入: v1.1 + +左オペランドが右オペランドの集合に属していないかどうかを判定します。集合に含まれていなければ 1 を返し、含まれていれば 0 を返します。左オペランド内の NULL 値はスキップされます。 + +**構文** + +```sql +notIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 +* `set` — 値の Set。 + +**戻り値** + +x が set に含まれていない場合は 1、含まれている場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notInIgnoreSet \{#notInIgnoreSet\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの Set に含まれて「いない」かどうかを判定します。Set に含まれていなければ 1 を、そうでなければ 0 を返します。左オペランド内の NULL 値は無視されます。 +これは、Set を作成せずに型解析を行うために使用される IgnoreSet バリアントです。 + +**構文** + +```sql +notIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の集合。 + +**戻り値** + +`x` が `set` に含まれていない場合は 1、含まれている場合は 0 を返します。 [`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notNullIn \{#notNullIn\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの Set の要素に含まれて「いない」ことをチェックします。`notIn` と異なり、NULL 値はスキップされません。NULL は Set の要素と比較され、NULL = NULL は true と評価されます。 + +**構文** + +```sql +notNullIn(x, set) +``` + +**引数** + +* `x` — 判定対象の値。 +* `set` — 値の集合。 + +**返り値** + +x が set に含まれていなければ 1、含まれていれば 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## notNullInIgnoreSet \{#notNullInIgnoreSet\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの集合に含まれていないことをチェックします。`notIn` と異なり、NULL 値はスキップされません。NULL は集合要素と比較され、NULL = NULL は true と評価されます。 +これは、Set を作成せずに型解析を行うために使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +notNullIn(x, set) +``` + +**引数** + +* `x` — チェックする値。 - `set` — 値の Set。 + +**戻り値** + +x が Set に含まれていなければ 1、含まれていれば 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## nullIn \{#nullIn\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの Set の要素であるかどうかを判定します。`in` と異なり、NULL 値はスキップされません。NULL は Set の要素と比較され、NULL = NULL は true と評価されます。 + +**構文** + +```sql +nullIn(x, set) +``` + +**引数** + +* `x` — 判定する値。 - `set` — 値の集合。 + +**返り値** + +x が set に含まれている場合は 1、含まれていない場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## nullInIgnoreSet \{#nullInIgnoreSet\} + +導入バージョン: v1.1 + +左オペランドが右オペランドの Set のメンバーかどうかをチェックします。`in` と異なり、NULL 値はスキップされません。NULL は Set の要素と比較され、NULL = NULL は true と評価されます。 +これは、Set を作成せずに型解析を行うために使用される IgnoreSet のバリアントです。 + +**構文** + +```sql +nullIn(x, set) +``` + +**引数** + +* `x` — チェック対象の値。 - `set` — 値の Set。 + +**戻り値** + +x が set に含まれている場合は 1、そうでない場合は 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**基本的な使用例** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md index f14dae858cc..06802109d03 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md @@ -14,7 +14,7 @@ doc_type: 'reference' そのため、このセクションで示す例は、事前に設定を行わない限り、[ClickHouse Fiddle](https://fiddle.clickhouse.com/) やクイックリリース環境および本番デプロイメント環境のデフォルト設定では、例外をスローします。 ::: -参照リストの作成方法については、「[Dictionaries](../dictionaries#embedded-dictionaries)」セクションを参照してください。 +参照リストの作成方法については、「[Dictionaries](../statements/create/dictionary/embedded#embedded-dictionaries)」セクションを参照してください。 ## 複数のジオベース \{#multiple-geobases\} @@ -34,12 +34,13 @@ ClickHouse は、複数の代替ジオベース(地域階層)を同時に扱 例: ```sql -regionToCountry(RegionID) – デフォルト辞書を使用します: /opt/geo/regions_hierarchy.txt -regionToCountry(RegionID, '') – デフォルト辞書を使用します: /opt/geo/regions_hierarchy.txt -regionToCountry(RegionID, 'ua') – 'ua'キー用の辞書を使用します: /opt/geo/regions_hierarchy_ua.txt +regionToCountry(RegionID) – Uses the default dictionary: /opt/geo/regions_hierarchy.txt +regionToCountry(RegionID, '') – Uses the default dictionary: /opt/geo/regions_hierarchy.txt +regionToCountry(RegionID, 'ua') – Uses the dictionary for the 'ua' key: /opt/geo/regions_hierarchy_ua.txt ``` -### regionToName {#regiontoname} + +### regionToName リージョン ID と geobase を受け取り、対応する言語のリージョン名を表す文字列を返します。指定された ID のリージョンが存在しない場合は、空文字列を返します。 @@ -79,7 +80,8 @@ SELECT regionToName(number::UInt32,'en') FROM numbers(0,5); └────────────────────────────────────────────┘ ``` -### regionToCity {#regiontocity} + +### regionToCity ジオベースからリージョン ID を受け取ります。このリージョンが都市、または都市の一部である場合は、対応する都市のリージョン ID を返します。それ以外の場合は 0 を返します。 @@ -91,12 +93,12 @@ regionToCity(id [, geobase]) **パラメータ** -* `id` — geobase のリージョン ID。[UInt32](../data-types/int-uint)。 -* `geobase` — 辞書キー。[Multiple Geobases](#multiple-geobases) を参照。[String](../data-types/string)。任意。 +* `id` — geobase のリージョン ID。 [UInt32](../data-types/int-uint)。 +* `geobase` — 辞書キー。[Multiple Geobases](#multiple-geobases) を参照。 [String](../data-types/string)。任意。 -**返される値** +**戻り値** -* 対応する都市が存在する場合は、そのリージョン ID。[UInt32](../data-types/int-uint)。 +* 対応する都市が存在する場合は、そのリージョン ID。 [UInt32](../data-types/int-uint)。 * 存在しない場合は 0。 **例** @@ -127,7 +129,8 @@ SELECT regionToName(number::UInt32, 'en'), regionToCity(number::UInt32) AS id, r └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────┘ ``` -### regionToArea {#regiontoarea} + +### regionToArea 地域をエリア(geobase におけるタイプ 5)に変換します。それ以外の点では、この関数は ['regionToCity'](#regiontocity) と同様です。 @@ -162,24 +165,25 @@ LIMIT 15 ```text ┌─regionToName(regionToArea(toUInt32(number), \'ua\'))─┐ │ │ -│ モスクワおよびモスクワ州 │ -│ サンクトペテルブルクおよびレニングラード州 │ -│ ベルゴロド州 │ -│ イヴァノヴォ州 │ -│ カルーガ州 │ -│ コストロマ州 │ -│ クルスク州 │ -│ リペツク州 │ -│ オリョール州 │ -│ リャザン州 │ -│ スモレンスク州 │ -│ タンボフ州 │ -│ トヴェリ州 │ -│ トゥーラ州 │ +│ Moscow and Moscow region │ +│ St. Petersburg and Leningrad region │ +│ Belgorod region │ +│ Ivanovsk region │ +│ Kaluga region │ +│ Kostroma region │ +│ Kursk region │ +│ Lipetsk region │ +│ Orlov region │ +│ Ryazan region │ +│ Smolensk region │ +│ Tambov region │ +│ Tver region │ +│ Tula region │ └──────────────────────────────────────────────────────┘ ``` -### regionToDistrict {#regiontodistrict} + +### regionToDistrict リージョンを、geobase におけるタイプ 4 の連邦管区に変換します。その他の点では、この関数の動作は 'regionToCity' と同じです。 @@ -189,10 +193,10 @@ LIMIT 15 regionToDistrict(id [, geobase]) ``` -**パラメータ** +**パラメーター** -* `id` — geobase のリージョン ID。 [UInt32](../data-types/int-uint)。 -* `geobase` — 辞書キー。 [Multiple Geobases](#multiple-geobases) を参照。 [String](../data-types/string)。省略可。 +* `id` — geobase からのリージョン ID。[UInt32](../data-types/int-uint)。 +* `geobase` — 辞書キー。[Multiple Geobases](#multiple-geobases) を参照。[String](../data-types/string)。省略可能。 **戻り値** @@ -214,26 +218,27 @@ LIMIT 15 ```text ┌─regionToName(regionToDistrict(toUInt32(number), \'ua\'))─┐ │ │ -│ 中央連邦管区 │ -│ 北西連邦管区 │ -│ 南部連邦管区 │ -│ 北カフカース連邦管区 │ -│ 沿ヴォルガ連邦管区 │ -│ ウラル連邦管区 │ -│ シベリア連邦管区 │ -│ 極東連邦管区 │ -│ スコットランド │ -│ フェロー諸島 │ -│ フランデレン地域圏 │ -│ ブリュッセル首都圏地域圏 │ -│ ワロン地域圏 │ -│ ボスニア・ヘルツェゴビナ連邦 │ +│ Central federal district │ +│ Northwest federal district │ +│ South federal district │ +│ North Caucases federal district │ +│ Privolga federal district │ +│ Ural federal district │ +│ Siberian federal district │ +│ Far East federal district │ +│ Scotland │ +│ Faroe Islands │ +│ Flemish region │ +│ Brussels capital region │ +│ Wallonia │ +│ Federation of Bosnia and Herzegovina │ └──────────────────────────────────────────────────────────┘ ``` -### regionToCountry {#regiontocountry} -地域を国(geobase のタイプ 3)に変換します。それ以外の点では、この関数は `regionToCity` と同じです。 +### regionToCountry + +地域を国(geobase におけるタイプ 3)に変換します。それ以外の点では、この関数は `regionToCity` と同じです。 **構文** @@ -241,7 +246,7 @@ LIMIT 15 regionToCountry(id [, geobase]) ``` -**パラメーター** +**パラメータ** * `id` — ジオベース内のリージョン ID。[UInt32](../data-types/int-uint)。 * `geobase` — 辞書のキー。[Multiple Geobases](#multiple-geobases) を参照。[String](../data-types/string)。省略可能。 @@ -264,22 +269,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToCountry(number::UInt32) AS id ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToCountry(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ 世界 │ 0 │ │ -│ アメリカ合衆国 │ 2 │ アメリカ合衆国 │ -│ コロラド州 │ 2 │ アメリカ合衆国 │ -│ ボルダー郡 │ 2 │ アメリカ合衆国 │ -│ ボルダー │ 2 │ アメリカ合衆国 │ -│ 中国 │ 6 │ 中国 │ -│ 四川省 │ 6 │ 中国 │ -│ 成都市 │ 6 │ 中国 │ -│ アメリカ大陸 │ 0 │ │ -│ 北アメリカ │ 0 │ │ -│ ユーラシア大陸 │ 0 │ │ -│ アジア │ 0 │ │ +│ World │ 0 │ │ +│ USA │ 2 │ USA │ +│ Colorado │ 2 │ USA │ +│ Boulder County │ 2 │ USA │ +│ Boulder │ 2 │ USA │ +│ China │ 6 │ China │ +│ Sichuan │ 6 │ China │ +│ Chengdu │ 6 │ China │ +│ America │ 0 │ │ +│ North America │ 0 │ │ +│ Eurasia │ 0 │ │ +│ Asia │ 0 │ │ └────────────────────────────────────────────┴────┴─────────────────────────────────────────────────────────────┘ ``` -### regionToContinent {#regiontocontinent} + +### regionToContinent 地域を大陸(geobase におけるタイプ1)に変換します。それ以外の点では、この関数は `regionToCity` と同じです。 @@ -291,8 +297,8 @@ regionToContinent(id [, geobase]) **パラメータ** -* `id` — geobase のリージョン ID。[UInt32](../data-types/int-uint)。 -* `geobase` — 辞書キー。[複数の Geobase](#multiple-geobases) を参照。[String](../data-types/string)。省略可能。 +* `id` — geobase におけるリージョン ID。[UInt32](../data-types/int-uint)。 +* `geobase` — 辞書キー。[Multiple Geobases](#multiple-geobases) を参照。[String](../data-types/string)。省略可能。 **戻り値** @@ -312,22 +318,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToContinent(number::UInt32) AS ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ 世界 │ 0 │ │ -│ USA │ 10 │ 北米 │ -│ Colorado │ 10 │ 北米 │ -│ Boulder County │ 10 │ 北米 │ -│ Boulder │ 10 │ 北米 │ -│ China │ 12 │ アジア │ -│ Sichuan │ 12 │ アジア │ -│ Chengdu │ 12 │ アジア │ -│ アメリカ大陸 │ 9 │ アメリカ大陸 │ -│ 北米 │ 10 │ 北米 │ -│ ユーラシア │ 11 │ ユーラシア │ -│ アジア │ 12 │ アジア │ +│ World │ 0 │ │ +│ USA │ 10 │ North America │ +│ Colorado │ 10 │ North America │ +│ Boulder County │ 10 │ North America │ +│ Boulder │ 10 │ North America │ +│ China │ 12 │ Asia │ +│ Sichuan │ 12 │ Asia │ +│ Chengdu │ 12 │ Asia │ +│ America │ 9 │ America │ +│ North America │ 10 │ North America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 12 │ Asia │ └────────────────────────────────────────────┴────┴───────────────────────────────────────────────────────────────┘ ``` -### regionToTopContinent {#regiontotopcontinent} + +### regionToTopContinent 地域に対応する階層内の最上位の大陸を返します。 @@ -360,24 +367,25 @@ SELECT regionToName(number::UInt32, 'en'), regionToTopContinent(number::UInt32) ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToTopContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ 世界 │ 0 │ │ -│ アメリカ合衆国 │ 9 │ アメリカ大陸 │ -│ コロラド州 │ 9 │ アメリカ大陸 │ -│ ボルダー郡 │ 9 │ アメリカ大陸 │ -│ ボルダー │ 9 │ アメリカ大陸 │ -│ 中国 │ 11 │ ユーラシア大陸 │ -│ 四川省 │ 11 │ ユーラシア大陸 │ -│ 成都 │ 11 │ ユーラシア大陸 │ -│ アメリカ大陸 │ 9 │ アメリカ大陸 │ -│ North アメリカ大陸 │ 9 │ アメリカ大陸 │ -│ ユーラシア大陸 │ 11 │ ユーラシア大陸 │ -│ アジア │ 11 │ ユーラシア大陸 │ +│ World │ 0 │ │ +│ USA │ 9 │ America │ +│ Colorado │ 9 │ America │ +│ Boulder County │ 9 │ America │ +│ Boulder │ 9 │ America │ +│ China │ 11 │ Eurasia │ +│ Sichuan │ 11 │ Eurasia │ +│ Chengdu │ 11 │ Eurasia │ +│ America │ 9 │ America │ +│ North America │ 9 │ America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 11 │ Eurasia │ └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────────────┘ ``` -### regionToPopulation {#regiontopopulation} -指定した地域の人口を取得します。人口は geobase 対応のファイルに記録できます。セクション ["Dictionaries"](../dictionaries#embedded-dictionaries) を参照してください。地域に対して人口が記録されていない場合は 0 を返します。geobase では、子地域には人口が記録されていても、親地域には記録されていない場合があります。 +### regionToPopulation + +指定した地域の人口を取得します。人口は geobase 対応のファイルに記録できます。セクション ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries) を参照してください。地域に対して人口が記録されていない場合は 0 を返します。geobase では、子地域には人口が記録されていても、親地域には記録されていない場合があります。 **構文** @@ -423,7 +431,8 @@ SELECT regionToName(number::UInt32, 'en'), regionToPopulation(number::UInt32) AS └────────────────────────────────────────────┴────────────┘ ``` -### regionIn {#regionin} + +### regionIn `lhs` のリージョンが `rhs` のリージョンに属しているかどうかをチェックします。属している場合は 1、属していない場合は 0 の UInt8 型の値を返します。 @@ -459,19 +468,20 @@ SELECT regionToName(n1.number::UInt32, 'en') || (regionIn(n1.number::UInt32, n2. 結果: ```text -World は World に含まれます -World は USA に含まれません -World は Colorado に含まれません -World は Boulder County に含まれません -World は Boulder に含まれません -USA は World に含まれます -USA は USA に含まれます -USA は Colorado に含まれません -USA は Boulder County に含まれません -USA は Boulder に含まれません +World is in World +World is not in USA +World is not in Colorado +World is not in Boulder County +World is not in Boulder +USA is in World +USA is in USA +USA is not in Colorado +USA is not in Boulder County +USA is not in Boulder ``` -### regionHierarchy {#regionhierarchy} + +### regionHierarchy `UInt32` 型の数値(geobase のリージョン ID)を受け取ります。指定したリージョンと、その親リージョンをチェーンに沿ってすべて含むリージョン ID の配列を返します。 @@ -512,7 +522,7 @@ SELECT regionHierarchy(number::UInt32) AS arr, arrayMap(id -> regionToName(id, ' {/* 以下のタグ内の内容は、ドキュメントフレームワークのビルド時に - system.functions から自動生成されたドキュメントに置き換えられます。 + system.functions から生成されたドキュメントに置き換えられます。 これらのタグを変更または削除しないでください。 詳細は https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 */ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md index b3f9f9e942d..5c63d8f3f58 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md @@ -9,10 +9,10 @@ doc_type: 'reference' # 辞書を扱う関数 \{#functions-for-working-with-dictionaries\} :::note -[DDL クエリ](../../sql-reference/statements/create/dictionary.md)で作成された辞書の場合、`dict_name` パラメーターは `.` のように完全修飾名で指定する必要があります。省略した場合は、現在のデータベースが使用されます。 +[DDL クエリ](../statements/create/dictionary/index.md)で作成された辞書の場合、`dict_name` パラメーターは `.` のように完全修飾名で指定する必要があります。省略した場合は、現在のデータベースが使用されます。 ::: -辞書の接続と設定の方法については、[辞書](../../sql-reference/dictionaries/index.md)を参照してください。 +辞書の接続と設定の方法については、[辞書](../statements/create/dictionary/index.md)を参照してください。 ## 例となる辞書 \{#example-dictionary\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md index da434cc830b..f797bf1ff7a 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md @@ -1093,6 +1093,40 @@ SELECT JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b', 4) = 0; ``` +## JSONKey \{#JSONKey\} + +導入: v20.1 + +JSON オブジェクトのフィールドのキーを、そのインデックス(1 始まり)で返します。JSON が文字列として渡された場合は、まずパースされます。2 番目の引数は、ネストされたオブジェクト内をたどるための JSON パスです。この関数は、指定された位置にあるキー名を返します。 + +**構文** + +```sql +JSONKey(json[, indices_or_keys, ...]) +``` + +**引数** + +* `json` — 解析する JSON 文字列。[`String`](/sql-reference/data-types/string) +* `indices_or_keys` — ネストされた要素へのパスを指定するための、任意の索引またはキーのリスト。各引数は、文字列(キーによるアクセス)または整数(1 から始まる索引によるアクセス)のいずれかです。[`String`](/sql-reference/data-types/string) または [`Int*`](/sql-reference/data-types/int-uint) + +**返り値** + +JSON オブジェクト内の指定した位置にあるキー名を返します。[`String`](/sql-reference/data-types/string) + +**例** + +**使用例** + +```sql title=Query +SELECT JSONKey('{"a": "hello", "b": [-100, 200.0, 300]}', 1); +``` + +```response title=Response +a +``` + + ## JSONLength \{#JSONLength\} 導入バージョン: v20.1 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md index 95f59b80e74..2b86eba771c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md @@ -9,9 +9,9 @@ doc_type: 'reference' # 数学関数 \{#mathematical-functions\} {/* - 以下のタグ内の内容は、ドキュメントフレームワークのビルド時に - system.functions から生成されたドキュメントで置き換えられます。タグを変更したり削除したりしないでください。 - 詳細は次を参照してください: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 以下のタグ内のコンテンツは、ドキュメントフレームワークのビルド時に、 + system.functions から生成されたドキュメントに置き換えられます。タグを変更または削除しないでください。 + 詳細は https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 */ } {/*AUTOGENERATED_START*/ } @@ -20,7 +20,7 @@ doc_type: 'reference' 導入バージョン: v1.1 -与えられた引数の逆余弦を返します。 +引数のアークコサイン(逆余弦)を返します。 **構文** @@ -30,11 +30,11 @@ acos(x) **引数** -* `x` — 逆余弦を計算する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 逆余弦を求める対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** -x の逆余弦の値を返します。型は [`Float*`](/sql-reference/data-types/float) +x の逆余弦を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -64,9 +64,9 @@ acosh(x) * `x` — 角度の双曲線余弦値。値の範囲: `1 ≤ x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返り値** -角度をラジアンで返します。値の範囲: `0 ≤ acosh(x) < +∞`。[`Float64`](/sql-reference/data-types/float) +角度をラジアン単位で返します。値の範囲: `0 ≤ acosh(x) < +∞`。[`Float64`](/sql-reference/data-types/float) **例** @@ -82,10 +82,10 @@ SELECT acosh(1) ## asin \{#asin\} -導入バージョン: v1.1 +バージョン v1.1 で導入 -指定された引数の逆正弦(アークサイン)値を計算します。 -引数が `[-1, 1]` の範囲にある場合、戻り値は `[-pi() / 2, pi() / 2]` の範囲になります。 +与えられた引数の逆正弦(arcsine)を計算します。 +引数が `[-1, 1]` の範囲内にある場合、その戻り値は `[-pi() / 2, pi() / 2]` の範囲になります。 **構文** @@ -95,11 +95,11 @@ asin(x) **引数** -* `x` — 逆正弦(アークサイン)を計算する対象の引数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal`](/sql-reference/data-types/decimal) +* `x` — 逆双曲線正弦を計算する対象。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** -指定した引数 `x` の逆正弦値を返します。型は [`Float64`](/sql-reference/data-types/float) です。 +指定された引数 `x` に対する逆双曲線正弦の値を返します。[`Float64`](/sql-reference/data-types/float) **使用例** @@ -147,15 +147,15 @@ asinh(x) **引数** -* `x` — 角度の双曲線正弦値。範囲: `-∞ < x < +∞` の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 角度の双曲線正弦値。値の範囲: `-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返される値** +**戻り値** -角度をラジアン単位で返します。範囲: `-∞ < asinh(x) < +∞` の値。[`Float64`](/sql-reference/data-types/float) +ラジアンで表した角度を返します。値の範囲: `-∞ < asinh(x) < +∞`。[`Float64`](/sql-reference/data-types/float) -**例** +**使用例** -**基本的な使用方法** +**基本的な使い方** ```sql title=Query SELECT asinh(0) @@ -169,7 +169,7 @@ SELECT asinh(0) 導入バージョン: v1.1 -引数のアークタンジェント(逆正接)を返します。 +引数の逆正接(アークタンジェント)を返します。 **構文** @@ -183,7 +183,7 @@ atan(x) **戻り値** -`x` の逆正接を返します。[`Float*`](/sql-reference/data-types/float) +`x` の逆正接(アークタンジェント)を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -201,7 +201,7 @@ SELECT atan(1); 導入バージョン: v20.12 -ユークリッド平面において、正の x 軸から原点から点 `(x, y) ≠ (0, 0)` に向かう半直線までの角度(ラジアン)としての atan2 を返します。 +ユークリッド平面上で、正の x 軸と点 `(x, y) ≠ (0, 0)` への半直線との間の角度(ラジアン)としての atan2 の値を返します。 **構文** @@ -214,9 +214,9 @@ atan2(y, x) * `y` — 半直線が通過する点の y 座標。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) * `x` — 半直線が通過する点の x 座標。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返り値** -`-π < θ ≤ π` を満たす角度 `θ` をラジアン単位で返します。[`Float64`](/sql-reference/data-types/float) +`-π < θ ≤ π` を満たす角度 `θ` をラジアンで返します。型は [`Float64`](/sql-reference/data-types/float) です。 **例** @@ -244,11 +244,11 @@ atanh(x) **引数** -* `x` — 双曲線正接の値。区間: -1 < x < 1。`(U)Int*`、`Float*` または `Decimal*`。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 角度の双曲線正接の値。値の範囲: -1 < x < 1。`(U)Int*`、`Float*` または `Decimal*`。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** -ラジアンで表される角度を返します。区間: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) +ラジアン単位の角度を返します。値の範囲: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) **例** @@ -264,7 +264,7 @@ SELECT atanh(0) ## cbrt \{#cbrt\} -導入バージョン: v1.1 +導入: v1.1 引数の立方根を返します。 @@ -276,9 +276,9 @@ cbrt(x) **引数** -* `x` — 立方根を求める値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 立方根を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** `x` の立方根を返します。[`Float*`](/sql-reference/data-types/float) @@ -308,11 +308,11 @@ cos(x) **引数** -* `x` — ラジアンで指定された角度。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ラジアン単位の角度。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -`x` の余弦を返します。[`Float*`](/sql-reference/data-types/float) +`x` の双曲線余弦を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -330,7 +330,7 @@ SELECT cos(0); 導入バージョン: v20.12 -引数の双曲線余弦を返します。 +指定された引数の双曲線余弦を返します。 **構文** @@ -340,13 +340,13 @@ cosh(x) **引数** -* `x` — ラジアンで表した角度。値は区間 `-∞ < x < +∞` を取ります。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ラジアン単位の角度。取りうる値の範囲: `-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **返り値** -区間 `1 ≤ cosh(x) < +∞` の値を返します。[`Float64`](/sql-reference/data-types/float) +範囲 `1 ≤ cosh(x) < +∞` の値を返します。型は [`Float64`](/sql-reference/data-types/float) です。 -**例** +**使用例** **基本的な使い方** @@ -374,13 +374,13 @@ degrees(x) * `x` — ラジアン単位の入力値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返り値** -`x` を度に変換した値を返します。[`Float64`](/sql-reference/data-types/float) +`x` を度(degrees)に変換した値を返します。[`Float64`](/sql-reference/data-types/float) -**例** +**使用例** -**基本的な使用例** +**基本的な使用方法** ```sql title=Query SELECT degrees(3.141592653589793) @@ -392,9 +392,9 @@ SELECT degrees(3.141592653589793) ## e \{#e\} -導入バージョン:v1.1 +導入バージョン: v1.1 -オイラー定数 e を返します。 +ネイピア数 (e) を返します。 **構文** @@ -406,9 +406,9 @@ e() * なし。 -**戻り値** +**返される値** -オイラーの定数を返します [`Float64`](/sql-reference/data-types/float) +オイラーの定数を返します [`Float64`](/sql-reference/data-types/float)。 **例** @@ -426,7 +426,7 @@ SELECT e(); 導入バージョン: v1.1 -`x` が非負の場合、`erf(x/(σ√2))` は、標準偏差 `σ` を持つ正規分布に従う確率変数が、期待値から `x` を超えて離れた値をとる確率です。 +`x` が非負であるとき、標準偏差 `σ` を持つ正規分布に従う確率変数が、期待値から `x` を超えて離れた値をとる確率は `erf(x/(σ√2))` で表されます。 **構文** @@ -436,13 +436,13 @@ erf(x) **引数** -* `x` — 誤差関数の値を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 誤差関数を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返される値** +**戻り値** -誤差関数の値を返します。型は [`Float*`](/sql-reference/data-types/float) です。 +誤差関数の値を [`Float*`](/sql-reference/data-types/float) 型で返します。 -**例** +**使用例** **3シグマの法則** @@ -460,7 +460,7 @@ SELECT erf(3 / sqrt(2)) 導入バージョン: v1.1 -`x` の値が大きい場合でも精度を失うことなく、`1-erf(x)` に近い数値を返します。 +大きな `x` の値に対しても精度を失うことなく、`1-erf(x)` に近い値を返します。 **構文** @@ -470,11 +470,11 @@ erfc(x) **引数** -* `x` — 誤差関数値を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 誤差関数を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返り値** -相補誤差関数の値 [`Float*`](/sql-reference/data-types/float) を返します +相補誤差関数の値を返します。型は [`Float*`](/sql-reference/data-types/float) **例** @@ -492,7 +492,7 @@ SELECT erfc(0); 導入バージョン: v1.1 -与えられた引数 `x` に対して、e の `x` 乗を返します。 +引数 `x` に対して、e を底とする指数関数 e^x の値を返します。 **構文** @@ -506,7 +506,7 @@ exp(x) **戻り値** -`e^x` を返します。型は [`Float*`](/sql-reference/data-types/float) です。 +`e^x` を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -526,7 +526,7 @@ SELECT round(exp(-1), 4) 導入バージョン: v1.1 -指定した引数を指数とする 10 のべき乗を返します。 +指定された引数を指数とする 10 の累乗を返します。 **構文** @@ -536,11 +536,11 @@ exp10(x) **引数** -* `x` — 指数。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 指数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -10^x を返します。戻り値の型は [`Float*`](/sql-reference/data-types/float) です。 +10 の x 乗を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -556,9 +556,9 @@ SELECT exp10(2); ## exp2 \{#exp2\} -導入バージョン: v1.1 +導入: v1.1 -与えられた引数を指数とする 2 のべき乗を返します。 +引数で指定された値を指数として、2 の冪を返します。 **構文** @@ -570,9 +570,9 @@ exp2(x) * `x` — 指数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**返される値** -2^x を返します。戻り値の型は [`Float*`](/sql-reference/data-types/float) です。 +2^x を返します。型は [`Float*`](/sql-reference/data-types/float) です。 **例** @@ -592,7 +592,7 @@ SELECT exp2(3); 整数値の階乗を計算します。 0 の階乗は 1 です。同様に、`factorial()` 関数は任意の負の値に対して `1` を返します。 -入力引数として指定できる最大の正の値は `20` であり、`21` 以上を指定すると例外が発生します。 +入力引数として許容される最大の正の値は `20` で、`21` 以上の値を指定すると例外が発生します。 **構文** @@ -602,11 +602,11 @@ factorial(n) **引数** -* `n` — 階乗を計算する対象の整数値。最大値は 20。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `n` — 階乗を計算するための整数値。最大値は 20。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) **戻り値** -入力値の階乗を `UInt64` 型で返します。入力が 0 または負の値の場合は 1 を返します。[`UInt64`](/sql-reference/data-types/int-uint) +入力値の階乗を UInt64 として返します。入力値が 0 または負の値の場合は 1 を返します。[`UInt64`](/sql-reference/data-types/int-uint) **例** @@ -625,7 +625,7 @@ factorial(10) 導入バージョン: v20.12 直角三角形の斜辺の長さを返します。 -hypot は、非常に大きな数値または非常に小さな数値を二乗するときに発生する問題を回避します。 +`hypot` は、非常に大きな数値や非常に小さな数値を二乗する際に発生する可能性のある問題を回避します。 **構文** @@ -638,7 +638,7 @@ hypot(x, y) * `x` — 直角三角形の1つ目の直角辺。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) * `y` — 直角三角形の2つ目の直角辺。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返される値** 直角三角形の斜辺の長さを返します。[`Float64`](/sql-reference/data-types/float) @@ -658,7 +658,7 @@ SELECT hypot(1, 1) 導入バージョン: v1.1 -[exp10](#exp10) と同様ですが、`UInt64` 型の数値を返します。 +[exp10](#exp10) と同様ですが、`UInt64` 型の値を返します。 **構文** @@ -690,7 +690,7 @@ SELECT intExp10(2); 導入バージョン: v1.1 -[exp2](#exp2) と同様ですが、`UInt64` 型の数値を返します。 +[exp2](#exp2) と同様ですが、`UInt64` 型の値を返します。 **構文** @@ -700,11 +700,11 @@ intExp2(x) **引数** -* `x` — 指数。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) のいずれか。 +* `x` — 指数。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) **戻り値** -2^x を返します。[`UInt64`](/sql-reference/data-types/int-uint) +2^x を返します。型は [`UInt64`](/sql-reference/data-types/int-uint) です。 **例** @@ -720,7 +720,7 @@ SELECT intExp2(3); ## lgamma \{#lgamma\} -導入されたバージョン: v1.1 +導入バージョン: v1.1 ガンマ関数の対数を返します。 @@ -752,7 +752,7 @@ SELECT lgamma(5); ## log \{#log\} -導入されたバージョン: v1.1 +導入バージョン: v1.1 引数の自然対数を返します。 @@ -762,13 +762,13 @@ SELECT lgamma(5); log(x) ``` -**別名**: `ln` +**エイリアス**: `ln` **引数** -* `x` — 自然対数を計算する対象となる値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 自然対数を計算する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** `x` の自然対数を返します。[`Float*`](/sql-reference/data-types/float) @@ -786,9 +786,9 @@ SELECT log(10); ## log10 \{#log10\} -導入: v1.1 +導入バージョン: v1.1 -引数の常用対数を返します。 +引数の常用対数(底が 10 の対数)を返します。 **構文** @@ -798,11 +798,11 @@ log10(x) **引数** -* `x` — 常用対数を計算する対象の数値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 10 を底とする常用対数を計算する対象の数値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **返り値** -`x` の常用対数を返します。[`Float*`](/sql-reference/data-types/float) +`x` の 10 を底とする常用対数を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -820,8 +820,8 @@ SELECT log10(100); 導入バージョン: v20.12 -log(1+x) の値を計算します。 -小さい値の `x` に対しては、log1p(x) の方が log(1+x) よりも高い精度で計算できます。 +log(1 + x) を計算します。 +`x` が小さい値の場合、log1p(x) の方が log(1 + x) よりも精度良く計算できます。 **構文** @@ -831,11 +831,11 @@ log1p(x) **引数** -* `x` — 区間 `-1 < x < +∞` の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 区間 `-1 < x < +∞` に属する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -区間 -∞ < log1p(x) < +∞ に属する値を返します。[`Float64`](/sql-reference/data-types/float) +戻り値は区間 -∞ < log1p(x) < +∞ に属する値です。[`Float64`](/sql-reference/data-types/float) **例** @@ -851,7 +851,7 @@ SELECT log1p(0) ## log2 \{#log2\} -導入されたバージョン: v1.1 +導入バージョン: v1.1 引数の二進対数を返します。 @@ -863,11 +863,11 @@ log2(x) **引数** -* `x` — 2 を底とする対数を計算する数値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 二進対数を計算する対象の数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**戻り値** +**返される値** -`x` の 2 を底とする対数(バイナリ対数)を返します。[`Float*`](/sql-reference/data-types/float) +`x` の二進対数を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -883,7 +883,7 @@ SELECT log2(8); ## pi \{#pi\} -導入バージョン:v1.1 +導入バージョン: v1.1 円周率 (π) を返します。 @@ -895,11 +895,11 @@ pi() **引数** -* なし +* なし。 -**戻り値** +**返り値** -[`Float64`](/sql-reference/data-types/float) 型の pi を返します。 +π を返します。型は [`Float64`](/sql-reference/data-types/float) です。 **例** @@ -917,7 +917,7 @@ SELECT pi(); 導入バージョン: v1.1 -x を y 乗した結果を返します。 +x の y 乗を返します。 **構文** @@ -934,7 +934,7 @@ pow(x, y) **戻り値** -x^y を計算し、その結果を [`Float64`](/sql-reference/data-types/float) 型で返します。 +x^y を返します。戻り値の型は [`Float64`](/sql-reference/data-types/float) です。 **例** @@ -948,11 +948,53 @@ SELECT pow(2, 3); 8 ``` +## proportionsZTest \{#proportionsZTest\} + +導入バージョン: v22.3 + +2 つの母集団 x と y から得られた比率を比較するための統計的検定である、2 標本比率に対する Z 検定の検定統計量を返します。 +この関数は、標準誤差に対するプールド(pooled)およびアンプールド(unpooled)の両方の推定手法をサポートします。 +プールド版では、2 つの比率の平均を取り、1 つの比率のみを用いて標準誤差を推定します。 +アンプールド版では、2 つの比率をそれぞれ別々に用いて標準誤差を推定します。 + +**構文** + +```sql +proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type) +``` + +**引数** + +* `successes_x` — 母集団 x における成功回数。[`UInt64`](/sql-reference/data-types/int-uint) +* `successes_y` — 母集団 y における成功回数。[`UInt64`](/sql-reference/data-types/int-uint) +* `trials_x` — 母集団 x における試行回数。[`UInt64`](/sql-reference/data-types/int-uint) +* `trials_y` — 母集団 y における試行回数。[`UInt64`](/sql-reference/data-types/int-uint) +* `conf_level` — 検定における信頼水準。[`Float64`](/sql-reference/data-types/float) +* `pool_type` — 標準誤差推定におけるプーリング手法の選択。'unpooled' または 'pooled' のいずれか。[`String`](/sql-reference/data-types/string) + +**戻り値** + +次を含むタプルを返します: `z_stat` (Z 統計量), `p_val` (P 値), `ci_low` (信頼区間下限), `ci_high` (信頼区間上限)。[`Tuple(Float64, Float64, Float64, Float64)`](/sql-reference/data-types/tuple) + +**例** + +**使用例** + +```sql title=Query +SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled'); +``` + +```response title=Response +┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐ +│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │ +└────────────────────────────────────────────────────────────────────────────────────┘ +``` + ## radians \{#radians\} 導入バージョン: v22.2 -角度(度)をラジアンに変換します。 +度数法の角度をラジアンに変換します。 **構文** @@ -962,11 +1004,11 @@ radians(x) **引数** -* `x` — 度数法で指定された入力値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 度で指定された入力値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** -値をラジアンで返します。[`Float64`](/sql-reference/data-types/float) +ラジアン単位の値を [`Float64`](/sql-reference/data-types/float) 型で返します **例** @@ -980,25 +1022,57 @@ SELECT radians(180) 3.141592653589793 ``` +## sigmoid \{#sigmoid\} + +導入バージョン: v20.1 + +シグモイド関数 `1 / (1 + exp(-x))` を計算します。シグモイド関数は任意の実数値を (0, 1) の範囲に写像する関数で、機械学習で一般的に利用されます。 + +**構文** + +```sql +sigmoid(x) +``` + +**引数** + +* `x` — 入力値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) + +**戻り値** + +入力値のシグモイド値を返します。返される値の範囲は (0, 1) です。[`Float64`](/sql-reference/data-types/float) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT sigmoid(0) +``` + +```response title=Response +0.5 +``` + ## sign \{#sign\} -導入バージョン: v21.2 +導入: v21.2 実数の符号を返します。 **構文** ```sql -符号(x) +sign(x) ``` **引数** * `x` — -∞ から +∞ までの値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Decimal*`](/sql-reference/data-types/decimal) または [`Float*`](/sql-reference/data-types/float) -**戻り値** +**返り値** -`x < 0` の場合は `-1`、`x = 0` の場合は `0`、`x > 0` の場合は `1` を返します。[`Int8`](/sql-reference/data-types/int-uint) +`x < 0` の場合は `-1`、`x = 0` の場合は `0`、`x > 0` の場合は `1` を返します。戻り値の型は [`Int8`](/sql-reference/data-types/int-uint) です。 **例** @@ -1012,7 +1086,7 @@ SELECT sign(0) 0 ``` -**正の符号** +**正のときの符号** ```sql title=Query SELECT sign(1) @@ -1022,7 +1096,7 @@ SELECT sign(1) 1 ``` -**負の符号** +**負の値の場合の符号** ```sql title=Query SELECT sign(-1) @@ -1034,9 +1108,9 @@ SELECT sign(-1) ## sin \{#sin\} -導入バージョン: v +導入バージョン: v1.1 -引数の正弦(サイン)を返します。 +引数の正弦を返します。 **構文** @@ -1050,11 +1124,11 @@ sin(x) **戻り値** -`x` の正弦値を返します。 +x の正弦値を返します。 -**例** +**使用例** -**シンプルな例** +**簡単な例** ```sql title=Query SELECT sin(1.23) @@ -1066,9 +1140,9 @@ SELECT sin(1.23) ## sinh \{#sinh\} -導入: v20.12 +導入バージョン: v20.12 -双曲線正弦を返します。 +双曲線正弦関数を返します。 **構文** @@ -1078,11 +1152,11 @@ sinh(x) **引数** -* `x` — ラジアンで表した角度。値の範囲は -∞ < x < +∞。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ラジアン単位の角度。取り得る値の範囲: -∞ < x < +∞。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **返り値** -値の範囲が -∞ < sinh(x) < +∞ の値を返します。[`Float64`](/sql-reference/data-types/float) +戻り値の範囲: -∞ < sinh(x) < +∞。[`Float64`](/sql-reference/data-types/float) **例** @@ -1110,9 +1184,9 @@ sqrt(x) **引数** -* `x` — 平方根を計算する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 平方根を計算する対象の数値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) -**返り値** +**戻り値** x の平方根を返します。[`Float*`](/sql-reference/data-types/float) @@ -1130,9 +1204,9 @@ SELECT sqrt(16); ## tan \{#tan\} -導入: v1.1 +導入バージョン: v1.1 -引数の正接(タンジェント)を返します。 +指定した引数の正接を返します。 **構文** @@ -1142,11 +1216,11 @@ tan(x) **引数** -* `x` — ラジアン単位の角度。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ラジアンで表された角度。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -`x` の正接を返します。[`Float*`](/sql-reference/data-types/float) +`x` の双曲線正接を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -1164,7 +1238,7 @@ SELECT tan(0); 導入バージョン: v20.1 -双曲線正接関数の値を返します。 +双曲線正接の値を返します。 **構文** @@ -1174,11 +1248,11 @@ tanh(x) **引数** -* `x` — ラジアンで表した角度。取り得る値の範囲: -∞ < x < +∞。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ラジアン単位の角度。値の範囲は -∞ < x < +∞。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -取り得る値の範囲: -1 < tanh(x) < 1 の値を返します。型は [`Float*`](/sql-reference/data-types/float) +-1 < tanh(x) < 1 の範囲の値を返します。[`Float*`](/sql-reference/data-types/float) **例** @@ -1194,9 +1268,9 @@ SELECT tanh(0) ## tgamma \{#tgamma\} -導入されたバージョン: v1.1 +導入バージョン: v1.1 -ガンマ関数を返します。 +ガンマ関数の値を返します。 **構文** @@ -1206,11 +1280,11 @@ tgamma(x) **引数** -* `x` — ガンマ関数を計算する対象の数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — ガンマ関数を計算する対象となる数値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal*`](/sql-reference/data-types/decimal) **戻り値** -ガンマ関数の値を返します。[`Float*`](/sql-reference/data-types/float) +ガンマ関数の値を返します。型は [`Float*`](/sql-reference/data-types/float) **例** @@ -1228,8 +1302,8 @@ SELECT tgamma(5); 導入バージョン: v23.3 -`operand` パラメーターが、`low` から `high` の範囲を等幅に分割した `count` 個のビン(ヒストグラムの区間)のうちどれに属するか、そのビン番号を返します。`operand` が `low` より小さい場合は 0 を返し、`operand` が `high` 以上の場合は `count`+1 を返します。 -他のデータベースとの互換性のために、大文字小文字を区別しないエイリアス `WIDTH_BUCKET` も用意されています。 +ヒストグラムの範囲 `low` から `high` を、`count` 個の等幅バケットに分割したときに、パラメータ `operand` が属するバケット番号を返します。`operand` が `low` より小さい場合は 0 を返し、`operand` が `high` 以上の場合は `count`+1 を返します。 +他のデータベースとの互換性のため、大文字小文字を区別しないエイリアス `WIDTH_BUCKET` も用意されています。 **構文** @@ -1241,12 +1315,12 @@ widthBucket(operand, low, high, count) **引数** -* `operand` — 属するバケットを判定する対象の値。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `low` — ヒストグラム範囲の下限値。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `high` — ヒストグラム範囲の上限値。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `count` — 等幅バケットの数。0 にすることはできません。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +* `operand` — どのバケットに属するかを決定する対象の値。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `low` — ヒストグラムの範囲の下限。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `high` — ヒストグラムの範囲の上限。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `count` — 等幅バケットの個数。0 は指定できません。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) -**戻り値** +**返される値** バケット番号を整数で返します。`operand < low` の場合は 0 を返し、`operand >= high` の場合は `count+1` を返します。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index cbea74aee9c..109be47be9c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -946,7 +946,7 @@ SELECT currentProfiles(); ## currentQueryID \{#currentQueryID\} -導入バージョン: v +導入バージョン: v25.2 現在のクエリ ID を返します。 @@ -1698,7 +1698,7 @@ SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); ## formatQuery \{#formatQuery\} -導入バージョン: v +導入バージョン: v23.10 指定した SQL クエリを整形し、場合によっては複数行にしたものを返します。パースエラーが発生した場合は例外をスローします。 [example:multiline] @@ -1735,7 +1735,7 @@ WHERE (a > 3) AND (b < 3) ## formatQueryOrNull \{#formatQueryOrNull\} -導入バージョン: v +導入バージョン: v23.11 指定された SQL クエリを、必要に応じて複数行に整形した形式で返します。構文解析エラーが発生した場合は NULL を返します。 [example:multiline] @@ -1772,7 +1772,7 @@ WHERE (a > 3) AND (b < 3) ## formatQuerySingleLine \{#formatQuerySingleLine\} -導入バージョン: v +導入バージョン: v23.10 formatQuery() と同様ですが、返される整形済み文字列には改行が含まれません。パースエラーが発生した場合は例外をスローします。 [example:multiline] @@ -1805,7 +1805,7 @@ SELECT a, b FROM tab WHERE (a > 3) AND (b < 3) ## formatQuerySingleLineOrNull \{#formatQuerySingleLineOrNull\} -導入バージョン: v +導入バージョン: v23.11 formatQuery() と同様ですが、返される整形済み文字列には改行が含まれません。構文解析エラーが発生した場合は NULL を返します。 [example:multiline] @@ -2021,6 +2021,37 @@ SELECT └────────────┴─────────────────────────────────────────────────────────────────┘ ``` +## fuzzQuery \{#fuzzQuery\} + +導入バージョン: v26.2 + +指定されたクエリ文字列をパースし、AST に対してランダムな変異(ファジング)を適用します。ファジング後のクエリを文字列として返します。非決定的であり、呼び出すたびに異なる結果が返される可能性があります。`allow_fuzz_query_functions = 1` が必要です。 + +**構文** + +```sql +fuzzQuery(query) +``` + +**引数** + +* `query` — ファジングされる SQL クエリ。[String](../../sql-reference/data-types/string.md) + +**戻り値** + +ファジングされたクエリ文字列 [`String`](/sql-reference/data-types/string) + +**例** + +**基本的な例** + +```sql title=Query +SET allow_fuzz_query_functions = 1; SELECT fuzzQuery('SELECT 1'); +``` + +```response title=Response +``` + ## generateRandomStructure \{#generateRandomStructure\} 導入: v23.5 @@ -2246,7 +2277,7 @@ SELECT getMacro('test'); ## getMaxTableNameLengthForDatabase \{#getMaxTableNameLengthForDatabase\} -導入バージョン: v +導入バージョン: v25.1 指定したデータベースにおけるテーブル名の最大文字数を返します。 @@ -2526,7 +2557,7 @@ SELECT getSizeOfEnumType(CAST('a' AS Enum8('a' = 1, 'b' = 2))) AS x; ## getSubcolumn \{#getSubcolumn\} -導入バージョン: v +導入バージョン: v23.3 式または識別子と、サブカラム名を表す定数文字列を受け取ります。 @@ -3627,7 +3658,7 @@ SELECT number, neighbor(number, 2, 999) FROM system.numbers LIMIT 10; ## nested \{#nested\} -導入バージョン: v +導入バージョン: v23.2 これは ClickHouse エンジン内部で使用される関数であり、ユーザーが直接使用することは想定されていません。 @@ -4722,7 +4753,7 @@ SELECT number, sleepEachRow(0.5) FROM system.numbers LIMIT 5; ## structureToCapnProtoSchema \{#structureToCapnProtoSchema\} -導入バージョン: v +導入バージョン: v23.8 ClickHouse テーブルの構造を CapnProto 形式のスキーマに変換する関数 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md index 9a7944f277b..c0d03b7d866 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md @@ -508,9 +508,9 @@ SELECT splitByWhitespace(' 1! a, b. '); 利用可能なトークナイザー: * `splitByNonAlpha` は、英数字以外の ASCII 文字で文字列を分割します(関数 [splitByNonAlpha](/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha) も参照してください)。 -* `splitByString(S)` は、ユーザー定義の区切り文字列 `S` に沿って文字列を分割します(関数 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString) も参照してください)。区切り文字はオプションのパラメータで指定でき、例えば `tokenizer = splitByString([', ', '; ', '\n', '\\'])` のように指定します。各文字列は複数文字(この例では `', '`)から構成されていてもかまいません。区切り文字リストを明示的に指定しない場合(例えば `tokenizer = splitByString`)、デフォルトの区切り文字リストは単一の空白 `[' ']` です。 -* `ngrams(N)` は、文字列を同じ長さの `N`-gram に分割します(関数 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams) も参照してください)。ngram の長さは 1 から 8 の整数のオプションパラメータで指定でき、例えば `tokenizer = ngrams(3)` のように指定します。ngram のデフォルトサイズは、明示的に指定しない場合(例えば `tokenizer = ngrams`)、3 です。 -* `sparseGrams(min_length, max_length, min_cutoff_length)` は、少なくとも `min_length` 文字、最大で(両端を含めて)`max_length` 文字の可変長 n-gram に文字列を分割します(関数 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams) も参照してください)。明示的に指定しない場合、`min_length` と `max_length` のデフォルト値はそれぞれ 3 と 100 です。パラメータ `min_cutoff_length` を指定した場合、その長さ以上の n-gram のみが返されます。`ngrams(N)` と比較すると、`sparseGrams` トークナイザーは可変長の N-gram を生成するため、元のテキストをより柔軟に表現できます。例えば、`tokenizer = sparseGrams(3, 5, 4)` は内部的には入力文字列から 3, 4, 5-gram を生成しますが、返されるのは 4-gram と 5-gram のみです。 +* `splitByString(S)` は、ユーザー定義の区切り文字列 `S` に沿って文字列を分割します(関数 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString) も参照してください)。区切り文字はオプションのパラメータで指定でき、例えば `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])` のように指定します。各文字列は複数文字(この例では `', '`)から構成されていてもかまいません。区切り文字リストを明示的に指定しない場合、デフォルトの区切り文字リストは単一の空白 `[' ']` です。 +* `ngrams(N)` は、文字列を同じ長さの `N`-gram に分割します(関数 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams) も参照してください)。ngram の長さは 1 から 8 の整数のオプションパラメータで指定でき、例えば `tokens(value, 'ngrams', 3)` のように指定します。ngram のデフォルトサイズは、明示的に指定しない場合、3 です。 +* `sparseGrams(min_length, max_length, min_cutoff_length)` は、少なくとも `min_length` 文字、最大で(両端を含めて)`max_length` 文字の可変長 n-gram に文字列を分割します(関数 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams) も参照してください)。明示的に指定しない場合、`min_length` と `max_length` のデフォルト値はそれぞれ 3 と 100 です。パラメータ `min_cutoff_length` を指定した場合、その長さ以上の n-gram のみが返されます。`ngrams(N)` と比較すると、`sparseGrams` トークナイザーは可変長の N-gram を生成するため、元のテキストをより柔軟に表現できます。例えば、`tokens(value, 'sparseGrams', 3, 5, 4)` は内部的には入力文字列から 3, 4, 5-gram を生成しますが、返されるのは 4-gram と 5-gram のみです。 * `array` はトークナイズを行わず、各行の値全体を 1 つのトークンとして扱います(関数 [array](/sql-reference/functions/array-functions.md/#array) も参照してください)。 `splitByString` トークナイザーの場合、トークンが [prefix code](https://en.wikipedia.org/wiki/Prefix_code) を形成しないときには、より長い区切り文字を優先してマッチさせたい場合が多いでしょう。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 2a8e7945453..608e91af61f 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -938,7 +938,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitive \{#hasTokenCaseInsensitive\} -導入バージョン: v +導入バージョン: v20.1 tokenbf_v1 索引を使用して、haystack 内の needle を大文字小文字を区別せずに検索します。 @@ -957,7 +957,7 @@ tokenbf_v1 索引を使用して、haystack 内の needle を大文字小文 ## hasTokenCaseInsensitiveOrNull \{#hasTokenCaseInsensitiveOrNull\} -導入バージョン: v +導入バージョン: v23.1 `tokenbf_v1` 索引を使用して、haystack 内で needle を大文字小文字を区別せずに検索します。needle が不正な形式の場合は null を返します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md index 665b3ac7324..04f43f67e0c 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md @@ -801,4 +801,54 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht └────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘ ``` +## timeSeriesThrowDuplicateSeriesIf \{#timeSeriesThrowDuplicateSeriesIf\} + +導入バージョン: v26.2 + +`condition` を評価し、true の場合は次のメッセージで例外をスローします: +`Multiple series have the same tags , duplicate series in the same result set are not allowed`。 +`condition` が false の場合、この関数は `0` を返します。 +この関数は [throwIf()](/sql-reference/functions/other-functions#throwIf) に似ていますが、 +使用するエラーコードとエラーメッセージの形式が異なります。 + +**構文** + +```sql +timeSeriesThrowDuplicateSeriesIf(condition, group) +``` + +**引数** + +* `condition` — 判定する条件。通常は関数 [count()](/sql-reference/aggregate-functions/reference/count#count) を含みます。[`UInt8`](/sql-reference/data-types/int-uint) +* `group` — タグのグループ。[`UInt64`](/sql-reference/data-types/int-uint) + +**戻り値** + +`0` を返します。[`UInt8`](/sql-reference/data-types/int-uint) + +**例** + +**例** + +```sql title=Query +CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory; + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- OK + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- Throws exception "Multiple series have the same tags {'__name__': 'up'}" +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md index 519cfc38621..22de030b506 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md @@ -1,5 +1,5 @@ --- -description: '時間ウィンドウ関数のドキュメント' +description: '時間ウィンドウ関数に関するドキュメント' sidebar_label: '時間ウィンドウ' slug: /sql-reference/functions/time-window-functions title: '時間ウィンドウ関数' @@ -10,30 +10,32 @@ keywords: ['時間ウィンドウ'] import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + # 時間ウィンドウ関数 \{#time-window-functions\} -時間ウィンドウ関数は、対応するウィンドウの下側の境界(含む)と上側の境界(含まない)を返します。 -[WindowView](/sql-reference/statements/create/view#window-view) を扱うための関数は以下に示します。 +時間ウィンドウ関数は、対応するウィンドウの下限(含む)と上限(含まない)を返します。 +[WindowView](/sql-reference/statements/create/view#window-view) を扱うための関数は次のとおりです。 {/* - 以下のタグ内の内容は、ドキュメントフレームワークのビルド時に - system.functions から自動生成されたドキュメントで置き換えられます。タグを変更または削除しないでください。 - 詳細は https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 + 以下のタグの内側のコンテンツは、ドキュメントフレームワークのビルド時に + system.functions から生成されたドキュメントで置き換えられます。タグを変更したり削除したりしないでください。 + 詳細については https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 */ } {/*AUTOGENERATED_START*/ } + ## hop \{#hop\} 導入バージョン: v21.12 -ホッピング時間ウィンドウは固定の長さ(`window_interval`)を持ち、指定されたホップ間隔(`hop_interval`)ごとにシフトします。`hop_interval` が `window_interval` より小さい場合、ホッピングウィンドウは互いに重なり合います。そのため、レコードは複数のウィンドウに割り当てられる可能性があります。 +ホップ型時間ウィンドウは固定の長さ(`window_interval`)を持ち、指定されたホップ間隔(`hop_interval`)ごとにシフトします。`hop_interval` が `window_interval` より小さい場合、ホップウィンドウは互いに重なります。このため、レコードは複数のウィンドウに割り当てられる可能性があります。 -1 つのレコードが複数の hop ウィンドウに割り当てられる可能性があるため、WINDOW VIEW を使用せずに hop 関数を使用した場合、この関数は最初のウィンドウの境界のみを返します。 +1 つのレコードが複数の hop ウィンドウに割り当てられる可能性があるため、hop 関数が WINDOW VIEW なしで使用される場合、この関数は最初のウィンドウの境界のみを返します。 **構文** @@ -46,11 +48,11 @@ hop(time_attr, hop_interval, window_interval[, timezone]) * `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) * `hop_interval` — 正のホップ間隔。[`Interval`](/sql-reference/data-types/int-uint) * `window_interval` — 正のウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可。タイムゾーン名。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) **戻り値** -対応するホッピングウィンドウの下限(包含的)と上限(排他的)を返します。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +対応するホッピングウィンドウの下限値(以上)と上限値(未満)を返します。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **例** @@ -64,13 +66,14 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) ('2024-07-03 00:00:00','2024-07-05 00:00:00') ``` + ## hopEnd \{#hopEnd\} 導入バージョン: v22.1 -対応するホップウィンドウの排他的上限を返します。 +対応する hop window の排他的上限を返します。 -1 つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、`WINDOW VIEW` なしで hop 関数を使用する場合、この関数は最初のウィンドウの境界のみを返します。 +1 つのレコードは複数の hop window に割り当てられる可能性があるため、`WINDOW VIEW` を使用せずに hop 関数を使った場合、この関数は最初のウィンドウの上限のみを返します。 **構文** @@ -85,13 +88,13 @@ hopEnd(time_attr, hop_interval, window_interval[, timezone]) * `window_interval` — 正のウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) -**戻り値** +**返り値** -対応するホッピングウィンドウの排他的上限値を返します。[`DateTime`](/sql-reference/data-types/datetime) +対応するホッピングウィンドウの排他的な上限時刻を返します。[`DateTime`](/sql-reference/data-types/datetime) -**例** +**使用例** -**ホッピングウィンドウの終端** +**ホッピングウィンドウの終了** ```sql title=Query SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -101,13 +104,14 @@ SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-05 00:00:00 ``` + ## hopStart \{#hopStart\} 導入バージョン: v22.1 -対応するホップウィンドウの包含的な下限値を返します。 +対応するホップウィンドウの含まれる側の下限値を返します。 -1 つのレコードが複数のホップウィンドウに割り当てられる可能性があるため、`WINDOW VIEW` を使用せずに `hop` 関数を使用した場合、この関数は最初のホップウィンドウの下限値のみを返します。 +1 つのレコードは複数のホップウィンドウに割り当てられる可能性があるため、`WINDOW VIEW` を使用せずに hop 関数を使用した場合、この関数は最初のウィンドウの下限のみを返します。 **構文** @@ -120,15 +124,15 @@ hopStart(time_attr, hop_interval, window_interval[, timezone]) * `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) * `hop_interval` — 正のホップ間隔。[`Interval`](/sql-reference/data-types/int-uint) * `window_interval` — 正のウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可。タイムゾーン名。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) -**戻り値** +**返り値** -対応するホッピングウィンドウの下側の(含まれる)境界を返します。[`DateTime`](/sql-reference/data-types/datetime) +対応するホッピングウィンドウの包含的な下限値を返します。[`DateTime`](/sql-reference/data-types/datetime) -**例** +**使用例** -**ホッピングウィンドウの開始** +**ホッピングウィンドウの開始時刻** ```sql title=Query SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -138,11 +142,12 @@ SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-03 00:00:00 ``` + ## tumble \{#tumble\} 導入バージョン: v21.12 -タンブリングウィンドウは、レコードを固定長(`interval`)の、互いに重ならない連続したウィンドウに割り当てます。 +tumbling time window は、固定長の期間(`interval`)で構成される、互いに重ならない連続ウィンドウにレコードを割り当てます。 **構文** @@ -152,15 +157,15 @@ tumble(time_attr, interval[, timezone]) **引数** -* `time_attr` — 日時。[`DateTime`](/sql-reference/data-types/datetime) +* `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) * `interval` — Interval 型で指定するウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可。タイムゾーン名。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) **戻り値** -対応するタンブリングウィンドウの下限(含む)と上限(含まない)を返します。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +対応するタンブリングウィンドウの下限(含む)と上限(含まない)の境界を返します。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) -**例** +**使用例** **タンブリングウィンドウ** @@ -172,11 +177,12 @@ SELECT tumble(now(), toIntervalDay('1')) ('2024-07-04 00:00:00','2024-07-05 00:00:00') ``` + ## tumbleEnd \{#tumbleEnd\} 導入バージョン: v22.1 -対応するタンブリングウィンドウの非包含の上限値を返します。 +対応するタンブリングウィンドウの排他的上限値を返します。 **構文** @@ -187,14 +193,14 @@ tumbleEnd(time_attr, interval[, timezone]) **引数** * `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) -* `interval` — `Interval` 型で指定されたウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) +* `interval` — ウィンドウの間隔を表す Interval 型。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) **戻り値** 対応するタンブリングウィンドウの排他的な上限値を返します。[`DateTime`](/sql-reference/data-types/datetime) -**例** +**使用例** **タンブリングウィンドウの終了時刻** @@ -206,11 +212,12 @@ SELECT tumbleEnd(now(), toIntervalDay('1')) 2024-07-05 00:00:00 ``` + ## tumbleStart \{#tumbleStart\} -導入: v22.1 +導入バージョン: v22.1 -対応するタンブリングウィンドウの包含的な下限を返します。 +対応するタンブリングウィンドウの含まれる下限値(開始時刻)を返します。 **構文** @@ -222,15 +229,15 @@ tumbleStart(time_attr, interval[, timezone]) * `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) * `interval` — Interval 型で指定するウィンドウ間隔。[`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — オプション。タイムゾーン名。[`String`](/sql-reference/data-types/string) +* `timezone` — 任意。タイムゾーン名。[`String`](/sql-reference/data-types/string) -**返り値** +**戻り値** -対応するタンブリングウィンドウの包括的な下限(開始時刻)を返します。[`DateTime`](/sql-reference/data-types/datetime) +対応するタンブリングウィンドウの下限(包含側の端)を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** -**タンブリングウィンドウの開始** +**タンブリングウィンドウの開始時刻** ```sql title=Query SELECT tumbleStart(now(), toIntervalDay('1')) @@ -240,8 +247,44 @@ SELECT tumbleStart(now(), toIntervalDay('1')) 2024-07-04 00:00:00 ``` + +## windowID \{#windowID\} + +導入バージョン: v22.1 + +対応するタンブリングウィンドウまたはホッピングウィンドウのウィンドウ識別子を返します。 +この関数は `WINDOW VIEW` でのみ使用できます。 + +**構文** + +```sql +windowID(time_attr, interval[, timezone]) +``` + +**引数** + +* `time_attr` — 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) +* `interval` — ウィンドウの間隔を表す Interval 型。[`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 省略可能。タイムゾーン名。[`String`](/sql-reference/data-types/string) + +**戻り値** + +対応するウィンドウの識別子を返します。[`UInt32`](/sql-reference/data-types/int-uint) + +**使用例** + +**ウィンドウ ID** + +```sql title=Query +SELECT windowID(now(), toIntervalDay('1')) +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } + ## 関連コンテンツ \{#related-content\} -- [時系列データのユースケースガイド](/use-cases/time-series) +- [時系列ユースケースガイド](/use-cases/time-series) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md index f93822eb91b..c095b75f0b4 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md @@ -19,6 +19,43 @@ doc_type: 'reference' {/*AUTOGENERATED_START*/ } +## dotProduct \{#dotProduct\} + +導入バージョン: v21.11 + +2 つのベクトル(同じ長さのタプルまたは配列)の[ドット積](https://en.wikipedia.org/wiki/Dot_product)(スカラー積)を計算します。 +対応する要素同士の積の合計を返します。 + +**構文** + +```sql +dotProduct(vector1, vector2) +``` + +**エイリアス**: `scalarProduct` + +**引数** + +* `vector1` — 最初のベクトル。[`Array(T)`](/sql-reference/data-types/array) または [`Tuple(T)`](/sql-reference/data-types/tuple) +* `vector2` — 2 番目のベクトル。最初のベクトルと同じ要素数である必要があります。[`Array(T)`](/sql-reference/data-types/array) または [`Tuple(T)`](/sql-reference/data-types/tuple) + +**戻り値** + +2 つのベクトルのドット積を返します。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Decimal`](/sql-reference/data-types/decimal) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT dotProduct((1, 2), (3, 4)) +``` + +```response title=Response +11 +``` + + ## flattenTuple \{#flattenTuple\} 導入バージョン: v22.6 @@ -60,7 +97,7 @@ SELECT flattenTuple(t) FROM tab; ## tuple \{#tuple\} -導入バージョン: v +導入バージョン: v1.1 入力引数をグループ化してタプルを返します。 @@ -702,7 +739,7 @@ SELECT tupleMultiplyByNumber((1, 2), -2.1) ## tupleNames \{#tupleNames\} -導入バージョン: v +導入バージョン: v24.8 タプルをカラム名の配列に変換します。`Tuple(a T, b T, ...)` という形式のタプルに対して、タプル内の名前付きカラムを表す文字列の配列を返します。タプル要素に明示的な名前がない場合は、そのインデックス番号がカラム名として使用されます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index 68deeddbc56..48829ae3975 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -16,7 +16,7 @@ doc_type: 'reference' ## extractKeyValuePairs \{#extractKeyValuePairs\} -導入バージョン: v +導入バージョン: v23.4 任意の文字列からキーと値のペアを抽出します。文字列は 100% キー・バリュー形式で構造化されている必要はありません。 @@ -60,14 +60,14 @@ doc_type: 'reference' └─────────────────────────────────────────────────────────────────────────┘ ``` -**引用文字としての単一引用符** +**クオート文字としての単一引用符** ```sql arthur :) select extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv - クエリ ID: 0e22bf6b-9844-414a-99dc-32bf647abd5e + Query id: 0e22bf6b-9844-414a-99dc-32bf647abd5e ┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │ @@ -173,7 +173,7 @@ unexpected_quoting_character_strategy=promote ## extractKeyValuePairsWithEscaping \{#extractKeyValuePairsWithEscaping\} -導入バージョン: v +導入バージョン: v23.4 `extractKeyValuePairs` と同じですが、エスケープシーケンスに対応しています。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md index 893880bba04..bca27093255 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md @@ -112,7 +112,7 @@ LIMIT 10 {/* 以下のタグ内のコンテンツは、ドキュメントフレームワークのビルド時に - system.functions から生成されたドキュメントに置き換えられます。タグは変更または削除しないでください。 + system.functions から自動生成されたドキュメントに置き換えられます。タグは変更または削除しないでください。 詳細は https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 */ } @@ -123,9 +123,9 @@ LIMIT 10 導入バージョン: v1.1 -値を指定したデータ型に変換します。 -`reinterpret` 関数とは異なり、CAST はターゲット型で同じ値を表現しようとします。 -それが不可能な場合は、例外が送出されます。 +値を指定されたデータ型に変換します。 +`reinterpret` 関数とは異なり、CAST は対象の型において同じ値になるように変換を試みます。 +それが不可能な場合は、例外がスローされます。 **構文** @@ -142,11 +142,11 @@ or x::T **戻り値** -指定したデータ型に変換された値を返します。[`Any`](/sql-reference/data-types) +変換先のデータ型に変換された値を返します。[`Any`](/sql-reference/data-types) -**例** +**使用例** -**基本的な使用方法** +**基本的な使い方** ```sql title=Query SELECT CAST(42, 'String') @@ -158,7 +158,7 @@ SELECT CAST(42, 'String') └────────────────────┘ ``` -**AS 句の使用** +**AS 構文の利用** ```sql title=Query SELECT CAST('2025-01-01' AS Date) @@ -183,13 +183,46 @@ SELECT '123'::UInt32 ``` +## DATE \{#DATE\} + +導入バージョン: v21.2 + +引数を Date データ型に変換します。これは MySQL 互換の `toDate` のエイリアスであり、`toDate` と同様に動作します。 + +**構文** + +```sql +DATE(expr) +``` + +**引数** + +* `expr` — 変換する値。[`String`](/sql-reference/data-types/string)、[`UInt32`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime) のいずれか。 + +**戻り値** + +`Date` 型の値を返します。[`Date`](/sql-reference/data-types/date) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT DATE('2023-01-01') +``` + +```response title=Response +2023-01-01 +``` + + ## accurateCast \{#accurateCast\} 導入バージョン: v1.1 -値を指定されたデータ型に変換します。[`CAST`](#CAST) と異なり、`accurateCast` はより厳密な型チェックを行い、変換によって精度の損失が発生する場合や、変換が不可能な場合には例外をスローします。 +値を指定したデータ型に変換します。[`CAST`](#CAST) と異なり、`accurateCast` はより厳密な型チェックを行い、変換によってデータ精度の損失が発生する場合や、変換が不可能な場合には例外をスローします。 -この関数は、精度の損失や無効な変換を防ぐため、通常の `CAST` よりも安全です。 +この関数は、精度の損失や不正な変換を防ぐため、通常の `CAST` よりも安全です。 **構文** @@ -202,13 +235,13 @@ accurateCast(x, T) * `x` — 変換する値。[`Any`](/sql-reference/data-types) * `T` — 変換先のデータ型名。[`String`](/sql-reference/data-types/string) -**返り値** +**戻り値** -変換先のデータ型に変換された値を返します。[`Any`](/sql-reference/data-types) +指定されたデータ型に変換された値を返します。[`Any`](/sql-reference/data-types) **例** -**成功した変換** +**変換が成功する例** ```sql title=Query SELECT accurateCast(42, 'UInt16') @@ -237,10 +270,10 @@ SELECT accurateCast('123.45', 'Float64') 導入バージョン: v21.1 -値を指定されたデータ型に変換します。 -[`accurateCast`](#accurateCast) と同様ですが、変換を正確に行えない場合は、例外をスローする代わりにデフォルト値を返します。 +値を指定したデータ型に変換します。 +[`accurateCast`](#accurateCast) と同様ですが、変換を正確に行えない場合に、例外を送出する代わりにデフォルト値を返します。 -第 2 引数としてデフォルト値を指定する場合、その値は変換先の型である必要があります。 +第 2 引数としてデフォルト値を指定する場合、その値は変換先の型でなければなりません。 デフォルト値を指定しない場合は、変換先の型のデフォルト値が使用されます。 **構文** @@ -253,15 +286,15 @@ accurateCastOrDefault(x, T[, default_value]) * `x` — 変換する値。[`Any`](/sql-reference/data-types) * `T` — 変換先のデータ型名。[`const String`](/sql-reference/data-types/string) -* `default_value` — オプション。変換に失敗した場合に返されるデフォルト値。[`Any`](/sql-reference/data-types) +* `default_value` — 省略可能。変換に失敗した場合に返すデフォルト値。[`Any`](/sql-reference/data-types) **戻り値** -変換先のデータ型に変換された値、または変換が不可能な場合はデフォルト値を返します。[`Any`](/sql-reference/data-types) +指定されたデータ型に変換された値、または変換が不可能な場合はデフォルト値を返します。[`Any`](/sql-reference/data-types) **使用例** -**正常に変換できる場合** +**変換が成功する例** ```sql title=Query SELECT accurateCastOrDefault(42, 'String') @@ -273,7 +306,7 @@ SELECT accurateCastOrDefault(42, 'String') └─────────────────────────────────────┘ ``` -**明示的なデフォルト指定時の変換失敗** +**明示的なデフォルト値指定時の変換失敗** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) @@ -285,7 +318,7 @@ SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) └─────────────────────────────────────────────┘ ``` -**暗黙のデフォルト値を伴う変換失敗** +**暗黙のデフォルトによる変換失敗** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32') @@ -303,9 +336,9 @@ SELECT accurateCastOrDefault('abc', 'UInt32') 導入バージョン: v1.1 値を指定したデータ型に変換します。 -[`accurateCast`](#accurateCast) と同様ですが、変換を正確に実行できない場合に、例外をスローする代わりに `NULL` を返します。 +[`accurateCast`](#accurateCast) と似ていますが、変換を正確に行えない場合は、例外をスローする代わりに `NULL` を返します。 -この関数は、[`accurateCast`](#accurateCast) の安全性と、より扱いやすいエラー処理を兼ね備えています。 +この関数は、[`accurateCast`](#accurateCast) の安全性と、例外を発生させない穏当なエラー処理を兼ね備えています。 **構文** @@ -315,12 +348,12 @@ accurateCastOrNull(x, T) **引数** -* `x` — 変換対象の値。[`Any`](/sql-reference/data-types) -* `T` — 変換先データ型の名前。[`String`](/sql-reference/data-types/string) +* `x` — 変換する値。[`Any`](/sql-reference/data-types) +* `T` — 変換先のデータ型名。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -変換先のデータ型に変換された値、または変換できない場合は `NULL` が返されます。[`Any`](/sql-reference/data-types) +変換先のデータ型の値を返します。変換できない場合は `NULL` を返します。[`Any`](/sql-reference/data-types) **例** @@ -336,7 +369,7 @@ SELECT accurateCastOrNull(42, 'String') └──────────────────────────────────┘ ``` -**変換に失敗すると NULL を返す** +**失敗した変換は NULL を返す** ```sql title=Query SELECT accurateCastOrNull('abc', 'UInt32') @@ -351,13 +384,13 @@ SELECT accurateCastOrNull('abc', 'UInt32') ## formatRow \{#formatRow\} -導入: v20.7 +導入バージョン: v20.7 -任意の式を、指定されたフォーマットで文字列に変換します。 +任意の式を、指定されたフォーマットを使って文字列に変換します。 :::note -フォーマットにサフィックスやプレフィックスが含まれている場合、それらは各行ごとに出力されます。 -この関数では、行ベースのフォーマットのみがサポートされています。 +フォーマットにサフィックスまたはプレフィックスが含まれている場合、それは各行に出力されます。 +この関数では、行ベースのフォーマットのみがサポートされます。 ::: **構文** @@ -368,16 +401,16 @@ formatRow(format, x, y, ...) **引数** -* `format` — テキスト形式。例えば CSV、TSV など。[`String`](/sql-reference/data-types/string) +* `format` — テキスト形式。例: CSV、TSV。[`String`](/sql-reference/data-types/string) * `x, y, ...` — 式。[`Any`](/sql-reference/data-types) -**返り値** +**返される値** -フォーマット済みの文字列(テキスト形式の場合は通常、改行文字で終端されます)。[`String`](/sql-reference/data-types/string) +書式化された文字列(テキスト形式の場合は通常、末尾に改行文字が付きます)。[`String`](/sql-reference/data-types/string) **例** -**基本的な使用方法** +**基本的な使用例** ```sql title=Query SELECT formatRow('CSV', number, 'good') @@ -395,7 +428,7 @@ FROM numbers(3) └──────────────────────────────────┘ ``` -**カスタムフォーマットを使用** +**カスタムフォーマットを使用する場合** ```sql title=Query SELECT formatRow('CustomSeparated', number, 'good') @@ -422,9 +455,9 @@ SETTINGS format_custom_result_before_delimiter='\n', format_custom_resul 導入バージョン: v20.7 -[`formatRow`](#formatRow) と同じですが、各行の改行文字を取り除きます。 +[`formatRow`](#formatRow) と同様ですが、各行の改行文字を削除します。 -任意の式を指定されたフォーマットで文字列に変換しますが、結果の末尾に含まれる改行文字はすべて削除します。 +任意の式を指定されたフォーマットで文字列に変換しますが、結果から末尾の改行文字をすべて削除します。 **構文** @@ -439,7 +472,7 @@ formatRowNoNewline(format, x, y, ...) **返される値** -改行を削除したフォーマットされた文字列を返します。[`String`](/sql-reference/data-types/string) +改行を削除したフォーマット済み文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -465,7 +498,7 @@ FROM numbers(3) マイクロ秒単位の Unix タイムスタンプを、マイクロ秒精度の `DateTime64` 値に変換します。 -入力値は、1970-01-01 00:00:00 UTC からの経過時間をマイクロ秒で表した Unix タイムスタンプとして扱われます。 +入力値は、マイクロ秒精度の Unix タイムスタンプ(1970-01-01 00:00:00 UTC からの経過マイクロ秒数)として扱われます。 **構文** @@ -476,11 +509,11 @@ fromUnixTimestamp64Micro(value[, timezone]) **引数** * `value` — マイクロ秒単位の Unix タイムスタンプ。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可能。返される値のタイムゾーン。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。返される値に適用するタイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -マイクロ秒精度の `DateTime64` 値を返します。[`DateTime64(6)`](/sql-reference/data-types/datetime64) +マイクロ秒精度を持つ `DateTime64` 値を返します。[`DateTime64(6)`](/sql-reference/data-types/datetime64) **例** @@ -501,9 +534,9 @@ SELECT fromUnixTimestamp64Micro(1640995200123456) 導入バージョン: v20.5 -ミリ秒単位の Unix タイムスタンプを、ミリ秒精度の `DateTime64` 型の値に変換します。 +ミリ秒精度の Unix タイムスタンプを、ミリ秒精度の `DateTime64` 値に変換します。 -入力値は、ミリ秒精度の Unix タイムスタンプ(1970-01-01 00:00:00 UTC からのミリ秒数)として扱われます。 +入力値は、ミリ秒精度の Unix タイムスタンプ(1970-01-01 00:00:00 UTC からの経過ミリ秒数)として扱われます。 **構文** @@ -513,12 +546,12 @@ fromUnixTimestamp64Milli(value[, timezone]) **引数** -* `value` — ミリ秒単位の Unix タイムスタンプ値。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可。返される値のタイムゾーンを指定する文字列。[`String`](/sql-reference/data-types/string) +* `value` — ミリ秒単位の Unix タイムスタンプ。[`Int64`](/sql-reference/data-types/int-uint) +* `timezone` — 省略可能。返される値に適用するタイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** -ミリ秒精度の `DateTime64` 型の値。[`DateTime64(3)`](/sql-reference/data-types/datetime64) +ミリ秒精度の `DateTime64` 値。[`DateTime64(3)`](/sql-reference/data-types/datetime64) **例** @@ -541,10 +574,10 @@ SELECT fromUnixTimestamp64Milli(1640995200123) ナノ秒単位の Unix タイムスタンプを、ナノ秒精度を持つ [`DateTime64`](/sql-reference/data-types/datetime64) 値に変換します。 -入力値は、1970-01-01 00:00:00 UTC からの経過ナノ秒数としての Unix タイムスタンプとして扱われます。 +入力値は、1970-01-01 00:00:00 UTC からの経過ナノ秒数としての、ナノ秒精度の Unix タイムスタンプとして扱われます。 :::note -入力値はタイムゾーンを考慮せず、UTC タイムスタンプとして扱われる点に注意してください。 +入力値は、その値に紐づくタイムゾーンではなく、UTC タイムスタンプとして扱われる点に注意してください。 ::: **構文** @@ -558,7 +591,7 @@ fromUnixTimestamp64Nano(value[, timezone]) * `value` — ナノ秒単位の Unix タイムスタンプ。[`Int64`](/sql-reference/data-types/int-uint) * `timezone` — 省略可能。返される値のタイムゾーンを指定します。[`String`](/sql-reference/data-types/string) -**返り値** +**戻り値** ナノ秒精度の `DateTime64` 値を返します。[`DateTime64(9)`](/sql-reference/data-types/datetime64) @@ -583,7 +616,7 @@ SELECT fromUnixTimestamp64Nano(1640995200123456789) 秒単位の Unix タイムスタンプを、秒精度の `DateTime64` 値に変換します。 -入力値は、秒精度(1970-01-01 00:00:00 UTC からの経過秒数)の Unix タイムスタンプとして解釈されます。 +入力値は、秒精度(1970-01-01 00:00:00 UTC からの経過秒数)の Unix タイムスタンプとして扱われます。 **構文** @@ -593,12 +626,12 @@ fromUnixTimestamp64Second(value[, timezone]) **引数** -* `value` — 秒単位の UNIX タイムスタンプ。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可能。返される値のタイムゾーンを指定します。[`String`](/sql-reference/data-types/string) +* `value` — 秒単位の Unix タイムスタンプ。[`Int64`](/sql-reference/data-types/int-uint) +* `timezone` — 省略可能。返される値のタイムゾーンです。[`String`](/sql-reference/data-types/string) **戻り値** -秒精度の `DateTime64` 型の値を返します。[`DateTime64(0)`](/sql-reference/data-types/datetime64) +秒精度の `DateTime64` 値を返します。[`DateTime64(0)`](/sql-reference/data-types/datetime64) **例** @@ -619,10 +652,10 @@ SELECT fromUnixTimestamp64Second(1640995200) 導入バージョン: v23.3 -MySQL の日付フォーマット文字列に従って、日時文字列を解析します。 +MySQL の日付フォーマット文字列に従って、日付と時刻の文字列を解析します。 -この関数は [`formatDateTime`](/sql-reference/functions/date-time-functions) の逆の動作をします。 -フォーマットを表す String を使用して、引数の String を解析します。戻り値は DateTime 型です。 +この関数は [`formatDateTime`](/sql-reference/functions/date-time-functions) の逆の処理を行います。 +フォーマット文字列に従って String 型の引数を解析し、DateTime 型を返します。 **構文** @@ -634,13 +667,13 @@ parseDateTime(time_string, format[, timezone]) **引数** -* `time_string` — `DateTime` として解釈される文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` の解釈方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 省略可。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime に解析される対象の文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` をどのように解析するかを指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -MySQL 形式のフォーマット文字列に従って、入力文字列から解釈された `DateTime` を返します。[`DateTime`](/sql-reference/data-types/datetime) +MySQL スタイルのフォーマット文字列に従って、入力文字列から解析された DateTime を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -661,9 +694,9 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') 導入バージョン: v20.9 -日付と時刻の文字列表現を、[`DateTime`](/sql-reference/data-types/datetime) データ型に変換します。 +日付と時刻の文字列表現を [`DateTime`](/sql-reference/data-types/datetime) データ型に変換します。 -この関数は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 独自の形式およびそのほかのいくつかの日付と時刻の形式を解析します。 +この関数は、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 独自の形式およびその他のいくつかの日付・時刻フォーマットを解釈します。 **構文** @@ -674,7 +707,7 @@ parseDateTime32BestEffort(time_string[, time_zone]) **引数** * `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 省略可。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` の解析に用いるタイムゾーン。[`String`](/sql-reference/data-types/string) **返り値** @@ -695,7 +728,7 @@ AS parseDateTime32BestEffort └───────────────────────────┘ ``` -**タイムゾーンあり** +**タイムゾーン付き** ```sql title=Query SELECT parseDateTime32BestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') @@ -708,7 +741,7 @@ AS parseDateTime32BestEffort └───────────────────────────┘ ``` -**Unixタイムスタンプ** +**UNIXタイムスタンプ** ```sql title=Query SELECT parseDateTime32BestEffort('1284101485') @@ -726,7 +759,7 @@ AS parseDateTime32BestEffort 導入バージョン: v20.9 -[`parseDateTime32BestEffort`](#parseDateTime32BestEffort) と同様ですが、処理できない日付形式に遭遇した場合は `NULL` を返します。 +[`parseDateTime32BestEffort`](#parseDateTime32BestEffort) と同様ですが、処理できない日付形式を検出した場合は `NULL` を返します。 **構文** @@ -736,8 +769,8 @@ parseDateTime32BestEffortOrNull(time_string[, time_zone]) **引数** -* `time_string` — 変換対象の日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 省略可能。`time_string` をパースする際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換する日時を含む文字列。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` を解釈する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) **返り値** @@ -764,7 +797,7 @@ SELECT 導入バージョン: v20.9 -[`parseDateTime32BestEffort`](#parseDateTime32BestEffort) と同様ですが、解釈できない日付形式に遭遇した場合は、ゼロ日付またはゼロの日時値を返します。 +処理できない日付形式に遭遇した場合にゼロ日付またはゼロ日時を返す点を除き、[`parseDateTime32BestEffort`](#parseDateTime32BestEffort) と同じです。 **構文** @@ -774,12 +807,12 @@ parseDateTime32BestEffortOrZero(time_string[, time_zone]) **引数** -* `time_string` — 変換する日時を表す文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 任意。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日時が含まれる文字列。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` を解釈する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**返り値** -文字列から解析された `DateTime` オブジェクト、または解析に失敗した場合はゼロ日時(`1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) +文字列からパースされた `DateTime` オブジェクト、またはパースに失敗した場合はゼロ日付(`1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -805,7 +838,7 @@ SELECT MySQL の日付フォーマット文字列に従って、サブ秒精度を持つ日付と時刻の文字列をパースします。 この関数は、DateTime64 に対する [`formatDateTime`](/sql-reference/functions/date-time-functions) の逆関数です。 -フォーマット文字列を用いて String 型の引数をパースし、1900 年から 2299 年までの日付をサブ秒精度で表現できる DateTime64 型を返します。 +文字列引数を指定されたフォーマット文字列を使ってパースします。1900 年から 2299 年までの日時をサブ秒精度で表現できる DateTime64 型を返します。 **構文** @@ -815,11 +848,11 @@ parseDateTime64(time_string, format[, timezone]) **引数** -* `time_string` — DateTime64 に変換される文字列。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 に解析される文字列。[`String`](/sql-reference/data-types/string) * `format` — `time_string` の解析方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — オプション。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `timezone` — 任意。タイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** MySQL スタイルのフォーマット文字列に従って、入力文字列から解析された DateTime64 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) @@ -852,13 +885,13 @@ parseDateTime64BestEffort(time_string[, precision[, time_zone]]) **引数** -* `time_string` — 変換対象の日付、または日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — 任意。要求される精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6` を指定します。デフォルトは `3` です。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 任意。タイムゾーン。この関数は `time_string` をこのタイムゾーンとして解釈して解析します。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日付、または日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) +* `precision` — オプション。必要な精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — オプション。タイムゾーン。関数はこのタイムゾーンに従って `time_string` をパースします。[`String`](/sql-reference/data-types/string) **戻り値** -`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) データ型に変換して返します。[`DateTime64`](/sql-reference/data-types/datetime64) +[`DateTime64`](../../sql-reference/data-types/datetime64.md) データ型に変換された `time_string` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -889,7 +922,7 @@ FORMAT PrettyCompactMonoBlock 導入バージョン: v20.1 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様の動作をしますが、処理できない日付形式に遭遇した場合は `NULL` を返します。 +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、処理できない日付形式を検出した場合は `NULL` を返します。 **構文** @@ -899,13 +932,13 @@ parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]]) **引数** -* `time_string` — 変換対象の日付、または日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — 省略可能。指定する精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 省略可能。タイムゾーン。この関数は `time_string` をこのタイムゾーンとして解釈してパースします。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日時、または日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) +* `precision` — 省略可能。要求される精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 省略可能。タイムゾーン。関数は、このタイムゾーンに従って `time_string` を解析します。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換して返します。入力をパースできない場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) +`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した値、または入力を解析できない場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) **例** @@ -927,7 +960,7 @@ SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid, 導入バージョン: v20.1 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、処理できない日付形式に遭遇した場合は、ゼロ日付またはゼロ日時を返します。 +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、解釈できない日付形式に遭遇した場合は、ゼロの日付またはゼロの日時を返します。 **構文** @@ -937,13 +970,13 @@ parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]]) **引数** -* `time_string` — 変換対象の日付、または日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — 省略可能。必要な精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルトは `3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 省略可能。タイムゾーン。関数は `time_string` をこのタイムゾーンとして解釈して解析します。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日付または日時を含む文字列。[`String`](/sql-reference/data-types/string) +* `precision` — 省略可能。要求される精度。ミリ秒は `3`、マイクロ秒は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 省略可能。タイムゾーン。この関数は指定されたタイムゾーンに従って `time_string` を解析します。[`String`](/sql-reference/data-types/string) **返される値** -`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した値、または入力を解析できない場合はゼロ日付/日時値(`1970-01-01 00:00:00.000`)を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した値を返します。入力を解析できない場合は、ゼロ日付/日時(`1970-01-01 00:00:00.000`)を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -965,7 +998,7 @@ SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid, 導入バージョン: v22.8 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、あいまいな場合には米国式の日付形式(`MM/DD/YYYY` など)を優先して解釈します。 +この関数は、あいまいさがある場合に US 日付形式(`MM/DD/YYYY` など)を優先する点を除き、[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同じです。 **構文** @@ -975,13 +1008,13 @@ parseDateTime64BestEffortUS(time_string [, precision [, time_zone]]) **引数** -* `time_string` — 変換対象の日付、または日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — 省略可。指定する精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 省略可。タイムゾーン。この関数は `time_string` をこのタイムゾーンとして解釈します。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日付または日時を表す文字列。[`String`](/sql-reference/data-types/string) +* `precision` — 省略可。必要な精度。ミリ秒は `3`、マイクロ秒は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 省略可。タイムゾーン。この関数は指定されたタイムゾーンに従って `time_string` をパースします。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -あいまいな日付表現については米国式の日付形式を優先して解釈し、`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した値を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +あいまいなケースでは US の日付フォーマットを優先して解釈し、`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換して返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -1003,7 +1036,7 @@ SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format, 導入バージョン: v22.8 -この関数は、あいまいな場合に US の日付形式(`MM/DD/YYYY` など)を優先し、処理できない日付形式に遭遇したときに `NULL` を返す点を除き、[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同じです。 +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、曖昧さがある場合には US 日付形式(`MM/DD/YYYY` など)を優先し、処理できない日付形式に遭遇した場合は `NULL` を返します。 **構文** @@ -1014,12 +1047,12 @@ parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]]) **引数** * `time_string` — 変換対象の日付、または日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — オプション。指定する精度。ミリ秒の場合は `3`、マイクロ秒の場合は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — オプション。タイムゾーン。この関数は `time_string` をこのタイムゾーンとして解釈して解析します。[`String`](/sql-reference/data-types/string) +* `precision` — 省略可。指定する精度。ミリ秒は `3`、マイクロ秒は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 省略可。タイムゾーン。この関数は指定されたタイムゾーンに従って `time_string` を解析します。[`String`](/sql-reference/data-types/string) **返り値** -米国形式を優先して `time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した値、または入力を解析できない場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) +US 形式を優先して [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換した `time_string` を返します。入力を解析できない場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) **例** @@ -1041,7 +1074,7 @@ SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us, 導入バージョン: v22.8 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、この関数はあいまいな場合に米国式の日付形式(`MM/DD/YYYY` など)を優先し、処理できない日付形式に遭遇した場合はゼロの日付またはゼロの日時を返します。 +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort) と同様ですが、あいまいな場合には US の日付形式(`MM/DD/YYYY` など)を優先し、処理できない日付形式に遭遇した場合はゼロ日付またはゼロ日時を返します。 **構文** @@ -1052,12 +1085,12 @@ parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) **引数** * `time_string` — 変換対象の日付、または日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) -* `precision` — 省略可。指定する精度。ミリ秒は `3`、マイクロ秒は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 省略可。タイムゾーン。この関数は、指定されたタイムゾーンに従って `time_string` をパースします。[`String`](/sql-reference/data-types/string) +* `precision` — 任意。要求する精度。ミリ秒は `3`、マイクロ秒は `6`。デフォルト: `3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 任意。タイムゾーン。この関数は `time_string` をこのタイムゾーンとして解釈します。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -US 形式を優先してパースした結果として、`time_string` を [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換して返します。入力をパースできない場合は、ゼロ日付/日時 (`1970-01-01 00:00:00.000`) を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +`time_string` を米国形式を優先して [`DateTime64`](../../sql-reference/data-types/datetime64.md) に変換して返します。入力をパースできない場合は、ゼロ日付/日時(`1970-01-01 00:00:00.000`)を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -1079,12 +1112,12 @@ SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us, 導入バージョン: v24.10 -Joda の日付フォーマット文字列に従って、サブ秒精度を持つ日時文字列をパースします。 +Joda 形式の日付フォーマット文字列に従って、サブ秒精度を持つ日時文字列をパースします。 -この関数は DateTime64 に対する [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) の逆関数です。 -Joda 形式のフォーマット文字列を使って `String` 引数をパースします。結果として、1900 年から 2299 年までの日時をサブ秒精度で表現できる DateTime64 型を返します。 +この関数は、DateTime64 向けの [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) の逆関数です。 +Joda 形式のフォーマット文字列を使用して `String` 型の引数をパースします。サブ秒精度を持ち、1900 年から 2299 年までの日付を表現できる DateTime64 型を返します。 -フォーマットパターンについては [Joda Time documentation](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) を参照してください。 +フォーマットパターンについては、[Joda Time のドキュメント](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) を参照してください。 **構文** @@ -1094,13 +1127,13 @@ parseDateTime64InJodaSyntax(time_string, format[, timezone]) **引数** -* `time_string` — `DateTime64` にパースされる文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` のパース方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 にパースされる文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` をどのようにパースするかを指定する、Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) * `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -Joda スタイルのフォーマット文字列に従って、入力文字列からパースされた `DateTime64` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +入力文字列を Joda 形式のフォーマット文字列に従ってパースした結果の DateTime64 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -1119,9 +1152,9 @@ SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm: ## parseDateTime64InJodaSyntaxOrNull \{#parseDateTime64InJodaSyntaxOrNull\} -導入バージョン: v24.10 +導入: v24.10 -[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) と同様ですが、パースできない日付形式に遭遇した場合は `NULL` を返します。 +[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合は `NULL` を返します。 **構文** @@ -1131,13 +1164,13 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **引数** -* `time_string` — DateTime64 に変換する対象の文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` の解析方法を指定する Joda 形式のフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 任意。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 に解析される文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` の解析方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可。タイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -入力文字列を解析して得られた DateTime64 を返します。解析に失敗した場合は NULL を返します。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +入力文字列から解析された DateTime64 を返します。解析に失敗した場合は NULL を返します。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **例** @@ -1156,9 +1189,9 @@ SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64InJodaSyntaxOrZero \{#parseDateTime64InJodaSyntaxOrZero\} -導入: v24.10 +導入バージョン: v24.10 -[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合は 0 の日付を返します。 +[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合はゼロの日時を返します。 **構文** @@ -1168,13 +1201,13 @@ parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone]) **引数** -* `time_string` — DateTime64 に変換される対象の文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` のパース方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 省略可。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 に解析する対象の文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` の解析方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — オプションのタイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** -入力文字列からパースされた DateTime64 値、またはパースに失敗した場合は 0 の DateTime64 値を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +入力文字列から解析された DateTime64、または解析に失敗した場合はゼロ値の DateTime64 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -1205,13 +1238,13 @@ parseDateTime64OrNull(time_string, format[, timezone]) **引数** -* `time_string` — DateTime64 型に解析される文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` の解析方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 省略可能。タイムゾーンを指定します。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 型にパースされる文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` のパース方法を指定する書式文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** -入力文字列から解析された DateTime64 を返します。解析に失敗した場合は NULL を返します。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +入力文字列からパースされた DateTime64 型を返し、パースに失敗した場合は NULL を返す。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **例** @@ -1232,7 +1265,7 @@ SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') 導入バージョン: v24.11 -[`parseDateTime64`](#parseDateTime64) と同様ですが、解析できない日付形式に遭遇した場合はゼロの日付を返します。 +[`parseDateTime64`](#parseDateTime64) と同様ですが、解析できない日付形式に対してはゼロ日付を返します。 **構文** @@ -1242,13 +1275,13 @@ parseDateTime64OrZero(time_string, format[, timezone]) **引数** -* `time_string` — DateTime64 に解析される文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` の解析方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — オプション。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime64 にパースする対象の文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` のパース方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -入力文字列から解析された DateTime64、または解析に失敗した場合はゼロ値の DateTime64 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +入力文字列からパースされた DateTime64 を返します。パースに失敗した場合は、値が 0 の DateTime64 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -1269,20 +1302,20 @@ SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') 導入バージョン: v1.1 -String 形式で表現された日付と時刻を DateTime データ型に変換します。 -この関数は [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)、[RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) Date and Time Specification、ClickHouse 独自のものやその他のいくつかの日付・時刻フォーマットを解析します。 +文字列形式で表現された日付と時刻を DateTime データ型に変換します。 +この関数は [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)、[RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) Date and Time Specification、ClickHouse 独自の形式およびその他のいくつかの日付と時刻の形式を解析します。 サポートされる非標準フォーマットは次のとおりです: -* 9〜10 桁の Unix タイムスタンプを含む文字列。 -* 日付と時刻の要素を含む文字列: `YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` など。 -* 日付を含み、時刻の要素を含まない文字列: `YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` など。 -* 日と時刻を含む文字列: `DD`、`DD hh`、`DD hh:mm`。この場合、`MM` は `01` に置き換えられます。 +* 9〜10 桁の UNIX タイムスタンプを含む文字列。 +* 日付と時刻の要素を持つ文字列: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` など。 +* 日付を持ち、時刻要素を持たない文字列: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` など。 +* 日と時刻を持つ文字列: `DD`, `DD hh`, `DD hh:mm`。この場合 `MM` は `01` に置き換えられます。 * 日付と時刻に加えてタイムゾーンオフセット情報を含む文字列: `YYYY-MM-DD hh:mm:ss ±h:mm` など。 -* syslog のタイムスタンプ: `Mmm dd hh:mm:ss`。例えば、`Jun 9 14:20:32`。 +* syslog のタイムスタンプ: `Mmm dd hh:mm:ss`。例: `Jun 9 14:20:32`。 -区切り文字を含むすべてのフォーマットでは、この関数は月の名称を完全な綴り、または先頭 3 文字で表したものを解析します。 -年が指定されていない場合は、現在の年と見なされます。 +区切り文字を含むすべてのフォーマットでは、月名をフルスペルまたは月名の先頭 3 文字で表記したものを解析します。 +年が指定されていない場合、現在の年と見なされます。 **構文** @@ -1292,12 +1325,12 @@ parseDateTimeBestEffort(time_string[, time_zone]) **引数** -* `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 省略可能。`time_string` をパースする際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日時を表す文字列。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) **返される値** -`time_string` を `DateTime` として返します。[`DateTime`](/sql-reference/data-types/datetime) +`time_string` を `DateTime` 型として返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1313,7 +1346,7 @@ SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort └─────────────────────────┘ ``` -**タイムゾーンあり** +**タイムゾーン指定あり** ```sql title=Query SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort @@ -1325,7 +1358,7 @@ SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') └─────────────────────────┘ ``` -**UNIX タイムスタンプ** +**Unix タイムスタンプ** ```sql title=Query SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort @@ -1342,20 +1375,20 @@ SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort 導入バージョン: v1.1 -[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様ですが、処理できない日付フォーマットに遭遇した場合には `NULL` を返します。 -この関数は [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 独自のものやその他のいくつかの日付・時刻フォーマットをパースします。 +[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様ですが、処理できない日付形式を検出した場合に `NULL` を返す点が異なります。 +この関数は [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse の独自形式およびその他のいくつかの日付・時刻形式をパースします。 -サポートされる非標準フォーマットは次のとおりです。 +サポートされる非標準形式: * 9~10 桁の Unix タイムスタンプを含む文字列。 * 日付と時刻コンポーネントを含む文字列: `YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` など。 -* 日付はあるが時刻コンポーネントがない文字列: `YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` など。 -* 日と時刻のみを含む文字列: `DD`、`DD hh`、`DD hh:mm`。この場合、`MM` は `01` に置き換えられます。 +* 日付を含むが、時刻コンポーネントを含まない文字列: `YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` など。 +* 日と時刻を含む文字列: `DD`、`DD hh`、`DD hh:mm`。この場合、`MM` は `01` に置き換えられます。 * 日付と時刻に加えてタイムゾーンオフセット情報を含む文字列: `YYYY-MM-DD hh:mm:ss ±h:mm` など。 -* syslog タイムスタンプ: `Mmm dd hh:mm:ss`。例: `Jun 9 14:20:32`。 +* syslog のタイムスタンプ: `Mmm dd hh:mm:ss`。例: `Jun 9 14:20:32`。 -区切り文字を含むすべてのフォーマットで、この関数は月名をフルスペルまたは先頭 3 文字の英字表記として解釈します。 -年が指定されていない場合は、現在の年とみなされます。 +区切り文字を含む形式では、この関数は月名をフルスペル、または月名の先頭 3 文字のいずれかとして表現されたものをパースします。 +年が指定されていない場合、現在の年とみなされます。 **構文** @@ -1365,12 +1398,12 @@ parseDateTimeBestEffortOrNull(time_string[, time_zone]) **引数** -* `time_string` — 変換対象の日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 省略可能。`time_string` を解析する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**返り値** -`time_string` を DateTime 値として返し、入力を解析できない場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) +`time_string` を DateTime として返し、入力を解析できない場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) **例** @@ -1393,19 +1426,19 @@ SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid, 導入バージョン: v1.1 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様ですが、処理できない日付形式に遭遇した場合に、ゼロ日付またはゼロ日時を返します。 -この関数は [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 独自およびその他の日付・時刻形式をパースします。 +この関数は [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 独自の形式およびその他のいくつかの日付・時刻形式を解析します。 -サポートされる非標準形式: +サポートされている非標準形式: * 9~10 桁の Unix タイムスタンプを含む文字列。 -* 日付と時刻コンポーネントを含む文字列: `YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` など。 -* 日付のみで時刻コンポーネントを含まない文字列: `YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` など。 -* 日と時刻を含む文字列: `DD`、`DD hh`、`DD hh:mm`。この場合、月(`MM`)には `01` が補われます。 -* 日付と時刻に加え、タイムゾーンオフセット情報を含む文字列: `YYYY-MM-DD hh:mm:ss ±h:mm` など。 -* syslog のタイムスタンプ: `Mmm dd hh:mm:ss`。例: `Jun 9 14:20:32`。 +* 日付と時刻コンポーネントを含む文字列: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` など。 +* 日付のみで、時刻コンポーネントを含まない文字列: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` など。 +* 日と時刻を含む文字列: `DD`, `DD hh`, `DD hh:mm`。この場合、`MM` は `01` に置き換えられます。 +* 日付と時刻に加えてタイムゾーンオフセット情報を含む文字列: `YYYY-MM-DD hh:mm:ss ±h:mm` など。 +* syslog のタイムスタンプ: `Mmm dd hh:mm:ss`。例えば `Jun 9 14:20:32`。 -区切り文字を含むすべての形式については、月名をフルスペルまたは最初の 3 文字で指定したものもパースします。 -年が指定されていない場合、現在の年と見なされます。 +区切り文字を含む形式では、この関数は月名をフルスペルまたは先頭 3 文字で表現したものとして解析します。 +年が指定されていない場合は、現在の年と見なされます。 **構文** @@ -1416,11 +1449,11 @@ parseDateTimeBestEffortOrZero(time_string[, time_zone]) **引数** * `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — オプション。`time_string` の解析時に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` を解析する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) **返される値** -`time_string` を `DateTime` として返します。解析できない場合は、ゼロの日付/日時(`1970-01-01` または `1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) +`time_string` を `DateTime` として返します。入力を解析できない場合は、ゼロの日付/日時(`1970-01-01` または `1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1442,9 +1475,9 @@ SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid, 導入バージョン: v1.1 -この関数は、`YYYY-MM-DD hh:mm:ss` のような ISO 日付形式および、`YYYYMMDDhhmmss`、`YYYY-MM`、`DD hh`、`YYYY-MM-DD hh:mm:ss ±h:mm` など、月と日の成分を曖昧さなく抽出できるその他の日付形式に対しては、[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作します。 -月と日の成分を曖昧さなく抽出できない `MM/DD/YYYY`、`MM-DD-YYYY`、`MM-DD-YY` などの形式では、`DD/MM/YYYY`、`DD-MM-YYYY`、`DD-MM-YY` ではなく、米国式の日付形式を優先します。 -前述のルールに対する例外として、月が 12 より大きく 31 以下である場合、この関数は [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) の動作にフォールバックします。たとえば `15/08/2020` は `2020-08-15` としてパースされます。 +この関数は、`YYYY-MM-DD hh:mm:ss` のような ISO 日付形式および、`YYYYMMDDhhmmss`、`YYYY-MM`、`DD hh`、`YYYY-MM-DD hh:mm:ss ±h:mm` など、月と日の成分を一意に抽出できるその他の日付形式に対しては、[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作します。 +`MM/DD/YYYY`、`MM-DD-YYYY`、`MM-DD-YY` のように、月と日の成分を一意に抽出できない形式の場合には、`DD/MM/YYYY`、`DD-MM-YYYY`、`DD-MM-YY` ではなく、米国式の日付形式を優先します。 +ただし前述の規則の例外として、月の値が 12 より大きく 31 以下の場合、この関数は [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) の動作にフォールバックします。たとえば `15/08/2020` は `2020-08-15` として解釈されます。 **構文** @@ -1455,11 +1488,11 @@ parseDateTimeBestEffortUS(time_string[, time_zone]) **引数** * `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 任意。`time_string` を解釈する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_zone` — オプション。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返り値** -あいまいな場合には US の日付形式を優先して解釈し、`time_string` を `DateTime` として返します。[`DateTime`](/sql-reference/data-types/datetime) +あいまいなケースでは US の日付形式の優先規則を用いて、`time_string` を `DateTime` として返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1481,9 +1514,9 @@ SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format, 導入バージョン: v1.1 -[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 関数と同様ですが、処理できない日付形式に出会った場合は `NULL` を返します。 +解釈できない日付形式に遭遇した場合に `NULL` を返す点を除き、[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 関数と同じです。 -この関数は ISO 日付形式に対しては [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作しますが、あいまいな場合には US 日付形式を優先し、パースエラー時には `NULL` を返します。 +この関数は ISO 日付形式に対しては [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作しますが、あいまいなケースでは US 日付形式を優先し、パースエラー時には `NULL` を返します。 **構文** @@ -1493,12 +1526,12 @@ parseDateTimeBestEffortUSOrNull(time_string[, time_zone]) **引数** -* `time_string` — 変換対象の日時を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — オプション。`time_string` を解析する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — 変換対象の日時を表す文字列。[`String`](/sql-reference/data-types/string) +* `time_zone` — 任意。`time_string` を解釈する際に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -US 形式を優先して `time_string` を DateTime 型として返すか、入力を解析できない場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) +`time_string` を US 形式の日時表記を優先して解釈し、DateTime として返します。入力をパースできない場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) **例** @@ -1520,9 +1553,9 @@ SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us, 導入バージョン: v1.1 -[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 関数と同様ですが、処理できない日付形式に遭遇した場合は、ゼロ日付(`1970-01-01`)または時刻付きゼロ日付(`1970-01-01 00:00:00`)を返す点が異なります。 +[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 関数と同様ですが、処理できない日付形式に遭遇した場合には、ゼロ日付(`1970-01-01`)または時刻付きゼロ日付(`1970-01-01 00:00:00`)を返す点が異なります。 -この関数は ISO 日付形式に対しては [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作しますが、あいまいなケースでは米国式の日付形式を優先し、パースエラー時にはゼロを返します。 +この関数は ISO 日付形式に対しては [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) と同様に動作しますが、あいまいな場合には US 日付形式を優先し、パースエラー時にはゼロを返します。 **構文** @@ -1533,11 +1566,11 @@ parseDateTimeBestEffortUSOrZero(time_string[, time_zone]) **引数** * `time_string` — 変換対象の日付と時刻を含む文字列。[`String`](/sql-reference/data-types/string) -* `time_zone` — 省略可能。`time_string` のパースに使用するタイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_zone` — 省略可能。`time_string` の解析に使用するタイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** -US 形式を優先して `time_string` を `DateTime` として返します。入力をパースできない場合はゼロの日付/日時(`1970-01-01` または `1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) +US 形式を優先して `time_string` を `DateTime` として返します。入力を解釈できない場合は、ゼロ日付/ゼロ日時(`1970-01-01` または `1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1559,12 +1592,12 @@ SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us, 導入バージョン: v23.3 -Joda の日付フォーマット文字列に従って、日付時刻文字列を構文解析します。 +Joda の日付フォーマット文字列に従って、日付と時刻の文字列をパースします。 -この関数は [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) の逆関数です。 -Joda 形式のフォーマット文字列を使用して `String` 引数を構文解析します。戻り値は `DateTime` 型です。 +この関数は [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) の逆の動作を行います。 +Joda 形式のフォーマット文字列を使用して `String` 引数をパースし、`DateTime` 型を返します。 -フォーマットパターンについては [Joda Time のドキュメント](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) を参照してください。 +フォーマットパターンについては、[Joda Time のドキュメント](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)を参照してください。 **構文** @@ -1574,13 +1607,13 @@ parseDateTimeInJodaSyntax(time_string, format[, timezone]) **引数** -* `time_string` — `DateTime` に変換される解析対象の文字列。[`String`](/sql-reference/data-types/string) +* `time_string` — `DateTime` に解析する対象の文字列。[`String`](/sql-reference/data-types/string) * `format` — `time_string` の解析方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) * `timezone` — 省略可。タイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -Joda スタイルのフォーマット文字列に従って、入力文字列から解析した `DateTime` を返します。[`DateTime`](/sql-reference/data-types/datetime) +Joda 形式のフォーマット文字列に従って入力文字列を解析し、`DateTime` を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1601,7 +1634,7 @@ SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss') 導入バージョン: v23.3 -[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) と同様ですが、パースできない日付形式に遭遇した場合は `NULL` を返します。 +[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合は `NULL` を返します。 **構文** @@ -1611,13 +1644,13 @@ parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone]) **引数** -* `time_string` — `DateTime` にパースする対象の文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` のパース方法を指定する、Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — オプション。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — `DateTime` に変換する対象の文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` の解析方法を指定する、Joda 構文で記述されたフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** -入力文字列をパースして得られた `DateTime` を返し、パースに失敗した場合は `NULL` を返します。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) +入力文字列を解析して得られた `DateTime` を返します。解析に失敗した場合は NULL を返します。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) **例** @@ -1638,7 +1671,7 @@ SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: 導入バージョン: v23.3 -[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合はゼロ日付を返します。 +[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) と同様ですが、解析できない日付形式に遭遇した場合は 0 の日付を返します。 **構文** @@ -1648,13 +1681,13 @@ parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone]) **引数** -* `time_string` — DateTime に変換するための文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` の解析方法を指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 任意。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `time_string` — `DateTime` に変換される文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` をどのようにパースするかを指定する Joda 構文のフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -入力文字列から解析された DateTime、または解析に失敗した場合はゼロの DateTime 値を返します。[`DateTime`](/sql-reference/data-types/datetime) +入力文字列からパースされた `DateTime` を返し、パースに失敗した場合は `DateTime` のゼロ値を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1673,9 +1706,9 @@ SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: ## parseDateTimeOrNull \{#parseDateTimeOrNull\} -導入: v23.3 +導入バージョン: v23.3 -[`parseDateTime`](#parseDateTime) と同様ですが、解析できない日付形式に遭遇した場合は `NULL` を返します。 +[`parseDateTime`](#parseDateTime) と同様ですが、パースできない日付形式に遭遇した場合は `NULL` を返します。 **構文** @@ -1687,13 +1720,13 @@ parseDateTimeOrNull(time_string, format[, timezone]) **引数** -* `time_string` — DateTime に解析する文字列。[`String`](/sql-reference/data-types/string) -* `format` — `time_string` をどのように解析するかを指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime に変換する対象の文字列。[`String`](/sql-reference/data-types/string) +* `format` — `time_string` の解析方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) * `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -**返り値** +**返される値** -入力文字列を解析して得られた DateTime を返します。解析に失敗した場合は NULL を返します。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) +入力文字列を解析して得られた DateTime を返す。解析に失敗した場合は NULL を返す。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) **例** @@ -1714,7 +1747,7 @@ SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') 導入バージョン: v23.3 -[`parseDateTime`](#parseDateTime) と同様ですが、解析できない日付時刻形式を検出した場合はゼロ日時を返します。 +[`parseDateTime`](#parseDateTime) と同様ですが、解析できない日付形式に遭遇した場合はゼロ日付を返します。 **構文** @@ -1724,13 +1757,13 @@ parseDateTimeOrZero(time_string, format[, timezone]) **引数** -* `time_string` — `DateTime` として解釈する文字列。[`String`](/sql-reference/data-types/string) +* `time_string` — DateTime に解析される文字列。[`String`](/sql-reference/data-types/string) * `format` — `time_string` の解析方法を指定するフォーマット文字列。[`String`](/sql-reference/data-types/string) -* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能なタイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -入力文字列から解析された `DateTime` を返します。解析に失敗した場合はゼロ値の `DateTime` を返します。[`DateTime`](/sql-reference/data-types/datetime) +入力文字列から解析された DateTime、または解析に失敗した場合は 0 の DateTime 値を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -1749,9 +1782,9 @@ SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## reinterpret \{#reinterpret\} -導入バージョン: v1.1 +導入: v1.1 -指定された値 `x` のメモリ上のバイト列をそのまま使用し、変換先の型として再解釈します。 +与えられた値 `x` のメモリ上の同一のバイト列をそのまま利用し、それを変換先の型として再解釈します。 **構文** @@ -1761,8 +1794,8 @@ reinterpret(x, type) **引数** -* `x` — 任意の型。[`Any`](/sql-reference/data-types) -* `type` — 変換先の型。配列である場合、その配列要素の型は固定長型である必要があります。[`String`](/sql-reference/data-types/string) +* `x` — 任意のデータ型。[`Any`](/sql-reference/data-types) +* `type` — 変換先の型。配列の場合、配列要素の型は固定長型である必要があります。[`String`](/sql-reference/data-types/string) **戻り値** @@ -1801,7 +1834,7 @@ SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS str 導入バージョン: v1.1 -入力値を、Unix エポック 1970-01-01 の開始時点からの経過日数を表す Date 値として(リトルエンディアン順であると仮定して)再解釈します。 +入力値を、リトルエンディアン順であると仮定して、Date 型の値として再解釈します。これは Unix エポックである 1970-01-01 からの経過日数を表します。 **構文** @@ -1811,7 +1844,7 @@ reinterpretAsDate(x) **引数** -* `x` — Unix エポックの開始からの経過日数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UNIX エポックの開始からの日数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** @@ -1836,7 +1869,7 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A') 導入バージョン: v1.1 -入力値を DateTime 値として再解釈します(リトルエンディアンでの格納を想定)。Unix エポックである 1970-01-01 の開始時点からの経過日数として扱われます。 +入力値を、Unix エポック(1970-01-01)の開始からの経過日数を表す DateTime 値として(リトルエンディアン順であると仮定して)再解釈します。 **構文** @@ -1846,9 +1879,9 @@ reinterpretAsDateTime(x) **引数** -* `x` — Unix エポックの開始からの経過秒数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) のいずれか +* `x` — Unix エポックの開始からの経過秒数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返される値** 日付と時刻。[`DateTime`](/sql-reference/data-types/datetime) @@ -1871,8 +1904,8 @@ SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A') 導入バージョン: v1.1 -入力値を固定長の文字列として再解釈します(リトルエンディアン順を仮定します)。 -末尾のヌルバイトは無視されます。たとえば、この関数は UInt32 値 255 に対して、1 文字だけから成る文字列を返します。 +入力値を固定長文字列として再解釈します(リトルエンディアン順を前提とします)。 +末尾のヌルバイトは無視されます。例えば、UInt32 値 255 に対しては、1 文字だけから成る文字列を返します。 **構文** @@ -1882,11 +1915,11 @@ reinterpretAsFixedString(x) **引数** -* `x` — 文字列として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、または [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 文字列として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) **返される値** -`x` を表すバイト列を含む固定長文字列。[`FixedString`](/sql-reference/data-types/fixedstring) +`x` を表すバイト列を格納する固定長文字列型。[`FixedString`](/sql-reference/data-types/fixedstring) **例** @@ -1909,7 +1942,7 @@ SELECT 導入バージョン: v1.1 -入力値を `Float32` 型として再解釈します。 +入力値を `Float32` 型の値として再解釈します。 [`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。 **構文** @@ -1922,9 +1955,9 @@ reinterpretAsFloat32(x) * `x` — Float32 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返される値** -再解釈された `x` の値を返します。[`Float32`](/sql-reference/data-types/float) +再解釈された値 `x` を返します。[`Float32`](/sql-reference/data-types/float) **例** @@ -1943,10 +1976,10 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x) ## reinterpretAsFloat64 \{#reinterpretAsFloat64\} -導入: v1.1 +導入バージョン: v1.1 -入力値を `Float64` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値の保持を試みません。対象の型で入力値を表現できない場合、結果は未定義です。 +入力値を `Float64` 型として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、出力は未定義になります。 **構文** @@ -1956,11 +1989,11 @@ reinterpretAsFloat64(x) **引数** -* `x` — Float64 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string)、または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Float64 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** -再解釈された値 `x` を返します。[`Float64`](/sql-reference/data-types/float) +再解釈した値 `x` を返します。[`Float64`](/sql-reference/data-types/float) **例** @@ -1979,10 +2012,10 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) ## reinterpretAsInt128 \{#reinterpretAsInt128\} -導入バージョン: v1.1 +導入: v1.1 -入力値を `Int128` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。変換先の型が入力の型を表現できない場合、出力は未定義になります。 +入力値を Int128 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとは試みません。対象の型が入力の型を表現できない場合、出力は未定義です。 **構文** @@ -1992,11 +2025,11 @@ reinterpretAsInt128(x) **引数** -* `x` — Int128 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int128 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返り値** -再解釈された `x` の値を返します。[`Int128`](/sql-reference/data-types/int-uint) +`x` を再解釈した値を返します。[`Int128`](/sql-reference/data-types/int-uint) **例** @@ -2019,10 +2052,10 @@ SELECT ## reinterpretAsInt16 \{#reinterpretAsInt16\} -導入バージョン: v1.1 +導入されたバージョン: v1.1 -入力値を型 `Int16` の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象の型で入力値を表現できない場合、結果は未定義です。 +入力値を Int16 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。ターゲット型が入力値を表現できない場合、出力は未定義となります。 **構文** @@ -2034,9 +2067,9 @@ reinterpretAsInt16(x) * `x` — Int16 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返される値** -`x` を Int16 型として再解釈した値を返します。[`Int16`](/sql-reference/data-types/int-uint) +Int16 型として再解釈された値 `x` を返します。[`Int16`](/sql-reference/data-types/int-uint) **例** @@ -2061,8 +2094,8 @@ SELECT 導入バージョン: v1.1 -入力値を Int256 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力の値を表現できない場合、出力は未定義です。 +入力値を `Int256` 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。 **構文** @@ -2076,7 +2109,7 @@ reinterpretAsInt256(x) **戻り値** -再解釈された値 `x` を返します。[`Int256`](/sql-reference/data-types/int-uint) +Int256 として再解釈した値 `x` を返します。[`Int256`](/sql-reference/data-types/int-uint) **例** @@ -2102,7 +2135,7 @@ SELECT 導入バージョン: v1.1 入力値を `Int32` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値の保持を試みません。対象の型が入力の値を表現できない場合、結果は未定義です。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。ターゲット型が入力値を表現できない場合、戻り値は未定義です。 **構文** @@ -2112,11 +2145,11 @@ reinterpretAsInt32(x) **引数** -* `x` — Int32 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int32 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) のいずれか。 -**返される値** +**返り値** -再解釈された `x` の値を返します。型は [`Int32`](/sql-reference/data-types/int-uint) です。 +再解釈された `x` の値を返します。[`Int32`](/sql-reference/data-types/int-uint) **例** @@ -2141,8 +2174,8 @@ SELECT 導入バージョン: v1.1 -入力値を `Int64` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、出力は未定義です。 +入力値を型 `Int64` の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型で入力値を表現できない場合、出力は未定義です。 **構文** @@ -2152,11 +2185,11 @@ reinterpretAsInt64(x) **引数** -* `x` — Int64 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring) のいずれか。 +* `x` — Int64 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返される値** -再解釈後の値 `x` を返します。[`Int64`](/sql-reference/data-types/int-uint) +`x` を再解釈した値を返します。[`Int64`](/sql-reference/data-types/int-uint) **例** @@ -2181,8 +2214,8 @@ SELECT 導入バージョン: v1.1 -入力値を Int8 型として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象の型が入力の値を表現できない場合、出力は未定義となります。 +入力値を Int8 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値の保持を試みません。ターゲット型が入力値を表現できない場合、出力は未定義となります。 **構文** @@ -2192,11 +2225,11 @@ reinterpretAsInt8(x) **引数** -* `x` — Int8 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring) のいずれか。 +* `x` — Int8 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**戻り値** +**返される値** -再解釈された値 `x` を返します。型は [`Int8`](/sql-reference/data-types/int-uint) です。 +再解釈後の値 `x` を返します。[`Int8`](/sql-reference/data-types/int-uint) **例** @@ -2221,8 +2254,8 @@ SELECT 導入バージョン: v1.1 -入力値を文字列として再解釈します(バイト順はリトルエンディアンを前提とします)。 -末尾のヌルバイトは無視されます。たとえば、UInt32 値 255 に対しては、1 文字だけからなる文字列を返します。 +入力値を文字列として再解釈します(リトルエンディアン順を前提とします)。 +末尾のヌルバイトは無視されます。たとえば、この関数は UInt32 の値 255 に対して、1 文字だけからなる文字列を返します。 **構文** @@ -2236,7 +2269,7 @@ reinterpretAsString(x) **戻り値** -`x` のバイト表現を含む文字列。[`String`](/sql-reference/data-types/string) +`x` を表すバイト列を含む文字列。[`String`](/sql-reference/data-types/string) **例** @@ -2257,10 +2290,10 @@ SELECT ## reinterpretAsUInt128 \{#reinterpretAsUInt128\} -導入: v1.1 +導入バージョン: v1.1 入力値を型 `UInt128` の値として再解釈します。 -[`CAST`](#CAST) とは異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力値の型を表現できない場合、結果は未定義となります。 **構文** @@ -2272,9 +2305,9 @@ reinterpretAsUInt128(x) * `x` — UInt128 として再解釈される値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**返り値** +**返される値** -再解釈された値 `x` を返します。[`UInt128`](/sql-reference/data-types/int-uint) +再解釈後の値 `x` を返します。型は [`UInt128`](/sql-reference/data-types/int-uint) です。 **例** @@ -2299,8 +2332,8 @@ SELECT 導入バージョン: v1.1 -入力値を `UInt16` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。ターゲット型が入力値を表現できない場合、出力は未定義となります。 +入力値を UInt16 型の値として再解釈します。 +[`CAST`](#CAST) とは異なり、この関数は元の値を保持しようとはしません。対象の型が入力値の型を表現できない場合、出力は未定義です。 **構文** @@ -2310,11 +2343,11 @@ reinterpretAsUInt16(x) **引数** -* `x` — UInt16 として再解釈する対象の値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt16 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string)、または [`FixedString`](/sql-reference/data-types/fixedstring) のいずれか。 **戻り値** -再解釈された `x` の値を返します。[`UInt16`](/sql-reference/data-types/int-uint) +再解釈した値 `x` を返します。[`UInt16`](/sql-reference/data-types/int-uint) **例** @@ -2339,8 +2372,8 @@ SELECT 導入バージョン: v1.1 -入力値を `UInt256` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。ターゲット型で入力値を表現できない場合、出力は未定義です。 +入力値を UInt256 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象の型が入力値を表現できない場合、結果は未定義です。 **構文** @@ -2350,11 +2383,11 @@ reinterpretAsUInt256(x) **引数** -* `x` — UInt256 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string)、または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt256 として再解釈する値です。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** -再解釈後の値 `x` を返します。型は [`UInt256`](/sql-reference/data-types/int-uint) です。 +再解釈した値 `x` を返します。[`UInt256`](/sql-reference/data-types/int-uint) **例** @@ -2379,8 +2412,8 @@ SELECT 導入バージョン: v1.1 -入力値を `UInt32` 型として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。変換先の型が入力値を表現できない場合、出力は未定義です。 +入力値を `UInt32` 型の値として再解釈します。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとはしません。対象型が入力の型を表現できない場合、出力は未定義です。 **構文** @@ -2390,11 +2423,11 @@ reinterpretAsUInt32(x) **引数** -* `x` — UInt32 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt32 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**返り値** +**戻り値** -再解釈した値 `x` を返します。[`UInt32`](/sql-reference/data-types/int-uint) +`x` を UInt32 として再解釈した値を返します。[`UInt32`](/sql-reference/data-types/int-uint) **例** @@ -2420,7 +2453,7 @@ SELECT 導入バージョン: v1.1 入力値を `UInt64` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値の保持を試みません。対象の型が入力値の型を表現できない場合、結果は未定義です。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。 **構文** @@ -2430,7 +2463,7 @@ reinterpretAsUInt64(x) **引数** -* `x` — UInt64 型として再解釈する値。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt64 として再解釈される値。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** @@ -2457,10 +2490,10 @@ SELECT ## reinterpretAsUInt8 \{#reinterpretAsUInt8\} -導入バージョン: v1.1 +導入: v1.1 入力値を `UInt8` 型の値として再解釈します。 -[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型が入力値を表現できない場合、出力は未定義です。 +[`CAST`](#CAST) と異なり、この関数は元の値を保持しようとしません。対象の型で入力値を表現できない場合、出力は未定義となります。 **構文** @@ -2470,11 +2503,11 @@ reinterpretAsUInt8(x) **引数** -* `x` — UInt8 として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt8 型として再解釈する値。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`UUID`](/sql-reference/data-types/uuid) または [`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**返り値** +**戻り値** -再解釈された値 `x` を返します。型は [`UInt8`](/sql-reference/data-types/int-uint) です。 +再解釈後の値 `x` を返します。型は [`UInt8`](/sql-reference/data-types/int-uint) です。 **例** @@ -2497,9 +2530,9 @@ SELECT ## reinterpretAsUUID \{#reinterpretAsUUID\} -導入: v1.1 +導入バージョン: v1.1 -16 バイトの文字列を受け取り、各 8 バイトの部分をリトルエンディアンのバイト順として解釈して UUID を返します。文字列が十分な長さでない場合、この関数は末尾に不足分のヌルバイトがパディングされたかのように動作します。文字列が 16 バイトより長い場合、末尾の余分なバイトは無視されます。 +16 バイトの文字列を受け取り、前後それぞれ 8 バイトの部分をリトルエンディアンのバイト順として解釈して UUID を返します。文字列が十分な長さでない場合は、末尾に必要な数のヌルバイトがパディングされたかのように動作します。文字列が 16 バイトより長い場合は、末尾の余分なバイトは無視されます。 **構文** @@ -2509,7 +2542,7 @@ reinterpretAsUUID(fixed_string) **引数** -* `fixed_string` — ビッグエンディアンのバイト列。[`FixedString`](/sql-reference/data-types/fixedstring) +* `fixed_string` — ビッグエンディアン形式のバイト列。[`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** @@ -2517,7 +2550,7 @@ UUID 型の値。[`UUID`](/sql-reference/data-types/uuid) **例** -**String から UUID への変換** +**文字列から UUID への変換** ```sql title=Query SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f'))) @@ -2550,11 +2583,11 @@ toBFloat16(expr) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。 [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。 [`Expression`](/sql-reference/data-types/special-data-types/expression) -**返される値** +**戻り値** -16 ビットの brain-float 値を返します。 [`BFloat16`](/sql-reference/data-types/float) +16ビットの brain-float 型の値を返します。 [`BFloat16`](/sql-reference/data-types/float) **例** @@ -2579,8 +2612,8 @@ toBFloat16('42.7'): 42.5 導入バージョン: v1.1 -`String` 型の入力値を `BFloat16` 型の値に変換します。 -文字列が浮動小数点値を表していない場合、この関数は `NULL` を返します。 +String 型の入力値を BFloat16 型の値に変換します。 +文字列が浮動小数点値を表していない場合、この関数は NULL を返します。 サポートされる引数: @@ -2589,16 +2622,16 @@ toBFloat16('42.7'): 42.5 サポートされない引数(`NULL` を返す): * 2 進数および 16 進数を表す文字列。 -* 数値型の値。 +* 数値型の引数。 :::note -この関数は、文字列表現からの変換時に精度が暗黙的に失われることを許容します。 +この関数では、文字列表現から変換する際に発生する精度の損失を暗黙的に許容します。 ::: 関連項目: -* [`toBFloat16`](#toBFloat16). -* [`toBFloat16OrZero`](#toBFloat16OrZero). +* [`toBFloat16`](#toBFloat16)。 +* [`toBFloat16OrZero`](#toBFloat16OrZero)。 **構文** @@ -2608,11 +2641,11 @@ toBFloat16OrNull(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -16 ビットの bfloat16 値を返し、それ以外の場合は `NULL`。[`BFloat16`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) +16 ビットの brain-float 値を返し、それ以外の場合は `NULL` を返します。[`BFloat16`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) **例** @@ -2635,20 +2668,20 @@ SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments 導入バージョン: v1.1 -String 型の入力値を BFloat16 型の値に変換します。 +文字列の入力値を BFloat16 型の値に変換します。 文字列が浮動小数点値を表していない場合、この関数はゼロを返します。 サポートされる引数: -* 数値を表す文字列表現。 +* 数値を表す文字列。 サポートされない引数(`0` を返す): -* 2 進数および 16 進数を表す文字列表現。 -* 数値型の値。 +* 2 進数および 16 進数値を表す文字列。 +* 数値の値。 :::note -この関数では、文字列表現からの変換時に精度が失われてもエラーにはなりません。 +この関数は、文字列表現から変換する際の精度のサイレントな損失を許容します。 ::: 関連項目: @@ -2664,11 +2697,11 @@ toBFloat16OrZero(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -16ビットの brain-float 値を返し、それ以外の場合は `0` を返します。[`BFloat16`](/sql-reference/data-types/float) +16ビットの bfloat16 値を返し、それ以外の場合は `0` を返します。[`BFloat16`](/sql-reference/data-types/float) **例** @@ -2689,9 +2722,9 @@ SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments ## toBool \{#toBool\} -導入: v22.2 +導入バージョン: v22.2 -入力値を Bool 型に変換します。 +入力値を Bool 型の値に変換します。 **構文** @@ -2701,11 +2734,11 @@ toBool(expr) **引数** -* `expr` — 数値または文字列を返す式。文字列の場合は、'true' または 'false'(大文字小文字は区別しない)を受け取ります。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) または [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値または文字列を返す式。文字列の場合、'true' または 'false'(大文字小文字は区別されません)を受け付けます。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) または [`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -引数の評価結果に応じて `true` または `false` を返します。[`Bool`](/sql-reference/data-types/boolean) +引数を評価した結果に基づき、`true` または `false` を返します。[`Bool`](/sql-reference/data-types/boolean) **例** @@ -2737,7 +2770,7 @@ toBool('FALSE'): false 導入バージョン: v1.1 入力値を型 [`Date`](/sql-reference/data-types/date) に変換します。 -String、FixedString、DateTime、数値型からの変換をサポートします。 +String、FixedString、DateTime、または数値型からの変換をサポートします。 **構文** @@ -2747,11 +2780,11 @@ toDate(x) **引数** -* `x` — 変換する入力値。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`DateTime`](/sql-reference/data-types/datetime) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`DateTime`](/sql-reference/data-types/datetime)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) のいずれか。 -**戻り値** +**返り値** -変換後の値を返します。[`Date`](/sql-reference/data-types/date) +変換後の入力値を返します。[`Date`](/sql-reference/data-types/date) **例** @@ -2765,7 +2798,7 @@ SELECT toDate('2025-04-15') 2025-04-15 ``` -**DateTime を Date に変換** +**DateTime 型から Date 型への変換** ```sql title=Query SELECT toDate(toDateTime('2025-04-15 10:30:00')) @@ -2775,7 +2808,7 @@ SELECT toDate(toDateTime('2025-04-15 10:30:00')) 2025-04-15 ``` -**整数を日付に変換** +**整数からDateへの変換** ```sql title=Query SELECT toDate(20297) @@ -2791,8 +2824,8 @@ SELECT toDate(20297) 導入バージョン: v21.9 引数を [Date32](../data-types/date32.md) データ型に変換します。 -値が範囲外の場合、`toDate32` は [Date32](../data-types/date32.md) でサポートされている境界値を返します。 -引数が [`Date`](../data-types/date.md) 型の場合は、その型の範囲制約が考慮されます。 +値が範囲外の場合、`toDate32` は [Date32](../data-types/date32.md) でサポートされる境界値を返します。 +引数が [`Date`](../data-types/date.md) 型の場合、その型の有効範囲が考慮されます。 **構文** @@ -2802,15 +2835,15 @@ toDate32(expr) **引数** -* `expr` — 変換する値。[`String`](/sql-reference/data-types/string) または [`UInt32`](/sql-reference/data-types/int-uint) または [`Date`](/sql-reference/data-types/date) +* `expr` — 変換対象の値。[`String`](/sql-reference/data-types/string) または [`UInt32`](/sql-reference/data-types/int-uint) または [`Date`](/sql-reference/data-types/date) -**戻り値** +**返される値** カレンダー上の日付を返します。[`Date32`](/sql-reference/data-types/date32) **例** -**範囲内の例** +**範囲内** ```sql title=Query SELECT toDate32('2025-01-01') AS value, toTypeName(value) @@ -2841,9 +2874,9 @@ toTypeName(value): Date32 ## toDate32OrDefault \{#toDate32OrDefault\} -導入バージョン: v21.11 +導入: v21.11 -引数を [Date32](../data-types/date32.md) データ型に変換します。値が範囲外の場合、`toDate32OrDefault` は [Date32](../data-types/date32.md) でサポートされている下限値を返します。引数が [Date](../data-types/date.md) 型の場合は、その型の範囲制限も考慮されます。不正な引数が渡された場合はデフォルト値を返します。 +引数を [Date32](../data-types/date32.md) データ型に変換します。値が範囲外の場合、`toDate32OrDefault` は [Date32](../data-types/date32.md) でサポートされている下限値を返します。引数が [Date](../data-types/date.md) 型の場合は、その型の有効な範囲も考慮されます。無効な引数が指定された場合はデフォルト値を返します。 **構文** @@ -2853,12 +2886,12 @@ toDate32OrDefault(expr[, default]) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。パースに失敗した場合に返すデフォルト値。[`Date32`](/sql-reference/data-types/date32) +* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。解析に失敗した場合に返す既定値。[`Date32`](/sql-reference/data-types/date32) **戻り値** -成功した場合は `Date32` 型の値を返し、失敗した場合はデフォルト値が指定されていればそれを、指定されていなければ 1900-01-01 を返します。[`Date32`](/sql-reference/data-types/date32) +成功した場合は `Date32` 型の値を返し、失敗した場合は、指定されていればデフォルト値を、指定されていなければ 1900-01-01 を返します。[`Date32`](/sql-reference/data-types/date32) **例** @@ -2872,7 +2905,7 @@ SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01')) 1930-01-01 ``` -**変換失敗** +**変換に失敗** ```sql title=Query SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) @@ -2887,8 +2920,8 @@ SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) 導入バージョン: v21.9 -入力値を `Date32` 型の値に変換しますが、無効な引数を受け取った場合は `NULL` を返します。 -[`toDate32`](#toDate32) と同様ですが、無効な引数を受け取った場合に `NULL` を返す点が異なります。 +入力値を型 `Date32` の値に変換しますが、不正な引数が渡された場合は `NULL` を返します。 +[`toDate32`](#toDate32) と同様ですが、不正な引数が渡された場合には `NULL` を返します。 **構文** @@ -2898,11 +2931,11 @@ toDate32OrNull(x) **引数** -* `x` — 日付の文字列表現を含む文字列。[`String`](/sql-reference/data-types/string) +* `x` — 日付を表す文字列。[`String`](/sql-reference/data-types/string) **戻り値** -処理が成功した場合は Date32 の値を返し、そうでない場合は `NULL` を返します。[`Date32`](/sql-reference/data-types/date32) または [`NULL`](/sql-reference/syntax#null) +成功した場合は Date32 型の値を返し、失敗した場合は `NULL` を返します。[`Date32`](/sql-reference/data-types/date32) または [`NULL`](/sql-reference/syntax#null) **例** @@ -2921,10 +2954,10 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') ## toDate32OrZero \{#toDate32OrZero\} -導入: v21.9 +導入バージョン: v21.9 -入力値を [Date32](../data-types/date32.md) 型の値に変換しますが、無効な引数が渡された場合は [Date32](../data-types/date32.md) の下限値を返します。 -[toDate32](#toDate32) と同様に動作しますが、無効な引数が渡された場合は [Date32](../data-types/date32.md) の下限値を返します。 +入力値を [Date32](../data-types/date32.md) 型の値に変換しますが、無効な引数を受け取った場合は [Date32](../data-types/date32.md) の下限値を返します。 +[toDate32](#toDate32) と同様ですが、無効な引数を受け取った場合に [Date32](../data-types/date32.md) の下限値を返します。 関連項目: @@ -2940,11 +2973,11 @@ toDate32OrZero(x) **引数** -* `x` — 日付の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 日付を表す文字列。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は Date32 型の値を返し、それ以外の場合は Date32 の下限値(`1900-01-01`)を返します。[`Date32`](/sql-reference/data-types/date32) +成功した場合は Date32 型の値を返し、それ以外の場合は Date32 型の下限値(`1900-01-01`)を返します。[`Date32`](/sql-reference/data-types/date32) **例** @@ -2965,7 +2998,7 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') 導入バージョン: v21.11 -[toDate](#toDate) と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は第 2 引数が指定されていればその値、指定されていなければ [Date](../data-types/date.md) 型の下限値です。 +[toDate](#toDate) と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、第 2 引数が指定されている場合はその値、指定されていない場合は [Date](../data-types/date.md) の下限値です。 **構文** @@ -2975,16 +3008,16 @@ toDateOrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) * `default` — 省略可能。パースに失敗した場合に返すデフォルト値。[`Date`](/sql-reference/data-types/date) **戻り値** -変換に成功した場合は型 `Date` の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 1970-01-01 を返します。[`Date`](/sql-reference/data-types/date) +成功した場合は `Date` 型の値を返し、失敗した場合は指定されていればデフォルト値、指定されていなければ 1970-01-01 を返します。[`Date`](/sql-reference/data-types/date) **例** -**変換が成功する例** +**正常に変換できた例** ```sql title=Query SELECT toDateOrDefault('2022-12-30') @@ -2994,7 +3027,7 @@ SELECT toDateOrDefault('2022-12-30') 2022-12-30 ``` -**変換に失敗** +**変換失敗** ```sql title=Query SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) @@ -3009,8 +3042,8 @@ SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) 導入バージョン: v1.1 -入力値を `Date` 型の値に変換しますが、不正な引数が渡された場合は `NULL` を返します。 -[`toDate`](#toDate) と同様ですが、不正な引数が渡された場合に `NULL` を返します。 +入力値を型 `Date` の値に変換しますが、無効な引数が指定された場合は `NULL` を返します。 +[`toDate`](#toDate) と同様ですが、無効な引数が指定された場合に `NULL` を返します。 **構文** @@ -3020,11 +3053,11 @@ toDateOrNull(x) **引数** -* `x` — 日付を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 日付の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は [`Date`](/sql-reference/data-types/date) の値を返し、それ以外の場合は [`NULL`](/sql-reference/syntax#null) を返します。 +成功した場合は Date 型の値を返し、そうでない場合は `NULL` を返します。[`Date`](/sql-reference/data-types/date) または [`NULL`](/sql-reference/syntax#null) **例** @@ -3045,8 +3078,8 @@ SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid') 導入バージョン: v1.1 -入力値を[`Date`](../data-types/date.md)型の値に変換しますが、無効な引数が渡された場合は[`Date`](../data-types/date.md)型の下限値を返します。 -[toDate](#toDate)と同様の動作をしますが、無効な引数が渡された場合に[`Date`](../data-types/date.md)型の下限値を返します。 +入力値を[`Date`](../data-types/date.md)型の値に変換しますが、無効な引数を受け取った場合は[`Date`](../data-types/date.md)の下限値を返します。 +[toDate](#toDate)と同様ですが、無効な引数を受け取った場合に[`Date`](../data-types/date.md)の下限値を返します。 関連項目: @@ -3064,7 +3097,7 @@ toDateOrZero(x) * `x` — 日付を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** 成功した場合は `Date` 型の値を返し、失敗した場合は `Date` 型の下限値(`1970-01-01`)を返します。[`Date`](/sql-reference/data-types/date) @@ -3085,14 +3118,14 @@ SELECT toDateOrZero('2025-12-30'), toDateOrZero('') ## toDateTime \{#toDateTime\} -導入: v1.1 +導入バージョン: v1.1 入力値を型 [DateTime](../data-types/datetime.md) に変換します。 :::note -`expr` が数値の場合、Unix エポックの開始からの経過秒数(Unix タイムスタンプ)として解釈されます。 -`expr` が [String](../data-types/string.md) の場合、Unix タイムスタンプ、または日付 / 日付と時刻の文字列表現として解釈されることがあります。 -そのため、短い数値文字列(4桁以下)のパースは曖昧さのため明示的に無効化されています。たとえば、文字列 `'1999'` は、年(Date / DateTime の不完全な文字列表現)にも、Unix タイムスタンプにもなり得ます。より長い数値文字列は許可されます。 +`expr` が数値の場合、Unix エポックの開始時点からの秒数(Unix タイムスタンプ)として解釈されます。 +`expr` が [String](../data-types/string.md) の場合、Unix タイムスタンプとして、または日付 / 日付と時刻の文字列表現として解釈されることがあります。 +そのため、短い数値の文字列表現(最大 4 桁)のパースはあいまいさのため明示的に無効化されています。例えば、文字列 `'1999'` は年(Date / DateTime の不完全な文字列表現)とも Unix タイムスタンプとも解釈できるためです。より長い数値文字列は許可されています。 ::: **構文** @@ -3103,7 +3136,7 @@ toDateTime(expr[, time_zone]) **引数** -* `expr` — 値。[`String`](/sql-reference/data-types/string)、[`Int`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime) のいずれか。 +* `expr` — 値。[`String`](/sql-reference/data-types/string) または [`Int`](/sql-reference/data-types/int-uint) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) * `time_zone` — タイムゾーン。[`String`](/sql-reference/data-types/string) **戻り値** @@ -3133,7 +3166,7 @@ toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00 入力値を `DateTime` 型に変換します。 `String`、`FixedString`、`Date`、`Date32`、`DateTime`、または数値型(`(U)Int*`、`Float*`、`Decimal`)からの変換をサポートします。 -DateTime32 は `DateTime` と比較してより広い範囲を扱うことができ、`1900-01-01` から `2299-12-31` までの日付をサポートします。 +DateTime32 は `DateTime` と比較してより広い有効範囲を持ち、`1900-01-01` から `2299-12-31` までの日付を扱うことができます。 **構文** @@ -3144,11 +3177,11 @@ toDateTime32(x[, timezone]) **引数** * `x` — 変換する入力値。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`DateTime64`](/sql-reference/data-types/datetime64) -* `timezone` — 省略可能。返される `DateTime` 値のタイムゾーンを表します。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。返される `DateTime` 値のタイムゾーンを表す値。[`String`](/sql-reference/data-types/string) **返される値** -変換後の値を返します。[`DateTime`](/sql-reference/data-types/datetime) +変換された入力値を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -3164,7 +3197,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**指定した精度の10進数として** +**指定した精度の十進小数として** ```sql title=Query SELECT toDateTime64(1735689600.000, 3) AS value, toTypeName(value); @@ -3181,7 +3214,7 @@ SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────┘ ``` -**タイムゾーン付き** +**タイムゾーンあり** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); @@ -3198,7 +3231,7 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN 導入バージョン: v20.1 -入力値を [`DateTime64`](../data-types/datetime64.md) 型に変換します。 +入力値を[`DateTime64`](../data-types/datetime64.md)型に変換します。 **構文** @@ -3208,17 +3241,17 @@ toDateTime64(expr, scale[, timezone]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式です。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `scale` — ティックサイズ(精度)。10^(-scale) 秒です。[`UInt8`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可能。指定された `DateTime64` オブジェクトのタイムゾーンです。[`String`](/sql-reference/data-types/string) +* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `scale` — ティックサイズ(精度):10^(-scale) 秒。[`UInt8`](/sql-reference/data-types/int-uint) +* `timezone` — 省略可能。指定された `DateTime64` オブジェクトのタイムゾーン。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -サブ秒精度を持つ日付と時刻を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +サブ秒精度を持つ暦の日付と時刻を返します。[`DateTime64`](/sql-reference/data-types/datetime64) -**使用例** +**例** -**値が範囲内の場合** +**値が範囲内にある場合** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3230,7 +3263,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**精度指定付きの Decimal として** +**精度指定の Decimal 型として** ```sql title=Query SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value); @@ -3262,8 +3295,8 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN 導入バージョン: v21.11 [toDateTime64](#toDateTime64) と同様に、この関数は入力値を [DateTime64](../data-types/datetime64.md) 型の値に変換しますが、 -無効な引数が渡された場合には、[DateTime64](../data-types/datetime64.md) のデフォルト値 -または指定されたデフォルト値を返します。 +無効な引数を受け取った場合は [DateTime64](../data-types/datetime64.md) のデフォルト値 +または指定されたデフォルト値のいずれかを返します。 **構文** @@ -3273,18 +3306,18 @@ toDateTime64OrDefault(expr, scale[, timezone, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `scale` — ティックサイズ(精度):10^-precision 秒。[`UInt8`](/sql-reference/data-types/int-uint) -* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) -* `default` — 省略可能。解析に失敗した場合に返すデフォルト値。[`DateTime64`](/sql-reference/data-types/datetime64) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `scale` — ティックサイズ(精度)。10^-precision 秒。[`UInt8`](/sql-reference/data-types/int-uint) +* `timezone` — オプション。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `default` — オプション。解析に失敗した場合に返すデフォルト値。[`DateTime64`](/sql-reference/data-types/datetime64) **戻り値** -成功した場合は `DateTime64` 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 1970-01-01 00:00:00.000 を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +成功した場合は `DateTime64` 型の値を返し、失敗した場合は指定されていればデフォルト値を返し、指定されていなければ `1970-01-01 00:00:00.000` を返す。[`DateTime64`](/sql-reference/data-types/datetime64) -**使用例** +**例** -**成功した変換の例** +**変換が成功する例** ```sql title=Query SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3) @@ -3294,7 +3327,7 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3) 1976-10-18 00:00:00.300 ``` -**変換に失敗した例** +**変換に失敗** ```sql title=Query SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3)) @@ -3309,8 +3342,8 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2 導入バージョン: v20.1 -入力値を `DateTime64` 型の値に変換しますが、無効な引数が指定された場合は `NULL` を返します。 -`toDateTime64` と同様ですが、無効な引数が指定された場合は `NULL` を返します。 +入力値を `DateTime64` 型に変換しますが、不正な引数が渡された場合は `NULL` を返します。 +これは `toDateTime64` と同様ですが、不正な引数が渡された場合には `NULL` を返します。 **構文** @@ -3320,11 +3353,11 @@ toDateTime64OrNull(x) **引数** -* `x` — 時刻およびサブ秒精度を含む日時の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 時刻およびサブ秒精度を含む日付の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は DateTime64 型の値を返し、そうでない場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) +成功した場合は DateTime64 型の値を返し、失敗した場合は `NULL` を返します。[`DateTime64`](/sql-reference/data-types/datetime64) または [`NULL`](/sql-reference/syntax#null) **例** @@ -3343,12 +3376,12 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali ## toDateTime64OrZero \{#toDateTime64OrZero\} -導入: v20.1 +導入バージョン: v20.1 -入力値を [DateTime64](../data-types/datetime64.md) 型の値に変換しますが、不正な引数が指定された場合は [DateTime64](../data-types/datetime64.md) の最小値を返します。 -これは [toDateTime64](#toDateTime64) と同様ですが、不正な引数が指定された場合に [DateTime64](../data-types/datetime64.md) の最小値を返します。 +入力値を型 [DateTime64](../data-types/datetime64.md) の値に変換しますが、不正な引数を受け取った場合は [DateTime64](../data-types/datetime64.md) の下限値を返します。 +[toDateTime64](#toDateTime64) と同様で、不正な引数を受け取った場合に [DateTime64](../data-types/datetime64.md) の下限値を返します。 -参照: +関連項目: * [toDateTime64](#toDateTime64)。 * [toDateTime64OrNull](#toDateTime64OrNull)。 @@ -3362,11 +3395,11 @@ toDateTime64OrZero(x) **引数** -* `x` — サブ秒精度付きの日時を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 日付と時刻をサブ秒精度まで含む文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は DateTime64 型の値を返し、失敗した場合は DateTime64 型の下限値(`1970-01-01 00:00:00.000`)を返します。[`DateTime64`](/sql-reference/data-types/datetime64) +成功した場合は DateTime64 値を返し、失敗した場合は DateTime64 の下限値(`1970-01-01 00:00:00.000`)を返します。[`DateTime64`](/sql-reference/data-types/datetime64) **例** @@ -3387,7 +3420,7 @@ SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invali 導入バージョン: v21.11 -[toDateTime](#toDateTime) と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、第 3 引数が指定されていればその値、指定されていなければ [DateTime](../data-types/datetime.md) の下限値になります。 +[toDateTime](#toDateTime) と同様ですが、変換に失敗した場合はデフォルト値を返します。デフォルト値は、第 3 引数が指定されていればその値であり、指定されていなければ [DateTime](../data-types/datetime.md) 型の下限値です。 **構文** @@ -3397,17 +3430,17 @@ toDateTimeOrDefault(expr[, timezone, default]) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `timezone` — 省略可。タイムゾーン。[`String`](/sql-reference/data-types/string) -* `default` — 省略可。パースに失敗した場合に返されるデフォルト値。[`DateTime`](/sql-reference/data-types/datetime) +* `expr` — 数値または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `timezone` — 省略可能。タイムゾーン。[`String`](/sql-reference/data-types/string) +* `default` — 省略可能。解析に失敗した場合に返されるデフォルト値。[`DateTime`](/sql-reference/data-types/datetime) **戻り値** -成功した場合は `DateTime` 型の値を返し、失敗した場合は指定されたデフォルト値を返します。デフォルト値が指定されていない場合は 1970-01-01 00:00:00 を返します。[`DateTime`](/sql-reference/data-types/datetime) +変換に成功した場合は `DateTime` 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 1970-01-01 00:00:00 を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** -**変換成功の例** +**変換の成功例** ```sql title=Query SELECT toDateTimeOrDefault('2022-12-30 13:44:17') @@ -3417,7 +3450,7 @@ SELECT toDateTimeOrDefault('2022-12-30 13:44:17') 2022-12-30 13:44:17 ``` -**変換に失敗** +**変換が失敗した場合** ```sql title=Query SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')')) @@ -3433,7 +3466,7 @@ SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')')) 導入バージョン: v1.1 入力値を `DateTime` 型に変換しますが、無効な引数が渡された場合は `NULL` を返します。 -[`toDateTime`](#toDateTime) と同様ですが、無効な引数が渡された場合は `NULL` を返します。 +[`toDateTime`](#toDateTime) と同様ですが、無効な引数が渡された場合には `NULL` を返します。 **構文** @@ -3443,11 +3476,11 @@ toDateTimeOrNull(x) **引数** -* `x` — 日時を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 日時の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は `DateTime` 値、そうでない場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は `DateTime` 値を返し、失敗した場合は `NULL` を返します。[`DateTime`](/sql-reference/data-types/datetime) または [`NULL`](/sql-reference/syntax#null) **例** @@ -3468,8 +3501,8 @@ SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') 導入バージョン: v1.1 -入力値を [DateTime](../data-types/datetime.md) 型の値に変換します。不正な引数が渡された場合は [DateTime](../data-types/datetime.md) の下限値を返します。 -[toDateTime](#toDateTime) と同様ですが、不正な引数が渡された場合には [DateTime](../data-types/datetime.md) の下限値を返します。 +入力値を [DateTime](../data-types/datetime.md) 型に変換しますが、無効な引数が指定された場合は [DateTime](../data-types/datetime.md) の下限値を返します。 +[toDateTime](#toDateTime) と同様の動作をしますが、無効な引数が指定された場合に [DateTime](../data-types/datetime.md) の下限値を返します。 **構文** @@ -3479,11 +3512,11 @@ toDateTimeOrZero(x) **引数** -* `x` — 日時の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 日時を表す文字列。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は `DateTime` 型の値を返し、失敗した場合は `DateTime` の最小値(`1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) +成功した場合は DateTime の値を返し、失敗した場合は DateTime の下限値(`1970-01-01 00:00:00`)を返します。[`DateTime`](/sql-reference/data-types/datetime) **例** @@ -3502,9 +3535,9 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') ## toDecimal128 \{#toDecimal128\} -導入: v18.12 +導入バージョン: v18.12 -入力値をスケール `S` を持つ [`Decimal(38, S)`](../data-types/decimal.md) 型の値に変換します。 +入力値を、スケール `S` を持つ型 [`Decimal(38, S)`](../data-types/decimal.md) の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: @@ -3514,19 +3547,19 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') サポートされない引数: -* Float* 値 `NaN` および `Inf`(大文字小文字は区別しない)の値、またはその文字列表現。 -* 2 進数および 16 進数値の文字列表現(例: `SELECT toDecimal128('0xc0fe', 1);`)。 +* Float* 型の `NaN` および `Inf`(大文字・小文字は区別しない)、またはその文字列表現。 +* 2 進数および 16 進数値の文字列表現。例: `SELECT toDecimal128('0xc0fe', 1);`。 :::note -`expr` の値が `Decimal128` の範囲 `(-1*10^(38 - S), 1*10^(38 - S))` を超える場合、オーバーフローが発生する可能性があります。 -小数部分の桁数が多すぎる場合は、余分な桁は切り捨てられます(丸めは行いません)。 -整数部分の桁数が多すぎる場合は、例外が発生します。 +`expr` の値が `Decimal128` の範囲 `(-1*10^(38 - S), 1*10^(38 - S))` を超えるとオーバーフローが発生する可能性があります。 +小数部の桁数が多すぎる場合は、余分な桁は切り捨てられます(丸めは行われません)。 +整数部の桁数が多すぎる場合は、例外が発生します。 ::: :::warning -変換時には余分な桁が切り捨てられ、Float32/Float64 の入力に対しては浮動小数点命令を用いて演算が行われるため、予期しない動作になる可能性があります。 -例えば、`toDecimal128(1.15, 2)` の結果は `1.14` になります。これは浮動小数点での 1.15 * 100 が 114.99 となるためです。 -演算で内部の整数型を使用するようにするには、String 型の入力を使用できます: `toDecimal128('1.15', 2) = 1.15` +変換では余分な桁が切り捨てられ、Float32/Float64 の入力を扱う場合、演算が浮動小数点命令で実行されるため、予期しない動作となる可能性があります。 +例えば、`toDecimal128(1.15, 2)` は `1.14` に等しくなります。これは浮動小数点において 1.15 * 100 が 114.99 となるためです。 +String を入力として使用すると、演算は基盤となる整数型で行われます: `toDecimal128('1.15', 2) = 1.15` ::: **構文** @@ -3537,10 +3570,10 @@ toDecimal128(expr, S) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 38 の間のスケールパラメータ。数値の小数部として保持できる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 から 38 の範囲のスケールパラメータで、数値の小数部が持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** 型 `Decimal(38, S)` の値を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) @@ -3570,7 +3603,7 @@ type_c: Decimal(38, 3) ## toDecimal128OrDefault \{#toDecimal128OrDefault\} -導入: v21.11 +導入バージョン: v21.11 [`toDecimal128`](#toDecimal128) と同様に、この関数は入力値を [Decimal(38, S)](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 @@ -3582,17 +3615,17 @@ toDecimal128OrDefault(expr, S[, default]) **引数** -* `expr` — 数値を表す文字列表現。[`String`](/sql-reference/data-types/string) -* `S` — 0 から 38 の間のスケールパラメーター。数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — オプション。Decimal128(S) 型への変換に失敗した場合に返すデフォルト値。[`Decimal128(S)`](/sql-reference/data-types/decimal) +* `expr` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `S` — 0 から 38 の間のスケールパラメータ。小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 省略可。Decimal128(S) 型へのパースに失敗した場合に返すデフォルト値。[`Decimal128(S)`](/sql-reference/data-types/decimal) -**戻り値** +**返り値** -変換に成功した場合は Decimal(38, S) 型の値を返します。失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) +成功した場合は型 Decimal(38, S) の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) -**使用例** +**例** -**変換が成功する例** +**変換に成功する例** ```sql title=Query SELECT toDecimal128OrDefault(toString(1/42), 18) @@ -3602,7 +3635,7 @@ SELECT toDecimal128OrDefault(toString(1/42), 18) 0.023809523809523808 ``` -**変換失敗** +**変換に失敗** ```sql title=Query SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) @@ -3615,10 +3648,10 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) ## toDecimal128OrNull \{#toDecimal128OrNull\} -導入バージョン: v20.1 +導入: v20.1 -入力値を型 [`Decimal(38, S)`](../data-types/decimal.md) の値に変換しますが、エラー時には `NULL` を返します。 -[`toDecimal128`](#toDecimal128) と同様ですが、変換エラー時に例外をスローする代わりに `NULL` を返します。 +入力値を型 [`Decimal(38, S)`](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +変換エラー発生時に例外をスローするのではなく `NULL` を返す点を除き、[`toDecimal128`](#toDecimal128) と同様です。 サポートされる引数: @@ -3627,15 +3660,15 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) サポートされない引数(`NULL` を返す): -* Float* 型の `NaN` および `Inf`(大文字小文字は区別しない)の値、またはその文字列表現。 +* Float* 値 `NaN` および `Inf` の値、またはその文字列表現(大文字小文字を区別しない)。 * 2 進数および 16 進数値の文字列表現。 * `Decimal128` の範囲 `(-1*10^(38 - S), 1*10^(38 - S))` を超える値。 関連項目: -* [`toDecimal128`](#toDecimal128). -* [`toDecimal128OrZero`](#toDecimal128OrZero). -* [`toDecimal128OrDefault`](#toDecimal128OrDefault). +* [`toDecimal128`](#toDecimal128)。 +* [`toDecimal128OrZero`](#toDecimal128OrZero)。 +* [`toDecimal128OrDefault`](#toDecimal128OrDefault)。 **構文** @@ -3645,12 +3678,12 @@ toDecimal128OrNull(expr, S) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 38 の間のスケールパラメータ。数値の小数部が持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 ~ 38 の間のスケールパラメータで、数値の小数部が持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **返される値** -成功した場合は Decimal(38, S) の値、それ以外の場合は `NULL` を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) +成功した場合は Decimal(38, S) 型の値を返し、そうでない場合は `NULL` を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) **例** @@ -3671,18 +3704,18 @@ SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) 導入バージョン: v20.1 -入力値を型 [Decimal(38, S)](../data-types/decimal.md) の値に変換しますが、エラー時には `0` を返します。 +入力値を型 [Decimal(38, S)](../data-types/decimal.md) の値に変換しますが、エラー発生時には `0` を返します。 [`toDecimal128`](#toDecimal128) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 サポートされる引数: -* (U)Int* 型の値、またはその文字列表現。 -* Float* 型の値、またはその文字列表現。 +* 型 (U)Int* の値、またはその文字列表現。 +* 型 Float* の値、またはその文字列表現。 サポートされない引数(`0` を返す): -* Float* 型の `NaN` および `Inf` 値、またはそれらの文字列表現(大文字小文字は区別しない)。 -* 2進数および16進数値の文字列表現。 +* Float* 型の値 `NaN` および `Inf`(大文字小文字は区別しない)、またはそれらの文字列表現。 +* 2 進数および 16 進数の値を表す文字列。 :::note 入力値が `Decimal128` の範囲 `(-1*10^(38 - S), 1*10^(38 - S))` を超える場合、この関数は `0` を返します。 @@ -3697,15 +3730,15 @@ toDecimal128OrZero(expr, S) **引数** * `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 38 の範囲のスケールパラメーター。数値の小数部が持つことができる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0 から 38 の間のスケールパラメータ。数値の小数部に許容される桁数を指定する。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -変換に成功した場合は Decimal(38, S) の値を返し、そうでない場合は `0` を返します。[`Decimal128(S)`](/sql-reference/data-types/decimal) +成功した場合は Decimal(38, S) 型の値を返し、失敗した場合は `0` を返す。[`Decimal128(S)`](/sql-reference/data-types/decimal) **例** -**基本的な使用方法** +**基本的な使い方** ```sql title=Query SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) @@ -3722,7 +3755,7 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) 導入バージョン: v20.8 -入力値を、スケール `S` を持つ [`Decimal(76, S)`](../data-types/decimal.md) 型の値に変換します。エラーが発生した場合は例外をスローします。 +入力値をスケール `S` を持つ [`Decimal(76, S)`](../data-types/decimal.md) 型の値に変換します。エラーが発生した場合は例外をスローします。 サポートされる引数: @@ -3731,19 +3764,19 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) サポートされない引数: -* Float* 型の値 `NaN` および `Inf`(大文字・小文字は区別しません)、またはその文字列表現。 -* 2 進数および 16 進数値の文字列表現。例: `SELECT toDecimal256('0xc0fe', 1);`。 +* Float* 型の `NaN` および `Inf`(大文字・小文字は区別されません)の値、またはその文字列表現。 +* バイナリ値や 16 進値の文字列表現。例: `SELECT toDecimal256('0xc0fe', 1);`。 :::note -`expr` の値が `Decimal256` の範囲 `(-1*10^(76 - S), 1*10^(76 - S))` を超えると、オーバーフローが発生する可能性があります。 -小数部に過剰な桁がある場合、それらは切り捨てられます(四捨五入はされません)。 -整数部に過剰な桁がある場合は例外が発生します。 +`expr` の値が `Decimal256` の範囲 `(-1*10^(76 - S), 1*10^(76 - S))` を超えるとオーバーフローが発生する可能性があります。 +小数部の桁数が多すぎる場合は、余分な桁は切り捨てられます(四捨五入はされません)。 +整数部の桁数が多すぎる場合は、例外がスローされます。 ::: :::warning -変換では余分な桁が切り捨てられ、演算が浮動小数点命令を用いて実行されるため、Float32/Float64 の入力を扱う場合に予期しない動作をすることがあります。 -例えば、`toDecimal256(1.15, 2)` は `1.14` と等しくなります。これは、浮動小数点では 1.15 * 100 が 114.99 となるためです。 -String を入力として使用することで、演算に内部の整数型を用いることができます: `toDecimal256('1.15', 2) = 1.15` +変換では余分な桁が切り捨てられ、Float32/Float64 入力を扱う場合、浮動小数点命令を使用して演算が行われるため、意図しない動作となる可能性があります。 +例えば、`toDecimal256(1.15, 2)` は `1.14` と等しくなります。これは、浮動小数点において 1.15 * 100 が 114.99 になるためです。 +演算で内部的に整数型が使われるようにするには、String 入力を使用します: `toDecimal256('1.15', 2) = 1.15` ::: **構文** @@ -3754,8 +3787,8 @@ toDecimal256(expr, S) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0〜76 の範囲のスケールパラメータで、数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 から 76 までのスケールパラメータ。数値の小数部の桁数の上限を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** @@ -3787,9 +3820,9 @@ type_c: Decimal(76, 3) ## toDecimal256OrDefault \{#toDecimal256OrDefault\} -導入バージョン: v21.11 +導入: v21.11 -[`toDecimal256`](#toDecimal256) と同様に、この関数は入力値を型 [Decimal(76, S)](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 +[`toDecimal256`](#toDecimal256) と同様に、この関数は入力値を型 [Decimal(76, S)](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合はデフォルトの値を返します。 **構文** @@ -3800,16 +3833,16 @@ toDecimal256OrDefault(expr, S[, default]) **引数** * `expr` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) -* `S` — 0 から 76 の間のスケールパラメーター。数値の小数部が取り得る桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — オプション。文字列を Decimal256(S) 型にパースする際に失敗した場合に返すデフォルト値。[`Decimal256(S)`](/sql-reference/data-types/decimal) +* `S` — 0 から 76 の間の Scale パラメータ。数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 省略可能。型 Decimal256(S) への変換に失敗した場合に返されるデフォルト値。[`Decimal256(S)`](/sql-reference/data-types/decimal) **戻り値** -成功した場合は Decimal(76, S) 型の値を返します。失敗した場合は、デフォルト値が指定されていればそれを返し、指定されていなければ 0 を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) +変換に成功した場合は型 Decimal(76, S) の値を返し、失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) -**使用例** +**例** -**正常に変換できる場合** +**変換の成功例** ```sql title=Query SELECT toDecimal256OrDefault(toString(1/42), 76) @@ -3819,7 +3852,7 @@ SELECT toDecimal256OrDefault(toString(1/42), 76) 0.023809523809523808 ``` -**変換失敗** +**変換に失敗** ```sql title=Query SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) @@ -3834,18 +3867,18 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) 導入バージョン: v20.8 -入力値を型 [`Decimal(76, S)`](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 -[`toDecimal256`](#toDecimal256) と似ていますが、変換エラー時に例外をスローする代わりに `NULL` を返します。 +入力値を [`Decimal(76, S)`](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合は`NULL`を返します。 +変換エラー時に例外をスローする代わりに`NULL`を返す点を除き、[`toDecimal256`](#toDecimal256)と同様です。 -サポートされる引数: +サポートされている引数: * 型 (U)Int* の値、またはその文字列表現。 * 型 Float* の値、またはその文字列表現。 -サポートされない引数(`NULL` を返す): +サポートされていない引数(`NULL` を返す): -* Float* 値 `NaN` および `Inf` の文字列表現(大文字小文字を区別しない)。 -* 2進数および16進数値の文字列表現。 +* Float* 値 `NaN` および `Inf`(大文字・小文字は区別しない)、またはその文字列表現。 +* 2 進数および 16 進数値の文字列表現。 * `Decimal256` の範囲を超える値: `(-1 * 10^(76 - S), 1 * 10^(76 - S))`。 関連項目: @@ -3863,11 +3896,11 @@ toDecimal256OrNull(expr, S) **引数** * `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 76 の間のスケールを表すパラメータで、数値の小数部が持つことができる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0 から 76 の間のスケールパラメータ。数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -**戻り値** +**返される値** -変換に成功した場合は Decimal(76, S) の値を返し、それ以外の場合は `NULL` を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) +成功すると Decimal(76, S) の値を返し、そうでない場合は `NULL` を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) **例** @@ -3886,30 +3919,30 @@ SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2) ## toDecimal256OrZero \{#toDecimal256OrZero\} -導入バージョン: v20.8 +導入されたバージョン: v20.8 入力値を型 [Decimal(76, S)](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合は `0` を返します。 -[`toDecimal256`](#toDecimal256) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 +変換エラー時に例外をスローする代わりに `0` を返す点を除いて、[`toDecimal256`](#toDecimal256) と同様です。 -サポートされる引数: +サポートされている引数: * 型 (U)Int* の値、またはその文字列表現。 * 型 Float* の値、またはその文字列表現。 -サポートされない引数(`0` を返す): +サポートされていない引数(`0` を返す): -* Float* 型の `NaN` および `Inf` の値、またはそれらの文字列表現(大文字小文字は区別しない)。 -* 2 進数および 16 進数の値の文字列表現。 +* Float* 型の値 `NaN` および `Inf`(大文字小文字は区別しない)、またはそれらの文字列表現。 +* 2進数および16進数の値の文字列表現。 :::note -入力値が `Decimal256` の範囲 `(-1*10^(76 - S), 1*10^(76 - S))` を超える場合、関数は `0` を返します。 +入力値が `Decimal256` の範囲 `(-1*10^(76 - S), 1*10^(76 - S))` を超えた場合、この関数は `0` を返します。 ::: -参照: +関連項目: -* [`toDecimal256`](#toDecimal256)。 -* [`toDecimal256OrNull`](#toDecimal256OrNull)。 -* [`toDecimal256OrDefault`](#toDecimal256OrDefault)。 +* [`toDecimal256`](#toDecimal256). +* [`toDecimal256OrNull`](#toDecimal256OrNull). +* [`toDecimal256OrDefault`](#toDecimal256OrDefault). **構文** @@ -3919,12 +3952,12 @@ toDecimal256OrZero(expr, S) **引数** -* `expr` — 評価結果として数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0〜76 の範囲のスケールパラメータで、数値の小数部が取り得る桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 から 76 の間のスケールパラメータで、数値の小数部が持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** -成功した場合は Decimal(76, S) 型の値を返し、失敗した場合は `0` を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) +成功すると Decimal(76, S) の値を返し、失敗時は `0` を返します。[`Decimal256(S)`](/sql-reference/data-types/decimal) **例** @@ -3945,28 +3978,28 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) 導入バージョン: v18.12 -入力値を、スケール `S` を持つ型 [`Decimal(9, S)`](../data-types/decimal.md) の値に変換します。エラーが発生した場合は例外をスローします。 +入力値をスケール `S` を持つ [`Decimal(9, S)`](../data-types/decimal.md) 型の値に変換します。エラーが発生した場合は例外をスローします。 サポートされる引数: -* 型 (U)Int* の値、またはその文字列表現。 -* 型 Float* の値、またはその文字列表現。 +* (U)Int* 型の値またはその文字列表現。 +* Float* 型の値またはその文字列表現。 サポートされない引数: -* Float* の `NaN` および `Inf` の値、またはその文字列表現(大文字小文字は区別されません)。 -* 2 進数および 16 進数値の文字列表現。例: `SELECT toDecimal32('0xc0fe', 1);`。 +* Float* 値 `NaN` および `Inf`(大文字小文字は区別しない)の値またはその文字列表現。 +* 2進数および16進数の文字列表現。例: `SELECT toDecimal32('0xc0fe', 1);`。 :::note -`expr` の値が `Decimal32` の範囲 `(-1*10^(9 - S), 1*10^(9 - S))` を超えると、オーバーフローが発生する可能性があります。 -小数部で桁数が多すぎる場合、その余分な桁は切り捨てられます(四捨五入はされません)。 -整数部で桁数が多すぎる場合は、例外が発生します。 +`expr` の値が `Decimal32` の範囲 `(-1*10^(9 - S), 1*10^(9 - S))` を超えるとオーバーフローが発生する可能性があります。 +小数部の桁数が多すぎる場合、余分な桁は切り捨てられます(丸めは行われません)。 +整数部の桁数が多すぎる場合は例外がスローされます。 ::: :::warning -変換時に余分な桁は切り捨てられ、Float32/Float64 入力を扱う場合、演算が浮動小数点命令で実行されるため、想定外の動作をする可能性があります。 -例えば、`toDecimal32(1.15, 2)` は `1.14` と等しくなります。これは浮動小数点において 1.15 * 100 が 114.99 となるためです。 -String 型の入力を使用すると、演算は内部の整数型を利用して行われます: `toDecimal32('1.15', 2) = 1.15` +変換では余分な桁が切り捨てられ、Float32/Float64 の入力に対しては浮動小数点命令を用いて演算が行われるため、想定外の動作になる場合があります。 +例えば、`toDecimal32(1.15, 2)` は `1.14` と等しくなります。これは浮動小数点において 1.15 * 100 が 114.99 になるためです。 +演算で内部的に整数型を使用させるには、文字列入力を使用できます: `toDecimal32('1.15', 2) = 1.15` ::: **構文** @@ -3977,12 +4010,12 @@ toDecimal32(expr, S) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 9 の間のスケールパラメータで、数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値または数値を表す文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0〜9 のスケールパラメータ。数値の小数部の桁数の上限を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -戻り値の型は `Decimal(9, S)`([`Decimal32(S)`](/sql-reference/data-types/decimal))です。 +`Decimal(9, S)` 型の値を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) **例** @@ -4012,7 +4045,7 @@ type_c: Decimal(9, 3) 導入バージョン: v21.11 -[`toDecimal32`](#toDecimal32) と同様に、この関数は入力値を [Decimal(9, S)](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +[`toDecimal32`](#toDecimal32) と同様に、この関数は入力値を型 [Decimal(9, S)](../data-types/decimal.md) の値に変換しますが、エラー発生時にはデフォルト値を返します。 **構文** @@ -4022,17 +4055,17 @@ toDecimal32OrDefault(expr, S[, default]) **引数** -* `expr` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -* `S` — 0 から 9 の間のスケールパラメータ。数値の小数部が取り得る桁数の上限を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 省略可能。型 Decimal32(S) への変換に失敗した場合に返すデフォルト値。[`Decimal32(S)`](/sql-reference/data-types/decimal) +* `expr` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) +* `S` — 0 から 9 の間のスケールパラメーター。数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — オプション。`Decimal32(S)` 型への変換に失敗した場合に返されるデフォルト値。[`Decimal32(S)`](/sql-reference/data-types/decimal) -**戻り値** +**返される値** -成功した場合は型 Decimal(9, S) の値を返します。失敗した場合は、デフォルト値が渡されていればその値を、渡されていなければ 0 を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) +成功した場合は `Decimal(9, S)` 型の値。失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) **例** -**変換が成功する例** +**変換の成功例** ```sql title=Query SELECT toDecimal32OrDefault(toString(0.0001), 5) @@ -4042,7 +4075,7 @@ SELECT toDecimal32OrDefault(toString(0.0001), 5) 0.0001 ``` -**変換が失敗した場合** +**変換に失敗した場合** ```sql title=Query SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) @@ -4055,10 +4088,10 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) ## toDecimal32OrNull \{#toDecimal32OrNull\} -導入バージョン: v20.1 +導入されたバージョン: v20.1 入力値を [`Decimal(9, S)`](../data-types/decimal.md) 型の値に変換しますが、エラー時には `NULL` を返します。 -[`toDecimal32`](#toDecimal32) と同様ですが、変換エラー時に例外をスローする代わりに `NULL` を返します。 +変換エラー時に例外をスローする代わりに `NULL` を返す点を除き、[`toDecimal32`](#toDecimal32) と同様です。 サポートされる引数: @@ -4067,9 +4100,9 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) サポートされない引数(`NULL` を返す): -* Float* 値 `NaN` および `Inf`、またはそれらの文字列表現(大文字小文字を区別しない)。 +* Float* 型のうち、値 `NaN` および `Inf`(大文字小文字は区別しない)、またはそれらの文字列表現。 * 2 進数および 16 進数値の文字列表現。 -* `Decimal32` の範囲を超える値: `(-1*10^(9 - S), 1*10^(9 - S))`。 +* `Decimal32` の範囲を超える値:`(-1*10^(9 - S), 1*10^(9 - S))`。 関連項目: @@ -4086,11 +4119,11 @@ toDecimal32OrNull(expr, S) **引数** * `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 9 の範囲のスケールパラメータで、数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0 から 9 の間のスケールパラメータ。数値の小数部分に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -成功すると Decimal(9, S) の値を返し、そうでない場合は `NULL` を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) +成功した場合は Decimal(9, S) 型の値を返し、そうでない場合は `NULL` を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) **例** @@ -4111,18 +4144,18 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) 導入バージョン: v20.1 -入力値を型 [Decimal(9, S)](../data-types/decimal.md) の値に変換しますが、エラー時には `0` を返します。 +入力値を [Decimal(9, S)](../data-types/decimal.md) 型の値に変換し、エラーが発生した場合は `0` を返します。 [`toDecimal32`](#toDecimal32) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 サポートされる引数: -* 型 (U)Int* の値、またはその文字列表現。 -* 型 Float* の値、またはその文字列表現。 +* 型が (U)Int* の値またはその文字列表現。 +* 型が Float* の値またはその文字列表現。 サポートされない引数(`0` を返す): -* 型 Float* の `NaN` および `Inf` の値(大文字小文字は問わない)、またはその文字列表現。 -* バイナリ値および 16 進数値の文字列表現。 +* Float* 値 `NaN` および `Inf`(大文字小文字を区別しない)の値または文字列表現。 +* 2 進数および 16 進数値の文字列表現。 :::note 入力値が `Decimal32` の範囲 `(-1*10^(9 - S), 1*10^(9 - S))` を超える場合、この関数は `0` を返します。 @@ -4136,12 +4169,12 @@ toDecimal32OrZero(expr, S) **引数** -* `expr` — 数値または数値を表す文字列を返す式です。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 ~ 9 の範囲のスケールパラメーターで、数値の小数部が持つことのできる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0〜9 の範囲のスケールパラメータ。数値の小数部に含めることができる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **返される値** -成功した場合は Decimal(9, S) 型の値を返し、そうでない場合は `0` を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) +成功した場合は Decimal(9, S) の値、それ以外の場合は `0` を返します。[`Decimal32(S)`](/sql-reference/data-types/decimal) **例** @@ -4160,9 +4193,9 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) ## toDecimal64 \{#toDecimal64\} -導入: v18.12 +導入バージョン: v18.12 -入力値をスケール `S` を持つ [`Decimal(18, S)`](../data-types/decimal.md) 型の値に変換します。 +入力値をスケール `S` を持つ型 [`Decimal(18, S)`](../data-types/decimal.md) の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: @@ -4172,19 +4205,19 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) サポートされない引数: -* Float* の `NaN` および `Inf` の値、またはそれらの文字列表現(大文字小文字は区別しません)。 -* 2進数および16進数値の文字列表現。例: `SELECT toDecimal64('0xc0fe', 1);`。 +* 型 Float* の `NaN` および `Inf`(大文字・小文字は区別しない)、またはそれらの文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toDecimal64('0xc0fe', 1);`)。 :::note -`expr` の値が `Decimal64` の範囲 `(-1*10^(18 - S), 1*10^(18 - S))` を超える場合、オーバーフローが発生する可能性があります。 -小数部分の桁数が多すぎる場合は、その余分な桁は切り捨てられます(四捨五入はされません)。 +`expr` の値が `Decimal64` の範囲 `(-1*10^(18 - S), 1*10^(18 - S))` を超えるとオーバーフローが発生する可能性があります。 +小数部分の桁数が多すぎる場合は、余分な桁は切り捨てられます(四捨五入はされません)。 整数部分の桁数が多すぎる場合は、例外が発生します。 ::: :::warning -変換では余分な桁が切り捨てられ、演算が浮動小数点命令で実行されるため、Float32/Float64 の入力を扱う際に予期しない動作になる可能性があります。 -たとえば、`toDecimal64(1.15, 2)` は `1.14` と等しくなります。これは、浮動小数点における 1.15 * 100 が 114.99 となるためです。 -内部の整数型を使って演算を行うには、文字列入力を使用できます: `toDecimal64('1.15', 2) = 1.15` +変換では余分な桁が切り捨てられ、Float32/Float64 の入力に対しては、処理が浮動小数点命令で実行されるため、予期しない動作をする可能性があります。 +たとえば、`toDecimal64(1.15, 2)` は、浮動小数点演算では 1.15 * 100 が 114.99 となるため、`1.14` に等しくなります。 +内部の整数型を用いて処理させるには、String 型の入力を使用できます: `toDecimal64('1.15', 2) = 1.15` ::: **構文** @@ -4196,11 +4229,11 @@ toDecimal64(expr, S) **引数** * `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 18 までのスケールパラメータで、数値の小数部が持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0 以上 18 以下のスケールパラメータ。数値の小数部が取り得る最大桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -Decimal 型の値を返します。[`Decimal(18, S)`](/sql-reference/data-types/decimal) +Decimal 値を返します。[`Decimal(18, S)`](/sql-reference/data-types/decimal) **例** @@ -4230,7 +4263,7 @@ type_c: Decimal(18, 3) 導入バージョン: v21.11 -[`toDecimal64`](#toDecimal64) と同様に、この関数は入力値を [Decimal(18, S)](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +[`toDecimal64`](#toDecimal64) と同様に、この関数は入力値を [Decimal(18, S)](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 **構文** @@ -4241,16 +4274,16 @@ toDecimal64OrDefault(expr, S[, default]) **引数** * `expr` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) -* `S` — 0 から 18 の間のスケールパラメーター。数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 省略可能。型 Decimal64(S) への変換に失敗した場合に返すデフォルト値。[`Decimal64(S)`](/sql-reference/data-types/decimal) +* `S` — 0 から 18 の間のスケールパラメーター。数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — オプション。`Decimal64(S)` 型への変換に失敗した場合に返すデフォルト値。[`Decimal64(S)`](/sql-reference/data-types/decimal) **返される値** -成功した場合は Decimal(18, S) 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 0 を返します。[`Decimal64(S)`](/sql-reference/data-types/decimal) +成功した場合は `Decimal(18, S)` 型の値を返し、失敗した場合はデフォルト値が指定されていればその値、指定されていなければ 0 を返します。[`Decimal64(S)`](/sql-reference/data-types/decimal) **例** -**変換が成功する例** +**変換の成功例** ```sql title=Query SELECT toDecimal64OrDefault(toString(0.0001), 18) @@ -4275,7 +4308,7 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) 導入バージョン: v20.1 -入力値を型 [Decimal(18, S)](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +入力値を [Decimal(18, S)](../data-types/decimal.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 [`toDecimal64`](#toDecimal64) と同様ですが、変換エラー時に例外をスローする代わりに `NULL` を返します。 サポートされる引数: @@ -4285,11 +4318,11 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) サポートされない引数(`NULL` を返す): -* Float* 型値 `NaN` および `Inf` の文字列表現(大文字・小文字を区別しない)。 +* Float* 値 `NaN` および `Inf` の文字列表現(大文字小文字を区別しない)。 * 2 進数および 16 進数値の文字列表現。 * `Decimal64` の範囲 `(-1*10^(18 - S), 1*10^(18 - S))` を超える値。 -参照: +関連項目: * [`toDecimal64`](#toDecimal64)。 * [`toDecimal64OrZero`](#toDecimal64OrZero)。 @@ -4303,12 +4336,12 @@ toDecimal64OrNull(expr, S) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0〜18 の範囲のスケールパラメータで、数値の小数部が取りうる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 から 18 の間のスケールパラメータで、数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -成功した場合は Decimal(18, S) 型の値を返し、それ以外の場合は `NULL` を返します。[`Decimal64(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) +成功した場合は Decimal(18, S) 型の値を返し、そうでない場合は `NULL` を返します。[`Decimal64(S)`](/sql-reference/data-types/decimal) または [`NULL`](/sql-reference/syntax#null) **例** @@ -4329,7 +4362,7 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) 導入バージョン: v20.1 -入力値を [Decimal(18, S)](../data-types/decimal.md) 型の値に変換します。エラーの場合は `0` を返します。 +入力値を型 [Decimal(18, S)](../data-types/decimal.md) の値に変換しますが、エラーが発生した場合は `0` を返します。 [`toDecimal64`](#toDecimal64) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 サポートされる引数: @@ -4339,8 +4372,8 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) サポートされない引数(`0` を返す): -* Float* 値 `NaN` および `Inf` の文字列表現(大文字小文字を区別しません)。 -* 2進数および16進数値の文字列表現。 +* Float* 値 `NaN` および `Inf` の文字列表現(大文字小文字を区別しない)。 +* 2 進数および 16 進数値の文字列表現。 :::note 入力値が `Decimal64` の範囲 `(-1*10^(18 - S), 1*10^(18 - S))` を超える場合、この関数は `0` を返します。 @@ -4360,10 +4393,10 @@ toDecimal64OrZero(expr, S) **引数** -* `expr` — 数値または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 から 18 の範囲のスケールパラメータで、数値の小数部として持てる桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 から 18 までのスケールパラメータで、数値の小数部に許容される桁数を指定します。[`UInt8`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** 成功した場合は Decimal(18, S) 型の値を返し、失敗した場合は `0` を返します。[`Decimal64(S)`](/sql-reference/data-types/decimal) @@ -4386,9 +4419,9 @@ SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2) 導入バージョン: v23.3 -数値を、指定した小数点以下の桁数を持つ String に変換します。 +数値を、指定した小数桁数を持つ String 型の文字列に変換します。 -この関数は、入力値を指定された小数点以下の桁数に丸めます。入力値の小数点以下の桁数が要求された桁数より少ない場合、結果は指定された小数点以下の桁数ちょうどになるように末尾がゼロで埋められます。 +この関数は、入力値を指定された小数点以下の桁数に丸めます。入力値の小数桁数が指定より少ない場合、結果は 0 で埋められ、指定された小数桁数ちょうどになるように調整されます。 **構文** @@ -4398,14 +4431,14 @@ toDecimalString(number, scale) **引数** -* `number` — 文字列に変換する数値。任意の数値型 (Int, UInt, Float, Decimal)、つまり [`Int8`](/sql-reference/data-types/int-uint)、[`Int16`](/sql-reference/data-types/int-uint)、[`Int32`](/sql-reference/data-types/int-uint)、[`Int64`](/sql-reference/data-types/int-uint)、[`UInt8`](/sql-reference/data-types/int-uint)、[`UInt16`](/sql-reference/data-types/int-uint)、[`UInt32`](/sql-reference/data-types/int-uint)、[`UInt64`](/sql-reference/data-types/int-uint)、[`Float32`](/sql-reference/data-types/float)、[`Float64`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal) のいずれかを指定できます。 +* `number` — 文字列に変換する数値。任意の数値型 (Int, UInt, Float, Decimal) を指定できます。[`Int8`](/sql-reference/data-types/int-uint)、[`Int16`](/sql-reference/data-types/int-uint)、[`Int32`](/sql-reference/data-types/int-uint)、[`Int64`](/sql-reference/data-types/int-uint)、[`UInt8`](/sql-reference/data-types/int-uint)、[`UInt16`](/sql-reference/data-types/int-uint)、[`UInt32`](/sql-reference/data-types/int-uint)、[`UInt64`](/sql-reference/data-types/int-uint)、[`Float32`](/sql-reference/data-types/float)、[`Float64`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal) のいずれか。 * `scale` — 小数部に表示する桁数。必要に応じて結果は丸められます。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -指定した小数桁数ちょうどの小数部を持つ数値の文字列表現を返します。[`String`](/sql-reference/data-types/string) +指定した小数桁数ちょうどで数値を表現した文字列を返します。[`String`](/sql-reference/data-types/string) -**例** +**使用例** **数値を丸めてフォーマットする** @@ -4431,7 +4464,7 @@ SELECT toDecimalString(5, 3) └───────────────────────┘ ``` -**数値型の違い** +**異なる数値型間** ```sql title=Query SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, @@ -4447,7 +4480,7 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, ## toFixedString \{#toFixedString\} -導入されたバージョン: v1.1 +導入: v1.1 [`String`](/sql-reference/data-types/string) 引数を [`FixedString(N)`](/sql-reference/data-types/fixedstring) 型(長さ N の固定長文字列)に変換します。 @@ -4462,8 +4495,8 @@ toFixedString(s, N) **引数** -* `s` — 変換対象の文字列。[`String`](/sql-reference/data-types/string) -* `N` — 返される FixedString の長さ。[`const UInt*`](/sql-reference/data-types/int-uint) +* `s` — 変換する文字列。[`String`](/sql-reference/data-types/string) +* `N` — 変換結果の FixedString の長さ。[`const UInt*`](/sql-reference/data-types/int-uint) **戻り値** @@ -4496,11 +4529,11 @@ SELECT toFixedString('foo', 8) AS s; * (U)Int* 型の値。 * (U)Int8/16/32/128/256 の文字列表現。 * `NaN` および `Inf` を含む Float* 型の値。 -* `NaN` および `Inf` を含む Float* の文字列表現(大文字・小文字は区別しません)。 +* 大文字小文字を区別せず、`NaN` および `Inf` を含む Float* 型の文字列表現。 サポートされていない引数: -* 2進数および16進数の文字列表現(例: `SELECT toFloat32('0xc0fe');`)。 +* `SELECT toFloat32('0xc0fe');` のような、バイナリ値および 16 進値の文字列表現。 関連項目: @@ -4516,11 +4549,11 @@ toFloat32(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**戻り値** +**返される値** -32 ビットの浮動小数点数を返します。[`Float32`](/sql-reference/data-types/float) +32 ビット浮動小数点数を返します。[`Float32`](/sql-reference/data-types/float) **例** @@ -4547,8 +4580,8 @@ toFloat32('NaN'): nan 導入バージョン: v21.11 -[`toFloat32`](#toFloat32) と同様に、この関数は入力値を [Float32](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 -`default` 値が指定されていない場合、エラー時には `0` が返されます。 +[`toFloat32`](#toFloat32) と同様に、この関数は入力値を [Float32](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +`default` 値が指定されなかった場合、エラー時には `0` が返されます。 **構文** @@ -4558,12 +4591,12 @@ toFloat32OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。変換に失敗した場合に返すデフォルト値。[`Float32`](/sql-reference/data-types/float) +* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。解析に失敗した場合に返す既定値。[`Float32`](/sql-reference/data-types/float) -**返り値** +**戻り値** -変換に成功した場合は Float32 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Float32`](/sql-reference/data-types/float) +成功した場合は Float32 型の値を返し、失敗した場合は、指定されていれば既定値を、指定されていなければ 0 を返します。[`Float32`](/sql-reference/data-types/float) **例** @@ -4590,21 +4623,21 @@ SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) ## toFloat32OrNull \{#toFloat32OrNull\} -導入: v1.1 +導入バージョン: v1.1 -入力値を [Float32](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +入力値を型 [Float32](../data-types/float.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 [`toFloat32`](#toFloat32) と同様ですが、変換エラー時に例外をスローする代わりに `NULL` を返します。 サポートされる引数: -* (U)Int* 型の値。 +* 型 (U)Int* の値。 * (U)Int8/16/32/128/256 の文字列表現。 -* `NaN` および `Inf` を含む Float* 型の値。 -* `NaN` および `Inf` を含む Float* の文字列表現(大文字・小文字を区別しない)。 +* `NaN` および `Inf` を含む、型 Float* の値。 +* `NaN` および `Inf` を含む、Float* の文字列表現(大文字小文字を区別しない)。 サポートされない引数(`NULL` を返す): -* 2 進数および 16 進数値の文字列表現。例: `SELECT toFloat32OrNull('0xc0fe');`。 +* `SELECT toFloat32OrNull('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 * 無効な文字列形式。 関連項目: @@ -4621,11 +4654,11 @@ toFloat32OrNull(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は 32 ビットの浮動小数点数を返し、失敗した場合は `NULL` を返します。[`Float32`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) +成功すると 32 ビットの Float 値を返し、それ以外の場合は `NULL` を返します。[`Float32`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) **例** @@ -4650,9 +4683,9 @@ toFloat32OrNull('abc'): \N ## toFloat32OrZero \{#toFloat32OrZero\} -導入: v1.1 +導入バージョン: v1.1 -入力値を [Float32](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合には `0` を返します。 +入力値を [Float32](../data-types/float.md) 型の値に変換しますが、エラー時には `0` を返します。 [`toFloat32`](#toFloat32) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 関連項目: @@ -4671,9 +4704,9 @@ toFloat32OrZero(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -成功した場合は 32 ビットの Float 値を返し、失敗した場合は `0` を返します。[`Float32`](/sql-reference/data-types/float) +変換に成功した場合は 32 ビットの Float 値を返し、失敗した場合は `0` を返します。[`Float32`](/sql-reference/data-types/float) **例** @@ -4705,12 +4738,12 @@ toFloat32OrZero('abc'): 0 * (U)Int* 型の値。 * (U)Int8/16/32/128/256 の文字列表現。 -* Float* 型の値(`NaN` および `Inf` を含む)。 -* Float* 型の文字列表現(`NaN` および `Inf` を含む。大文字小文字は区別しません)。 +* `NaN` および `Inf` を含む Float* 型の値。 +* Float* 型の文字列表現(`NaN` および `Inf` を含み、これらは大文字小文字を区別しない)。 サポートされない引数: -* 2進数および16進数値の文字列表現(例: `SELECT toFloat64('0xc0fe');`)。 +* たとえば `SELECT toFloat64('0xc0fe');` のような、2 進数値および 16 進数値の文字列表現。 関連項目: @@ -4726,11 +4759,11 @@ toFloat64(expr) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -64 ビット浮動小数点数を返します。[`Float64`](/sql-reference/data-types/float) +64 ビットの浮動小数点数を返します。[`Float64`](/sql-reference/data-types/float) **例** @@ -4757,7 +4790,7 @@ toFloat64('NaN'): nan 導入: v21.11 -[`toFloat64`](#toFloat64) と同様に、この関数は入力値を [Float64](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +[`toFloat64`](#toFloat64) と同様に、この関数は入力値を [Float64](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 `default` 値が指定されていない場合、エラー時には `0` が返されます。 **構文** @@ -4769,11 +4802,11 @@ toFloat64OrDefault(expr[, default]) **引数** * `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可。パースに失敗した場合に返すデフォルト値。[`Float64`](/sql-reference/data-types/float) +* `default` — 省略可能。変換に失敗した場合に返されるデフォルト値。[`Float64`](/sql-reference/data-types/float) -**戻り値** +**返される値** -成功した場合は型 Float64 の値を返し、失敗した場合は `default` が指定されていればその値を、指定されていない場合は 0 を返します。[`Float64`](/sql-reference/data-types/float) +成功した場合は `Float64` 型の値を返し、失敗した場合は `default` が指定されていればその値を、指定されていなければ 0 を返します。[`Float64`](/sql-reference/data-types/float) **例** @@ -4787,7 +4820,7 @@ SELECT toFloat64OrDefault('8', CAST('0', 'Float64')) 8 ``` -**変換に失敗** +**変換失敗** ```sql title=Query SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) @@ -4814,8 +4847,8 @@ SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) サポートされない引数(`NULL` を返す): -* バイナリ値および 16 進値の文字列表現。例: `SELECT toFloat64OrNull('0xc0fe');`。 -* 無効な文字列形式。 +* `SELECT toFloat64OrNull('0xc0fe');` のようなバイナリおよび 16 進数の文字列表現。 +* 不正な文字列形式。 関連項目: @@ -4831,11 +4864,11 @@ toFloat64OrNull(x) **引数** -* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) **戻り値** -変換に成功した場合は 64 ビットの Float 値を返し、失敗した場合は `NULL` を返します。[`Float64`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) +成功した場合は 64 ビットの Float 値を返し、失敗した場合は `NULL` を返します。[`Float64`](/sql-reference/data-types/float) または [`NULL`](/sql-reference/syntax#null) **例** @@ -4862,7 +4895,7 @@ toFloat64OrNull('abc'): \N 導入バージョン: v1.1 -入力値を [Float64](../data-types/float.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 +入力値を [Float64](../data-types/float.md) 型に変換しますが、エラーが発生した場合は `0` を返します。 [`toFloat64`](#toFloat64) と同様ですが、変換エラー時に例外をスローする代わりに `0` を返します。 関連項目: @@ -4879,11 +4912,11 @@ toFloat64OrZero(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は 64 ビットの Float 値を返し、失敗した場合は `0` を返します。[`Float64`](/sql-reference/data-types/float) +成功した場合は 64ビットの Float 値を返し、失敗した場合は `0` を返します。[`Float64`](/sql-reference/data-types/float) **例** @@ -4906,21 +4939,21 @@ toFloat64OrZero('abc'): 0 ## toInt128 \{#toInt128\} -導入バージョン: v1.1 +導入バージョン:v1.1 -入力値を型 [Int128](/sql-reference/data-types/int-uint) の値に変換します。 +入力値を [Int128](/sql-reference/data-types/int-uint) 型の値に変換します。 エラーが発生した場合は例外をスローします。 -この関数は 0 に向かう丸め(ゼロ方向への丸め)を行い、数値の小数桁を切り捨てます。 +この関数はゼロ方向への丸めを行い、数値の小数部を切り捨てます。 サポートされる引数: -* (U)Int* 型の値、またはその文字列表現。 -* Float* 型の値。 +* 型が (U)Int* の値、またはその文字列表現。 +* 型が Float* の値。 サポートされない引数: -* `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* `SELECT toInt128('0xc0fe');` のような、バイナリ値および 16 進値の文字列表現。 +* `NaN` や `Inf` を含む、型が Float* の値の文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toInt128('0xc0fe');`)。 :::note 入力値が Int128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 @@ -4929,9 +4962,9 @@ toFloat64OrZero('abc'): 0 関連項目: -* [`toInt128OrZero`](#toInt128OrZero) -* [`toInt128OrNull`](#toInt128OrNull) -* [`toInt128OrDefault`](#toInt128OrDefault) +* [`toInt128OrZero`](#toInt128OrZero)。 +* [`toInt128OrNull`](#toInt128OrNull)。 +* [`toInt128OrDefault`](#toInt128OrDefault)。 **構文** @@ -4941,9 +4974,9 @@ toInt128(expr) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値または数値を表す文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**返される値** +**戻り値** 128 ビット整数値を返します。[`Int128`](/sql-reference/data-types/int-uint) @@ -4973,7 +5006,7 @@ toInt128('-128'): -128 導入バージョン: v21.11 [`toInt128`](#toInt128) と同様に、この関数は入力値を型 [Int128](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が指定されていない場合、エラー時には `0` が返されます。 +`default` 値が渡されない場合は、エラー時に `0` が返されます。 **構文** @@ -4983,12 +5016,12 @@ toInt128OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) * `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`Int128`](/sql-reference/data-types/int-uint) **戻り値** -成功した場合は型 `Int128` の値を返し、失敗した場合は指定されている場合はデフォルト値を、指定されていない場合は 0 を返します。[`Int128`](/sql-reference/data-types/int-uint) +成功した場合は Int128 型の値を返し、失敗した場合は `default` が指定されていればその値を、指定されていなければ 0 を返します。[`Int128`](/sql-reference/data-types/int-uint) **例** @@ -5015,21 +5048,21 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) ## toInt128OrNull \{#toInt128OrNull\} -導入されたバージョン: v20.8 +導入バージョン: v20.8 -[`toInt128`](#toInt128) と同様に、この関数は入力値を [Int128](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toInt128`](#toInt128) と同様に、この関数は入力値を型 [Int128](../data-types/int-uint.md) の値に変換しますが、エラー発生時には `NULL` を返します。 サポートされる引数: -* (U)Int* の文字列表現。 +* (U)Int* 型の文字列表現。 サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* `NaN` および `Inf` を含む、Float* 型の値の文字列表現。 * 2 進数および 16 進数値の文字列表現(例: `SELECT toInt128OrNull('0xc0fe');`)。 :::note -入力値が [Int128](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +入力値が [Int128](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 これはエラーとはみなされません。 ::: @@ -5047,11 +5080,11 @@ toInt128OrNull(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -Int128 型の値を返します。変換に失敗した場合は `NULL` を返します。[`Int128`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換が成功した場合は `Int128` 型の値を返し、失敗した場合は `NULL` を返します。[`Int128`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -5093,11 +5126,11 @@ toInt128OrZero(x) **引数** -* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime) のいずれか。 +* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`Float*`](/sql-reference/data-types/float) または [`Decimal`](/sql-reference/data-types/decimal) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) -**返り値** +**戻り値** -変換された入力値を返します。変換に失敗した場合は `0` を返します。戻り値の型は [`Int128`](/sql-reference/data-types/int-uint) です。 +変換に成功した場合は変換後の入力値を、変換に失敗した場合は `0` を返します。戻り値の型は [`Int128`](/sql-reference/data-types/int-uint) です。 **例** @@ -5111,7 +5144,7 @@ SELECT toInt128OrZero('123') 123 ``` -**変換に失敗すると 0 を返す** +**変換に失敗した場合は 0 を返します** ```sql title=Query SELECT toInt128OrZero('abc') @@ -5126,7 +5159,7 @@ SELECT toInt128OrZero('abc') 導入バージョン: v1.1 -入力値を [`Int16`](../data-types/int-uint.md) 型の値に変換します。 +入力値を[`Int16`](../data-types/int-uint.md) 型の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: @@ -5137,16 +5170,16 @@ SELECT toInt128OrZero('abc') サポートされない引数: * `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* `SELECT toInt16('0xc0fe');` のような、バイナリ値および 16 進値の文字列表現。 +* 2進数および16進数値の文字列表現。例: `SELECT toInt16('0xc0fe');`。 :::note -入力値が [Int16](../data-types/int-uint.md) の範囲内で表現できない場合、結果としてオーバーフローまたはアンダーフローが発生します。 -これはエラーとは見なされません。 +入力値が [Int16](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとはみなされません。 例: `SELECT toInt16(32768) == -32768;`。 ::: :::note -この関数は [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)(ゼロ方向への丸め)を使用します。つまり、小数部の桁を切り捨てます。 +この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を行い、小数部を切り捨てます。 ::: 関連項目: @@ -5165,9 +5198,9 @@ toInt16(expr) * `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**返り値** +**戻り値** -16 ビット整数値を返します。[`Int16`](/sql-reference/data-types/int-uint) +16 ビットの整数値を返します。[`Int16`](/sql-reference/data-types/int-uint) **例** @@ -5194,8 +5227,8 @@ toInt16('-16'): -16 導入バージョン: v21.11 -[`toInt16`](#toInt16) と同様に、この関数は入力値を [Int16](../data-types/int-uint.md) 型の値に変換しますが、エラー時にはデフォルト値を返します。 -`default` 値が指定されていない場合は、エラー時に `0` が返されます。 +[`toInt16`](#toInt16) と同様に、この関数は入力値を [Int16](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 +`default` 値が渡されない場合、エラー時には `0` が返されます。 **構文** @@ -5206,15 +5239,15 @@ toInt16OrDefault(expr[, default]) **引数** * `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 任意。パースに失敗した場合に返すデフォルト値。[`Int16`](/sql-reference/data-types/int-uint) +* `default` — オプション。パースに失敗した場合に返す既定値。[`Int16`](/sql-reference/data-types/int-uint) -**戻り値** +**返り値** -成功した場合は型 `Int16` の値を返し、失敗した場合はデフォルト値が指定されていればその値を、指定されていなければ 0 を返します。[`Int16`](/sql-reference/data-types/int-uint) +成功した場合は型 Int16 の値を返し、失敗した場合は指定されていれば既定値を、指定されていなければ 0 を返します。[`Int16`](/sql-reference/data-types/int-uint) -**例** +**使用例** -**変換が成功する場合** +**変換の成功例** ```sql title=Query SELECT toInt16OrDefault('-16', CAST('-1', 'Int16')) @@ -5224,7 +5257,7 @@ SELECT toInt16OrDefault('-16', CAST('-1', 'Int16')) -16 ``` -**変換失敗** +**変換に失敗** ```sql title=Query SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) @@ -5237,29 +5270,29 @@ SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) ## toInt16OrNull \{#toInt16OrNull\} -導入バージョン: v1.1 +導入されたバージョン: v1.1 -[`toInt16`](#toInt16) と同様に、この関数は入力値を型 [Int16](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toInt16`](#toInt16) と同様に、この関数は入力値を [Int16](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 -サポートされている引数: +サポートされる引数: -* (U)Int* 型値の文字列表現。 +* (U)Int* の文字列表現。 -サポートされていない引数(`NULL` を返す): +サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む、Float* 型値の文字列表現。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 * `SELECT toInt16OrNull('0xc0fe');` のような、2進数および16進数値の文字列表現。 :::note -入力値が [Int16](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [Int16](../data-types/int-uint.md) の表現可能範囲外の場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとは見なされません。 ::: 関連項目: -* [`toInt16`](#toInt16). -* [`toInt16OrZero`](#toInt16OrZero). -* [`toInt16OrDefault`](#toInt16OrDefault). +* [`toInt16`](#toInt16)。 +* [`toInt16OrZero`](#toInt16OrZero)。 +* [`toInt16OrDefault`](#toInt16OrDefault)。 **構文** @@ -5273,7 +5306,7 @@ toInt16OrNull(x) **戻り値** -変換に成功した場合は `Int16` 型の値を返し、失敗した場合は `NULL` を返します。[`Int16`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換が成功した場合は型 `Int16` の値を返し、失敗した場合は `NULL` を返します。[`Int16`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -5298,20 +5331,20 @@ toInt16OrNull('abc'): \N 導入バージョン: v1.1 -[`toInt16`](#toInt16) と同様に、この関数は入力値を [Int16](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 +[`toInt16`](#toInt16) と同様に、この関数は入力値を型 [Int16](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合は `0` を返します。 サポートされる引数: -* (U)Int* の文字列表現。 +* (U)Int* 型の値を表す文字列。 サポートされない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* `SELECT toInt16OrZero('0xc0fe');` のような、2進数および16進数値の文字列表現。 +* `NaN` や `Inf` を含む Float* 値を表す文字列。 +* 2 進数および 16 進数値を表す文字列(例: `SELECT toInt16OrZero('0xc0fe');`)。 :::note -入力値が [Int16](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [Int16](../data-types/int-uint.md) の範囲内で表現できない場合、結果でオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: 関連項目: @@ -5330,7 +5363,7 @@ toInt16OrZero(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** `Int16` 型の値を返します。変換に失敗した場合は `0` を返します。[`Int16`](/sql-reference/data-types/int-uint) @@ -5358,29 +5391,29 @@ toInt16OrZero('abc'): 0 導入バージョン: v1.1 入力値を型 [Int256](/sql-reference/data-types/int-uint) の値に変換します。 -エラーが発生した場合には例外をスローします。 -この関数は 0 に向かう丸めを行い、数値の小数部を切り捨てます。 +エラーが発生した場合は例外をスローします。 +この関数は 0 に向かう丸めを行い、数値の小数部分を切り捨てます。 サポートされる引数: -* 型 (U)Int* の値、またはその文字列表現。 +* 型 (U)Int* の値またはその文字列表現。 * 型 Float* の値。 サポートされない引数: -* `NaN` や `Inf` を含む、型 Float* の値の文字列表現。 -* 2 進数および 16 進数値の文字列表現(例: `SELECT toInt256('0xc0fe');`)。 +* `NaN` や `Inf` を含む、Float* 値の文字列表現。 +* 例えば `SELECT toInt256('0xc0fe');` のような、2 進および 16 進数値の文字列表現。 :::note -入力値が Int256 の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 +入力値が Int256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。 ::: 関連項目: -* [`toInt256OrZero`](#toInt256OrZero) -* [`toInt256OrNull`](#toInt256OrNull) -* [`toInt256OrDefault`](#toInt256OrDefault) +* [`toInt256OrZero`](#toInt256OrZero)。 +* [`toInt256OrNull`](#toInt256OrNull)。 +* [`toInt256OrDefault`](#toInt256OrDefault)。 **構文** @@ -5390,11 +5423,11 @@ toInt256(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値の文字列表現を返す式。 [`Expression`](/sql-reference/data-types/special-data-types/expression) -**返される値** +**戻り値** -256 ビット整数値を返します。[`Int256`](/sql-reference/data-types/int-uint) +256ビット整数値を返します。 [`Int256`](/sql-reference/data-types/int-uint) **例** @@ -5419,10 +5452,10 @@ toInt256('-256'): -256 ## toInt256OrDefault \{#toInt256OrDefault\} -導入バージョン: v21.11 +導入: v21.11 -[`toInt256`](#toInt256) と同様に、この関数は入力値を [Int256](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が指定されていない場合は、エラー発生時に `0` が返されます。 +[`toInt256`](#toInt256) と同様に、この関数は入力値を [Int256](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 +`default` 引数が指定されなかった場合は、エラー時に `0` が返されます。 **構文** @@ -5432,16 +5465,16 @@ toInt256OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。解析に失敗した場合に返すデフォルト値。[`Int256`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`Int256`](/sql-reference/data-types/int-uint) **返される値** -成功した場合は型 `Int256` の値を返し、解析に失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Int256`](/sql-reference/data-types/int-uint) +成功した場合は `Int256` 型の値を返し、失敗した場合は、指定されていればデフォルト値を返し、指定されていなければ 0 を返します。[`Int256`](/sql-reference/data-types/int-uint) **例** -**変換が成功する例** +**成功する変換の例** ```sql title=Query SELECT toInt256OrDefault('-256', CAST('-1', 'Int256')) @@ -5466,7 +5499,7 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) 導入バージョン: v20.8 -[`toInt256`](#toInt256) と同様に、この関数は入力値を [Int256](../data-types/int-uint.md) 型の値に変換しますが、エラー時には `NULL` を返します。 +[`toInt256`](#toInt256) と同様に、この関数は入力値を [Int256](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 サポートされる引数: @@ -5474,12 +5507,12 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* 2進数および16進数値を表す文字列表現。例: `SELECT toInt256OrNull('0xc0fe');`。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toInt256OrNull('0xc0fe');`)。 :::note -入力値が [Int256](../data-types/int-uint.md) の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 -この場合はエラーとは見なされません。 +入力値が [Int256](../data-types/int-uint.md) の範囲内で表現できない場合、結果でオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: 関連項目: @@ -5498,9 +5531,9 @@ toInt256OrNull(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返り値** +**戻り値** -変換が成功した場合は Int256 型の値を返し、失敗した場合は `NULL` を返します。[`Int256`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +型 Int256 の値を返します。変換に失敗した場合は `NULL` を返します。[`Int256`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -5525,8 +5558,8 @@ toInt256OrNull('abc'): \N 導入バージョン: v20.8 -入力値を型 [Int256](/sql-reference/data-types/int-uint) に変換しますが、エラーが発生した場合は `0` を返します。 -[`toInt256`](#toInt256) と同様ですが、例外をスローせずに `0` を返します。 +入力値を [Int256](/sql-reference/data-types/int-uint) 型に変換しますが、エラーが発生した場合は `0` を返します。 +[`toInt256`](#toInt256) と同様ですが、例外をスローする代わりに `0` を返します。 関連項目: @@ -5542,11 +5575,11 @@ toInt256OrZero(x) **引数** -* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date)、または [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 変換する入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime) のいずれか。 -**戻り値** +**返り値** -変換された入力値を返し、変換に失敗した場合は `0` を返します。[`Int256`](/sql-reference/data-types/int-uint) +変換された入力値を返します。変換に失敗した場合は `0` を返します。戻り値の型は [`Int256`](/sql-reference/data-types/int-uint) です。 **例** @@ -5560,7 +5593,7 @@ SELECT toInt256OrZero('123') 123 ``` -**変換に失敗した場合は `0` を返します** +**変換に失敗した場合は 0 を返す** ```sql title=Query SELECT toInt256OrZero('abc') @@ -5580,13 +5613,13 @@ SELECT toInt256OrZero('abc') サポートされる引数: -* 型 (U)Int* の値、またはその文字列表現 -* 型 Float* の値 +* (U)Int* 型の値、またはその文字列表現。 +* Float* 型の値。 サポートされない引数: -* `NaN` や `Inf` を含む、Float* 値の文字列表現 -* `SELECT toInt32('0xc0fe');` のような、バイナリおよび 16 進数値の文字列表現 +* `NaN` や `Inf` を含む、Float* 値の文字列表現。 +* `SELECT toInt32('0xc0fe');` のような、バイナリおよび 16 進数値の文字列表現。 :::note 入力値が [Int32](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 @@ -5595,7 +5628,7 @@ SELECT toInt256OrZero('abc') ::: :::note -この関数は [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero) を使用します。これは、小数部を切り捨てることを意味します。 +この関数は [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)(ゼロ方向への丸め)を使用し、数値の小数部分を切り捨てます。 ::: 関連項目: @@ -5612,11 +5645,11 @@ toInt32(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -32ビットの整数値を返します。[`Int32`](/sql-reference/data-types/int-uint) +32ビット符号付き整数値を返します。[`Int32`](/sql-reference/data-types/int-uint) **例** @@ -5644,7 +5677,7 @@ toInt32('-32'): -32 導入バージョン: v21.11 [`toInt32`](#toInt32) と同様に、この関数は入力値を [Int32](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 引数が指定されていない場合、エラー時には `0` が返されます。 +`default` 値が指定されていない場合は、エラー時に `0` が返されます。 **構文** @@ -5654,16 +5687,16 @@ toInt32OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`Int32`](/sql-reference/data-types/int-uint) +* `expr` — 数値または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — オプション。パースに失敗した場合に返される既定値。[`Int32`](/sql-reference/data-types/int-uint) **返される値** -成功した場合は Int32 型の値を返し、失敗した場合は default が指定されていればその値を、指定されていなければ 0 を返します。[`Int32`](/sql-reference/data-types/int-uint) +成功した場合は Int32 型の値を返し、それ以外の場合は指定されていれば既定値を、指定されていない場合は 0 を返します。[`Int32`](/sql-reference/data-types/int-uint) -**使用例** +**例** -**変換に成功する例** +**成功した変換の例** ```sql title=Query SELECT toInt32OrDefault('-32', CAST('-1', 'Int32')) @@ -5697,11 +5730,11 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) サポートされない引数(`NULL` を返す): * `NaN` や `Inf` を含む Float* 値の文字列表現。 -* 2 進数や 16 進数値の文字列表現(例: `SELECT toInt32OrNull('0xc0fe');`)。 +* `SELECT toInt32OrNull('0xc0fe');` のような、2 進数および 16 進数の文字列表現。 :::note -入力値が [Int32](../data-types/int-uint.md) の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [Int32](../data-types/int-uint.md) の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: 関連項目: @@ -5718,11 +5751,11 @@ toInt32OrNull(x) **引数** -* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -変換に成功した場合は `Int32` 型の値、変換に失敗した場合は `NULL` を返します。[`Int32`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は Int32 型の値を返し、失敗した場合は `NULL` を返します。[`Int32`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -5749,18 +5782,18 @@ toInt32OrNull('abc'): \N [`toInt32`](#toInt32) と同様に、この関数は入力値を [Int32](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 -サポートされる引数: +サポートされている引数: * (U)Int* の文字列表現。 -サポートされない引数(`0` を返す): +サポートされていない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 値の文字列表現。 -* 例えば `SELECT toInt32OrZero('0xc0fe');` のような、2進数および16進数値の文字列表現。 +* `NaN` や `Inf` を含む、Float* 値の文字列表現。 +* `SELECT toInt32OrZero('0xc0fe');` のような、2進数および16進数値の文字列表現。 :::note -入力値が [Int32](../data-types/int-uint.md) の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [Int32](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとは見なされません。 ::: 関連項目: @@ -5781,7 +5814,7 @@ toInt32OrZero(x) **返される値** -`Int32` 型の値を返します。変換に失敗した場合は `0` を返します。[`Int32`](/sql-reference/data-types/int-uint) +変換に成功した場合は型 `Int32` の値を返し、失敗した場合は `0` を返します。[`Int32`](/sql-reference/data-types/int-uint) **例** @@ -5811,29 +5844,29 @@ toInt32OrZero('abc'): 0 サポートされる引数: -* 型が (U)Int* の値、またはその文字列表現。 -* 型が Float* の値。 +* (U)Int* 型の値またはその文字列表現 +* Float* 型の値 サポートされない引数: -* `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* `SELECT toInt64('0xc0fe');` のような、2進数および16進数値の文字列表現。 +* `NaN` や `Inf` を含む、Float* 値の文字列表現 +* `SELECT toInt64('0xc0fe');` のような、2 進数および 16 進数値の文字列表現 :::note -入力値が [Int64](../data-types/int-uint.md) の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 -例: `SELECT toInt64(9223372036854775808) == -9223372036854775808;` +入力値が [Int64](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローした値になります。 +これはエラーとは見なされません。 +例えば、`SELECT toInt64(9223372036854775808) == -9223372036854775808;` ::: :::note -この関数は [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)(ゼロ方向への丸め)を行います。つまり、小数部分の桁を切り捨てます。 +この関数は [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero) による丸めを行います。これは数値の小数部分を切り捨てることを意味します。 ::: 関連項目: -* [`toInt64OrZero`](#toInt64OrZero)。 -* [`toInt64OrNull`](#toInt64OrNull)。 -* [`toInt64OrDefault`](#toInt64OrDefault)。 +* [`toInt64OrZero`](#toInt64OrZero) +* [`toInt64OrNull`](#toInt64OrNull) +* [`toInt64OrDefault`](#toInt64OrDefault) **構文** @@ -5843,11 +5876,11 @@ toInt64(expr) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。サポートされるもの: 型 (U)Int* の値およびその文字列表現、型 Float* の値。サポートされないもの: NaN や Inf を含む Float* 値の文字列表現、バイナリ値および 16 進値の文字列表現。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値の文字列表現を返す式。サポート対象: 型 (U)Int* の値またはその文字列表現、型 Float* の値。サポート外: NaN および Inf を含む Float* 値の文字列表現、2 進数および 16 進数値の文字列表現。[`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -64 ビットの整数値を返します。[`Int64`](/sql-reference/data-types/int-uint) +64 ビット整数値を返します。[`Int64`](/sql-reference/data-types/int-uint) **例** @@ -5874,8 +5907,8 @@ toInt64('-64'): -64 導入バージョン: v21.11 -[`toInt64`](#toInt64) と同様に、この関数は入力値を [Int64](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が渡されない場合、エラー時には `0` が返されます。 +[`toInt64`](#toInt64) と同様に、この関数は入力値を型 [Int64](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 +`default` 引数が指定されていない場合は、エラー時に `0` が返されます。 **構文** @@ -5885,12 +5918,12 @@ toInt64OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — オプション。解析に失敗した場合に返すデフォルト値。[`Int64`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。解析に失敗した場合に返すデフォルト値。[`Int64`](/sql-reference/data-types/int-uint) **戻り値** -変換に成功した場合は型 `Int64` の値を返し、失敗した場合はデフォルト値が指定されていればそれを、指定されていなければ 0 を返します。[`Int64`](/sql-reference/data-types/int-uint) +変換に成功した場合は Int64 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Int64`](/sql-reference/data-types/int-uint) **例** @@ -5904,7 +5937,7 @@ SELECT toInt64OrDefault('-64', CAST('-1', 'Int64')) -64 ``` -**変換に失敗した場合** +**変換失敗** ```sql title=Query SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) @@ -5923,16 +5956,16 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) サポートされる引数: -* (U)Int* 型の値を表す文字列。 +* (U)Int* 型の値の文字列表現。 サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む Float* 型の値を表す文字列。 -* `SELECT toInt64OrNull('0xc0fe');` のような、2進数および16進数値を表す文字列。 +* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 +* 2進数および16進数値の文字列表現(例: `SELECT toInt64OrNull('0xc0fe');`)。 :::note -入力値が [Int64](../data-types/int-uint.md) の範囲内で表現できない場合、結果としてオーバーフローまたはアンダーフローが発生します。 -これはエラーとは見なされません。 +入力値が [Int64](../data-types/int-uint.md) の範囲で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 +これはエラーとはみなされません。 ::: 関連項目: @@ -5949,11 +5982,11 @@ toInt64OrNull(x) **引数** -* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -変換に成功した場合は `Int64` 型の値を返し、失敗した場合は `NULL` を返します。[`Int64`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換が成功した場合は型 `Int64` の値を返し、失敗した場合は `NULL` を返します。[`Int64`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -5978,10 +6011,10 @@ toInt64OrNull('abc'): \N 導入バージョン: v1.1 -入力値を型 [Int64](/sql-reference/data-types/int-uint) に変換します。エラーが発生した場合は `0` を返します。 -[`toInt64`](#toInt64) と似ていますが、例外をスローする代わりに `0` を返します。 +入力値を型 [Int64](/sql-reference/data-types/int-uint) に変換しますが、エラーが発生した場合は `0` を返します。 +[`toInt64`](#toInt64) と同様ですが、例外をスローする代わりに `0` を返します。 -参照: +関連項目: * [`toInt64`](#toInt64) * [`toInt64OrNull`](#toInt64OrNull) @@ -5995,11 +6028,11 @@ toInt64OrZero(x) **引数** -* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`Float*`](/sql-reference/data-types/float) または [`Decimal`](/sql-reference/data-types/decimal) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) -**戻り値** +**返される値** -変換された入力値を返します。変換に失敗した場合は `0` を返します。返される型は [`Int64`](/sql-reference/data-types/int-uint) です。 +変換された入力値を返します。変換に失敗した場合は `0` を返します。戻り値の型は [`Int64`](/sql-reference/data-types/int-uint) です。 **例** @@ -6013,7 +6046,7 @@ SELECT toInt64OrZero('123') 123 ``` -**変換に失敗した場合は 0 を返します** +**失敗した変換は 0 を返す** ```sql title=Query SELECT toInt64OrZero('abc') @@ -6029,7 +6062,7 @@ SELECT toInt64OrZero('abc') 導入バージョン: v1.1 入力値を [`Int8`](../data-types/int-uint.md) 型の値に変換します。 -エラーが発生した場合は例外をスローします。 +エラーが発生した場合は例外を送出します。 サポートされる引数: @@ -6039,16 +6072,16 @@ SELECT toInt64OrZero('abc') サポートされない引数: * `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* 2進数および16進数値の文字列表現。例: `SELECT toInt8('0xc0fe');`。 +* `SELECT toInt8('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 :::note -入力値が [Int8](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとは見なされません。 +入力値が [Int8](../data-types/int-uint.md) の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとは扱われません。 例: `SELECT toInt8(128) == -128;`。 ::: :::note -この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を使用し、小数部分の桁を切り捨てます。 +この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を使用します。つまり、小数部分の桁を切り捨てます。 ::: 関連項目: @@ -6067,9 +6100,9 @@ toInt8(expr) * `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**返される値** +**戻り値** -8 ビット整数値を返します。[`Int8`](/sql-reference/data-types/int-uint) +8 ビット符号付き整数値を返します。[`Int8`](/sql-reference/data-types/int-uint) **例** @@ -6096,8 +6129,8 @@ toInt8('-8'): -8 導入バージョン: v21.11 -[`toInt8`](#toInt8) と同様に、この関数は入力値を型 [Int8](../data-types/int-uint.md) の値に変換しますが、エラー発生時にはデフォルト値を返します。 -`default` 値が指定されていない場合、エラー時には `0` が返されます。 +[`toInt8`](#toInt8) と同様に、この関数は入力値を [Int8](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +`default` 値が指定されない場合、エラー時には `0` が返されます。 **構文** @@ -6108,9 +6141,9 @@ toInt8OrDefault(expr[, default]) **引数** * `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`Int8`](/sql-reference/data-types/int-uint) +* `default` — 省略可。解析に失敗した場合に返すデフォルト値。[`Int8`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** 成功した場合は型 Int8 の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`Int8`](/sql-reference/data-types/int-uint) @@ -6126,7 +6159,7 @@ SELECT toInt8OrDefault('-8', CAST('-1', 'Int8')) -8 ``` -**変換失敗** +**変換に失敗した場合** ```sql title=Query SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) @@ -6139,9 +6172,9 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) ## toInt8OrNull \{#toInt8OrNull\} -導入: v1.1 +導入バージョン: v1.1 -[`toInt8`](#toInt8) と同様に、この関数は入力値を [Int8](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toInt8`](#toInt8) と同様に、この関数は入力値を型 [Int8](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合は `NULL` を返します。 サポートされる引数: @@ -6149,12 +6182,12 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む Float* 値の文字列表現。 -* `SELECT toInt8OrNull('0xc0fe');` のような、2 進および 16 進値の文字列表現。 +* `NaN` および `Inf` を含む Float* 値の文字列表現。 +* 2進数および16進数値の文字列表現(例: `SELECT toInt8OrNull('0xc0fe');`)。 :::note -入力値が [Int8](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 -この場合もエラーとは見なされません。 +入力値が [Int8](../data-types/int-uint.md) の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: 関連項目: @@ -6171,11 +6204,11 @@ toInt8OrNull(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -`Int8` 型の値を返し、変換に失敗した場合は `NULL` を返します。[`Int8`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は Int8 型の値、失敗した場合は `NULL` を返します。[`Int8`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -6200,7 +6233,7 @@ toInt8OrNull('abc'): \N 導入バージョン: v1.1 -[`toInt8`](#toInt8) と同様に、この関数は入力値を [Int8](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 +[`toInt8`](#toInt8) と同様に、この関数は入力値を [Int8](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合には `0` を返します。 サポートされる引数: @@ -6208,15 +6241,15 @@ toInt8OrNull('abc'): \N サポートされない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* `SELECT toInt8OrZero('0xc0fe');` のような 2 進数および 16 進数値の文字列表現。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toInt8OrZero('0xc0fe');`)。 :::note 入力値が [Int8](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 -この場合もエラーとはみなされません。 +これはエラーとは見なされません。 ::: -参照: +関連項目: * [`toInt8`](#toInt8)。 * [`toInt8OrNull`](#toInt8OrNull)。 @@ -6234,7 +6267,7 @@ toInt8OrZero(x) **戻り値** -変換に成功した場合は `Int8` 型の値を返し、失敗した場合は `0` を返します。[`Int8`](/sql-reference/data-types/int-uint) +`Int8` 型の値を返します。変換に失敗した場合は `0` を返します。[`Int8`](/sql-reference/data-types/int-uint) **例** @@ -6259,13 +6292,13 @@ toInt8OrZero('abc'): 0 導入バージョン: v25.4 -数値と単位を表す文字列から Interval 型の値を作成します。 +数値と単位文字列から Interval 値を作成します。 -この関数は、単位を文字列引数として指定することで、単一の関数で -さまざまな種類の間隔(秒、分、時間、日、週、月、四半期、年)を一貫した方法で作成できるようにします。単位文字列は大文字小文字を区別しません。 +この関数は、単位を文字列引数として指定することで、1つの関数で異なる種類(秒、分、時間、日、週、月、四半期、年)の +Interval 値を作成するための統一的な方法を提供します。単位文字列の大文字・小文字は区別されません。 -これは `toIntervalSecond`、`toIntervalMinute`、`toIntervalDay` などの型固有の関数を呼び出すことと同等ですが、 -単位を文字列パラメータとして動的に指定できる点が異なります。 +これは `toIntervalSecond`、`toIntervalMinute`、`toIntervalDay` などの型固有の関数を呼び出すのと同等ですが、 +単位を文字列パラメータとして動的に指定できます。 **構文** @@ -6275,14 +6308,14 @@ toInterval(value, unit) **引数** -* `value` — 単位の数を表す数値。いずれかの数値型を指定できます。[`Int8`](/sql-reference/data-types/int-uint) または [`Int16`](/sql-reference/data-types/int-uint) または [`Int32`](/sql-reference/data-types/int-uint) または [`Int64`](/sql-reference/data-types/int-uint) または [`UInt8`](/sql-reference/data-types/int-uint) または [`UInt16`](/sql-reference/data-types/int-uint) または [`UInt32`](/sql-reference/data-types/int-uint) または [`UInt64`](/sql-reference/data-types/int-uint) または [`Float32`](/sql-reference/data-types/float) または [`Float64`](/sql-reference/data-types/float) +* `value` — 単位数を表す数値。任意の数値型を指定できます。[`Int8`](/sql-reference/data-types/int-uint) または [`Int16`](/sql-reference/data-types/int-uint) または [`Int32`](/sql-reference/data-types/int-uint) または [`Int64`](/sql-reference/data-types/int-uint) または [`UInt8`](/sql-reference/data-types/int-uint) または [`UInt16`](/sql-reference/data-types/int-uint) または [`UInt32`](/sql-reference/data-types/int-uint) または [`UInt64`](/sql-reference/data-types/int-uint) または [`Float32`](/sql-reference/data-types/float) または [`Float64`](/sql-reference/data-types/float) * `unit` — 時間の単位。定数文字列である必要があります。有効な値: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -指定された型の Interval 値を返します。結果の型は単位に依存し、IntervalNanosecond、IntervalMicrosecond、IntervalMillisecond、IntervalSecond、IntervalMinute、IntervalHour、IntervalDay、IntervalWeek、IntervalMonth、IntervalQuarter、または IntervalYear のいずれかになります。[`Interval`](/sql-reference/data-types/int-uint) +指定された型の Interval 値を返します。結果の型は `unit` の値に応じて、IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, IntervalYear のいずれかになります。[`Interval`](/sql-reference/data-types/int-uint) -**例** +**使用例** **異なる単位の Interval を作成する** @@ -6299,7 +6332,7 @@ SELECT └─────────┴──────┴────────┘ ``` -**日付の計算に interval を使用する** +**日付演算には interval を使用する** ```sql title=Query SELECT @@ -6314,7 +6347,7 @@ SELECT └──────────────────────┴─────────────────────┴─────────────────────┘ ``` -**動的な INTERVAL の生成** +**インターバルの動的生成** ```sql title=Query SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates @@ -6336,7 +6369,7 @@ FROM numbers(5) 導入バージョン: v1.1 -データ型 [`IntervalDay`](../data-types/special-data-types/interval.md) の `n` 日の時間間隔を返します。 +データ型 [`IntervalDay`](../data-types/special-data-types/interval.md) の、`n` 日間を表す間隔を返します。 **構文** @@ -6346,11 +6379,11 @@ toIntervalDay(n) **引数** -* `n` — 日数。整数値またはその文字列表現、および浮動小数点数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) +* `n` — 日数。整数値またはその文字列表現、ならびに浮動小数点数。型は [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) **戻り値** -`n` 日のインターバルを返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` 日間の間隔を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6374,7 +6407,7 @@ SELECT date + interval_to_days AS result 導入バージョン: v1.1 -データ型 [`IntervalHour`](../data-types/special-data-types/interval.md) の `n` 時間を表すインターバルを返します。 +[`IntervalHour`](../data-types/special-data-types/interval.md) データ型の、`n` 時間を表す間隔値を返します。 **構文** @@ -6384,7 +6417,7 @@ toIntervalHour(n) **引数** -* `n` — 時間数。整数値またはその文字列表現、および浮動小数点数。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) +* `n` — 時間数。整数値、その文字列表現、または浮動小数点数を受け付けます。[`Int*`](/sql-reference/data-types/int-uint) または [`UInt*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) **戻り値** @@ -6412,7 +6445,7 @@ SELECT date + interval_to_hours AS result 導入バージョン: v22.6 -`IntervalMicrosecond` 型の `n` マイクロ秒のインターバル([`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md))を返します。 +データ型 [`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md) の `n` マイクロ秒の時間間隔を返します。 **構文** @@ -6426,7 +6459,7 @@ toIntervalMicrosecond(n) **戻り値** -`n` マイクロ秒の [`Interval`](/sql-reference/data-types/int-uint) 型の値を返します。 +`n` マイクロ秒の [`Interval`](/sql-reference/data-types/int-uint) を返します。 **例** @@ -6450,7 +6483,7 @@ SELECT date + interval_to_microseconds AS result 導入バージョン: v22.6 -`n` ミリ秒を表すデータ型 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md) の時間間隔を返します。 +データ型 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md) の、`n` ミリ秒を表す間隔を返します。 **構文** @@ -6460,11 +6493,11 @@ toIntervalMillisecond(n) **引数** -* `n` — ミリ秒数。型は [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、または [`String`](/sql-reference/data-types/string) +* `n` — ミリ秒数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -`n` ミリ秒の Interval を返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` ミリ秒の `Interval` を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6486,9 +6519,9 @@ SELECT date + interval_to_milliseconds AS result ## toIntervalMinute \{#toIntervalMinute\} -導入バージョン: v1.1 +導入: v1.1 -データ型 [`IntervalMinute`](../data-types/special-data-types/interval.md) の `n` 分を表す時間間隔を返します。 +データ型 [`IntervalMinute`](../data-types/special-data-types/interval.md) の、`n` 分を表す時間間隔を返します。 **構文** @@ -6498,11 +6531,11 @@ toIntervalMinute(n) **引数** -* `n` — 分を表す数値。整数値またはその文字列表現、および浮動小数点数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) +* `n` — 分を表す値。整数値またはその文字列表現、もしくは浮動小数点数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -`n` 分のインターバルを返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` 分の `Interval` を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6526,7 +6559,7 @@ SELECT date + interval_to_minutes AS result 導入バージョン: v1.1 -データ型 [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md) の、`n` ヶ月の間隔を表す値を返します。 +データ型 [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md) の `n` か月の間隔を表す値を返します。 **構文** @@ -6538,9 +6571,9 @@ toIntervalMonth(n) * `n` — 月数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**返り値** +**返される値** -`n` か月のインターバルを返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` か月を表す interval を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6564,7 +6597,7 @@ SELECT date + interval_to_month AS result 導入バージョン: v22.6 -データ型 [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md) の、`n` ナノ秒を表す時間間隔を返します。 +データ型 [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md) の、`n` ナノ秒の時間間隔を返します。 **構文** @@ -6578,7 +6611,7 @@ toIntervalNanosecond(n) **戻り値** -`n` ナノ秒の [`Interval`](/sql-reference/data-types/int-uint) を返します。 +`n` ナノ秒の [`Interval`](/sql-reference/data-types/int-uint) 型の値を返します。 **例** @@ -6602,7 +6635,7 @@ SELECT date + interval_to_nanoseconds AS result 導入バージョン: v1.1 -データ型 [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 四半期のインターバルを返します。 +データ型 [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 四半期分の間隔を返します。 **構文** @@ -6612,11 +6645,11 @@ toIntervalQuarter(n) **引数** -* `n` — 四半期数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) +* `n` — 四半期の数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -`n` 四半期分の期間を表す [`Interval`](/sql-reference/data-types/int-uint) を返します。 +`n` 四半期を表す [`Interval`](/sql-reference/data-types/int-uint) 型の値を返します。 **例** @@ -6640,7 +6673,7 @@ SELECT date + interval_to_quarter AS result 導入バージョン: v1.1 -データ型 [`IntervalSecond`](../data-types/special-data-types/interval.md) の、長さ `n` 秒の時間間隔を返します。 +データ型 [`IntervalSecond`](../data-types/special-data-types/interval.md) で表される `n` 秒の時間間隔を返します。 **構文** @@ -6650,11 +6683,11 @@ toIntervalSecond(n) **引数** -* `n` — 秒数。整数値、その文字列表現、または浮動小数点数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) +* `n` — 秒数。整数値またはその文字列表現、および浮動小数点数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**返される値** +**返り値** -`n` 秒の時間間隔を返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` 秒の [`Interval`](/sql-reference/data-types/int-uint) 型の値を返します。 **例** @@ -6678,7 +6711,7 @@ SELECT date + interval_to_seconds AS result 導入バージョン: v1.1 -データ型 [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 週間の間隔を表す値を返します。 +データ型 [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 週間を表す間隔値を返します。 **構文** @@ -6690,9 +6723,9 @@ toIntervalWeek(n) * `n` — 週数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -`n` 週間の間隔([`Interval`](/sql-reference/data-types/int-uint))を返します。 +`n` 週間の間隔を表す値を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6714,9 +6747,9 @@ SELECT date + interval_to_week AS result ## toIntervalYear \{#toIntervalYear\} -導入: v1.1 +導入バージョン: v1.1 -データ型 [`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 年の期間を返します。 +データ型 [`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) の `n` 年を表す間隔を返します。 **構文** @@ -6726,11 +6759,11 @@ toIntervalYear(n) **引数** -* `n` — 年数。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、または [`String`](/sql-reference/data-types/string) +* `n` — 年数。[`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) または [`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -`n` 年の Interval を返します。[`Interval`](/sql-reference/data-types/int-uint) +`n` 年の `Interval` を返します。[`Interval`](/sql-reference/data-types/int-uint) **例** @@ -6754,7 +6787,7 @@ SELECT date + interval_to_year AS result 導入バージョン: v18.12 -入力引数を、同一データ型に対応する [LowCardinality](../data-types/lowcardinality.md) 型に変換します。 +入力引数を同じデータ型の [LowCardinality](../data-types/lowcardinality.md) 型に変換します。 :::tip `LowCardinality` データ型から通常のデータ型に変換するには、[CAST](#CAST) 関数を使用します。 @@ -6769,11 +6802,11 @@ toLowCardinality(expr) **引数** -* `expr` — サポートされているいずれかのデータ型の値となる式。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `expr` — サポートされているデータ型のいずれかの値を結果とする式。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) または [`Date`](/sql-reference/data-types/date) または [`DateTime`](/sql-reference/data-types/datetime) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -**返される値** +**戻り値** -入力値を `LowCardinality` データ型に変換した値を返します。[`LowCardinality`](/sql-reference/data-types/lowcardinality) +入力値を `LowCardinality` データ型に変換したものを返します。[`LowCardinality`](/sql-reference/data-types/lowcardinality) **例** @@ -6795,7 +6828,7 @@ SELECT toLowCardinality('1') 導入バージョン: v1.1 値を文字列表現に変換します。 -DateTime 型の引数に対しては、タイムゾーン名を表す 2 番目の String 型引数を指定できます。 +DateTime 引数に対しては、タイムゾーン名を指定する 2 番目の String 型引数を受け取ることができます。 **構文** @@ -6806,7 +6839,7 @@ toString(value[, timezone]) **引数** * `value` — 文字列に変換する値。[`Any`](/sql-reference/data-types) -* `timezone` — オプション。DateTime への変換に用いるタイムゾーン名。[`String`](/sql-reference/data-types/string) +* `timezone` — 省略可能。DateTime 変換用のタイムゾーン名。[`String`](/sql-reference/data-types/string) **戻り値** @@ -6841,10 +6874,10 @@ LIMIT 10 導入バージョン: v1.1 -[String](/sql-reference/data-types/string) または [FixedString](/sql-reference/data-types/fixedstring) 型の引数を受け取り、最初のヌルバイトの位置で切り詰めた元の文字列のコピーを含む String を返します。 +[String](/sql-reference/data-types/string) または [FixedString](/sql-reference/data-types/fixedstring) を引数として受け取り、最初のヌルバイトで切り詰められた元の文字列のコピーを含む String を返します。 -ヌルバイト (\0) は文字列終端として扱われます。 -この関数は、ヌルバイトが有効な内容の終端を示す C 形式の文字列やバイナリデータを処理する際に有用です。 +ヌルバイト (`\0`) は文字列終端として扱われます。 +この関数は、ヌルバイトが意味のある内容の終端を示す C 形式の文字列やバイナリデータを処理する際に有用です。 **構文** @@ -6854,11 +6887,11 @@ toStringCutToZero(s) **引数** -* `s` — 処理対象となる String または FixedString。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) +* `s` — 処理対象の String または FixedString。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) **戻り値** -最初のヌルバイトより前の文字からなる String を返します。[`String`](/sql-reference/data-types/string) +最初に現れるヌルバイトより前の文字列を含む String を返します。[`String`](/sql-reference/data-types/string) **例** @@ -6879,9 +6912,9 @@ SELECT ## toTime \{#toTime\} -導入: v1.1 +導入バージョン: v1.1 -入力値を型 [Time](/sql-reference/data-types/time) に変換します。 +入力値を [Time](/sql-reference/data-types/time) 型に変換します。 String、FixedString、DateTime、または午前0時からの経過秒数を表す数値型からの変換をサポートします。 **構文** @@ -6892,15 +6925,15 @@ toTime(x) **引数** -* `x` — 変換する入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`DateTime`](/sql-reference/data-types/datetime)、[`(U)Int*`](/sql-reference/data-types/int-uint)、または [`Float*`](/sql-reference/data-types/float) のいずれか。 +* `x` — 変換対象の入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`DateTime`](/sql-reference/data-types/datetime)、[`(U)Int*`](/sql-reference/data-types/int-uint)、または [`Float*`](/sql-reference/data-types/float) -**返り値** +**戻り値** 変換後の値を返します。[`Time`](/sql-reference/data-types/time) **使用例** -**String 型から Time 型への変換** +**String から Time への変換** ```sql title=Query SELECT toTime('14:30:25') @@ -6920,7 +6953,7 @@ SELECT toTime(toDateTime('2025-04-15 14:30:25')) 14:30:25 ``` -**整数を Time 型に変換** +**整数から Time 型への変換** ```sql title=Query SELECT toTime(52225) @@ -6935,9 +6968,9 @@ SELECT toTime(52225) 導入バージョン: v25.6 -入力値を型 [Time64](/sql-reference/data-types/time64) に変換します。 -String、FixedString、DateTime64、または真夜中(0時)からの経過マイクロ秒数を表す数値型からの変換をサポートします。 -時刻値に対してマイクロ秒単位の精度を提供します。 +入力値を [Time64](/sql-reference/data-types/time64) 型に変換します。 +String、FixedString、DateTime64、または午前0時からの経過マイクロ秒数を表す数値型からの変換をサポートします。 +時刻値に対してマイクロ秒精度を提供します。 **構文** @@ -6947,15 +6980,15 @@ toTime64(x) **引数** -* `x` — 変換する入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`DateTime64`](/sql-reference/data-types/datetime64)、[`(U)Int*`](/sql-reference/data-types/int-uint)、または [`Float*`](/sql-reference/data-types/float) +* `x` — 変換する入力値。[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`DateTime64`](/sql-reference/data-types/datetime64)、[`(U)Int*`](/sql-reference/data-types/int-uint)、または [`Float*`](/sql-reference/data-types/float) のいずれか。 -**返される値** +**返り値** -マイクロ秒単位の精度で変換された入力値を返します。[`Time64(6)`](/sql-reference/data-types/time64) +入力値をマイクロ秒精度で変換した値を返します。[`Time64(6)`](/sql-reference/data-types/time64) -**例** +**使用例** -**String 型から Time64 型への変換** +**String から Time64 への変換** ```sql title=Query SELECT toTime64('14:30:25.123456') @@ -6990,7 +7023,7 @@ SELECT toTime64(52225123456) 導入バージョン: v25.6 -入力値を `Time64` 型に変換しますが、エラーが発生した場合は `NULL` を返します。 +入力値を `Time64` 型の値に変換しますが、エラーが発生した場合には `NULL` を返します。 [`toTime64`](#toTime64) と同様ですが、変換エラー時に例外をスローする代わりに `NULL` を返します。 関連項目: @@ -7006,11 +7039,11 @@ toTime64OrNull(x) **引数** -* `x` — サブ秒精度付きの時刻の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — サブ秒精度の時刻の文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は Time64 型の値を返し、それ以外の場合は `NULL` を返します。[`Time64`](/sql-reference/data-types/time64) または [`NULL`](/sql-reference/syntax#null) +成功した場合は Time64 型の値を返し、そうでない場合は `NULL` を返します。[`Time64`](/sql-reference/data-types/time64) または [`NULL`](/sql-reference/syntax#null) **例** @@ -7029,10 +7062,10 @@ SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid') ## toTime64OrZero \{#toTime64OrZero\} -導入されたバージョン: v25.6 +導入バージョン: v25.6 -入力値を Time64 型の値に変換しますが、エラーが発生した場合は `00:00:00.000` を返します。 -[`toTime64`](#toTime64) と同様ですが、変換エラー時に例外をスローする代わりに `00:00:00.000` を返します。 +入力値を Time64 型の値に変換し、エラーが発生した場合は `00:00:00.000` を返します。 +[`toTime64`](#toTime64) と同様ですが、変換エラーが発生した場合でも例外をスローせず、代わりに `00:00:00.000` を返します。 **構文** @@ -7042,11 +7075,11 @@ toTime64OrZero(x) **引数** -* `x` — サブ秒精度を持つ時刻を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — サブ秒精度の時刻文字列表現。[`String`](/sql-reference/data-types/string) **戻り値** -成功した場合は Time64 値を返し、失敗した場合は `00:00:00.000` を返します。[`Time64`](/sql-reference/data-types/time64) +成功した場合は `Time64` 型の値、それ以外の場合は `00:00:00.000` を返します。[`Time64`](/sql-reference/data-types/time64) **例** @@ -7067,8 +7100,8 @@ SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid') 導入バージョン: v1.1 -入力値を `Time` 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 -変換エラー時に例外をスローする代わりに `NULL` を返す点を除き、[`toTime`](#toTime) と同様です。 +入力値を Time 型に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toTime`](#toTime) と同様の動作をしますが、変換エラー時に例外をスローする代わりに `NULL` を返します。 関連項目: @@ -7085,9 +7118,9 @@ toTimeOrNull(x) * `x` — 時刻を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -成功した場合は Time 型の値を返し、そうでない場合は `NULL` を返します。[`Time`](/sql-reference/data-types/time) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は Time 型の値を返し、そうでない場合は `NULL` を返します。[`Time`](/sql-reference/data-types/time) または [`NULL`](/sql-reference/syntax#null) **例** @@ -7108,7 +7141,7 @@ SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid') 導入バージョン: v1.1 -入力値を Time 型に変換しますが、エラーが発生した場合は `00:00:00` を返します。 +入力値を Time 型の値に変換しますが、エラーが発生した場合は `00:00:00` を返します。 toTime と同様に動作しますが、変換エラー時に例外をスローする代わりに `00:00:00` を返します。 **構文** @@ -7123,7 +7156,7 @@ toTimeOrZero(x) **戻り値** -変換に成功した場合は Time 型の値を返し、失敗した場合は `00:00:00` を返します。[`Time`](/sql-reference/data-types/time) +成功した場合は `Time` の値を返し、失敗した場合は `00:00:00` を返します。[`Time`](/sql-reference/data-types/time) **例** @@ -7145,18 +7178,18 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') 導入バージョン: v1.1 入力値を [`UInt128`](/sql-reference/functions/type-conversion-functions#toUInt128) 型の値に変換します。 -エラーが発生した場合には例外をスローします。 -関数はゼロ方向への丸めを使用し、数値の小数桁を切り捨てます。 +エラーが発生した場合は例外をスローします。 +この関数はゼロ方向への丸めを行い、数値の小数部を切り捨てます。 サポートされる引数: -* 型 (U)Int* の値またはその文字列表現。 +* 型 (U)Int* の値、またはその文字列表現。 * 型 Float* の値。 サポートされない引数: * `NaN` や `Inf` を含む、型 Float* の値の文字列表現。 -* `SELECT toUInt128('0xc0fe');` のような、2進数および16進数値の文字列表現。 +* `SELECT toUInt128('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 :::note 入力値が UInt128 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 @@ -7179,7 +7212,7 @@ toUInt128(expr) * `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**返される値** +**戻り値** 128 ビットの符号なし整数値を返します。[`UInt128`](/sql-reference/data-types/int-uint) @@ -7209,7 +7242,7 @@ toUInt128('128'): 128 導入バージョン: v21.11 [`toUInt128`](#toUInt128) と同様に、この関数は入力値を [`UInt128`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が指定されていない場合、エラーが発生したときは `0` が返されます。 +`default` 引数が指定されていない場合は、エラー時に `0` が返されます。 **構文** @@ -7219,12 +7252,12 @@ toUInt128OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可。パースに失敗した場合に返すデフォルト値。[`UInt128`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。解析に失敗した場合に返される既定値。[`UInt128`](/sql-reference/data-types/int-uint) **戻り値** -変換に成功した場合は `UInt128` 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt128`](/sql-reference/data-types/int-uint) +成功した場合は `UInt128` 型の値を返し、失敗した場合は、指定されている場合は既定値を返し、指定されていない場合は 0 を返します。[`UInt128`](/sql-reference/data-types/int-uint) **例** @@ -7238,7 +7271,7 @@ SELECT toUInt128OrDefault('128', CAST('0', 'UInt128')) 128 ``` -**変換に失敗** +**変換失敗** ```sql title=Query SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) @@ -7251,9 +7284,9 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) ## toUInt128OrNull \{#toUInt128OrNull\} -導入バージョン: v21.6 +導入されたバージョン: v21.6 -[`toUInt128`](#toUInt128) と同様に、この関数は入力値を [`UInt128`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合には `NULL` を返します。 +[`toUInt128`](#toUInt128) と同様に、この関数は入力値を [`UInt128`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 サポートされる引数: @@ -7261,11 +7294,11 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* 2 進数および 16 進数値の文字列表現。例: `SELECT toUInt128OrNull('0xc0fe');`。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt128OrNull('0xc0fe');`)。 :::note -入力値が [`UInt128`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 +入力値が [`UInt128`](../data-types/int-uint.md) の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。 ::: @@ -7285,9 +7318,9 @@ toUInt128OrNull(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -UInt128 型の値を返します。変換に失敗した場合は `NULL` を返します。[`UInt128`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は UInt128 型の値を返し、失敗した場合は `NULL` を返します。[`UInt128`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -7312,7 +7345,7 @@ toUInt128OrNull('abc'): \N 導入バージョン: v1.1 -[`toUInt128`](#toUInt128) と同様に、この関数は入力値を [`UInt128`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合には `0` を返します。 +[`toUInt128`](#toUInt128) と同様に、この関数は入力値を [`UInt128`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 サポートされる引数: @@ -7321,10 +7354,11 @@ toUInt128OrNull('abc'): \N サポートされない引数(`0` を返す): * `NaN` や `Inf` を含む Float* 値の文字列表現。 -* 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt128OrZero('0xc0fe');`)。 +* `SELECT toUInt128OrZero('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 :::note -入力値が [`UInt128`](../data-types/int-uint.md) の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生しますが、これはエラーとは見なされません。 +入力値が [`UInt128`](../data-types/int-uint.md) の表現可能な範囲外の場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとは見なされません。 ::: 関連項目: @@ -7341,9 +7375,9 @@ toUInt128OrZero(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** 変換に成功した場合は UInt128 型の値を返し、失敗した場合は `0` を返します。[`UInt128`](/sql-reference/data-types/int-uint) @@ -7370,27 +7404,27 @@ toUInt128OrZero('abc'): 0 導入バージョン: v1.1 -入力値を [`UInt16`](../data-types/int-uint.md) 型の値に変換します。 +入力値を[`UInt16`](../data-types/int-uint.md)型の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: -* (U)Int* 型の値またはその文字列表現。 -* Float* 型の値。 +* 型が (U)Int* の値、またはその文字列表現。 +* 型が Float* の値。 サポートされない引数: * `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* `SELECT toUInt16('0xc0fe');` のような、2 進数値および 16 進数値の文字列表現。 +* 2 進数および 16 進数値の文字列表現。例: `SELECT toUInt16('0xc0fe');`。 :::note -入力値が [`UInt16`](../data-types/int-uint.md) の表現可能範囲外の場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとは見なされません。 +入力値が[`UInt16`](../data-types/int-uint.md)の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとはみなされません。 例: `SELECT toUInt16(65536) == 0;`。 ::: :::note -この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を行い、小数部分の桁を切り捨てます。 +この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を使用します。これは数値の小数部分を切り捨てることを意味します。 ::: 関連項目: @@ -7407,9 +7441,9 @@ toUInt16(expr) **引数** -* `expr` — 数値、または数値を表す文字列のいずれかを返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**戻り値** +**返される値** 16 ビット符号なし整数値を返します。[`UInt16`](/sql-reference/data-types/int-uint) @@ -7439,7 +7473,7 @@ toUInt16('16'): 16 導入バージョン: v21.11 [`toUInt16`](#toUInt16) と同様に、この関数は入力値を [UInt16](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が渡されていない場合、エラー時には `0` が返されます。 +`default` 値が渡されていない場合、エラーが発生した場合には `0` が返されます。 **構文** @@ -7450,11 +7484,11 @@ toUInt16OrDefault(expr[, default]) **引数** * `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。解析に失敗した場合に返されるデフォルト値。[`UInt16`](/sql-reference/data-types/int-uint) +* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`UInt16`](/sql-reference/data-types/int-uint) -**戻り値** +**返される値** -変換に成功した場合は UInt16 型の値を返します。失敗した場合は、デフォルト値が指定されていればその値を、指定されていなければ 0 を返します。[`UInt16`](/sql-reference/data-types/int-uint) +成功した場合は型 UInt16 の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt16`](/sql-reference/data-types/int-uint) **例** @@ -7468,7 +7502,7 @@ SELECT toUInt16OrDefault('16', CAST('0', 'UInt16')) 16 ``` -**変換失敗** +**変換失敗時** ```sql title=Query SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) @@ -7491,11 +7525,11 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) サポートされない引数(`NULL` を返す): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* `SELECT toUInt16OrNull('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* 2 進数および 16 進数値の文字列表現。例: `SELECT toUInt16OrNull('0xc0fe');`。 :::note -入力値が [`UInt16`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 +入力値が [`UInt16`](../data-types/int-uint.md) の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。 ::: @@ -7515,7 +7549,7 @@ toUInt16OrNull(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返り値** 変換が成功した場合は型 `UInt16` の値を返し、失敗した場合は `NULL` を返します。[`UInt16`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) @@ -7551,11 +7585,11 @@ toUInt16OrNull('abc'): \N サポートされない引数(`0` を返す): * `NaN` や `Inf` を含む Float* 値の文字列表現。 -* `SELECT toUInt16OrZero('0xc0fe');` のような、バイナリ値および 16 進値の文字列表現。 +* バイナリ値や 16 進数値の文字列表現(例: `SELECT toUInt16OrZero('0xc0fe');`)。 :::note -入力値が [`UInt16`](../data-types/int-uint.md) の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 -これはエラーとは見なされません。 +入力値が [`UInt16`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとはみなされません。 ::: 関連項目: @@ -7572,11 +7606,11 @@ toUInt16OrZero(x) **引数** -* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -変換が成功した場合は `UInt16` 型の値を返し、変換に失敗した場合は `0` を返します。[`UInt16`](/sql-reference/data-types/int-uint) +UInt16 型の値を返します。変換に失敗した場合は `0` を返します。[`UInt16`](/sql-reference/data-types/int-uint) **例** @@ -7603,7 +7637,7 @@ toUInt16OrZero('abc'): 0 入力値を UInt256 型の値に変換します。 エラーが発生した場合は例外をスローします。 -この関数はゼロ方向への丸めを行い、数値の小数桁を切り捨てます。 +この関数は 0 に向かって丸めを行い、小数部を切り捨てます。 サポートされる引数: @@ -7613,7 +7647,7 @@ toUInt16OrZero('abc'): 0 サポートされない引数: * `NaN` や `Inf` を含む、型 Float* の値の文字列表現。 -* `SELECT toUInt256('0xc0fe');` のような、2 進数および 16 進数の値の文字列表現。 +* 2 進数および 16 進数の値の文字列表現(例: `SELECT toUInt256('0xc0fe');`)。 :::note 入力値が UInt256 の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 @@ -7622,9 +7656,9 @@ toUInt16OrZero('abc'): 0 関連項目: -* [`toUInt256OrZero`](#toUInt256OrZero)。 -* [`toUInt256OrNull`](#toUInt256OrNull)。 -* [`toUInt256OrDefault`](#toUInt256OrDefault)。 +* [`toUInt256OrZero`](#toUInt256OrZero) +* [`toUInt256OrNull`](#toUInt256OrNull) +* [`toUInt256OrDefault`](#toUInt256OrDefault) **構文** @@ -7634,11 +7668,11 @@ toUInt256(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。 [`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -256 ビットの符号なし整数値を返します。[`UInt256`](/sql-reference/data-types/int-uint) +256ビットの符号なし整数値を返します。 [`UInt256`](/sql-reference/data-types/int-uint) **例** @@ -7663,10 +7697,10 @@ toUInt256('256'): 256 ## toUInt256OrDefault \{#toUInt256OrDefault\} -導入: v21.11 +導入バージョン: v21.11 [`toUInt256`](#toUInt256) と同様に、この関数は入力値を [UInt256](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が渡されない場合、エラー時には `0` が返されます。 +`default` 値が指定されていない場合は、エラー時に `0` が返されます。 **構文** @@ -7677,15 +7711,15 @@ toUInt256OrDefault(expr[, default]) **引数** * `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。解析(パース)に失敗した場合に返されるデフォルト値。[`UInt256`](/sql-reference/data-types/int-uint) +* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`UInt256`](/sql-reference/data-types/int-uint) **戻り値** -成功した場合は `UInt256` 型の値を返し、失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt256`](/sql-reference/data-types/int-uint) +成功した場合は `UInt256` 型の値を返します。失敗した場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt256`](/sql-reference/data-types/int-uint) **例** -**変換が成功する例** +**成功した変換** ```sql title=Query SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256')) @@ -7695,7 +7729,7 @@ SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256')) 0 ``` -**変換に失敗した場合** +**変換に失敗** ```sql title=Query SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) @@ -7710,7 +7744,7 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) 導入バージョン: v20.8 -[`toUInt256`](#toUInt256) と同様に、この関数は入力値を [`UInt256`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toUInt256`](#toUInt256) と同様に、この関数は入力値を [`UInt256`](../data-types/int-uint.md) 型の値に変換しますが、エラー発生時には `NULL` を返します。 サポートされる引数: @@ -7718,15 +7752,15 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) サポートされない引数(`NULL` を返す): -* `NaN` および `Inf` を含む Float* 値の文字列表現。 -* `SELECT toUInt256OrNull('0xc0fe');` のような、2 進数および 16 進数の値を表す文字列表現。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* `SELECT toUInt256OrNull('0xc0fe');` のような、2 進数および 16 進数の値の文字列表現。 :::note -入力値が [`UInt256`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [`UInt256`](../data-types/int-uint.md) の範囲内で表現できない場合、結果にオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: -参照: +関連項目: * [`toUInt256`](#toUInt256)。 * [`toUInt256OrZero`](#toUInt256OrZero)。 @@ -7742,9 +7776,9 @@ toUInt256OrNull(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -変換が成功した場合は型 `UInt256` の値を返し、失敗した場合は `NULL` を返します。[`UInt256`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は UInt256 型の値を返し、失敗した場合は `NULL` を返します。[`UInt256`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -7773,15 +7807,15 @@ toUInt256OrNull('abc'): \N サポートされる引数: -* (U)Int* 型の値の文字列表現。 +* (U)Int* の文字列表現。 サポートされない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* `SELECT toUInt256OrZero('0xc0fe');` のような、2進数および16進数の値の文字列表現。 +* `NaN` や `Inf` を含む Float* 値の文字列表現。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt256OrZero('0xc0fe');`)。 :::note -入力値が [`UInt256`](../data-types/int-uint.md) の範囲で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 +入力値が [`UInt256`](../data-types/int-uint.md) の範囲で表現できない場合、結果にはオーバーフローまたはアンダーフローが発生します。 これはエラーとは見なされません。 ::: @@ -7801,9 +7835,9 @@ toUInt256OrZero(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -型 `UInt256` の値。変換に失敗した場合は `0` を返します。[`UInt256`](/sql-reference/data-types/int-uint) +UInt256 型の値を返します。変換に失敗した場合は `0` を返します。[`UInt256`](/sql-reference/data-types/int-uint) **例** @@ -7826,36 +7860,36 @@ toUInt256OrZero('abc'): 0 ## toUInt32 \{#toUInt32\} -導入バージョン: v1.1 +導入: v1.1 入力値を [`UInt32`](../data-types/int-uint.md) 型の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: -* 型が (U)Int* の値、またはその文字列表現。 -* 型が Float* の値。 +* 型 (U)Int* の値、またはその文字列表現。 +* 型 Float* の値。 サポートされない引数: * `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* `SELECT toUInt32('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 +* `SELECT toUInt32('0xc0fe');` のような、2進数および16進数値の文字列表現。 :::note 入力値が [`UInt32`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +これはエラーとは見なされません。 例: `SELECT toUInt32(4294967296) == 0;` ::: :::note -この関数は [ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero) を使用し、小数部の桁を切り捨てます。 +この関数は [ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero) を行います。つまり、小数部の桁を切り捨てます。 ::: -関連項目: +参照: -* [`toUInt32OrZero`](#toUInt32OrZero) -* [`toUInt32OrNull`](#toUInt32OrNull) -* [`toUInt32OrDefault`](#toUInt32OrDefault) +* [`toUInt32OrZero`](#toUInt32OrZero)。 +* [`toUInt32OrNull`](#toUInt32OrNull)。 +* [`toUInt32OrDefault`](#toUInt32OrDefault)。 **構文** @@ -7865,11 +7899,11 @@ toUInt32(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式です。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**戻り値** +**返される値** -32 ビットの符号なし整数値を返します。[`UInt32`](/sql-reference/data-types/int-uint) +32 ビット符号なし整数値を返します。[`UInt32`](/sql-reference/data-types/int-uint) **例** @@ -7896,8 +7930,8 @@ toUInt32('32'): 32 導入バージョン: v21.11 -[`toUInt32`](#toUInt32) と同様に、この関数は入力値を型 [UInt32](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 -`default` 値が渡されない場合は、エラー時に `0` が返されます。 +[`toUInt32`](#toUInt32) と同様に、この関数は入力値を [UInt32](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +`default` 値が指定されていない場合、エラー時には `0` が返されます。 **構文** @@ -7907,12 +7941,12 @@ toUInt32OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。パースに失敗した場合に返す既定値。[`UInt32`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。解析に失敗した場合に返す既定値。[`UInt32`](/sql-reference/data-types/int-uint) **戻り値** -成功した場合は UInt32 型の値を返します。失敗した場合は、既定値が指定されていればその値を、指定されていなければ 0 を返します。[`UInt32`](/sql-reference/data-types/int-uint) +成功した場合は型 UInt32 の値を返します。失敗した場合は、指定されていれば既定値を返し、指定されていなければ 0 を返します。[`UInt32`](/sql-reference/data-types/int-uint) **例** @@ -7947,17 +7981,16 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) * (U)Int8/16/32/128/256 の文字列表現。 -サポートされない引数(`NULL` を返す): +サポートされない引数(`NULL` を返します): -* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 +* `NaN` や `Inf` を含む Float* 型値の文字列表現。 * 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt32OrNull('0xc0fe');`)。 :::note -入力値が [`UInt32`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとはみなされません。 +入力値が [`UInt32`](../data-types/int-uint.md) の範囲内で表現できない場合、結果としてオーバーフローまたはアンダーフローが発生しますが、これはエラーとはみなされません。 ::: -参照: +関連項目: * [`toUInt32`](#toUInt32)。 * [`toUInt32OrZero`](#toUInt32OrZero)。 @@ -7975,7 +8008,7 @@ toUInt32OrNull(x) **戻り値** -変換に成功した場合は型 `UInt32` の値を返し、失敗した場合は `NULL` を返します。[`UInt32`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +型 `UInt32` の値を返します。変換に失敗した場合は `NULL` を返します。[`UInt32`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -8000,7 +8033,7 @@ toUInt32OrNull('abc'): \N 導入バージョン: v1.1 -[`toUInt32`](#toUInt32) と同様に、この関数は入力値を [`UInt32`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合には `0` を返します。 +[`toUInt32`](#toUInt32) と同様に、この関数は入力値を [`UInt32`](../data-types/int-uint.md) 型の値に変換しますが、エラーの場合は `0` を返します。 サポートされる引数: @@ -8008,11 +8041,11 @@ toUInt32OrNull('abc'): \N サポートされない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 値の文字列表現。 -* `SELECT toUInt32OrZero('0xc0fe');` のような、2 進数値や 16 進数値の文字列表現。 +* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 +* `SELECT toUInt32OrZero('0xc0fe');` のような、2進数および16進数値の文字列表現。 :::note -入力値が [`UInt32`](../data-types/int-uint.md) の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 +入力値が [`UInt32`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。 ::: @@ -8034,7 +8067,7 @@ toUInt32OrZero(x) **戻り値** -変換に成功した場合は型 `UInt32` の値を返し、失敗した場合は `0` を返します。[`UInt32`](/sql-reference/data-types/int-uint) +変換に成功した場合は `UInt32` 型の値を返し、失敗した場合は `0` を返します。[`UInt32`](/sql-reference/data-types/int-uint) **例** @@ -8059,34 +8092,34 @@ toUInt32OrZero('abc'): 0 導入バージョン: v1.1 -入力値を[`UInt64`](../data-types/int-uint.md)型の値に変換します。 +入力値を [`UInt64`](../data-types/int-uint.md) 型の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: -* 型 (U)Int* の値またはその文字列表現。 +* 型 (U)Int* の値、またはその文字列表現。 * 型 Float* の値。 サポートされない型: -* `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* バイナリ値および 16 進値の文字列表現(例: `SELECT toUInt64('0xc0fe');`)。 +* `NaN` や `Inf` を含む、型 Float* の値の文字列表現。 +* 2 進数値および 16 進数値の文字列表現 (例: `SELECT toUInt64('0xc0fe');`)。 :::note -入力値が[`UInt64`](../data-types/int-uint.md)の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -これはエラーとは見なされません。 +入力値が [`UInt64`](../data-types/int-uint.md) の表現可能範囲外となる場合、結果はオーバーフローまたはアンダーフローします。 +これはエラーとはみなされません。 例: `SELECT toUInt64(18446744073709551616) == 0;` ::: :::note -この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を行います。つまり、小数部の桁を切り捨てます。 +この関数は[0 への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を行います。つまり、小数部分の桁を切り捨てます。 ::: 関連項目: -* [`toUInt64OrZero`](#toUInt64OrZero)。 -* [`toUInt64OrNull`](#toUInt64OrNull)。 -* [`toUInt64OrDefault`](#toUInt64OrDefault)。 +* [`toUInt64OrZero`](#toUInt64OrZero) +* [`toUInt64OrNull`](#toUInt64OrNull) +* [`toUInt64OrDefault`](#toUInt64OrDefault) **構文** @@ -8096,11 +8129,11 @@ toUInt64(expr) **引数** -* `expr` — 数値または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値を表す文字列を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **戻り値** -64 ビット符号なし整数値を返します。[`UInt64`](/sql-reference/data-types/int-uint) +64 ビットの符号なし整数値を返します。[`UInt64`](/sql-reference/data-types/int-uint) **例** @@ -8128,7 +8161,7 @@ toUInt64('64'): 64 導入バージョン: v21.11 [`toUInt64`](#toUInt64) と同様に、この関数は入力値を [UInt64](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合にはデフォルト値を返します。 -`default` 引数が渡されていない場合は、エラー時に `0` が返されます。 +`default` 値が渡されない場合、エラー時には `0` が返されます。 **構文** @@ -8138,12 +8171,12 @@ toUInt64OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式です。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`UInt64`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。変換に失敗した場合に返されるデフォルト値。[`UInt64`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** -成功した場合は UInt64 型の値を返し、そうでない場合は、指定されていればデフォルト値を返し、指定されていなければ 0 を返します。[`UInt64`](/sql-reference/data-types/int-uint) +成功した場合は `UInt64` 型の値を返し、失敗した場合は `default` が指定されていればその値を、指定されていなければ 0 を返します。[`UInt64`](/sql-reference/data-types/int-uint) **例** @@ -8172,19 +8205,19 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) 導入バージョン: v1.1 -[`toUInt64`](#toUInt64) と同様に、この関数は入力値を [`UInt64`](../data-types/int-uint.md) 型の値に変換しますが、エラーの場合は `NULL` を返します。 +[`toUInt64`](#toUInt64) と同様に、この関数は入力値を [`UInt64`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 サポートされる引数: -* (U)Int* の文字列表現。 +* (U)Int* 型の値の文字列表現。 サポートされない引数(`NULL` を返す): * `NaN` や `Inf` を含む Float* 型の値の文字列表現。 -* 2進数および16進数の文字列表現(例: `SELECT toUInt64OrNull('0xc0fe');`)。 +* `SELECT toUInt64OrNull('0xc0fe');` のような、2 進数および 16 進数値の文字列表現。 :::note -入力値が [`UInt64`](../data-types/int-uint.md) の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローを起こします。 +入力値が [`UInt64`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとはみなされません。 ::: @@ -8202,11 +8235,11 @@ toUInt64OrNull(x) **引数** -* `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) +* `x` — 数値の文字列表現。[`String`](/sql-reference/data-types/string) -**返される値** +**戻り値** -変換が成功した場合は `UInt64` 型の値を返し、失敗した場合は `NULL` を返します。[`UInt64`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は型 UInt64 の値を返し、失敗した場合は `NULL` を返します。[`UInt64`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -8231,19 +8264,19 @@ toUInt64OrNull('abc'): \N 導入バージョン: v1.1 -[`toUInt64`](#toUInt64) と同様に、この関数は入力値を型 [`UInt64`](../data-types/int-uint.md) の値に変換しますが、エラーが発生した場合は `0` を返します。 +[`toUInt64`](#toUInt64) と同様に、この関数は入力値を [`UInt64`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 サポートされる引数: -* (U)Int* の文字列表現。 +* (U)Int* 型の値の文字列表現。 サポートされない引数(`0` を返す): -* `NaN` や `Inf` を含む Float* 値の文字列表現。 -* `SELECT toUInt64OrZero('0xc0fe');` のようなバイナリ値および 16 進値の文字列表現。 +* `NaN` や `Inf` を含む Float* 型の値の文字列表現。 +* 2進数および16進数値の文字列表現(例: `SELECT toUInt64OrZero('0xc0fe');`)。 :::note -入力値が [`UInt64`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローが発生します。 +入力値が [`UInt64`](../data-types/int-uint.md) の範囲で表現できない場合、結果はオーバーフローまたはアンダーフローした値になります。 これはエラーとは見なされません。 ::: @@ -8290,34 +8323,34 @@ toUInt64OrZero('abc'): 0 導入バージョン: v1.1 -入力値を [`UInt8`](../data-types/int-uint.md) 型に変換します。 +入力値を [`UInt8`](../data-types/int-uint.md) 型の値に変換します。 エラーが発生した場合は例外をスローします。 サポートされる引数: -* 型 (U)Int* の値またはその文字列表現。 -* 型 Float* の値。 +* (U)Int* 型の値またはその文字列表現。 +* Float* 型の値。 サポートされない引数: * `NaN` や `Inf` を含む、Float* 値の文字列表現。 -* 2進数および16進数による値の文字列表現。例: `SELECT toUInt8('0xc0fe');`。 +* 2 進数および 16 進数値の文字列表現。例: `SELECT toUInt8('0xc0fe');`。 :::note -入力値が [UInt8](../data-types/int-uint.md) の範囲内で表現できない場合、結果のオーバーフローまたはアンダーフローが発生します。 -これはエラーとは見なされません。 +入力値が [UInt8](../data-types/int-uint.md) の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 +これはエラーとはみなされません。 例: `SELECT toUInt8(256) == 0;`。 ::: :::note -この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を使用します。これは数値の小数部を切り捨てることを意味します。 +この関数は[ゼロ方向への丸め](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)を使用します。つまり、小数部の桁を切り捨てます。 ::: 関連項目: -* [`toUInt8OrZero`](#toUInt8OrZero)。 -* [`toUInt8OrNull`](#toUInt8OrNull)。 -* [`toUInt8OrDefault`](#toUInt8OrDefault)。 +* [`toUInt8OrZero`](#toUInt8OrZero) +* [`toUInt8OrNull`](#toUInt8OrNull) +* [`toUInt8OrDefault`](#toUInt8OrDefault) **構文** @@ -8327,11 +8360,11 @@ toUInt8(expr) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。 [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 数値、または数値の文字列表現を返す式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -**戻り値** +**返される値** -8ビット符号なし整数値を返します。 [`UInt8`](/sql-reference/data-types/int-uint) +8 ビット符号なし整数値を返します。[`UInt8`](/sql-reference/data-types/int-uint) **例** @@ -8358,8 +8391,8 @@ toUInt8('8'): 8 導入バージョン: v21.11 -[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [UInt8](../data-types/int-uint.md) 型の値に変換しますが、エラー発生時にはデフォルト値を返します。 -`default` 引数が指定されていない場合、エラー発生時には `0` が返されます。 +[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [UInt8](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合はデフォルト値を返します。 +`default` 引数が指定されない場合は、エラー時には `0` が返されます。 **構文** @@ -8369,12 +8402,12 @@ toUInt8OrDefault(expr[, default]) **引数** -* `expr` — 数値、または数値を表す文字列を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) -* `default` — 省略可。変換に失敗した場合に返されるデフォルト値。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 数値、または数値の文字列表現を返す式。[`String`](/sql-reference/data-types/string) または [`(U)Int*`](/sql-reference/data-types/int-uint) または [`Float*`](/sql-reference/data-types/float) +* `default` — 省略可能。パースに失敗した場合に返されるデフォルト値。[`UInt8`](/sql-reference/data-types/int-uint) **戻り値** -成功した場合は UInt8 型の値を返し、失敗した場合は指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) +成功した場合は UInt8 型の値を返し、そうでない場合は、指定されていればデフォルト値を、指定されていなければ 0 を返します。[`UInt8`](/sql-reference/data-types/int-uint) **例** @@ -8388,7 +8421,7 @@ SELECT toUInt8OrDefault('8', CAST('0', 'UInt8')) 8 ``` -**変換に失敗** +**変換失敗** ```sql title=Query SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) @@ -8403,7 +8436,7 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) 導入バージョン: v1.1 -[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [`UInt8`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `NULL` を返します。 +[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [`UInt8`](../data-types/int-uint.md) 型の値に変換しますが、エラー時には `NULL` を返します。 サポートされる引数: @@ -8412,11 +8445,11 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) サポートされない引数(`NULL` を返す): * `NaN` や `Inf` を含む、通常の Float* 値の文字列表現。 -* 2 進数および 16 進数値の文字列表現。例: `SELECT toUInt8OrNull('0xc0fe');`。 +* 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt8OrNull('0xc0fe');`)。 :::note -入力値が [`UInt8`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 -この場合もエラーとは見なされません。 +入力値が [`UInt8`](../data-types/int-uint.md) の範囲で表現できない場合、結果でオーバーフローまたはアンダーフローが発生します。 +これはエラーとは見なされません。 ::: 関連項目: @@ -8435,9 +8468,9 @@ toUInt8OrNull(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -変換が成功した場合は型 UInt8 の値を返し、失敗した場合は `NULL` を返します。[`UInt8`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) +変換に成功した場合は `UInt8` 型の値を返し、変換に失敗した場合は `NULL` を返します。[`UInt8`](/sql-reference/data-types/int-uint) または [`NULL`](/sql-reference/syntax#null) **例** @@ -8462,7 +8495,7 @@ toUInt8OrNull('abc'): \N 導入バージョン: v1.1 -[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [`UInt8`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合は `0` を返します。 +[`toUInt8`](#toUInt8) と同様に、この関数は入力値を [`UInt8`](../data-types/int-uint.md) 型の値に変換しますが、エラーが発生した場合には `0` を返します。 サポートされる引数: @@ -8470,15 +8503,15 @@ toUInt8OrNull('abc'): \N サポートされない引数(`0` を返す): -* 通常の Float* 型の値(`NaN` や `Inf` を含む)の文字列表現。 -* 2 進数および 16 進数値の文字列表現(例: `SELECT toUInt8OrZero('0xc0fe');`)。 +* 一般的な Float* 型値の文字列表現(`NaN` および `Inf` を含む)。 +* 2 進値および 16 進値の文字列表現(例: `SELECT toUInt8OrZero('0xc0fe');`)。 :::note -入力値が [`UInt8`](../data-types/int-uint.md) の範囲内で表現できない場合、結果がオーバーフローまたはアンダーフローします。 +入力値が [`UInt8`](../data-types/int-uint.md) の範囲内で表現できない場合、結果はオーバーフローまたはアンダーフローします。 これはエラーとは見なされません。 ::: -参照: +関連項目: * [`toUInt8`](#toUInt8)。 * [`toUInt8OrNull`](#toUInt8OrNull)。 @@ -8494,9 +8527,9 @@ toUInt8OrZero(x) * `x` — 数値を表す文字列。[`String`](/sql-reference/data-types/string) -**返り値** +**戻り値** -変換に成功した場合は UInt8 型の値を返し、失敗した場合は `0` を返します。[`UInt8`](/sql-reference/data-types/int-uint) +`UInt8` 型の値を返します。変換に失敗した場合は `0` を返します。[`UInt8`](/sql-reference/data-types/int-uint) **例** @@ -8519,9 +8552,9 @@ toUInt8OrZero('abc'): 0 ## toUUID \{#toUUID\} -バージョン v1.1 で導入。 +導入バージョン: v1.1 -String の値を UUID 型の値に変換します。 +String 型の値を UUID 型の値に変換します。 **構文** @@ -8533,7 +8566,7 @@ toUUID(string) * `string` — UUID を表す文字列。[`String`](/sql-reference/data-types/string) または [`FixedString`](/sql-reference/data-types/fixedstring) -**返される値** +**戻り値** UUID の文字列表現から UUID 型の値を返します。[`UUID`](/sql-reference/data-types/uuid) @@ -8556,18 +8589,18 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid 導入バージョン: v20.12 -入力値を [UUID](../data-types/uuid.md) 型の値に変換しますが、エラーが発生した場合はゼロ UUID を返します。 +入力値を [UUID](../data-types/uuid.md) 型の値に変換しますが、エラー時にはゼロ UUID を返します。 [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID) と同様ですが、変換エラー時に例外をスローする代わりにゼロ UUID(`00000000-0000-0000-0000-000000000000`)を返します。 サポートされる引数: -* 標準形式の UUID の文字列表現(8-4-4-4-12 個の 16 進数)。 +* 標準形式での UUID の文字列表現(8-4-4-4-12 個の 16 進数)。 * ハイフンなしの UUID の文字列表現(32 個の 16 進数)。 サポートされない引数(ゼロ UUID を返す): * 無効な文字列形式。 -* 文字列以外の型。 +* 文字列型以外の型。 **構文** @@ -8577,11 +8610,11 @@ toUUIDOrZero(x) **引数** -* `x` — UUID を表す文字列表現。[`String`](/sql-reference/data-types/string) +* `x` — UUID の文字列表現。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -成功した場合は UUID 値を返し、失敗した場合はゼロ UUID(`00000000-0000-0000-0000-000000000000`)を返します。[`UUID`](/sql-reference/data-types/uuid) +成功した場合は UUID の値を返し、失敗した場合はゼロ UUID (`00000000-0000-0000-0000-000000000000`) を返します。[`UUID`](/sql-reference/data-types/uuid) **例** @@ -8604,11 +8637,11 @@ SELECT 導入バージョン: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64) を、マイクロ秒精度が固定された [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 -入力値は、その精度に応じて適切にスケーリングされて拡大または縮小されます。 +[`DateTime64`](/sql-reference/data-types/datetime64) を固定のマイクロ秒精度を持つ [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 +入力値は、その精度に応じて適切に拡大または縮小されます。 :::note -出力値は、入力値のタイムゾーンではなく、UTC を基準にしています。 +出力値は入力値のタイムゾーンではなく、UTC を基準とします。 ::: **構文** @@ -8619,9 +8652,9 @@ toUnixTimestamp64Micro(value) **引数** -* `value` — 任意の精度を持つ DateTime64 型の値。[`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 任意の精度を持つ DateTime64 値。[`DateTime64`](/sql-reference/data-types/datetime64) -**戻り値** +**返される値** マイクロ秒単位の Unix タイムスタンプを返します。[`Int64`](/sql-reference/data-types/int-uint) @@ -8645,11 +8678,11 @@ SELECT toUnixTimestamp64Micro(dt64); 導入バージョン: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64) を固定ミリ秒精度の [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 -入力値は、その精度に応じて適切にスケールアップまたはスケールダウンされます。 +[`DateTime64`](/sql-reference/data-types/datetime64) を、ミリ秒単位の固定精度を持つ [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 +入力値は、その精度に応じて適切に拡大または縮小されます。 :::note -出力値は、入力値のタイムゾーンではなく、UTC を基準とします。 +出力値は入力値のタイムゾーンではなく、UTC を基準とします。 ::: **構文** @@ -8664,7 +8697,7 @@ toUnixTimestamp64Milli(value) **戻り値** -ミリ秒単位の Unix タイムスタンプを返します。[`Int64`](/sql-reference/data-types/int-uint) +Unix タイムスタンプ(ミリ秒単位)を返します。[`Int64`](/sql-reference/data-types/int-uint) **例** @@ -8686,11 +8719,11 @@ SELECT toUnixTimestamp64Milli(dt64); 導入バージョン: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64) を、ナノ秒の固定精度を持つ [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) 値に変換します。 -入力値は、その精度に応じて適切に拡大または縮小されます。 +[`DateTime64`](/sql-reference/data-types/datetime64) を、ナノ秒単位の固定精度を持つ [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) 値に変換します。 +入力値は、その精度に応じて適切にスケーリング(拡大または縮小)されます。 :::note -出力値は、入力値のタイムゾーンではなく、UTC を基準としています。 +出力値は、入力値のタイムゾーンではなく、UTC を基準とします。 ::: **構文** @@ -8701,11 +8734,11 @@ toUnixTimestamp64Nano(value) **引数** -* `value` — 任意の精度を持つ DateTime64 値。[`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 任意精度の DateTime64 値。[`DateTime64`](/sql-reference/data-types/datetime64) **戻り値** -ナノ秒精度の Unix タイムスタンプを返します。[`Int64`](/sql-reference/data-types/int-uint) +ナノ秒単位の Unix タイムスタンプを返します。[`Int64`](/sql-reference/data-types/int-uint) **例** @@ -8727,8 +8760,8 @@ SELECT toUnixTimestamp64Nano(dt64); 導入バージョン: v24.12 -[`DateTime64`](/sql-reference/data-types/datetime64) を秒単位の固定精度を持つ [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 -入力値は、その小数精度に応じて適切にスケールアップまたはスケールダウンされます。 +[`DateTime64`](/sql-reference/data-types/datetime64) を、秒単位の固定精度を持つ [`Int64`](/sql-reference/data-types/int-uint) 値に変換します。 +入力値の精度に応じて、値は適切にスケーリングされます。 :::note 出力値は入力値のタイムゾーンではなく、UTC を基準とします。 @@ -8742,7 +8775,7 @@ toUnixTimestamp64Second(value) **引数** -* `value` — 任意の精度を持つ DateTime64 型の値。[`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 任意の精度を持つ DateTime64 値。[`DateTime64`](/sql-reference/data-types/datetime64) **戻り値** diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md index 694a5a94ffe..63ece41a73d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md @@ -1,8 +1,8 @@ --- -description: 'URL を処理する関数のドキュメント' +description: 'URL を扱う関数のドキュメント' sidebar_label: 'URL' slug: /sql-reference/functions/url-functions -title: 'URL を処理する関数' +title: 'URL を扱う関数' doc_type: 'reference' --- @@ -11,12 +11,12 @@ doc_type: 'reference' ## 概要 \{#overview\} :::note -このセクションで言及されている関数は、最大のパフォーマンスを発揮するように最適化されており、ほとんどの場合 RFC-3986 標準には準拠していません。 -RFC-3986 を実装している関数は、関数名に `RFC` が付加されており、一般に処理が遅くなります。 +このセクションで説明する関数はパフォーマンスを最大化するよう最適化されており、多くの場合 RFC 3986 標準には準拠していません。 +RFC 3986 を実装している関数には、関数名に `RFC` が付与されており、一般的に非 `RFC` 版よりも低速です。 ::: -ユーザー情報文字列や `@` 記号を含まない公開登録ドメインを扱う場合は、通常は `RFC` なしの関数バリアントを使用できます。 -以下の表は、URL 内のどの記号が `RFC` 版および非 `RFC` 版によってパース可能(`✔`)または不可能(`✗`)かを示しています。 +ユーザー情報や `@` 記号を含まない、公開登録されたドメインを扱う場合は、通常は非 `RFC` 版の関数を使用できます。 +以下の表では、URL 内の記号のうち、対応する `RFC` 版および非 `RFC` 版の関数でパースできるもの(`✔`)とできないもの(`✗`)を示しています。 | Symbol | non-`RFC` | `RFC` | | | ----------- | --------- | ----- | - | @@ -37,30 +37,95 @@ RFC-3986 を実装している関数は、関数名に `RFC` が付加されて | = | ✗ | ✔* | | | & | ✗ | ✔* | | -`*` が付いている記号は RFC 3986 におけるサブデリミタであり、`@` 記号に続くユーザー情報で使用することが許可されています。 +`*` が付いている記号は RFC 3986 におけるサブデリミタであり、`@` 記号の後に続くユーザー情報として使用可能です。 URL 関数には次の 2 種類があります。 -* URL の一部を抽出する関数。該当部分が URL に存在しない場合は、空文字列が返されます。 -* URL の一部を削除する関数。削除対象となる部分が URL に存在しない場合、URL は変更されません。 +* URL の一部を抽出する関数。対象部分が URL に存在しない場合は空文字列を返します。 +* URL の一部を削除する関数。URL に該当する部分が存在しない場合、その URL は変更されません。 :::note -以下の関数は、`system.functions` システムテーブルから生成されています。 +以下の関数は `system.functions` システムテーブルから生成されています。 ::: {/* - 以下のタグ内のコンテンツは、ドキュメントフレームワークのビルド時に - system.functions から生成されたドキュメントに置き換えられます。タグを変更したり削除したりしないでください。 + 以下のタグ内の内容は、ドキュメントフレームワークのビルド時に + system.functions から生成されたドキュメントに置き換えられます。 + これらのタグを変更または削除しないでください。 詳細は https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md を参照してください。 */ } {/*AUTOGENERATED_START*/ } +## URLHierarchy \{#URLHierarchy\} + +導入バージョン: v1.1 + +パスおよびクエリ文字列内で、末尾を区切り記号 `/`、`?`、`#` の位置までで切り詰めた URL を要素とする配列を返します。連続する区切り記号は 1 つの区切りとして扱われます。結果では、最初の要素はプロトコルとホストのみで構成され、その後の要素はパスが徐々に長くなっていくことで階層を形成します。 + +**構文** + +```sql +URLHierarchy(url) +``` + +**引数** + +* `url` — 処理対象の URL。[`String`](/sql-reference/data-types/string) + +**返り値** + +階層を構成する、段階的に長くなる URL の配列を返します。[`Array(String)`](/sql-reference/data-types/array) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT URLHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1'] +``` + +## URLPathHierarchy \{#URLPathHierarchy\} + +導入バージョン: v1.1 + +URL のパスコンポーネント部分を含む配列を返し、その末尾は文字 `/`、`?`、`#` のいずれかで打ち切られます。`URLHierarchy` と異なり、結果にはプロトコルとホストは含まれず、パスから始まります。連続した区切り文字は 1 文字として扱われます。 + +**構文** + +```sql +URLPathHierarchy(url) +``` + +**引数** + +* `url` — 処理する URL。[`String`](/sql-reference/data-types/string) + +**戻り値** + +階層構造を成す、段階的に長くなっていく URL パスコンポーネントの配列を返します。[`Array(String)`](/sql-reference/data-types/array) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT URLPathHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['/a/','/a/b','/a/b?c=1'] +``` + ## cutFragment \{#cutFragment\} 導入バージョン: v1.1 -URL から、番号記号 (#) を含むフラグメント識別子を削除します。 +URL からフラグメント識別子(先頭の # を含む)を削除します。 **構文** @@ -94,7 +159,7 @@ SELECT cutFragment('http://example.com/path?query=value#fragment123'); 導入バージョン: v1.1 -URL からクエリ文字列(先頭の「?」を含む)を削除します。 +URL から `?` を含むクエリ文字列を削除します。 **構文** @@ -106,9 +171,9 @@ cutQueryString(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -クエリ文字列を削除したURLを返します。[`String`](/sql-reference/data-types/string) +クエリ文字列を除いた URL を返します。[`String`](/sql-reference/data-types/string) **例** @@ -128,7 +193,7 @@ SELECT cutQueryString('http://example.com/path?query=value¶m=123#fragment'); 導入バージョン: v1.1 -URL からクエリ文字列とフラグメント識別子(「?」と「#」を含む)を削除します。 +URL からクエリ文字列およびフラグメント識別子(先頭の `?` と `#` を含む)を削除します。 **構文** @@ -142,7 +207,7 @@ cutQueryStringAndFragment(url) **戻り値** -クエリ文字列およびフラグメント識別子を取り除いた URL を返します。[`String`](/sql-reference/data-types/string) +クエリ文字列およびフラグメント識別子を除去した URL を返します。[`String`](/sql-reference/data-types/string) **例** @@ -160,9 +225,9 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# ## cutToFirstSignificantSubdomain \{#cutToFirstSignificantSubdomain\} -導入: v1.1 +導入バージョン: v1.1 -トップレベルドメイン側から見て、[最初の重要なサブドメイン](/sql-reference/functions/url-functions#firstSignificantSubdomain) までのサブドメインを含むドメイン部分を返します。 +[最初の重要なサブドメイン](/sql-reference/functions/url-functions#firstSignificantSubdomain)までの上位サブドメインを含むドメイン名の一部を返します。 **構文** @@ -172,11 +237,11 @@ cutToFirstSignificantSubdomain(url) **引数** -* `url` — 処理する URL またはドメイン文字列。[`String`](/sql-reference/data-types/string) +* `url` — 処理対象の URL またはドメイン文字列。[`String`](/sql-reference/data-types/string) **戻り値** -可能な場合は、最初の主要なサブドメインまでを含むドメインの上位サブドメイン部分を返し、そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +可能な場合は、最初の重要なサブドメインまでのトップレベルサブドメインを含むドメイン部分を返し、そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -199,7 +264,7 @@ SELECT 導入バージョン: v21.1 -トップレベルドメイン配下のサブドメインを含め、最初の重要なサブドメインまでのドメイン部分を返します。カスタムの [TLD リスト](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 名を受け取ります。最新の TLD リストが必要な場合や、独自のリストを使用する場合に便利です。 +トップレベルドメインを含めて、最初の有意なサブドメインまでのドメイン名部分を返します。カスタムの [TLD リスト](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)名を引数として受け取ります。最新の TLD リストが必要な場合や、独自のリストを使用している場合に有用な関数です。 **設定例** @@ -208,7 +273,7 @@ SELECT public_suffix_list.dat - + ``` @@ -223,13 +288,13 @@ cutToFirstSignificantSubdomainCustom(url, tld_list_name) * `url` — 処理対象の URL またはドメイン文字列。[`String`](/sql-reference/data-types/string) * `tld_list_name` — ClickHouse で設定されたカスタム TLD リストの名前。[`const String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -最初の意味のあるサブドメインまでを含む、トップレベルドメイン配下のドメイン部分を返します。[`String`](/sql-reference/data-types/string) +最初の重要なサブドメインに達するまでの、トップレベル側のサブドメインを含むドメイン部分を返します。[`String`](/sql-reference/data-types/string) **例** -**非標準的なドメイン向けにカスタム TLD リストを使用する** +**非標準ドメイン向けにカスタム TLD リストを使用する** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list') @@ -243,19 +308,19 @@ foo.there-is-no-such-domain 導入バージョン: v22.10 -トップレベルドメインを含めて、最初の有意なサブドメインまでのドメイン部分を返します。 -カスタムの [TLD リスト](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)名を受け取ります。 -この関数は、新しい TLD リストが必要な場合や、カスタムリストを使用している場合に有用です。 +トップレベルドメインを含めて、最初の重要なサブドメインまでのドメイン部分を返します。 +カスタムの [TLD リスト](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) の名前を受け取ります。 +最新の TLD リストが必要な場合や、独自のリストを持っている場合に便利です。 [cutToFirstSignificantSubdomainCustom](#cutToFirstSignificantSubdomainCustom) と似ていますが、RFC 3986 に準拠しています。 -**設定例** +**構成例** ```xml public_suffix_list.dat - + ``` @@ -267,12 +332,11 @@ cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name) **引数** -* `url` — RFC 3986 に従って処理する URL またはドメイン文字列。 -* `tld_list_name` — ClickHouse で設定されたカスタム TLD リストの名前。 +* `url` — RFC 3986 に従って処理する URL またはドメインの文字列。- `tld_list_name` — ClickHouse で設定済みのカスタム TLD リスト名。 -**戻り値** +**返される値** -トップレベルドメインから最初の有意なサブドメインまでを含むドメイン部分を返します。[`String`](/sql-reference/data-types/string) +最初の重要なサブドメインまでの、トップレベルサブドメインを含むドメイン名の部分を返します。[`String`](/sql-reference/data-types/string) **例** @@ -292,33 +356,32 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); 導入バージョン: v21.1 -トップレベルのサブドメインを含めて、最初の重要なサブドメインまでのドメイン部分を、`www` を削除せずに返します。カスタム TLD リストの名前を受け取ります。最新の TLD リストを使いたい場合や、独自のリストを使用している場合に便利です。 +最初の重要なサブドメインに到達するまでの上位サブドメインを含むドメイン部分を、'www' を削除せずに返します。カスタム TLD リスト名を指定できます。最新の TLD リストが必要な場合や、独自のリストを使用している場合に便利です。 -**構成例** +**設定例** -```yaml +````yaml public_suffix_list.dat - + -**構文** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name) -``` +```` **引数** -* `url` — 処理対象の URL またはドメイン文字列。 -* `tld_list_name` — ClickHouse で設定されたカスタム TLD リストの名前。 +* `url` — 処理対象の URL またはドメイン文字列。 - `tld_list_name` — ClickHouse で設定されたカスタム TLD リスト名。 -**戻り値** +**返り値** -`www` を取り除かずに、最初の重要なサブドメインまでのトップレベルサブドメインを含むドメインの一部。[`String`](/sql-reference/data-types/string) +'www' を削除せず、最初の重要なサブドメインまでの上位サブドメインを含むドメインの一部。[`String`](/sql-reference/data-types/string) **例** @@ -334,44 +397,43 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_lis └──────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainCustomWithWWWRFC {#cutToFirstSignificantSubdomainCustomWithWWWRFC} +## cutToFirstSignificantSubdomainCustomWithWWWRFC \{#cutToFirstSignificantSubdomainRFC\} 導入バージョン: v22.10 -`www` を削除せずに、ドメインのうち最初の有意なサブドメインまでの上位サブドメインを含む部分を返します。 -カスタム TLD リスト名を指定できます。 -最新の TLD リストが必要な場合や、独自のリストを使用している場合に有用です。 -[cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW) と似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 +`www` を削除せずに、最初の重要なサブドメインまでの、トップレベルドメイン配下のサブドメインを含むドメイン名の一部を返します。 +カスタム TLD リストの名前を引数として受け取ります。 +最新の TLD リストが必要な場合や、独自のリストを持っている場合に有用です。 +[cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW) に類似していますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 **設定例** -```xml +````xml public_suffix_list.dat - + -**構文** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name) -``` +```` **引数** -* `url` — RFC 3986 に従って処理する URL またはドメイン文字列。 -* `tld_list_name` — ClickHouse で設定されたカスタム TLD リストの名前。 +* `url` — RFC 3986 に従って処理する URL またはドメイン文字列。 - `tld_list_name` — ClickHouse で設定されたカスタム TLD リストの名前。 -**戻り値** +**返される値** -`www` を取り除かずに、最初の意味のあるサブドメインまでの最上位レベルのサブドメインを含むドメイン部分を返します。[`String`](/sql-reference/data-types/string) +トップレベルサブドメインから最初の重要なサブドメインまでを含み、`www` を削除せずに保持したドメイン部分を返します。 [`String`](/sql-reference/data-types/string) **例** -**カスタム TLD リストを使用し、`www` を保持した RFC 3986 に基づくパース** +**カスタム TLD リストを使用しつつ www を保持する、RFC 3986 準拠のパース** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list') @@ -381,11 +443,11 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.exa www.example.custom ``` -## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainRFC\} +## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainWithWWW\} -導入バージョン: v22.10 +導入: v22.10 -ドメインのうち、トップレベルドメイン側から [「最初の重要なサブドメイン」](/sql-reference/functions/url-functions#firstSignificantSubdomain) までを含む部分を返します。[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) と同様ですが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠します。 +ドメインのうち、トップレベルサブドメインから[「first significant subdomain」](/sql-reference/functions/url-functions#firstSignificantSubdomain)までを含む部分を返します。[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)と類似していますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)に準拠しています。 **構文** @@ -399,7 +461,7 @@ cutToFirstSignificantSubdomainRFC(url) **戻り値** -可能であれば、最初の意味のあるサブドメインまでを含むトップレベルドメイン配下のドメイン部分を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +可能であれば、最初の有意なサブドメインが含まれるまでのドメイン部分(トップレベルドメイン配下のサブドメインを含む)を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -417,13 +479,13 @@ SELECT └─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWW\} +## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWWRFC\} 導入バージョン: v20.12 -トップレベルのサブドメインを、「最初の重要なサブドメイン」まで含めたドメイン部分を返しますが、'[www](http://www).' は取り除きません。 +ドメインのうち、トップレベルのサブドメインから「最初の重要なサブドメイン」までの部分を、'www.' を削除せずに返します。 -[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) と似ていますが、存在する場合は '[www](http://www).' のプレフィックスを保持します。 +[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) と同様ですが、存在する場合は 'www.' プレフィックスを維持します。 **構文** @@ -437,7 +499,7 @@ cutToFirstSignificantSubdomainWithWWW(url) **戻り値** -可能であれば、www を含め、最初の重要なサブドメインまでの上位サブドメインを含むドメイン部分を返します。そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +可能であれば、www を含め、最初の重要なサブドメインまでの上位サブドメインを含んだドメイン部分を返し、それができない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -456,11 +518,11 @@ SELECT └──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWWRFC \{#cutToFirstSignificantSubdomainWithWWWRFC\} +## cutToFirstSignificantSubdomainWithWWWRFC \{#cutURLParameter\} 導入バージョン: v22.10 -トップレベルサブドメインを「最初の重要なサブドメイン」まで含むドメイン部分を、'www' を削除せずに返します。[`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW) に似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 +トップレベルのサブドメインを「最初の重要なサブドメイン」に当たる部分まで含めたドメイン名の一部を、'www' を削除せずに返します。[`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW) と類似していますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠します。 **構文** @@ -470,11 +532,11 @@ cutToFirstSignificantSubdomainWithWWWRFC(url) **引数** -* `url` — RFC 3986 に従って処理される URL またはドメイン文字列。 +* `url` — RFC 3986 に従って処理される URL またはドメインを表す文字列。 -**戻り値** +**返り値** -ドメインのうち、可能であれば最初の有意なサブドメインまで(「www」を含む)を含む部分を返し、それが不可能な場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +可能であれば、最上位のサブドメインから最初の意味のあるサブドメイン(`www` を含む)までを含むドメイン部分を返し、それ以外の場合は空文字列([`String`](/sql-reference/data-types/string))を返します。 **例** @@ -492,12 +554,12 @@ SELECT └───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## cutURLParameter \{#cutURLParameter\} +## cutURLParameter \{#cutWWW\} 導入バージョン: v1.1 URL に `name` パラメーターが存在する場合、それを削除します。 -この関数はパラメーター名内の文字のエンコードやデコードを行いません。そのため、`Client ID` と `Client%20ID` は別個のパラメーター名として扱われます。 +この関数はパラメーター名内の文字のエンコード/デコードを行いません。例えば、`Client ID` と `Client%20ID` は別のパラメーター名として扱われます。 **構文** @@ -530,11 +592,11 @@ SELECT └──────────────────────────────┴──────────────────────────┘ ``` -## cutWWW \{#cutWWW\} +## cutWWW \{#decodeURLComponent\} -導入バージョン: v1.1 +導入: v1.1 -URL のドメインの先頭に `www.` がある場合、それを削除します。 +URL のドメインから、存在する場合は先頭の `www.` を削除します。 **構文** @@ -564,11 +626,11 @@ SELECT cutWWW('http://www.example.com/path?query=value#fragment'); └────────────────────────────────────────────────────────────┘ ``` -## decodeURLComponent \{#decodeURLComponent\} +## decodeURLComponent \{#decodeURLFormComponent\} 導入バージョン: v1.1 -URL エンコードされた文字列を入力として受け取り、元の読みやすい形式にデコードします。 +URL エンコードされた文字列を入力として受け取り、元の可読な形式にデコードします。 **構文** @@ -582,7 +644,7 @@ decodeURLComponent(url) **戻り値** -デコードされたURLを返します。[`String`](/sql-reference/data-types/string) +URL をデコードして返します。[`String`](/sql-reference/data-types/string) **例** @@ -593,16 +655,16 @@ SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS Decod ``` ```response title=Response -┌─デコード後のURL─────────────────────────┐ +┌─DecodedURL─────────────────────────────┐ │ http://127.0.0.1:8123/?query=SELECT 1; │ └────────────────────────────────────────┘ ``` -## decodeURLFormComponent \{#decodeURLFormComponent\} +## decodeURLFormComponent \{#domain\} -v1.1 で導入 +導入バージョン: v1.1 -フォームエンコードの規則([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))に従って URL エンコードされた文字列をデコードします。`+` 記号は空白に変換され、パーセントエンコードされた文字がデコードされます。 +フォームエンコードの規則([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))に従って、URL エンコードされた文字列をデコードします。このとき `+` 記号はスペースに変換され、パーセントエンコードされた文字はデコードされます。 **構文** @@ -616,7 +678,7 @@ decodeURLFormComponent(url) **戻り値** -URL をデコードした結果を返します。[`String`](/sql-reference/data-types/string) +デコードされた URL を返します。[`String`](/sql-reference/data-types/string) **例** @@ -632,13 +694,13 @@ SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') A └───────────────────────────────────────────┘ ``` -## domain \{#domain\} +## domain \{#domainRFC\} -導入バージョン: v1.1 +導入: v1.1 URL からホスト名を抽出します。 -URL はプロトコルの有無にかかわらず指定できます。 +URL はプロトコルの有無を問わず指定できます。 **構文** @@ -652,7 +714,7 @@ domain(url) **戻り値** -入力文字列が URL として解釈できる場合はホスト名を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +入力文字列が URL として解析可能な場合はホスト名を、そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -668,12 +730,12 @@ SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────┘ ``` -## domainRFC \{#domainRFC\} +## domainRFC \{#domainWithoutWWW\} -導入: v22.10 +導入バージョン: v22.10 URL からホスト名を抽出します。 -[`domain`](#domain) と同様ですが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 +[`domain`](#domain) と似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 **構文** @@ -687,7 +749,7 @@ domainRFC(url) **戻り値** -入力文字列を URL として解釈できる場合はホスト名を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +入力文字列が URL として解析可能な場合はホスト名を返し、そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -705,11 +767,11 @@ SELECT └───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘ ``` -## domainWithoutWWW \{#domainWithoutWWW\} +## domainWithoutWWW \{#domainWithoutWWWRFC\} 導入バージョン: v1.1 -URL のドメイン名を返します。先頭に `www.` が付いている場合は、それを取り除きます。 +URL のドメイン部分を返します。先頭に `www.` が付いている場合はそれを除きます。 **構文** @@ -723,7 +785,7 @@ domainWithoutWWW(url) **戻り値** -入力文字列が URL として解析可能な場合はドメイン名(先頭の `www.` を除く)を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +入力文字列が URL として解析可能な場合は、ドメイン名(先頭の `www.` を除く)を返し、それ以外の場合は空の文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -739,11 +801,11 @@ SELECT domainWithoutWWW('http://paul@www.example.com:80/'); └─────────────────────────────────────────────────────┘ ``` -## domainWithoutWWWRFC \{#domainWithoutWWWRFC\} +## domainWithoutWWWRFC \{#encodeURLComponent\} -導入: v1.1 +導入バージョン: v1.1 -先頭に `www.` が付いている場合、それを取り除いたドメインを返します。[`domainWithoutWWW`](#domainWithoutWWW) と似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 +先頭に `www.` が付いている場合は、それを取り除いたドメイン名を返します。[`domainWithoutWWW`](#domainWithoutWWW) と似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 **構文** @@ -757,7 +819,7 @@ domainWithoutWWWRFC(url) **戻り値** -入力文字列が URL としてパースできる場合はドメイン名(先頭の `www.` を除く)を返し、それ以外の場合は空の文字列を返します。[`String`](/sql-reference/data-types/string) +入力文字列が URL としてパースできる場合はドメイン名(先頭の `www.` を除く)を返し、それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -775,11 +837,11 @@ SELECT └─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## encodeURLComponent \{#encodeURLComponent\} +## encodeURLComponent \{#encodeURLFormComponent\} -導入: v22.3 +導入バージョン: v22.3 -通常の文字列を受け取り、特殊文字を対応するパーセントエンコード表現に置き換えた URL エンコード(パーセントエンコード)形式に変換します。 +通常の文字列を受け取り、特殊文字を対応するパーセントエンコード表現に置き換えた URL エンコード(パーセントエンコード)形式の文字列に変換します。 **構文** @@ -793,7 +855,7 @@ encodeURLComponent(url) **戻り値** -エンコードされた URL を返します。[`String`](/sql-reference/data-types/string) +エンコード済みの URL を返します。[`String`](/sql-reference/data-types/string) **例** @@ -809,11 +871,11 @@ SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedUR └──────────────────────────────────────────────────────────┘ ``` -## encodeURLFormComponent \{#encodeURLFormComponent\} +## encodeURLFormComponent \{#extractURLParameter\} 導入バージョン: v22.3 -フォームエンコードの規則([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))に従って文字列をエンコードします。スペースは+記号に変換され、特殊文字はパーセントエンコードされます。 +文字列をフォームエンコード規則([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))に従ってエンコードします。スペースは+記号に変換され、特殊文字はパーセントエンコードされます。 **構文** @@ -827,7 +889,7 @@ encodeURLFormComponent(url) **戻り値** -エンコードされた URL を返します。[`String`](/sql-reference/data-types/string) +エンコード済みの URL を返します。[`String`](/sql-reference/data-types/string) **例** @@ -843,13 +905,13 @@ SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS En └───────────────────────────────────────────────────────────┘ ``` -## extractURLParameter \{#extractURLParameter\} +## extractURLParameter \{#extractURLParameterNames\} 導入バージョン: v1.1 URL に `name` パラメータが存在する場合はその値を返し、存在しない場合は空文字列を返します。 -この名前のパラメータが複数ある場合、最初に出現したものを返します。 -関数は、`url` 引数で指定された URL 内のパラメータが、`name` 引数と同じ方法でエンコードされていることを前提とします。 +同じ名前のパラメータが複数存在する場合は、最初に出現したものを返します。 +この関数では、`url` 引数で渡された URL 中のパラメータが、`name` 引数と同じ方法でエンコードされていることを前提とします。 **構文** @@ -864,7 +926,7 @@ extractURLParameter(url, name) **戻り値** -指定した名前の URL パラメータの値を返します。[`String`](/sql-reference/data-types/string) +指定した名前の URL パラメータ値を返します。[`String`](/sql-reference/data-types/string) **例** @@ -880,11 +942,11 @@ SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'p └──────────────────────────┘ ``` -## extractURLParameterNames \{#extractURLParameterNames\} +## extractURLParameterNames \{#extractURLParameters\} 導入バージョン: v1.1 -URL パラメータ名に対応する文字列の配列を返します。 +URL パラメーターの名前に対応する文字列の配列を返します。 値はデコードされません。 **構文** @@ -897,9 +959,9 @@ extractURLParameterNames(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -URL パラメータの名前に対応する文字列の配列を返します。[`Array(String)`](/sql-reference/data-types/array) +URL パラメータ名に対応する文字列の配列を返します。[`Array(String)`](/sql-reference/data-types/array) **例** @@ -915,7 +977,7 @@ SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2 └──────────────────────────┘ ``` -## extractURLParameters \{#extractURLParameters\} +## extractURLParameters \{#firstSignificantSubdomain\} 導入: v1.1 @@ -934,7 +996,7 @@ extractURLParameters(url) **戻り値** -URL パラメーターに対応する `name=value` 形式の文字列の配列を返します。[`Array(String)`](/sql-reference/data-types/array) +URL パラメータに対応した `name=value` 形式の文字列配列を返します。[`Array(String)`](/sql-reference/data-types/array) **例** @@ -950,18 +1012,18 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); └───────────────────────────────────┘ ``` -## firstSignificantSubdomain \{#firstSignificantSubdomain\} +## firstSignificantSubdomain \{#firstSignificantSubdomainCustom\} -導入バージョン: v +導入バージョン: v1.1 -「最初の重要なサブドメイン」を返します。 +「first significant subdomain」(最初の有意なサブドメイン)を返します。 -最初の重要なサブドメインは、'com'、'net'、'org'、または 'co' のいずれかである場合は第二レベルドメインです。 -それ以外の場合は、第三レベルドメインになります。 +最初の有意なサブドメインは、第2レベルドメインが 'com'、'net'、'org'、または 'co' の場合には、その第2レベルドメインになります。 +それ以外の場合は、第3レベルドメインになります。 -たとえば、firstSignificantSubdomain('[https://news.clickhouse.com/](https://news.clickhouse.com/)') = 'clickhouse'、firstSignificantSubdomain ('[https://news.clickhouse.com.tr/](https://news.clickhouse.com.tr/)') = 'clickhouse' となります。 +例えば、firstSignificantSubdomain('https://news.clickhouse.com/') = 'clickhouse'、firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse' となります。 -「重要ではない」第二レベルドメインの一覧やその他の実装の詳細は、将来変更される可能性があります。 +「重要ではない」とみなされる第2レベルドメインのリストや、その他の実装詳細は、将来変更される可能性があります。 **構文** @@ -972,7 +1034,7 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); * なし -**返り値** +**戻り値** **例** @@ -985,11 +1047,77 @@ SELECT firstSignificantSubdomain('https://news.clickhouse.com/') ```response title=Response ``` -## firstSignificantSubdomainRFC \{#firstSignificantSubdomainRFC\} +## firstSignificantSubdomainCustom \{#firstSignificantSubdomainCustomRFC\} + +導入バージョン: v21.1 + +カスタム TLD(Top-Level Domain)リストを使用して、URL の最初の有意なサブドメインを返します。カスタム TLD リスト名は、どのドメインサフィックスをトップレベルドメインとして扱うかを定義する設定を指します。これは非標準的な TLD 階層構造に対して有用です。この関数は、プロトコル部分およびそれ以降の部分が除去されていることを前提とした、簡略化された URL 解析アルゴリズムを使用します。 + +**構文** + +```sql +firstSignificantSubdomainCustom(url, tld_list_name) +``` + +**引数** + +* `url` — サブドメインを抽出する対象の URL。[`String`](/sql-reference/data-types/string) +* `tld_list_name` — 構成で定義されたカスタム TLD リストの名前。[`String`](/sql-reference/data-types/string) + +**戻り値** + +最初の有意なサブドメインを返します。[`String`](/sql-reference/data-types/string) + +**例** + +**基本的な使い方** + +```sql title=Query +SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainCustomRFC \{#firstSignificantSubdomainRFC\} + +導入: v22.10 + +`firstSignificantSubdomainCustom` と同様ですが、簡略化されたアルゴリズムではなく、RFC 3986 準拠の URL のパース処理を使用します。 + +**構文** + +```sql +firstSignificantSubdomainCustomRFC(url, tld_list_name) +``` + +**引数** + +* `url` — サブドメインを抽出する元の URL。[`String`](/sql-reference/data-types/string) +* `tld_list_name` — 設定で定義されたカスタム TLD リストの名前。[`String`](/sql-reference/data-types/string) + +**返り値** + +最初の意味のあるサブドメインを返します。[`String`](/sql-reference/data-types/string) + +**例** + +**基本的な使用方法** + +```sql title=Query +SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainRFC \{#fragment\} -導入バージョン: v +導入: v22.10 -RFC 1034 に従って「先頭の有意なサブドメイン」を返します。 +RFC 1034 に基づき「最初の有意なサブドメイン」を返します。 **構文** @@ -998,22 +1126,22 @@ RFC 1034 に従って「先頭の有意なサブドメイン」を返します **引数** -* なし。 +* なし **戻り値** **例** -## fragment \{#fragment\} +## fragment \{#netloc\} -導入バージョン:v1.1 +導入バージョン: v1.1 -先頭のハッシュ記号を除いたフラグメント識別子を返します。 +先頭のハッシュ記号(#)を除いたフラグメント識別子を返します。 **構文** ```sql -フラグメント(url) +fragment(url) ``` **引数** @@ -1038,11 +1166,11 @@ SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1 └───────────────────────────────┘ ``` -## netloc \{#netloc\} +## netloc \{#path\} 導入バージョン: v20.5 -URL からネットワークロケーション(`username:password@host:port` の部分)を抽出します。 +URL からネットワーク位置(`username:password@host:port`)を抽出します。 **構文** @@ -1054,7 +1182,7 @@ netloc(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** 指定された URL から `username:password@host:port` を返します。[`String`](/sql-reference/data-types/string) @@ -1072,25 +1200,25 @@ SELECT netloc('http://paul@www.example.com:80/'); └──────────────────────────┘ ``` -## path \{#path\} +## path \{#pathFull\} 導入バージョン: v1.1 -URL からクエリ文字列を除いたパス部分を返します。 +URL からクエリ文字列を除いたパスを返します。 **構文** ```sql -パス(url) +path(url) ``` **引数** * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返り値** -クエリ文字列を除いた URL のパス部分を返します。[`String`](/sql-reference/data-types/string) +クエリ文字列を除いた URL のパスを返します。[`String`](/sql-reference/data-types/string) **例** @@ -1106,11 +1234,11 @@ SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/? └──────────────────────────────────────────────────────────────────────────────────────┘ ``` -## pathFull \{#pathFull\} +## pathFull \{#port\} -導入: v1.1 +導入バージョン: v1.1 -[`path`](#path) と同様ですが、URL のクエリ文字列とフラグメント部分も含めます。 +[`path`](#path) と同様ですが、URL のクエリ文字列およびフラグメントも含みます。 **構文** @@ -1122,7 +1250,7 @@ pathFull(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** クエリ文字列およびフラグメントを含む URL のパスを返します。[`String`](/sql-reference/data-types/string) @@ -1140,11 +1268,11 @@ SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functio └──────────────────────────────────────────────────────────────────┘ ``` -## port \{#port\} +## port \{#portRFC\} -導入: v20.5 +導入バージョン: v20.5 -URL のポート番号を返します。URL にポート番号が含まれていない場合、または URL を解析できない場合は `default_port` を返します。 +URL のポート番号を返します。URL にポートが含まれていない場合、または URL を解析できない場合は、`default_port` を返します。 **構文** @@ -1155,11 +1283,11 @@ port(url[, default_port]) **引数** * `url` — URL。[`String`](/sql-reference/data-types/string) -* `default_port` — 省略可能。返されるデフォルトのポート番号。既定値は `0`。[`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — 省略可能。返されるデフォルトのポート番号。デフォルト値は `0`。[`UInt16`](/sql-reference/data-types/int-uint) -**返り値** +**戻り値** -URL のポート番号を返します。URL にポートが含まれていない場合、または検証エラーが発生した場合は、デフォルトのポート番号を返します。[`UInt16`](/sql-reference/data-types/int-uint) +URL のポート番号、または URL にポートが指定されていない場合や検証エラーが発生した場合にはデフォルトのポート番号を返します。[`UInt16`](/sql-reference/data-types/int-uint) **例** @@ -1175,11 +1303,11 @@ SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/do └──────────────────────────────────────────┴──────────────────────────────────────────┘ ``` -## portRFC \{#portRFC\} +## portRFC \{#protocol\} 導入バージョン: v22.10 -URL からポート番号を返し、URL にポートが含まれていない場合や解析できない場合は `default_port` を返します。 +ポート番号を返します。URL にポートが含まれていない場合、または URL を解析できない場合は `default_port` を返します。 [`port`](#port) と同様ですが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 **構文** @@ -1191,11 +1319,11 @@ portRFC(url[, default_port]) **引数** * `url` — URL。[`String`](/sql-reference/data-types/string) -* `default_port` — 省略可能。返されるデフォルトのポート番号。既定値は `0`。[`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — 省略可能。返されるポート番号のデフォルト値。既定値は `0`。[`UInt16`](/sql-reference/data-types/int-uint) -**返される値** +**戻り値** -URL にポートが含まれていない場合、または検証エラーが発生した場合にはデフォルトのポートを、それ以外の場合には URL のポートを返します。[`UInt16`](/sql-reference/data-types/int-uint) +URL にポートが含まれない場合、または検証エラーが発生した場合にはデフォルトポートを、それ以外の場合にはポート番号を返します。[`UInt16`](/sql-reference/data-types/int-uint) **例** @@ -1211,13 +1339,13 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass └──────────────────────────┴──────────────────────────┘ ``` -## protocol \{#protocol\} +## protocol \{#queryString\} 導入バージョン: v1.1 URL からプロトコルを抽出します。 -返される値の典型例: http、https、ftp、mailto、tel、magnet。 +代表的な戻り値の例: http、https、ftp、mailto、tel、magnet。 **構文** @@ -1231,7 +1359,7 @@ protocol(url) **戻り値** -URLのプロトコルを返します。判別できない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +URL のプロトコル、または判別できない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -1247,11 +1375,11 @@ SELECT protocol('https://clickhouse.com/'); └─────────────────────────────────────┘ ``` -## queryString \{#queryString\} +## queryString \{#queryStringAndFragment\} 導入バージョン: v1.1 -URL のクエリ文字列から、先頭の疑問符 (`?`) と `#`、および `#` 以降のすべてを取り除いた文字列を返します。 +URL のクエリ文字列を返します。ただし、先頭の疑問符 `?` は含めず、`#` および `#` 以降はすべて除外します。 **構文** @@ -1265,7 +1393,7 @@ queryString(url) **戻り値** -先頭の疑問符とフラグメントを除いたURLのクエリ文字列を返します。[`String`](/sql-reference/data-types/string) +URL のクエリ文字列から先頭の疑問符とフラグメントを取り除いたものを返します。[`String`](/sql-reference/data-types/string) **例** @@ -1281,7 +1409,7 @@ SELECT queryString('https://clickhouse.com/docs?query=value¶m=123#section'); └──────────────────────────┘ ``` -## queryStringAndFragment \{#queryStringAndFragment\} +## queryStringAndFragment \{#topLevelDomain\} 導入バージョン: v1.1 @@ -1297,9 +1425,9 @@ queryStringAndFragment(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -URL のクエリ文字列およびフラグメント識別子を返します。[`String`](/sql-reference/data-types/string) +URL からクエリ文字列とフラグメント識別子を返します。[`String`](/sql-reference/data-types/string) **例** @@ -1315,15 +1443,15 @@ SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value¶m=123 └───────────────────────────────┘ ``` -## topLevelDomain \{#topLevelDomain\} +## topLevelDomain \{#topLevelDomainRFC\} -導入バージョン:v1.1 +導入: v1.1 URL からトップレベルドメインを抽出します。 :::note URL はプロトコルの有無にかかわらず指定できます。 -例えば: +例: ```text svn+ssh://some.svn-hosting.com:80/repo/trunk @@ -1345,7 +1473,7 @@ topLevelDomain(url) **戻り値** -入力文字列が URL としてパース可能な場合はドメイン名を返します。そうでない場合は空文字列を返します。[`String`](/sql-reference/data-types/string) +入力文字列を URL として解釈できる場合はドメイン名を返します。それ以外の場合は空文字列を返します。[`String`](/sql-reference/data-types/string) **例** @@ -1361,12 +1489,12 @@ SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────────────────┘ ``` -## topLevelDomainRFC \{#topLevelDomainRFC\} +## topLevelDomainRFC 導入バージョン: v22.10 -URLからトップレベルドメインを抽出します。 -[`topLevelDomain`](#topLevelDomain) と類似していますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠しています。 +URL からトップレベルドメインを抽出します。 +[`topLevelDomain`](#topLevelDomain) と似ていますが、[RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) に準拠します。 **構文** @@ -1378,9 +1506,9 @@ topLevelDomainRFC(url) * `url` — URL。[`String`](/sql-reference/data-types/string) -**戻り値** +**返される値** -入力文字列が URL として解析できる場合はそのドメイン名、それ以外の場合は空文字列。[`String`](/sql-reference/data-types/string) +入力文字列が URL として解釈可能な場合は、そのドメイン名。そうでない場合は空文字列。[`String`](/sql-reference/data-types/string) **例** diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md index 21d9568f4fc..7c03ad5df96 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md @@ -12,7 +12,7 @@ doc_type: 'reference' 新しいデータベースを作成します。 ```sql -CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [COMMENT 'Comment'] +CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment'] ``` @@ -61,3 +61,36 @@ SELECT name, comment FROM system.databases WHERE name = 'db_comment'; │ db_comment │ The temporary database │ └────────────┴────────────────────────┘ ``` + + +### SETTINGS \{#settings\} + +#### lazy_load_tables \{#lazy-load-tables\} + +有効にすると、データベースの起動時にテーブルが完全にはロードされません。その代わり、各テーブルに対して軽量なプロキシが作成され、最初にアクセスされたときに実際のテーブルエンジンが生成されます。これにより、多数のテーブルを持ち、そのうち実際にクエリされるのは一部に限られるデータベースにおいて、起動時間とメモリ使用量を削減できます。 + +```sql +CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1; +``` + +テーブルのメタデータをディスク上に保存するデータベースエンジン(例:`Atomic`、`Ordinary`)に適用されます。ビュー、materialized view、辞書、テーブル関数を基盤とするテーブルは、この設定に関係なく常に即時にロードされます。 + +**使用するタイミング:** この設定は、テーブル数が多い(数百〜数千)データベースで、そのうち一部のみが頻繁にクエリされる場合に有用です。テーブルエンジンオブジェクトの作成、データパーツのスキャン、バックグラウンドスレッドの初期化を初回アクセスまで遅延させることで、サーバーの起動時間とメモリ使用量を削減します。 + +**`system.tables` への影響:** + +* テーブルへのアクセス前は、`system.tables` はそのエンジンを `TableProxy` として表示します。初回アクセス後は、実際のエンジン名(例:`MergeTree`)を表示します。 +* 実ストレージがまだ作成されていないため、`total_rows` や `total_bytes` のようなカラムは、未ロードのテーブルに対しては `NULL` を返します。 + +**DDL 操作との相互作用:** + +* `SELECT`、`INSERT`、`ALTER`、`DROP` は、初回使用時に実テーブルエンジンのロードを透過的にトリガーします。 +* `RENAME TABLE` はロードをトリガーせずに動作します。 +* 一度テーブルがロードされると、そのサーバープロセスのライフタイム中はロードされたままになります。 + +**制限事項:** + +* `system.tables` のメタデータ(例:`total_rows`、`engine`)に依存する監視ツールは、未ロードのテーブルについては不完全な情報しか取得できない場合があります。 +* 未ロードのテーブルへの最初のクエリでは、保存されている `CREATE TABLE` ステートメントのパースおよびエンジンの初期化に伴う一度きりのロードコストが発生します。 + +デフォルト値: `0`(無効)。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md deleted file mode 100644 index 8fe801a4f80..00000000000 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -description: '辞書のドキュメント' -sidebar_label: 'DICTIONARY' -sidebar_position: 38 -slug: /sql-reference/statements/create/dictionary -title: 'CREATE DICTIONARY' -doc_type: 'reference' ---- - -指定された[構造](../../../sql-reference/dictionaries/index.md#dictionary-key-and-fields)、[ソース](../../../sql-reference/dictionaries/index.md#dictionary-sources)、[レイアウト](/sql-reference/dictionaries#storing-dictionaries-in-memory)、および[有効期間](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)を持つ新しい[辞書](../../../sql-reference/dictionaries/index.md)を作成します。 - -## 構文 \{#syntax\} - -```sql -CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] -( - key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID], - key2 type2 [DEFAULT|EXPRESSION expr2], - attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], - attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] -) -PRIMARY KEY key1, key2 -SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) -LAYOUT(LAYOUT_NAME([param_name param_value])) -LIFETIME({MIN min_val MAX max_val | max_val}) -SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) -COMMENT 'Comment' -``` - -辞書の構造は属性から構成されます。辞書属性はテーブルのカラムと同様に指定します。必須の属性プロパティは型のみであり、それ以外のプロパティにはデフォルト値を使用できます。 - -`ON CLUSTER` 句を使用すると、クラスタ全体に辞書を作成できます。詳細は [Distributed DDL](../../../sql-reference/distributed-ddl.md) を参照してください。 - -辞書の [layout](/sql-reference/dictionaries#storing-dictionaries-in-memory) に応じて、1 つ以上の属性を辞書キーとして指定できます。 - -## ソース \{#source\} - -辞書のソースには、次のようなものを使用できます。 - -* 現在の ClickHouse サービス内のテーブル -* リモートの ClickHouse サービス内のテーブル -* HTTP(S) 経由で利用可能なファイル -* 別のデータベース - -### 現在の ClickHouse サービス内のテーブルから辞書を作成する \{#create-a-dictionary-from-a-table-in-the-current-clickhouse-service\} - -入力テーブル `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -辞書の作成: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -辞書を出力する: - -```sql -SHOW CREATE DICTIONARY id_value_dictionary; -``` - -```response -CREATE DICTIONARY default.id_value_dictionary -( - `id` UInt64, - `value` String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LIFETIME(MIN 0 MAX 1000) -LAYOUT(FLAT()) -``` - -:::note -[ClickHouse Cloud](https://clickhouse.com) の SQL コンソールを使用する場合、ディクショナリを作成するときには、ユーザー名(`default` またはロール `default_role` を持つ任意のユーザー)とパスワードを必ず指定してください。 -::: - -```sql -CREATE USER IF NOT EXISTS clickhouse_admin -IDENTIFIED WITH sha256_password BY 'passworD43$x'; - -GRANT default_role TO clickhouse_admin; - -CREATE DATABASE foo_db; - -CREATE TABLE foo_db.source_table ( - id UInt64, - value String -) ENGINE = MergeTree -PRIMARY KEY id; - -CREATE DICTIONARY foo_db.id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table' USER 'clickhouse_admin' PASSWORD 'passworD43$x' DB 'foo_db' )) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000); -``` - -### リモートの ClickHouse サービス上のテーブルからディクショナリを作成する \{#create-a-dictionary-from-a-table-in-a-remote-clickhouse-service\} - -リモートの ClickHouse サービス上の入力テーブル `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -辞書を作成する: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(HOST 'HOSTNAME' PORT 9000 USER 'default' PASSWORD 'PASSWORD' TABLE 'source_table' DB 'default')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -### HTTP(S) 経由で取得可能なファイルから辞書を作成する \{#create-a-dictionary-from-a-file-available-by-https\} - -```sql -CREATE DICTIONARY default.taxi_zone_dictionary -( - `LocationID` UInt16 DEFAULT 0, - `Borough` String, - `Zone` String, - `service_zone` String -) -PRIMARY KEY LocationID -SOURCE(HTTP(URL 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv' FORMAT 'CSVWithNames')) -LIFETIME(MIN 0 MAX 0) -LAYOUT(HASHED()) -``` - -### 別のデータベースから辞書を作成する \{#create-a-dictionary-from-another-database\} - -詳細については、[Dictionary sources](/sql-reference/dictionaries#dbms) を参照してください。 - -**関連項目** - -* 詳細は、[Dictionaries](../../../sql-reference/dictionaries/index.md) セクションを参照してください。 -* [system.dictionaries](../../../operations/system-tables/dictionaries.md) — このテーブルには [Dictionaries](../../../sql-reference/dictionaries/index.md) に関する情報が含まれています。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md similarity index 100% rename from i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md rename to i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md new file mode 100644 index 00000000000..b72eb2f54ae --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md @@ -0,0 +1,179 @@ +--- +description: 'Dictionary のキーおよび属性の構成' +sidebar_label: '属性' +sidebar_position: 2 +slug: /sql-reference/statements/create/dictionary/attributes +title: 'Dictionary の属性' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + + + +`structure` 句は、クエリで利用できる Dictionary のキーとフィールドを定義します。 + +XML による定義: + +```xml + + + + Id + + + + + + + ... + + + +``` + +属性は、次の要素で定義されます: + +* `` — キーカラム +* `` — データカラム: 属性を複数定義できます。 + +DDLクエリ: + +```sql +CREATE DICTIONARY dict_name ( + Id UInt64, + -- attributes +) +PRIMARY KEY Id +... +``` + +Attributes are described in the クエリ本体で定義します: + +* `PRIMARY KEY` — キーとなるカラム +* `AttrName AttrType` — データ カラム。属性は複数指定できます。 + + +## キー \{#key\} + +ClickHouse は次の種類のキーをサポートします: + +- 数値キー。型は `UInt64`。`` タグ内、または `PRIMARY KEY` キーワードを使って定義します。 +- 複合キー。異なる型の値の Set。`` タグ内、または `PRIMARY KEY` キーワードを使って定義します。 + +XML 構造では `` か `` のいずれか一方のみを含めることができます。DDL クエリでは `PRIMARY KEY` を 1 つだけ指定しなければなりません。 + +:::note +キーを属性として定義してはいけません。 +::: + +### 数値キー \{#numeric-key\} + +型: `UInt64`。 + +設定例: + +```xml + + Id + +``` + +構成フィールド: + +* `name` – キーを持つカラムの名前。 + +DDL クエリの場合: + +```sql +CREATE DICTIONARY ( + Id UInt64, + ... +) +PRIMARY KEY Id +... +``` + +* `PRIMARY KEY` – キーを格納するカラム名。 + + +### 複合キー \{#composite-key\} + +キーには、任意の型のフィールドからなる `tuple` を使用できます。この場合の[レイアウト](./layouts/)は `complex_key_hashed` または `complex_key_cache` でなければなりません。 + +:::tip +複合キーは 1 要素のみから構成することもできます。その場合、例えば文字列をキーとして使用できます。 +::: + +キー構造は `` 要素内で設定します。キー フィールドは、Dictionary の[属性](#dictionary-key-and-fields)と同じ形式で指定します。例: + +```xml + + + + field1 + String + + + field2 + UInt32 + + ... + +... +``` + +または + +```sql +CREATE DICTIONARY ( + field1 String, + field2 UInt32 + ... +) +PRIMARY KEY field1, field2 +... +``` + +`dictGet*` 関数に対するクエリでは、タプルがキーとして渡されます。例: `dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))`。 + + +## 属性 \{#attributes\} + +設定例: + +```xml + + ... + + Name + ClickHouseDataType + + rand64() + true + true + true + + +``` + +または + +```sql +CREATE DICTIONARY somename ( + Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID +) +``` + +設定項目: + + +| Tag | Description | Required | +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `name` | カラム名。 | Yes | +| `type` | ClickHouse のデータ型: [UInt8](../../../data-types/int-uint.md)、[UInt16](../../../data-types/int-uint.md)、[UInt32](../../../data-types/int-uint.md)、[UInt64](../../../data-types/int-uint.md)、[Int8](../../../data-types/int-uint.md)、[Int16](../../../data-types/int-uint.md)、[Int32](../../../data-types/int-uint.md)、[Int64](../../../data-types/int-uint.md)、[Float32](../../../data-types/float.md)、[Float64](../../../data-types/float.md)、[UUID](../../../data-types/uuid.md)、[Decimal32](../../../data-types/decimal.md)、[Decimal64](../../../data-types/decimal.md)、[Decimal128](../../../data-types/decimal.md)、[Decimal256](../../../data-types/decimal.md)、[Date](../../../data-types/date.md)、[Date32](../../../data-types/date32.md)、[DateTime](../../../data-types/datetime.md)、[DateTime64](../../../data-types/datetime64.md)、[String](../../../data-types/string.md)、[Array](../../../data-types/array.md)。
    ClickHouse は Dictionary に格納された値を、指定されたデータ型にキャストしようとします。たとえば、MySQL では MySQL のソーステーブルにおいてフィールドが `TEXT`、`VARCHAR`、`BLOB` のいずれかであっても、ClickHouse には `String` として取り込めます。
    [Nullable](../../../data-types/nullable.md) は現在、[Flat](./layouts/flat)、[Hashed](./layouts/hashed)、[ComplexKeyHashed](./layouts/hashed#complex_key_hashed)、[Direct](./layouts/direct)、[ComplexKeyDirect](./layouts/direct#complex_key_direct)、[RangeHashed](./layouts/range-hashed)、Polygon、[Cache](./layouts/cache)、[ComplexKeyCache](./layouts/cache#complex_key_cache)、[SSDCache](./layouts/ssd-cache)、[SSDComplexKeyCache](./layouts/ssd-cache#complex_key_ssd_cache) Dictionary でサポートされています。[IPTrie](./layouts/ip-trie) Dictionary では `Nullable` 型はサポートされていません。 | Yes | +| `null_value` | 存在しない要素に対するデフォルト値。
    この例では空文字列です。[NULL](../../../syntax.md#null) 値は `Nullable` 型に対してのみ使用できます(前の行の型の説明を参照してください)。 | Yes | +| `expression` | ClickHouse が値に対して実行する[式](../../../syntax.md#expressions)。
    この式は、リモート SQL データベース内のカラム名である場合があります。そのため、リモートのカラムに対するエイリアスを作成するために使用できます。

    デフォルト値: 式なし。 | No | +| `hierarchical` | `true` の場合、その属性には現在のキーに対する親キーの値が含まれます。[Hierarchical Dictionaries](./layouts/hierarchical) を参照してください。

    デフォルト値: `false`。 | No | +| `injective` | `id -> attribute` の写像が[単射](https://en.wikipedia.org/wiki/Injective_function)であるかどうかを示すフラグ。
    `true` の場合、ClickHouse は単射である Dictionary へのリクエストを `GROUP BY` 句の後ろに自動的に挿入できます。通常、これによりそのようなリクエストの数を大幅に削減できます。

    デフォルト値: `false`。 | No | +| `is_object_id` | クエリが `ObjectID` による MongoDB ドキュメントに対して実行されるかどうかを示すフラグ。

    デフォルト値: `false`。 | \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md new file mode 100644 index 00000000000..ff263b13255 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md @@ -0,0 +1,57 @@ +--- +description: 'ClickHouse に組み込まれている地理情報ベースの Dictionary' +sidebar_label: '組み込み Dictionary' +sidebar_position: 6 +slug: /sql-reference/statements/create/dictionary/embedded +title: '組み込み (地理情報ベース) Dictionary' +doc_type: 'リファレンス' +--- + +import SelfManaged from '@site/i18n/jp/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; + + + +ClickHouse には、ジオベースを扱うための組み込み機能があります。 + +これにより、次のことが可能になります: + +* リージョンの ID を使用して、目的の言語でその名前を取得する。 +* リージョンの ID を使用して、市区町村、地域、連邦管区、国、または大陸の ID を取得する。 +* あるリージョンが別のリージョンの一部かどうかを確認する。 +* 親リージョンのチェーンを取得する。 + +すべての関数は「translocality」をサポートします。これは、リージョンの所有関係に対する複数の見方を同時に利用できる機能です。詳細については、「ウェブ解析用 Dictionary を扱うための関数」のセクションを参照してください。 + +内部 Dictionary はデフォルトのパッケージでは無効になっています。 +有効にするには、サーバー設定ファイル内の `path_to_regions_hierarchy_file` と `path_to_regions_names_files` のパラメータのコメントアウトを解除します。 + +ジオベースはテキストファイルからロードされます。 + +`regions_hierarchy*.txt` ファイルを `path_to_regions_hierarchy_file` ディレクトリに配置します。この設定パラメータには `regions_hierarchy.txt` ファイル (デフォルトのリージョン階層) へのパスを指定する必要があり、その他のファイル (`regions_hierarchy_ua.txt` など) も同じディレクトリ内に配置する必要があります。 + +`regions_names_*.txt` ファイルを `path_to_regions_names_files` ディレクトリに配置します。 + +これらのファイルを自分で作成することもできます。ファイル形式は以下のとおりです。 + +`regions_hierarchy*.txt`: ヘッダーなしの TabSeparated、カラム: + +* リージョン ID (`UInt32`) +* 親リージョン ID (`UInt32`) +* リージョンタイプ (`UInt8`): 1 - 大陸, 3 - 国, 4 - 連邦管区, 5 - 地域, 6 - 市区町村; その他のタイプの値は使用されません +* 人口 (`UInt32`) — オプションのカラム + +`regions_names_*.txt`: ヘッダーなしの TabSeparated、カラム: + +* リージョン ID (`UInt32`) +* リージョン名 (`String`) — タブおよび改行 (エスケープされたものも含む) を含めることはできません。 + +RAM に保存するためにフラット配列が使用されます。このため、ID は 100 万を超えないようにする必要があります。 + +Dictionary はサーバーを再起動せずに更新できます。ただし、利用可能な Dictionary の集合自体は更新されません。 +更新のために、ファイルの更新時刻がチェックされます。ファイルが変更されている場合、Dictionary が更新されます。 +変更のチェック間隔は、`builtin_dictionaries_reload_interval` パラメータで設定します。 +(初回使用時のロードを除く) Dictionary の更新はクエリをブロックしません。更新中、クエリは古いバージョンの Dictionary を使用します。更新中にエラーが発生した場合、そのエラーはサーバーログに書き込まれ、クエリは引き続き古いバージョンの Dictionary を使用します。 + +ジオベース用の Dictionary は、定期的に更新することを推奨します。更新時には新しいファイルを生成し、それらを別の場所に書き込みます。すべての準備が整ったら、サーバーが使用するファイル名にリネームします。 + +OS 識別子および検索エンジンを扱うための関数もありますが、これらは使用すべきではありません。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md new file mode 100644 index 00000000000..9d3e0585dc5 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md @@ -0,0 +1,74 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/cache +title: 'cache Dictionary レイアウト' +sidebar_label: 'cache' +sidebar_position: 6 +description: '固定サイズのインメモリキャッシュに Dictionary を格納します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`cached` Dictionary レイアウトタイプは、固定数のセルを持つキャッシュ内に Dictionary を保持します。 +これらのセルには、頻繁に使用される要素が格納されます。 + +Dictionary のキーは [UInt64](../../../data-types/int-uint.md) 型です。 + +Dictionary を検索する際、まずキャッシュが検索されます。各データブロックについて、キャッシュに存在しない、または古くなっているすべてのキーは、`SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)` を使用してソースから取得されます。取得したデータはキャッシュに書き込まれます。 + +キーが Dictionary に存在しない場合、キャッシュ更新タスクが作成され、更新キューに追加されます。更新キューのプロパティは、`max_update_queue_size`、`update_queue_push_timeout_milliseconds`、`query_wait_timeout_milliseconds`、`max_threads_for_updates` の各設定で制御できます。 + +cache Dictionary では、キャッシュ内データの有効期限 [lifetime](../lifetime.md#refreshing-dictionary-data-using-lifetime) を設定できます。データがセルに読み込まれてから `lifetime` を超える時間が経過した場合、そのセルの値は使用されず、キーは期限切れになります。キーは次に使用が必要になった時に再度リクエストされます。この動作は、設定項目 `allow_read_expired_keys` によって構成できます。 + +これは、Dictionary を保存するすべての方法の中で最も効率が低いものです。キャッシュの速度は、設定の適切さと使用シナリオに大きく依存します。キャッシュ型 Dictionary は、ヒット率が十分に高い場合(推奨 99% 以上)にのみ良好に動作します。平均ヒット率は [system.dictionaries](../../../../operations/system-tables/dictionaries.md) テーブルで確認できます。 + +`allow_read_expired_keys` 設定が 1(デフォルトは 0)に設定されている場合、Dictionary は非同期更新をサポートできます。クライアントがキーを要求し、それらがすべてキャッシュ内にあるものの、一部が期限切れの場合、Dictionary は期限切れキーをクライアントに返しつつ、ソースからの再取得を非同期で行います。 + +キャッシュ性能を向上させるには、`LIMIT` を指定したサブクエリを使用し、Dictionary を利用する関数はその外側から呼び出してください。 + +すべての種類のソースがサポートされています。 + +設定例: + + + + ```sql + LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) + ``` + + + + ```xml + + + + 1000000000 + + 0 + + 100000 + + 10 + + 60000 + + 4 + + + ``` + + + +
    + +十分に大きなキャッシュサイズを設定します。セル数の選択には実験が必要です。 + +1. ある値を設定します。 +2. キャッシュが完全に埋まるまでクエリを実行します。 +3. `system.dictionaries` テーブルを使用してメモリ消費量を評価します。 +4. 必要なメモリ消費量に達するまで、セル数を増減します。 + +:::note +このレイアウトのソースとして ClickHouse を使用することは推奨されません。Dictionary のルックアップはランダムなポイントリードを必要としますが、これは ClickHouse が最適化されているアクセスパターンではありません。 +::: diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md new file mode 100644 index 00000000000..f06c1b0cf2d --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md @@ -0,0 +1,47 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/direct +title: 'direct Dictionary レイアウト' +sidebar_label: 'direct' +sidebar_position: 9 +description: 'キャッシュを使用せずにソースを直接クエリする Dictionary レイアウト。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## direct \{#direct\} + +このDictionaryはメモリには保存されず、リクエスト処理時にソースへ直接アクセスします。 + +Dictionaryのキーは [UInt64](../../../data-types/int-uint.md) 型です。 + +ローカルファイル以外のすべての種類の[ソース](../sources/#dictionary-sources)がサポートされています。 + +設定例: + + + + +```sql +LAYOUT(DIRECT()) +``` + + + + +```xml + + + +``` + + + + +
    + +## complex_key_direct \{#complex_key_direct\} + +このストレージタイプは、複合[キー](../keys-and-fields.md#dictionary-key-and-fields)で使用します。`direct` と同様です。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md new file mode 100644 index 00000000000..2be44fd3f04 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md @@ -0,0 +1,48 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/flat +title: 'flat Dictionary レイアウト' +sidebar_label: 'flat' +sidebar_position: 2 +description: 'Dictionary をメモリ上にフラットな配列として保存します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`flat` レイアウトでは、Dictionary はフラットな配列として完全にメモリ内に保持されます。 +使用されるメモリ量は、最大のキー(が占有する領域)のサイズに比例します。 + +:::tip +このレイアウトタイプは、Dictionary を保存するために利用可能なすべての手法の中で、最も高いパフォーマンスを提供します。 +::: + +Dictionary のキーは [UInt64](../../../data-types/int-uint.md) 型であり、値は `max_array_size`(デフォルト — 500,000)に制限されます。 +Dictionary の作成時に、これより大きなキーが見つかった場合、ClickHouse は例外をスローし、Dictionary を作成しません。 +Dictionary のフラット配列の初期サイズは、`initial_array_size` 設定(デフォルト — 1024)によって制御されます。 + +すべての種類のソースをサポートします。 +Dictionary を更新するとき、データ(ファイルまたはテーブルから)は全体が読み込まれます。 + +設定例: + + + + ```sql + LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) + ``` + + + + ```xml + + + 50000 + 5000000 + + + ``` + + + +
    diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md new file mode 100644 index 00000000000..bf8302da233 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md @@ -0,0 +1,71 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed-array +title: 'hashed_array Dictionary レイアウトタイプ' +sidebar_label: 'hashed_array' +sidebar_position: 4 +description: '属性配列付きハッシュテーブルとして Dictionary をメモリ上に保存します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed_array \{#hashed_array\} + +Dictionary は完全にメモリ上に常駐します。各属性はそれぞれ配列として保持されます。キー属性はハッシュテーブルとして保持され、その値として属性配列内のインデックスが格納されます。Dictionary には任意の識別子を持つ任意個数の要素を含めることができます。実際には、キー数が数千万件に達することもあります。 + +Dictionary キーは [UInt64](../../../data-types/int-uint.md) 型です。 + +あらゆる種類のソースがサポートされます。更新時には、データ(ファイルまたはテーブルから)が全件読み込まれます。 + +構成例: + + + + +```sql +LAYOUT(HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + + +``` + + + + +
    + +## complex_key_hashed_array \{#complex_key_hashed_array\} + +このストレージタイプは、複合[キー](../keys-and-fields.md#dictionary-key-and-fields)で使用するためのものです。[hashed_array](#hashed_array)と類似しています。 + +設定例: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md new file mode 100644 index 00000000000..6f4c725fdf7 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md @@ -0,0 +1,187 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed +title: 'hashed Dictionary レイアウトの種類' +sidebar_label: 'hashed' +sidebar_position: 3 +description: 'Dictionary をハッシュテーブルを用いてメモリ上に保存します: hashed, sparse_hashed, complex_key_hashed, complex_key_sparse_hashed' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed \{#hashed\} + +Dictionary はハッシュテーブルの形式で完全にメモリ上に保存されます。Dictionary には、任意の識別子を持つ任意個数の要素を含めることができます。実際には、キーの数は数千万件に達することがあります。 + +Dictionary キーの型は [UInt64](../../../data-types/int-uint.md) です。 + +すべての種類のソースがサポートされています。更新時には、データ(ファイルまたはテーブルから)は全体が読み込まれます。 + +設定例: + + + + +```sql +LAYOUT(HASHED()) +``` + + + + +```xml + + + +``` + + + + +
    + +設定付きの例: + + + + +```sql +LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + 10 + + + 10000 + + + 0.5 + + +``` + + + + +
    + +## sparse_hashed \{#sparse_hashed\} + +`hashed` と同様ですが、メモリ使用量を削減する代わりに CPU 使用量が増加します。 + +Dictionary のキーは [UInt64](../../../data-types/int-uint.md) 型です。 + +設定例: + + + + +```sql +LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +この種類の Dictionary でも `shards` を使用できます。また、`sparse_hashed` は `hashed` よりも低速であるため、`hashed` の場合よりも `sparse_hashed` において `shards` の重要性が高くなります。 + +## complex_key_hashed \{#complex_key_hashed\} + +このストレージ形式は、複合[キー](../keys-and-fields.md#dictionary-key-and-fields)を持つ Dictionary 向けです。`hashed` と同様です。 + +設定例: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +## complex_key_sparse_hashed \{#complex_key_sparse_hashed\} + +このストレージは、複合[キー](../keys-and-fields.md#dictionary-key-and-fields)向けに使用します。[sparse_hashed](#sparse_hashed)と類似しています。 + +構成例: + + + + +```sql +LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md new file mode 100644 index 00000000000..50f6d88c47a --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md @@ -0,0 +1,94 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hierarchical +title: '階層型 Dictionary' +sidebar_label: '階層型' +sidebar_position: 10 +description: '親子キー関係を持つ階層型 Dictionary を設定します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## 階層型ディクショナリ \{#hierarchical-dictionaries\} + +ClickHouse では、[数値キー](../keys-and-fields.md#numeric-key) を使用した階層型ディクショナリをサポートしています。 + +次の階層構造を見てみましょう。 + +```text +0 (Common parent) +│ +├── 1 (Russia) +│ │ +│ └── 2 (Moscow) +│ │ +│ └── 3 (Center) +│ +└── 4 (Great Britain) + │ + └── 5 (London) +``` + +この階層は、次のような Dictionary テーブルとして表現できます。 + +| region_id | parent_region | region_name | +| ------------- | ----------------- | --------------- | +| 1 | 0 | Russia | +| 2 | 1 | Moscow | +| 3 | 2 | Center | +| 4 | 0 | Great Britain | +| 5 | 4 | London | + +このテーブルには、各要素に対して直近の親要素のキーを保持する `parent_region` カラムがあります。 + +ClickHouse は外部 Dictionary 属性に対して階層プロパティをサポートしています。このプロパティにより、上記で説明したものと同様の階層 Dictionary を構成できます。 + +[dictGetHierarchy](../../../functions/ext-dict-functions.md#dictGetHierarchy) 関数を使用すると、要素の親階層のチェーンを取得できます。 + +この例では、Dictionary の構造は次のようになります。 + + + + ```sql + CREATE DICTIONARY regions_dict + ( + region_id UInt64, + parent_region UInt64 DEFAULT 0 HIERARCHICAL, + region_name String DEFAULT '' + ) + PRIMARY KEY region_id + SOURCE(...) + LAYOUT(HASHED()) + LIFETIME(3600); + ``` + + + + ```xml + + + + region_id + + + + parent_region + UInt64 + 0 + true + + + + region_name + String + + + + + + ``` + + + +
    diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md new file mode 100644 index 00000000000..146fba0502f --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md @@ -0,0 +1,126 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ip-trie +title: 'ip_trie Dictionary レイアウト' +sidebar_label: 'ip_trie' +sidebar_position: 10 +description: 'IP アドレスプレフィックスを高速に検索できるよう、Dictionary をトライ木として保存します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`ip_trie` Dictionary は、ネットワークプレフィックスによる IP アドレスのルックアップ向けに設計されています。 +CIDR 表記で IP 範囲を保存し、特定の IP がどのプレフィックス(例: サブネットや ASN の範囲)に属するかを高速に判定できるため、ジオロケーションやネットワーク分類といった IP ベースの検索に最適です。 + + + +## `YAMLRegExpTree` ソースを使用した正規表現ツリー Dictionary の利用 \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} + + + +正規表現ツリー Dictionary は、正規表現ツリーを含む YAML ファイルへのパスを指定する [`YAMLRegExpTree`](../sources/yamlregexptree.md) ソースを使用して、ClickHouse オープンソース版で定義されます。 + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +... +``` + +Dictionary のデータソースである [`YAMLRegExpTree`](../sources/yamlregexptree.md) は、正規表現ツリーの構造を表します。例えば次のようになります: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +この設定は、正規表現ツリーのノードのリストで構成されています。各ノードは次の構造を持ちます。 + +* **regexp**: ノードの正規表現。 +* **attributes**: ユーザー定義の Dictionary 属性のリスト。この例では、`name` と `version` の 2 つの属性があります。最初のノードは両方の属性を定義します。2 番目のノードは属性 `name` のみを定義します。属性 `version` は 2 番目のノードの子ノードによって提供されます。 + * 属性の値には、マッチした正規表現のキャプチャグループを参照する **後方参照 (back reference)** を含めることができます。この例では、最初のノードにおける属性 `version` の値は、正規表現内のキャプチャグループ `(\d+[\.\d]*)` への後方参照 `\1` で構成されています。後方参照番号は 1 から 9 までで、`$1` または `\1`(1 の場合)のように記述します。後方参照は、クエリ実行中にマッチしたキャプチャグループで置き換えられます。 +* **child nodes**: regexp ツリーノードの子ノードのリストであり、それぞれが独自の attributes と(場合によっては)さらに子ノードを持ちます。文字列マッチングは深さ優先で行われます。ある文字列が regexp ノードにマッチした場合、Dictionary はその文字列がそのノードの子ノードにもマッチするかを確認します。マッチする場合、最も深い位置でマッチしたノードの attributes が割り当てられます。子ノードの属性は、親ノードと同名の属性を上書きします。YAML ファイルにおける子ノードの名前は任意であり、上記の例では `versions` などとできます。 + +Regexp ツリー Dictionary は、`dictGet`、`dictGetOrDefault`、`dictGetAll` 関数によるアクセスのみが可能です。例: + +```sql title="Query" +SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); +``` + +```text title="Response" +┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ +│ ('Android','12') │ +└─────────────────────────────────────────────────────────────────┘ +``` + +この場合、まず最上位レイヤーの 2 番目のノードで、正規表現 `\d+/tclwebkit(?:\d+[\.\d]*)` にマッチします。 +その後、Dictionary は子ノードの探索を続け、その文字列が `3[12]/tclwebkit` にもマッチすることを見つけます。 +その結果、属性 `name` の値は(第 1 レイヤーで定義されている)`Android` となり、属性 `version` の値は(子ノードで定義されている)`12` となります。 + +適切に作り込まれた YAML 設定ファイルを用いることで、正規表現ツリー Dictionary をユーザーエージェント文字列パーサーとして利用できます。 +ClickHouse は [uap-core](https://github.com/ua-parser/uap-core) をサポートしており、機能テスト [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) でその使用方法を確認できます。 + + +### 属性値の収集 \{#collecting-attribute-values\} + +複数の正規表現にマッチした場合、葉ノードの値だけでなく、マッチしたそれぞれから値を返したいことがあります。そのようなケースでは、専用の [`dictGetAll`](../../../functions/ext-dict-functions.md#dictGetAll) 関数を使用できます。あるノードが型 `T` の属性値を持つ場合、`dictGetAll` は 0 個以上の値を含む `Array(T)` を返します。 + +デフォルトでは、1 キーあたりで返されるマッチ数には上限がありません。上限は省略可能な第 4 引数として `dictGetAll` に渡すことができます。配列は *トポロジカル順序* で格納されます。これは、子ノードが親ノードより前に来て、兄弟ノードはソース内の順序に従うことを意味します。 + +例: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + tag String, + topological_index Int64, + captured Nullable(String), + parent String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0) +``` + +```yaml +# /var/lib/clickhouse/user_files/regexp_tree.yaml +- regexp: 'clickhouse\.com' + tag: 'ClickHouse' + topological_index: 1 + paths: + - regexp: 'clickhouse\.com/docs(.*)' + tag: 'ClickHouse Documentation' + topological_index: 0 + captured: '\1' + parent: 'ClickHouse' + +- regexp: '/docs(/|$)' + tag: 'Documentation' + topological_index: 2 + +- regexp: 'github.com' + tag: 'GitHub' + topological_index: 3 + captured: 'NULL' +``` + +```sql +CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; +INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); +SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; +``` + +結果: + +```text +┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ +│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ +│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ +│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ +└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ +``` + + +### マッチングモード \{#matching-modes\} + +パターンマッチングの挙動は、特定の Dictionary 設定によって変更できます。 + +- `regexp_dict_flag_case_insensitive`: 大文字・小文字を区別しないマッチングを使用します(デフォルトは `false`)。個々の式では `(?i)` および `(?-i)` で上書きできます。 +- `regexp_dict_flag_dotall`: 「.」が改行文字にもマッチするようにします(デフォルトは `false`)。 + +## ClickHouse Cloud で正規表現ツリー Dictionary を使用する \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} + +[`YAMLRegExpTree`](../sources/yamlregexptree.md) ソースは ClickHouse Open Source では動作しますが、ClickHouse Cloud では動作しません。 +ClickHouse Cloud で regexp ツリー Dictionary を使用するには、まずローカルの ClickHouse Open Source 環境で YAML ファイルから regexp ツリー Dictionary を作成し、その後 `dictionary` テーブル関数と [INTO OUTFILE](../../select/into-outfile.md) 句を使用して、この Dictionary を CSV ファイルにエクスポートします。 + +```sql +SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') +``` + +CSV ファイルの内容は次のとおりです: + +```text +1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" +2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" +3,2,"33/tclwebkit","['version']","['13']" +4,2,"3[12]/tclwebkit","['version']","['12']" +5,2,"3[12]/tclwebkit","['version']","['11']" +6,2,"3[12]/tclwebkit","['version']","['10']" +``` + +ダンプされたファイルのスキーマは次のとおりです。 + +* `id UInt64`: RegexpTree ノードの id。 +* `parent_id UInt64`: ノードの親の id。 +* `regexp String`: 正規表現文字列。 +* `keys Array(String)`: ユーザー定義属性の名前。 +* `values Array(String)`: ユーザー定義属性の値。 + +ClickHouse Cloud で Dictionary を作成するには、まず以下のテーブル構造で `regexp_dictionary_source_table` テーブルを作成します。 + +```sql +CREATE TABLE regexp_dictionary_source_table +( + id UInt64, + parent_id UInt64, + regexp String, + keys Array(String), + values Array(String) +) ENGINE=Memory; +``` + +次に、ローカルの CSV ファイルを次のように更新します + +```bash +clickhouse client \ + --host MY_HOST \ + --secure \ + --password MY_PASSWORD \ + --query " + INSERT INTO regexp_dictionary_source_table + SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') + FORMAT CSV" < regexp_dict.csv +``` + +詳細については、[Insert Local Files](/integrations/data-ingestion/insert-local-files) を参照してください。ソーステーブルを初期化した後、そのテーブルをソースとして RegexpTree を作成できます。 + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +PRIMARY KEY(regexp) +SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) +LIFETIME(0) +LAYOUT(regexp_tree); +``` diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md new file mode 100644 index 00000000000..c81a4de723e --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md @@ -0,0 +1,55 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ssd-cache +title: 'ssd_cache Dictionary レイアウトタイプ' +sidebar_label: 'ssd_cache' +sidebar_position: 8 +description: 'Dictionary データを SSD に保存し、インメモリ索引を使用する: ssd_cache および complex_key_ssd_cache タイプ' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## ssd_cache \{#ssd_cache\} + +`cache` と同様ですが、データは SSD に、索引は RAM に保存します。更新キューに関連する cache Dictionary のすべての設定は、SSD cache Dictionary にも適用できます。 + +Dictionary キーの型は [UInt64](../../../data-types/int-uint.md) です。 + + + + +```sql +LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 + PATH '/var/lib/clickhouse/user_files/test_dict')) +``` + + + + +```xml + + + + 4096 + + 16777216 + + 131072 + + 1048576 + + /var/lib/clickhouse/user_files/test_dict + + +``` + + + + +
    + +## complex_key_ssd_cache \{#complex_key_ssd_cache\} + +このストレージタイプは、複合[キー](../keys-and-fields.md#dictionary-key-and-fields)を持つ Dictionary 向けに使用します。`ssd_cache` と同様です。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md new file mode 100644 index 00000000000..966c2b29266 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md @@ -0,0 +1,144 @@ +--- +description: '自動更新のための Dictionary LIFETIME 設定' +sidebar_label: 'LIFETIME' +sidebar_position: 5 +slug: /sql-reference/statements/create/dictionary/lifetime +title: 'LIFETIME を使用した Dictionary データの更新' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + +ClickHouse は `LIFETIME` タグ(秒単位で定義)に基づいて定期的に Dictionary を更新します。 +`LIFETIME` は、フルダウンロード型 Dictionary に対する更新間隔であり、キャッシュ型 Dictionary に対する無効化間隔でもあります。 + +更新中でも、古いバージョンの Dictionary には引き続きクエリできます。 +Dictionary の更新は、初回ロード時を除き、クエリをブロックしません。 +更新中にエラーが発生した場合、そのエラーはサーバーログに書き込まれ、クエリは古いバージョンの Dictionary を使って継続できます。 +Dictionary の更新が成功すると、古いバージョンの Dictionary は[アトミックに](/concepts/glossary#atomicity)置き換えられます。 + +設定例: + + + +```xml + + ... + 300 + ... + +``` + +または + +```sql +CREATE DICTIONARY (...) +... +LIFETIME(300) +... +``` + +`0` (`LIFETIME(0)`) を設定すると、Dictionary は更新されなくなります。 + +更新間隔を設定すると、ClickHouse はその範囲内から一様ランダムに時刻を選択します。これは、多数のサーバーで更新を行う際に、Dictionary のソースへの負荷を分散するために必要です。 + +設定例: + +```xml + + ... + + 300 + 360 + + ... + +``` + +または + +```sql +LIFETIME(MIN 300 MAX 360) +``` + +`0` と `0` の場合、ClickHouse はタイムアウトによる Dictionary の再読み込みを行いません。 +この場合でも、Dictionary 設定ファイルが変更されたか、`SYSTEM RELOAD DICTIONARY` コマンドが実行された場合には、ClickHouse はそれより早く Dictionary を再読み込みできます。 + +Dictionary を更新する際、ClickHouse サーバーは [source](./sources/) の種類に応じて異なるロジックを適用します。 + +* テキストファイルの場合は、最終更新時刻をチェックします。時刻が以前に記録された時刻と異なる場合、Dictionary が更新されます。 +* その他のソースからの Dictionary は、デフォルトでは毎回更新されます。 + +その他のソース (ODBC、PostgreSQL、ClickHouse など) では、毎回ではなく、実際に変更があった場合にのみ Dictionary を更新するクエリを設定できます。これを行うには、以下の手順に従います。 + +* Dictionary 用テーブルには、ソースデータが更新されるたびに必ず変化するフィールドが必要です。 +* source の設定では、その変化するフィールドを取得するクエリを指定する必要があります。ClickHouse サーバーはクエリ結果を 1 行として解釈し、この行が以前の状態と比べて変化している場合に Dictionary を更新します。[source](./sources/) の設定内の `` フィールドにクエリを指定します。 + +設定例: + +```xml + + ... + + ... + SELECT update_time FROM dictionary_source where id = 1 + + ... + +``` + +または + +```sql +... +SOURCE(ODBC(... invalidate_query 'SELECT update_time FROM dictionary_source where id = 1')) +... +``` + +`Cache`、`ComplexKeyCache`、`SSDCache`、および `SSDComplexKeyCache` の各 Dictionary では、同期更新と非同期更新の両方がサポートされています。 + +また、`Flat`、`Hashed`、`HashedArray`、`ComplexKeyHashed` の各 Dictionary では、前回の更新以降に変更されたデータのみを要求することも可能です。`update_field` が Dictionary のソース設定の一部として指定されている場合、前回の更新時刻(秒単位)の値がデータリクエストに追加されます。ソース種別(Executable、HTTP、MySQL、PostgreSQL、ClickHouse、または ODBC)に応じて、外部ソースからデータをリクエストする前に `update_field` に対して異なるロジックが適用されます。 + + +* ソースが HTTP の場合、`update_field` はクエリパラメータとして追加され、その値には前回の更新時刻が設定されます。 +* ソースが Executable の場合、`update_field` は実行スクリプトの引数として追加され、その値には前回の更新時刻が設定されます。 +* ソースが ClickHouse、MySQL、PostgreSQL、ODBC の場合、`update_field` が前回の更新時刻以上であることを比較するための `WHERE` 句の追加部分が挿入されます。 + * 既定では、この `WHERE` 条件は SQL クエリの最上位レベルでチェックされます。代わりに、`{condition}` キーワードを使用することで、クエリ内の任意の他の `WHERE` 句でこの条件をチェックできます。例: + ```sql + ... + SOURCE(CLICKHOUSE(... + update_field 'added_time' + QUERY ' + SELECT my_arr.1 AS x, my_arr.2 AS y, creation_time + FROM ( + SELECT arrayZip(x_arr, y_arr) AS my_arr, creation_time + FROM dictionary_source + WHERE {condition} + )' + )) + ... + ``` + +`update_field` オプションが設定されている場合、追加オプションとして `update_lag` を設定できます。`update_lag` オプションの値は、更新されたデータをリクエストする前に、前回の更新時刻から減算されます。 + +設定例: + +```xml + + ... + + ... + added_time + 15 + + ... + +``` + +または + +```sql +... +SOURCE(CLICKHOUSE(... update_field 'added_time' update_lag 15)) +... +``` diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md new file mode 100644 index 00000000000..a97fd07d36f --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md @@ -0,0 +1,102 @@ +--- +description: 'Dictionary の作成と構成に関するドキュメント' +sidebar_label: '概要' +sidebar_position: 1 +slug: /sql-reference/statements/create/dictionary +title: 'CREATE DICTIONARY' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import CloudSupportedBadge from '@theme/badges/CloudSupportedBadge'; + + +# CREATE DICTIONARY \{#create-dictionary\} + +Dictionary は (`key -> attributes`) のマッピングであり、さまざまな種類の参照リストに適しています。 +ClickHouse は、クエリ内で使用できる Dictionary 用の専用関数をサポートしています。参照テーブルとの `JOIN` を使うよりも、Dictionary をこれらの関数と組み合わせて使用する方が簡単かつ効率的です。 + +Dictionary を作成する方法は 2 つあります: + +- [DDL クエリを使用する方法](#creating-a-dictionary-with-a-ddl-query)(推奨) +- [設定ファイルを使用する方法](#creating-a-dictionary-with-a-configuration-file) + +## DDLクエリでDictionaryを作成する \{#creating-a-dictionary-with-a-ddl-query\} + + + +DictionaryはDDLクエリを使って作成できます。 +この方法での作成が推奨されるのは、次の理由によります: + +- サーバーの設定ファイルに追加のレコードを追記する必要がありません。 +- Dictionaryをテーブルや VIEW などの第一級のエンティティと同様に扱うことができます。 +- Dictionaryテーブル関数ではなく、なじみのある `SELECT` 構文を使ってデータを直接読み取ることができます。`SELECT` 文でDictionaryに直接アクセスする場合、キャッシュ型Dictionaryはキャッシュされているデータのみを返し、非キャッシュ型Dictionaryでは保持しているすべてのデータを返すことに注意してください。 +- Dictionaryは容易に名前を変更できます。 + +### 構文 \{#syntax\} + +```sql +CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] +( + key1 type1 [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID], + key2 type2 [DEFAULT | EXPRESSION expr2], + attr1 type2 [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], + attr2 type2 [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] +) +PRIMARY KEY key1, key2 +SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) +LAYOUT(LAYOUT_NAME([param_name param_value])) +LIFETIME({MIN min_val MAX max_val | max_val}) +SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) +COMMENT 'Comment' +``` + +| Clause | Description | +| ------------------------------------------- | --------------------------------------------------------------------- | +| [Attributes](./attributes.md) | Dictionary の属性はテーブルのカラムと同様に指定します。必須プロパティは型のみで、それ以外にはデフォルト値を設定できます。 | +| PRIMARY KEY | Dictionary に対するルックアップ用のキーとなるカラムを定義します。レイアウトに応じて、1 つ以上の属性をキーとして指定できます。 | +| [`SOURCE`](./sources/overview.md) | Dictionary のデータソースを定義します(例: ClickHouse テーブル、HTTP、PostgreSQL)。 | +| [`LAYOUT`](./layouts/overview.md) | Dictionary をメモリ上にどのように格納するかを制御します(例: `FLAT`, `HASHED`, `CACHE`)。 | +| [`LIFETIME`](./lifetime.md) | Dictionary のリフレッシュ間隔を設定します。 | +| [`ON CLUSTER`](../../../distributed-ddl.md) | クラスタ上に Dictionary を作成します。省略可能です。 | +| `SETTINGS` | 追加の Dictionary 設定を指定します。省略可能です。 | +| `COMMENT` | Dictionary にテキストコメントを追加します。省略可能です。 | + + +## 設定ファイルを使用して Dictionary を作成する \{#creating-a-dictionary-with-a-configuration-file\} + + + +:::note +設定ファイルを使用して Dictionary を作成する方法は ClickHouse Cloud ではサポートされていません。上記の DDL を使用し、`default` USER として Dictionary を作成してください。 +::: + +Dictionary の設定ファイルは次の形式です。 + +```xml + + An optional element with any content. Ignored by the ClickHouse server. + + + /etc/metrika.xml + + + + + + + + +``` + +同じファイル内に任意の数の辞書を設定できます。 + + +## 関連コンテンツ \{#related-content\} + +- [Layouts](/sql-reference/statements/create/dictionary/layouts) — Dictionary がメモリ上でどのように格納されるか +- [Sources](/sql-reference/statements/create/dictionary/sources) — データソースへの接続方法 +- [Lifetime](./lifetime.md) — 自動更新の設定 +- [Attributes](./attributes.md) — キーおよび属性の設定 +- [Embedded Dictionaries](./embedded.md) — 組み込み geobase Dictionary +- [system.dictionaries](../../../../operations/system-tables/dictionaries.md) — Dictionary 情報を保持するシステムテーブル \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md new file mode 100644 index 00000000000..f262de99c85 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/cassandra +title: 'Cassandra Dictionary ソース' +sidebar_position: 11 +sidebar_label: 'Cassandra' +description: 'ClickHouse で Cassandra を Dictionary のソースとして設定します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(CASSANDRA( + host 'localhost' + port 9042 + user 'username' + password 'qwerty123' + keyspace 'database_name' + column_family 'table_name' + allow_filtering 1 + partition_key_prefix 1 + consistency 'One' + where '"SomeColumn" = 42' + max_threads 8 + query 'SELECT id, value_1, value_2 FROM database_name.table_name' + )) + ``` + + + + ```xml + + + localhost + 9042 + username + qwerty123 + database_name + table_name + 1 + 1 + One + "SomeColumn" = 42 + 8 + SELECT id, value_1, value_2 FROM database_name.table_name + + + ``` + + + +設定フィールド: + +| Setting | Description | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Cassandra のホスト、またはカンマ区切りのホストの一覧です。 | +| `port` | Cassandra サーバーのポートです。指定しない場合、デフォルトポート `9042` が使用されます。 | +| `user` | Cassandra ユーザー名です。 | +| `password` | Cassandra ユーザーのパスワードです。 | +| `keyspace` | keyspace(データベース)の名前です。 | +| `column_family` | カラムファミリー(テーブル)の名前です。 | +| `allow_filtering` | クラスタリングキーカラムに対する高コストになり得る条件を許可するかどうかを示すフラグです。デフォルト値は `1` です。 | +| `partition_key_prefix` | Cassandra テーブルの主キーに含まれるパーティションキーのカラム数です。複合キー Dictionary で必須です。Dictionary 定義内のキーカラムの順序は Cassandra と同一でなければなりません。デフォルト値は `1`(最初のキーカラムがパーティションキーで、それ以外のキーカラムはクラスタリングキー)です。 | +| `consistency` | Consistency レベルです。指定可能な値: `One`, `Two`, `Three`, `All`, `EachQuorum`, `Quorum`, `LocalQuorum`, `LocalOne`, `Serial`, `LocalSerial`。デフォルト値は `One` です。 | +| `where` | 任意の選択条件です。 | +| `max_threads` | 複合キー Dictionary で複数パーティションからデータを読み込む際に使用するスレッドの最大数です。 | +| `query` | カスタムクエリです。オプションです。 | + +:::note +`column_family` または `where` フィールドは、`query` フィールドと同時には使用できません。また、`column_family` または `query` のいずれか一方のフィールドを必ず指定する必要があります。 +::: diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md new file mode 100644 index 00000000000..c7f446fea22 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md @@ -0,0 +1,70 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/clickhouse +title: 'ClickHouse Dictionary ソース' +sidebar_position: 8 +sidebar_label: 'ClickHouse' +description: 'ClickHouse テーブルを Dictionary のソースとして構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(CLICKHOUSE( + host 'example01-01-1' + port 9000 + user 'default' + password '' + db 'default' + table 'ids' + where 'id=10' + secure 1 + query 'SELECT id, value_1, value_2 FROM default.ids' + )); + ``` + + + + ```xml + + + example01-01-1 + 9000 + default + + default +
    ids
    + id=10 + 1 + SELECT id, value_1, value_2 FROM default.ids + + + ``` + + + +
    + +設定項目: + +| Setting | Description | +| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | ClickHouse ホスト。ローカルホストの場合、クエリはネットワーク通信を行わずに処理されます。耐障害性を向上させるには、[Distributed](/engines/table-engines/special/distributed) テーブルを作成し、その後の設定でそれを指定できます。 | +| `port` | ClickHouse サーバーのポート。 | +| `user` | ClickHouse ユーザー名。 | +| `password` | ClickHouse ユーザーのパスワード。 | +| `db` | データベース名。 | +| `table` | テーブル名。 | +| `where` | 選択条件。省略可能。 | +| `invalidate_query` | Dictionary の状態を確認するためのクエリ。省略可能。詳細は「[Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime)」セクションを参照してください。 | +| `secure` | 接続に SSL を使用します。 | +| `query` | カスタムクエリ。省略可能。 | + +:::note +`table` フィールドまたは `where` フィールドは、`query` フィールドと同時には使用できません。また、`table` フィールドまたは `query` フィールドのいずれか一方は必ず指定する必要があります。 +::: diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md new file mode 100644 index 00000000000..901e70d58ac --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md @@ -0,0 +1,54 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-file +title: '実行ファイル Dictionary ソース' +sidebar_position: 3 +sidebar_label: '実行ファイル' +description: 'ClickHouse で実行ファイルを Dictionary ソースとして設定します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +実行可能ファイルの扱い方は、[Dictionary がメモリ上にどのように保存されているか](../layouts/)によって異なります。Dictionary が `cache` および `complex_key_cache` を使って保存されている場合、ClickHouse は必要なキーを取得するために、実行可能ファイルの STDIN にリクエストを送信します。そうでない場合、ClickHouse は実行可能ファイルを起動し、その出力を Dictionary データとして扱います。 + +設定の例: + + + + ```sql + SOURCE(EXECUTABLE( + command 'cat /opt/dictionaries/os.tsv' + format 'TabSeparated' + implicit_key false + )) + ``` + + + + ```xml + + + cat /opt/dictionaries/os.tsv + TabSeparated + false + + + ``` + + + +Setting のフィールド: + +| Setting | Description | +| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 実行可能ファイルへの絶対パス、またはファイル名(コマンドのディレクトリが `PATH` に含まれている場合)。 | +| `format` | ファイル形式。[Formats](/sql-reference/formats) で説明されているすべてのフォーマットがサポートされます。 | +| `command_termination_timeout` | 実行可能スクリプトにはメインの読み書きループを含める必要があります。Dictionary が破棄されるとパイプはクローズされ、実行可能ファイルは ClickHouse が子プロセスに SIGTERM シグナルを送信する前に、`command_termination_timeout` 秒以内にシャットダウンする必要があります。単位は秒です。デフォルト値は `10`。省略可能。 | +| `command_read_timeout` | コマンドの stdout からデータを読み取る際のタイムアウト(ミリ秒)。デフォルト値は `10000`。省略可能。 | +| `command_write_timeout` | コマンドの stdin へデータを書き込む際のタイムアウト(ミリ秒)。デフォルト値は `10000`。省略可能。 | +| `implicit_key` | 実行可能ファイルをソースとする場合、値のみを返すことができ、要求されたキーとの対応関係は結果の行の順序によって暗黙的に決定されます。デフォルト値は `false`。 | +| `execute_direct` | `execute_direct` = `1` の場合、`command` は [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path) で指定された user_scripts ディレクトリ内で検索されます。追加のスクリプト引数は空白区切りで指定できます(例: `script_name arg1 arg2`)。`execute_direct` = `0` の場合、`command` は `bin/sh -c` への引数として渡されます。デフォルト値は `0`。省略可能。 | +| `send_chunk_header` | 処理対象となるデータの chunk を送信する前に、行数を送信するかどうかを制御します。デフォルト値は `false`。省略可能。 | + +この Dictionary のソースは XML 設定によってのみ構成できます。DDL による、実行可能ファイルをソースとする Dictionary の作成は無効化されています。そうでない場合、DB USER が ClickHouse ノード上で任意のバイナリを実行できてしまいます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md new file mode 100644 index 00000000000..4aef8666ed3 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md @@ -0,0 +1,72 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-pool +title: 'Executable Pool Dictionary ソース' +sidebar_position: 4 +sidebar_label: 'Executable Pool' +description: 'ClickHouse で Executable Pool を Dictionary ソースとして構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Executable pool はプロセスのプールからデータをロードできます。 +このソースは、ソースからすべてのデータをロードする必要がある Dictionary レイアウトでは動作しません。 + +Executable pool は、Dictionary が次のいずれかのレイアウトを用いて[保存されている](../layouts/#ways-to-store-dictionaries-in-memory)場合に動作します: + +* `cache` +* `complex_key_cache` +* `ssd_cache` +* `complex_key_ssd_cache` +* `direct` +* `complex_key_direct` + +Executable pool は、指定されたコマンドでプロセスのプールを起動し、それらが終了するまで実行し続けます。プログラムは、利用可能な間は STDIN からデータを読み取り、結果を STDOUT に出力する必要があります。また、STDIN 上の次のブロックのデータを待つこともできます。ClickHouse はデータブロックを処理した後に STDIN をクローズせず、必要に応じて別の chunk のデータをパイプします。実行可能スクリプトはこの方式のデータ処理に対応している必要があり、STDIN をポーリングし、早めにデータを STDOUT にフラッシュしなければなりません。 + +設定例: + + + + ```sql + SOURCE(EXECUTABLE_POOL( + command 'while read key; do printf "$key\tData for key $key\n"; done' + format 'TabSeparated' + pool_size 10 + max_command_execution_time 10 + implicit_key false + )) + ``` + + + + ```xml + + + while read key; do printf "$key\tData for key $key\n"; done + TabSeparated + 10 + 10 + false + + + ``` + + + +設定項目: + +| Setting | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 実行可能ファイルへの絶対パス、または(プログラムディレクトリが `PATH` に指定されている場合は)ファイル名。 | +| `format` | ファイルフォーマット。[Formats](/sql-reference/formats) で説明されているすべてのフォーマットがサポートされます。 | +| `pool_size` | プールのサイズ。`pool_size` として 0 が指定された場合、プールサイズに制限はありません。デフォルト値は `16` です。 | +| `command_termination_timeout` | 実行可能スクリプトはメインの読み書きループを含んでいる必要があります。Dictionary が破棄されるとパイプがクローズされ、実行可能ファイルは、ClickHouse が子プロセスに SIGTERM シグナルを送信する前にシャットダウンするための `command_termination_timeout` 秒が与えられます。秒単位で指定します。デフォルト値は `10`。省略可能。 | +| `max_command_execution_time` | データブロックを処理するための、実行可能スクリプトのコマンドの最大実行時間。秒単位で指定します。デフォルト値は `10`。省略可能。 | +| `command_read_timeout` | コマンドの stdout からデータを読み取るタイムアウト(ミリ秒)。デフォルト値は `10000`。省略可能。 | +| `command_write_timeout` | コマンドの stdin にデータを書き込むタイムアウト(ミリ秒)。デフォルト値は `10000`。省略可能。 | +| `implicit_key` | 実行可能ソースファイルは値のみを返すことができ、要求されたキーとの対応関係は、結果内の行の順序によって暗黙的に決定されます。デフォルト値は `false`。省略可能。 | +| `execute_direct` | `execute_direct` = `1` の場合、`command` は [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path) で指定された user_scripts フォルダ内で検索されます。追加のスクリプト引数は空白区切りで指定できます(例: `script_name arg1 arg2`)。`execute_direct` = `0` の場合、`command` は `bin/sh -c` の引数として渡されます。デフォルト値は `1`。省略可能。 | +| `send_chunk_header` | プロセスにデータの chunk を送信する前に行数を送信するかどうかを制御します。デフォルト値は `false`。省略可能。 | + +この Dictionary ソースは XML 構成のみで設定できます。DDL を使用して executable ソースを持つ Dictionary を作成することは無効化されています。そうしないと、DB ユーザーが ClickHouse ノード上で任意のバイナリを実行できてしまうためです。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md new file mode 100644 index 00000000000..45e7cdae9b6 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md @@ -0,0 +1,69 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/http +title: 'HTTP(S) Dictionary ソース' +sidebar_position: 5 +sidebar_label: 'HTTP(S)' +description: 'ClickHouse で HTTP または HTTPS エンドポイントを Dictionary ソースとして構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +HTTP(S) サーバーとの連携方法は、[Dictionary がメモリ上にどのように保存されているか](../layouts/) に依存します。Dictionary が `cache` および `complex_key_cache` を用いて保存されている場合、ClickHouse は `POST` メソッドでリクエストを送信して必要なキーを取得します。 + +設定例: + + + + ```sql + SOURCE(HTTP( + url 'http://[::1]/os.tsv' + format 'TabSeparated' + credentials(user 'user' password 'password') + headers(header(name 'API-KEY' value 'key')) + )) + ``` + + + + ```xml + + + http://[::1]/os.tsv + TabSeparated + + user + password + + +
    + API-KEY + key +
    +
    +
    + + ``` +
    +
    + +
    + +ClickHouse が HTTPS リソースにアクセスできるようにするには、サーバー構成で [openSSL を設定](/operations/server-configuration-parameters/settings#openssl) する必要があります。 + +設定項目: + +| Setting | 説明 | +| ------------- | ----------------------------------------------------------------- | +| `url` | ソースの URL。 | +| `format` | ファイル形式。[Formats](/sql-reference/formats) で説明されているすべての形式がサポートされます。 | +| `credentials` | Basic HTTP 認証。省略可能。 | +| `user` | 認証に必要なユーザー名。 | +| `password` | 認証に必要なパスワード。 | +| `headers` | HTTP リクエストで使用される、すべてのカスタム HTTP ヘッダーエントリ。省略可能。 | +| `header` | 単一の HTTP ヘッダーエントリ。 | +| `name` | リクエスト送信時のヘッダーに使用される識別子名。 | +| `value` | 特定の識別子名に対して設定される値。 | + +DDL コマンド(`CREATE DICTIONARY ...`)を使用して Dictionary を作成する際、HTTP Dictionary 用のリモートホストは、データベースユーザーが任意の HTTP サーバーへアクセスするのを防ぐために、設定ファイルの `remote_url_allow_hosts` セクションの内容と照合されます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md new file mode 100644 index 00000000000..a346dfa7ead --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md @@ -0,0 +1,49 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/local-file +title: 'ローカルファイル Dictionary ソース' +sidebar_position: 2 +sidebar_label: 'ローカルファイル' +description: 'ClickHouse でローカルファイルを Dictionary のソースとして設定します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +ローカルファイルソースは、ローカルファイルシステム上のファイルから Dictionary データを読み込みます。これは、TSV、CSV などの形式、またはその他の[サポートされている形式](/sql-reference/formats)でフラットファイルとして保存できる、小規模で静的なルックアップテーブルに適しています。 + +設定例: + + + + ```sql + SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) + ``` + + + + ```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + + ``` + + + +
    + +設定項目: + +| Setting | 説明 | +| -------- | ----------------------------------------------------------------- | +| `path` | ファイルへの絶対パス。 | +| `format` | ファイル形式。[Formats](/sql-reference/formats) で説明されているすべての形式がサポートされます。 | + +ソースに `FILE` を指定した Dictionary を DDL コマンド(`CREATE DICTIONARY ...`)で作成する場合、ClickHouse ノード上の任意のファイルへ DB ユーザーがアクセスすることを防ぐため、ソースファイルは `user_files` ディレクトリ内に配置する必要があります。 + +**参照** + +* [Dictionary 関数](/sql-reference/table-functions/dictionary) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md new file mode 100644 index 00000000000..c32e56510a9 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md @@ -0,0 +1,82 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mongodb +title: 'MongoDB Dictionary ソース' +sidebar_position: 9 +sidebar_label: 'MongoDB' +description: 'ClickHouse で MongoDB を Dictionary ソースとして設定します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(MONGODB( + host 'localhost' + port 27017 + user '' + password '' + db 'test' + collection 'dictionary_source' + options 'ssl=true' + )) + ``` + + または URI を使用する場合: + + ```sql + SOURCE(MONGODB( + uri 'mongodb://localhost:27017/clickhouse' + collection 'dictionary_source' + )) + ``` + + + + ```xml + + + localhost + 27017 + + + test + dictionary_source + ssl=true + + + ``` + + または URI を使用する場合: + + ```xml + + + mongodb://localhost:27017/test?ssl=true + dictionary_source + + + ``` + + + +
    + +設定項目: + +| Setting | 説明 | +| ------------ | -------------------------------------------- | +| `host` | MongoDB ホスト。 | +| `port` | MongoDB サーバーのポート。 | +| `user` | MongoDB ユーザー名。 | +| `password` | MongoDB ユーザーのパスワード。 | +| `db` | データベース名。 | +| `collection` | コレクション名。 | +| `options` | MongoDB 接続文字列のオプション。任意。 | +| `uri` | 接続を確立するための URI(個別の host/port/db フィールド指定の代替)。 | + +[エンジンの詳細情報](/engines/table-engines/integrations/mongodb) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md new file mode 100644 index 00000000000..fda36c0c152 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md @@ -0,0 +1,132 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mysql +title: 'MySQL Dictionary ソース' +sidebar_position: 7 +sidebar_label: 'MySQL' +description: 'ClickHouse で Dictionary のソースとして MySQL を構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(MYSQL( + port 3306 + user 'clickhouse' + password 'qwerty' + replica(host 'example01-1' priority 1) + replica(host 'example01-2' priority 1) + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + 3306 + clickhouse + qwerty + + example01-1 + 1 + + + example01-2 + 1 + + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +設定項目: + +| Setting | Description | +| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `port` | MySQL サーバーのポートです。すべてのレプリカに対して指定することも、各レプリカごとに個別に(`` 内で)指定することもできます。 | +| `user` | MySQL ユーザー名です。すべてのレプリカに対して指定することも、各レプリカごとに個別に(`` 内で)指定することもできます。 | +| `password` | MySQL ユーザーのパスワードです。すべてのレプリカに対して指定することも、各レプリカごとに個別に(`` 内で)指定することもできます。 | +| `replica` | レプリカ設定のセクションです。複数のセクションを定義できます。 | +| `replica/host` | MySQL ホストです。 | +| `replica/priority` | レプリカの優先度です。接続を試行する際、ClickHouse は優先度の順にレプリカを走査します。数値が小さいほど優先度が高くなります。 | +| `db` | データベース名です。 | +| `table` | テーブル名です。 | +| `where` | 抽出条件です。条件の構文は MySQL の `WHERE` 句と同じで、たとえば `id > 10 AND id < 20` のように記述します。省略可能です。 | +| `invalidate_query` | Dictionary の状態を確認するためのクエリです。省略可能です。詳細は [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime) セクションを参照してください。 | +| `fail_on_connection_loss` | 接続喪失時のサーバーの動作を制御します。`true` の場合、クライアントとサーバー間の接続が失われるとすぐに例外がスローされます。`false` の場合、ClickHouse サーバーは例外をスローする前にクエリの実行を 3 回再試行します。再試行により応答時間が増加する点に注意してください。デフォルト値: `false`。 | +| `query` | カスタムクエリです。省略可能です。 | + +:::note +`table` フィールドまたは `where` フィールドは、`query` フィールドと同時には使用できません。また、`table` フィールドか `query` フィールドのいずれか一方は必ず指定する必要があります。 +::: + +:::note +明示的なパラメータ `secure` は存在しません。SSL 接続を確立する場合は、セキュアな接続が必須となります。 +::: + +MySQL には、ソケットを使用してローカルホスト経由で接続できます。そのためには、`host` と `socket` を設定します。 + +設定例: + + + + + +```sql +SOURCE(MYSQL( + host 'localhost' + socket '/path/to/socket/file.sock' + user 'clickhouse' + password 'qwerty' + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' +)) +``` + + + + +```xml + + + localhost + /path/to/socket/file.sock + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + +``` + +
    +
    \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md new file mode 100644 index 00000000000..75490c9f226 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md @@ -0,0 +1,24 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/null +title: 'Null Dictionary ソース' +sidebar_position: 14 +sidebar_label: 'Null' +description: 'ClickHouse でテスト用に Null(空)の Dictionary ソースを構成します。' +doc_type: 'reference' +--- + +ダミー(空)の Dictionary を作成するために使用できる特別なソースです。 +ダミー Dictionary は、テスト用途や、データノードとクエリノードを分離し分散テーブルを使用する構成で役立ちます。 + +```sql +CREATE DICTIONARY null_dict ( + id UInt64, + val UInt8, + default_val UInt8 DEFAULT 123, + nullable_val Nullable(UInt8) +) +PRIMARY KEY id +SOURCE(NULL()) +LAYOUT(FLAT()) +LIFETIME(0); +``` diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md new file mode 100644 index 00000000000..bd73e69398a --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md @@ -0,0 +1,289 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/odbc +title: 'ODBC Dictionary ソース' +sidebar_position: 6 +sidebar_label: 'ODBC' +description: 'ClickHouse で Dictionary のソースとして ODBC 接続を構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +ODBC ドライバーを持つ任意のデータベースには、この方法を使って接続できます。 + +設定例: + + + + ```sql + SOURCE(ODBC( + db 'DatabaseName' + table 'SchemaName.TableName' + connection_string 'DSN=some_parameters' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + DatabaseName + ShemaName.TableName
    + DSN=some_parameters + SQL_QUERY + SELECT id, value_1, value_2 FROM ShemaName.TableName +
    + + ``` +
    +
    + +
    + +設定フィールド: + +| Setting | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `db` | データベース名。データベース名が `` のパラメータで指定されている場合は省略します。 | +| `table` | テーブル名と(存在する場合は)スキーマ名。 | +| `connection_string` | 接続文字列。 | +| `invalidate_query` | Dictionary のステータスを確認するためのクエリ。任意。詳細は [LIFETIME を使用した Dictionary データの更新](../lifetime.md#refreshing-dictionary-data-using-lifetime) を参照してください。 | +| `background_reconnect` | 接続エラー時にバックグラウンドでレプリカへ再接続します。任意。 | +| `query` | カスタムクエリ。任意。 | + +:::note +`table` と `query` フィールドは同時に使用できません。また、`table` または `query` のいずれか一方は必ず指定する必要があります。 +::: + +ClickHouse は ODBC ドライバーからクオート記号を受け取り、ドライバーへのクエリ内ですべての設定値をクオートするため、テーブル名はデータベース内のテーブル名の大文字小文字の表記に正確に合わせて設定する必要があります。 + +Oracle を使用する際にエンコーディングに問題がある場合は、対応する [FAQ](/knowledgebase/oracle-odbc) の項目を参照してください。 + +### ODBC Dictionary 機能の既知の脆弱性 \{#known-vulnerability-of-the-odbc-dictionary-functionality\} + +:::note +ODBC ドライバー経由でデータベースに接続する際、接続パラメータ `Servername` をすり替えられる可能性があります。この場合、`odbc.ini` に記載された `USERNAME` と `PASSWORD` の値がリモートサーバーに送信され、漏えいするおそれがあります。 +::: + +**安全でない使用例** + +PostgreSQL 向けに unixODBC を構成します。`/etc/odbc.ini` の内容は次のとおりです。 + +```text +[gregtest] +Driver = /usr/lib/psqlodbca.so +Servername = localhost +PORT = 5432 +DATABASE = test_db +#OPTION = 3 +USERNAME = test +PASSWORD = test +``` + +その後、次のようなクエリを発行すると + +```sql +SELECT * FROM odbc('DSN=gregtest;Servername=some-server.com', 'test_db'); +``` + +ODBC ドライバーは、`odbc.ini` に設定された `USERNAME` と `PASSWORD` の値を `some-server.com` に送信します。 + +### PostgreSQL への接続例 \{#example-of-connecting-postgresql\} + +環境は Ubuntu OS です。 + +unixODBC および PostgreSQL 用 ODBC ドライバーをインストールします: + +```bash +$ sudo apt-get install -y unixodbc odbcinst odbc-postgresql +``` + +`/etc/odbc.ini`(または、ClickHouse を実行するユーザーでサインインしている場合は `~/.odbc.ini`)を設定します。 + +```text + [DEFAULT] + Driver = myconnection + + [myconnection] + Description = PostgreSQL connection to my_db + Driver = PostgreSQL Unicode + Database = my_db + Servername = 127.0.0.1 + UserName = username + Password = password + Port = 5432 + Protocol = 9.3 + ReadOnly = No + RowVersioning = No + ShowSystemTables = No + ConnSettings = +``` + +ClickHouse における Dictionary の設定例: + + + + ```sql + CREATE DICTIONARY table_name ( + id UInt64, + some_column UInt64 DEFAULT 0 + ) + PRIMARY KEY id + SOURCE(ODBC(connection_string 'DSN=myconnection' table 'postgresql_table')) + LAYOUT(HASHED()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + table_name + + + + + DSN=myconnection + postgresql_table
    +
    + + + 300 + 360 + + + + + + + id + + + some_column + UInt64 + 0 + + +
    +
    + ``` +
    +
    + +
    + +ドライバーライブラリへのフルパスを指定するために、`DRIVER=/usr/local/lib/psqlodbcw.so` を設定するよう `odbc.ini` を編集する必要がある場合があります。 + +### MS SQL Server への接続例 \{#example-of-connecting-ms-sql-server\} + +Ubuntu OS。 + +MS SQL Server に接続するための ODBC ドライバーをインストールします: + +```bash +$ sudo apt-get install tdsodbc freetds-bin sqsh +``` + +ドライバーの構成: + +```bash + $ cat /etc/freetds/freetds.conf + ... + + [MSSQL] + host = 192.168.56.101 + port = 1433 + tds version = 7.0 + client charset = UTF-8 + + # test TDS connection + $ sqsh -S MSSQL -D database -U user -P password + + + $ cat /etc/odbcinst.ini + + [FreeTDS] + Description = FreeTDS + Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so + Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so + FileUsage = 1 + UsageCount = 5 + + $ cat /etc/odbc.ini + # $ cat ~/.odbc.ini # if you signed in under a user that runs ClickHouse + + [MSSQL] + Description = FreeTDS + Driver = FreeTDS + Servername = MSSQL + Database = test + UID = test + PWD = test + Port = 1433 + + + # (optional) test ODBC connection (to use isql-tool install the [unixodbc](https://packages.debian.org/sid/unixodbc)-package) + $ isql -v MSSQL "user" "password" +``` + +備考: + +* 特定の SQL Server バージョンでサポートされている最も古い TDS バージョンを確認するには、製品ドキュメントを参照するか、[MS-TDS Product Behavior](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/135d0ebe-5c4c-4a94-99bf-1811eccb9f4a) を参照してください。 + +ClickHouse で Dictionary を設定する: + + + + ```sql + CREATE DICTIONARY test ( + k UInt64, + s String DEFAULT '' + ) + PRIMARY KEY k + SOURCE(ODBC(table 'dict' connection_string 'DSN=MSSQL;UID=test;PWD=test')) + LAYOUT(FLAT()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + test + + + dict
    + DSN=MSSQL;UID=test;PWD=test +
    + + + + 300 + 360 + + + + + + + + + k + + + s + String + + + +
    +
    + ``` +
    +
    diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md new file mode 100644 index 00000000000..a425a3a69d7 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md @@ -0,0 +1,106 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources +title: 'Dictionary ソース' +sidebar_position: 1 +sidebar_label: '概要' +doc_type: 'reference' +description: 'Dictionary ソースの種類の設定' +--- + +import CloudDetails from '@site/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## 構文 \{#dictionary-sources\} + + + +Dictionary は、さまざまなソースを通じて ClickHouse に接続できます。 +ソースは、設定ファイルでは `source` セクションで、DDL 文では `SOURCE` 句を使用して設定します。 + + + + +```sql +CREATE DICTIONARY dict_name (...) +... +SOURCE(SOURCE_TYPE(param1 val1 ... paramN valN)) -- ソースの設定 +... +``` + + + + +```xml + + + ... + + + + + + ... + + ... + +``` + + + + +
    + +## サポートされている Dictionary ソース \{#supported-dictionary-sources\} + +次のソースタイプ(`SOURCE_TYPE`/`source_type`)を利用できます。 + +- [ローカルファイル](./local-file.md) +- [実行可能ファイル](./executable-file.md) +- [実行可能プール](./executable-pool.md) +- [HTTP(S)](./http.md) +- DBMS + - [ODBC](./odbc.md) + - [MySQL](./mysql.md) + - [ClickHouse](./clickhouse.md) + - [MongoDB](./mongodb.md) + - [Redis](./redis.md) + - [Cassandra](./cassandra.md) + - [PostgreSQL](./postgresql.md) + - [YTsaurus](./ytsaurus.md) +- [YAMLRegExpTree](./yamlregexptree.md) +- [Null](./null.md) + +[ローカルファイル](./local-file.md)、[実行可能ファイル](./executable-file.md)、[HTTP(s)](./http.md)、[ClickHouse](./clickhouse.md) のソースタイプでは、 +オプションの設定項目を利用できます。 + + + + +```sql +SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) +--highlight-next-line +SETTINGS(format_csv_allow_single_quotes = 0) +``` + + + + +```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + +#highlight-next-line + 0 + + +``` + + + \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md new file mode 100644 index 00000000000..1f85466a0b7 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/postgresql +title: 'PostgreSQL Dictionary ソース' +sidebar_position: 12 +sidebar_label: 'PostgreSQL' +description: 'ClickHouse で PostgreSQL を Dictionary のソースとして構成します。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(POSTGRESQL( + port 5432 + host 'postgresql-hostname' + user 'postgres_user' + password 'postgres_password' + db 'db_name' + table 'table_name' + replica(host 'example01-1' port 5432 priority 1) + replica(host 'example01-2' port 5432 priority 2) + where 'id=10' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + postgresql-hostname + 5432 + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +設定フィールド: + +| Setting | Description | +| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | PostgreSQL サーバー上のホスト。すべてのレプリカに対して一括で指定することも、各レプリカごと(`` 内)に個別指定することもできます。 | +| `port` | PostgreSQL サーバー上のポート。すべてのレプリカに対して一括で指定することも、各レプリカごと(`` 内)に個別指定することもできます。 | +| `user` | PostgreSQL ユーザー名。すべてのレプリカに対して一括で指定することも、各レプリカごと(`` 内)に個別指定することもできます。 | +| `password` | PostgreSQL ユーザーのパスワード。すべてのレプリカに対して一括で指定することも、各レプリカごと(`` 内)に個別指定することもできます。 | +| `replica` | レプリカ設定セクション。複数のセクションを指定できます。 | +| `replica/host` | PostgreSQL のホスト。 | +| `replica/port` | PostgreSQL のポート。 | +| `replica/priority` | レプリカの優先度。接続を試行する際、ClickHouse は優先度の高い順にレプリカへの接続を試みます。数値が小さいほど優先度が高くなります。 | +| `db` | データベース名。 | +| `table` | テーブル名。 | +| `where` | 選択条件。条件式の構文は PostgreSQL の `WHERE` 句と同じです。例: `id > 10 AND id < 20`。省略可能です。 | +| `invalidate_query` | Dictionary の状態を確認するためのクエリ。省略可能です。詳しくは [LIFETIME を使用した Dictionary データの更新](../lifetime.md#refreshing-dictionary-data-using-lifetime) セクションを参照してください。 | +| `background_reconnect` | 接続失敗時にバックグラウンドでレプリカへ再接続します。省略可能です。 | +| `query` | カスタムクエリ。省略可能です。 | + +:::note +`table` フィールドまたは `where` フィールドは、`query` フィールドと同時には使用できません。また、`table` フィールドまたは `query` フィールドのいずれか一方は必ず指定する必要があります。 +::: diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md new file mode 100644 index 00000000000..00101913afd --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md @@ -0,0 +1,50 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/redis +title: "Redis Dictionary ソース" +sidebar_position: 10 +sidebar_label: 'Redis' +description: "ClickHouse で Dictionary ソースとして Redis を使用するよう構成します。" +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +設定例: + + + + ```sql + SOURCE(REDIS( + host 'localhost' + port 6379 + storage_type 'simple' + db_index 0 + )) + ``` + + + + ```xml + + + localhost + 6379 + simple + 0 + + + ``` + + + +
    + +設定項目: + +| Setting | Description | +| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Redis のホスト名です。 | +| `port` | Redis サーバーのポート番号です。 | +| `storage_type` | キー操作に使用される Redis の内部ストレージ構造です。`simple` は単純なソースおよびハッシュ化された単一キーソース向け、`hash_map` は 2 つのキーを持つハッシュ化ソース向けです。範囲ソースおよび複雑なキーを持つキャッシュソースはサポートされません。デフォルト値は `simple` です。省略可能です。 | +| `db_index` | Redis 論理データベースの数値インデックスを指定します。デフォルト値は `0` です。省略可能です。 | diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md new file mode 100644 index 00000000000..2549416ce45 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md @@ -0,0 +1,79 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/yamlregexptree +title: 'YAMLRegExpTree Dictionary ソース' +sidebar_position: 15 +sidebar_label: 'YAMLRegExpTree' +description: 'YAML ファイルを正規表現ツリー Dictionary のソースとして使用するよう設定します。' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + + + +`YAMLRegExpTree` ソースは、ローカルファイルシステム上の YAML ファイルから正規表現ツリーを読み込みます。 +これは [`regexp_tree`](../layouts/regexp-tree.md) Dictionary レイアウト専用に設計されており、 +ユーザーエージェントの解析などのパターンベースの検索向けに、階層的な正規表現から属性へのマッピングを提供します。 + +:::note +`YAMLRegExpTree` ソースは ClickHouse のオープンソース版でのみ利用可能です。 +ClickHouse Cloud では、Dictionary を CSV にエクスポートし、代わりに [ClickHouse table source](./clickhouse.md) 経由でロードしてください。 +詳細は、[ClickHouse Cloud で regexp_tree Dictionary を使用する](../layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud) を参照してください。 +::: + + +## 設定 \{#configuration\} + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0); +``` + +設定項目: + +| Setting | 説明 | +| ------- | -------------------------------------------------------------------------------- | +| `PATH` | 正規表現ツリーを含む YAML ファイルへの絶対パス。DDL で作成する場合、ファイルは `user_files` ディレクトリ内に存在している必要があります。 | + + +## YAML ファイル構造 \{#yaml-file-structure\} + +YAML ファイルには、正規表現ツリーのノードのリストが含まれます。各ノードは属性および子ノードを持つことができ、階層構造を形成します。 + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +各ノードは次の構造を持ちます: + +* **`regexp`**: このノード用の正規表現。 +* **attributes**: ユーザー定義の Dictionary 属性(例: `name`、`version`)。属性値には、正規表現のキャプチャグループへの **後方参照** を含めることができ、`\1` や `$1` のように記述します(1〜9 の数字)。これらはクエリ実行時に、一致したキャプチャグループで置き換えられます。 +* **child nodes**: 子ノードのリストで、それぞれが独自の属性を持ち、さらに子ノードを持つ場合もあります。子ノードリストの名前は任意です(例: 上記の `versions`)。文字列マッチングは深さ優先で行われます。ある文字列があるノードにマッチした場合、その子ノードもチェックされます。最も深い階層でマッチしたノードの属性が優先され、同名の親属性を上書きします。 + + +## 関連ページ \{#related-pages\} + +- [regexp_tree Dictionary のレイアウト](../layouts/regexp-tree.md) — レイアウト設定、クエリ例、マッチングモード +- [dictGet](/sql-reference/functions/ext-dict-functions#dictGet), [dictGetAll](/sql-reference/functions/ext-dict-functions#dictGetAll) — regexp tree Dictionary に対してクエリを実行するための関数 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md new file mode 100644 index 00000000000..7697fed52e3 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md @@ -0,0 +1,60 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/ytsaurus +title: 'YTsaurus の Dictionary ソース' +sidebar_position: 13 +sidebar_label: 'YTsaurus' +description: 'ClickHouse で YTsaurus を Dictionary ソースとして設定します。' +doc_type: 'reference' +--- + +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + +:::info +これは将来のリリースで後方互換性のない形で変更される可能性がある実験的な機能です。 +設定 [`allow_experimental_ytsaurus_dictionary_source`](/operations/settings/settings#allow_experimental_ytsaurus_dictionary_source) を使用して、 +YTsaurus Dictionary ソースの利用を有効にします。 +::: + +設定例: + + + + ```sql + SOURCE(YTSAURUS( + http_proxy_urls 'http://localhost:8000' + cypress_path '//tmp/test' + oauth_token 'password' + )) + ``` + + + + ```xml + + + http://localhost:8000 + //tmp/test + password + 1 + + + ``` + + + +
    + +設定フィールド: + +| Setting | Description | +| ----------------- | --------------------------- | +| `http_proxy_urls` | YTsaurus の HTTP プロキシへの URL。 | +| `cypress_path` | テーブルソースへの Cypress パス。 | +| `oauth_token` | OAuth トークン。 | diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md index a7b0735b7f2..946d2c969dd 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md @@ -56,7 +56,7 @@ SELECT * FROM test; └────────┘ ``` -テーブルの切り離し: +テーブルのデタッチ: クエリ: @@ -79,4 +79,4 @@ ClickHouse Cloud では、`PERMANENTLY` 句(例: `DETACH TABLE <table> P **関連項目** * [マテリアライズドビュー](/sql-reference/statements/create/view#materialized-view) -* [Dictionaries](../../sql-reference/dictionaries/index.md) +* [Dictionaries](./create/dictionary/index.md) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md index ec663ed2a10..e231129cbbf 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md @@ -104,4 +104,4 @@ EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster] **関連項目** -* [辞書](../../sql-reference/dictionaries/index.md) +* [辞書](./create/dictionary/index.md) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md index 51d1df74c7b..8e90ff8e772 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md @@ -19,6 +19,10 @@ doc_type: 'reference' OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL | FORCE] [DEDUPLICATE [BY expression]] ``` +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + `OPTIMIZE` クエリは [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) ファミリー([materialized views](/sql-reference/statements/create/view#materialized-view) を含む)および [Buffer](../../engines/table-engines/special/buffer.md) エンジンでサポートされています。他のテーブルエンジンはサポートされていません。 `OPTIMIZE` を [ReplicatedMergeTree](../../engines/table-engines/mergetree-family/replication.md) ファミリーのテーブルエンジンで使用する場合、ClickHouse はマージ用のタスクを作成し、すべてのレプリカでの実行が完了するまで([alter_sync](/operations/settings/settings#alter_sync) 設定が `2` に設定されている場合)、または現在のレプリカでの実行が完了するまで([alter_sync](/operations/settings/settings#alter_sync) 設定が `1` に設定されている場合)待機します。 @@ -34,6 +38,55 @@ OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION I `alter_sync` が `2` に設定されていて、`replication_wait_for_inactive_replica_timeout` 設定で指定された時間を超えても一部のレプリカがアクティブにならない場合、`UNFINISHED` という例外がスローされます。 ::: +## DRY RUN \{#dry-run\} + +`DRY RUN` 句は、指定されたパーツのマージを結果をコミットせずにシミュレートします。マージされたパーツは一時的な場所に書き込まれて検証され、その後破棄されます。元のパーツおよびテーブルデータは変更されません。 + +これは次の用途に役立ちます: + +* ClickHouse のバージョン間でマージの正しさをテストする。 +* マージ関連のバグを確実に再現する。 +* マージのパフォーマンスをベンチマークする。 + +`DRY RUN` は [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) ファミリーのテーブルでのみサポートされます。パーツ名のリストを伴う `PARTS` キーワードが必須です。指定されたすべてのパーツは存在し、アクティブであり、同じパーティションに属している必要があります。 + +`DRY RUN` は `FINAL` および `PARTITION` とは併用できません。`DEDUPLICATE`(任意のカラム指定付き)および `CLEANUP`(`ReplacingMergeTree` テーブル向け)とは組み合わせることができます。 + +**構文** + +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + +デフォルトでは、マージ後に生成されるパーツは [`CHECK TABLE`](/sql-reference/statements/check-table) クエリと同様の方法で検証されます。この動作は [optimize_dry_run_check_part](/operations/settings/settings#optimize_dry_run_check_part) SETTING(デフォルトで有効)によって制御されます。これを無効にすると検証がスキップされ、マージ処理自体のベンチマークを行う際に有用です。 + +**例** + +```sql +CREATE TABLE dry_run_example (key UInt64, value String) ENGINE = MergeTree ORDER BY key; + +INSERT INTO dry_run_example VALUES (1, 'a'), (2, 'b'); +INSERT INTO dry_run_example VALUES (1, 'c'), (4, 'd'); + +-- Simulate merging using two parts +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0'; + +-- Simulate merging with deduplication +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0' DEDUPLICATE; + +-- Parts and data remain unchanged after DRY RUN +SELECT name, rows FROM system.parts +WHERE database = currentDatabase() AND table = 'dry_run_example' AND active +ORDER BY name; +``` + +```response +┌─name────────┬─rows─┐ +│ all_1_1_0 │ 2 │ +│ all_2_2_0 │ 2 │ +└─────────────┴──────┘ +``` + ## BY 式 \{#by-expression\} すべてのカラムではなく任意のカラム集合に対して重複排除を行いたい場合、カラムの一覧を明示的に指定するか、[`*`](../../sql-reference/statements/select/index.md#asterisk)、[`COLUMNS`](/sql-reference/statements/select#select-clause)、[`EXCEPT`](/sql-reference/statements/select/except-modifier) 式を任意に組み合わせて使用できます。明示的に記述した、または暗黙的に展開されたカラム一覧には、行の並び順を決める式(主キーとソートキーの両方)およびパーティション指定の式(パーティションキー)で指定されているすべてのカラムが含まれている必要があります。 @@ -84,7 +137,7 @@ VALUES (0, 0, 0, 0), (0, 0, 0, 0), (1, 1, 2, 2), (1, 1, 2, 3), (1, 1, 3, 3); SELECT * FROM example; ``` -結果: +結果: ```sql @@ -101,11 +154,11 @@ SELECT * FROM example; └─────────────┴───────────────┴───────┴───────────────┘ ``` -以下のすべての例は、5 行を持つこの状態に対して実行されます。 +以下のすべての例は、5 行のこの状態に対して実行されます。 #### `DEDUPLICATE` \{#deduplicate\} -重複排除に使用するカラムが指定されていない場合、すべてのカラムが考慮されます。前の行の対応する値と、すべてのカラムにおいて値がすべて等しい場合にのみ、その行は削除されます。 +重複排除に使用するカラムが指定されていない場合は、すべてのカラムが対象になります。各カラムの値が前の行の対応する値とすべて等しい場合にのみ、その行は削除されます。 ```sql OPTIMIZE TABLE example FINAL DEDUPLICATE; @@ -142,7 +195,7 @@ OPTIMIZE TABLE example FINAL DEDUPLICATE BY *; SELECT * FROM example; ``` -結果: +結果: ```response ┌─primary_key─┬─secondary_key─┬─value─┬─partition_key─┐ diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md index 762d6f4d53e..724c4d52cff 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md @@ -55,7 +55,7 @@ RENAME table_A TO table_A_bak, table_B TO table_B_bak; ## RENAME DICTIONARY \{#rename-dictionary\} -1つまたは複数の辞書の名前を変更します。このクエリは、辞書を別のデータベースに移動するためにも使用できます。 +1つまたは複数のDictionaryの名前を変更します。このクエリは、Dictionaryを別のデータベースに移動するためにも使用できます。 **構文** @@ -65,4 +65,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **関連項目** -* [辞書](../../sql-reference/dictionaries/index.md) +* [Dictionary](./create/dictionary/index.md) diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md index c6af1b63592..45ea5394925 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md @@ -488,7 +488,7 @@ SELECT a, b, toTypeName(a), toTypeName(b) FROM t_1 FULL JOIN t_2 USING (a, b); 場合によっては、`JOIN` の代わりに [IN](../../../sql-reference/operators/in.md) を使用した方が効率的です。 -ディメンションテーブルとの結合 (広告キャンペーン名などのディメンション属性を含む、比較的小さなテーブル) に `JOIN` が必要な場合、右側テーブルがクエリごとに再アクセスされるため、`JOIN` はあまり便利ではない可能性があります。そのようなケースでは、`JOIN` の代わりに使用すべき「dictionaries」機能があります。詳細については、[Dictionaries](../../../sql-reference/dictionaries/index.md) セクションを参照してください。 +ディメンションテーブルとの結合 (広告キャンペーン名などのディメンション属性を含む、比較的小さなテーブル) に `JOIN` が必要な場合、右側テーブルがクエリごとに再アクセスされるため、`JOIN` はあまり便利ではない可能性があります。そのようなケースでは、`JOIN` の代わりに使用すべき「dictionaries」機能があります。詳細については、[Dictionaries](../../create/dictionary/index.md) セクションを参照してください。 ### メモリ制限 \{#memory-limitations\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md index 833d4a7df06..5c4507d3cdd 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md @@ -246,7 +246,7 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%' ## SHOW DICTIONARIES \{#show-dictionaries\} -`SHOW DICTIONARIES` ステートメントは、[Dictionaries](../../sql-reference/dictionaries/index.md) の一覧を表示します。 +`SHOW DICTIONARIES` ステートメントは、[Dictionaries](./create/dictionary/index.md) の一覧を表示します。 ### 構文 \{#syntax-4\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index 342c547d781..d800e8e139b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -13,7 +13,7 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; ## SYSTEM RELOAD EMBEDDED DICTIONARIES \{#reload-embedded-dictionaries\} -すべての [内部Dictionary](../../sql-reference/dictionaries/index.md) を再読み込みします。 +すべての [内部Dictionary](./create/dictionary/index.md) を再読み込みします。 デフォルトでは、内部Dictionaryは無効化されています。 内部Dictionaryの更新結果に関係なく、常に `Ok.` を返します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md index 0b20a6a8fb9..6088051e91b 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # dictionary テーブル関数 \{#dictionary-table-function\} -[dictionary](../../sql-reference/dictionaries/index.md) のデータを ClickHouse のテーブルとして扱います。[Dictionary](../../engines/table-engines/special/dictionary.md) エンジンと同様に動作します。 +[dictionary](../statements/create/dictionary/index.md) のデータを ClickHouse のテーブルとして扱います。[Dictionary](../../engines/table-engines/special/dictionary.md) エンジンと同様に動作します。 ## 構文 \{#syntax\} @@ -17,6 +17,7 @@ doc_type: 'reference' dictionary('dict') ``` + ## 引数 \{#arguments\} - `dict` — 辞書名。[String](../../sql-reference/data-types/string.md) 型。 @@ -58,6 +59,7 @@ SELECT * FROM dictionary('new_dictionary'); └────┴───────┘ ``` + ## 関連 \{#related\} -- [Dictionary エンジン](/engines/table-engines/special/dictionary) +- [Dictionary エンジン](/engines/table-engines/special/dictionary) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md index 4459d2fe9c7..c1b42dc16f7 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md @@ -431,7 +431,7 @@ y: 993 ### スキーマの進化 \{#iceberg-writes-schema-evolution\} -ClickHouse では、タプル・配列・マップ以外の単純な型を持つカラムの追加・削除・変更が可能です。 +ClickHouse では、タプル・配列・マップ以外の単純な型を持つカラムの追加・削除・変更・リネームが可能です。 ### 例 \{#example-iceberg-writes-evolution\} @@ -490,8 +490,30 @@ Row 1: ────── x: Ivanov y: 993 + +ALTER TABLE iceberg_writes_example RENAME COLUMN y TO value; +SHOW CREATE TABLE iceberg_writes_example; + + ┌─statement─────────────────────────────────────────────────┐ +1. │ CREATE TABLE default.iceberg_writes_example ↴│ + │↳( ↴│ + │↳ `x` Nullable(String), ↴│ + │↳ `value` Nullable(Int64) ↴│ + │↳) ↴│ + │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │ + └───────────────────────────────────────────────────────────┘ + +SELECT * +FROM iceberg_writes_example +FORMAT VERTICAL; + +Row 1: +────── +x: Ivanov +value: 993 ``` + ### コンパクション \{#iceberg-writes-compaction\} ClickHouse は Iceberg テーブルのコンパクションをサポートしています。現在、メタデータを更新しながら position delete ファイルをデータファイルにマージできます。以前のスナップショット ID とタイムスタンプは変更されないため、同じ値を使ってタイムトラベル機能を引き続き利用できます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md index e05880c2e21..edc74d609c4 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md @@ -129,4 +129,4 @@ SELECT * FROM mongodb( ## 関連項目 \{#related\} - [`MongoDB` テーブルエンジン](engines/table-engines/integrations/mongodb.md) -- [MongoDB を辞書のソースとして使用する](sql-reference/dictionaries/index.md#mongodb) \ No newline at end of file +- [MongoDB を辞書のソースとして使用する](../statements/create/dictionary/sources.md#mongodb) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md index 74751af240a..e89132de1fa 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md @@ -17,6 +17,7 @@ doc_type: 'reference' mysql({host:port, database, table, user, password[, replace_query, on_duplicate_clause] | named_collection[, option=value [,..]]}) ``` + ## 引数 \{#arguments\} | Argument | Description | @@ -47,6 +48,7 @@ SELECT name FROM mysql(`mysql{1|2|3}:3306`, 'mysql_database', 'mysql_table', 'us SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database', 'mysql_table', 'user', 'password'); ``` + ## 返される値 \{#returned_value\} 元の MySQL テーブルと同じカラムを持つテーブルオブジェクト。 @@ -103,7 +105,7 @@ SELECT * FROM mysql(creds, table='test'); └────────┴───────┘ ``` -置換および挿入: +置換と挿入: ```sql INSERT INTO FUNCTION mysql('localhost:3306', 'test', 'test', 'bayonet', '123', 1) (int_id, float) VALUES (1, 3); @@ -142,11 +144,12 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password') WHERE id > (SELECT max(id) FROM mysql_copy); ``` + ## 関連項目 \{#related\} - [MySQL テーブルエンジン](../../engines/table-engines/integrations/mysql.md) -- [MySQL をディクショナリのソースとして使用する](/sql-reference/dictionaries#mysql) +- [MySQL をディクショナリのソースとして使用する](/sql-reference/statements/create/dictionary/sources#mysql) - [mysql_datatypes_support_level](operations/settings/settings.md#mysql_datatypes_support_level) - [mysql_map_fixed_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_fixed_string_to_text_in_show_columns) - [mysql_map_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_string_to_text_in_show_columns) -- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) +- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md index d88500d9079..fcd0f1882bb 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md @@ -19,6 +19,7 @@ odbc(datasource, external_table) odbc(named_collection) ``` + ## 引数 \{#arguments\} | Argument | Description | @@ -110,7 +111,8 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test') └────────┴──────────────┴───────┴────────────────┘ ``` + ## 関連項目 \{#see-also\} -- [ODBC 辞書](/sql-reference/dictionaries#dbms) -- [ODBC テーブルエンジン](/engines/table-engines/integrations/odbc) +- [ODBC 辞書](/sql-reference/statements/create/dictionary/sources#dbms) +- [ODBC テーブルエンジン](/engines/table-engines/integrations/odbc) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md index 47efd99bcb1..2dbb73bfee3 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md @@ -17,6 +17,7 @@ doc_type: 'reference' postgresql({host:port, database, table, user, password[, schema, [, on_conflict]] | named_collection[, option=value [,..]]}) ``` + ## 引数 \{#arguments\} | 引数 | 説明 | @@ -67,7 +68,8 @@ SELECT name FROM postgresql(`postgres{1|2|3}:5432`, 'postgres_database', 'postgr SELECT name FROM postgresql(`postgres1:5431|postgres2:5432`, 'postgres_database', 'postgres_table', 'user', 'password'); ``` -PostgreSQL の辞書ソースで、レプリカの優先度指定をサポートします。マップ内の数値が大きいほど優先度は低くなります。最も高い優先度は `0` です。 +PostgreSQL の Dictionary ソースで、レプリカの優先度指定をサポートします。マップ内の数値が大きいほど優先度は低くなります。最も高い優先度は `0` です。 + ## 例 \{#examples\} @@ -94,7 +96,7 @@ postgresql> SELECT * FROM test; (1 row) ``` -通常の引数を使って ClickHouse からデータを取得する: +通常の引数指定で ClickHouse からデータを取得する: ```sql SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'password') WHERE str IN ('test'); @@ -132,7 +134,7 @@ SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'p └────────┴──────────────┴───────┴──────┴────────────────┘ ``` -デフォルト以外のスキーマを使用する場合: +デフォルト以外のスキーマの使用: ```text postgres=# CREATE SCHEMA "nice.schema"; @@ -147,11 +149,12 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) ENGINE PostgreSQL('localhost:5432', 'clickhouse', 'nice.table', 'postgrsql_user', 'password', 'nice.schema'); ``` + ## 関連 \{#related\} - [PostgreSQL テーブルエンジン](../../engines/table-engines/integrations/postgresql.md) -- [PostgreSQL をディクショナリソースとして使用する](/sql-reference/dictionaries#postgresql) +- [PostgreSQL をディクショナリソースとして使用する](/sql-reference/statements/create/dictionary/sources#postgresql) ### PeerDB を使用した Postgres データのレプリケーションまたは移行 \{#replicating-or-migrating-postgres-data-with-with-peerdb\} -> テーブル関数に加えて、ClickHouse が提供する [PeerDB](https://docs.peerdb.io/introduction) を使用して、Postgres から ClickHouse への継続的なデータパイプラインを構築することもできます。PeerDB は、変更データキャプチャ(CDC)を使用して Postgres から ClickHouse へデータをレプリケートするために専用に設計されたツールです。 +> テーブル関数に加えて、ClickHouse が提供する [PeerDB](https://docs.peerdb.io/introduction) を使用して、Postgres から ClickHouse への継続的なデータパイプラインを構築することもできます。PeerDB は、変更データキャプチャ(CDC)を使用して Postgres から ClickHouse へデータをレプリケートするために専用に設計されたツールです。 \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md index b758a03eadb..dc7bd941a93 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md @@ -17,6 +17,7 @@ doc_type: 'reference' redis(host:port, key, structure[, db_index[, password[, pool_size]]]) ``` + ## 引数 \{#arguments\} | 引数 | 説明 | @@ -59,7 +60,8 @@ INSERT INTO TABLE FUNCTION redis( 'key String, v1 String, v2 UInt32') values ('1', '1', 1); ``` + ## 関連項目 \{#related\} - [`Redis` テーブルエンジン](/engines/table-engines/integrations/redis.md) -- [辞書のデータソースとして `Redis` を使用する](/sql-reference/dictionaries/index.md#redis) +- [辞書のデータソースとして `Redis` を使用する](/sql-reference/statements/create/dictionary/sources#redis) \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md index 2d044a34d3b..9ca6de0aee3 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md @@ -50,9 +50,13 @@ ClickHouse は、ウィンドウおよびウィンドウ関数を定義するた ```text aggregate_function (column_name) OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column] - [ROWS or RANGE expression_to_bound_rows_withing_the_group]] | [window_name]) + [ROWS or RANGE expression_to_bound_rows_within_the_group]] | [window_name]) FROM table_name -WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]]) +WINDOW window_name as ([ + [PARTITION BY grouping_column] + [ORDER BY sorting_column] + [ROWS or RANGE expression_to_bound_rows_within_the_group] +]) ``` * `PARTITION BY` - 結果セットをどのようなグループに分割するかを定義します。 @@ -90,6 +94,7 @@ WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column] * [`lagInFrame(x)`](./lagInFrame.md) - 順序付けられたフレーム内で、現在の行から指定された物理オフセットだけ前の行で評価された値を返します。 * [`leadInFrame(x)`](./leadInFrame.md) - 順序付けられたフレーム内で、現在の行から指定されたオフセットだけ後ろの行で評価された値を返します。 + ## 例 \{#examples\} ウィンドウ関数をどのように利用できるか、いくつかの例を見ていきます。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/jp/docusaurus-plugin-content-docs/current/tutorial.md index 8accff614a6..43ba0727154 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/tutorial.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/tutorial.md @@ -144,7 +144,7 @@ doc_type: 'guide' 2. `INSERT` が完了するまで待ちます。150 MB のデータをダウンロードするのに少し時間がかかることがあります。 - 3. 挿入が完了したら、成功していることを確認します: + 3. 挿入が完了したら、正しく行われたか確認します: ```sql SELECT count() FROM trips @@ -369,7 +369,7 @@ doc_type: 'guide' ## Dictionary を作成する - Dictionary はメモリに保存されたキーと値のペアのマッピングです。詳細については、[Dictionaries](/sql-reference/dictionaries/index.md) を参照してください + Dictionary はメモリに保存されたキーと値のペアのマッピングです。詳細については、[Dictionaries](/sql-reference/statements/create/dictionary) を参照してください ClickHouse サービス内のテーブルに関連付けられた Dictionary を作成します。 このテーブルと Dictionary は、New York City の各地区ごとに 1 行が含まれている CSV ファイルに基づいています。 @@ -403,7 +403,7 @@ doc_type: 'guide' ``` :::note - `LIFETIME` を 0 に設定すると、S3 バケットへの不要なトラフィックを回避するために自動更新が無効になります。その他の場合は、異なる設定を行うことができます。詳細については、[LIFETIME を使用した Dictionary データの更新](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime) を参照してください。 + `LIFETIME` を 0 に設定すると、S3 バケットへの不要なトラフィックを回避するために自動更新が無効になります。その他の場合は、異なる設定を行うことができます。詳細については、[LIFETIME を使用した Dictionary データの更新](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime) を参照してください。 ::: 3. 正しく動作していることを確認します。次のクエリでは 265 行、つまり各地区ごとに 1 行が返されるはずです: @@ -429,17 +429,17 @@ doc_type: 'guide' 1 rows in set. Elapsed: 0.004 sec. ``` - 5. `dictHas` 関数を使用して、キーが Dictionary に存在するかどうかを確認します。たとえば、次のクエリは `1`(ClickHouse では「true」とみなされます)を返します。 + 5. Dictionary にキーが存在するかどうかを確認するには `dictHas` 関数を使用します。たとえば、次のクエリは `1`(ClickHouse では「true」を表します)を返します。 ```sql SELECT dictHas('taxi_zone_dictionary', 132) ``` - 6. 次のクエリは、4567 が Dictionary の `LocationID` に存在しない値であるため、0 を返します: + 6. 次のクエリは、4567 が Dictionary 内の `LocationID` の値として存在しないため、0 を返します: ```sql SELECT dictHas('taxi_zone_dictionary', 4567) ``` - 7. `dictGet` 関数を使用して、クエリ内で行政区の名前を取得します。例: + 7. Use the `dictGet` 関数を使用して、クエリ内で行政区の名前を取得します。例: ```sql SELECT @@ -500,7 +500,7 @@ doc_type: 'guide' ``` :::note - 上記の `JOIN` クエリの出力は、直前の `dictGetOrDefault` を使用したクエリと同じです(ただし `Unknown` の値は含まれません)。内部的には、ClickHouse は `taxi_zone_dictionary` Dictionary に対して `dictGet` 関数を呼び出していますが、`JOIN` 構文の方が SQL 開発者にとってよりなじみがあります。 + 上記の `JOIN` クエリの出力は、直前の `dictGetOrDefault` を使用したクエリと同一です(ただし `Unknown` の値は含まれません)。内部的には、ClickHouse が `taxi_zone_dictionary` Dictionary に対して `dictGet` 関数を実際には呼び出していますが、`JOIN` 構文の方が SQL 開発者にはよりなじみがあります。 ::: 2. このクエリは、チップ額が最も高い 1000 件の乗車に対応する行を返し、その後、それぞれの行を Dictionary と内部結合します。 diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md index b4ad0eedc16..a1f714b83f4 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md @@ -588,7 +588,7 @@ LIMIT 5 ## Dictionary の使用 \{#using-dictionaries\} -[Dictionaries](/sql-reference/dictionaries) は ClickHouse の[重要な機能](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)であり、さまざまな内部および外部の[ソース](/sql-reference/dictionaries#dictionary-sources)からのデータを、インメモリの[key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database)形式で表現し、超低レイテンシーのルックアップクエリ向けに最適化します。 +[Dictionaries](/sql-reference/statements/create/dictionary) は ClickHouse の[重要な機能](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)であり、さまざまな内部および外部の[ソース](/sql-reference/statements/create/dictionary/sources#dictionary-sources)からのデータを、インメモリの[key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database)形式で表現し、超低レイテンシーのルックアップクエリ向けに最適化します。 オブザーバビリティと Dictionary @@ -726,7 +726,7 @@ SELECT FROM geoip_url ``` -ClickHouse で低レイテンシな IP ルックアップを行うために、Geo IP データのキーから属性へのマッピングをインメモリで保持する Dictionary を利用します。ClickHouse には、ネットワークプレフィックス(CIDR ブロック)を座標および国コードにマッピングするための `ip_trie` [dictionary structure](/sql-reference/dictionaries#ip_trie) が用意されています。次のクエリでは、このレイアウトを用い、上記のテーブルをソースとする Dictionary を定義します。 +ClickHouse で低レイテンシな IP ルックアップを行うために、Geo IP データのキーから属性へのマッピングをインメモリで保持する Dictionary を利用します。ClickHouse には、ネットワークプレフィックス(CIDR ブロック)を座標および国コードにマッピングするための `ip_trie` [dictionary structure](/sql-reference/statements/create/dictionary/layouts/ip-trie) が用意されています。次のクエリでは、このレイアウトを用い、上記のテーブルをソースとする Dictionary を定義します。 ```sql CREATE DICTIONARY ip_trie ( @@ -741,7 +741,7 @@ layout(ip_trie) lifetime(3600); ``` -Dictionary から行を取得し、このデータセットがルックアップに利用できることを確認できます。 +Dictionary から行を選択し、このデータセットがルックアップに利用可能であることを確認できます。 ```sql SELECT * FROM ip_trie LIMIT 3 @@ -838,10 +838,10 @@ ORDER BY (ServiceName, Timestamp) [ユーザーエージェント文字列](https://en.wikipedia.org/wiki/User_agent)のパースは、古典的な正規表現の問題であり、ログやトレースを基盤とするデータセットで一般的に必要とされる処理です。ClickHouse は Regular Expression Tree Dictionary を用いて、ユーザーエージェントを効率的にパースできます。 -正規表現ツリー Dictionary は、ClickHouse オープンソース版では YAMLRegExpTree dictionary source type を使用して定義されます。この型では、正規表現ツリーを含む YAML ファイルへのパスを指定します。独自の正規表現 Dictionary を使用したい場合は、必要な構造の詳細が[こちら](/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source)に記載されています。以下では、[uap-core](https://github.com/ua-parser/uap-core) を用いたユーザーエージェントのパースと、サポートされている CSV 形式用 Dictionary の読み込みに焦点を当てます。このアプローチは OSS と ClickHouse Cloud の両方で利用可能です。 +正規表現ツリー Dictionary は、ClickHouse オープンソース版では YAMLRegExpTree dictionary source type を使用して定義されます。この型では、正規表現ツリーを含む YAML ファイルへのパスを指定します。独自の正規表現 Dictionary を使用したい場合は、必要な構造の詳細が[こちら](/sql-reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source)に記載されています。以下では、[uap-core](https://github.com/ua-parser/uap-core) を用いたユーザーエージェントのパースと、サポートされている CSV 形式用 Dictionary の読み込みに焦点を当てます。このアプローチは OSS と ClickHouse Cloud の両方で利用可能です。 :::note -以下の例では、2024年6月時点での uap-core におけるユーザーエージェントパース用正規表現の最新スナップショットを使用しています。随時更新される最新のファイルは[こちら](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)から取得できます。下記で使用する CSV ファイルにロードするには、[こちら](/sql-reference/dictionaries#collecting-attribute-values)の手順に従ってください。 +以下の例では、2024年6月時点での uap-core におけるユーザーエージェントパース用正規表現の最新スナップショットを使用しています。随時更新される最新のファイルは[こちら](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)から取得できます。下記で使用する CSV ファイルにロードするには、[こちら](/sql-reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values)の手順に従ってください。 ::: 以下の Memory テーブルを作成します。これらは、デバイス、ブラウザ、オペレーティングシステムをパースするための正規表現を保持します。 @@ -927,7 +927,7 @@ LIFETIME(0) LAYOUT(regexp_tree); ``` -これらの Dictionary をロードしたら、サンプルの user-agent 文字列を与えて、新しい Dictionary 抽出機能をテストできます。 +これらの Dictionary をロードしたら、サンプルの user-agent 文字列を入力して、新しい Dictionary 抽出機能をテストできます。 ```sql @@ -1030,8 +1030,8 @@ Os: ('Other','0','0','0') Dictionary に関するさらなる例や詳細については、次の記事を参照してください。 - [Dictionary の高度なトピック](/dictionary#advanced-dictionary-topics) -- 「Using Dictionaries to Accelerate Queries」(https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [Dictionaries](/sql-reference/dictionaries) +- [「Using Dictionaries to Accelerate Queries」](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) +- [Dictionaries](/sql-reference/statements/create/dictionary) ## クエリの高速化 \{#accelerating-queries\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md index a63a9b3c7c3..30483e07ad5 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md @@ -1,6 +1,6 @@ --- slug: /use-cases/observability/clickstack/alerts -title: 'ClickStack を使った検索' +title: 'ClickStack によるアラート' sidebar_label: 'アラート' pagination_prev: null pagination_next: null @@ -24,14 +24,12 @@ import remove_chart_alert from '@site/static/images/use-cases/observability/remo import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +ClickStack にはアラート機能が組み込まれており、ログ、メトリクス、トレース全体にわたってリアルタイムに問題を検知・対応できます。 -## ClickStack におけるアラート \{#alerting-in-clickstack\} +アラートは HyperDX のインターフェースから直接作成でき、Slack や PagerDuty など、よく利用される通知システムと連携します。 -ClickStack にはアラート機能が組み込まれており、ログ・メトリクス・トレースを横断してリアルタイムに問題を検出し、対応できるようになります。 +アラート機能は ClickStack のデータ全体に対してシームレスに動作し、システムの健全性の把握、パフォーマンス劣化の検出、主要なビジネスイベントの監視に役立ちます。 -アラートは HyperDX のインターフェースから直接作成でき、Slack や PagerDuty などの一般的な通知サービスと連携します。 - -アラート機能は ClickStack のあらゆるデータとシームレスに連携し、システムの健全性の把握、パフォーマンス劣化の検知、重要なビジネスイベントの監視を支援します。 ## アラートの種類 \{#types-of-alerts\} diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md index cf093c7cfee..489331fb52d 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md @@ -14,4 +14,5 @@ keywords: ['ClickStack サンプルデータセット', 'ClickStack デモデー |---------|-------------| | [Sample Data](sample-data.md) | デモ環境から取得したログ、トレース、メトリクスを含むサンプルデータセットを読み込みます | | [Local Data](local-data.md) | ローカルシステムのメトリクスとログを収集し、分析のために ClickStack に送信します | -| [Remote Demo Data](remote-demo-data.md) | リモートのデモクラスターに接続し、問題を調査します | \ No newline at end of file +| [Remote Demo Data](remote-demo-data.md) | リモートのデモクラスターに接続し、問題を調査します | +| [Session Replay Demo](session-replay.md) | セッションリプレイ用にデモ Web アプリケーションをインストルメントし、ClickStack で操作内容を確認します | \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md new file mode 100644 index 00000000000..41192d8a6e0 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md @@ -0,0 +1,179 @@ +--- +slug: /use-cases/observability/clickstack/example-datasets/session-replay-demo +title: 'セッションリプレイのデモ' +sidebar_position: 4 +pagination_prev: null +pagination_next: null +description: 'ClickStack のセッションリプレイ向けに Web アプリケーションを計装する方法を示すインタラクティブなデモアプリケーション' +doc_type: 'guide' +keywords: ['clickstack', 'セッションリプレイ', 'ブラウザー SDK', 'デモ', 'オブザーバビリティ', '計装'] +--- + +import Image from '@theme/IdealImage'; +import api_key from '@site/static/images/clickstack/api-key.png'; +import demo_app from '@site/static/images/clickstack/session-replay/demo-app.png'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; + +:::note[TL;DR] +このガイドでは、ClickStack Browser SDK を使用してセッションリプレイ用に Web アプリケーションに計測(インストルメンテーション)を行う手順を説明します。他の事前生成データを読み込むサンプルデータセットとは異なり、このデモでは、実際の操作を通じてセッションデータを生成できるインタラクティブなアプリケーションを提供します。 + +所要時間:10〜15分 +::: + + +## 概要 \{#overview\} + +[session replay デモアプリケーション](https://github.com/ClickHouse/clickstack-session-replay-demo) は、vanilla JavaScript で構築されたドキュメント閲覧用アプリケーションです。セッションリプレイのインストルメンテーションをどれほど最小限に抑えられるかを示しており、1 つの script タグと 1 回の初期化呼び出しだけで、すべてのユーザー操作を自動的に取得できます。 + +このリポジトリには 2 つのブランチが含まれています: + +- **`main`** — すべてインストルメンテーション済みで、すぐに利用可能なブランチ +- **`pre-instrumented`** — インストルメンテーションのないクリーンなバージョンで、どこに追加すべきかを示すコードコメント付きのブランチ + +このガイドでは、まず `main` ブランチを使ってセッションリプレイの動作を確認し、その後インストルメンテーションコードを順に解説し、同じパターンを自分のアプリケーションに適用できるようにします。 + +セッションリプレイの概要と、それが ClickStack にどのように組み込まれているかについては、[Session Replay](/use-cases/observability/clickstack/session-replay) 機能ページを参照してください。 + +## 前提条件 \{#prerequisites\} + +- Docker および Docker Compose がインストールされていること +- ポート 3000、4317、4318、8080 が利用可能であること + +## デモを実行する \{#running-the-demo\} + + + +### リポジトリをクローンする \{#clone-repository\} + +```shell +git clone https://github.com/ClickHouse/clickstack-session-replay-demo +cd clickstack-session-replay-demo +``` + +### ClickStack を起動する \{#start-clickstack\} + +```shell +docker-compose up -d clickstack +``` + +### API キーを取得する \{#get-api-key\} + +1. [http://localhost:8080](http://localhost:8080) で HyperDX を開きます +2. 必要に応じてアカウントを作成するかログインします +3. **Team Settings → API Keys** に移動します +4. **インジェスト API key** をコピーします + +ClickStack API Key + +5. 環境変数として設定します: + +```shell +export CLICKSTACK_API_KEY='your-api-key-here' +``` + +### デモアプリケーションを起動する \{#start-demo-app\} + +```shell +docker-compose --profile demo up demo-app +``` + +:::note +`CLICKSTACK_API_KEY` 変数をエクスポートしたのと同じターミナルでこのコマンドを実行してください。 +::: + +ブラウザで [http://localhost:3000](http://localhost:3000) を開き、アプリを操作します。トピックを検索したり、カテゴリでフィルタしたり、コード例を表示したり、項目をブックマークしたりしてみてください。 + +セッションリプレイのデモアプリ + +すべての操作は ClickStack Browser SDK によって自動的に収集されます。 + +### セッションリプレイを表示する \{#view-session-replay\} + +[http://localhost:8080](http://localhost:8080) の HyperDX に戻り、左側のサイドバーから **Client Sessions** に移動します。 + +セッションリプレイの検索 + +セッションが一覧表示され、各セッションの継続時間とイベント数が確認できるはずです。▶️ ボタンをクリックしてリプレイします。 + +セッションリプレイ + +**Highlighted** モードと **All Events** モードを切り替えて、タイムラインに表示される詳細度を調整します。 + + + +## インストルメンテーション \{#instrumentation\} + +このデモアプリケーションは、セッションリプレイを有効化するために必要なコードがいかに少なくて済むかを示しています。アプリケーション側で行う追加は、次の 2 点だけです。 + +**1. SDK を組み込む(`app/public/index.html`):** + +```html + +``` + +**2. ClickStack の初期化 (`app/public/js/app.js`):** + +```javascript +window.HyperDX.init({ + url: 'http://localhost:4318', + apiKey: window.CLICKSTACK_API_KEY, + service: 'clickhouse-session-replay-demo', + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + +それ以外の部分はすべて標準的なアプリケーションコードです。SDK がユーザー操作、コンソールログ、ネットワークリクエスト、エラーを自動的にすべて収集するため、追加の計装は不要です。 + + +### 自分で試してみる \{#try-it-yourself\} + +アプリにゼロからインスツルメンテーションを行うには、`pre-instrumented` ブランチに切り替えてください。 + +```shell +git checkout pre-instrumented +``` + +このブランチには、ClickStack のインストルメンテーションが一切含まれていない同じアプリケーションが含まれています。`app/public/index.html` と `app/public/js/app.js` のコードコメントに、上記 2 つのコードスニペットをどこに追加するかが正確に示されています。追加したら、デモアプリを再起動してください。以降、行った操作が ClickStack 上に表示され始めます。 + + +## トラブルシューティング \{#troubleshooting\} + +### HyperDX にセッションが表示されない \{#sessions-not-appearing\} + +1. ブラウザのコンソールにエラーが出力されていないか確認します +2. ClickStack が起動していることを確認します: `docker-compose ps` +3. API キーが設定されていることを確認します: `echo $CLICKSTACK_API_KEY` +4. Client Sessions ビューで時間範囲を調整します(**Last 15 minutes** を選択してみてください) +5. ブラウザをハードリロードします: `Cmd+Shift+R` (Mac) または `Ctrl+Shift+R` (Windows/Linux) + +### 401 Unauthorized エラー \{#401-errors\} + +API キーが正しく設定されていません。次の点を確認してください。 + +1. ターミナルで環境変数としてエクスポートしていること: `export CLICKSTACK_API_KEY='your-key'` +2. そのキーをエクスポートした**同じターミナル**でデモアプリを起動していること +3. HyperDX UI から取得したキーを使っていること(ランダムに生成された文字列ではないこと) + +## クリーンアップ \{#cleanup\} + +サービスを停止します: + +```bash +docker-compose down +``` + +全データの削除: + +```bash +docker-compose down -v +``` + + +## 詳細情報 \{#learn-more\} + +- [Session Replay](/use-cases/observability/clickstack/session-replay) — 機能概要、SDK オプション、およびプライバシー制御機能 +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — SDK オプションの一覧と詳細な設定方法 +- [ClickStack Getting Started](/use-cases/observability/clickstack/getting-started) — ClickStack をデプロイして、最初のデータを取り込む手順 +- [All Sample Datasets](/use-cases/observability/clickstack/sample-datasets) — その他のサンプルデータセットとガイド \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md new file mode 100644 index 00000000000..1c6dcb3d0a6 --- /dev/null +++ b/i18n/jp/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md @@ -0,0 +1,150 @@ +--- +slug: /use-cases/observability/clickstack/session-replay +title: 'セッションリプレイ' +sidebar_label: 'セッションリプレイ' +sidebar_position: 5 +pagination_prev: null +pagination_next: null +description: 'ClickStack でユーザーセッションを取得して再生することで、フロントエンドの問題をデバッグし、ユーザー行動を理解し、ブラウザーのアクティビティをバックエンドのログやトレースと相関付けることができます。' +doc_type: 'guide' +keywords: ['clickstack', 'session replay', 'browser sdk', 'frontend observability', 'user sessions', 'debugging'] +--- + +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; +import trace_to_replay from '@site/static/images/clickstack/session-replay/trace-to-replay.png'; +import clickpy_trace from '@site/static/images/clickstack/session-replay/clickpy-trace.gif'; + +ClickStack のセッションリプレイは、Web アプリケーション内でのユーザー操作をキャプチャして再構成し、セッション中にユーザーが見て、行ったことをそのまま視覚的に再生できるようにします。ビデオ録画ではなく、SDK が DOM の変更、マウスの動き、クリック、スクロール、キーボード入力、コンソールログ、ネットワークリクエスト(XHR、Fetch、WebSocket)、および JavaScript 例外を記録し、その情報からブラウザ内で体験を再構成します。 + +セッションリプレイは、ログ、トレース、メトリクスと並んで ClickHouse に保存されるため、ユーザー体験の再生から、それを支えているバックエンドのトレースやデータベースクエリの調査までを、数回のクリックで行うことができます。これにより、セッションリプレイは本番環境の問題のデバッグ、ユーザー行動の理解、UX の摩擦ポイントの特定、サポートに報告された問題の視覚的な確認に有用です。 + + +## アプリケーションのインスツルメンテーション \{#instrumentation\} + +ClickStack は OpenTelemetry と完全に互換性があるため、標準的な OpenTelemetry JavaScript SDK または任意の [ClickStack 言語別 SDK](/use-cases/observability/clickstack/sdks) を使用してブラウザー テレメトリ(トレースや例外)を送信できます。ただし、**セッションリプレイには ClickStack Browser SDK**(`@hyperdx/browser`)が必要です。これは OpenTelemetry SDK を拡張し、セッション録画、コンソールキャプチャ、ネットワークリクエストキャプチャを提供します。セッションリプレイが不要でトレースのみが必要な場合は、任意の OTel 互換ブラウザー SDK を ClickStack と併用できます。 + +以下の例では ClickStack Browser SDK を使用します。アプリケーションにセッションリプレイを追加するには、パッケージのインストール、SDK の初期化、その後のユーザー操作の自動キャプチャという 3 つの手順だけです。追加のコード変更は不要です。 + +:::tip +SDK はアプリの起動時に必ず読み込まれる場所で初期化してください。たとえば Next.js アプリケーションでは、ルートの `layout.js` などが該当します。これによりセッション録画が即時に開始され、ユーザー体験全体を捕捉できます。 +::: + + + + +```shell +npm install @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // Managed ClickStack の場合は省略 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +```shell +yarn add @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // Managed ClickStack の場合は省略 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +バンドラーを使用しないアプリケーションでは、script タグ経由で直接 SDK を読み込みます。これにより `HyperDX` グローバル変数が公開され、NPM パッケージと同様の方法で使用できます。 + +```html + + +``` + + + + +:::note +`tracePropagationTargets` オプションは、セッションリプレイとバックエンドトレースを接続するうえで重要です。フロントエンドからバックエンドまでのエンドツーエンドな分散トレースを有効にするために、自分の API ドメインを設定してください。プライバシー制御、カスタムアクション、React エラーバウンダリ、ソースマップなどを含む SDK オプションの完全な一覧については、[Browser SDK リファレンス](/use-cases/observability/clickstack/sdks/browser) を参照してください。 +::: + +Browser SDK は、プライバシーに敏感なアプリケーション向けの [入力やテキストのマスキング](/use-cases/observability/clickstack/sdks/browser#options) や、ClickStack UI でユーザー単位にセッションを検索・フィルタリングできるようにするための [ユーザー情報の付与](/use-cases/observability/clickstack/sdks/browser#attach-user-information-or-metadata) にも対応しています。 + +## セッションリプレイの閲覧 \{#viewing-replays\} + +ClickStack UI(HyperDX)の左サイドバーから **Client Sessions** に移動します。このビューには、キャプチャされたすべてのブラウザーセッションが、その継続時間とイベント数とともに一覧表示されます。 + +セッションリプレイの検索ビュー + +任意のセッションの再生ボタンをクリックすると、そのセッションのリプレイが開始されます。リプレイビューでは、右側に再構成されたユーザーエクスペリエンスが表示され、左側にはブラウザーイベント(ネットワークリクエスト、コンソールログ、エラー)のタイムラインが表示されます。 + +セッションリプレイの再生 + +**Highlighted** モードと **All Events** モードを切り替えて、タイムラインに表示する詳細レベルを調整します。エラーは赤でマークされ、任意のイベントをクリックすると、リプレイの再生位置がそのセッション内の該当箇所に移動します。 + +### セッションからトレースへ \{#session-to-trace\} + +セッションタイムライン上でネットワークリクエストまたはエラーを選択すると、**Trace** タブに遷移して、そのリクエストがバックエンドサービス間でどのように処理されるかを追跡できます。これにより、そのユーザー操作によってトリガーされた関連するログ、span、データベースクエリを確認できます。 + +これは、`tracePropagationTargets` 設定が `traceparent` ヘッダーを介してブラウザ側の span とサーバー側の span を結び付けることで機能します。その結果、ユーザーのクリックからデータベースまでを結ぶ、ひと続きの分散トレースが生成されます。フロントエンドとバックエンドの両方の計装を含む、これが実際にどのように動作するかの詳細な手順については、[OpenTelemetry と ClickStack を用いた NextJS アプリケーションの計装](https://clickhouse.com/blog/instrumenting-nextjs-opentelemetry-clickstack) を参照してください。 + +ClickStack でセッションリプレイからバックエンドトレースへドリルダウンする例 + +### トレースからセッションへ \{#trace-to-session\} + +相関付けは逆方向にも行えます。**Search** ビューでトレースを表示しているときに、そのトレースをクリックしてトレース詳細を開き、**Session Replay** タブを選択すると、そのトレースが記録された時点でユーザーが実際にどのような体験をしていたかを正確に確認できます。これは、エラーや遅いリクエストを調査する際に特に有用で、バックエンド側の問題から調査を開始し、その場ですぐにユーザー視点を確認できます。 + +セッションリプレイのトレースビュー + +## セッションデータの保存方法 \{#data-storage\} + +セッションリプレイデータは、ログやトレースとは分離された、ClickHouse 内の専用テーブル [`hyperdx_sessions`](/use-cases/observability/clickstack/ingesting-data/schemas#sessions) に保存されます。各セッションイベントは 1 行として保存され、イベントのペイロードを含む `Body` フィールドと、イベントメタデータを保持する `LogAttributes` マップを持ちます。`Body` カラムと `LogAttributes` カラムを合わせて、リプレイの再構築に使用される実際のセッションイベントの詳細が格納されます。 + +テーブルスキーマの詳細については、[ClickStack で使用されるテーブルとスキーマ](/use-cases/observability/clickstack/ingesting-data/schemas) を参照してください。 + +## 試してみる \{#try-it-out\} + +セッションリプレイを実際に確認する方法は 2 つあります。 + +- **ライブデモ** — [clickpy.clickhouse.com](https://clickpy.clickhouse.com) にアクセスしてアプリを操作し、その後 [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com) の **ClickPy Sessions** ソースから自分のセッションリプレイを確認します。ClickPy がどのようにインストルメントされているかの詳細については、ブログ記事 [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-your-app-with-otel-clickstack) を参照してください。 +- **ローカルデモ** — [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) では、デモアプリケーションに対するインストルメンテーション手順をステップバイステップで解説しており、ローカル環境での ClickStack の実行と、リプレイの確認方法も含まれています。 + +## 詳細情報 \{#learn-more\} + +- [Session Replay デモ](/use-cases/observability/clickstack/example-datasets/session-replay-demo) — 手順付きのインタラクティブなローカルデモアプリケーション +- [Browser SDK リファレンス](/use-cases/observability/clickstack/sdks/browser) — すべての SDK オプション、ソースマップ、カスタムアクション、および高度な設定方法 +- [Search](/use-cases/observability/clickstack/search) — セッションやイベントをフィルタリングするための検索構文 +- [Dashboards](/use-cases/observability/clickstack/dashboards) — セッションおよびトレースデータから可視化やダッシュボードを構築する方法 +- [Alerts](/use-cases/observability/clickstack/alerts) — エラー、レイテンシー、その他のシグナルに対するアラートを設定する方法 +- [ClickStack のアーキテクチャ](/use-cases/observability/clickstack/architecture) — ClickHouse、HyperDX、OTel collector がどのように連携するか \ No newline at end of file diff --git a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/roadmap.md b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/roadmap.md index cc7fb3e00e9..53c1f9718eb 100644 --- a/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/roadmap.md +++ b/i18n/jp/docusaurus-plugin-content-docs/current/whats-new/roadmap.md @@ -7,22 +7,19 @@ doc_type: 'landing-page' keywords: ['ロードマップ', '今後の機能', '開発計画', '今後のリリース予定', '製品の方向性'] --- - - ## 現在のロードマップ \{#current-roadmap\} 現在のロードマップは、オープンな議論のために公開されています。 -- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - - +- [2026](https://github.com/ClickHouse/ClickHouse/issues/93288) ## これまでのロードマップ \{#previous-roadmaps\} +- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - [2024](https://github.com/ClickHouse/ClickHouse/issues/58392) - [2023](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2022](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2021](https://github.com/ClickHouse/ClickHouse/issues/17623) - [2020](https://github.com/ClickHouse/ClickHouse/blob/be29057de1835f6f4a17e03a422b45b81efe6833/docs/ru/whats-new/extended-roadmap.md) - [2019](https://github.com/ClickHouse/ClickHouse/issues/4785) -- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) +- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/ko/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index a24bdb37b83..b99aaa8d881 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -68,7 +68,6 @@ ClickHouse는 오픈 소스 프로젝트이므로 ClickHouse 직원뿐만 아니 | [allow_statistics_optimize](/operations/settings/settings#allow_statistics_optimize) | `1` | | [use_statistics](/operations/settings/settings#use_statistics) | `1` | | [use_statistics_cache](/operations/settings/settings#use_statistics_cache) | `1` | -| [enable_full_text_index](/operations/settings/settings#enable_full_text_index) | `1` | | [allow_experimental_delta_kernel_rs](/operations/settings/settings#allow_experimental_delta_kernel_rs) | `1` | | [allow_insert_into_iceberg](/operations/settings/settings#allow_insert_into_iceberg) | `0` | | [enable_join_runtime_filters](/operations/settings/settings#enable_join_runtime_filters) | `1` | @@ -94,6 +93,9 @@ ClickHouse는 오픈 소스 프로젝트이므로 ClickHouse 직원뿐만 아니 | [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | | [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | | [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [ast_fuzzer_runs](/operations/settings/settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/operations/settings/settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/operations/settings/settings#allow_fuzz_query_functions) | `0` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md index 8df979d7813..15be4ad806f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md @@ -27,7 +27,7 @@ BYOC는 대규모 배포를 위해 특별히 설계되었으며, 고객은 약 * AWS (GA) * GCP (Private Preview). 관심이 있다면 [여기](https://clickhouse.com/cloud/bring-your-own-cloud)에서 대기자 명단에 등록하십시오. -* Azure (Roadmap). 관심이 있다면 [여기](https://clickhouse.com/cloud/bring-your-own-cloud)에서 대기자 명단에 등록하십시오. +* Azure (Private Preview). 관심이 있다면 [여기](https://clickhouse.com/cloud/bring-your-own-cloud)에서 대기자 명단에 등록하십시오. **지원되는 클라우드 리전:** [지원 리전](https://clickhouse.com/docs/cloud/reference/supported-regions) 문서에 나열된 모든 **퍼블릭 리전**은 BYOC 배포에 사용할 수 있습니다. 프라이빗 리전은 현재 지원되지 않습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md index c74d86681c8..0d87187cafc 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md @@ -85,7 +85,7 @@ Mac에서 `clickhouse-local`을 실행하려면 `./clickhouse local`을 사용 -## Example 1: Migrating from MySQL to ClickHouse Cloud with an Integration engine \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} +## Example: Migrating from MySQL to ClickHouse Cloud with an Integration engine \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} 소스 MySQL 데이터베이스에서 데이터를 읽기 위해 [integration table engine](/engines/table-engines/integrations/mysql/)을(를) 사용합니다. 이 엔진은 [mysql table function](/sql-reference/table-functions/mysql/)에 의해 필요할 때마다 즉석에서 생성됩니다. 그리고 ClickHouse Cloud 서비스의 대상 테이블에 데이터를 쓰기 위해 [remoteSecure table function](/sql-reference/table-functions/remote/)을(를) 사용합니다. @@ -126,18 +126,3 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');" 데이터는 `clickhouse-local` 호스트 머신에 로컬로 저장되지 않습니다. 대신 데이터는 소스 MySQL 테이블에서 읽어 온 다음 바로 ClickHouse Cloud 서비스의 대상 테이블로 기록됩니다. ::: - - -## 예제 2: JDBC bridge를 사용하여 MySQL에서 ClickHouse Cloud로 마이그레이션 \{#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge\} - -[JDBC integration table engine](/engines/table-engines/integrations/jdbc.md)([jdbc table function](/sql-reference/table-functions/jdbc.md)에 의해 동적으로 생성됨)과 [ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge), MySQL JDBC 드라이버를 함께 사용하여 원본 MySQL 데이터베이스에서 데이터를 읽고, [remoteSecure table function](/sql-reference/table-functions/remote.md)을 사용하여 대상 ClickHouse Cloud 서비스의 테이블에 데이터를 씁니다. - -자가 관리형 ClickHouse 마이그레이션 - -### 대상 ClickHouse Cloud 서비스에서의 작업: \{#on-the-destination-clickhouse-cloud-service-1\} - -#### 대상 데이터베이스를 생성합니다: \{#create-the-destination-database-1\} - -```sql - CREATE DATABASE db -``` diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md index 4d4b9687e73..0fb47b36a18 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md @@ -43,6 +43,10 @@ import crash_reports_collection from '@site/static/images/cloud/reference/crash- ::: +## 2026년 2월 20일 \{#february-20-2026\} + +- **ClickPipes:** 비활성 상태인 Reverse private endpoint는 설정된 유예 기간이 지나면 이제 자동으로 제거됩니다. 이를 통해 사용되지 않거나 잘못 구성된 엔드포인트가 백엔드에 무기한 남지 않도록 합니다. 자세한 내용은 자동 정리 [문서](/integrations/clickpipes/aws-privatelink#automatic-cleanup)를 참조하십시오. + ## 2026년 2월 13일 \{#february-13-2026\} - [BigQuery Connector](/integrations/clickpipes/bigquery/overview)가 이제 Private Preview 단계입니다. 자세한 내용은 이 [블로그 글](https://clickhouse.com/blog/bigquery-clickpipe-private-preview)에서 확인하고, 액세스 권한을 받기 위해 [대기자 명단](https://clickhouse.com/cloud/clickpipes/bigquery-connector)에 등록하십시오. @@ -1604,7 +1608,7 @@ ClickHouse Cloud는 이제 프로덕션 환경에서 사용할 수 있도록 준 ### 일반 변경 사항 \{#general-changes-5\} -- 로컬 ClickHouse 테이블 및 HTTP 소스를 사용하는 [dictionaries](/sql-reference/dictionaries/index.md)에 대한 지원이 추가되었습니다 +- 로컬 ClickHouse 테이블 및 HTTP 소스를 사용하는 [dictionaries](/sql-reference/statements/create/dictionary)에 대한 지원이 추가되었습니다 - 뭄바이 [리전](/cloud/reference/supported-regions)에 대한 지원이 추가되었습니다 ### Console 변경 사항 \{#console-changes-30\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/dictionary/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/dictionary/index.md index 073996cbb4c..4d98815e946 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/dictionary/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/dictionary/index.md @@ -3,7 +3,7 @@ slug: /dictionary title: '딕셔너리' keywords: ['dictionary', 'dictionaries'] description: '딕셔너리는 빠른 조회를 위해 데이터를 키-값 형태로 제공합니다.' -doc_type: 'reference' +doc_type: 'guide' --- import dictionaryUseCases from '@site/static/images/dictionary/dictionary-use-cases.png'; @@ -13,7 +13,7 @@ import Image from '@theme/IdealImage'; # 딕셔너리 \{#dictionary\} -ClickHouse의 딕셔너리는 다양한 [내부 및 외부 소스](/sql-reference/dictionaries#dictionary-sources)의 데이터를 메모리 내 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 형태로 표현하여, 초저지연 조회 쿼리에 최적화합니다. +ClickHouse의 딕셔너리는 다양한 [내부 및 외부 소스](/sql-reference/statements/create/dictionary/sources#dictionary-sources)의 데이터를 메모리 내 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 형태로 표현하여, 초저지연 조회 쿼리에 최적화합니다. 딕셔너리는 다음과 같은 용도로 유용합니다: @@ -89,7 +89,7 @@ Peak memory usage: 3.18 GiB. #### 딕셔너리 적용하기 \{#applying-a-dictionary\} -이 개념들을 보여 주기 위해 투표 데이터에 딕셔너리를 사용합니다. 딕셔너리는 일반적으로 메모리에 상주하므로([ssd_cache](/sql-reference/dictionaries#ssd_cache)는 예외), 데이터 크기에 유의해야 합니다. 먼저 `votes` 테이블의 크기를 확인합니다: +이 개념들을 보여 주기 위해 투표 데이터에 딕셔너리를 사용합니다. 딕셔너리는 일반적으로 메모리에 상주하므로([ssd_cache](/sql-reference/statements/create/dictionary/layouts/ssd-cache)는 예외), 데이터 크기에 유의해야 합니다. 먼저 `votes` 테이블의 크기를 확인합니다: ```sql SELECT table, @@ -107,7 +107,7 @@ GROUP BY table 데이터는 딕셔너리에 압축되지 않은 상태로 저장되므로, 모든 컬럼을 (실제로는 그렇게 하지 않지만) 딕셔너리에 저장한다고 가정하면 최소 4GB의 메모리가 필요합니다. 딕셔너리는 클러스터 전체에 걸쳐 복제되므로, 이 메모리는 *노드별로* 예약되어야 합니다. -> 아래 예제에서는 딕셔너리 데이터가 ClickHouse 테이블에서 생성됩니다. 이는 딕셔너리의 가장 흔한 소스이지만, 파일, http, 그리고 [Postgres](/sql-reference/dictionaries#postgresql)를 포함한 데이터베이스 등 [여러 가지 소스](/sql-reference/dictionaries#dictionary-sources)를 지원합니다. 아래에서 설명하듯이, 딕셔너리는 자동으로 갱신될 수 있어, 자주 변경되는 소규모 데이터셋을 직접 조인에 사용할 수 있도록 보장하는 데 이상적인 방법을 제공합니다. +> 아래 예제에서는 딕셔너리 데이터가 ClickHouse 테이블에서 생성됩니다. 이는 딕셔너리의 가장 흔한 소스이지만, 파일, http, 그리고 [Postgres](/sql-reference/statements/create/dictionary/sources/postgresql)를 포함한 데이터베이스 등 [여러 가지 소스](/sql-reference/statements/create/dictionary/sources#dictionary-sources)를 지원합니다. 아래에서 설명하듯이, 딕셔너리는 자동으로 갱신될 수 있어, 자주 변경되는 소규모 데이터셋을 직접 조인에 사용할 수 있도록 보장하는 데 이상적인 방법을 제공합니다. 딕셔너리에는 조회가 수행될 기본 키(primary key)가 필요합니다. 이는 개념적으로 트랜잭션 데이터베이스의 기본 키와 동일하며 고유해야 합니다. 위의 쿼리에서는 조인 키 `PostId`에 대한 조회가 필요합니다. 딕셔너리는 `votes` 테이블에서 `PostId`별로 찬성 및 반대 투표 수를 합산한 값으로 채워져야 합니다. 이 딕셔너리 데이터를 얻기 위한 쿼리는 다음과 같습니다: @@ -119,7 +119,7 @@ FROM votes GROUP BY PostId ``` -딕셔너리를 생성하려면 다음과 같은 DDL이 필요합니다. 위에서 작성한 쿼리의 사용 방식에 주의하십시오. +딕셔너리를 생성하려면 다음과 같은 DDL을 사용합니다. 위에서 작성한 쿼리가 어떻게 사용되는지에 유의하십시오. ```sql CREATE DICTIONARY votes_dict @@ -323,20 +323,20 @@ Peak memory usage: 666.82 MiB. ### 딕셔리 `LAYOUT` 선택 \{#choosing-the-dictionary-layout\} -`LAYOUT` 절은 딕셔리의 내부 데이터 구조를 제어합니다. 여러 가지 옵션이 있으며 [여기](/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory)에 정리되어 있습니다. 적절한 레이아웃을 선택하는 데 도움이 되는 몇 가지 팁은 [여기](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)에서 확인할 수 있습니다. +`LAYOUT` 절은 딕셔리의 내부 데이터 구조를 제어합니다. 여러 가지 옵션이 있으며 [여기](/sql-reference/statements/create/dictionary/layouts#ways-to-store-dictionaries-in-memory)에 정리되어 있습니다. 적절한 레이아웃을 선택하는 데 도움이 되는 몇 가지 팁은 [여기](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)에서 확인할 수 있습니다. ### 딕셔너리 갱신 \{#refreshing-dictionaries\} 딕셔너리에 `MIN 600 MAX 900`의 `LIFETIME`을 지정했습니다. LIFETIME은 딕셔너리의 업데이트 주기이며, 여기서 지정한 값에 따라 600초에서 900초 사이의 임의의 간격으로 주기적으로 다시 로드됩니다. 이러한 임의의 간격은 많은 수의 서버에서 업데이트를 수행할 때 딕셔너리 소스에 가해지는 부하를 분산하기 위해 필요합니다. 업데이트 중에도 기존 버전의 딕셔너리는 계속 쿼리할 수 있으며, 최초 로드 시에만 쿼리가 차단됩니다. `(LIFETIME(0))`으로 설정하면 딕셔너리가 업데이트되지 않음을 유의하십시오. `SYSTEM RELOAD DICTIONARY` 명령을 사용하여 딕셔너리를 강제로 다시 로드할 수 있습니다. -ClickHouse와 Postgres 같은 데이터베이스 소스의 경우, 주기적인 간격이 아니라 실제로 변경되었을 때만 딕셔너리를 업데이트하도록 쿼리를 설정할 수 있습니다(해당 쿼리의 응답이 이를 결정합니다). 자세한 내용은 [여기](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)를 참조하십시오. +ClickHouse와 Postgres 같은 데이터베이스 소스의 경우, 주기적인 간격이 아니라 실제로 변경되었을 때만 딕셔너리를 업데이트하도록 쿼리를 설정할 수 있습니다(해당 쿼리의 응답이 이를 결정합니다). 자세한 내용은 [여기](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)를 참조하십시오. ### 기타 딕셔너리 유형 \{#other-dictionary-types\} -ClickHouse는 [계층형(Hierarchical)](/sql-reference/dictionaries#hierarchical-dictionaries), [폴리곤(Polygon)](/sql-reference/dictionaries#polygon-dictionaries), [정규 표현식(Regular Expression)](/sql-reference/dictionaries#regexp-tree-dictionary) 딕셔너리도 지원합니다. +ClickHouse는 [계층형(Hierarchical)](/sql-reference/statements/create/dictionary/layouts/hierarchical), [폴리곤(Polygon)](/sql-reference/statements/create/dictionary/layouts/polygon), [정규 표현식(Regular Expression)](/sql-reference/statements/create/dictionary/layouts/regexp-tree) 딕셔너리도 지원합니다. ### 추가 참고 자료 \{#more-reading\} - [딕셔너리를 사용하여 쿼리 가속화하기](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [딕셔너리를 위한 고급 구성](/sql-reference/dictionaries) \ No newline at end of file +- [딕셔너리를 위한 고급 구성](/sql-reference/statements/create/dictionary) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md index 178c785dc55..c5d5cf08ddf 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md @@ -7,8 +7,6 @@ title: 'Iceberg 테이블 엔진' doc_type: 'reference' --- - - # Iceberg table engine \{#iceberg-table-engine\} :::warning @@ -21,8 +19,6 @@ Iceberg Table Engine도 사용 가능하지만 일부 제약이 있을 수 있 이 엔진은 Amazon S3, Azure, HDFS 및 로컬에 저장된 기존 Apache [Iceberg](https://iceberg.apache.org/) 테이블과의 읽기 전용 통합 기능을 제공합니다. - - ## 테이블 생성 \{#create-table\} Iceberg 테이블은 스토리지에 이미 존재해야 하며, 이 명령에는 새 테이블을 생성하기 위한 DDL 매개변수가 포함되지 않습니다. @@ -55,7 +51,7 @@ CREATE TABLE iceberg_table_local CREATE TABLE iceberg_table ENGINE=IcebergS3('http://test.s3.amazonaws.com/clickhouse-bucket/test_table', 'test', 'test') ``` -이름이 지정된 컬렉션 사용하기: +Named Collections 사용: ```xml @@ -79,8 +75,6 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table 테이블 엔진 `Iceberg`는 이제 `IcebergS3`의 별칭으로 사용됩니다. - - ## 스키마 진화 \{#schema-evolution\} 현재 ClickHouse를 사용하면 시간이 지나면서 스키마가 변경된 Iceberg 테이블을 읽을 수 있습니다. 현재는 컬럼이 추가되거나 제거되고, 순서가 변경된 테이블을 읽는 것을 지원합니다. 또한 NULL을 허용하지 않던 컬럼을 `NULL` 값을 허용하는 컬럼으로 변경할 수도 있습니다. 추가로, 단순 타입에 대한 허용되는 형 변환도 지원합니다. 구체적으로:   * int -> long @@ -91,43 +85,40 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table 동적 스키마 추론(dynamic schema inference)을 사용하여 생성 이후 스키마가 변경된 테이블을 읽으려면, 테이블을 생성할 때 `allow_dynamic_metadata_for_data_lakes = true`로 설정하십시오. - - ## Partition pruning \{#partition-pruning\} ClickHouse는 Iceberg 테이블에 대한 SELECT 쿼리 실행 시 파티션 프루닝(partition pruning)을 지원하여 관련 없는 데이터 파일을 건너뛰어 쿼리 성능을 최적화합니다. 파티션 프루닝을 활성화하려면 `use_iceberg_partition_pruning = 1`로 설정합니다. Iceberg 파티션 프루닝에 대한 자세한 내용은 https://iceberg.apache.org/spec/#partitioning 을(를) 참조하십시오. - - ## 시간 여행 \{#time-travel\} ClickHouse는 Iceberg 테이블에 대해 시간 여행을 지원하여 특정 타임스탬프나 스냅샷 ID를 기준으로 과거 데이터를 쿼리할 수 있습니다. +## 삭제된 행이 포함된 테이블 처리 \{#deleted-rows\} +ClickHouse는 다음 삭제 방법을 사용하는 Iceberg 테이블 읽기를 지원합니다: -## 삭제된 행을 포함하는 테이블 처리 \{#deleted-rows\} - -현재는 [position deletes](https://iceberg.apache.org/spec/#position-delete-files)가 있는 Iceberg 테이블만 지원합니다. +- [Position deletes](https://iceberg.apache.org/spec/#position-delete-files) +- [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files) (버전 25.8+부터 지원) -다음과 같은 삭제 방식은 **지원하지 않습니다**: +다음 삭제 방법은 **지원하지 않습니다**: -* [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files) -* [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors) (v3에서 도입됨) +- [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors) (v3에서 도입됨) ### 기본 사용법 \{#basic-usage\} ```sql -SELECT * FROM example_table ORDER BY 1 -SETTINGS iceberg_timestamp_ms = 1714636800000 + SELECT * FROM example_table ORDER BY 1 + SETTINGS iceberg_timestamp_ms = 1714636800000 ``` ```sql -SELECT * FROM example_table ORDER BY 1 -SETTINGS iceberg_snapshot_id = 3547395809148285433 + SELECT * FROM example_table ORDER BY 1 + SETTINGS iceberg_snapshot_id = 3547395809148285433 ``` 참고: 하나의 쿼리에서 `iceberg_timestamp_ms`와 `iceberg_snapshot_id` 매개변수를 동시에 지정할 수 없습니다. + ### 중요한 고려 사항 \{#important-considerations\} * **스냅샷(snapshot)** 은 일반적으로 다음과 같은 경우에 생성됩니다. @@ -145,39 +136,39 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 다음 연산 순서를 고려하십시오. ```sql --- Create a table with two columns - CREATE TABLE IF NOT EXISTS spark_catalog.db.time_travel_example ( - order_number int, - product_code string - ) - USING iceberg - OPTIONS ('format-version'='2') + -- Create a table with two columns + CREATE TABLE IF NOT EXISTS spark_catalog.db.time_travel_example ( + order_number int, + product_code string + ) + USING iceberg + OPTIONS ('format-version'='2') -- Insert data into the table - INSERT INTO spark_catalog.db.time_travel_example VALUES - (1, 'Mars') + INSERT INTO spark_catalog.db.time_travel_example VALUES + (1, 'Mars') - ts1 = now() // A piece of pseudo code + ts1 = now() // A piece of pseudo code -- Alter table to add a new column - ALTER TABLE spark_catalog.db.time_travel_example ADD COLUMN (price double) - - ts2 = now() + ALTER TABLE spark_catalog.db.time_travel_example ADD COLUMN (price double) + + ts2 = now() -- Insert data into the table - INSERT INTO spark_catalog.db.time_travel_example VALUES (2, 'Venus', 100) + INSERT INTO spark_catalog.db.time_travel_example VALUES (2, 'Venus', 100) - ts3 = now() + ts3 = now() -- Query the table at each timestamp - SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts1; + SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts1; +------------+------------+ |order_number|product_code| +------------+------------+ | 1| Mars| +------------+------------+ - SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts2; + SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts2; +------------+------------+ |order_number|product_code| @@ -185,7 +176,7 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 | 1| Mars| +------------+------------+ - SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts3; + SELECT * FROM spark_catalog.db.time_travel_example TIMESTAMP AS OF ts3; +------------+------------+-----+ |order_number|product_code|price| @@ -200,9 +191,10 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 * ts1 및 ts2 시점에서는 원래의 두 개 컬럼만 표시됩니다. * ts3 시점에서는 세 개 컬럼이 모두 표시되며, 첫 번째 행의 price 값은 NULL입니다. -#### 시나리오 2: 과거 스키마와 현재 스키마 간 차이 \{#scenario-2\} -현재 시점에 타임 트래블 쿼리를 실행하면, 현재 테이블과는 다른 스키마가 표시될 수 있습니다: +#### 시나리오 2: 과거 스키마와 현재 스키마 간의 차이 \{#scenario-2\} + +현재 시점에 대해 타임 트래블 쿼리를 실행하면 현재 테이블과는 다른 스키마가 표시될 수 있습니다: ```sql -- Create a table @@ -240,12 +232,12 @@ SETTINGS iceberg_snapshot_id = 3547395809148285433 +------------+------------+-----+ ``` -이는 `ALTER TABLE`이 새로운 스냅샷을 생성하지 않고, 현재 테이블에 대해서는 Spark가 스냅샷이 아니라 최신 메타데이터 파일에서 `schema_id` 값을 가져오기 때문에 발생합니다. +이는 `ALTER TABLE`이 새로운 스냅샷을 생성하지 않고, 현재 테이블의 경우 Spark가 스냅샷이 아니라 최신 메타데이터 파일에서 `schema_id` 값을 가져오기 때문입니다. #### 시나리오 3: 과거 스키마와 현재 스키마 간 차이 \{#scenario-3\} -두 번째로, time travel을 수행할 때 테이블에 어떤 데이터도 아직 기록되지 않았던 시점의 상태는 조회할 수 없습니다. +두 번째로, time travel을 수행할 때 테이블에 어떤 데이터도 아직 기록되지 않았던 시점의 상태는 조회할 수 없습니다: ```sql -- Create a table @@ -312,14 +304,10 @@ CREATE TABLE example_table ENGINE = Iceberg( `Iceberg` 테이블 엔진과 테이블 함수는 `S3`, `AzureBlobStorage`, `HDFS` 스토리지와 마찬가지로 데이터 캐시 기능을 지원합니다. 자세한 내용은 [여기](../../../engines/table-engines/integrations/s3.md#data-cache)를 참고하십시오. - - ## 메타데이터 캐시 \{#metadata-cache\} `Iceberg` 테이블 엔진과 테이블 함수는 매니페스트 파일, 매니페스트 목록 및 메타데이터 JSON 정보를 저장하는 메타데이터 캐시를 지원합니다. 캐시는 메모리에 저장됩니다. 이 기능은 `use_iceberg_metadata_files_cache` 설정으로 제어되며, 기본적으로 활성화되어 있습니다. - - ## 같이 보기 \{#see-also\} -- [iceberg 테이블 함수](/sql-reference/table-functions/iceberg.md) +- [iceberg 테이블 함수](/sql-reference/table-functions/iceberg.md) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md index 749cda02af5..1bb11ac33ef 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md @@ -7,14 +7,10 @@ title: 'MySQL 테이블 엔진' doc_type: 'reference' --- - - # MySQL 테이블 엔진 \{#mysql-table-engine\} MySQL 엔진을 사용하면 원격 MySQL 서버에 저장된 데이터에 대해 `SELECT` 및 `INSERT` 쿼리를 실행할 수 있습니다. - - ## 테이블 생성 \{#creating-a-table\} ```sql @@ -92,7 +88,7 @@ mysql> select * from test; 1 row in set (0,00 sec) ``` -일반 매개변수를 사용해 ClickHouse에서 테이블을 생성합니다: +인수를 직접 지정하여 ClickHouse에서 테이블을 생성합니다: ```sql CREATE TABLE mysql_table @@ -199,9 +195,7 @@ SELECT * FROM mysql_table 기본값: `300`. - - ## 함께 보기 \{#see-also\} - [MySQL 테이블 함수](../../../sql-reference/table-functions/mysql.md) -- [MySQL을 딕셔너리 소스로 사용하기](/sql-reference/dictionaries#mysql) +- [MySQL을 딕셔너리 소스로 사용하기](/sql-reference/statements/create/dictionary/sources#mysql) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md index fc4751a8afc..918aa98d0dc 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md @@ -141,5 +141,5 @@ SELECT * FROM odbc_t ## 함께 보기 \{#see-also\} -- [ODBC 사전](/sql-reference/dictionaries#mysql) +- [ODBC 사전](/sql-reference/statements/create/dictionary/sources#mysql) - [ODBC 테이블 함수](../../../sql-reference/table-functions/odbc.md) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md index b42420a3584..f5ec6ab3191 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md @@ -229,7 +229,7 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) **함께 보기** * [`postgresql` 테이블 함수](../../../sql-reference/table-functions/postgresql.md) -* [PostgreSQL을 딕셔너리 소스로 사용하기](/sql-reference/dictionaries#mysql) +* [PostgreSQL을 딕셔너리 소스로 사용하기](/sql-reference/statements/create/dictionary/sources#mysql) ## 관련 콘텐츠 \{#related-content\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index c0dad35a628..15bfd41c90c 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -288,6 +288,56 @@ ClickHouse가 쿼리를 실행할 때 인덱스를 사용할 수 있는지 확 월 단위 파티션 키는 해당 범위에 속하는 날짜를 포함하는 데이터 블록만 읽을 수 있게 합니다. 이 경우 하나의 데이터 블록에는 여러 날짜(최대 한 달 전체)에 대한 데이터가 포함될 수 있습니다. 블록 내부에서는 데이터가 기본 키(primary key)로 정렬되어 있으며, 기본 키의 첫 번째 컬럼에 날짜가 포함되지 않을 수 있습니다. 이러한 이유로, 기본 키 접두어를 지정하지 않고 날짜 조건만 사용하는 쿼리를 실행하면 단일 날짜에 대해 필요한 것보다 더 많은 데이터를 읽게 됩니다. +### 기본 키에서 결정적 표현식을 사용하는 인덱스 활용 \{#use-of-index-for-deterministic-expressions-in-primary-keys\} + +기본 키에는 컬럼 이름뿐만 아니라 표현식도 포함할 수 있습니다. 이러한 표현식은 단순한 함수 체인으로만 제한되지 않고, 결정적이기만 하면 (예: 중첩된 함수나 복합 표현식 등) 임의의 표현식 트리일 수 있습니다. + +표현식은 동일한 입력 값에 대해 항상 동일한 결과를 반환하면 **결정적**입니다(예: `length()`, `toDate()`, `lower()`, `left()`, `cityHash64()`, `toUUID()` 등은 결정적이지만 `now()`나 `rand()`는 그렇지 않습니다). 기본 키에 결정적 표현식이 포함되어 있으면 ClickHouse는 쿼리의 상수 값에 해당 표현식을 적용하고, 그 결과를 사용하여 기본 키 인덱스에 대한 조건을 구성할 수 있습니다. 이를 통해 `=`, `IN`, `has()`와 같은 조건에서 데이터 스키핑이 가능해집니다. + +일반적인 사용 사례로는 기본 키를 더 compact하게 유지(예: 긴 `String` 대신 해시를 저장)하면서도, 원래 컬럼에 대한 조건이 여전히 인덱스를 사용할 수 있도록 하는 것입니다. + +결정적이지만 단사(injective)가 아닌 기본 키의 예시: + +```sql +ENGINE = MergeTree() +ORDER BY length(user_id) +``` + +인덱스를 사용할 수 있는 조건식의 예: + +```sql +SELECT * FROM table WHERE user_id = 'alice'; +SELECT * FROM table WHERE user_id IN ('alice', 'bob'); +SELECT * FROM table WHERE has(['alice', 'bob'], user_id); +``` + +이러한 경우 ClickHouse는 `length('alice')`(및 다른 상수들)을 한 번만 계산하고, 해당 길이 값을 사용하여 기본 키 인덱스에서 범위를 좁힙니다. 문자열의 길이는 **단사 함수가 아니기 때문에** 서로 다른 `user_id` 문자열이 동일한 길이를 가질 수 있고, 이로 인해 인덱스가 추가로 그래뉼(거짓 양성)을 더 읽을 수 있습니다. 원래의 조건식(`user_id = ...`, `IN` 등)이 데이터를 읽은 이후에도 그대로 적용되므로 결과는 여전히 올바르게 유지됩니다. + +결정적 표현식이 동시에 **단사 함수**(사용된 인자 타입에 대해 서로 다른 입력이 동일한 출력을 만들 수 없음)이기도 한 경우, ClickHouse는 부정 형태인 `!=`, `NOT IN`, `NOT has(...)`에 대해서도 인덱스를 효과적으로 사용할 수 있습니다. 예를 들어 `reverse(p)`와 `hex(p)`는 `String`에 대해 단사 함수입니다. + +단사인 기본 키의 예: + +```sql +ENGINE = MergeTree() +ORDER BY hex(p) +``` + +보다 복잡한 단사(injective) 함수 표현식도 지원합니다. 예를 들면 다음과 같습니다. + +```sql +ENGINE = MergeTree() +ORDER BY reverse(tuple(reverse(p), hex(p))) +``` + +인덱스를 사용할 수 있는 예시 조건은 다음과 같습니다: + +```sql +SELECT * FROM table WHERE p != 'abc'; +SELECT * FROM table WHERE p NOT IN ('abc', '12345'); +SELECT * FROM table WHERE NOT has(['abc', '12345'], p); +``` + + ### 부분 단조 primary key에서 인덱스 사용 \{#use-of-index-for-partially-monotonic-primary-keys\} 예를 들어, 한 달의 날짜를 생각해 보겠습니다. 한 달 내에서는 [단조 수열](https://en.wikipedia.org/wiki/Monotonic_function)을 이루지만, 더 긴 기간 전체로 보면 단조 수열이 아닙니다. 이는 부분 단조 수열입니다. 사용자가 부분 단조인 primary key로 테이블을 생성하면 ClickHouse는 일반적인 방식으로 희소 인덱스를 생성합니다. 사용자가 이러한 유형의 테이블에서 데이터를 조회하면 ClickHouse는 쿼리 조건을 분석합니다. 사용자가 인덱스의 두 마크 사이 구간의 데이터를 가져오려 하고 이 두 마크가 모두 한 달 안에 속하는 경우, ClickHouse는 쿼리 파라미터와 인덱스 마크 간의 거리를 계산할 수 있으므로 이러한 특정 상황에서는 인덱스를 사용할 수 있습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index ec6f6299973..cd69001bd77 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -7,13 +7,8 @@ title: '텍스트 인덱스를 활용한 전문 검색' doc_type: 'reference' --- -import BetaBadge from '@theme/badges/BetaBadge'; - - # 텍스트 인덱스를 사용한 전체 텍스트 검색 \{#full-text-search-with-text-indexes\} - - 텍스트 인덱스(또는 [inverted index](https://en.wikipedia.org/wiki/Inverted_index))는 텍스트 데이터에 대해 빠른 전체 텍스트 검색을 가능하게 합니다. 텍스트 인덱스는 토큰에서 각 토큰을 포함하는 행 번호로의 매핑을 저장합니다. 토큰은 토큰화(tokenization)라고 불리는 과정에 의해 생성됩니다. @@ -35,7 +30,7 @@ import BetaBadge from '@theme/badges/BetaBadge'; 3: I, have, two, dogs, and, a, cat ``` -일반적으로 검색 시 대소문자를 구분하지 않으므로 토큰을 소문자로 변환합니다: +일반적으로는 대소문자를 구분하지 않고 검색하므로 토큰을 모두 소문자로 변환합니다: ```result 1: the, cat, likes, mice @@ -43,7 +38,7 @@ import BetaBadge from '@theme/badges/BetaBadge'; 3: i, have, two, dogs, and, a, cat ``` -또한 거의 모든 행에 나타나는 "I", "the", "and"와 같은 불용어도 제거합니다. +또한 거의 모든 행에서 등장하므로 "I", "the", "and"와 같은 불용어도 제거합니다. ```result 1: cat, likes, mice @@ -81,13 +76,7 @@ If query SELECT value FROM system.settings WHERE name = 'compatibility'; ``` -반환합니다 - -```text -25.4 -``` - -또는 26.2보다 작은 값을 사용하는 경우 텍스트 인덱스를 사용하려면 추가로 세 가지 설정을 지정해야 합니다: +`26.2`보다 작은 값(예: `25.4`)을 반환하면 텍스트 인덱스를 사용하려면 추가로 세 가지 설정을 지정해야 합니다: ```sql SET enable_full_text_index = true; @@ -98,7 +87,7 @@ SET use_skip_indexes_on_data_read = true; 또는 [compatibility](../../../operations/settings/settings#compatibility) 설정을 `26.2` 이상으로 올릴 수 있지만, 이 경우 많은 설정에 영향을 주므로 일반적으로 사전 테스트가 필요합니다. ::: -텍스트 인덱스는 다음 구문을 사용하여 [String](/sql-reference/data-types/string.md), [FixedString](/sql-reference/data-types/fixedstring.md), [Array(String)](/sql-reference/data-types/array.md), [Array(FixedString)](/sql-reference/data-types/array.md), 그리고 [Map](/sql-reference/data-types/map.md) 컬럼( [mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) 및 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) 맵 함수 사용)을 대상으로 정의할 수 있습니다: +텍스트 인덱스는 [String](/sql-reference/data-types/string.md), [FixedString](/sql-reference/data-types/fixedstring.md), [Array(String)](/sql-reference/data-types/array.md), [Array(FixedString)](/sql-reference/data-types/array.md), 그리고 [Map](/sql-reference/data-types/map.md) 컬럼([mapKeys](/sql-reference/functions/tuple-map-functions.md/#mapKeys) 및 [mapValues](/sql-reference/functions/tuple-map-functions.md/#mapValues) 맵 함수 사용)에 대해 다음 구문을 사용하여 정의할 수 있습니다: ```sql CREATE TABLE table @@ -147,13 +136,13 @@ ALTER TABLE table ``` -이미 존재하는 테이블에 인덱스를 추가하는 경우, 기존 테이블 파트에 대해 인덱스를 구체화(materialize)하는 것이 좋습니다. 그렇지 않으면 인덱스가 없는 파트에 대한 검색은 대신 느린 전수 검색(brute-force scan)으로 처리됩니다. +이미 존재하는 테이블에 인덱스를 추가했다면, 기존 테이블 파트에 대해 해당 인덱스를 구체화(materialize)하는 것이 좋습니다. 그렇지 않으면 인덱스가 없는 파트에 대한 검색은 느린 전수 검색(brute-force scan)으로 수행됩니다. ```sql ALTER TABLE table MATERIALIZE INDEX text_idx SETTINGS mutations_sync = 2; ``` -텍스트 인덱스를 제거하려면 다음 명령을 실행하십시오 +텍스트 인덱스를 제거하려면 다음 명령을 실행하십시오. ```sql ALTER TABLE table DROP INDEX text_idx; diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md index 745197555a7..c2a726386bf 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # 딕셔너리 테이블 엔진 \{#dictionary-table-engine\} -`Dictionary` 엔진은 [딕셔너리](../../../sql-reference/dictionaries/index.md) 데이터를 ClickHouse 테이블 형태로 보여줍니다. +`Dictionary` 엔진은 [딕셔너리](../../../sql-reference/statements/create/dictionary/index.md) 데이터를 ClickHouse 테이블 형태로 보여줍니다. ## 예시 \{#example\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md b/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md index c08cd455265..88a4a62b1ca 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md @@ -170,7 +170,7 @@ SELECT mcc, count() FROM cell_towers GROUP BY mcc ORDER BY count() DESC LIMIT 10 위의 쿼리와 [MCC 목록](https://en.wikipedia.org/wiki/Mobile_country_code)을 기반으로 할 때, 기지국이 가장 많은 나라는 미국, 독일, 러시아입니다. -이 값들을 해석하기 위해 ClickHouse에서 [딕셔너리](../../sql-reference/dictionaries/index.md)를 생성하는 것을 고려할 수 있습니다. +이 값들을 해석하기 위해 ClickHouse에서 [딕셔너리](../../sql-reference/statements/create/dictionary/index.md)를 생성하는 것을 고려할 수 있습니다. ## 사용 사례: 지리 데이터 통합 \{#use-case\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md index 24c6b0b5595..95ed6691a76 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md @@ -30,12 +30,12 @@ dbt는 [ClickHouse에서 지원하는 adapter](https://github.com/ClickHouse/dbt {/*AUTOGENERATED_START*/ } -| 페이지 | 설명 | -| ---------------------------------------------------------------------------- | ------------------------------------------------- | -| [Features and Configurations](/integrations/dbt/features-and-configurations) | 사용 가능한 기능과 전반적인 설정에 대한 설명 | -| [Materializations](/integrations/dbt/materializations) | 사용 가능한 materialization과 해당 설정 | -| [Guides](/integrations/dbt/guides) | ClickHouse와 함께 dbt를 사용하는 방법에 대한 가이드 | -| [Materialized Views](/integrations/dbt/materialization-materialized-view) | materialized_view materialization에 대한 구체적인 문서 | +| 페이지 | 설명 | +| --------------------------------------------------------------------------------------------- | ------------------------------------------------- | +| [Features and Configurations](/integrations/dbt/features-and-configurations) | 사용 가능한 기능과 전반적인 설정에 대한 설명 | +| [Materializations](/integrations/dbt/materializations) | 사용 가능한 materialization과 해당 설정 | +| [Guides](/integrations/dbt/guides) | ClickHouse와 함께 dbt를 사용하는 방법에 대한 가이드 | +| [Materialization: materialized_view](/integrations/dbt/materialization-materialized-view) | materialized_view materialization에 대한 구체적인 문서 | {/*AUTOGENERATED_END*/ } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md index 07399deb889..5614ebf0601 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md @@ -3,8 +3,8 @@ sidebar_label: 'Materialization: materialized_view' slug: /integrations/dbt/materialization-materialized-view sidebar_position: 4 description: 'materialized_view materialization에 대한 상세 문서입니다' -keywords: ['clickhouse', 'dbt', 'materialized view', 'refreshable', 'external target table', 'catchup'] -title: 'Materialized Views' +keywords: ['clickhouse', 'dbt', 'materialized_view', 'refreshable', 'Materialized Views', 'catchup'] +title: 'Materialization: materialized_view' doc_type: 'guide' --- @@ -292,13 +292,62 @@ GROUP BY event_date, event_type 1. `materialization_target_table()` 호출을 수정합니다. 2. `dbt run --full-refresh -s your_mv_model`을 실행합니다. -### 암시적 대상 방식과 명시적 대상 방식의 동작 비교\{#explicit-target-behavior\} +### 자주 발생하는 문제 해결 \{#explicit-target-troubleshooting\} -| Operation | Implicit target | Explicit target | -| --- | --- | --- | -| First dbt run | 모든 리소스가 생성됨 | 모든 리소스가 생성됨 | -| Next dbt run | **개별 리소스를 따로 관리할 수 없으며, 모든 작업이 동시에 수행됩니다:**

    **target table**:
    변경 사항은 `on_schema_change` 설정으로 관리됩니다. 기본적으로 `ignore`로 설정되어 있어 새 컬럼은 처리되지 않습니다.

    **MVs**: `alter table modify query` 작업으로 모두 업데이트됩니다 | **변경 사항을 개별적으로 적용할 수 있습니다:

    target table**:
    dbt에서 정의한 MVs의 target table인지 자동으로 감지합니다. 해당하는 경우 컬럼 변경은 기본적으로 `mv_on_schema_change` 설정의 `fail` 값으로 관리되어, 컬럼이 변경되면 실패합니다. 이 기본값은 보호 장치로 추가되었습니다

    **MVs**: SQL이 `alter table modify query` 작업으로 업데이트됩니다. | -| dbt run --full-refresh | **개별 리소스를 따로 관리할 수 없으며, 모든 작업이 동시에 수행됩니다:

    target table**:
    target table이 비어 있는 상태로 다시 생성됩니다. 모든 MVs의 SQL을 함께 사용하여 백필(backfill)을 구성하기 위한 `catchup`을 사용할 수 있습니다. `catchup`은 기본적으로 `True`입니다

    **MVs**: 모두 다시 생성됩니다. | **변경 사항이 개별적으로 적용됩니다:

    target table:** 기존과 동일한 방식으로 다시 생성됩니다.

    **MVs**: drop 후 다시 생성됩니다. 초기 백필(backfill)을 위해 `catchup`을 사용할 수 있습니다. `catchup`은 기본적으로 `True`입니다.

    **참고: 이 과정 동안 target table은 MVs가 다시 생성될 때까지 비어 있거나 일부만 적재된 상태가 됩니다. 이를 방지하려면, 다음 섹션에서 target table을 점진적으로 갱신(iterate)하는 방법을 확인하십시오.**| +#### `run`이 실행되는 동안 또는 실행된 후 대상 테이블이 비어 있음 \{#target-table-empty\} + +다음과 같은 몇 가지 이유로 이런 현상이 발생할 수 있습니다: + +- materialized view가 `catchup=False`로 설정되어 있거나 대상 테이블이 `repopulate_from_mvs_on_full_refresh=False`로 설정되어 있어서, materialized view가 생성되거나 대상 테이블이 재생성될 때 백필(backfill)이 수행되지 않습니다. 이는 의도된 동작이므로, materialized view의 SQL을 사용해 데이터를 다시 삽입하려면 materialized view에서 `catchup=True`(기본값입니다)를 설정하거나 대상 테이블에서 `repopulate_from_mvs_on_full_refresh=True`를 설정해야 합니다. 중복을 방지하기 위해 두 옵션을 동시에 활성화하지 않았는지 확인하십시오. 자세한 내용은 [구성 섹션](#explicit-target-configuration)을 참조하십시오. +- `dbt run --full-refresh`가 실행되는 동안 materialized view가 기본값인 `catchup=True`를 사용하는 경우, 대상 테이블이 다시 생성되고 materialized view가 데이터를 순차적으로 다시 삽입합니다. 이 상황을 피하려면 [명시적 대상과 함께 하는 전체 새로 고침](#explicit-target-full-refresh)을 참조하십시오. + +#### `repopulate_from_mvs_on_full_refresh=True`가 설정된 대상 테이블에서 `dbt run --full-refresh`를 실행하면, 현재 프로젝트에 있는 SQL이 아니라 이전 materialized view 정의의 로직을 사용합니다 \{#full-refresh-with-repopulate-from-mvs-on-full-refresh\} + +`repopulate_from_mvs_on_full_refresh=True`는 ClickHouse에 이미 정의되어 있는 기존 MV SQL을 사용합니다. 새로운 materialized view 정의가 사용되도록 하려면, 대상 테이블에서 `dbt run --full-refresh`를 실행하기 전에 각 materialized view에 대해 `dbt run`을 먼저 실행해야 합니다. + +#### 실행 후 중복 데이터가 발생합니다 \{#duplicate-data\} + +가능한 원인: + +- materialized view(들)에 `catchup=True`가 설정되어 있고 대상 테이블에 `repopulate_from_mvs_on_full_refresh=True`도 설정되어 있는 경우: 수행하려는 작업에 따라 둘 중 하나만 유지하십시오. 자세한 내용은 [구성 섹션](#explicit-target-configuration)을 확인하십시오. +- 대상 테이블이 `WHERE 0`으로 정의되지 않은 경우: 대상 테이블은 비어 있는 상태로 생성되어야 하지만, `WHERE 0`이 포함되지 않으면 내부 쿼리에서 데이터를 삽입할 수 있습니다. 해당 절이 포함되어 있는지 확인하십시오. + +#### `dbt run --full-refresh` 실행 후 활성 수집 중 데이터 손실 발생 \{#data-loss-active-ingestion\} + +`dbt run --full-refresh` 실행 후 소스 테이블의 일부 행이 대상 테이블에서 누락될 수 있습니다. +ClickHouse materialized view는 insert 트리거처럼 동작하며, 해당 materialized view가 존재하는 동안에만 데이터를 캡처합니다. 전체 새로 고침(full refresh) 중에는 MV가 삭제되었다가 다시 생성되는 아주 짧은 구간(「blind window」)이 발생합니다. 이 구간에 소스 테이블에 삽입된 행은 캡처되지 않습니다. 자세한 내용은 [활성 수집 중 동작](#behavior-during-active-ingestion) 섹션을 확인하십시오. + +### 디버깅 방법 \{#debugging-techniques\} + +#### ClickHouse에서 MV의 현재 대상 확인 \{#check-mv-target\} + +materialized view가 어디에 데이터를 기록하는지 확인하려면 `system.tables`를 쿼리합니다: + +```sql +SELECT + name as mv_name, + replaceRegexpOne( + create_table_query, + '.*TO\\s+`?([^`\\s(]+)`?\\.`?([^`\\s(]+)`?.*', + '\\1.\\2' + ) AS target_table +FROM system.tables +WHERE database = 'your_schema' + AND engine = 'MaterializedView' +``` + + +#### dbt가 테이블을 materialized view의 대상으로 인식하는지 확인 \{#check-dbt-recognition\} + +dbt 실행 중 다음 로그 메시지를 확인합니다: + +>Table `` is used as a target by a dbt-managed materialized view. Defaulting mv_on_schema_change to "fail" to prevent data loss. + +이 메시지가 표시되면, 해당 테이블이 하나 이상의 dbt 관리 materialized view의 대상 테이블임을 dbt가 감지했다는 의미입니다. 이 메시지가 표시될 것으로 예상되는데 보이지 않는 경우, 다음을 확인하십시오. + +- materialized view 모델이 `{{ materialization_target_table(ref('your_target')) }}` 를 올바르게 정의하고 있는지 +- materialized view 모델 설정에 `materialized='materialized_view'` 가 포함되어 있는지 +- materialized view와 대상 테이블이 모두 최소 한 번 이상 실행되었는지 ### 암시적 대상에서 명시적 대상으로 마이그레이션 \{#migration-implicit-to-explicit\} @@ -367,23 +416,34 @@ select a, b, c from {{ source('raw', 'table_2') }} **3. 필요에 따라 [명시적 대상](#explicit-target) 섹션의 지침을 따라 반복적으로 수정합니다.** -## 활성 수집 중 동작 \{#behavior-during-active-ingestion\} +## 암시적 대상 방식과 명시적 대상 방식의 동작 비교\{#behavior-comparison\} + +### 일반적인 동작 방식 \{#general-behavior\} + +| Operation | Implicit target | Explicit target | +| --- | --- | --- | +| First dbt run | 모든 리소스가 생성됨 | 모든 리소스가 생성됨 | +| Next dbt run | **개별 리소스를 따로 관리할 수 없으며, 모두 한 번에 처리됩니다:**

    **target table**:
    `on_schema_change` 설정으로 변경 사항을 관리합니다. 기본값은 `ignore`이므로 새로운 컬럼은 반영되지 않습니다.

    **materialized view**: 모두 `alter table modify query` 작업으로 업데이트됩니다 | **변경 사항을 개별적으로 적용할 수 있습니다:

    target table**:
    dbt에서 정의한 materialized view의 target table인지 자동으로 감지합니다. 해당되는 경우 컬럼 변경은 기본적으로 `mv_on_schema_change` 설정의 `fail` 값으로 관리되며, 컬럼이 변경되면 실패합니다. 이 기본값은 보호 장치로 추가되었습니다.

    **materialized view**: 해당 SQL이 `alter table modify query` 작업으로 업데이트됩니다. | +| dbt run --full-refresh | **개별 리소스를 따로 관리할 수 없으며, 모두 한 번에 처리됩니다:

    target table**:
    target table이 비어 있는 상태로 다시 생성됩니다. 모든 materialized view의 SQL을 함께 사용하여 백필(backfill)을 구성하기 위한 `catchup`을 사용할 수 있습니다. `catchup`의 기본값은 `True`입니다.

    **materialized view**: 모두 다시 생성됩니다. | **변경 사항이 개별적으로 적용됩니다:

    target table:** 일반적인 방식으로 다시 생성됩니다.

    **materialized view**: drop 후 다시 생성됩니다. 초기 백필(backfill)을 위해 `catchup`을 사용할 수 있습니다. `catchup`의 기본값은 `True`입니다.

    **참고:** 이 과정 동안 materialized view가 다시 생성될 때까지 target table은 비어 있거나 일부만 적재된 상태가 됩니다. 이를 피하려면 다음 섹션의 target table을 반복적으로 갱신하는 방법을 확인하십시오.| + +### 활성 수집 중 동작 \{#behavior-during-active-ingestion\} -ClickHouse의 구체화된 뷰(Materialized View)는 **insert 트리거**처럼 동작하므로, 해당 뷰가 존재하는 동안에만 데이터를 캡처합니다. materialized view가 삭제되었다가 다시 생성되는 경우(예: `--full-refresh` 중), 그 시간 창 동안 소스 테이블에 삽입된 행은 MV에서 처리되지 **않습니다**. 이를 MV가 「blind」 상태라고 합니다. +모델을 반복적으로 개선할 때에는, 서로 다른 작업이 현재 삽입되고 있는 데이터와 어떻게 상호작용하는지 이해해야 합니다. -추가로, **catch-up** 과정(MV의 `catchup` 또는 대상 테이블의 `repopulate_from_mvs_on_full_refresh` 모두)은 MV의 SQL을 사용하여 `INSERT INTO ... SELECT`를 실행합니다. 이와 동시에 소스 테이블에 대한 insert가 발생하고 있다면, catch-up 쿼리에 MV가 이미 처리한(또는 생성 직후 처리하게 될) 행이 포함될 수 있으며, 이로 인해 대상 테이블에 **중복 데이터**가 생길 수 있습니다. 대상 테이블에 `ReplacingMergeTree`와 같은 중복 제거 엔진을 사용하면 이러한 위험을 완화할 수 있습니다. +- ClickHouse의 구체화된 뷰(Materialized View)는 **insert 트리거**처럼 동작하므로, 해당 뷰가 존재하는 동안에만 데이터를 캡처합니다. materialized view가 삭제되었다가 다시 생성되는 경우(예: `--full-refresh` 중), 그 시간 창 동안 소스 테이블에 삽입된 행은 MV에서 처리되지 **않습니다**. 이를 MV가 「blind」 상태라고 합니다. +- 다양한 `catchup` 프로세스는 모두 materialized view의 SQL을 사용한 `INSERT INTO ... SELECT` 작업을 기반으로 하며, materialized view가 동작하는 방식과는 독립적으로 수행됩니다. 한 번 `INSERT`가 시작되면, 이후 새로 들어오는 데이터는 해당 `INSERT`에 의해 캡처되지 않지만, 연결된 materialized view에 의해 캡처됩니다. 다음 표는 소스 테이블에 insert가 활발히 발생하고 있을 때 각 작업의 안전성을 요약한 것입니다. -### 암시적 대상 작업 \{#ingestion-implicit-target\} +#### 암시적 대상 작업 \{#ingestion-implicit-target\} | Operation | Internal process | Safety while inserts are happening | |-----------|------------------|------------------------------------| -| First `dbt run` | 1. 대상 테이블 생성
    2. 데이터 삽입 (`catchup=True`인 경우)
    3. MV 생성 | ⚠️ **1단계와 3단계 사이에는 MV가 소스 변경을 감지하지 못합니다.** 이 구간 동안 소스에 삽입되는 행은 캡처되지 않습니다. | -| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 안전합니다. MV는 원자적으로 업데이트됩니다. | -| `dbt run --full-refresh` | 1. 백업 테이블 생성
    2. 데이터 삽입 (`catchup=True`인 경우)
    3. MV 삭제
    4. 테이블 교환
    5. MV 재생성 | ⚠️ **재생성 중에는 MV가 소스 변경을 감지하지 못합니다.** 3단계와 5단계 사이에 소스에 삽입된 데이터는 새 대상 테이블에 나타나지 않습니다. | +| First `dbt run` | 1. 대상 테이블 생성
    2. 데이터 삽입 (`catchup=True`인 경우)
    3. materialized view 생성 | ⚠️ **1단계와 3단계 사이에는 materialized view가 소스 변경을 감지하지 못합니다.** 이 구간 동안 소스에 삽입되는 행은 캡처되지 않습니다. | +| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 안전합니다. materialized view는 원자적으로 업데이트됩니다. | +| `dbt run --full-refresh` | 1. 백업 테이블 생성
    2. 데이터 삽입 (`catchup=True`인 경우)
    3. materialized view 삭제
    4. 테이블 교환
    5. materialized view 재생성 | ⚠️ **재생성 중에는 materialized view가 소스 변경을 감지하지 못합니다.** 3단계와 5단계 사이에 소스에 삽입된 데이터는 새 대상 테이블에 나타나지 않습니다. | -### 명시적 대상 작업 \{#ingestion-explicit-target\} +#### 명시적 대상 작업 \{#ingestion-explicit-target\} **materialized view 모델:** diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md index 515f9938a3a..973bac6b8ea 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md @@ -9,4 +9,4 @@ doc_type: 'reference' # Cassandra 연동 \{#cassandra-integration\} -Cassandra는 딕셔너리를 사용해 연동할 수 있습니다. 자세한 내용은 [여기](/sql-reference/dictionaries#cassandra)를 참고하십시오. \ No newline at end of file +Cassandra는 딕셔너리를 사용해 연동할 수 있습니다. 자세한 내용은 [여기](/sql-reference/statements/create/dictionary/sources/cassandra)를 참고하십시오. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index 8cad95794e8..3904bfa29d6 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -42,9 +42,6 @@ ClickHouse에 연결하기 위한 공식 C# 클라이언트입니다. `ClickHouse.Driver`는 다음과 같은 .NET 버전을 지원합니다. -* .NET Framework 4.6.2 -* .NET Framework 4.8 -* .NET Standard 2.1 * .NET 6.0 * .NET 8.0 * .NET 9.0 @@ -355,8 +352,8 @@ using ClickHouse.Driver; using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("id", 1L); -parameters.Add("name", "Alice"); +parameters.AddParameter("id", 1L); +parameters.AddParameter("name", "Alice"); await client.ExecuteNonQueryAsync( "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})", @@ -413,7 +410,7 @@ var options = new InsertOptions using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("max_id", 100L); +parameters.AddParameter("max_id", 100L); var reader = await client.ExecuteReaderAsync( "SELECT * FROM default.my_table WHERE id < {max_id:Int64}", @@ -683,7 +680,7 @@ while (reader.Read()) 3. **SQL 타입 힌트에 시간대를 지정합니다.** `Unspecified` DateTime 값을 사용하는 파라미터로 UTC가 아닌 컬럼을 대상으로 할 때에는 SQL에 시간대를 포함합니다: ```csharp var parameters = new ClickHouseParameterCollection(); - parameters.Add("dt", myDateTime); + parameters.AddParameter("dt", myDateTime); await client.ExecuteNonQueryAsync( "INSERT INTO table (dt) VALUES ({dt:DateTime('Europe/Amsterdam')})", diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx index ada0517547c..1a49725de5a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx @@ -35,7 +35,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra * Maven Central (프로젝트 웹 페이지): https://mvnrepository.com/artifact/com.clickhouse/client-v2 * Nightly 빌드(저장소 링크): https://central.sonatype.com/repository/maven-snapshots/ - * 이전 Nightly 빌드용 Artifactory(저장소 링크): https://s01.oss.sonatype.org/content/repositories/snapshots/ + * 이전 Nightly 빌드용 Artifactory 저장소 링크: https://s01.oss.sonatype.org/content/repositories/snapshots/
    @@ -122,10 +122,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 인증서와 키를 검증하려면 [openssl](https://docs.openssl.org/master/man1/openssl/)과 같은 도구를 사용하세요: - * 키 무결성 확인: `openssl rsa -in [key-file.key] -check -noout` - * 클라이언트 인증서의 CN이 사용자와 일치하는지 확인합니다: - * 사용자 인증서에서 CN을 추출합니다 - `openssl x509 -noout -subject -in [user.cert]` - * 데이터베이스에 동일한 값이 설정되어 있는지 확인합니다: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (쿼리는 `auth_params`를 ` {"common_names":["some_user"]}`와 같은 형식으로 출력합니다) + * 키 무결성 검사: `openssl rsa -in [key-file.key] -check -noout` + * 클라이언트 인증서의 CN이 해당 사용자와 일치하는지 확인합니다: + * 사용자 인증서에서 CN을 가져옵니다 - `openssl x509 -noout -subject -in [user.cert]` + * 데이터베이스에 같은 값이 설정되어 있는지 확인합니다: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (쿼리는 `auth_params`를 ` {"common_names":["some_user"]}`와 같은 형태로 출력합니다) ::: @@ -144,23 +144,23 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | ----------------------------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------- | --------- | --------------------------- | | `addEndpoint(String endpoint)` | `endpoint` - URL 형식의 서버 주소 | 사용 가능한 서버 목록에 서버 엔드포인트를 추가합니다. 현재는 하나의 엔드포인트만 지원됩니다. | `none` | `none` | | `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - 연결 프로토콜
    `host` - IP 또는 호스트 이름
    `secure` - HTTPS 사용 | 사용 가능한 서버 목록에 서버 엔드포인트를 추가합니다. 현재는 하나의 엔드포인트만 지원됩니다. | `none` | `none` | - | `enableConnectionPool(boolean enable)` | `enable` - 활성/비활성 플래그 | 커넥션 풀을 사용할지 여부를 설정합니다. | `true` | `connection_pool_enabled` | + | `enableConnectionPool(boolean enable)` | `enable` - 활성/비활성 플래그 | 커넥션 풀 사용 여부를 설정합니다. | `true` | `connection_pool_enabled` | | `setMaxConnections(int maxConnections)` | `maxConnections` - 커넥션 개수 | 클라이언트가 각 서버 엔드포인트에 대해 열 수 있는 최대 커넥션 수를 설정합니다. | `10` | `max_open_connections` | - | `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - 타임아웃 값
    `unit` - 시간 단위 | 커넥션이 비활성으로 간주되는 TTL을 설정합니다. | `-1` | `connection_ttl` | + | `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - 타임아웃 값
    `unit` - 시간 단위 | 지정된 시간 이후 연결을 비활성으로 간주할 TTL을 설정합니다. | `-1` | `connection_ttl` | | `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - 타임아웃 값
    `unit` - 시간 단위 | HTTP 커넥션 Keep-Alive 타임아웃을 설정합니다. Keep-Alive를 비활성화하려면 `0`으로 설정합니다. | - | `http_keep_alive_timeout` | - | `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` 또는 `FIFO` | 커넥션 풀이 사용할 커넥션 재사용 전략을 선택합니다. | `FIFO` | `connection_reuse_strategy` | + | `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` 또는 `FIFO` | 커넥션 풀에서 사용할 커넥션 재사용 전략을 선택합니다. | `FIFO` | `connection_reuse_strategy` | | `setDefaultDatabase(String database)` | `database` - 데이터베이스 이름 | 기본 데이터베이스를 설정합니다. | `default` | `database` | - | Method | Arguments | Description | Default | Key | - | ---------------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------- | --------- | --------------------- | - | `setUsername(String username)` | `username` - 인증에 사용할 사용자 이름 | 추가 설정을 통해 선택되는 인증 방법에 사용할 사용자 이름을 설정합니다. | `default` | `user` | - | `setPassword(String password)` | `password` - 비밀값 | 비밀번호 인증에 사용할 비밀값을 설정하고, 해당 인증 방법을 실질적으로 선택합니다. | - | `password` | - | `setAccessToken(String accessToken)` | `accessToken` - 액세스 토큰 문자열 | 인증에 사용할 액세스 토큰을 설정하며, 이에 상응하는 인증 방법을 선택합니다. | - | `access_token` | - | `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - SSL 인증 사용 여부 플래그 | SSL 클라이언트 인증서를 인증 방법으로 설정합니다. | - | `ssl_authentication` | - | `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - 활성화/비활성화 플래그 | 사용자-비밀번호 인증에 기본 HTTP 인증을 사용할지 여부를 설정합니다. 특수 문자가 포함된 비밀번호로 인한 문제를 방지합니다. | `true` | `http_use_basic_auth` | - | `useBearerTokenAuth(String bearerToken)` | `bearerToken` - 인코딩된 Bearer 토큰 | Bearer 토큰 인증 사용 여부와 사용할 토큰을 지정합니다. 토큰은 있는 그대로 전송됩니다. | - | `bearer_token` | + | Method | Arguments | Description | Default | Key | + | ---------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------- | --------- | --------------------- | + | `setUsername(String username)` | `username` - username for authentication | 이후 구성에서 선택되는 인증 방법에 사용할 사용자 이름을 설정합니다. | `default` | `user` | + | `setPassword(String password)` | `password` - secret value | 비밀번호 인증에 사용할 비밀값을 설정하고, 해당 인증 방법을 실질적으로 선택합니다. | - | `password` | + | `setAccessToken(String accessToken)` | `accessToken` - access token string | 인증에 사용할 액세스 토큰을 설정하며, 이에 해당하는 인증 방법을 선택합니다. | - | `access_token` | + | `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - flag to enable SSL auth | SSL 클라이언트 인증서를 인증 방법으로 설정합니다. | - | `ssl_authentication` | + | `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - flag to enable/disable | 사용자-비밀번호 인증에 기본 HTTP 인증을 사용할지 여부를 설정합니다. 특수 문자가 포함된 비밀번호로 인한 문제를 방지합니다. | `true` | `http_use_basic_auth` | + | `useBearerTokenAuth(String bearerToken)` | `bearerToken` - an encoded bearer token | Bearer 토큰 인증 사용 여부와 사용할 토큰을 지정합니다. 토큰은 있는 그대로 전송됩니다. | - | `bearer_token` | @@ -175,13 +175,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ------------------------------------ | ------------------------- | ------------------------------------------------------------------------------------- | ------- | -------------------- | - | `setSocketRcvbuf(long size)` | `size` - 바이트 단위 크기 | TCP 소켓 수신 버퍼를 설정합니다. 이 버퍼는 JVM 메모리 외부에 있습니다. | `8196` | `socket_rcvbuf` | - | `setSocketSndbuf(long size)` | `size` - 바이트 단위 크기 | TCP 소켓 송신 버퍼를 설정합니다. 이 버퍼는 JVM 메모리 외부에 있습니다. | `8196` | `socket_sndbuf` | - | `setSocketKeepAlive(boolean value)` | `value` - 활성/비활성 플래그 | 모든 TCP 소켓에 대해 `SO_KEEPALIVE` 옵션을 설정합니다. TCP Keep Alive는 연결의 생존 여부를 확인하는 메커니즘을 활성화합니다. | - | `socket_keepalive` | - | `setSocketTcpNodelay(boolean value)` | `value` - 활성/비활성 플래그 | 모든 TCP 소켓에 대해 `SO_NODELAY` 옵션을 설정합니다. 이 TCP 옵션은 소켓이 가능한 한 빨리 데이터를 전송하도록 합니다. | - | `socket_tcp_nodelay` | - | `setSocketLinger(int secondsToWait)` | `secondsToWait` - 초 단위 시간 | 클라이언트가 생성하는 모든 TCP 소켓의 linger 시간을 설정합니다. | - | `socket_linger` | + | Method | Arguments | Description | Default | Key | + | ------------------------------------ | ---------------------------- | ------------------------------------------------------------------------------------- | ------- | -------------------- | + | `setSocketRcvbuf(long size)` | `size` - 바이트 단위의 크기 | TCP 소켓 수신 버퍼를 설정합니다. 이 버퍼는 JVM 메모리 영역 밖에 있습니다. | `8196` | `socket_rcvbuf` | + | `setSocketSndbuf(long size)` | `size` - 바이트 단위의 크기 | TCP 소켓 송신 버퍼를 설정합니다. 이 버퍼는 JVM 메모리 영역 밖에 있습니다. | `8196` | `socket_sndbuf` | + | `setSocketKeepAlive(boolean value)` | `value` - 활성/비활성 플래그 | 모든 TCP 소켓에 대해 `SO_KEEPALIVE` 옵션을 설정합니다. TCP Keep Alive는 연결의 생존 여부를 확인하는 메커니즘을 활성화합니다. | - | `socket_keepalive` | + | `setSocketTcpNodelay(boolean value)` | `value` - 활성/비활성 플래그 | 모든 TCP 소켓에 대해 `SO_NODELAY` 옵션을 설정합니다. 이 TCP 옵션은 소켓이 가능한 한 빨리 데이터를 전송하도록 합니다. | - | `socket_tcp_nodelay` | + | `setSocketLinger(int secondsToWait)` | `secondsToWait` - 초 단위 대기 시간 | 클라이언트가 생성하는 모든 TCP 소켓의 linger 시간을 설정합니다. | - | `socket_linger` | @@ -195,7 +195,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `disableNativeCompression` | `disable` - 비활성화 플래그 | 기본(native) 압축을 비활성화합니다. `true`로 설정하면 기본 압축이 비활성화됩니다. | `false` | `disable_native_compression` | - + | Method | Arguments | Description | Default | Key | | ------------------------------------------- | ------------------------- | ------------------------------------------------------------------- | ------- | -------------------- | | `setSSLTrustStore(String path)` | `path` - 로컬 시스템의 파일 경로 | 클라이언트가 서버 호스트 검증을 위해 SSL truststore를 사용하도록 설정합니다. | - | `trust_store` | @@ -208,10 +208,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------- | ------- | ---------------------------------------- | - | `addProxy(ProxyType type, String host, int port)` | `type` - 프록시 유형
    `host` - 프록시 호스트 이름 또는 IP
    `port` - 프록시 포트 | 서버와의 통신에 사용할 프록시를 설정합니다. | - | `proxy_type`, `proxy_host`, `proxy_port` | - | `setProxyCredentials(String user, String pass)` | `user` - 프록시 사용자 이름
    `pass` - 비밀번호 | 프록시 인증에 사용할 사용자 자격 증명을 설정합니다. | - | `proxy_user`, `proxy_password` | + | Method | Arguments | Description | Default | Key | + | ------------------------------------------------- | ------------------------------------------------------------------- | -------------------------------- | ------- | ---------------------------------------- | + | `addProxy(ProxyType type, String host, int port)` | `type` - 프록시 유형
    `host` - 프록시 호스트 이름 또는 IP
    `port` - 프록시 포트 | 서버와의 통신에 사용할 프록시를 설정합니다. | - | `proxy_type`, `proxy_host`, `proxy_port` | + | `setProxyCredentials(String user, String pass)` | `user` - 프록시 사용자 이름
    `pass` - 비밀번호 | 프록시에 인증할 때 사용할 사용자 자격 증명을 설정합니다. | - | `proxy_user`, `proxy_password` |
    @@ -249,13 +249,51 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - 매칭 전략 구현체 | DTO를 등록할 때 DTO 클래스 필드와 DB 컬럼을 매칭하기 위해 사용할 사용자 정의 전략을 설정합니다. | `none` | `none` | | `setClientName(String clientName)` | `clientName` - 애플리케이션 이름 문자열 | 호출하는 애플리케이션에 대한 추가 정보를 설정합니다. `User-Agent` 헤더로 전달됩니다. | - | `client_name` | | `registerClientMetrics(Object registry, String name)` | `registry` - Micrometer registry 인스턴스
    `name` - 메트릭 그룹 이름 | Micrometer(https://micrometer.io/) registry 인스턴스에 센서를 등록합니다. | - | - | - | `setServerVersion(String version)` | `version` - 서버 버전 문자열 | 버전 자동 감지를 피하기 위해 서버 버전을 설정합니다. | - | `server_version` | + | `setServerVersion(String version)` | `version` - 서버 버전 문자열 | 버전 자동 감지가 수행되지 않도록 서버 버전을 설정합니다. | - | `server_version` | | `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - 타입 힌트 맵 | ClickHouse 타입에 대한 타입 힌트 매핑을 설정합니다. 예를 들어, 다차원 배열이 Java 컨테이너로 표현되도록 할 수 있습니다. | - | `type_hint_mapping` |

    + ### 클라이언트 식별 \{#client-identification\} + + 쿼리 로그에는 요청을 발생시킨 애플리케이션을 식별하는 두 가지 필드가 있습니다: `client_name`과 `http_user_agent`입니다. 네이티브 TCP 프로토콜은 애플리케이션을 식별하기 위해 `client_name`을 사용하고, HTTP 프로토콜은 `http_user_agent`를 사용합니다. Client builder의 `setClientName` 메서드를 통해 두 프로토콜 모두에 올바른 값을 설정할 수 있습니다. + `http_user_agent` 필드는 `User-Agent` 헤더의 일반 형식에 따라 설정됩니다: `application-name[/version] [(operating-system; architecture; ...)]`. + 이 값들의 집합은 각 계층(애플리케이션, 클라이언트 라이브러리, HTTP 클라이언트 라이브러리)마다 반복됩니다. `setClientName` 메서드로 설정된 값이 목록에서 가장 먼저 나타납니다. + + 예를 들어: + + ```java showLineNumbers + client.setClientName("my-app-01/1.0"); + ``` + + 다음과 같은 `http_user_agent` 값이 생성됩니다: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + 애플리케이션은 자신을 식별하기 위해 HTTP 헤더 `User-Agent`를 직접 설정할 수 있습니다. 단, `clickhouse-java-v2/0.9.6-SNAPSHOT` 부분은 헤더 끝에 자동으로 추가됩니다. + + ### 작업 식별 \{#operation-identification\} + + 쿼리 로그에는 작업을 식별하고 쿼리 로그에 추가 정보를 기록하는 데 사용할 수 있는 `query_id` 및 `log_comment` 두 개의 필드가 있습니다. + + `query_id`는 작업의 고유 식별자입니다. 애플리케이션에서 `QuerySettings` 클래스의 `setQueryId` 메서드를 호출하여 설정할 수 있습니다. + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.setQueryId("some-query-id"); + ``` + + `log_comment`은 쿼리 로그에 추가할 수 있는 주석입니다. `QuerySettings` 클래스의 `logComment` 메서드를 호출하여 애플리케이션에서 설정할 수 있습니다. + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.logComment("some-comment"); + ``` + ### 서버 설정 \{#server-settings\} 서버 측 설정은 클라이언트를 생성할 때 클라이언트 수준에서 한 번만 설정할 수 있으며(`Builder`의 `serverSetting` 메서드 참조), 작업 수준에서도 설정할 수 있습니다(작업 설정 클래스의 `serverSetting` 메서드 참조). @@ -303,9 +341,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra [지원되는 형식](/interfaces/formats)의 열거형(Enum)입니다. ClickHouse가 지원하는 모든 형식을 포함합니다. - * `raw` - 사용자가 원시 데이터를 직접 트랜스코딩해야 합니다 - * `full` - 클라이언트가 자체적으로 데이터를 트랜스코딩할 수 있으며 원시 데이터 스트림을 그대로 수신할 수 있습니다 - * `-` - 이 형식에서는 ClickHouse가 해당 연산을 지원하지 않습니다 + * `raw` - 원시 데이터를 직접 트랜스코딩해야 합니다 + * `full` - 클라이언트가 데이터를 자체적으로 트랜스코딩할 수 있으며 원시 데이터 스트림을 그대로 수신합니다 + * `-` - 이 형식에서는 ClickHouse에서 해당 연산을 지원하지 않습니다 이 클라이언트 버전에서 지원하는 항목은 다음과 같습니다: @@ -390,8 +428,8 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | [MsgPack](/interfaces/formats/MsgPack) | 원시 | 원시 | | [MySQLDump](/interfaces/formats/MySQLDump) | 원시 | - | | [DWARF](/interfaces/formats/DWARF) | 원시 | * | - | [Markdown](/interfaces/formats/Markdown) | - | 원본 | - | [양식](/interfaces/formats/Form) | 원본 | * | + | [Markdown](/interfaces/formats/Markdown) | - | 원시 | + | [양식](/interfaces/formats/Form) | 원시 | * | ## Insert API \{#insert-api\} @@ -414,7 +452,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra `format` - 데이터가 인코딩된 형식입니다. - `settings` - 요청 설정. + `settings` - 요청 설정입니다. **반환값** @@ -459,7 +497,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra `InsertResponse` 타입의 Future로, 작업 결과와 서버 측 메트릭과 같은 추가 정보를 반환합니다. - **예제** + **예시** ```java showLineNumbers // Important step (done once) - register class to pre-compile object serializer according to the table schema. @@ -478,15 +516,15 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **구성 방법** - | 메서드 | 설명 | - | ----------------------------------------------- | --------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | 작업에 할당될 쿼리 ID를 설정합니다. 기본값은 `null`입니다. | - | `setDeduplicationToken(String token)` | 중복 제거 토큰을 설정합니다. 이 토큰은 서버로 전송되며, 쿼리를 식별하는 데 사용할 수 있습니다. 기본값은 `null`입니다. | - | `setInputStreamCopyBufferSize(int size)` | 복사용 버퍼 크기입니다. 이 버퍼는 쓰기 작업 중에 사용자 제공 입력 스트림에서 출력 스트림으로 데이터를 복사할 때 사용됩니다. 기본값은 `8196`입니다. | - | `serverSetting(String name, String value)` | 개별 작업에 대해 서버 측 설정을 지정합니다. | - | `serverSetting(String name, Collection values)` | 작업에 대해 여러 값을 가지는 개별 서버 설정을 지정합니다. 컬렉션의 각 항목은 `String` 값이어야 합니다. | - | `setDBRoles(Collection dbRoles)` | 작업을 실행하기 전에 적용할 DB 역할을 설정합니다. 컬렉션의 항목은 `String` 값이어야 합니다. | - | `setOption(String option, Object value)` | 구성 옵션을 원시(raw) 형식으로 설정합니다. 이는 서버 설정이 아닙니다. | + | 메서드 | 설명 | + | ----------------------------------------------- | -------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | 작업에 할당될 쿼리 ID를 설정합니다. 기본값은 `null`입니다. | + | `setDeduplicationToken(String token)` | 중복 제거 토큰을 설정합니다. 이 토큰은 서버로 전송되어 쿼리를 식별하는 데 사용할 수 있습니다. 기본값은 `null`입니다. | + | `setInputStreamCopyBufferSize(int size)` | 복사용 버퍼 크기입니다. 이 버퍼는 쓰기 작업 중에 사용자가 제공한 입력 스트림에서 출력 스트림으로 데이터를 복사할 때 사용됩니다. 기본값: `8196`. | + | `serverSetting(String name, String value)` | 개별 작업에 대한 서버 설정을 지정합니다. | + | `serverSetting(String name, Collection values)` | 단일 작업에 대해 여러 값을 갖도록 개별 서버 설정을 지정합니다. 컬렉션의 각 항목은 `String` 값이어야 합니다. | + | `setDBRoles(Collection dbRoles)` | 작업을 실행하기 전에 적용할 DB 역할을 설정합니다. 컬렉션의 항목은 `String` 값이어야 합니다. | + | `setOption(String option, Object value)` | 원시(raw) 형식으로 구성 옵션을 설정합니다. 서버 설정은 아닙니다. | ### InsertResponse \{#insertresponse\} @@ -496,10 +534,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 이전 응답의 모든 데이터를 완전히 읽기 전까지는 해당 연결을 재사용할 수 없으므로, 연결을 해제하려면 이 객체를 가능한 한 빨리 닫아야 합니다. ::: - | 메서드 | 설명 | - | ------------------------------- | ----------------------------------------------- | - | `OperationMetrics getMetrics()` | 작업 메트릭 객체를 반환합니다. | - | `String getQueryId()` | 애플리케이션에서(작업 설정 또는 서버를 통해) 작업에 할당한 쿼리 ID를 반환합니다. | + | 메서드 | 설명 | + | ------------------------------- | ---------------------------------------------- | + | `OperationMetrics getMetrics()` | 작업 메트릭 객체를 반환합니다. | + | `String getQueryId()` | 애플리케이션이(작업 설정 또는 서버를 통해) 작업에 할당한 쿼리 ID를 반환합니다. | ## 쿼리 API \{#query-api\} @@ -522,7 +560,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **반환값** - `QueryResponse` 타입을 반환하는 Future - 결과 데이터셋과 서버 측 메트릭과 같은 추가 정보를 포함합니다. 데이터셋을 모두 소비한 후 Response 객체를 닫아야 합니다. + `QueryResponse` 타입의 Future로, 결과 데이터셋과 서버 측 메트릭과 같은 추가 정보를 포함합니다. 데이터셋을 모두 소비한 후 Response 객체를 닫아야 합니다. **예시** @@ -562,7 +600,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) ``` - **매개변수** + **파라미터** `sqlQuery` - `{}` 플레이스홀더를 포함하는 SQL 표현식입니다. @@ -572,7 +610,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **반환값** - `QueryResponse` 타입의 향후 계획 - 결과 데이터셋과 서버 측 메트릭과 같은 추가 정보를 포함합니다. 데이터셋을 모두 읽은 후 Response 객체를 닫아야 합니다. + `QueryResponse` 타입의 Future로, 결과 데이터셋과 서버 측 메트릭과 같은 추가 정보를 포함합니다. 데이터셋을 모두 소비한 후 Response 객체를 닫아야 합니다. **예시** @@ -612,7 +650,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **파라미터** - `sqlQuery` - 서버의 데이터를 조회하기 위한 SQL 표현식입니다. + `sqlQuery` - 서버에서 데이터를 조회하기 위한 SQL 표현식입니다. **반환값** @@ -642,41 +680,41 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 쿼리 작업 구성 옵션입니다. - **구성 방법** - - | 메서드 | 설명 | - | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | 작업에 할당할 쿼리 ID를 설정합니다. | - | `setFormat(ClickHouseFormat format)` | 응답 형식을 설정합니다. 전체 형식 목록은 `RowBinaryWithNamesAndTypes`를 참조하십시오. | - | `setMaxExecutionTime(Integer maxExecutionTime)` | 서버에서 작업의 최대 실행 시간 제한을 설정합니다. 읽기 타임아웃에는 영향을 주지 않습니다. | - | `waitEndOfQuery(Boolean waitEndOfQuery)` | 쿼리 실행이 완료될 때까지 응답을 보내지 않도록 서버에 요청합니다. | - | `setUseServerTimeZone(Boolean useServerTimeZone)` | 연산 결과에 포함된 날짜/시간 타입을 파싱할 때 서버 시간대(클라이언트 설정 참조)를 사용합니다. 기본값은 `false`입니다. | - | `setUseTimeZone(String timeZone)` | 시간 변환에 `timeZone`을 사용하도록 서버에 요청합니다. [session_timezone](/operations/settings/settings#session_timezone)을(를) 참조하십시오. | - | `serverSetting(String name, String value)` | 개별 작업에 대한 서버 측 설정을 구성합니다. | - | `serverSetting(String name, Collection values)` | 작업에 대해 여러 값을 가지는 개별 서버 설정을 지정합니다. 컬렉션의 각 항목은 `String` 값이어야 합니다. | - | `setDBRoles(Collection dbRoles)` | 작업을 실행하기 전에 설정할 DB 역할을 지정합니다. 컬렉션의 항목은 `String` 값이어야 합니다. | - | `setOption(String option, Object value)` | 원시(raw) 형식으로 구성 옵션을 설정합니다. 서버 설정이 아닙니다. | + **설정 방법** + + | 메서드 | 설명 | + | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | 작업에 할당할 쿼리 ID를 설정합니다. | + | `setFormat(ClickHouseFormat format)` | 응답 형식을 설정합니다. 전체 형식 목록은 `RowBinaryWithNamesAndTypes`를 참조하십시오. | + | `setMaxExecutionTime(Integer maxExecutionTime)` | 서버에서 작업의 최대 실행 시간 제한을 설정합니다. 읽기 타임아웃에는 영향을 주지 않습니다. | + | `waitEndOfQuery(Boolean waitEndOfQuery)` | 쿼리가 끝날 때까지 응답을 전송하지 않도록 서버에 요청합니다. | + | `setUseServerTimeZone(Boolean useServerTimeZone)` | 연산 결과의 날짜/시간 타입을 파싱할 때 서버 시간대(클라이언트 설정 참조)를 사용하도록 설정합니다. 기본값은 `false`입니다. | + | `setUseTimeZone(String timeZone)` | 시간 변환 시 서버가 `timeZone`을 사용하도록 요청합니다. [session_timezone](/operations/settings/settings#session_timezone)을(를) 참조하십시오. | + | `serverSetting(String name, String value)` | 개별 작업에 대해 서버 측 설정을 구성합니다. | + | `serverSetting(String name, Collection values)` | 단일 작업에 대해 여러 값을 갖는 개별 서버 설정을 지정합니다. 컬렉션의 각 항목은 `String` 값이어야 합니다. | + | `setDBRoles(Collection dbRoles)` | 작업을 실행하기 전에 설정할 DB 역할을 지정합니다. 컬렉션의 항목은 `String` 값이어야 합니다. | + | `setOption(String option, Object value)` | 구성 옵션을 원시(raw) 형식으로 설정합니다. 서버 설정은 아닙니다. | ### QueryResponse \{#queryresponse\} 쿼리 실행 결과를 담고 있는 응답 객체입니다. 클라이언트가 서버로부터 응답을 받은 경우에만 사용 가능합니다. :::note - 이전 응답의 모든 데이터를 완전히 읽기 전까지는 연결을 재사용할 수 없으므로, 연결을 해제하기 위해 이 객체를 가능한 한 빨리 닫으십시오. + 이전 응답의 모든 데이터를 완전히 읽기 전까지는 해당 연결을 재사용할 수 없으므로, 연결을 해제하려면 이 객체를 가능한 한 빨리 닫아야 합니다. ::: | 메서드 | 설명 | | ------------------------------- | -------------------------------------------------- | - | `ClickHouseFormat getFormat()` | 응답 데이터가 어떤 포맷으로 인코딩되었는지 반환합니다. | - | `InputStream getInputStream()` | 지정된 포맷으로 인코딩된 비압축 데이터 바이트 스트림을 반환합니다. | + | `ClickHouseFormat getFormat()` | 응답 데이터가 어떤 형식으로 인코딩되어 있는지 반환합니다. | + | `InputStream getInputStream()` | 지정된 형식으로 인코딩된, 압축되지 않은 데이터 바이트 스트림을 반환합니다. | | `OperationMetrics getMetrics()` | 작업 메트릭을 포함하는 객체를 반환합니다. | - | `String getQueryId()` | 애플리케이션이 작업에 할당한 쿼리 ID(작업 설정 또는 서버를 통해 설정됨)를 반환합니다. | - | `TimeZone getTimeZone()` | 응답의 Date/DateTime 타입을 처리할 때 사용할 타임존을 반환합니다. | + | `String getQueryId()` | 애플리케이션이 작업에 할당한 쿼리 ID를 반환합니다(작업 설정 또는 서버를 통해 설정됨). | + | `TimeZone getTimeZone()` | 응답의 Date/DateTime 타입을 처리할 때 사용할 시간대를 반환합니다. | ### 예시 \{#examples\} * 예제 코드는 [저장소](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2)에서 확인할 수 있습니다. - * Spring 서비스 [구현 예제](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service)를 참고하십시오 + * Spring 서비스 [구현체](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service)를 참고하십시오 ## 공통 API \{#common-api\} @@ -726,7 +764,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Java 클래스가 `schema`를 사용하여 데이터를 쓰고 읽을 수 있도록 직렬화 및 역직렬화 레이어를 컴파일합니다. 이 메서드는 getter/setter 쌍과 해당 컬럼에 대한 직렬화기 및 역직렬화기를 생성합니다. 컬럼 매칭은 메서드 이름에서 컬럼 이름을 추출하여 수행됩니다. 예를 들어, `getFirstName`은 `first_name` 또는 `firstname` 컬럼에 대응됩니다. - **서명** + **시그니처** ```java void register(Class clazz, TableSchema schema) @@ -750,16 +788,16 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - 주요 예제 모음입니다. * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - Spring Boot 애플리케이션에서 클라이언트를 사용하는 방법을 보여주는 예제입니다. - * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - Ktor 기반 Kotlin 애플리케이션에서 클라이언트를 사용하는 방법을 보여주는 예제입니다. + * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - Ktor(Kotlin) 애플리케이션에서 클라이언트를 사용하는 예제입니다. ## 데이터 읽기 \{#reading-data\} 데이터를 읽는 일반적인 방식은 두 가지입니다: - * 데이터가 포함된 `InputStream`을 담고 있는 저수준 `QueryResponse` 객체를 반환하는 `query()` 메서드입니다. 일반적으로 스트리밍 읽기를 위해 `ClickHouseBinaryFormatReader`와 함께 사용되지만, - 다른 사용자 정의 리더 구현과 함께 사용할 수도 있습니다. `QueryResponse`는 결과 집합 메타데이터와 메트릭에 대한 접근도 제공합니다. - * `queryAll()` 메서드와 `GenericRecord`를 사용하면 행 단위로 데이터를 편리하게 접근할 수 있습니다. 이 경우 전체 결과 집합이 메모리에 로드됩니다. - * `queryRecords()` 메서드는 `com.clickhouse.client.api.query.Records`를 반환하며, 이는 `GenericRecord` 객체에 대한 이터레이터입니다. 이 메서드는 스트리밍 방식(데이터를 메모리에 적재하지 않음)을 사용하며, `GenericRecord`를 활용해 데이터에 접근합니다. + * `query()` 메서드는 데이터가 포함된 `InputStream`을 담고 있는 저수준 `QueryResponse` 객체를 반환합니다. 일반적으로 스트리밍 읽기를 위해 `ClickHouseBinaryFormatReader`와 함께 사용되지만 + 다른 사용자 정의 리더 구현과 함께 사용할 수도 있습니다. `QueryResponse`는 결과 집합의 메타데이터와 메트릭에도 접근할 수 있도록 합니다. + * `queryAll()` 메서드와 `GenericRecord`를 사용하면 데이터에 행 단위로 편리하게 접근할 수 있습니다. 이 경우 결과 집합 전체가 메모리에 로드됩니다. + * `queryRecords()` 메서드는 `com.clickhouse.client.api.query.Records`를 반환하며, 이는 `GenericRecord` 객체에 대한 이터레이터입니다. 이 메서드는 데이터를 메모리에 적재하지 않는 스트리밍 방식을 사용하며, 데이터 접근에는 `GenericRecord`를 활용합니다. **참고:** 스트리밍 방식은 데이터가 네트워크 스트림에서 직접 읽히므로, 충분히 빠르게 읽지 않으면 서버 쓰기 타임아웃이 발생할 수 있습니다. @@ -767,10 +805,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`ClickHouseBinaryFormatReader` 메서드** - * `getList(...)` - 모든 `Array(...)`를 `List` 형태로 읽습니다. 유연한 타입의 읽기에 적합한 기본값입니다. 중첩 배열을 지원합니다. - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 원시 타입과 호환되는 값들로 구성된 1차원 배열에 가장 적합합니다. - * `getStringArray(...)` - `Array(String)` 타입(및 이름으로 표현되는 enum 값)에 사용합니다. - * `getObjectArray(...)` - 중첩 배열을 포함한 모든 `Array(...)` 요소 타입에 사용할 수 있는 범용 옵션입니다. 널 허용 값 및 중첩 배열을 포함하는 배열을 읽을 때 사용합니다. + * `getList(...)` - 임의의 `Array(...)`를 `List` 형태로 읽습니다. 유연한 타입의 읽기에 적합한 기본 옵션입니다. 중첩 배열을 지원합니다. + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 원시(primitive) 타입과 호환되는 값들로 구성된 1차원 배열에 가장 적합합니다. + * `getStringArray(...)` - `Array(String)`(및 이름으로 표현되는 enum 값)을 위한 메서드입니다. + * `getObjectArray(...)` - 중첩 배열을 포함한 모든 `Array(...)` 요소 타입에 사용할 수 있는 범용 옵션입니다. 널 허용 값이 포함된 배열이나 중첩 배열을 읽을 때 사용합니다. 모든 메서드는 인덱스 기반 및 이름 기반 오버로드를 사용할 수 있습니다. 인덱스는 1부터 시작합니다. 인덱스 기반 방식은 컬럼에 직접 접근합니다. 이름 기반 메서드는 매번 인덱스를 조회해야 합니다. @@ -792,13 +830,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`GenericRecord` 메서드** - * `getList(...)` - 모든 `Array(...)`를 `List`로 읽습니다. 유연한 타입 읽기에 적합한 기본값입니다. 중첩 배열을 지원합니다. - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 기본(primitive) 타입과 호환되는 값으로 구성된 1차원 배열에 가장 적합합니다. - * `getStringArray(...)` - `Array(String)` 타입(및 이름으로 표현되는 enum 값)에 사용됩니다. - * `getObjectArray(...)` - 중첩 배열을 포함하여 모든 `Array(...)` 요소 타입에 사용할 수 있는 제네릭 옵션입니다. 널 허용 값을 포함한 배열 및 중첩 배열을 읽을 때 사용합니다. + * `getList(...)` - 모든 `Array(...)`를 `List`로 읽습니다. 유연한 타입의 읽기에 적합한 기본 옵션입니다. 중첩 배열을 지원합니다. + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 기본(primitive) 타입과 호환되는 값으로 이루어진 1차원 배열에 가장 적합합니다. + * `getStringArray(...)` - `Array(String)` 타입(및 이름으로 표현되는 enum 값)을 읽을 때 사용합니다. + * `getObjectArray(...)` - 중첩 배열을 포함하여 모든 `Array(...)` 요소 타입에 사용할 수 있는 범용 옵션입니다. 널 허용 값과 중첩 배열을 포함하는 배열을 읽을 때 사용합니다. - 모든 메서드에서 인덱스 기반 및 이름 기반 오버로드를 사용할 수 있습니다. 인덱스는 1부터 시작합니다. 인덱스 기반 메서드는 컬럼에 직접 접근합니다. - 이름 기반 메서드는 사용할 때마다 인덱스 조회가 필요합니다. + 모든 메서드는 인덱스 기반 및 이름 기반 오버로드를 사용할 수 있습니다. 인덱스는 1부터 시작합니다. 인덱스 기반 방식은 컬럼에 직접 접근합니다. + 이름 기반 메서드는 매번 인덱스를 조회해야 합니다. ````java try (QueryResponse response = client.query("SELECT * FROM my_table").get()) { @@ -1102,14 +1140,14 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra } ``` - * 호출해야 하는 메서드는 하나뿐입니다. 별도의 요청 객체를 생성할 필요가 없습니다. - * 모든 데이터 복사가 완료되면 요청 본문(request body) 스트림은 자동으로 닫힙니다. + * 호출할 메서드는 하나뿐입니다. 별도의 요청 객체를 생성할 필요가 없습니다. + * 모든 데이터가 복사되면 요청 본문(request body) 스트림이 자동으로 닫힙니다. * 새로운 저수준 API인 `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`를 사용할 수 있습니다. `com.clickhouse.client.api.DataStreamWriter`는 사용자 정의 데이터 쓰기 로직을 구현하도록 설계되었습니다. 예를 들어 큐에서 데이터를 읽어와 쓰는 로직을 구현할 때 사용할 수 있습니다. ### 데이터 읽기 - * 데이터는 기본적으로 `RowBinaryWithNamesAndTypes` 형식으로 읽어집니다. 현재는 데이터 바인딩이 필요한 경우 이 형식만 지원됩니다. - * 데이터는 `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` 메서드를 사용하여 레코드 컬렉션으로 읽을 수 있습니다. 이 메서드는 데이터를 메모리에 로드한 후 연결을 해제합니다. 별도의 추가 처리는 필요하지 않습니다. `GenericRecord`는 데이터에 접근할 수 있도록 하며, 일부 형 변환 기능을 구현합니다. + * 데이터는 기본적으로 `RowBinaryWithNamesAndTypes` 형식으로 읽어집니다. 현재 데이터 바인딩이 필요할 때는 이 형식만 지원합니다. + * 데이터는 `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` 메서드를 사용하여 레코드 컬렉션으로 읽을 수 있습니다. 이 메서드는 데이터를 메모리에 로드한 후 연결을 해제합니다. 추가 처리는 필요하지 않습니다. `GenericRecord`는 데이터에 대한 접근을 제공하고, 일부 형 변환 기능을 구현합니다. ```java Collection records = client.queryAll("SELECT * FROM table"); @@ -1302,7 +1340,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 또는 여러 가지 방법으로 압축을 비활성화할 수 있습니다. - 1. 연결 URL에서 `compress=0`으로 지정하여 압축을 비활성화합니다: `http://localhost:8123/default?compress=0` + 1. 연결 URL에서 `compress=0`으로 설정하여 압축을 비활성화하십시오: `http://localhost:8123/default?compress=0` 2. 클라이언트 구성에서 비활성화하십시오: ```java showLineNumbers @@ -1400,38 +1438,38 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | 속성 | 기본값 | 설명 | | ------------------------------- | ------- | ----------------------------------------------------------------- | - | auto_discovery | `false` | 클라이언트가 system 테이블 및/또는 Keeper/ZooKeeper에서 추가 노드를 자동으로 탐지할지 여부입니다. | - | node_discovery_interval | `0` | 노드 탐지 간격(밀리초)입니다. 0 이하의 값으로 설정하면 한 번만 탐지합니다. | - | node_discovery_limit | `100` | 한 번에 탐지할 수 있는 최대 노드 수입니다. 0 이하의 값으로 설정하면 제한이 없음을 의미합니다. | + | auto_discovery | `false` | 클라이언트가 system 테이블 및/또는 Keeper/ZooKeeper에서 추가 노드를 자동으로 검색할지 여부입니다. | + | node_discovery_interval | `0` | 노드 검색 간격(밀리초)입니다. 0 이하의 값으로 설정하면 한 번만 검색합니다. | + | node_discovery_limit | `100` | 한 번에 검색할 수 있는 최대 노드 수입니다. 0 이하의 값으로 설정하면 제한이 없음을 의미합니다. | ### 로드 밸런싱 Java 클라이언트는 로드 밸런싱 정책에 따라 요청을 보낼 ClickHouse 노드를 선택합니다. 일반적으로 로드 밸런싱 정책은 다음과 같은 역할을 합니다: 1. 관리 중인 노드 목록에서 노드 하나를 선택합니다. - 2. 노드 상태를 관리합니다. - 3. 자동 검색이 활성화된 경우, 노드 검색용 백그라운드 프로세스를 필요에 따라 스케줄링하고 헬스 체크를 실행합니다. + 2. 노드의 상태를 관리합니다. + 3. 자동 검색이 활성화된 경우, 필요에 따라 노드 디스커버리용 백그라운드 프로세스를 스케줄링하고 상태 점검(health check)을 실행합니다. 다음은 로드 밸런싱을 구성하기 위한 옵션 목록입니다. - | 속성 | 기본값 | 설명 | - | ----------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | load_balancing_policy | `""` | 로드 밸런싱 정책은 다음 중 하나일 수 있습니다:
  • `firstAlive` - 요청이 관리 노드 목록에서 정상 상태인 첫 번째 노드로 전송됩니다.
  • `random` - 요청이 관리 노드 목록에서 임의의 노드로 전송됩니다.
  • `roundRobin` - 요청이 관리 노드 목록의 각 노드로 차례대로 전송됩니다.
  • `ClickHouseLoadBalancingPolicy`를 구현하는 완전히 한정된 클래스 이름(fully qualified class name) - 사용자 정의 로드 밸런싱 정책
  • 지정하지 않으면 요청은 관리 노드 목록의 첫 번째 노드로 전송됩니다. | - | load_balancing_tags | `""` | 노드를 필터링하기 위한 로드 밸런싱 태그입니다. 요청은 지정된 태그를 가진 노드로만 전송됩니다. | - | health_check_interval | `0` | 헬스 체크 간격(밀리초)입니다. 값이 0 이하이면 한 번만 수행됩니다. | - | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | 헬스 체크 방식입니다. 다음 중 하나일 수 있습니다:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - `select 1` 쿼리로 확인합니다
  • `ClickHouseHealthCheckMethod.PING` - 프로토콜 수준의 확인 방식으로, 일반적으로 더 빠릅니다
  • | - | node_check_interval | `0` | 노드 검사 간격(밀리초)이며, 음수 값은 0으로 간주됩니다. 마지막 검사 이후 지정된 시간이 경과하면 노드 상태를 확인합니다.
    `health_check_interval`과 `node_check_interval`의 차이는, `health_check_interval` 옵션은 노드 목록(전체 또는 장애 노드)에 대한 상태를 확인하는 백그라운드 작업을 스케줄링하는 반면, `node_check_interval`은 특정 노드에 대해 마지막 검사 이후 상태를 다시 확인하기까지 얼마나 시간이 경과해야 하는지를 지정한다는 점입니다 | - | check_all_nodes | `false` | 모든 노드에 대해 헬스 체크를 수행할지, 비정상 노드에 대해서만 수행할지 지정합니다. | + | 속성 | 기본값 | 설명 | + | ----------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | load_balancing_policy | `""` | 로드 밸런싱 정책은 다음 중 하나일 수 있습니다:
  • `firstAlive` - 요청이 관리 노드 목록에서 정상 상태인 첫 번째 노드로 전송됩니다.
  • `random` - 요청이 관리 노드 목록에서 임의의 노드로 전송됩니다.
  • `roundRobin` - 요청이 관리 노드 목록의 각 노드로 차례대로 전송됩니다.
  • `ClickHouseLoadBalancingPolicy`를 구현하는 완전 수식 클래스 이름(fully qualified class name) - 사용자 정의 로드 밸런싱 정책
  • 지정하지 않으면 요청은 관리 노드 목록의 첫 번째 노드로 전송됩니다. | + | load_balancing_tags | "" | 노드를 필터링하기 위한 로드 밸런싱 태그입니다. 요청은 지정된 태그를 가진 노드로만 전송됩니다. | + | health_check_interval | `0` | 헬스 체크 간격(밀리초)입니다. 값이 0 이하이면 한 번만 수행됩니다. | + | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | 헬스 체크 방식입니다. 다음 중 하나일 수 있습니다:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - `select 1` 쿼리로 헬스 체크를 수행합니다
  • `ClickHouseHealthCheckMethod.PING` - 프로토콜별 헬스 체크 방식으로, 일반적으로 더 빠릅니다
  • | + | node_check_interval | `0` | 노드 검사 간격(밀리초)입니다. 음수 값은 0으로 처리됩니다. 마지막 검사 이후 지정된 시간이 경과하면 노드 상태를 확인합니다.
    `health_check_interval`과 `node_check_interval`의 차이는, `health_check_interval` 옵션이 노드 목록(전체 또는 장애 노드)의 상태를 확인하는 백그라운드 작업을 스케줄링하는 반면, `node_check_interval`은 특정 노드에 대해 마지막 검사 이후 상태를 다시 확인하기까지 최소 얼마의 시간이 지나야 하는지를 지정한다는 점입니다 | + | check_all_nodes | `false` | 모든 노드에 대해 헬스 체크를 수행할지, 비정상 노드에 대해서만 수행할지 지정합니다. | ### 장애 조치 및 재시도 Java 클라이언트는 실패한 쿼리에 대한 장애 조치 및 재시도 동작을 구성할 수 있는 옵션을 제공합니다: - | 속성 | 기본값 | 설명 | - | ---------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | - | failover | `0` | 하나의 요청에 대해 허용되는 failover의 최대 횟수입니다. 값이 0이거나 음수이면 failover를 수행하지 않습니다. Failover는 장애가 발생한 요청을 복구하기 위해 부하 분산 정책에 따라 요청을 다른 노드로 전송합니다. | - | retry | `0` | 요청에 대해 재시도가 발생할 수 있는 최대 횟수입니다. 0 또는 음수 값은 재시도를 수행하지 않음을 의미합니다. 재시도는 ClickHouse 서버가 `NETWORK_ERROR` 오류 코드를 반환한 경우에만 동일한 노드로 요청을 다시 전송합니다. | - | repeat_on_session_lock | `true` | 세션이 잠겨 있을 때 `session_timeout` 또는 `connect_timeout`에 따라 시간 초과될 때까지 실행을 반복할지 여부입니다. ClickHouse 서버가 `SESSION_IS_LOCKED` 오류 코드를 반환하면 실패한 요청을 다시 시도합니다. | + | 속성 | 기본값 | 설명 | + | ---------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | + | failover | `0` | 단일 요청에 대해 허용되는 failover의 최대 횟수입니다. 값이 0 이하이면 failover를 수행하지 않습니다. failover는 장애가 발생한 요청을 복구하기 위해 부하 분산 정책에 따라 요청을 다른 노드로 전송합니다. | + | retry | `0` | 요청에 대해 재시도가 발생할 수 있는 최대 횟수입니다. 0 또는 음수 값은 재시도를 수행하지 않음을 의미합니다. 재시도는 ClickHouse 서버가 `NETWORK_ERROR` 오류 코드를 반환한 경우에만 동일한 노드로 요청을 다시 전송합니다 | + | repeat_on_session_lock | `true` | 세션이 잠겨 있는 동안 `session_timeout` 또는 `connect_timeout`에 따라 시간 초과가 발생할 때까지 실행을 반복할지 여부입니다. ClickHouse 서버가 `SESSION_IS_LOCKED` 오류 코드를 반환하면 실패한 요청을 다시 실행합니다. | ### 커스텀 HTTP 헤더 추가하기 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx index 562f35e6bd8..5b4f25ea689 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx @@ -70,9 +70,9 @@ import TabItem from '@theme/TabItem'; 클래스패스에 JAR를 추가해야 하는 애플리케이션에서 JDBC 드라이버를 사용하는 경우, 다음 위치에서 JAR를 다운로드하여 추가하십시오: * [Maven Central](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc)에서 라이브러리를 가져와 클래스패스에 추가하십시오 - * 버전 `0.9.4`부터는 https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all 라는 아티팩트가 제공됩니다. + * 버전 `0.9.4`부터는 https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all 아티팩트가 제공됩니다. * 모든 shaded 의존성이 포함된 JAR 파일을 받으려면 qualifier를 `all`로 지정하십시오. - * 또는 공식 저장소의 [여기](https://github.com/ClickHouse/clickhouse-java/releases)에서 다운로드할 수 있습니다. + * 또는 공식 저장소의 [여기](https://github.com/ClickHouse/clickhouse-java/releases)에서 다운로드할 수 있습니다 ## 구성 \{#configuration\} @@ -94,11 +94,11 @@ import TabItem from '@theme/TabItem'; URL 구문에 대해 유의할 사항은 다음과 같습니다: - * URL에는 엔드포인트를 **하나만** 지정할 수 있습니다 - * 기본 프로토콜인 'HTTP'가 아닌 경우 프로토콜을 명시해야 합니다. - * 기본 포트인 '8123'이 아닌 경우 포트를 지정해야 합니다 - * 드라이버는 포트 번호를 보고 프로토콜을 추측하지 않으므로 프로토콜을 반드시 명시적으로 지정해야 합니다 - * 프로토콜을 명시한 경우 `ssl` 매개변수를 별도로 지정할 필요가 없습니다. + * URL에는 엔드포인트를 **하나만** 허용합니다 + * 기본값이 'HTTP'가 아닌 프로토콜을 사용하는 경우 프로토콜을 명시해야 합니다 + * 기본 포트인 '8123'이 아닌 경우 포트를 명시해야 합니다. + * 드라이버는 포트 번호만으로 프로토콜을 추측하지 않으므로 프로토콜을 반드시 명시적으로 지정해야 합니다 + * 프로토콜이 지정된 경우 `ssl` 매개변수는 필요하지 않습니다. ### 연결 속성(Connection Properties) \{#connection-properties\} @@ -108,15 +108,15 @@ import TabItem from '@theme/TabItem'; | 속성 | 기본값 | 설명 | | ----------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | - | `disable_frameworks_detection` | `true` | User-Agent 기반 프레임워크 감지를 비활성화합니다 | - | `jdbc_ignore_unsupported_values` | `false` | 드라이버의 동작에 영향을 주지 않는 경우 `SQLFeatureNotSupportedException` 발생을 억제합니다 | - | `clickhouse.jdbc.v1` | `false` | 새 JDBC 구현 대신 이전 JDBC 구현을 사용합니다 | + | `disable_frameworks_detection` | `true` | User-Agent 값을 기반으로 한 프레임워크 감지를 비활성화합니다 | + | `jdbc_ignore_unsupported_values` | `false` | 드라이버 동작에 영향을 미치지 않는 경우 `SQLFeatureNotSupportedException`을 발생시키지 않습니다 | + | `clickhouse.jdbc.v1` | `false` | 새 JDBC 구현 대신 이전 JDBC 구현을 사용하도록 합니다 | | `default_query_settings` | `null` | 쿼리 실행 시 기본 쿼리 설정을 함께 전달할 수 있도록 합니다 | | `jdbc_resultset_auto_close` | `true` | `Statement`를 닫을 때 `ResultSet`을 자동으로 닫습니다 | - | `beta.row_binary_for_simple_insert` | `false` | `RowBinary` writer 기반의 `PreparedStatement` 구현을 사용합니다. `INSERT INTO ... VALUES` 형식의 쿼리에서만 동작합니다. | + | `beta.row_binary_for_simple_insert` | `false` | `RowBinary` writer를 기반으로 한 `PreparedStatement` 구현을 사용합니다. `INSERT INTO ... VALUES` 형식의 쿼리에서만 사용할 수 있습니다. | | `jdbc_resultset_auto_close` | `true` | `Statement`가 닫히면 `ResultSet`을 자동으로 닫습니다 | | `jdbc_use_max_result_rows` | `false` | 서버 속성 `max_result_rows`를 사용해 쿼리 결과로 반환되는 행 수를 제한할 수 있도록 합니다. 활성화되면 사용자가 설정한 overflow 모드보다 우선 적용됩니다. 자세한 내용은 JavaDoc을 참조하십시오. | - | `jdbc_sql_parser` | `JAVACC` | 사용할 SQL 파서를 구성합니다. 선택할 수 있는 값은 `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`입니다. | + | `jdbc_sql_parser` | `JAVACC` | 사용할 SQL 파서를 설정합니다. 선택 가능한 값은 `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`입니다. | :::note 서버 설정 @@ -155,6 +155,40 @@ import TabItem from '@theme/TabItem'; 참고: JDBC URL이나 속성을 URL 인코딩할 필요가 없습니다. 자동으로 인코딩됩니다. + ### 클라이언트 식별 \{#client-identification\} + + 요청을 발생시킨 애플리케이션을 식별하는 방법은 두 가지입니다: 연결 속성을 통해 `com.clickhouse.client.api.ClientConfigProperties#CLIENT_NAME`을 설정하거나, `java.sql.Connection#setClientInfo(String name, String value)` 메서드를 사용하십시오. + + ```java showLineNumbers + Properties properties = new Properties(); + properties.setProperty(ClientConfigProperties.CLIENT_NAME.getKey(), "my-app-01"); + Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", properties); + ``` + + ```java showLineNumbers + conn.setClientInfo(com.clickhouse.jdbc.ClientInfoProperties.APPLICATION_NAME.getKey(), "my-app-01"); + ``` + + 두 방법 모두 쿼리 로그에서 다음과 같은 `http_user_agent` 값을 생성합니다: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + ### 작업 식별 \{#operation-identification\} + + JDBC 드라이버는 각 작업에 대해 `query_id`를 생성합니다(현재는 서버 예외에 포함됩니다). + + 작업에 대해 `log_comment`를 설정하려면 `com.clickhouse.jdbc.StatementImpl#getLocalSettings` 메서드를 사용하십시오. 이를 위해서는 + `Statement` 또는 `PreparedStatement`를 먼저 `com.clickhouse.jdbc.StatementImpl`로 캐스팅해야 합니다. + + ```java showLineNumbers + StatementImpl stmt = (StatementImpl) conn.createStatement(); + stmt.getLocalSettings().logComment("some-comment"); + ``` + + **참고:** `localSettings`는 스레드 간에 공유되므로 이 방식은 단일 스레드에서 statement를 사용하는 경우에만 적합합니다. + ## 지원되는 데이터 유형 \{#supported-data-types\} JDBC Driver는 기반 [java client](/integrations/java#supported-data-types)와 동일한 데이터 형식을 지원합니다. @@ -164,11 +198,11 @@ import TabItem from '@theme/TabItem'; 다음 매핑이 적용됩니다: * `ResultSet#getObject(columnIndex)` 메서드는 해당하는 Java 클래스의 객체를 반환합니다. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` 등) - * `ResultSetMetaData#getColumnType(columnIndex)` 메서드는 해당 JDBC 타입을 반환합니다. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` 등) + * `ResultSetMetaData#getColumnType(columnIndex)` 메서드는 해당하는 JDBC 타입을 반환합니다. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` 등) 매핑을 변경하는 방법은 다음과 같습니다: - * `ResultSet#getObject(columnIndex, class)` 메서드는 값을 `class` 타입으로 변환하려고 시도합니다. 일부 변환에는 제약이 있습니다. 자세한 내용은 각 섹션을 참조하십시오. + * `ResultSet#getObject(columnIndex, class)` 메서드는 값을 `class` 타입으로 변환하려고 시도합니다. 일부 변환에는 제한 사항이 있습니다. 자세한 내용은 각 섹션을 참조하십시오. **숫자형 타입(Numeric Types)** @@ -194,13 +228,13 @@ import TabItem from '@theme/TabItem'; | Decimal256 | DECIMAL | java.math.BigDecimal | | Bool | BOOLEAN | java.lang.Boolean | - * 숫자형 데이터 타입은 서로 간에 변환할 수 있습니다. 따라서 `Int8` 값을 `Float64`로 읽을 수 있고, 그 반대도 가능합니다.: - * `rs.getObject(1, Float64.class)`는 `Int8` 컬럼의 `Float64` 값을 반환합니다. - * `rs.getLong(1)`는 `Int8` 컬럼의 `Long` 값을 반환합니다. - * `rs.getByte(1)`는 `Int16` 컬럼의 값이 `Byte`에 들어갈 수 있는 경우 `Byte` 값으로 반환할 수 있습니다. - * 더 넓은 범위의 타입에서 더 좁은 범위의 타입으로의 변환은 데이터 손상 위험 때문에 권장되지 않습니다. - * `Bool` 타입은 숫자 타입처럼 동작하기도 합니다. - * 모든 숫자 타입은 `java.lang.String`으로 읽을 수 있습니다. + * 숫자형 데이터 타입은 서로 변환 가능합니다. 예를 들어 `Int8` 값을 `Float64`로 읽을 수 있고, 그 반대도 가능합니다.: + * `rs.getObject(1, Float64.class)`는 `Int8` 컬럼의 값을 `Float64` 값으로 반환합니다. + * `rs.getLong(1)`는 `Int8` 컬럼의 값을 `Long` 값으로 반환합니다. + * `rs.getByte(1)`는 `Int16` 컬럼의 값이 `Byte` 범위에 들어가는 경우 `Byte` 값으로 반환할 수 있습니다. + * 더 넓은 범위의 타입을 더 좁은 범위의 타입으로 변환하는 것은 데이터가 손상될 위험 때문에 권장되지 않습니다. + * `Bool` 타입은 숫자형처럼도 동작합니다. + * 모든 숫자형 타입은 `java.lang.String`으로 읽을 수 있습니다. **문자열 타입(String Types)** @@ -209,8 +243,8 @@ import TabItem from '@theme/TabItem'; | String | VARCHAR | java.lang.String | | FixedString | VARCHAR | java.lang.String | - * `String`은 `java.lang.String` 또는 `byte[]` 타입으로만 읽을 수 있습니다. - * `FixedString`은 있는 그대로 읽되, 컬럼 길이에 맞도록 0으로 패딩됩니다. (예를 들어 `'John'`에 대한 `FixedString(10)`은 `'John\0\0\0\0\0\0\0\0\0'`으로 읽힙니다.) + * `String`은 `java.lang.String` 또는 `byte[]`로만 읽을 수 있습니다. + * `FixedString`은 그대로 읽히며, 컬럼 길이에 맞도록 0으로 패딩됩니다. (예를 들어 `'John'`에 대한 `FixedString(10)`은 `'John\0\0\0\0\0\0\0\0\0'`으로 읽힙니다.) **Enum 유형** @@ -219,10 +253,10 @@ import TabItem from '@theme/TabItem'; | Enum8 | OTHER | java.lang.String | | Enum16 | OTHER | java.lang.String | - * `Enum8`과 `Enum16`은 기본적으로 `java.lang.String` 타입에 매핑됩니다. + * `Enum8`과 `Enum16`은 기본적으로 `java.lang.String`으로 매핑됩니다. * Enum 값은 지정된 getter 메서드 또는 `getObject(columnIndex, Integer.class)` 메서드를 사용하여 숫자 값으로 읽을 수 있습니다. - * `Enum16`은 내부적으로 `short`에, `Enum8`은 `byte`에 매핑됩니다. 데이터가 손상될 수 있으므로 `Enum16`을 `byte`로 읽는 것은 피해야 합니다. - * Enum 값은 `PreparedStatement`에서 문자열 값이나 숫자 값으로 설정할 수 있습니다. + * `Enum16`은 내부적으로 `short`에, `Enum8`은 `byte`에 매핑됩니다. 데이터 손상 위험이 있으므로 `Enum16`을 `byte`로 읽는 것은 피해야 합니다. + * Enum 값은 `PreparedStatement`에서 문자열 또는 숫자 값으로 설정할 수 있습니다. **날짜/시간 타입(Date/Time Types)** @@ -235,13 +269,13 @@ import TabItem from '@theme/TabItem'; | Time | TIME | java.sql.Time | | Time64 | TIME | java.sql.Time | - * 날짜/시간 타입은 JDBC와의 호환성을 높이기 위해 `java.sql` 타입으로 매핑됩니다. 다만 `ResultSet#getObject(columnIndex, Class)`를 사용하여 두 번째 인자로 해당 클래스를 전달하면 `java.time.LocalDate`, `java.time.LocalDateTime`, `java.time.LocalTime`을(를) 반환받을 수도 있습니다. + * 날짜/시간 타입은 JDBC와의 호환성을 높이기 위해 `java.sql` 타입으로 매핑됩니다. 다만 `ResultSet#getObject(columnIndex, Class)`를 사용하여 두 번째 인자로 해당 클래스를 전달하면 `java.time.LocalDate`, `java.time.LocalDateTime`, `java.time.LocalTime`을(를) 반환받을 수 있습니다. * `rs.getObject(1, java.time.LocalDate.class)`는 `Date` 컬럼의 `java.time.LocalDate` 값을 반환합니다. * `rs.getObject(1, java.time.LocalDateTime.class)`는 `DateTime` 컬럼의 `java.time.LocalDateTime` 값을 반환합니다. * `rs.getObject(1, java.time.LocalTime.class)`는 `Time` 컬럼의 `java.time.LocalTime` 값을 반환합니다. - * `Date`, `Date32`, `Time`, `Time64` 데이터 타입은 서버 타임존의 영향을 받지 않습니다. - * `DateTime`, `DateTime64`는 서버 또는 세션 시간대의 영향을 받습니다. - * `DateTime` 및 `DateTime64` 값은 `getObject(colIndex, ZonedDateTime.class)`를 사용하여 `ZonedDateTime`으로 조회할 수 있습니다. + * `Date`, `Date32`, `Time`, `Time64`는 서버 시간대의 영향을 받지 않습니다. + * `DateTime`, `DateTime64`는 서버 또는 세션의 시간대 설정에 영향을 받습니다. + * `DateTime` 및 `DateTime64` 값은 `getObject(colIndex, ZonedDateTime.class)`를 사용하여 `ZonedDateTime`으로 가져올 수 있습니다. **중첩 타입(Nested Types)** @@ -252,13 +286,13 @@ import TabItem from '@theme/TabItem'; | 맵 | JAVA_OBJECT | java.util.Map | | Nested | ARRAY | java.sql.Array | - * `Array`는 JDBC와의 호환성을 위해 기본적으로 `java.sql.Array`에 매핑됩니다. 이는 반환된 배열 값의 타입에 대한 정보를 더 풍부하게 제공하여 타입 추론에 도움이 되도록 하기 위한 것입니다. - * `Array`는 원본 배열과 동일한 내용을 담은 `java.sql.ResultSet`을 반환하는 `getResultSet()` 메서드를 구현합니다. - * 컬렉션 타입을 `java.lang.String`으로 읽는 것은 데이터를 올바르게 표현하는 방식이 아니므로 이렇게 읽어서는 안 됩니다(예: 배열에서는 문자열 값에 따옴표가 붙지 않습니다). - * `Map`은 값을 `getObject(columnIndex, Class)` 메서드로만 읽을 수 있으므로 `JAVA_OBJECT`에 매핑됩니다. - * `Map`은 이름이 붙은 컬럼이 없으므로 `java.sql.Struct`가 아닙니다. - * `Tuple`은 서로 다른 타입을 포함할 수 있기 때문에 `Object[]`에 매핑되며, `List`를 사용하는 것은 유효하지 않습니다. - * `Tuple`은 `getObject(columnIndex, Array.class)` 메서드를 사용해 `Array`로 읽을 수 있습니다. 이때 `Array#baseTypeName`은 `Tuple` 컬럼 정의를 반환합니다. + * `Array`는 JDBC와의 호환성을 위해 기본적으로 `java.sql.Array`에 매핑됩니다. 이는 반환된 배열 값의 타입에 대한 정보를 더 잘 제공하여 타입 추론에 유용합니다. + * `Array`는 원본 배열과 동일한 내용을 가진 `java.sql.ResultSet`을 반환하는 `getResultSet()` 메서드를 구현합니다. + * 컬렉션 타입은 데이터를 올바르게 표현하지 못하므로 `java.lang.String`으로 읽어서는 안 됩니다(예: 배열에서는 문자열 값에 따옴표가 붙지 않습니다). + * `Map`은 값을 읽을 수 있는 메서드가 `getObject(columnIndex, Class)`뿐이므로 `JAVA_OBJECT`에 매핑됩니다. + * `Map`은 이름이 있는 컬럼이 없으므로 `java.sql.Struct`가 아닙니다. + * `Tuple`은 서로 다른 타입을 포함할 수 있으므로 `Object[]`에 매핑되며, `List`를 사용하는 것은 올바르지 않습니다. + * `Tuple`은 `getObject(columnIndex, Array.class)` 메서드를 사용해 `Array`로 읽을 수 있습니다. 이 경우 `Array#baseTypeName`은 `Tuple` 컬럼의 정의를 반환합니다. **배열 쓰기** @@ -267,8 +301,8 @@ import TabItem from '@theme/TabItem'; 이 메서드는 두 개의 인수를 받습니다: - * `typeName` - 배열 요소의 타입 이름을 나타냅니다. 예를 들어 `Array(Int32)` -> `"Int32"`입니다. - * `elements` - 실제 배열 요소입니다. 예: `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}`. + * `typeName` - 배열 요소의 타입 이름입니다. 예를 들어 `Array(Int32)` -> `"Int32"`입니다. + * `elements` - 실제 배열의 요소입니다. 예를 들어 `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}`. Tuple은 `Object[]` 또는 `java.sql.Struct`로 표현할 수 있습니다 (튜플 작성 방법은 아래를 참조하세요). @@ -406,8 +440,8 @@ import TabItem from '@theme/TabItem'; 이 메서드는 두 개의 인수를 받습니다: - * `typeName` - 중첩 요소의 타입 이름입니다. 예를 들어 `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`입니다. - * `elements` - 실제 중첩된 요소입니다. 예를 들어 `[1, 'test']` -> `new Object[] {1, 'test'}`로 변환됩니다. + * `typeName` - 중첩 요소의 타입 이름을 나타냅니다. 예를 들어 `Nested(Tuple(Int32, String))` -> "Nested(Tuple(Int32, String))"입니다. + * `elements` - 실제 중첩 요소입니다. 예를 들어 `[1, 'test']` -> `new Object[] {1, 'test'}`입니다. **예제** @@ -460,8 +494,8 @@ import TabItem from '@theme/TabItem'; **널 허용 및 LowCardinality 타입** - * `Nullable` 및 `LowCardinality`는 다른 타입을 감싸는 특수 타입입니다. - * `Nullable`은 `ResultSetMetaData`에서 타입 이름이 반환되는 방식에 영향을 줍니다 + * `Nullable` 및 `LowCardinality`는 다른 데이터 타입을 감싸는 특수한 데이터 타입입니다. + * `Nullable`은 `ResultSetMetaData`에서 타입 이름이 어떻게 반환되는지에 영향을 줍니다. **특수 유형** @@ -474,10 +508,10 @@ import TabItem from '@theme/TabItem'; | AggregateFunction | OTHER | (이진 표현) | | SimpleAggregateFunction | (래핑된 타입) | (래핑된 클래스) | - * `UUID`는 JDBC 표준 타입이 아닙니다. 그러나 JDK에는 포함됩니다. 기본적으로 `getObject()` 메서드를 호출하면 `java.util.UUID`가 반환됩니다. - * `getObject(columnIndex, String.class)` 메서드를 사용하면 `UUID`를 `String` 형태로 읽거나 쓸 수 있습니다. - * `IPv4`와 `IPv6`는 JDBC 표준 타입이 아닙니다. 하지만 JDK에는 포함되어 있습니다. 기본적으로 `getObject()` 메서드는 `java.net.Inet4Address`와 `java.net.Inet6Address`를 반환합니다. - * `IPv4` 및 `IPv6`는 `getObject(columnIndex, String.class)` 메서드를 사용하여 `String`으로 읽고 쓸 수 있습니다. + * `UUID`는 JDBC 표준 타입이 아니지만 JDK에는 포함되어 있습니다. 기본적으로 `getObject()` 메서드는 `java.util.UUID`를 반환합니다. + * `getObject(columnIndex, String.class)` 메서드를 사용하면 `UUID`를 `String` 형식으로 읽거나 쓸 수 있습니다. + * `IPv4`와 `IPv6`는 JDBC 표준 타입이 아닙니다. 그러나 JDK에는 포함됩니다. 기본적으로 `getObject()` 메서드를 호출하면 `java.net.Inet4Address` 및 `java.net.Inet6Address`가 반환됩니다. + * `IPv4` 및 `IPv6`는 `getObject(columnIndex, String.class)` 메서드를 사용하여 `String`으로 읽거나 쓸 수 있습니다. ### 날짜, 시간 및 시간대 처리하기 \{#handling-dates-times-and-timezones\} @@ -613,9 +647,9 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60 (기본값(300초)보다 더 낮은 값으로 설정하는 것을 고려해 볼 수 있습니다) + * `net.ipv4.tcp_keepalive_time`: 60 (기본값인 300초보다 더 낮은 값으로 설정하는 것을 고려할 수 있습니다) - 2. 커널 매개변수를 수정한 후 다음 명령어를 실행하여 변경 내용을 적용하십시오: + 2. 커널 매개변수를 수정한 후 다음 명령을 실행하여 변경 사항을 적용하십시오: ```shell sudo sysctl -p @@ -639,10 +673,10 @@ import TabItem from '@theme/TabItem'; | 명명된 매개변수 | 지원됨 | 지원되지 않음(JDBC 사양에 정의되지 않음) | | `PreparedStatement`를 사용한 데이터 스트리밍 | 지원됨 | 지원되지 않음 | - * JDBC V2는 더 경량화되어 구현되었으며, 이 과정에서 일부 기능이 제거되었습니다. - * 스트리밍 데이터는 JDBC 사양과 Java 표준의 일부가 아니므로 JDBC V2에서는 지원되지 않습니다. - * JDBC V2는 명시적인 구성이 필요합니다. 기본 장애 조치(failover) 설정은 제공되지 않습니다. - * URL에 프로토콜을 명시해야 합니다. 포트 번호를 기반으로 한 암시적 프로토콜 감지는 허용되지 않습니다. + * JDBC V2는 보다 경량으로 설계되면서 일부 기능이 제거되었습니다. + * 스트리밍 데이터는 JDBC 사양이나 Java 표준에 포함되지 않으므로 JDBC V2에서는 지원되지 않습니다. + * JDBC V2는 명시적인 구성이 필요합니다. 장애 조치(failover)에 대한 기본 설정은 없습니다. + * URL에 프로토콜을 명시해야 합니다. 포트 번호만으로 프로토콜을 암시적으로 감지하는 동작은 허용되지 않습니다. ### 구성 변경 사항 \{#configuration-changes\} @@ -654,9 +688,9 @@ import TabItem from '@theme/TabItem'; 연결 속성은 다음과 같이 파싱됩니다: - * URL에서 속성을 먼저 파싱합니다. 이렇게 URL에서 추출된 속성은 다른 모든 속성보다 우선합니다. - * 드라이버 속성은 클라이언트로 전달되지 않습니다. - * 엔드포인트(호스트, 포트, 프로토콜)는 URL에서 추출됩니다. + * 먼저 URL에 지정된 속성을 파싱하며, 이 속성들은 다른 모든 속성보다 우선 적용됩니다. + * 드라이버 속성은 클라이언트에 전달되지 않습니다. + * 엔드포인트(호스트, 포트, 프로토콜)는 URL에서 파싱됩니다. Example: @@ -678,29 +712,29 @@ import TabItem from '@theme/TabItem'; **숫자형 타입(Numeric Types)** - | ClickHouse 타입 | V1과의 호환성 | JDBC 타입(V2) | Java 클래스(V2) | JDBC 타입(V1) | Java 클래스(V1) | - | ------------- | -------- | ----------- | -------------------- | ----------- | ----------------------------------------- | - | Int8 | ✅ | TINYINT | java.lang.Byte | TINYINT | java.lang.Byte | - | Int16 | ✅ | SMALLINT | java.lang.Short | SMALLINT | java.lang.Short | - | Int32 | ✅ | INTEGER | java.lang.Integer | INTEGER | java.lang.Integer | - | Int64 | ✅ | BIGINT | java.lang.Long | BIGINT | java.lang.Long | - | Int128 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | - | Int256 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | - | UInt8 | ❌ | OTHER | java.lang.Short | OTHER | com.clickhouse.data.value.UnsignedByte | - | UInt16 | ❌ | OTHER | java.lang.Integer | OTHER | com.clickhouse.data.value.UnsignedShort | - | UInt32 | ❌ | OTHER | java.lang.Long | OTHER | com.clickhouse.data.value.UnsignedInteger | - | UInt64 | ❌ | OTHER | java.math.BigInteger | OTHER | com.clickhouse.data.value.UnsignedLong | - | UInt128 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | - | UInt256 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | - | Float32 | ✅ | REAL | java.lang.Float | REAL | java.lang.Float | - | Float64 | ✅ | DOUBLE | java.lang.Double | DOUBLE | java.lang.Double | - | Decimal32 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | - | Decimal64 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | - | Decimal128 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | - | Decimal256 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | - | Bool | ✅ | BOOLEAN | java.lang.Boolean | BOOLEAN | java.lang.Boolean | - - * 가장 큰 차이점은 더 나은 이식성을 위해 부호 없는 타입이 Java 타입으로 매핑된다는 점입니다. + | ClickHouse 타입 | V1과의 호환 여부 | JDBC 타입 (V2) | Java 클래스 (V2) | JDBC 타입 (V1) | Java 클래스 (V1) | + | ------------- | ---------- | ------------ | -------------------- | ------------ | ----------------------------------------- | + | Int8 | ✅ | TINYINT | java.lang.Byte | TINYINT | java.lang.Byte | + | Int16 | ✅ | SMALLINT | java.lang.Short | SMALLINT | java.lang.Short | + | Int32 | ✅ | INTEGER | java.lang.Integer | INTEGER | java.lang.Integer | + | Int64 | ✅ | BIGINT | java.lang.Long | BIGINT | java.lang.Long | + | Int128 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | + | Int256 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | + | UInt8 | ❌ | OTHER | java.lang.Short | OTHER | com.clickhouse.data.value.UnsignedByte | + | UInt16 | ❌ | OTHER | java.lang.Integer | OTHER | com.clickhouse.data.value.UnsignedShort | + | UInt32 | ❌ | OTHER | java.lang.Long | OTHER | com.clickhouse.data.value.UnsignedInteger | + | UInt64 | ❌ | OTHER | java.math.BigInteger | OTHER | com.clickhouse.data.value.UnsignedLong | + | UInt128 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | + | UInt256 | ✅ | OTHER | java.math.BigInteger | OTHER | java.math.BigInteger | + | Float32 | ✅ | REAL | java.lang.Float | REAL | java.lang.Float | + | Float64 | ✅ | DOUBLE | java.lang.Double | DOUBLE | java.lang.Double | + | Decimal32 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | + | Decimal64 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | + | Decimal128 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | + | Decimal256 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | + | Bool | ✅ | BOOLEAN | java.lang.Boolean | BOOLEAN | java.lang.Boolean | + + * 가장 큰 차이점은 부호 없는 타입을 더 나은 이식성을 위해 Java 타입으로 매핑한다는 점입니다. **문자열 타입(String Types)** @@ -710,22 +744,22 @@ import TabItem from '@theme/TabItem'; | FixedString | ✅ | VARCHAR | java.lang.String | VARCHAR | java.lang.String | * `FixedString`은 두 버전 모두에서 값이 있는 그대로 읽힙니다. 예를 들어 `FixedString(10)` 컬럼에 `'John'`이 저장된 경우 `'John\0\0\0\0\0\0\0\0\0'`으로 읽힙니다. - * `PreparedStatement#setBytes`를 사용하면 값이 `unhex('')`로 변환된 다음 `String`으로 읽힙니다. - * 문자열은 UTF-8로 인코딩되어 저장됩니다. + * `PreparedStatement#setBytes`를 사용하면 값이 `unhex('')`로 변환된 후 `String`으로 처리됩니다. + * 문자열은 UTF-8 인코딩으로 저장됩니다. **날짜/시간 타입(Date/Time Types)** - | ClickHouse 타입 | V1과의 호환 여부 | JDBC 타입 (V2) | Java 클래스 (V2) | JDBC 타입 (V1) | Java 클래스 (V1) | - | ------------- | ---------- | ------------ | ------------------ | -------------- | ------------------------ | - | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | Time | ✅ | TIME | java.sql.Time | 새 타입 / 지원되지 않음 | 새 타입 / 지원되지 않음 | - | Time64 | ✅ | TIME | java.sql.Time | 새 타입 / 지원되지 않음 | 새 타입 / 지원되지 않음 | + | ClickHouse 타입 | V1과의 호환성 | JDBC 타입 (V2) | Java 클래스 (V2) | JDBC 타입 (V1) | Java 클래스 (V1) | + | ------------- | -------- | ------------ | ------------------ | ---------------- | ------------------------ | + | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | Time | ✅ | TIME | java.sql.Time | 새 타입 / 지원되지 않음 | 새 타입 / 지원되지 않음 | + | Time64 | ✅ | TIME | java.sql.Time | 새로운 타입 / 지원되지 않음 | 새로운 타입 / 지원되지 않음 | - * `Time` 및 `Time64`는 V2에서 새 데이터 타입으로만 지원됩니다. - * `DateTime` 및 `DateTime64`는 JDBC와의 호환성을 높이기 위해 `java.sql.Timestamp`에 매핑됩니다. + * `Time` 및 `Time64`는 V2에서 새로 추가된 타입으로만 지원됩니다. + * `DateTime` 및 `DateTime64`는 더 나은 JDBC 호환성을 위해 `java.sql.Timestamp`에 매핑됩니다. **Enum 유형** @@ -744,54 +778,54 @@ import TabItem from '@theme/TabItem'; | 맵 | ❌ | JAVA_OBJECT | java.util.Map | STRUCT | java.util.Map | | Nested | ❌ | ARRAY | java.sql.Array | STRUCT | java.sql.Struct | - * V2에서는 JDBC와의 호환성을 위해 `Array`가 기본적으로 `java.sql.Array`에 매핑됩니다. 또한 이는 반환된 배열 값에 대한 정보를 더 풍부하게 제공하여 타입 추론에 도움이 됩니다. - * V2에서는 `Array`가 `getResultSet()` 메서드를 구현하여 원래 배열과 동일한 내용을 담은 `java.sql.ResultSet`을 반환합니다. + * V2에서는 JDBC와의 호환성을 위해 `Array`가 기본적으로 `java.sql.Array`에 매핑됩니다. 또한 이렇게 하면 반환되는 배열 값에 대한 정보를 더 자세히 제공할 수 있어 타입 추론에 유용합니다. + * V2에서는 `Array`가 `getResultSet()` 메서드를 구현하여 원본 배열과 동일한 내용을 담은 `java.sql.ResultSet`을 반환합니다. * V1은 `Map`에 `STRUCT`를 사용하지만 항상 `java.util.Map` 타입의 객체를 반환합니다. V2에서는 `Map`을 `JAVA_OBJECT`로 매핑하여 이 문제를 해결합니다. - * V1은 `Tuple`에 대해 `STRUCT`를 사용하지만 항상 `List` 객체를 반환합니다. V2는 `Tuple`을 `OTHER`에 매핑하여 기본적으로 `Object[]`를 반환합니다. - * V2에서는 튜플을 작성하기 위해 `com.clickhouse.data.Tuple#Tuple`을 도입합니다. 이를 통해 값이 튜플인지 배열인지 여부를 더 쉽게 판별할 수 있습니다. - * `PreparedStatement#setBytes` 및 `ResultSet#getBytes`는 컬렉션 타입에는 사용할 수 없습니다. 이 메서드들은 바이너리 문자열을 처리하도록 설계된 메서드입니다. - * 일반적으로 Array 타입을 쓰고 읽을 때는 `java.sql.Array`를 사용합니다. JDBC 드라이버에서 이를 완전히 지원합니다. - * V2에서 `Nested`는 `Array`에 매핑되어 튜플 배열로 표현됩니다. - * V2는 `java.sql.Struct`를 부분적으로만 지원합니다. `java.sql.Struct`는 Array 타입과 매우 유사하고 key-value 쌍을 지원하지 않기 때문입니다. `Struct`는 `Tuple` 값을 쓰는 데 사용할 수 있습니다. + * V1은 `Tuple`에 대해 `STRUCT`를 사용하지만 항상 `List` 객체를 반환합니다. V2는 `Tuple`을 `OTHER`에 매핑하고 기본적으로 `Object[]`를 반환합니다. + * V2에서는 튜플을 쓰기 위해 `com.clickhouse.data.Tuple#Tuple`을 도입합니다. 이를 통해 값이 튜플인지 배열인지 여부를 더 쉽게 판별할 수 있습니다. + * `PreparedStatement#setBytes` 및 `ResultSet#getBytes`는 컬렉션 타입에는 사용할 수 없습니다. 이 메서드는 바이너리 문자열을 처리하도록 설계되었습니다. + * 일반적으로 Array 타입을 읽고 쓸 때는 `java.sql.Array`를 사용합니다. JDBC 드라이버는 이에 대해 완전한 지원을 제공합니다. + * V2에서 `Nested`는 `Array`에 매핑되며 튜플 배열 형태로 제공됩니다. + * V2에서는 `java.sql.Struct`를 부분적으로만 지원합니다. `java.sql.Struct`는 Array 타입과 매우 유사하며 key-value 쌍을 지원하지 않기 때문입니다. `Struct`는 `Tuple` 값을 쓰는 데 사용할 수 있습니다. **지리 타입(Geo Types)** - | ClickHouse 타입 | V1과 호환 | JDBC 타입(V2) | Java 클래스(V2) | JDBC 타입(V1) | Java 클래스(V1) | - | ------------- | ------ | ----------- | -------------- | ----------- | -------------- | - | Point | ✅ | OTHER | double[] | OTHER | double[] | - | Ring | ✅ | OTHER | double[][] | OTHER | double[][] | - | Polygon | ✅ | OTHER | double[][][] | OTHER | double[][][] | - | MultiPolygon | ✅ | OTHER | double[][][][] | OTHER | double[][][][] | + | ClickHouse 타입 | V1과의 호환성 | JDBC 타입(V2) | Java 클래스(V2) | JDBC 타입(V1) | Java 클래스(V1) | + | ------------- | -------- | ----------- | -------------- | ----------- | -------------- | + | Point | ✅ | OTHER | double[] | OTHER | double[] | + | Ring | ✅ | OTHER | double[][] | OTHER | double[][] | + | Polygon | ✅ | OTHER | double[][][] | OTHER | double[][][] | + | MultiPolygon | ✅ | OTHER | double[][][][] | OTHER | double[][][][] | **널 허용 및 LowCardinality 타입** - * `Nullable` 및 `LowCardinality`는 다른 데이터 타입을 감싸는 특수한 데이터 타입입니다. - * V2에서는 이러한 타입이 변경되지 않았습니다. + * `Nullable` 및 `LowCardinality`는 다른 타입을 감싸는 특수 타입입니다. + * V2에서는 이러한 타입에 변경 사항이 없습니다. **특수 유형** - | ClickHouse 타입 | V1과 호환됨 | JDBC 타입 (V2) | Java 클래스 (V2) | JDBC 타입 (V1) | Java 클래스 (V1) | - | ----------------------- | ------- | ------------ | --------------------- | ------------ | --------------------- | - | JSON | ❌ | OTHER | java.lang.String | 지원되지 않음 | 지원되지 않음 | - | AggregateFunction | ✅ | OTHER | (이진 표현) | OTHER | (이진 표현) | - | SimpleAggregateFunction | ✅ | (래핑된 타입) | (래핑된 클래스) | (래핑된 타입) | (래핑된 클래스) | - | UUID | ✅ | OTHER | java.util.UUID | VARCHAR | java.util.UUID | - | IPv4 | ✅ | OTHER | java.net.Inet4Address | VARCHAR | java.net.Inet4Address | - | IPv6 | ✅ | OTHER | java.net.Inet6Address | VARCHAR | java.net.Inet6Address | - | Dynamic | ❌ | OTHER | java.Object | 지원되지 않음 | 지원되지 않음 | - | Variant | ❌ | OTHER | java.Object | 지원되지 않음 | 지원되지 않음 | - - * V1은 `UUID`에 `VARCHAR`를 사용하지만, 항상 `java.util.UUID` 객체를 반환합니다. V2에서는 `UUID`를 `OTHER`로 매핑하여 이 문제를 해결하고 `java.util.UUID` 객체를 반환합니다. + | ClickHouse 타입 | V1과의 호환성 | JDBC 타입 (V2) | Java 클래스 (V2) | JDBC 타입 (V1) | Java 클래스 (V1) | + | ----------------------- | -------- | ------------ | --------------------- | ------------ | --------------------- | + | JSON | ❌ | OTHER | java.lang.String | 지원되지 않음 | 지원되지 않음 | + | AggregateFunction | ✅ | OTHER | (이진 표현) | OTHER | (이진 표현) | + | SimpleAggregateFunction | ✅ | (래핑된 타입) | (래핑된 클래스) | (래핑된 타입) | (래핑된 클래스) | + | UUID | ✅ | OTHER | java.util.UUID | VARCHAR | java.util.UUID | + | IPv4 | ✅ | OTHER | java.net.Inet4Address | VARCHAR | java.net.Inet4Address | + | IPv6 | ✅ | OTHER | java.net.Inet6Address | VARCHAR | java.net.Inet6Address | + | Dynamic | ❌ | OTHER | java.Object | 지원되지 않음 | 지원되지 않음 | + | Variant | ❌ | OTHER | java.Object | 지원되지 않음 | 지원되지 않음 | + + * V1은 `UUID`에 대해 JDBC 타입으로 `VARCHAR`를 사용하지만 항상 `java.util.UUID` 객체를 반환합니다. V2에서는 `UUID`를 `OTHER`로 매핑하여 이를 수정하고 `java.util.UUID` 객체를 반환합니다. * V1은 `IPv4` 및 `IPv6`에 `VARCHAR`를 사용하지만, 항상 `java.net.Inet4Address` 및 `java.net.Inet6Address` 객체를 반환합니다. V2에서는 이를 수정하여 `IPv4` 및 `IPv6`를 `OTHER`로 매핑하고 `java.net.Inet4Address` 및 `java.net.Inet6Address` 객체를 반환합니다. * `Dynamic`과 `Variant`는 V2에서 새로 추가된 타입입니다. V1에서는 지원되지 않습니다. * `JSON`은 `Dynamic` 타입을 기반으로 합니다. 따라서 V2에서만 지원됩니다. - * IPv4 및 IPv6 값은 `getBytes(columnIndex)` 메서드를 사용하여 `byte[]`로 읽을 수 있습니다. 하지만 이러한 타입에 대해서는 전용 클래스를 사용하는 것이 권장됩니다. - * V2에서는 IP 주소를 숫자 값으로 읽는 기능을 지원하지 않습니다. IP 주소를 숫자 값으로 변환하는 작업은 InetAddress 클래스에서 처리하는 편이 더 바람직하기 때문입니다. + * IPv4 및 IPv6 값은 `getBytes(columnIndex)` 메서드를 사용하여 `byte[]`로 읽을 수 있습니다. 그러나 이러한 타입에는 전용 클래스를 사용하는 것이 권장됩니다. + * V2에서는 IP 주소를 수치 값으로 읽는 기능을 지원하지 않습니다. IP 주소를 수치 값으로 변환하는 기능은 InetAddress 클래스에서 구현하는 편이 더 적절하기 때문입니다. ### 데이터베이스 메타데이터 변경 사항 \{#database-metadata-changes\} - * V2에서는 데이터베이스 이름을 지정할 때 `Schema`라는 용어만 사용합니다. `Catalog`라는 용어는 향후 사용을 위해 예약되어 있습니다. - * V2는 `DatabaseMetaData.supportsTransactions()` 및 `DatabaseMetaData.supportsSavepoints()`에 대해 `false`를 반환합니다. 이는 향후 개발에서 변경될 예정입니다. + * V2에서는 데이터베이스를 지칭할 때 `Schema`라는 용어만 사용합니다. `Catalog`라는 용어는 향후 사용을 위해 예약되어 있습니다. + * V2는 `DatabaseMetaData.supportsTransactions()` 및 `DatabaseMetaData.supportsSavepoints()`에 대해 `false`를 반환합니다. 이는 향후 개발 과정에서 변경될 예정입니다. @@ -817,7 +851,7 @@ import TabItem from '@theme/TabItem'; com.clickhouse clickhouse-jdbc 0.7.2 - + shaded-all ``` @@ -826,7 +860,7 @@ import TabItem from '@theme/TabItem'; ```kotlin // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // 모든 의존성이 포함된 uber JAR를 사용하되, 더 작은 JAR가 필요하면 classifier를 http로 변경하십시오 + // 모든 의존성이 포함된 uber JAR를 사용하고, 더 작은 JAR가 필요하면 classifier를 http로 변경하십시오 implementation("com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all") ``` @@ -834,7 +868,7 @@ import TabItem from '@theme/TabItem'; ```groovy // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // 모든 의존성이 포함된 uber JAR를 사용하되, 더 작은 JAR가 필요하면 classifier를 http로 변경하십시오 + // 모든 의존성이 포함된 uber JAR를 사용하고, 더 작은 JAR가 필요하면 classifier를 http로 변경하십시오 implementation 'com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all' ``` @@ -875,22 +909,22 @@ import TabItem from '@theme/TabItem'; **URL 구문**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, 예를 들면: - * `jdbc:ch://localhost`는 `jdbc:clickhouse:http://localhost:8123`와 같습니다. - * `jdbc:ch:https://localhost`는 `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT`과 동일합니다. + * `jdbc:ch://localhost`는 `jdbc:clickhouse:http://localhost:8123`와 동일합니다. + * `jdbc:ch:https://localhost`는 `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT`과 동일합니다 * `jdbc:ch:grpc://localhost`는 `jdbc:clickhouse:grpc://localhost:9100`와 동일합니다. **연결 속성(Connection Properties)**: - | 속성 | 기본값 | 설명 | - | -------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `continueBatchOnError` | `false` | 오류 발생 시 배치 처리를 계속할지 여부 | - | `createDatabaseIfNotExist` | `false` | 데이터베이스가 존재하지 않으면 생성할지 여부 | - | `custom_http_headers` | | 쉼표로 구분된 사용자 정의 HTTP 헤더. 예: `User-Agent=client1,X-Gateway-Id=123` | - | `custom_http_params` | | 쉼표로 구분된 사용자 정의 HTTP 쿼리 매개변수입니다. 예: `extremes=0,max_result_rows=100` | - | `nullAsDefault` | `0` | `0` - null 값을 있는 그대로 처리하며, null을 널을 허용하지 않는 컬럼에 삽입할 경우 예외를 발생시킵니다; `1` - null 값을 있는 그대로 처리하고 삽입 시 null 체크를 비활성화합니다; `2` - 쿼리와 삽입 모두에서 null을 해당 데이터 타입의 기본값으로 대체합니다 | - | `jdbcCompliance` | `true` | 표준 동기식 UPDATE/DELETE SQL 문과 가상 트랜잭션(fake transaction)을 지원할지 여부 | - | `typeMappings` | | ClickHouse 데이터 타입과 Java 클래스 간의 매핑을 사용자 지정할 수 있으며, 이는 [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) 및 [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-) 두 메서드의 반환 결과에 모두 영향을 줍니다. 예: `UInt128=java.lang.String,UInt256=java.lang.String` | - | `wrapperObject` | `false` | [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-)가 Array / Tuple에 대해 java.sql.Array / java.sql.Struct를 반환하도록 할지 여부. | + | 속성 | 기본값 | 설명 | + | -------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `continueBatchOnError` | `false` | 오류 발생 시 배치 작업을 계속 수행할지 여부 | + | `createDatabaseIfNotExist` | `false` | 데이터베이스가 없으면 새로 생성할지 여부 | + | `custom_http_headers` | | 사용자 정의 HTTP 헤더를 쉼표로 구분해 지정합니다. 예: `User-Agent=client1,X-Gateway-Id=123` | + | `custom_http_params` | | 쉼표로 구분된 사용자 정의 HTTP 쿼리 매개변수. 예: `extremes=0,max_result_rows=100` | + | `nullAsDefault` | `0` | `0` - null 값을 그대로 처리하고, null을 널을 허용하지 않는 컬럼에 삽입하려 하면 예외를 발생시킵니다; `1` - null 값을 그대로 처리하고, 삽입 시 null 값에 대한 검사를 비활성화합니다; `2` - 쿼리와 삽입 작업 모두에서 null을 해당 데이터 타입의 기본값으로 대체합니다 | + | `jdbcCompliance` | `true` | 표준 동기식 UPDATE/DELETE SQL 구문과 가상 트랜잭션(fake transaction) 지원 여부 | + | `typeMappings` | | ClickHouse 데이터 타입과 Java 클래스 간의 매핑을 사용자 정의할 수 있으며, 이렇게 설정하면 [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) 및 [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-) 두 메서드가 반환하는 결과에 모두 영향을 미칩니다. 예를 들어: `UInt128=java.lang.String,UInt256=java.lang.String` | + | `wrapperObject` | `false` | [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-)가 Array / Tuple 타입에 대해 java.sql.Array / java.sql.Struct를 반환할지 여부. | 참고: 자세한 내용은 [JDBC 관련 설정](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java)을 참조하세요. @@ -902,8 +936,8 @@ import TabItem from '@theme/TabItem'; * AggregatedFunction - :warning: `SELECT * FROM table ...` 구문을 지원하지 않습니다 * Decimal - 일관성을 위해 21.9+ 버전에서 `SET output_format_decimal_trailing_zeros=1`을(를) 설정합니다 - * Enum - 문자열과 정수형 둘 다로 취급될 수 있습니다 - * UInt64 - client-v1에서는 `long`으로 매핑됩니다 + * Enum - 문자열과 정수형 모두로 취급될 수 있습니다 + * UInt64 - client-v1에서 `long`에 매핑됩니다 ::: ## 연결 생성하기 \{#v07-creating-connection\} @@ -968,7 +1002,7 @@ import TabItem from '@theme/TabItem'; } ``` - * [input 함수 문서](/sql-reference/table-functions/input/)를 가능한 한 참고하십시오 + * [input 함수 문서](/sql-reference/table-functions/input/)를 가능한 한 활용하십시오 ### 플레이스홀더를 사용한 삽입 \{#insert-with-placeholders\} @@ -1078,16 +1112,16 @@ import TabItem from '@theme/TabItem'; ## SSL 속성 \{#ssl-properties\} - | 이름 | 기본값 | 허용 가능한 값 | 설명 | - | -------------------- | ------ | ------------ | --------------------------------------------------- | - | `ssl` | false | true, false | 연결에 SSL/TLS를 사용할지 여부 | - | `sslmode` | strict | strict, none | SSL/TLS 인증서를 검증할지 여부 | - | `sslrootcert` | | | SSL/TLS 루트 인증서 파일 경로 | - | `sslcert` | | | SSL/TLS 인증서 파일 경로 | - | `sslkey` | | | PKCS#8 형식의 RSA 개인 키 | - | `key_store_type` | | JKS, PKCS12 | `KeyStore`/`TrustStore` 파일의 타입 또는 형식을 지정합니다. | - | `trust_store` | | | `TrustStore` 파일 경로 | - | `key_store_password` | | | `KeyStore` 구성에서 지정된 `KeyStore` 파일에 액세스하는 데 필요한 비밀번호 | + | 이름 | 기본값 | 허용 가능한 값 | 설명 | + | -------------------- | ------ | ------------ | -------------------------------------------------- | + | `ssl` | false | true, false | 연결에 SSL/TLS를 사용할지 여부 | + | `sslmode` | strict | strict, none | SSL/TLS 인증서를 검증할지 여부 | + | `sslrootcert` | | | SSL/TLS 루트 인증서 파일 경로 | + | `sslcert` | | | SSL/TLS 인증서 파일 경로 | + | `sslkey` | | | PKCS#8 형식의 RSA 개인 키 | + | `key_store_type` | | JKS, PKCS12 | `KeyStore`/`TrustStore` 파일의 유형 또는 형식을 지정합니다. | + | `trust_store` | | | `TrustStore` 파일의 경로 | + | `key_store_password` | | | `KeyStore` 구성에서 지정한 `KeyStore` 파일에 접근하는 데 필요한 비밀번호 | 이러한 속성을 사용하면 Java 애플리케이션이 암호화된 연결을 통해 ClickHouse 서버와 통신하여 전송 중 데이터 보안이 강화됩니다. @@ -1142,9 +1176,9 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60 (기본값(300초)보다 낮게 설정하는 것을 고려할 수 있습니다) + * `net.ipv4.tcp_keepalive_time`: 60 (기본값인 300초보다 더 낮게 설정하는 것을 고려할 수 있습니다) - 2. 커널 매개변수를 수정한 후 다음 명령을 실행하여 변경 사항을 적용하십시오: + 2. 커널 매개변수를 수정한 후, 다음 명령을 실행하여 변경 사항을 적용하십시오: ```shell sudo sysctl -p diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/misc/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/misc/index.md index a05770451b3..aed798ff63c 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/misc/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/misc/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/misc -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['시각적 인터페이스', 'GUI', '프록시', '서드파티 통합'] title: '도구' description: '도구 섹션 랜딩 페이지' doc_type: 'landing-page' diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md index e21d8330844..e5e3eefcaab 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -38,8 +38,6 @@ ClickHouse 테이블 가져오기와 쿼리 푸시다운을 시작하려면 [튜 이 표는 스케일링 팩터 1로 적재된 일반 PostgreSQL 테이블과 ClickHouse에 연결된 pg_clickhouse 간의 [TPC-H] 쿼리 성능을 비교합니다. ✔︎는 완전한 푸시다운을 나타내고, 대시(-)는 1분 후 쿼리가 취소되었음을 나타냅니다. 모든 테스트는 36GB 메모리를 장착한 MacBook Pro M4 Max에서 실행되었습니다. -{/* cd dev/tpch && make ch && make pg && make run */ } - | 쿼리 | PostgreSQL | pg_clickhouse | 푸시다운 | | ------: | ---------: | ----------------: | :--: | | [쿼리 1] | 4693 ms | 268 ms | ✔︎ | @@ -52,7 +50,7 @@ ClickHouse 테이블 가져오기와 쿼리 푸시다운을 시작하려면 [튜 | [쿼리 8] | 342 ms | 156 ms | ✔︎ | | [쿼리 9] | 3094 ms | 298 ms | ✔︎ | | [쿼리 10] | 581 ms | 197 ms | ✔︎ | -| [쿼리 11] | 212 ms | 24 ms | ✔︎ | +| [쿼리 11] | 212 ms | 24 ms | | | [쿼리 12] | 1116 ms | 84 ms | ✔︎ | | [쿼리 13] | 958 ms | 1368 ms | | | [쿼리 14] | 181 ms | 73 ms | ✔︎ | @@ -65,7 +63,6 @@ ClickHouse 테이블 가져오기와 쿼리 푸시다운을 시작하려면 [튜 | [쿼리 21] | 1349 ms | 4434 ms | | | [쿼리 22] | 258 ms | 1415 ms | | - ### 소스 코드에서 컴파일하기 \{#compile-from-source\} #### 일반 Unix \{#general-unix\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md index a276847fd9b..43f48659a9e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -350,7 +350,7 @@ DROP FOREIGN TABLE uact CASCADE; ## DML SQL Reference \{#dml-sql-reference\} -아래 SQL [DML] 구문에서는 pg_clickhouse를 사용합니다. 예제는 [make-logs.sql]로 생성되는 다음 ClickHouse 테이블을 기반으로 합니다. +아래 SQL [DML] 구문에서는 pg_clickhouse를 사용합니다. 예제는 다음 ClickHouse 테이블을 기반으로 합니다. ```sql CREATE TABLE logs ( @@ -561,6 +561,14 @@ try=# EXECUTE avg_durations_between_dates('2025-12-09', '2025-12-13'); (5 rows) ``` +:::warning +매개변수화된 실행은 [근본적인 버그]가 [수정됨]으로 표시된 25.8 버전보다 이전 ClickHouse에서는 +[http 드라이버](#create-server)가 DateTime 시간대를 올바르게 변환하지 못하게 합니다. +PostgreSQL이 `PREPARE`를 사용하지 않더라도 매개변수화된 쿼리 플랜을 사용할 때가 있다는 점에 +유의해야 합니다. 시간대 변환의 정확성이 필요한 쿼리에서 25.8 이상으로 업그레이드할 수 없는 +경우에는 대신 [binary 드라이버](#create-server)를 사용하십시오. +::: + pg_clickhouse는 집계 연산을 평소와 같이 push down 하며, 이는 [EXPLAIN](#explain) verbose 출력에서 확인할 수 있습니다: ```pgsql @@ -655,13 +663,14 @@ LOAD SET pg_clickhouse.session_settings = 'join_use_nulls 1, final 1'; ``` -기본값은 `join_use_nulls 1`입니다. 빈 문자열로 설정하면 ClickHouse 서버의 설정을 사용합니다. +기본값은 `join_use_nulls 1`입니다. 빈 문자열로 설정하면 ClickHouse 서버의 설정으로 되돌아갑니다. ```sql SET pg_clickhouse.session_settings = ''; ``` -이 구문은 각 항목이 쉼표로 구분되고, 각 키와 값이 한 칸 이상의 공백으로 구분되는 키/값 쌍 목록입니다. 키는 [ClickHouse settings]와 일치해야 합니다. 값에 포함된 공백, 쉼표, 백슬래시는 역슬래시로 이스케이프합니다: +이 구문은 각 항목이 쉼표로 구분되고, 각 키와 값이 한 칸 이상의 공백으로 구분되는 키/값 쌍 목록입니다. 키는 [ClickHouse settings]와 일치해야 합니다. 값에 포함된 공백, +쉼표, 백슬래시는 역슬래시로 이스케이프합니다: ```sql SET pg_clickhouse.session_settings = 'join_algorithm grace_hash\,hash'; @@ -674,7 +683,7 @@ SET pg_clickhouse.session_settings = 'join_algorithm grace_hash\,hash'; SET pg_clickhouse.session_settings = $$join_algorithm 'grace_hash,hash'$$; ``` -가독성을 중시하고 여러 설정을 지정해야 한다면 다음과 같이 여러 줄로 작성하십시오: +가독성을 중요시하고 많은 설정을 지정해야 한다면, 다음과 같이 여러 줄로 나누어 작성하십시오: ```sql SET pg_clickhouse.session_settings TO $$ @@ -695,7 +704,13 @@ SET pg_clickhouse.session_settings TO $$ $$; ``` -pg_clickhouse는 설정을 검증하지 않고, 모든 쿼리에 대해 설정을 그대로 ClickHouse에 전달합니다. 따라서 각 ClickHouse 버전에 존재하는 모든 설정을 지원합니다. +일부 설정은 pg_clickhouse 자체의 동작을 방해하는 경우 무시됩니다. 이에 해당하는 설정은 다음과 같습니다: + +* `date_time_output_format`: http 드라이버에서는 이 값이 "iso"로 설정되어야 합니다 +* `format_tsv_null_representation`: http 드라이버에서는 기본값이어야 합니다 +* `output_format_tsv_crlf_end_of_line`: http 드라이버에서는 기본값이어야 합니다 + +Otherwise, pg_clickhouse는 설정을 검증하지 않고, 모든 쿼리에 대해 설정을 그대로 ClickHouse에 전달합니다. 따라서 각 ClickHouse 버전에 존재하는 모든 설정을 지원합니다. pg_clickhouse는 `pg_clickhouse.session_settings`를 설정하기 전에 로드되어야 합니다. 이를 위해 [shared library preloading]을 사용하거나, 확장에 포함된 객체 중 하나를 사용하여 로드되도록 하면 됩니다. @@ -751,18 +766,16 @@ shared_preload_libraries = pg_clickhouse 메모리를 절약하고 세션마다 발생하는 로드 오버헤드를 줄이는 데 유용하지만, 라이브러리를 업데이트할 때는 클러스터를 재시작해야 합니다. -## FUNCTION 및 연산자 참조 \{#function-and-operator-reference\} - -### 데이터 타입 \{#data-types\} +## 데이터 타입 \{#data-types\} -pg_clickhouse는 다음 ClickHouse 데이터 타입을 PostgreSQL 데이터 타입으로 매핑합니다. +pg_clickhouse는 다음 ClickHouse 데이터 타입을 PostgreSQL 데이터 타입으로 매핑합니다. [IMPORT FOREIGN SCHEMA](#import-foreign-schema)는 컬럼을 가져올 때 PostgreSQL 컬럼의 첫 번째 타입을 사용하며, 추가 타입은 [CREATE FOREIGN TABLE](#create-foreign-table) SQL 문에서 사용할 수 있습니다: | ClickHouse | PostgreSQL | 비고 | -| -----------|------------------|-------------------------------| +|------------|------------------|-------------------------------| | Bool | boolean | | | Date | date | | | Date32 | date | | -| DateTime | timestamp | | +| DateTime | timestamptz | | | Decimal | numeric | | | Float32 | real | | | Float64 | double precision | | @@ -773,13 +786,132 @@ pg_clickhouse는 다음 ClickHouse 데이터 타입을 PostgreSQL 데이터 타 | Int64 | bigint | | | Int8 | smallint | | | JSON | jsonb | HTTP 엔진에서만 사용 | -| String | text | | +| String | text, bytea | | | UInt16 | integer | | | UInt32 | bigint | | | UInt64 | bigint | BIGINT 최대값을 초과하는 값에서 오류 발생 | | UInt8 | smallint | | | UUID | uuid | | +추가 비고와 세부 사항은 아래를 참조하십시오. + +### BYTEA \{#bytea\} + +ClickHouse는 PostgreSQL의 [BYTEA] 타입에 해당하는 타입을 제공하지 않지만, +[String] 타입에 임의의 바이트를 저장할 수 있습니다. 일반적으로 ClickHouse 문자열은 +PostgreSQL의 [TEXT]에 매핑되어야 하지만, 바이너리 데이터를 사용하는 경우 [BYTEA]에 +매핑하십시오. 예시: + +```sql +-- Create clickHouse table with String columns. +SELECT clickhouse_raw_query($$ + CREATE TABLE bytes ( + c1 Int8, c2 String, c3 String + ) ENGINE = MergeTree ORDER BY (c1); +$$); + +-- Create foreign table with BYTEA columns. +CREATE FOREIGN TABLE bytes ( + c1 int, + c2 BYTEA, + c3 BYTEA +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Insert binary data into the foreign table. +INSERT INTO bytes +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the results. +SELECT * FROM bytes; +``` + +마지막 `SELECT` 쿼리의 출력 결과는 다음과 같습니다: + +```pgsql + c1 | c2 | c3 +----+------------------------------------------------------------+------------------------------------ + 1 | \x1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | \xae3b28cde02542f81acce8783245430d + 2 | \x5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | \x23e7c6cacb8383f878ad093b0027d72b + 3 | \x53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | \x7e969132fc656148b97b6a2ee8bc83c1 + 4 | \x4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | \x8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +ClickHouse 컬럼에 nul 바이트가 포함된 경우, [TEXT] 컬럼을 사용하는 외부 테이블은 올바른 값을 출력하지 않으니 주의하십시오: + +```sql +-- Create foreign table with TEXT columns. +CREATE FOREIGN TABLE texts ( + c1 int, + c2 TEXT, + c3 TEXT +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Encode binary data as hex. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +출력 결과: + +```pgsql + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b + 3 | 53ac2c1fa83c8f64603fe9568d883331 | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +2번째와 3번째 행에는 잘린 값이 포함되어 있습니다. 이는 PostgreSQL이 nul 종료 문자열(nul-terminated string)을 사용하며, 문자열 내에 nul을 지원하지 않기 때문입니다. + +[TEXT] 컬럼에 이진 값을 삽입하면 성공적으로 처리되며 예상대로 작동합니다: + +```sql +-- Insert via text columns: +TRUNCATE texts; +INSERT INTO texts +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the data. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +텍스트 컬럼은 올바르게 표시됩니다: + +```pgdsql + + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b0027d72b + 3 | 53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +하지만 이를 [BYTEA]로 읽을 때는 그렇지 않습니다: + +```pgsql +# SELECT * FROM bytes; + c1 | c2 | c3 +----+------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------ + 1 | \x5c783162663766306363383231643331313738363136613535613865306335323637373733353339376364646536663431353361396664336437 | \x5c786165336232386364653032353432663831616363653837383332343534333064 + 2 | \x5c783566366539653132636438353932373132653633383031366634623161326537333233306565343064623439386330663062316463383431 | \x5c783233653763366361636238333833663837386164303933623030323764373262 + 3 | \x5c783533616332633166613833633866363436303366653935363864383833333331303037643632383164653333306134623565373238663965 | \x5c783765393639313332666336353631343862393762366132656538626338336331 + 4 | \x5c783465336332653463623735343261343531373361386461633933396464633462633735323032653334326562633736396230663564613266 | \x5c783865663330663434633635343830643132623635306162366232623034323435 +(4 rows) +``` + +:::tip +원칙적으로 인코딩된 문자열에는 [TEXT] 컬럼만 사용하고, 이진 데이터에는 [BYTEA] 컬럼만 사용하며, 두 유형을 절대 서로 바꿔 사용하지 않습니다. +::: + + +## FUNCTION 및 연산자 참조 \{#function-and-operator-reference\} + ### 함수 \{#functions\} 이 함수들은 ClickHouse 데이터베이스에 대한 쿼리 인터페이스를 제공합니다. @@ -858,6 +990,7 @@ ClickHouse 외부 테이블을 쿼리하기 위해 조건절(`HAVING`, `WHERE`) * `btrim`: [trimBoth](https://clickhouse.com/docs/sql-reference/functions/string-functions#trimboth) * `strpos`: [position](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#position) * `regexp_like`: [match](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#match) +* `md5`: [MD5](https://clickhouse.com/docs/sql-reference/functions/hash-functions#MD5) ### 사용자 정의 함수 \{#custom-functions\} @@ -1019,9 +1152,25 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL 문서: 달러 인용 문자열 상수" [library preloading]: https://www.postgresql.org/docs/18/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD + "PostgreSQL 문서: 공유 라이브러리 사전 로드" -"PostgreSQL 문서: 공유 라이브러리 사전 로드 - [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES +[PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "PostgreSQL 문서: PREPARE 관련 참고 사항" - [query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse - "ClickHouse 문서: ClickHouse에서 prepared statement의 대안" \ No newline at end of file + +[query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse + "ClickHouse 문서: ClickHouse에서 prepared statement의 대안" + +[underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 + "ClickHouse/ClickHouse#85847 multipart form의 일부 쿼리에서 settings를 읽지 않는 문제" + +[fixed]: https://github.com/ClickHouse/ClickHouse/pull/85570 + "ClickHouse/ClickHouse#85570 multipart를 사용하는 HTTP 수정" + +[BYTEA]: https://www.postgresql.org/docs/current/datatype-binary.html + "PostgreSQL 문서: 이진 데이터 타입" + +[String]: https://clickhouse.com/docs/sql-reference/data-types/string + "ClickHouse 문서: String" + +[TEXT]: https://www.postgresql.org/docs/current/datatype-character.html + "PostgreSQL 문서: 문자 데이터 타입" \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md index cd9962bf40d..5b7153bee77 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md @@ -224,54 +224,54 @@ taxi=# \det+ taxi.* ```pgsql taxi=# \d taxi.trips - Foreign table "taxi.trips" - Column | Type | Collation | Nullable | Default | FDW options ------------------------+-----------------------------+-----------+----------+---------+------------- - trip_id | bigint | | not null | | - vendor_id | text | | not null | | - pickup_date | date | | not null | | - pickup_datetime | timestamp without time zone | | not null | | - dropoff_date | date | | not null | | - dropoff_datetime | timestamp without time zone | | not null | | - store_and_fwd_flag | smallint | | not null | | - rate_code_id | smallint | | not null | | - pickup_longitude | double precision | | not null | | - pickup_latitude | double precision | | not null | | - dropoff_longitude | double precision | | not null | | - dropoff_latitude | double precision | | not null | | - passenger_count | smallint | | not null | | - trip_distance | double precision | | not null | | - fare_amount | numeric(10,2) | | not null | | - extra | numeric(10,2) | | not null | | - mta_tax | numeric(10,2) | | not null | | - tip_amount | numeric(10,2) | | not null | | - tolls_amount | numeric(10,2) | | not null | | - ehail_fee | numeric(10,2) | | not null | | - improvement_surcharge | numeric(10,2) | | not null | | - total_amount | numeric(10,2) | | not null | | - payment_type | text | | not null | | - trip_type | smallint | | not null | | - pickup | character varying(25) | | not null | | - dropoff | character varying(25) | | not null | | - cab_type | text | | not null | | - pickup_nyct2010_gid | smallint | | not null | | - pickup_ctlabel | real | | not null | | - pickup_borocode | smallint | | not null | | - pickup_ct2010 | text | | not null | | - pickup_boroct2010 | text | | not null | | - pickup_cdeligibil | text | | not null | | - pickup_ntacode | character varying(4) | | not null | | - pickup_ntaname | text | | not null | | - pickup_puma | integer | | not null | | - dropoff_nyct2010_gid | smallint | | not null | | - dropoff_ctlabel | real | | not null | | - dropoff_borocode | smallint | | not null | | - dropoff_ct2010 | text | | not null | | - dropoff_boroct2010 | text | | not null | | - dropoff_cdeligibil | text | | not null | | - dropoff_ntacode | character varying(4) | | not null | | - dropoff_ntaname | text | | not null | | - dropoff_puma | integer | | not null | | + Foreign table "taxi.trips" + Column | Type | Collation | Nullable | Default | FDW options +-----------------------+--------------------------+-----------+----------+---------+------------- + trip_id | bigint | | not null | | + vendor_id | text | | not null | | + pickup_date | date | | not null | | + pickup_datetime | timestamp with time zone | | not null | | + dropoff_date | date | | not null | | + dropoff_datetime | timestamp with time zone | | not null | | + store_and_fwd_flag | smallint | | not null | | + rate_code_id | smallint | | not null | | + pickup_longitude | double precision | | not null | | + pickup_latitude | double precision | | not null | | + dropoff_longitude | double precision | | not null | | + dropoff_latitude | double precision | | not null | | + passenger_count | smallint | | not null | | + trip_distance | double precision | | not null | | + fare_amount | numeric(10,2) | | not null | | + extra | numeric(10,2) | | not null | | + mta_tax | numeric(10,2) | | not null | | + tip_amount | numeric(10,2) | | not null | | + tolls_amount | numeric(10,2) | | not null | | + ehail_fee | numeric(10,2) | | not null | | + improvement_surcharge | numeric(10,2) | | not null | | + total_amount | numeric(10,2) | | not null | | + payment_type | text | | not null | | + trip_type | smallint | | not null | | + pickup | character varying(25) | | not null | | + dropoff | character varying(25) | | not null | | + cab_type | text | | not null | | + pickup_nyct2010_gid | smallint | | not null | | + pickup_ctlabel | real | | not null | | + pickup_borocode | smallint | | not null | | + pickup_ct2010 | text | | not null | | + pickup_boroct2010 | text | | not null | | + pickup_cdeligibil | text | | not null | | + pickup_ntacode | character varying(4) | | not null | | + pickup_ntaname | text | | not null | | + pickup_puma | integer | | not null | | + dropoff_nyct2010_gid | smallint | | not null | | + dropoff_ctlabel | real | | not null | | + dropoff_borocode | smallint | | not null | | + dropoff_ct2010 | text | | not null | | + dropoff_boroct2010 | text | | not null | | + dropoff_cdeligibil | text | | not null | | + dropoff_ntacode | character varying(4) | | not null | | + dropoff_ntaname | text | | not null | | + dropoff_puma | integer | | not null | | Server: taxi_srv FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') ``` @@ -400,7 +400,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 45.477 ms ``` -* 각 동네별로 하루 중 시(hour) 단위로 나눈 픽업 횟수를 표시합니다: +* 각 동네별로 시간대별 픽업 건수를 표시합니다: ```pgsql taxi=# SELECT @@ -424,9 +424,12 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 36.895 ms ``` -* LaGuardia 또는 JFK 공항행 택시 운행을 조회합니다: +* 뉴욕 시간대로 표시 시간대를 설정하고 LaGuardia 또는 JFK + 공항행 택시 운행을 조회합니다: ```pgsql + taxi=# SET timezone = 'America/New_York'; + SET taxi=# SELECT pickup_datetime, dropoff_datetime, @@ -444,13 +447,13 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') WHERE dropoff_nyct2010_gid IN (132, 138) ORDER BY pickup_datetime LIMIT 5; - pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour - ---------------------+---------------------+--------------+---------------------+----------------------+--------------+------+-----+------ - 2015-07-01 00:04:14 | 2015-07-01 00:15:29 | 13.30 | -34 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:09:42 | 2015-07-01 00:12:55 | 6.80 | 50 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:23:04 | 2015-07-01 00:24:39 | 4.80 | -125 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:27:51 | 2015-07-01 00:39:02 | 14.72 | -101 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:32:03 | 2015-07-01 00:55:39 | 39.34 | 48 | 138 | LGA | 2015 | 1 | 0 + pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour + ------------------------+------------------------+--------------+---------------------+----------------------+--------------+------+-----+------ + 2015-06-30 20:04:14-04 | 2015-06-30 20:15:29-04 | 13.30 | -34 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:09:42-04 | 2015-06-30 20:12:55-04 | 6.80 | 50 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:23:04-04 | 2015-06-30 20:24:39-04 | 4.80 | -125 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:27:51-04 | 2015-06-30 20:39:02-04 | 14.72 | -101 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:32:03-04 | 2015-06-30 20:55:39-04 | 39.34 | 48 | 138 | LGA | 2015 | 30 | 20 (5 rows) Time: 17.450 ms @@ -498,7 +501,7 @@ ClickHouse 서비스의 테이블과 연관된 딕셔너리를 생성합니다. `LIFETIME`을 0으로 설정하면 자동 업데이트가 비활성화되어 S3 버킷으로의 불필요한 트래픽을 방지합니다. 다른 상황에서는 이 값을 다르게 구성할 수 있습니다. 자세한 내용은 - [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)을 + [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)을 참고하십시오. ::: @@ -631,7 +634,7 @@ ClickHouse 서비스의 테이블과 연관된 딕셔너리를 생성합니다. [EXPLAIN]: https://www.postgresql.org/docs/current/sql-explain.html "SQL 명령어: EXPLAIN" -[dictionary]: /sql-reference/dictionaries/index.md +[dictionary]: /sql-reference/statements/create/dictionary [PGXN]: https://pgxn.org/dist/pg_clickhouse "PGXN의 pg_clickhouse" @@ -644,5 +647,5 @@ ClickHouse 서비스의 테이블과 연관된 딕셔너리를 생성합니다. [Postgres image]: https://hub.docker.com/_/postgres "Docker Hub의 Postgres OCI 이미지" -[Refreshing dictionary data using LIFETIME]: /sql-reference/dictionaries/index.md#refreshing-dictionary-data-using-lifetime +[Refreshing dictionary data using LIFETIME]: /sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime "ClickHouse 문서: LIFETIME을 사용한 딕셔너리 데이터 새로 고침" \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/index.md index a9b3a2d5e87..74338d6c6bf 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/integrations/tools/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/tools -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['ClickHouse integrations', 'SQL clients', 'data integrations', 'tools', 'third-party'] title: '도구' description: '도구 섹션의 랜딩 페이지' doc_type: 'landing-page' @@ -12,4 +12,4 @@ doc_type: 'landing-page' |-----------|---------------------------------------------------------------------------------------------------------------------------------| | [SQL Client](/integrations/sql-clients) | ClickHouse를 다양한 데이터베이스 관리, 분석 및 시각화 도구와 연동하는 방법 | | [Data Integrations](/integrations/tools/data-integrations) | ClickHouse를 위한 데이터 통합 | -| [Misc](/integrations/audit-splunk) | ClickHouse용 기타 도구 | \ No newline at end of file +| [Misc](/integrations/misc) | ClickHouse용 기타 도구 | \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/caches.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/caches.md index b0789af6fd4..5f341edae39 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/caches.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/caches.md @@ -27,7 +27,7 @@ doc_type: 'reference' * [Vector similarity index](../engines/table-engines/mergetree-family/annindexes.md) 캐시. * [Text index](../engines/table-engines/mergetree-family/textindexes.md#caching) 캐시. * [Avro format](/interfaces/formats/Avro) 스키마 캐시. -* [Dictionaries](../sql-reference/dictionaries/index.md) 데이터 캐시. +* [Dictionaries](../sql-reference/statements/create/dictionary/index.md) 데이터 캐시. * 스키마 추론 캐시. * S3, Azure, 로컬 및 기타 디스크용 [Filesystem cache](storing-data.md). * [Userspace page cache](/operations/userspace-page-cache) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md index cad7dc43908..214a9681f82 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md @@ -52,7 +52,7 @@ SETTINGS allow_introspection_functions = 1 * `addressToLine`, `addressToLineWithInlines`, `addressToSymbol`, `demangle` [introspection 함수](../../sql-reference/functions/introspection.md)를 사용하여 ClickHouse 코드에서 FUNCTION 이름과 위치를 확인합니다. 특정 쿼리에 대한 프로파일을 얻으려면 `trace_log` 테이블의 데이터를 집계해야 합니다. 개별 FUNCTION별로 또는 전체 스택 트레이스 단위로 데이터를 집계할 수 있습니다. -`trace_log` 정보를 시각화해야 한다면 [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph)와 [speedscope](https://github.com/laplab/clickhouse-speedscope)를 사용해 보십시오. +`trace_log` 정보를 시각화해야 한다면 [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph)와 [speedscope](https://www.speedscope.app)를 사용해 보십시오. ## 예시 \{#example\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md index 61adb70c638..d4a2afac6e9 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md @@ -386,7 +386,7 @@ dictionaries에 대한 설정 파일의 경로입니다. 함께 보기: -* 「[Dictionaries](../../sql-reference/dictionaries/index.md)」. +* "[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)". **예제** @@ -1903,12 +1903,14 @@ PostgreSQL 프로토콜을 사용하여 클라이언트와 통신하는 포트 | `select_from_system_db_requires_grant` | `SELECT * FROM system.` 쿼리에 권한이 필요한지, 그리고 모든 사용자가 실행할 수 있는지 여부를 설정합니다. true로 설정하면, 이 쿼리는 비 시스템 테이블과 마찬가지로 `GRANT SELECT ON system.
    ` 권한이 필요합니다. 예외: 일부 시스템 테이블(`tables`, `columns`, `databases` 및 `one`, `contributors` 같은 일부 상수 테이블)은 여전히 모든 사용자에게 접근 가능합니다. 또한 `SHOW USERS`와 같은 `SHOW` 권한이 부여된 경우, 해당하는 시스템 테이블(예: `system.users`)에 접근할 수 있습니다. | `true` | | `settings_constraints_replace_previous` | 특정 SETTING에 대해 설정 프로필(SETTINGS PROFILE) 내에서 정의된 제약 조건이, 해당 SETTING에 대해 다른 프로필에서 이전에 정의된 제약 조건의 동작을 취소할지 여부를 설정합니다. 여기에는 새 제약 조건에서 설정하지 않은 필드도 포함됩니다. 또한 `changeable_in_readonly` 제약 조건 유형을 활성화합니다. | `true` | | `table_engines_require_grant` | 특정 테이블 엔진을 사용하는 테이블 생성에 권한이 필요한지 여부를 설정합니다. | `false` | +| `throw_on_unmatched_row_policies` | 테이블에 ROW POLICY가 존재하지만 현재 사용자에게 해당하는 ROW POLICY가 하나도 없는 경우, 해당 테이블을 읽을 때 예외를 발생시킬지 여부를 설정합니다. | `false` | | `users_without_row_policies_can_read_rows` | 허용적인 ROW POLICY가 없는 사용자도 `SELECT` 쿼리를 사용해 행을 읽을 수 있는지 여부를 설정합니다. 예를 들어, 사용자 A와 B가 있고 ROW POLICY가 A에만 정의되어 있는 경우, 이 설정이 true이면 사용자 B는 모든 행을 볼 수 있습니다. 이 설정이 false이면 사용자 B는 어떤 행도 볼 수 없습니다. | `true` | Example: ```xml + true true true true diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md index 1c5bb1820f0..42cf051d141 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md @@ -41,12 +41,14 @@ ClickHouse의 설정 파일에 대한 자세한 내용은 [""Configuration Files | `select_from_system_db_requires_grant` | `SELECT * FROM system.
    `에 아무 권한도 필요하지 않고 모든 사용자가 실행할 수 있는지 여부를 설정합니다. `true`로 설정하면, 이 쿼리를 실행하려면 일반 테이블과 마찬가지로 `GRANT SELECT ON system.
    ` 권한이 필요합니다. 예외: 일부 system 테이블(`tables`, `columns`, `databases` 및 `one`, `contributors`와 같은 일부 상수 테이블)은 여전히 모든 사용자가 접근할 수 있습니다. 또한 `SHOW USERS`와 같은 `SHOW` 권한이 부여된 경우, 해당 system 테이블(예: `system.users`)에 접근할 수 있습니다. | `true` | | `settings_constraints_replace_previous` | 특정 setting에 대한 settings profile의 제약 조건이, 해당 setting에 대해 다른 profile에 정의된 이전 제약 조건의 동작을 새 제약 조건에서 설정하지 않은 필드를 포함하여 모두 무효화할지 여부를 설정합니다. 또한 `changeable_in_readonly` 제약 조건 유형을 활성화합니다. | `true` | | `table_engines_require_grant` | 특정 테이블 엔진을 사용하여 테이블을 생성할 때 권한이 필요한지 설정합니다. | `false` | +| `throw_on_unmatched_row_policies` | 테이블에 행 정책이 있지만 현재 사용자에게 적용되는 정책이 하나도 없는 경우, 해당 테이블을 읽을 때 예외를 발생시킬지 여부를 설정합니다. | `false` | | `users_without_row_policies_can_read_rows` | 허용적인(permissive) 행 정책이 없는 사용자도 `SELECT` 쿼리를 사용해 행을 읽을 수 있는지 설정합니다. 예를 들어 사용자 A와 B가 있고 A에 대해서만 행 정책이 정의되어 있는 경우, 이 설정이 `true`이면 사용자 B는 모든 행을 볼 수 있습니다. 이 설정이 `false`이면 사용자 B는 어떤 행도 볼 수 없습니다. | `true` | Example: ```xml + true true true true @@ -926,7 +928,7 @@ ZooKeeper에 있는 테이블 경로입니다. 참고: -* "[Dictionaries](../../sql-reference/dictionaries/index.md)". +* "[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)". **예시** @@ -4952,6 +4954,10 @@ ClickHouse는 서버의 모든 테이블에 대해 이 설정을 사용합니다 ``` +## users_to_ignore_early_memory_limit_check \{#users_to_ignore_early_memory_limit_check\} + +조기 메모리 제한 검사를 건너뛸 사용자 목록을 쉼표로 구분하여 지정합니다. 사용자가 이 목록에 포함되지 않은 경우, 총 메모리 사용량이 한도를 초과하면 쿼리가 거부됩니다. + ## validate_tcp_client_information \{#validate_tcp_client_information\} 쿼리 패킷을 수신했을 때 클라이언트 정보의 유효성 검사를 활성화할지 여부를 결정합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index 5100ccf47ba..e0272ee0020 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -466,6 +466,18 @@ BSON 포맷에 대해 스키마 추론 시 지원되지 않는 타입의 필드 CapnProto 포맷에 대해 스키마 추론(schema inference)을 수행할 때 지원되지 않는 타입의 컬럼은 건너뜁니다 +## input_format_connection_handling \{#input_format_connection_handling\} + + + + + +이 옵션을 활성화하면 연결이 예기치 않게 종료되더라도 버퍼에 남아 있는 데이터가 오류로 간주되지 않고 파싱되어 처리됩니다. + +:::note +이 옵션을 활성화하면 병렬 파싱이 비활성화되고 중복 제거가 불가능해집니다. +::: + ## input_format_csv_allow_cr_end_of_line \{#input_format_csv_allow_cr_end_of_line\} @@ -972,6 +984,18 @@ JSON/JSONCompact/JSONColumnsWithMetadata 입력 포맷에서 이 설정이 1이 입력 포맷에서 데이터를 파싱할 때 형성되는 블록의 크기를 바이트 단위로 제한합니다. 블록이 ClickHouse 측에서 생성되는 행 기반 입력 포맷에서 사용됩니다. 0은 바이트 단위 크기에 제한이 없음을 의미합니다. +## input_format_max_block_wait_ms \{#input_format_max_block_wait_ms\} + + + + + +행 기반 input format에서 파싱 중 블록을 출력하기 전에 대기하는 최대 시간을 밀리초 단위로 제한합니다. 0으로 설정하면 제한이 없음을 의미합니다. + +:::note +이 옵션은 `input_format_connection_handling`이 활성화되어 있는 경우에만 동작합니다. 값을 설정하면 병렬 파싱이 비활성화되며 중복 제거가 불가능해집니다. +::: + ## input_format_max_bytes_to_read_for_schema_inference \{#input_format_max_bytes_to_read_for_schema_inference\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings.md index f4460ffe479..959cbe442a7 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -606,6 +606,16 @@ YTsaurus와 통합하기 위한 실험적 테이블 엔진입니다. YTsaurus 통합을 위한 실험적 테이블 엔진입니다. +## allow_fuzz_query_functions \{#allow_fuzz_query_functions\} + + + + + + + +쿼리 문자열에 무작위 AST 뮤테이션을 적용하는 `fuzzQuery` 함수를 사용할 수 있도록 허용합니다. + ## allow_general_join_planning \{#allow_general_join_planning\} @@ -632,9 +642,11 @@ Hyperscan 라이브러리를 사용하는 함수를 허용합니다. 잠재적 +**별칭**: `allow_experimental_insert_into_iceberg` + - + Iceberg 테이블에 대한 `insert` 쿼리 실행을 허용합니다. @@ -1071,9 +1083,9 @@ Join 모드에서 패치 파트를 적용할 때 사용하는 임시 캐시의 ## apply_row_policy_after_final \{#apply_row_policy_after_final\} - + - + 이 설정을 활성화하면 *MergeTree 테이블에 대해 FINAL 처리가 완료된 후에 ROW POLICY와 PREWHERE가 적용됩니다. (특히 ReplacingMergeTree에 해당합니다) 비활성화하면 ROW POLICY는 FINAL 이전에 적용되며, 이 경우 ReplacingMergeTree 또는 유사한 엔진에서 중복 제거에 사용되어야 하는 행을 @@ -1122,6 +1134,32 @@ Arrow Flight 요청에 사용할 디스크립터(descriptor) 유형입니다. 'p - 'path' — FlightDescriptor::Path를 사용합니다(기본값, 대부분의 Arrow Flight 서버에서 동작). - 'command' — SELECT 쿼리와 함께 FlightDescriptor::Command를 사용합니다(Dremio에서 필요). +## ast_fuzzer_any_query \{#ast_fuzzer_any_query\} + + + + + + + +false(기본값)인 경우, 서버 측 AST 퍼저(`ast_fuzzer_runs`로 제어됨)는 읽기 전용 쿼리(SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS)만 퍼징합니다. true인 경우, DDL 및 INSERT를 포함한 모든 쿼리 유형을 퍼징합니다. + +## ast_fuzzer_runs \{#ast_fuzzer_runs\} + + + + + + + +각 일반 쿼리 이후에 결과를 폐기하는 무작위화된 쿼리를 실행하는 서버 측 AST fuzzer를 활성화합니다. + +- 0: 비활성화(기본값)입니다. +- 0과 1 사이의 값(양끝 불포함): 단일 퍼징된 쿼리를 실행할 확률입니다. +- 1 이상인 값: 일반 쿼리 하나당 실행할 퍼징된 쿼리 개수입니다. + +fuzzer는 모든 세션의 모든 쿼리에서 AST 조각을 축적하여 시간이 지남에 따라 점점 더 흥미로운 뮤테이션을 생성합니다. 실패한 퍼징된 쿼리는 조용히 폐기되며, 결과는 클라이언트에 반환되지 않습니다. + ## asterisk_include_alias_columns \{#asterisk_include_alias_columns\} @@ -3348,8 +3386,6 @@ blob storage 연산 정보를 system.blob_storage_log 테이블에 기록합니 ## enable_full_text_index \{#enable_full_text_index\} - - **별칭**: `allow_experimental_full_text_index` @@ -5339,6 +5375,30 @@ INTERSECT 쿼리에서 기본 모드를 설정합니다. 가능한 값은 빈 샘플은 설정 jemalloc_collect_global_profile_samples_in_trace_log 또는 쿼리 설정 jemalloc_collect_profile_samples_in_trace_log을 사용하여 system.trace_log에 저장할 수도 있습니다. 자세한 내용은 [Allocation Profiling](/operations/allocation-profiling)을 참조하십시오. +## jemalloc_profile_text_collapsed_use_count \{#jemalloc_profile_text_collapsed_use_count\} + + + + + +jemalloc 힙 프로파일에서 'collapsed' 출력 형식을 사용할 때 바이트 수 대신 할당 횟수로 집계합니다. false(기본값)인 경우 각 스택은 현재 살아 있는 바이트 수를 기준으로 가중되고, true인 경우 현재 살아 있는 할당 횟수를 기준으로 가중됩니다. + +## jemalloc_profile_text_output_format \{#jemalloc_profile_text_output_format\} + + + + + +system.jemalloc_profile_text 테이블에서 jemalloc 힙 프로파일의 출력 형식을 지정하는 설정입니다. 'raw'(원시 프로파일), 'symbolized'(심볼이 포함된 jeprof 형식), 'collapsed'(FlameGraph 형식) 중 하나로 설정할 수 있습니다. + +## jemalloc_profile_text_symbolize_with_inline \{#jemalloc_profile_text_symbolize_with_inline\} + + + + + +jemalloc heap 프로파일을 심볼화할 때 inline frame을 포함할지 여부입니다. 활성화하면 inline frame이 포함되어 심볼화 과정이 크게 느려질 수 있고, 비활성화하면 inline frame이 건너뛰어집니다. "symbolized" 및 "collapsed" 출력 형식에만 영향을 줍니다. + ## join_algorithm \{#join_algorithm\} @@ -8194,6 +8254,14 @@ DISTINCT에 사용된 일부 컬럼이 정렬 순서의 접두사(앞부분)를 현재 이 설정은 `optimize_skip_unused_shards`가 활성화되어 있어야 합니다. 이는 이 설정이 언젠가 기본적으로 활성화될 수 있으며, 그 경우 데이터가 Distributed 테이블(즉, 데이터가 sharding_key에 따라 분산됨)을 통해 입력된 경우에만 올바르게 동작하기 때문입니다. ::: +## optimize_dry_run_check_part \{#optimize_dry_run_check_part\} + + + + + +이 설정이 활성화되면 `OPTIMIZE ... DRY RUN`은 `checkDataPart`를 사용하여 병합 결과 파트를 검증합니다. 검증에 실패하면 예외가 발생합니다. + ## optimize_empty_string_comparisons \{#optimize_empty_string_comparisons\} @@ -11110,14 +11178,6 @@ TCP에서 keepalive probe를 전송하기 시작하기 전에 연결이 유휴 역색인 텍스트 인덱스에서 생성된 힌트를 사용할 수 있는 필터의 최대 선택도입니다. -## text_index_use_bloom_filter \{#text_index_use_bloom_filter\} - - - - - -테스트를 위해 텍스트 인덱스에서 블룸 필터 사용 여부를 설정합니다. - ## throw_if_no_data_to_insert \{#throw_if_no_data_to_insert\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md index 2251dcad650..c7341772561 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md @@ -1,5 +1,5 @@ --- -description: '사전에 대한 정보를 담고 있는 시스템 테이블' +description: '딕셔너리에 대한 정보를 포함하는 시스템 테이블' keywords: ['system table', 'dictionaries'] slug: /operations/system-tables/dictionaries title: 'system.dictionaries' @@ -10,52 +10,52 @@ import SystemTableCloud from '@site/i18n/ko/docusaurus-plugin-content-docs/curre -[딕셔너리](../../sql-reference/dictionaries/index.md)에 대한 정보를 제공합니다. +[딕셔너리](../../sql-reference/statements/create/dictionary/index.md)에 대한 정보를 제공합니다. 컬럼: - {/*AUTOGENERATED_START*/ } + * `database` ([String](../../sql-reference/data-types/)) — DDL 쿼리로 생성된 딕셔너리가 포함된 데이터베이스 이름입니다. 다른 딕셔너리의 경우 빈 문자열입니다. * `name` ([String](../../sql-reference/data-types/)) — 딕셔너리 이름입니다. * `uuid` ([UUID](../../sql-reference/data-types/)) — 딕셔너리 UUID입니다. * `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](../../sql-reference/data-types/)) — 딕셔너리 상태입니다. 가능한 값: - * **NOT_LOADED** — 사용되지 않아 딕셔너리가 로드되지 않았습니다. - * **LOADED** — 딕셔너리가 정상적으로 로드되었습니다. + * **NOT_LOADED** — 사용되지 않았기 때문에 딕셔너리가 로드되지 않았습니다. + * **LOADED** — 딕셔너리가 성공적으로 로드되었습니다. * **FAILED** — 오류로 인해 딕셔너리를 로드할 수 없습니다. - * **LOADING** — 현재 딕셔너리를 로드 중입니다. - * **LOADED_AND_RELOADING** — 딕셔너리가 정상적으로 로드되었으며 - * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — 지금 다시 로드 중입니다(자주 발생하는 이유: SYSTEM RELOAD DICTIONARY 쿼리, + * **LOADING** — 딕셔너리를 현재 로드 중입니다. + * **LOADED_AND_RELOADING** — 딕셔너리가 성공적으로 로드되었으며 + * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — 현재 다시 로드 중입니다(자주 발생하는 이유: SYSTEM RELOAD DICTIONARY 쿼리, * **timeout** — 타임아웃, * **dictionary config has changed)** — 딕셔너리 설정 변경). * **FAILED_AND_RELOADING** — 오류로 인해 딕셔너리를 로드할 수 없었으며 현재 다시 로드 중입니다. -* `origin` ([String](../../sql-reference/data-types/)) — 딕셔너리를 정의하는 설정 파일의 경로입니다. -* `type` ([String](../../sql-reference/data-types/)) — 딕셔너리 할당 유형입니다. 메모리에 딕셔너리를 저장합니다. +* `origin` ([String](../../sql-reference/data-types/)) — 딕셔너리를 설명하는 설정 파일의 경로입니다. +* `type` ([String](../../sql-reference/data-types/)) — 딕셔너리 메모리 할당 유형입니다. 메모리에 딕셔너리를 저장합니다. * `key.names` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 키 이름 배열입니다. -* `key.types` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 키 유형의 대응 배열입니다. +* `key.types` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 키 타입에 대응하는 배열입니다. * `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 속성 이름 배열입니다. -* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 속성 유형의 대응 배열입니다. +* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — 딕셔너리가 제공하는 속성 타입에 대응하는 배열입니다. * `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 딕셔너리에 할당된 RAM 용량입니다. -* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 계층형 인덱스에 할당된 RAM 용량입니다. -* `query_count` ([UInt64](../../sql-reference/data-types/)) — 딕셔너리가 로드된 이후 또는 마지막으로 성공적으로 다시 로드된 이후의 쿼리 수입니다. -* `hit_rate` ([Float64](../../sql-reference/data-types/)) — 캐시 딕셔너리의 경우, 값이 캐시에 있었던 사용 비율(백분율)입니다. -* `found_rate` ([Float64](../../sql-reference/data-types/)) — 값이 발견된 사용 비율(백분율)입니다. +* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 계층적 인덱스에 할당된 RAM 용량입니다. +* `query_count` ([UInt64](../../sql-reference/data-types/)) — 딕셔너리가 로드된 이후 또는 마지막으로 성공적으로 재시작된 이후의 쿼리 수입니다. +* `hit_rate` ([Float64](../../sql-reference/data-types/)) — 캐시 딕셔너리의 경우, 값이 캐시에 있었던 사용 비율(%)입니다. +* `found_rate` ([Float64](../../sql-reference/data-types/)) — 값이 조회 과정에서 발견된 비율(%)입니다. * `element_count` ([UInt64](../../sql-reference/data-types/)) — 딕셔너리에 저장된 항목 수입니다. -* `load_factor` ([Float64](../../sql-reference/data-types/)) — 딕셔너리가 채워진 비율입니다(해시 딕셔너리의 경우 해시 테이블이 채워진 비율). +* `load_factor` ([Float64](../../sql-reference/data-types/)) — 딕셔너리의 채워진 비율입니다(해시 딕셔너리의 경우 해시 테이블의 채워진 비율). * `source` ([String](../../sql-reference/data-types/)) — 딕셔너리의 데이터 소스를 설명하는 텍스트입니다. -* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — 메모리에서 딕셔너리의 최소 수명으로, 이 시간이 지나면 ClickHouse가 딕셔너리를 다시 로드하려고 시도합니다(`invalidate_query`가 설정된 경우 변경된 경우에만 다시 로드합니다). 초 단위로 설정됩니다. -* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — 메모리에서 딕셔너리의 최대 수명으로, 이 시간이 지나면 ClickHouse가 딕셔너리를 다시 로드하려고 시도합니다(`invalidate_query`가 설정된 경우 변경된 경우에만 다시 로드합니다). 초 단위로 설정됩니다. +* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — 메모리 내 딕셔너리의 최소 수명입니다. 이 시간이 지나면 ClickHouse는 딕셔너리를 다시 로드하려고 시도합니다(`invalidate_query`가 설정된 경우 변경이 있었을 때만 다시 로드합니다). 초 단위로 설정합니다. +* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — 메모리 내 딕셔너리의 최대 수명입니다. 이 시간이 지나면 ClickHouse는 딕셔너리를 다시 로드하려고 시도합니다(`invalidate_query`가 설정된 경우 변경이 있었을 때만 다시 로드합니다). 초 단위로 설정합니다. * `loading_start_time` ([DateTime](../../sql-reference/data-types/)) — 딕셔너리 로드를 시작한 시각입니다. -* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — 딕셔너리 로드 또는 업데이트가 완료된 시각입니다. 딕셔너리 소스의 문제를 모니터링하고 원인을 분석하는 데 도움이 됩니다. -* `error_count` ([UInt64](../../sql-reference/data-types/)) — 마지막으로 성공적으로 로드한 이후 발생한 오류 수입니다. 딕셔너리 소스의 문제를 모니터링하고 원인을 분석하는 데 도움이 됩니다. -* `loading_duration` ([Float32](../../sql-reference/data-types/)) — 딕셔너리를 로드하는 데 소요된 시간입니다. -* `last_exception` ([String](../../sql-reference/data-types/)) — 딕셔너리를 생성하거나 다시 로드하는 중, 딕셔너리를 생성할 수 없었을 때 발생한 오류 텍스트입니다. +* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — 딕셔너리를 로드하거나 업데이트한 종료 시각입니다. 딕셔너리 소스 관련 문제를 모니터링하고 원인을 조사하는 데 도움이 됩니다. +* `error_count` ([UInt64](../../sql-reference/data-types/)) — 마지막으로 성공적으로 로드된 이후의 오류 수입니다. 딕셔너리 소스 관련 문제를 모니터링하고 원인을 조사하는 데 도움이 됩니다. +* `loading_duration` ([Float32](../../sql-reference/data-types/)) — 딕셔너리 로드에 소요된 시간입니다. +* `last_exception` ([String](../../sql-reference/data-types/)) — 딕셔너리를 생성하거나 다시 로드하는 동안, 딕셔너리를 생성할 수 없을 때 발생한 오류 텍스트입니다. * `comment` ([String](../../sql-reference/data-types/)) — 딕셔너리에 대한 주석 텍스트입니다. {/*AUTOGENERATED_END*/ } -**예시** +**예제** 딕셔너리를 구성합니다: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/events.md b/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/events.md index d410e008125..7a5bd268f9a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/events.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/operations/system-tables/events.md @@ -1,28 +1,424 @@ --- description: '시스템에서 발생한 이벤트 수에 대한 정보를 담고 있는 시스템 테이블입니다.' -keywords: ['system table', 'events'] +keywords: ['시스템 테이블', '이벤트'] slug: /operations/system-tables/events title: 'system.events' doc_type: 'reference' --- import SystemTableCloud from '@site/i18n/ko/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -시스템에서 발생한 이벤트 개수에 대한 정보를 포함합니다. 예를 들어, 이 테이블에서 ClickHouse 서버가 시작된 이후 처리된 `SELECT` 쿼리의 개수를 확인할 수 있습니다. +시스템에서 발생한 이벤트 수에 대한 정보를 제공합니다. 예를 들어, 이 테이블에서 ClickHouse 서버가 시작된 이후 처리된 `SELECT` 쿼리의 개수를 확인할 수 있습니다. 컬럼: {/*AUTOGENERATED_START*/ } -* `event` ([String](../../sql-reference/data-types/)) — 이벤트 이름. -* `value` ([UInt64](../../sql-reference/data-types/)) — 발생한 이벤트 수. -* `description` ([String](../../sql-reference/data-types/)) — 이벤트 설명. +* `event` ([String](../../sql-reference/data-types/)) — 이벤트 이름입니다. +* `value` ([UInt64](../../sql-reference/data-types/)) — 발생한 이벤트 수입니다. +* `description` ([String](../../sql-reference/data-types/)) — 이벤트에 대한 설명입니다. {/*AUTOGENERATED_END*/ } -지원되는 모든 이벤트는 소스 파일 [src/Common/ProfileEvents.cpp](https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/ProfileEvents.cpp)에서 확인할 수 있습니다. + + + + 다음 이벤트는 ClickHouse OSS에서 사용 가능합니다: + + {/*AUTOGENERATED_START id='oss_events'*/ } + + | 이벤트 | 설명 | + | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `쿼리` | 해석되어 실제로 실행될 수 있는 쿼리 수입니다. 파싱에 실패했거나 AST 크기 제한, QUOTA 제한, 동시에 실행 가능한 쿼리 수 제한 때문에 거부된 쿼리는 포함하지 않습니다. ClickHouse 자체에서 시작된 내부 쿼리가 포함될 수 있습니다. 서브쿼리는 개수에 포함되지 않습니다. | + | `SelectQuery` | `Query`와 동일하지만 SELECT 쿼리에만 해당합니다. | + | `InitialQuery` | `Query`와 동일하지만 초기 쿼리만 카운트합니다(`is_initial_query` 참조). | + | `InitialSelectQuery` | `InitialQuery`와 같지만 SELECT 쿼리에만 적용됩니다. | + | `QueriesWithSubqueries` | 모든 서브쿼리를 포함한 쿼리 수입니다. | + | `SelectQueriesWithSubqueries` | 모든 서브쿼리를 포함한 SELECT 쿼리 수입니다. | + | `FileOpen` | 열려 있는 파일 수입니다. | + | `Seek` | 'lseek' 함수가 호출된 횟수입니다. | + | `ReadBufferFromFileDescriptorRead` | 파일 디스크립터에서 수행된 읽기(read/pread) 호출 횟수입니다. 소켓은 포함하지 않습니다. | + | `ReadBufferFromFileDescriptorReadBytes` | 파일 디스크립터에서 읽은 바이트 수입니다. 파일이 압축된 경우, 압축된 데이터의 크기를 나타냅니다. | + | `WriteBufferFromFileDescriptorWrite` | 파일 디스크립터에서 수행된 쓰기(write/pwrite) 호출 횟수입니다. 소켓은 포함하지 않습니다. | + | `WriteBufferFromFileDescriptorWriteBytes` | 파일 디스크립터에 기록된 바이트 수입니다. 파일이 압축된 경우, 압축된 데이터의 크기를 나타냅니다. | + | `FileSync` | 파일에 대해 F_FULLFSYNC/fsync/fdatasync 함수가 호출된 횟수입니다. | + | `FileSyncElapsedMicroseconds` | 파일에 대해 F_FULLFSYNC/fsync/fdatasync 시스템 콜을 대기하는 데 소요된 전체 시간입니다. | + | `IOBufferAllocs` | I/O 버퍼(ReadBuffer/WriteBuffer용)가 할당된 횟수입니다. | + | `IOBufferAllocBytes` | I/O 버퍼(ReadBuffer/WriteBuffer용) 할당에 사용된 바이트 수입니다. | + | `DiskReadElapsedMicroseconds` | read 시스템 콜을 대기하는 데 소요된 전체 시간입니다. 페이지 캐시에서 수행된 읽기 연산도 포함됩니다. | + | `DiskWriteElapsedMicroseconds` | write 시스템 콜을 대기하는 데 소요된 전체 시간입니다. 페이지 캐시에 대한 쓰기 연산도 포함됩니다. | + | `NetworkReceiveElapsedMicroseconds` | 네트워크에서 데이터를 수신하기 위해 대기하거나 실제로 데이터를 수신하는 데 소요된 전체 시간입니다. 서드파티 라이브러리가 아닌, ClickHouse와 관련된 네트워크 통신만 포함됩니다. | + | `NetworkSendElapsedMicroseconds` | 네트워크로 데이터를 전송하기 위해 대기하거나 실제로 데이터를 전송하는 데 소요된 전체 시간입니다. 서드파티 라이브러리가 아닌, ClickHouse와 관련된 네트워크 통신만 포함됩니다. | + | `NetworkReceiveBytes` | 네트워크에서 수신한 전체 바이트 수입니다. 서드파티 라이브러리가 아닌, ClickHouse와 관련된 네트워크 통신만 포함됩니다. | + | `NetworkSendBytes` | 네트워크로 전송한 전체 바이트 수입니다. 서드파티 라이브러리가 아닌, ClickHouse와 관련된 네트워크 통신만 포함됩니다. | + | `GlobalThreadPoolExpansions` | 글로벌 스레드 풀에 새 스레드가 추가된 총 횟수입니다. 이 메트릭은 처리 수요 증가를 수용하기 위해 글로벌 스레드 풀이 얼마나 자주 확장되었는지를 나타냅니다. | + | `GlobalThreadPoolThreadCreationMicroseconds` | 새 스레드가 시작되기를 기다리는 데 소요된 총 시간입니다. | + | `GlobalThreadPoolLockWaitMicroseconds` | 글로벌 스레드 풀에서 스레드가 락을 기다리는 데 보낸 총 시간입니다. | + | `GlobalThreadPoolJobs` | 글로벌 스레드 풀에 푸시된 작업(job)의 수를 집계합니다. | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | 작업이 스레드 풀에 스케줄된 시점부터 워커 스레드가 실행을 위해 해당 작업을 가져가는 시점까지 경과한 시간을 측정합니다. 이 메트릭은 작업 처리 지연을 파악하는 데 도움이 되며, 스레드 풀이 새로운 작업에 얼마나 신속하게 반응하는지를 나타냅니다. | + | `LocalThreadPoolExpansions` | 로컬 스레드 풀을 확장하기 위해 글로벌 스레드 풀에서 스레드를 빌려온 총 횟수를 집계합니다. | + | `LocalThreadPoolShrinks` | 로컬 스레드 풀에서 글로벌 스레드 풀로 스레드를 반환한 총 횟수를 집계합니다. | + | `LocalThreadPoolThreadCreationMicroseconds` | 로컬 스레드 풀이 글로벌 풀에서 스레드를 빌리기 위해 기다리는 데 소요한 총 시간입니다. | + | `LocalThreadPoolJobs` | 로컬 스레드 풀에 푸시된 작업(job)의 수를 집계합니다. | + | `LocalThreadPoolBusyMicroseconds` | 스레드가 실제 작업을 실행하는 데 사용한 총 시간입니다. | + | `LocalThreadPoolJobWaitTimeMicroseconds` | 작업이 스레드 풀에 스케줄된 시점부터 워커 스레드가 실행을 위해 해당 작업을 가져가는 시점까지 경과한 시간을 측정합니다. 이 메트릭은 작업 처리 지연을 파악하는 데 도움이 되며, 스레드 풀이 새로운 작업에 얼마나 신속하게 반응하는지를 나타냅니다. | + | `QueryPlanOptimizeMicroseconds` | 쿼리 플랜 최적화를 수행하는 데 소요된 총 시간입니다. | + | `ContextLock` | Context의 락을 획득했거나 획득을 시도한 횟수입니다. 전역(global) 락입니다. | + | `RWLockAcquiredReadLocks` | 읽기 락이 획득된 횟수입니다(heavy RWLock에서). | + | `QueryProfilerSignalOverruns` | 오버런(overrun)으로 인해 쿼리 프로파일러 신호의 처리가 드롭된 횟수와, 오버런으로 인해 OS가 신호를 전달하지 못한 횟수의 합입니다. | + | `QueryProfilerRuns` | QueryProfiler가 실행된 횟수입니다. | + | `MainConfigLoads` | 메인 설정이 다시 로드된 횟수입니다. | + | `ServerStartupMilliseconds` | 서버를 시작한 시점부터 소켓 수신 대기를 시작할 때까지 경과한 시간(밀리초 단위)입니다. | + | `AsyncLoaderWaitMicroseconds` | 쿼리가 async loader 작업을 기다리는 데 소요한 총 시간입니다. | + | `LogTrace` | Trace 레벨의 로그 메시지 개수입니다. | + | `LogDebug` | Debug 레벨의 로그 메시지 개수입니다. | + | `LogInfo` | Info 레벨의 로그 메시지 개수입니다. | + | `LogWarning` | Warning 레벨의 로그 메시지 개수입니다. | + | `LoggerElapsedNanoseconds` | 로깅 작업에 소요된 누적 시간입니다. | + | `InterfaceNativeSendBytes` | 네이티브 인터페이스를 통해 전송한 바이트 수 | + | `InterfaceNativeReceiveBytes` | 네이티브 인터페이스를 통해 수신한 바이트 수 | + | `MemoryWorkerRun` | 백그라운드에서 MemoryWorker가 실행된 횟수 | + | `MemoryWorkerRunElapsedMicroseconds` | 백그라운드 작업에서 MemoryWorker가 실행에 사용한 총 시간 | + | `AsyncLoggingFileLogTotalMessages` | 파일 로그용 비동기 큐로 전송된 메시지 수(수락 및 드롭 포함) | + | `AsyncLoggingErrorFileLogTotalMessages` | 오류 파일 로그용 비동기 큐로 전송된 메시지 수(수락 및 드롭 포함) | + | `AsyncLoggingTextLogTotalMessages` | text_log용 비동기 큐로 전송된 메시지 수(수락 및 드롭 포함) | + + {/*AUTOGENERATED_END*/ } + + + + 다음 이벤트는 ClickHouse Cloud에서 사용 가능합니다: + + {/*AUTOGENERATED_START id='cloud_events'*/ } + + | 이벤트 | 설명 | + | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `Query` | 해석 및 실행될 수 있었던 쿼리 수입니다. 파싱에 실패했거나 AST 크기 제한, QUOTA 제한, 동시에 실행되는 쿼리 수 제한으로 거부된 쿼리는 포함하지 않습니다. ClickHouse 자체에서 시작된 내부 쿼리가 포함될 수 있습니다. 서브쿼리는 집계 대상에서 제외됩니다. | + | `SelectQuery` | `Query`와 동일하지만 SELECT 쿼리에만 해당합니다. | + | `InitialQuery` | `Query`와 동일하지만 초기 쿼리만 집계합니다(`is_initial_query` 참조). | + | `QueriesWithSubqueries` | 모든 서브쿼리를 포함한 쿼리 수입니다. | + | `SelectQueriesWithSubqueries` | 모든 서브쿼리를 포함한 SELECT 쿼리 수입니다. | + | `SelectQueriesWithPrimaryKeyUsage` | WHERE 조건을 평가하기 위해 기본 키를 사용하는 SELECT 쿼리 수입니다. | + | `QueryTimeMicroseconds` | 모든 쿼리의 총 실행 시간입니다. | + | `SelectQueryTimeMicroseconds` | SELECT 쿼리의 총 실행 시간입니다. | + | `OtherQueryTimeMicroseconds` | SELECT 및 INSERT가 아닌 쿼리의 총 실행 시간입니다. | + | `FileOpen` | 열린 파일 수입니다. | + | `Seek` | "lseek" 함수가 호출된 횟수입니다. | + | `ReadBufferFromFileDescriptorRead` | 파일 디스크립터에서 수행된 읽기(read/pread) 횟수입니다. 소켓은 포함하지 않습니다. | + | `ReadBufferFromFileDescriptorReadBytes` | 파일 디스크립터에서 읽은 바이트 수입니다. 파일이 압축된 경우 압축된 데이터 크기를 나타냅니다. | + | `WriteBufferFromFileDescriptorWrite` | 파일 디스크립터에서 수행된 쓰기(write/pwrite) 횟수입니다. 소켓은 포함하지 않습니다. | + | `WriteBufferFromFileDescriptorWriteBytes` | 파일 디스크립터에 기록된 바이트 수입니다. 파일이 압축된 경우 압축된 데이터 크기를 나타냅니다. | + | `ReadCompressedBytes` | 압축된 소스(파일, 네트워크)에서 읽은 바이트 수(압축 해제 이전 기준)입니다. | + | `CompressedReadBufferBlocks` | 압축된 소스(파일, 네트워크)에서 읽은 압축 블록(서로 독립적으로 압축된 데이터 블록) 수입니다. | + | `CompressedReadBufferBytes` | 압축된 소스(파일, 네트워크)에서 읽어 압축을 해제한 바이트 수(압축 해제 이후 기준)입니다. | + | `OpenedFileCacheHits` | 열린 파일 캐시에서 파일을 찾아 다시 열 필요가 없었던 횟수입니다. | + | `OpenedFileCacheMisses` | 열린 파일 캐시에서 파일을 찾지 못해 다시 열어야 했던 횟수입니다. | + | `OpenedFileCacheMicroseconds` | OpenedFileCache 메서드를 실행하는 데 소요된 시간입니다. | + | `IOBufferAllocs` | I/O 버퍼(ReadBuffer/WriteBuffer용)를 할당한 횟수입니다. | + | `IOBufferAllocBytes` | I/O 버퍼(ReadBuffer/WriteBuffer용) 할당에 사용된 바이트 수입니다. | + | `ArenaAllocChunks` | 메모리 Arena(GROUP BY 및 유사한 연산에 사용됨)에 할당된 청크 수입니다. | + | `ArenaAllocBytes` | 메모리 Arena(GROUP BY 및 유사한 연산에 사용됨)에 할당된 바이트 수입니다. | + | `FunctionExecute` | SQL 일반 함수 호출 횟수입니다(SQL 함수는 블록 단위로 호출되므로, 이 값은 처리된 블록 수를 의미합니다). | + | `TableFunctionExecute` | 테이블 함수 호출 횟수입니다. | + | `DefaultImplementationForNullsRows` | 함수 실행 시 NULL에 대한 기본 구현(default implementation)으로 처리된 행 수입니다. | + | `DefaultImplementationForNullsRowsWithNulls` | 함수 실행 시 NULL에 대한 기본 구현으로 처리된 행 중 NULL 값을 포함하는 행 수입니다. | + | `MarkCacheHits` | 마크 캐시에서 엔트리를 조회에 성공한 횟수입니다. 이 경우 마크 파일을 로드할 필요가 없습니다. | + | `MarkCacheMisses` | 마크 캐시에서 엔트리 조회에 실패한 횟수입니다. 이 경우 마크 파일을 메모리로 로드해야 하며, 이는 쿼리 지연 시간(latency)을 증가시키는 비용이 큰 작업입니다. | + | `QueryConditionCacheHits` | 쿼리 조건 캐시에서 엔트리를 조회에 성공한 횟수입니다(이 경우 마크 읽기를 건너뛸 수 있습니다). SETTING use_query_condition_cache = 1이 설정된 SELECT 쿼리에 대해서만 갱신됩니다. | + | `QueryConditionCacheMisses` | 쿼리 조건 캐시에서 엔트리 조회에 실패한 횟수입니다(이 경우 마크 읽기를 건너뛸 수 없습니다). SETTING use_query_condition_cache = 1이 설정된 SELECT 쿼리에 대해서만 갱신됩니다. | + | `CreatedReadBufferOrdinary` | 데이터를 읽기 위해 일반 읽기 버퍼가 생성된 횟수입니다(여러 읽기 방식 가운데 선택되는 과정에서의 횟수입니다). | + | `DiskReadElapsedMicroseconds` | 읽기 시스템 호출(read syscall)을 대기하는 데 소요된 총 시간입니다. 페이지 캐시에서의 읽기를 포함합니다. | + | `DiskWriteElapsedMicroseconds` | 쓰기 시스템 호출(write syscall)을 대기하는 데 소요된 총 시간입니다. 페이지 캐시에 대한 쓰기를 포함합니다. | + | `NetworkReceiveElapsedMicroseconds` | 네트워크에서 데이터를 수신하기 위해 대기하거나 실제로 데이터를 수신하는 데 소요된 총 시간입니다. ClickHouse와 관련된 네트워크 상호 작용만 포함되며, 서드파티 라이브러리는 포함되지 않습니다. | + | `NetworkSendElapsedMicroseconds` | 네트워크로 데이터를 전송하기 위해 대기하거나 실제로 데이터를 전송하는 데 소요된 총 시간입니다. ClickHouse와 관련된 네트워크 상호 작용만 포함되며, 서드파티 라이브러리는 포함되지 않습니다. | + | `NetworkReceiveBytes` | 네트워크에서 수신한 전체 바이트 수입니다. ClickHouse와 관련된 네트워크 상호 작용만 포함되며, 서드파티 라이브러리는 포함되지 않습니다. | + | `NetworkSendBytes` | 네트워크로 전송된 전체 바이트 수입니다. ClickHouse와 관련된 네트워크 상호 작용만 포함되며, 서드파티 라이브러리는 포함되지 않습니다. | + | `GlobalThreadPoolExpansions` | 글로벌 thread pool에 새로운 스레드가 추가된 총 횟수를 계산합니다. 이 메트릭은 증가한 처리 수요를 수용하기 위해 글로벌 thread pool이 확장된 빈도를 보여줍니다. | + | `GlobalThreadPoolThreadCreationMicroseconds` | 새 스레드가 시작될 때까지 대기하는 데 소요된 총 시간을 나타냅니다. | + | `GlobalThreadPoolLockWaitMicroseconds` | 글로벌 thread pool에서 스레드들이 락 획득을 기다리는 데 소요된 총 시간을 나타냅니다. | + | `GlobalThreadPoolJobs` | 글로벌 thread pool에 푸시된 작업의 개수를 계산합니다. | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | thread pool에 작업이 스케줄된 시점부터 워커 스레드가 해당 작업을 가져와 실행을 시작하는 시점까지의 경과 시간을 측정합니다. 이 메트릭은 작업 처리 지연을 파악하는 데 도움이 되며, thread pool이 새로운 작업에 얼마나 신속하게 반응하는지를 보여줍니다. | + | `LocalThreadPoolExpansions` | 로컬 thread pool을 확장하기 위해 글로벌 thread pool에서 스레드를 빌려온 총 횟수를 계산합니다. | + | `LocalThreadPoolShrinks` | 로컬 thread pool에서 글로벌 thread pool로 스레드를 반환한 총 횟수를 계산합니다. | + | `LocalThreadPoolThreadCreationMicroseconds` | 로컬 thread pool이 글로벌 thread pool에서 스레드를 빌리기 위해 대기한 총 시간을 나타냅니다. | + | `LocalThreadPoolLockWaitMicroseconds` | 로컬 thread pool에서 스레드들이 락 획득을 기다리는 데 소요된 총 시간을 나타냅니다. | + | `LocalThreadPoolJobs` | 로컬 thread pool에 푸시된 작업의 개수를 계산합니다. | + | `LocalThreadPoolBusyMicroseconds` | 스레드가 실제 작업을 수행하는 데 사용한 총 시간을 나타냅니다. | + | `LocalThreadPoolJobWaitTimeMicroseconds` | thread pool에 작업이 스케줄된 시점부터 워커 스레드가 해당 작업을 가져와 실행을 시작하는 시점까지의 경과 시간을 측정합니다. 이 메트릭은 작업 처리 지연을 파악하는 데 도움이 되며, thread pool이 새로운 작업에 얼마나 신속하게 반응하는지를 보여줍니다. | + | `RemoteReadThrottlerBytes` | 「max_remote_read_network_bandwidth_for_server」/「max_remote_read_network_bandwidth」 throttler를 통해 전송된 바이트의 수입니다. | + | `RemoteWriteThrottlerBytes` | 「max_remote_write_network_bandwidth_for_server」/「max_remote_write_network_bandwidth」 throttler를 통해 전송된 바이트의 수입니다. | + | `InsertedRows` | 모든 테이블에 대해 SQL INSERT로 삽입된 행(row)의 개수입니다. | + | `InsertedBytes` | 모든 테이블에 INSERT된 바이트 수(비압축; 메모리에 저장된 컬럼 기준)입니다. | + | `ZooKeeperInit` | ZooKeeper와의 연결이 설정된 총 횟수입니다. | + | `ZooKeeperTransactions` | 읽기, 쓰기 작업과 멀티 트랜잭션을 모두 포함한 ZooKeeper 작업의 총 횟수입니다. | + | `ZooKeeperList` | ZooKeeper에 대한 'list'(getChildren) 요청의 총 횟수입니다. | + | `ZooKeeperCreate` | ZooKeeper에 대한 'create' 요청의 총 횟수입니다. | + | `ZooKeeperRemove` | ZooKeeper에 대한 'remove' 요청의 총 횟수입니다. | + | `ZooKeeperExists` | ZooKeeper에 대한 'exists' 요청의 총 횟수입니다. | + | `ZooKeeperGet` | ZooKeeper에 대한 'get' 요청의 총 횟수입니다. | + | `ZooKeeperSet` | ZooKeeper에 대한 'set' 요청의 총 횟수입니다. | + | `ZooKeeperMulti` | ZooKeeper에 대한 'multi' 요청(복합 트랜잭션)의 총 횟수입니다. | + | `ZooKeeperMultiRead` | ZooKeeper에 대한 읽기 'multi' 요청(복합 트랜잭션)의 총 횟수입니다. | + | `ZooKeeperMultiWrite` | ZooKeeper에 대한 쓰기 'multi' 요청(복합 트랜잭션)의 총 횟수입니다. | + | `ZooKeeperSync` | ZooKeeper에 대한 'sync' 요청의 총 횟수입니다. 이러한 요청은 거의 필요하지 않거나 사용할 일이 없습니다. | + | `ZooKeeperClose` | ZooKeeper와의 연결이 자발적으로 종료된 총 횟수입니다. | + | `ZooKeeperWatchResponse` | ZooKeeper로부터 watch 알림을 수신한 총 횟수입니다. | + | `ZooKeeperWaitMicroseconds` | 요청을 보낸 이후 ZooKeeper의 응답을 대기하는 데 소요된 마이크로초 단위의 누적 시간입니다(모든 요청 스레드에 대해 합산한 값). | + | `ZooKeeperBytesSent` | ZooKeeper와 통신하는 동안 네트워크를 통해 전송된 바이트 수입니다. | + | `ZooKeeperBytesReceived` | ZooKeeper와 통신하는 동안 네트워크를 통해 수신된 바이트 수입니다. | + | `DistributedConnectionTries` | 분산 연결 시도의 총 횟수입니다. | + | `DistributedConnectionUsable` | 사용 가능한 서버(필요한 테이블은 있으나 오래되었을 수 있음)에 대한 분산 연결이 성공한 총 횟수입니다. | + | `SuspendSendingQueryToShard` | async_query_sending_for_remote가 활성화된 상태에서 세그먼트로의 쿼리 전송이 일시적으로 중단된 총 횟수입니다. | + | `CompileFunction` | 복잡한 표현식에 대한 fused function을 만들기 위해 LLVM 코드 컴파일을 시작한 총 횟수입니다. | + | `CompileExpressionsMicroseconds` | 표현식을 LLVM 코드로 컴파일하는 데 소요된 총 시간입니다. | + | `CompileExpressionsBytes` | 표현식 컴파일에 사용된 바이트 수입니다. | + | `QueryPlanOptimizeMicroseconds` | 쿼리 플랜 최적화를 실행하는 데 소요된 총 시간입니다. | + | `SelectedParts` | MergeTree 테이블에서 읽기로 선택된 데이터 파트의 개수입니다. | + | `SelectedPartsTotal` | MergeTree 테이블에서 읽을 파트를 선택하기 전 전체 데이터 파트의 개수입니다. | + | `SelectedRanges` | MergeTree 테이블에서 읽기로 선택된 모든 데이터 파트에 포함된 (서로 인접하지 않은) 범위의 개수입니다. | + | `SelectedMarks` | MergeTree 테이블에서 읽기로 선택된 마크(인덱스 그래뉼)의 개수입니다. | + | `SelectedMarksTotal` | MergeTree 테이블에서 읽을 마크를 선택하기 전 전체 마크(인덱스 그래뉼)의 개수입니다. | + | `SelectedRows` | 모든 테이블에서 SELECT된 행의 개수입니다. | + | `SelectedBytes` | 모든 테이블에서 SELECT된 바이트 수입니다(메모리에 저장된 컬럼 기준 비압축 크기). | + | `RowsReadByMainReader` | MergeTree 테이블에서 메인 리더(main reader)가 읽은 행의 개수입니다(PREWHERE 단계 이후). | + | `RowsReadByPrewhereReaders` | MergeTree 테이블에서 prewhere 리더들이 읽은 행의 총 개수입니다. | + | `LoadedDataParts` | 초기화 중 MergeTree 테이블이 로드한 데이터 파트의 개수입니다. | + | `LoadedDataPartsMicroseconds` | 초기화 중 MergeTree 테이블이 데이터 파트를 로드하는 데 사용한 시간(마이크로초)입니다. | + | `FilteringMarksWithPrimaryKeyMicroseconds` | PK(기본 키)를 기준으로 파트를 필터링하는 데 사용된 시간입니다. | + | `WaitMarksLoadMicroseconds` | 마크를 로드하는 데 사용된 시간입니다. | + | `BackgroundLoadingMarksTasks` | 마크를 로드하기 위한 백그라운드 태스크의 개수입니다. | + | `MarksTasksFromCache` | 마크가 이미 캐시에 존재하여 동기적으로 로드된 횟수입니다. | + | `LoadedMarksFiles` | 로드된 마크 파일의 개수입니다. | + | `LoadedMarksCount` | 로드된 마크의 개수입니다(컬럼 전체 합계). | + | `LoadedMarksMemoryBytes` | 로드된 마크의 메모리 내 표현 크기(바이트)입니다. | + | `LoadedPrimaryIndexFiles` | 로드된 기본 인덱스(primary index) 파일의 개수입니다. | + | `LoadedPrimaryIndexRows` | 로드된 기본 키(primary key)의 행 개수입니다. | + | `LoadedPrimaryIndexBytes` | 로드된 기본 키(primary key)의 바이트 수입니다. | + | `Merge` | 실행된 백그라운드 머지(merge) 작업의 개수입니다. | + | `MergeSourceParts` | 머지 대상으로 스케줄된 소스 파트의 개수입니다. | + | `MergedRows` | 백그라운드 머지를 위해 읽은 행의 개수입니다(머지 이전 행 개수). | + | `MergedColumns` | 머지의 수평 단계에서 머지된 컬럼의 개수입니다. | + | `MergedUncompressedBytes` | 백그라운드 머지를 위해 읽은 비압축 바이트 수입니다(메모리에 저장된 컬럼 기준, 머지 이전 값). | + | `MergeTotalMilliseconds` | 백그라운드 머지에 소요된 전체 시간입니다. | + | `MergeExecuteMilliseconds` | 백그라운드 머지 실행에 사용된 총 바쁜 시간(busy time)입니다. | + | `MergeHorizontalStageTotalMilliseconds` | 백그라운드 머지의 수평 단계에 소요된 전체 시간입니다. | + | `MergeHorizontalStageExecuteMilliseconds` | 백그라운드 머지의 수평 단계를 실행하는 데 사용된 총 바쁜 시간입니다. | + | `MergeVerticalStageTotalMilliseconds` | 백그라운드 머지의 수직 단계에 소요된 전체 시간입니다. | + | `MergeProjectionStageTotalMilliseconds` | 백그라운드 머지의 projection 단계에 소요된 전체 시간입니다. | + | `MergeProjectionStageExecuteMilliseconds` | 백그라운드 머지의 projection 단계를 실행하는 데 사용된 총 바쁜 시간입니다. | + | `MergePrewarmStageTotalMilliseconds` | 백그라운드 머지의 prewarm 단계에 소요된 총 시간입니다. | + | `MergePrewarmStageExecuteMilliseconds` | 백그라운드 머지의 prewarm 단계를 실행하는 데 소요된 총 busy 시간입니다. | + | `MergeTreeDataWriterRows` | MergeTree 테이블에 INSERT된 행(row) 개수입니다. | + | `MergeTreeDataWriterUncompressedBytes` | MergeTree 테이블에 INSERT된 데이터 중, 메모리에 저장된 상태의 컬럼 기준 비압축 바이트 수입니다. | + | `MergeTreeDataWriterCompressedBytes` | MergeTree 테이블에 INSERT된 데이터에 대해 파일 시스템에 기록된 바이트 수입니다. | + | `MergeTreeDataWriterBlocks` | MergeTree 테이블에 INSERT된 블록 수입니다. 각 블록은 레벨 0 데이터 파트를 형성합니다. | + | `MergeTreeDataWriterBlocksAlreadySorted` | 이미 정렬된 상태로 MergeTree 테이블에 INSERT된 블록 수입니다. | + | `MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` | MergeMutate executor 태스크에 대해 executeStep()에서 소요된 시간입니다. | + | `MergeMutateBackgroundExecutorTaskResetMicroseconds` | MergeMutate executor의 태스크를 리셋하는 데 소요된 시간입니다. | + | `CommonBackgroundExecutorTaskExecuteStepMicroseconds` | Common executor 태스크에 대해 executeStep()에서 소요된 시간입니다. | + | `CommonBackgroundExecutorTaskResetMicroseconds` | Common executor의 태스크를 리셋하는 데 소요된 시간입니다. | + | `MergeTreeDataWriterSortingBlocksMicroseconds` | 블록을 정렬하는 데 소요된 시간입니다. | + | `InsertedCompactParts` | Compact 포맷으로 삽입된 파트 수입니다. | + | `MergedIntoCompactParts` | Compact 포맷으로 머지된 파트 수입니다. | + | `RegexpWithMultipleNeedlesCreated` | 여러 needle을 가지는 정규식(VectorScan 라이브러리 사용)이 컴파일된 횟수입니다. | + | `RegexpWithMultipleNeedlesGlobalCacheHit` | 글로벌 캐시에서 여러 needle을 가지는 컴파일된 정규식(VectorScan 라이브러리 사용)을 가져온 횟수입니다. | + | `RegexpWithMultipleNeedlesGlobalCacheMiss` | 글로벌 캐시에서 여러 needle을 가지는 컴파일된 정규식(VectorScan 라이브러리 사용)을 가져오는 데 실패한 횟수입니다. | + | `ContextLock` | Context의 락을 획득하거나 획득을 시도한 횟수입니다. 이는 글로벌 락입니다. | + | `ContextLockWaitMicroseconds` | Context 락 대기 시간(마이크로초)입니다. | + | `RWLockAcquiredReadLocks` | 읽기 락이 획득된 횟수입니다(heavy RWLock에서). | + | `PartsLockHoldMicroseconds` | MergeTree 테이블에서 데이터 파트 락을 보유하는 데 소요된 총 시간입니다. | + | `PartsLockWaitMicroseconds` | MergeTree 테이블에서 데이터 파트 락을 기다리는 데 소요된 총 시간입니다. | + | `RealTimeMicroseconds` | 처리 스레드(쿼리 및 기타 태스크)에서 사용된 전체 벽시계(wall-clock) 시간입니다(합산한 값입니다). | + | `UserTimeMicroseconds` | 처리 스레드(쿼리 및 기타 태스크)에서 사용자 모드에서 CPU 명령을 실행하는 데 소요된 전체 시간입니다. 여기에는 메인 메모리 접근, 캐시 미스, 분기 예측 실패, 하이퍼스레딩 등으로 인해 CPU 파이프라인이 정지된 시간이 포함됩니다. | + | `SystemTimeMicroseconds` | 처리 스레드(쿼리 및 기타 태스크)에서 OS 커널 모드에서 CPU 명령을 실행하는 데 소요된 전체 시간입니다. 이는 블로킹 syscall 동안의 대기 시간을 제외한, syscall에서 소요된 시간입니다. | + | `MemoryAllocatorPurge` | 메모리 할당자 purge가 요청된 전체 횟수입니다. | + | `MemoryAllocatorPurgeTimeMicroseconds` | 메모리 할당자를 정리(purge)하는 데 소요된 총 시간입니다. | + | `SoftPageFaults` | 쿼리 실행 스레드에서 발생한 소프트 페이지 폴트 수입니다. 소프트 페이지 폴트는 일반적으로 메모리 할당자 캐시 미스로 인해 발생하며, OS로부터 새로운 메모리 매핑과 이후 물리 메모리 페이지 할당이 필요함을 의미합니다. | + | `OSCPUWaitMicroseconds` | 스레드가 실행 가능한 상태였지만 OS 관점에서 스케줄링을 기다리며 대기한 총 시간입니다. | + | `OSCPUVirtualTimeMicroseconds` | OS 관점에서 관측되는 CPU 사용 시간입니다. 가상화로 인해 강제로 발생하는 대기 시간은 포함하지 않습니다. | + | `OSWriteBytes` | 디스크 또는 블록 디바이스에 기록된 바이트 수입니다. 페이지 캐시의 더티 페이지에 있는 바이트는 포함하지 않습니다. OS가 비동기적으로 기록한 데이터는 포함되지 않을 수 있습니다. | + | `OSReadChars` | 페이지 캐시를 포함하여 파일 시스템에서 읽은 바이트 수입니다. | + | `OSWriteChars` | 페이지 캐시를 포함하여 파일 시스템에 기록한 바이트 수입니다. | + | `QueryProfilerRuns` | QueryProfiler가 실행된 총 횟수입니다. | + | `S3ReadMicroseconds` | S3 스토리지에 대한 GET 및 HEAD 요청에 소요된 시간입니다. | + | `S3ReadRequestsCount` | S3 스토리지에 대한 GET 및 HEAD 요청 수입니다. | + | `S3ReadRequestsErrors` | S3 스토리지에 대한 GET 및 HEAD 요청에서 발생한 비스로틀링(non-throttling) 오류 수입니다. | + | `S3ReadRequestAttempts` | S3 스토리지에 대한 GET 및 HEAD 요청의 시도 횟수입니다. 최초 시도와 모든 재시도를 포함하지만, S3 재시도 전략에 의해 내부적으로 수행되는 재시도는 제외합니다. | + | `S3WriteMicroseconds` | S3 스토리지에 대한 POST, DELETE, PUT 및 PATCH 요청에 소요된 시간입니다. | + | `S3WriteRequestsCount` | S3 스토리지에 대한 POST, DELETE, PUT 및 PATCH 요청 수입니다. | + | `S3WriteRequestAttempts` | S3 스토리지에 대한 POST, DELETE, PUT 및 PATCH 요청의 시도 횟수입니다. 최초 시도와 모든 재시도를 포함하지만, 재시도 전략에 의해 내부적으로 수행되는 재시도는 제외합니다. | + | `DiskS3ReadMicroseconds` | DiskS3 스토리지에 대한 GET 및 HEAD 요청에 소요된 시간입니다. | + | `DiskS3ReadRequestsCount` | DiskS3 스토리지에 대한 GET 및 HEAD 요청 수입니다. | + | `DiskS3ReadRequestsErrors` | DiskS3 스토리지에 대한 GET 및 HEAD 요청에서 발생한 비스로틀링(non-throttling) 오류 수입니다. | + | `DiskS3ReadRequestAttempts` | DiskS3 스토리지에 대한 GET 및 HEAD 요청의 시도 횟수입니다. 최초 시도와 모든 재시도를 포함하지만, S3 재시도 전략에 의해 내부적으로 수행되는 재시도는 제외합니다. | + | `DiskS3WriteMicroseconds` | DiskS3 스토리지에 대한 POST, DELETE, PUT 및 PATCH 요청에 소요된 시간입니다. | + | `DiskS3WriteRequestsCount` | DiskS3 스토리지에 대한 POST, DELETE, PUT 및 PATCH 요청 수입니다. | + | `DiskS3WriteRequestAttempts` | 재시도 전략에서 내부적으로 수행되는 재시도를 제외하고, 최초 시도와 모든 재시도를 합산해 DiskS3 스토리지에 대해 POST, DELETE, PUT, PATCH 요청을 시도한 총 횟수입니다. | + | `S3DeleteObjects` | S3 API DeleteObject(s) 호출 횟수입니다. | + | `S3ListObjects` | S3 API ListObjects 호출 횟수입니다. | + | `S3HeadObject` | S3 API HeadObject 호출 횟수입니다. | + | `S3PutObject` | S3 API PutObject 호출 횟수입니다. | + | `S3GetObject` | S3 API GetObject 호출 횟수입니다. | + | `DiskS3DeleteObjects` | DiskS3 API DeleteObject(s) 호출 횟수입니다. | + | `DiskS3ListObjects` | DiskS3 API ListObjects 호출 횟수입니다. | + | `DiskS3HeadObject` | DiskS3 API HeadObject 호출 횟수입니다. | + | `DiskS3PutObject` | DiskS3 API PutObject 호출 횟수입니다. | + | `DiskS3GetObject` | DiskS3 API GetObject 호출 횟수입니다. | + | `DiskPlainRewritableS3DirectoryCreated` | S3ObjectStorage용 「plain_rewritable」 메타데이터 스토리지에서 생성된 디렉터리 수입니다. | + | `DiskPlainRewritableS3DirectoryRemoved` | S3ObjectStorage용 「plain_rewritable」 메타데이터 스토리지에서 제거된 디렉터리 수입니다. | + | `S3Clients` | 생성된 S3 클라이언트 수입니다. | + | `ReadBufferFromS3Microseconds` | S3에서 데이터를 읽는 데 소요된 시간입니다. | + | `ReadBufferFromS3InitMicroseconds` | S3에 대한 연결을 초기화하는 데 소요된 시간입니다. | + | `ReadBufferFromS3Bytes` | S3에서 읽은 바이트 수입니다. | + | `WriteBufferFromS3Microseconds` | S3에 데이터를 쓰는 데 소요된 시간입니다. | + | `WriteBufferFromS3Bytes` | S3에 기록한 바이트 수입니다. | + | `CachedReadBufferReadFromCacheHits` | 파일 시스템 캐시에서 읽을 때 캐시 적중이 발생한 횟수입니다. | + | `CachedReadBufferReadFromCacheMisses` | 파일 시스템 캐시에서 읽을 때 캐시 미스가 발생한 횟수입니다. | + | `CachedReadBufferReadFromSourceMicroseconds` | 파일 시스템 캐시의 소스(원격 파일 시스템 등)에서 읽는 데 소요된 시간입니다. | + | `CachedReadBufferReadFromCacheMicroseconds` | 파일 시스템 캐시에서 읽는 데 소요된 시간입니다. | + | `CachedReadBufferReadFromSourceBytes` | 파일 시스템 캐시의 소스(원격 파일 시스템 등)에서 읽은 바이트 수입니다. | + | `CachedReadBufferReadFromCacheBytes` | 파일 시스템 캐시에서 읽은 바이트 수입니다. | + | `CachedReadBufferCacheWriteBytes` | 소스(원격 파일 시스템 등)에서 파일 시스템 캐시로 기록된 바이트 수입니다. | + | `CachedReadBufferCacheWriteMicroseconds` | 파일 시스템 캐시에 데이터를 기록하는 데 소요된 시간입니다. | + | `CachedReadBufferCreateBufferMicroseconds` | 버퍼를 준비하는 데 소요된 시간입니다. | + | `CachedWriteBufferCacheWriteBytes` | 소스(원격 파일 시스템 등)에서 파일 시스템 캐시로 기록된 바이트 수입니다. | + | `CachedWriteBufferCacheWriteMicroseconds` | 파일 시스템 캐시에 데이터를 기록하는 데 소요된 시간입니다. | + | `FilesystemCacheLoadMetadataMicroseconds` | 파일 시스템 캐시 메타데이터를 로드하는 데 소요된 시간입니다. | + | `FilesystemCacheCreatedKeyDirectories` | 생성된 키 디렉터리 수입니다. | + | `FilesystemCacheBackgroundDownloadQueuePush` | 파일 시스템 캐시에서 백그라운드 다운로드용으로 전송된 파일 세그먼트 수입니다. | + | `FilesystemCacheLockKeyMicroseconds` | 캐시 키를 잠그는 데 소요된 시간입니다. | + | `FilesystemCacheLockMetadataMicroseconds` | 파일 시스템 캐시 메타데이터를 잠그는 데 소요된 시간입니다. | + | `FilesystemCacheLockCacheMicroseconds` | 파일 시스템 캐시를 잠그는 데 소요된 시간입니다. | + | `FilesystemCacheReserveMicroseconds` | 파일 시스템 캐시 공간을 예약하는 데 소요된 시간입니다. | + | `FilesystemCacheReserveAttempts` | 파일 시스템 캐시 공간 예약을 시도한 횟수입니다. | + | `FilesystemCacheGetOrSetMicroseconds` | 파일 시스템 캐시에서 getOrSet()을 실행하는 데 소요된 시간입니다. | + | `FilesystemCacheGetMicroseconds` | 파일 시스템 캐시에서 get()을 실행하는 데 소요된 시간입니다. | + | `FileSegmentCompleteMicroseconds` | 파일 시스템 캐시에서 FileSegment::complete()가 수행되는 동안 소요된 시간입니다. | + | `FileSegmentLockMicroseconds` | 파일 세그먼트 잠금에 소요된 시간입니다. | + | `FileSegmentWriteMicroseconds` | 파일 세그먼트에서 write()를 수행하는 데 소요된 시간입니다. | + | `FileSegmentUseMicroseconds` | 파일 세그먼트에서 use()를 수행하는 데 소요된 시간입니다. | + | `FileSegmentHolderCompleteMicroseconds` | 파일 세그먼트 홀더에서 complete()를 수행하는 데 소요된 시간입니다. | + | `FileSegmentFailToIncreasePriority` | 캐시 잠금에 대한 높은 경합으로 인해 우선순위를 올리지 못한 횟수입니다. | + | `FilesystemCacheHoldFileSegments` | 파일 시스템 캐시에 보유된 파일 세그먼트 개수입니다. | + | `FilesystemCacheUnusedHoldFileSegments` | 파일 시스템 캐시에 보유되었으나 사용되지 않은 파일 세그먼트 개수입니다(seek 또는 LIMIT n 등으로 인해 미사용). | + | `RemoteFSSeeks` | 비동기 버퍼에 대한 전체 seek 횟수입니다. | + | `RemoteFSPrefetches` | 원격 파일 시스템에서 비동기 읽기로 수행된 미리 읽기(prefetch) 횟수입니다. | + | `RemoteFSCancelledPrefetches` | seek으로 인해 취소된 미리 읽기(prefetch) 횟수입니다. | + | `RemoteFSUnusedPrefetches` | 버퍼가 파괴될 때 대기 중이던 미리 읽기(prefetch) 개수입니다. | + | `RemoteFSPrefetchedReads` | 미리 읽기된(prefetched) 버퍼에서 발생한 읽기 작업(읽기) 횟수입니다. | + | `RemoteFSPrefetchedBytes` | 미리 읽기된(prefetched) 버퍼에서 읽은 바이트 수입니다. | + | `RemoteFSUnprefetchedReads` | 미리 읽기되지 않은 버퍼에서 발생한 읽기 작업(읽기) 횟수입니다. | + | `RemoteFSUnprefetchedBytes` | 미리 읽기되지 않은 버퍼에서 읽은 바이트 수입니다. | + | `RemoteFSBuffers` | 원격 파일 시스템에서 비동기 읽기를 위해 생성된 버퍼 개수입니다. | + | `WaitPrefetchTaskMicroseconds` | 미리 읽기된(prefetched) 리더를 기다리는 데 소요된 시간입니다. | + | `ThreadpoolReaderTaskMicroseconds` | 비동기 읽기에서 데이터를 가져오는 데 소요된 시간입니다. | + | `ThreadpoolReaderReadBytes` | 비동기 읽기에서 스레드 풀 작업으로 읽은 바이트 수입니다. | + | `ThreadpoolReaderSubmit` | 비동기 읽기에서 스레드 풀 작업으로 읽은 바이트 수입니다. | + | `ThreadpoolReaderSubmitReadSynchronously` | 스레드 풀에 작업을 스케줄하지 않고 동기적으로 읽기를 수행한 횟수입니다. | + | `ThreadpoolReaderSubmitReadSynchronouslyBytes` | 동기적으로 읽은 바이트 수입니다. | + | `ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` | 동기적으로 읽는 데 소요된 시간입니다. | + | `ThreadpoolReaderSubmitLookupInCacheMicroseconds` | 콘텐츠가 캐시에 있는지 확인하는 데 소요된 시간입니다. | + | `FileSegmentWaitReadBufferMicroseconds` | 파일 세그먼트 단위 메트릭입니다. 내부 읽기 버퍼(캐시 대기 포함)를 기다리는 데 소요된 시간입니다. | + | `FileSegmentReadMicroseconds` | 파일 세그먼트 단위 메트릭입니다. 파일에서 읽는 데 소요된 시간입니다. | + | `FileSegmentCacheWriteMicroseconds` | 파일 세그먼트 단위 메트릭입니다. 캐시에 데이터를 쓰는 데 소요된 시간입니다. | + | `FileSegmentUsedBytes` | 파일 세그먼트 단위 메트릭입니다. 현재 파일 세그먼트에서 실제로 사용된 바이트 수입니다. | + | `ThreadPoolReaderPageCacheMiss` | ThreadPoolReader 내부에서, 읽기가 페이지 캐시에서 수행되지 않아 스레드 풀로 위임된 횟수입니다. | + | `ThreadPoolReaderPageCacheMissBytes` | ThreadPoolReader 내부에서, 읽기가 페이지 캐시에서 수행되지 않아 스레드 풀로 위임되었을 때 읽은 바이트 수입니다. | + | `ThreadPoolReaderPageCacheMissElapsedMicroseconds` | ThreadPoolReader의 비동기 작업 내부에서, 읽기가 페이지 캐시에서 수행되지 않았을 때 데이터를 읽는 데 소요된 시간입니다. | + | `SynchronousReadWaitMicroseconds` | 비동기 로컬 읽기에서 동기 읽기를 기다리는 데 소요된 시간입니다. | + | `AsynchronousRemoteReadWaitMicroseconds` | 비동기 원격 읽기를 기다리는 데 소요된 시간입니다. | + | `SynchronousRemoteReadWaitMicroseconds` | 동기 원격 읽기를 기다리는 데 소요된 시간입니다. | + | `MainConfigLoads` | 메인 구성(main configuration)이 다시 로드된 횟수입니다. | + | `MetadataFromKeeperCacheHit` | Keeper에 요청하지 않고 캐시에서 객체 스토리지 메타데이터 요청에 응답한 횟수입니다. | + | `MetadataFromKeeperCacheMiss` | 객체 스토리지 메타데이터 요청에 Keeper가 응답해야 했던 횟수입니다. | + | `MetadataFromKeeperCacheUpdateMicroseconds` | Keeper 응답 대기 시간을 포함하여 캐시를 업데이트하는 데 소요된 총 시간입니다. | + | `MetadataFromKeeperUpdateCacheOneLevel` | 디렉터리 트리의 한 레벨에 대해 캐시 업데이트가 수행된 횟수입니다. | + | `MetadataFromKeeperTransactionCommit` | 메타데이터 트랜잭션 커밋을 시도한 횟수입니다. | + | `MetadataFromKeeperCleanupTransactionCommit` | 삭제된 객체 정리를 위한 메타데이터 트랜잭션 커밋을 시도한 횟수입니다. | + | `MetadataFromKeeperOperations` | Keeper에 요청을 수행한 횟수입니다. | + | `MetadataFromKeeperIndividualOperations` | Keeper에 대한 단일 또는 다중 요청으로 읽거나 기록된 경로의 수입니다. | + | `MetadataFromKeeperIndividualOperationsMicroseconds` | Keeper에 대한 단일 또는 다중 요청을 처리하는 동안 소요된 시간입니다. | + | `SharedMergeTreeMetadataCacheHintLoadedFromCache` | Keeper로 가지 않고 메타데이터 캐시 힌트를 캐시에서 찾은 횟수입니다. | + | `ScalarSubqueriesCacheMiss` | 스칼라 서브쿼리에서의 읽기가 캐시되지 않아 처음부터 다시 계산해야 했던 횟수입니다. | + | `ServerStartupMilliseconds` | 서버를 시작한 시점부터 소켓 리스닝을 시작할 때까지 경과한 시간(밀리초)입니다. | + | `MergerMutatorsGetPartsForMergeElapsedMicroseconds` | 데이터 파트 스냅샷을 생성하고 그로부터 범위를 구성하는 데 소요된 시간입니다. | + | `MergerMutatorPrepareRangesForMergeElapsedMicroseconds` | 머지 프레디킷(merge predicate)에 따라 머지할 수 있는 파트 범위를 준비하는 데 소요된 시간입니다. | + | `MergerMutatorSelectPartsForMergeElapsedMicroseconds` | 머지할 수 있는 범위에서 파트를 선택하는 데 소요된 시간입니다. | + | `MergerMutatorRangesForMergeCount` | 머지 후보 범위의 개수입니다. | + | `MergerMutatorPartsInRangesForMergeCount` | 머지 후보 파트의 개수입니다. | + | `MergerMutatorSelectRangePartsCount` | 머지를 위해 선택된 범위에 포함된 파트의 개수입니다. | + | `AsyncLoaderWaitMicroseconds` | 쿼리가 비동기 로더 작업을 기다린 전체 시간입니다. | + | `LogTrace` | TRACE 레벨 로그 메시지 개수입니다. | + | `LogDebug` | DEBUG 레벨 로그 메시지 개수입니다. | + | `LogInfo` | INFO 레벨 로그 메시지 개수입니다. | + | `LogWarning` | WARNING 레벨 로그 메시지 개수입니다. | + | `LogError` | ERROR 레벨 로그 메시지 개수입니다. | + | `LoggerElapsedNanoseconds` | 로그 기록에 소요된 누적 시간입니다. | + | `InterfaceHTTPSendBytes` | HTTP 인터페이스를 통해 전송된 바이트 수입니다. | + | `InterfaceHTTPReceiveBytes` | HTTP 인터페이스를 통해 수신된 바이트 수입니다. | + | `InterfaceNativeSendBytes` | 네이티브 인터페이스를 통해 전송된 바이트 수입니다. | + | `InterfaceNativeReceiveBytes` | 네이티브 인터페이스를 통해 수신된 바이트 수입니다. | + | `InterfacePrometheusSendBytes` | Prometheus 인터페이스를 통해 전송된 바이트 수입니다. | + | `InterfacePrometheusReceiveBytes` | Prometheus 인터페이스를 통해 수신된 바이트 수입니다. | + | `InterfaceInterserverSendBytes` | 인터서버 인터페이스를 통해 전송된 바이트 수입니다. | + | `InterfaceInterserverReceiveBytes` | 인터서버 인터페이스를 통해 수신된 바이트 수입니다. | + | `SharedMergeTreeVirtualPartsUpdates` | 가상 파트 업데이트 횟수입니다. | + | `SharedMergeTreeVirtualPartsUpdatesByLeader` | 리더에 의해 수행된 가상 파트 업데이트 횟수입니다. | + | `SharedMergeTreeVirtualPartsUpdateMicroseconds` | 가상 파트를 업데이트하는 데 소요된 시간(마이크로초)입니다. | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` | ZooKeeper에서 발생한 가상 파트 업데이트 횟수입니다. | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` | ZooKeeper에서 발생한 가상 파트 업데이트에 소요된 시간(마이크로초)입니다. | + | `SharedMergeTreeVirtualPartsUpdatesPeerNotFound` | 피어에서 수신한 가상 파트 업데이트가 적절한 피어를 찾지 못해 실패한 횟수입니다. | + | `SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` | 가상 파트 업데이트 리더 선출에 성공한 횟수입니다. | + | `SharedMergeTreeMergeMutationAssignmentAttempt` | 머지 또는 뮤테이션 할당을 시도한 총 횟수입니다. | + | `SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` | 머지 또는 뮤테이션 할당을 시도했으나 병합할 대상이 없어 실패한 총 횟수입니다. | + | `SharedMergeTreePartsKillerRuns` | 파트 제거 작업자(parts killer)가 실행된 총 횟수입니다. | + | `SharedMergeTreePartsKillerMicroseconds` | 파트 제거 작업자 메인 스레드가 사용한 총 시간입니다. | + | `SharedMergeTreeMergeSelectingTaskMicroseconds` | SMT에서 머지 선택 작업에 사용된 시간(마이크로초)입니다. | + | `SharedMergeTreeScheduleDataProcessingJob` | scheduleDataProcessingJob이 호출된 총 횟수입니다. | + | `SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` | scheduleDataProcessingJob이 호출되었으나 수행할 작업이 없었던 총 횟수입니다. | + | `SharedMergeTreeScheduleDataProcessingJobMicroseconds` | scheduleDataProcessingJob 실행 시간입니다. | + | `SharedMergeTreeHandleBlockingPartsMicroseconds` | scheduleDataProcessingJob에서 블로킹 파트를 처리하는 데 걸린 시간입니다. | + | `SharedMergeTreeHandleFetchPartsMicroseconds` | scheduleDataProcessingJob에서 가져온(fetched) 파트를 처리하는 데 걸린 시간입니다. | + | `SharedMergeTreeHandleOutdatedPartsMicroseconds` | scheduleDataProcessingJob에서 오래된(outdated) 파트를 처리하는 데 걸린 시간입니다. | + | `SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` | scheduleDataProcessingJob에서 tryUpdateDiskMetadataCacheForPart를 실행하는 데 걸린 시간입니다. | + | `DiskConnectionsCreated` | 디스크용으로 생성된 연결 수입니다. | + | `DiskConnectionsReused` | 디스크용으로 재사용된 연결 수입니다. | + | `DiskConnectionsReset` | 디스크용으로 리셋된 연결 수입니다. | + | `DiskConnectionsPreserved` | 디스크용으로 유지된 연결 수입니다. | + | `DiskConnectionsExpired` | 디스크용으로 만료된 연결 수입니다. | + | `DiskConnectionsElapsedMicroseconds` | 디스크용 연결을 생성하는 데 소요된 총 시간입니다. | + | `HTTPConnectionsCreated` | 클라이언트 HTTP 연결이 생성된 횟수입니다. | + | `HTTPConnectionsReused` | 클라이언트 HTTP 연결이 재사용된 횟수입니다. | + | `HTTPConnectionsPreserved` | 클라이언트 HTTP 연결이 유지된 횟수입니다. | + | `HTTPConnectionsElapsedMicroseconds` | 클라이언트 HTTP 연결을 생성하는 데 소요된 총 시간입니다. | + | `HTTPServerConnectionsCreated` | 서버 HTTP 연결이 생성된 횟수입니다. | + | `HTTPServerConnectionsReused` | 서버 HTTP 연결이 재사용된 횟수입니다. | + | `HTTPServerConnectionsPreserved` | 서버 HTTP 연결이 유지된 횟수입니다. 연결이 성공적으로 keep-alive 상태로 유지된 경우입니다. | + | `HTTPServerConnectionsExpired` | 만료된 서버 HTTP 연결 수입니다. | + | `HTTPServerConnectionsReset` | 리셋된 서버 HTTP 연결 수입니다. 서버가 연결을 종료한 경우입니다. | + | `AddressesDiscovered` | HTTP 연결에 대한 DNS 조회 결과에서 새로 발견된 주소의 총 개수입니다. | + | `ReadWriteBufferFromHTTPRequestsSent` | ReadWriteBufferFromHTTP가 전송한 HTTP 요청 수입니다. | + | `ReadWriteBufferFromHTTPBytes` | ReadWriteBufferFromHTTP가 송수신한 페이로드 바이트의 총 크기입니다. HTTP 헤더는 포함되지 않습니다. | + | `ConcurrencyControlSlotsGranted` | 쿼리당 1개 스레드를 보장하는 규칙과 SETTING 'use_concurrency_control' = 0인 쿼리에 따라 할당된 CPU 슬롯 수입니다. | + | `ConcurrencyControlSlotsAcquiredNonCompeting` | 경쟁 없이 획득된 CPU 슬롯의 총 개수입니다. | + | `MemoryWorkerRun` | 백그라운드에서 MemoryWorker가 실행(run)을 수행한 횟수입니다. | + | `MemoryWorkerRunElapsedMicroseconds` | MemoryWorker가 백그라운드 작업에 사용한 총 시간입니다. | + | `FilterTransformPassedRows` | 쿼리에서 필터를 통과한 행(row) 수입니다. | + | `FilterTransformPassedBytes` | 쿼리에서 필터를 통과한 바이트 수입니다. | + | `IndexBinarySearchAlgorithm` | 인덱스 마크에서 이진 탐색 알고리즘이 사용된 횟수입니다. | + | `IndexGenericExclusionSearchAlgorithm` | 인덱스 마크에서 일반 배제(generic exclusion) 탐색 알고리즘이 사용된 횟수입니다. | + | `AsyncLoggingConsoleTotalMessages` | 콘솔 로그에 대해 수락되거나 드롭된 메시지가 비동기 큐로 전송된 횟수를 나타냅니다. | + | `AsyncLoggingFileLogTotalMessages` | 파일 로그에 대해 수락되거나 드롭된 메시지가 비동기 큐로 전송된 횟수를 나타냅니다. | + | `AsyncLoggingErrorFileLogTotalMessages` | 에러 파일 로그에 대해 수락되거나 드롭된 메시지가 비동기 큐로 전송된 횟수를 나타냅니다. | + | `AsyncLoggingTextLogTotalMessages` | text_log에 대해 수락되거나 드롭된 메시지가 비동기 큐로 전송된 횟수를 나타냅니다. | + + {/*AUTOGENERATED_END*/ } + + **예시** @@ -40,7 +436,7 @@ SELECT * FROM system.events LIMIT 5 └───────────────────────────────────────┴───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ``` -**추가 참고** +**관련 항목** * [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) — 주기적으로 계산되는 메트릭을 포함합니다. * [system.metrics](/operations/system-tables/metrics) — 즉시 계산되는 메트릭을 포함합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md deleted file mode 100644 index a453a9af236..00000000000 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md +++ /dev/null @@ -1,2618 +0,0 @@ ---- -description: 'ClickHouse 외부 딕셔너리 기능 개요' -sidebar_label: '딕셔너리 정의' -sidebar_position: 35 -slug: /sql-reference/dictionaries -title: '딕셔너리' -doc_type: 'reference' ---- - -import SelfManaged from '@site/i18n/ko/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; -import CloudDetails from '@site/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md'; -import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; -import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; - - -# 딕셔너리 \{#dictionaries\} - -딕셔너리는 다양한 유형의 참조 목록에 편리하게 사용할 수 있는 (`key -> attributes`) 매핑입니다. - -ClickHouse는 쿼리에서 사용할 수 있는 딕셔너리 작업용 특수 함수를 지원합니다. 참조 테이블과 `JOIN`을 사용하는 것보다 함수와 함께 딕셔너리를 사용하는 것이 더 쉽고 효율적입니다. - -ClickHouse는 다음을 지원합니다: - -- [함수 집합](../../sql-reference/functions/ext-dict-functions.md)을 사용하는 딕셔너리. -- 특정 [함수 집합](../../sql-reference/functions/embedded-dict-functions.md)을 가진 [내장 딕셔너리](#embedded-dictionaries). - -:::tip Tutorial -ClickHouse에서 딕셔너리를 처음 사용하는 경우 해당 주제를 다루는 튜토리얼이 준비되어 있습니다. [여기](tutorial.md)를 참고하십시오. -::: - -다양한 데이터 소스에서 사용자 정의 딕셔너리를 추가할 수 있습니다. 딕셔너리의 소스로는 ClickHouse 테이블, 로컬 텍스트 또는 실행 파일, HTTP(S) 리소스, 다른 DBMS 등이 될 수 있습니다. 자세한 내용은 「[Dictionary Sources](#dictionary-sources)」를 참조하십시오. - -ClickHouse는 다음을 수행합니다: - -- 딕셔너리를 RAM에 전체 또는 부분적으로 저장합니다. -- 딕셔너리를 주기적으로 업데이트하고 누락된 값을 동적으로 로드합니다. 다시 말해, 딕셔너리는 동적으로 로드될 수 있습니다. -- XML 파일 또는 [DDL 쿼리](../../sql-reference/statements/create/dictionary.md)로 딕셔너리를 생성할 수 있도록 허용합니다. - -딕셔너리 구성은 하나 이상의 XML 파일에 위치할 수 있습니다. 구성 경로는 [dictionaries_config](../../operations/server-configuration-parameters/settings.md#dictionaries_config) 파라미터에 지정됩니다. - -딕셔너리는 [dictionaries_lazy_load](../../operations/server-configuration-parameters/settings.md#dictionaries_lazy_load) 설정에 따라 서버 시작 시 또는 처음 사용 시 로드될 수 있습니다. - -[dictionaries](/operations/system-tables/dictionaries) 시스템 테이블에는 서버에서 구성된 딕셔너리에 대한 정보가 포함되어 있습니다. 각 딕셔너리에 대해 다음 정보를 확인할 수 있습니다: - -- 딕셔너리 상태. -- 구성 파라미터. -- 딕셔너리에 할당된 RAM 양, 딕셔너리가 성공적으로 로드된 이후 처리된 쿼리 수 등의 메트릭. - - - -## DDL 쿼리로 딕셔너리 생성하기 \{#creating-a-dictionary-with-a-ddl-query\} - -딕셔너리는 [DDL 쿼리](../../sql-reference/statements/create/dictionary.md)로 생성할 수 있으며, DDL로 딕셔너리를 생성하는 방법을 다음과 같은 이유로 권장합니다: - -- 서버 설정 파일에 추가 레코드를 기록할 필요가 없습니다. -- 딕셔너리를 테이블이나 VIEW처럼 일급 객체로 다룰 수 있습니다. -- 딕셔너리 테이블 FUNCTION 대신 익숙한 SELECT를 사용하여 데이터를 직접 읽을 수 있습니다. SELECT 문을 통해 딕셔너리에 직접 접근하는 경우, 캐시된 딕셔너리는 캐시에 존재하는 데이터만 반환하고, 캐시되지 않는 딕셔너리는 저장하고 있는 모든 데이터를 반환한다는 점에 유의하십시오. -- 딕셔너리 이름을 쉽게 변경할 수 있습니다. - -## 설정 파일로 딕셔너리 생성하기 \{#creating-a-dictionary-with-a-configuration-file\} - - - -:::note -설정 파일로 딕셔너리를 생성하는 방법은 ClickHouse Cloud에서는 지원되지 않습니다. 위에서 설명한 대로 DDL을 사용하고, `default` USER로 딕셔너리를 생성하십시오. -::: - -딕셔너리 설정 파일은 다음 형식을 가집니다: - -```xml - - An optional element with any content. Ignored by the ClickHouse server. - - - /etc/metrika.xml - - - - - - - - -``` - -동일한 파일에서 원하는 만큼의 딕셔너리를 [구성](#configuring-a-dictionary)할 수 있습니다. - -:::note -작은 딕셔너리의 값은 `SELECT` 쿼리에서 이를 정의하여 변환할 수 있습니다([transform](../../sql-reference/functions/other-functions.md) 함수를 참조하십시오). 이 기능은 딕셔너리와는 관련이 없습니다. -::: - - -## 딕셔너리 구성하기 \{#configuring-a-dictionary\} - - - -딕셔너리를 XML 파일로 구성하는 경우, 구성은 다음과 같은 구조를 따릅니다: - -```xml - - dict_name - - - - - - - - - - - - - - - - - -``` - -해당 [DDL 쿼리](../../sql-reference/statements/create/dictionary.md)의 구조는 다음과 같습니다. - -```sql -CREATE DICTIONARY dict_name -( - ... -- attributes -) -PRIMARY KEY ... -- complex or single key configuration -SOURCE(...) -- Source configuration -LAYOUT(...) -- Memory layout configuration -LIFETIME(...) -- Lifetime of dictionary in memory -``` - - -## 메모리에 딕셔너리 저장하기 \{#storing-dictionaries-in-memory\} - -메모리에 딕셔너리를 저장하는 방식에는 여러 가지가 있습니다. - -최적의 처리 속도를 제공하는 [flat](#flat), [hashed](#hashed), [complex_key_hashed](#complex_key_hashed) 방식을 사용하는 것을 권장합니다. - -성능 저하 가능성과 최적의 매개변수 선정이 어렵다는 이유로 캐싱(caching)은 권장되지 않습니다. 자세한 내용은 [cache](#cache) 섹션을 참조하십시오. - -딕셔너리 성능을 개선하는 방법은 다음과 같습니다. - -* 딕셔너리 작업을 위한 함수는 `GROUP BY` 이후에 호출합니다. -* 추출할 속성을 단사(injective)로 표시합니다. 서로 다른 키가 서로 다른 속성 값에 대응하면 해당 속성은 단사라고 합니다. 따라서 `GROUP BY`에서 키를 사용해 속성 값을 가져오는 함수를 사용할 경우, 이 함수는 자동으로 `GROUP BY` 밖으로 이동됩니다. - -ClickHouse는 딕셔너리 관련 오류에 대해 예외를 발생시킵니다. 오류 예시는 다음과 같습니다. - -* 액세스하려는 딕셔너리를 로드할 수 없음. -* `cached` 딕셔너리를 쿼리하는 중 오류. - -[system.dictionaries](../../operations/system-tables/dictionaries.md) 테이블에서 딕셔너리 목록과 상태를 확인할 수 있습니다. - - - -구성은 다음과 같습니다. - -```xml - - - ... - - - - - - ... - - -``` - -이에 해당하는 [DDL 쿼리](../../sql-reference/statements/create/dictionary.md): - -```sql -CREATE DICTIONARY (...) -... -LAYOUT(LAYOUT_TYPE(param value)) -- layout settings -... -``` - -레이아웃 이름에 `complex-key*`가 없는 딕셔너리는 키가 [UInt64](../../sql-reference/data-types/int-uint.md) 타입이며, `complex-key*` 딕셔너리는 복합 키(임의의 타입을 사용하는 복잡한 키)를 가집니다. - -XML 딕셔너리에서 [UInt64](../../sql-reference/data-types/int-uint.md) 키는 `` 태그로 정의됩니다. - -구성 예(컬럼 key_column의 타입은 UInt64입니다): - -```xml -... - - - key_column - -... -``` - -복합 `complex` 키 XML 사전은 `` 태그로 정의됩니다. - -복합 키 구성 예시입니다(키는 [String](../../sql-reference/data-types/string.md) 타입의 요소 한 개를 가집니다): - -```xml -... - - - - country_code - String - - -... -``` - - -## 메모리에 딕셔너리를 저장하는 방법 \{#ways-to-store-dictionaries-in-memory\} - -메모리에 딕셔너리 데이터를 저장하는 다양한 방식은 CPU 및 RAM 사용량 간의 절충 관계가 있습니다. 어떤 레이아웃을 사용할지 결정할 때에는 딕셔너리 관련 [블로그 게시물](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)의 [Choosing a Layout](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout) 단락에 제시된 결정 트리를 출발점으로 삼는 것이 좋습니다. - -- [flat](#flat) -- [hashed](#hashed) -- [sparse_hashed](#sparse_hashed) -- [complex_key_hashed](#complex_key_hashed) -- [complex_key_sparse_hashed](#complex_key_sparse_hashed) -- [hashed_array](#hashed_array) -- [complex_key_hashed_array](#complex_key_hashed_array) -- [range_hashed](#range_hashed) -- [complex_key_range_hashed](#complex_key_range_hashed) -- [cache](#cache) -- [complex_key_cache](#complex_key_cache) -- [ssd_cache](#ssd_cache) -- [complex_key_ssd_cache](#complex_key_ssd_cache) -- [direct](#direct) -- [complex_key_direct](#complex_key_direct) -- [ip_trie](#ip_trie) - -### flat \{#flat\} - -딕셔너리는 flat 배열(flat array) 형태로 전체가 메모리에 저장됩니다. 딕셔너리가 사용하는 메모리 양은 (공간 사용 측면에서) 가장 큰 키의 크기에 비례합니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입이며, 값(배열)의 크기는 `max_array_size`(기본값 — 500,000)로 제한됩니다. 딕셔너리를 생성하는 동안 더 큰 키가 발견되면 ClickHouse는 예외를 발생시키고 딕셔너리를 생성하지 않습니다. 딕셔너리 flat 배열의 초기 크기는 `initial_array_size` 설정(기본값 — 1024)으로 제어됩니다. - -모든 유형의 소스를 지원합니다. 업데이트 시에는 데이터(파일 또는 테이블에서)를 전체를 읽어 들입니다. - -이 방법은 사용 가능한 모든 딕셔너리 저장 방식 가운데 가장 뛰어난 성능을 제공합니다. - -구성 예: - -```xml - - - 50000 - 5000000 - - -``` - -또는 - -```sql -LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) -``` - - -### hashed \{#hashed\} - -딕셔너리는 해시 테이블 형태로 전체가 메모리에 저장됩니다. 딕셔너리에는 어떤 식별자를 가진 요소든 개수 제한 없이 포함될 수 있습니다. 실제로는 키의 개수가 수천만 개에 이를 수 있습니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -모든 유형의 소스를 지원합니다. 업데이트 시에는 데이터(파일 또는 테이블에서 가져온 데이터)를 전체를 읽어 처리합니다. - -구성 예시는 다음과 같습니다: - -```xml - - - -``` - -또는 - -```sql -LAYOUT(HASHED()) -``` - -구성 예시: - -```xml - - - - 10 - - - 10000 - - - 0.5 - - -``` - -또는 - -```sql -LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - - -### sparse_hashed \{#sparse_hashed\} - -`hashed`와 유사하지만, 메모리 사용량을 줄이는 대신 CPU 사용량이 더 많습니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -구성 예시: - -```xml - - - - - - - -``` - -또는 - -```sql -LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -이 유형의 딕셔너리에는 `shards`를 사용할 수도 있으며, `sparse_hashed`가 `hashed`보다 느리므로 `shards` 사용은 `hashed`보다 `sparse_hashed`에서 더 중요합니다. - - -### complex_key_hashed \{#complex_key_hashed\} - -이 저장소 유형은 복합 [키](#dictionary-key-and-fields)에 사용합니다. `hashed`와 유사합니다. - -구성 예: - -```xml - - - - - - - -``` - -또는 - -```sql -LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - - -### complex_key_sparse_hashed \{#complex_key_sparse_hashed\} - -이 저장소 유형은 복합 [키](#dictionary-key-and-fields)에 사용되는 유형입니다. [sparse_hashed](#sparse_hashed)와 유사합니다. - -구성 예시: - -```xml - - - - - - - -``` - -또는 - -```sql -LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - - -### hashed_array \{#hashed_array\} - -딕셔너리는 전체가 메모리에 저장됩니다. 각 속성은 배열에 저장됩니다. 키 속성은 해시된 테이블 형태로 저장되며, 여기서 값은 속성 배열의 인덱스입니다. 딕셔너리는 어떤 식별자든 가질 수 있는 요소를 임의 개수만큼 포함할 수 있습니다. 실제로는 키의 개수가 수천만 개에 이를 수 있습니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -모든 유형의 소스를 지원합니다. 업데이트 시에는 파일 또는 테이블에서 데이터를 전체 한 번에 읽습니다. - -구성 예시는 다음과 같습니다: - -```xml - - - - -``` - -또는 - -```sql -LAYOUT(HASHED_ARRAY([SHARDS 1])) -``` - - -### complex_key_hashed_array \{#complex_key_hashed_array\} - -이 저장소 유형은 복합 [키](#dictionary-key-and-fields)에 사용됩니다. [hashed_array](#hashed_array)와 유사합니다. - -구성 예시: - -```xml - - - -``` - -또는 - -```sql -LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) -``` - - -### range_hashed \{#range_hashed\} - -딕셔너리는 메모리에서 정렬된 범위 배열과 각 범위에 대응하는 값들로 구성된 해시 테이블 형태로 저장됩니다. - -이 저장 방식은 `hashed`와 동일하게 동작하며, 키와 함께 날짜/시간(임의의 숫자 타입) 범위도 사용할 수 있습니다. - -예시: 테이블에는 각 광고주에 대한 할인 정보가 다음 형식으로 포함되어 있습니다. - -```text -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 123 │ 2015-01-16 │ 2015-01-31 │ 0.25 │ -│ 123 │ 2015-01-01 │ 2015-01-15 │ 0.15 │ -│ 456 │ 2015-01-01 │ 2015-01-15 │ 0.05 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ -``` - -날짜 범위에 샘플을 사용하려면 [structure](#dictionary-key-and-fields)에서 `range_min` 및 `range_max` 요소를 정의합니다. 이 요소에는 `name` 및 `type` 요소가 포함되어야 합니다. `type`이 지정되지 않은 경우 기본 타입인 Date가 사용됩니다. `type`에는 임의의 숫자 타입(예: Date / DateTime / UInt64 / Int32 / 기타)을 지정할 수 있습니다. - -:::note -`range_min` 및 `range_max` 값은 `Int64` 타입으로 표현 가능한 범위여야 합니다. -::: - -예: - -```xml - - - - min - - - - - advertiser_id - - - discount_start_date - Date - - - discount_end_date - Date - - ... -``` - -또는 - -```sql -CREATE DICTIONARY discounts_dict ( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Date, - amount Float64 -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'discounts')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(RANGE_HASHED(range_lookup_strategy 'max')) -RANGE(MIN discount_start_date MAX discount_end_date) -``` - -이러한 딕셔너리를 사용하려면 범위를 지정하는 데 사용할 추가 인수를 `dictGet` 함수에 전달해야 합니다. - -```sql -dictGet('dict_name', 'attr_name', id, date) -``` - -쿼리 예제: - -```sql -SELECT dictGet('discounts_dict', 'amount', 1, '2022-10-20'::Date); -``` - -이 FUNCTION은 지정된 `id` 값들과 전달된 날짜를 포함하는 날짜 범위에 대한 값을 반환합니다. - -알고리즘 상세: - -* `id`를 찾지 못했거나 해당 `id`에 대한 범위를 찾지 못한 경우, 속성 타입의 기본값을 반환합니다. -* 범위가 겹치고 `range_lookup_strategy=min`인 경우, 일치하는 범위 중 `range_min`이 최소인 범위를 반환합니다. 여러 범위가 있는 경우 `range_max`가 최소인 범위를 반환하고, 다시 여러 범위가 있는 경우(여러 범위의 `range_min`과 `range_max`가 동일한 경우) 그중 임의의 범위를 반환합니다. -* 범위가 겹치고 `range_lookup_strategy=max`인 경우, 일치하는 범위 중 `range_min`이 최대인 범위를 반환합니다. 여러 범위가 있는 경우 `range_max`가 최대인 범위를 반환하고, 다시 여러 범위가 있는 경우(여러 범위의 `range_min`과 `range_max`가 동일한 경우) 그중 임의의 범위를 반환합니다. -* `range_max`가 `NULL`이면, 해당 범위는 열린 범위로 간주됩니다. `NULL`은 가능한 최대 값으로 취급합니다. `range_min`의 열린 값으로는 `1970-01-01` 또는 `0`(-MAX_INT)을 사용할 수 있습니다. - -구성 예시: - - -```xml - - - ... - - - - - - - - Abcdef - - - StartTimeStamp - UInt64 - - - EndTimeStamp - UInt64 - - - XXXType - String - - - - - - -``` - -또는 - -```sql -CREATE DICTIONARY somedict( - Abcdef UInt64, - StartTimeStamp UInt64, - EndTimeStamp UInt64, - XXXType String DEFAULT '' -) -PRIMARY KEY Abcdef -RANGE(MIN StartTimeStamp MAX EndTimeStamp) -``` - -겹치는 구간과 열린 구간이 포함된 구성 예제: - - -```sql -CREATE TABLE discounts -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -ENGINE = Memory; - -INSERT INTO discounts VALUES (1, '2015-01-01', Null, 0.1); -INSERT INTO discounts VALUES (1, '2015-01-15', Null, 0.2); -INSERT INTO discounts VALUES (2, '2015-01-01', '2015-01-15', 0.3); -INSERT INTO discounts VALUES (2, '2015-01-04', '2015-01-10', 0.4); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-15', 0.5); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-10', 0.6); - -SELECT * FROM discounts ORDER BY advertiser_id, discount_start_date; -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 1 │ 2015-01-01 │ ᴺᵁᴸᴸ │ 0.1 │ -│ 1 │ 2015-01-15 │ ᴺᵁᴸᴸ │ 0.2 │ -│ 2 │ 2015-01-01 │ 2015-01-15 │ 0.3 │ -│ 2 │ 2015-01-04 │ 2015-01-10 │ 0.4 │ -│ 3 │ 1970-01-01 │ 2015-01-15 │ 0.5 │ -│ 3 │ 1970-01-01 │ 2015-01-10 │ 0.6 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ - --- RANGE_LOOKUP_STRATEGY 'max' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'max')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.2 │ -- two ranges are matching, range_min 2015-01-15 (0.2) is bigger than 2015-01-01 (0.1) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.4 │ -- two ranges are matching, range_min 2015-01-04 (0.4) is bigger than 2015-01-01 (0.3) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.5 │ -- two ranges are matching, range_min are equal, 2015-01-15 (0.5) is bigger than 2015-01-10 (0.6) -└─────┘ - -DROP DICTIONARY discounts_dict; - --- RANGE_LOOKUP_STRATEGY 'min' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'min')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.1 │ -- two ranges are matching, range_min 2015-01-01 (0.1) is less than 2015-01-15 (0.2) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.3 │ -- two ranges are matching, range_min 2015-01-01 (0.3) is less than 2015-01-04 (0.4) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.6 │ -- two ranges are matching, range_min are equal, 2015-01-10 (0.6) is less than 2015-01-15 (0.5) -└─────┘ -``` - -### complex_key_range_hashed \{#complex_key_range_hashed\} - -딕셔너리는 해시 테이블 형태로 메모리에 저장되며, 정렬된 범위 배열과 그에 대응하는 값들로 구성됩니다([range_hashed](#range_hashed) 참조). 이 저장 방식은 복합 [키](#dictionary-key-and-fields)를 사용할 때 사용합니다. - -구성 예는 다음과 같습니다: - -```sql -CREATE DICTIONARY range_dictionary -( - CountryID UInt64, - CountryKey String, - StartDate Date, - EndDate Date, - Tax Float64 DEFAULT 0.2 -) -PRIMARY KEY CountryID, CountryKey -SOURCE(CLICKHOUSE(TABLE 'date_table')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(COMPLEX_KEY_RANGE_HASHED()) -RANGE(MIN StartDate MAX EndDate); -``` - - -### cache \{#cache\} - -딕셔리는 고정된 개수의 셀을 가진 캐시에 저장됩니다. 이 셀에는 자주 사용되는 요소가 저장됩니다. - -딕셔리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -딕셔리를 조회할 때는 먼저 캐시를 검색합니다. 각 데이터 블록에 대해, 캐시에 없거나 오래된 모든 키를 `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)` 쿼리를 사용하여 소스에서 요청합니다. 수신된 데이터는 캐시에 기록됩니다. - -키가 딕셔리에 없으면 캐시 업데이트 작업이 생성되어 업데이트 큐에 추가됩니다. 업데이트 큐의 속성은 `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds`, `max_threads_for_updates` 설정으로 제어할 수 있습니다. - -cache 딕셔리의 경우 캐시 내 데이터의 만료 [lifetime](#refreshing-dictionary-data-using-lifetime)을 설정할 수 있습니다. 셀에 데이터를 적재한 이후 `lifetime` 이상 시간이 지나면 해당 셀의 값은 사용되지 않고 키는 만료된 것으로 간주됩니다. 이 키는 다음에 사용이 필요할 때 다시 요청됩니다. 이 동작은 `allow_read_expired_keys` 설정으로 구성할 수 있습니다. - -이는 딕셔리를 저장하는 방식 중 가장 비효율적인 방법입니다. 캐시의 성능은 적절한 설정과 사용 시나리오에 크게 의존합니다. cache 타입 딕셔리는 히트율이 충분히 높을 때(권장 99% 이상)만 성능이 좋습니다. 평균 히트율은 [system.dictionaries](../../operations/system-tables/dictionaries.md) 테이블에서 확인할 수 있습니다. - -`allow_read_expired_keys` 설정이 1로 설정되어 있으면(기본값은 0), 딕셔리는 비동기 업데이트를 지원할 수 있습니다. 클라이언트가 키들을 요청했을 때, 모든 키가 캐시에 있지만 일부가 만료된 상태라면, 딕셔리는 클라이언트에게 만료된 키를 반환하고, 소스에는 이를 비동기적으로 다시 요청합니다. - -캐시 성능을 향상시키려면 `LIMIT`이 있는 서브쿼리를 사용하고, 딕셔리를 사용하는 함수를 외부에서 호출하십시오. - -모든 타입의 소스를 지원합니다. - -설정 예: - -```xml - - - - 1000000000 - - 0 - - 100000 - - 10 - - 60000 - - 4 - - -``` - -또는 - -```sql -LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) -``` - -충분히 큰 캐시 크기를 설정합니다. 셀 개수는 실험을 통해 결정해야 합니다. - -1. 임의의 값을 설정합니다. -2. 캐시가 완전히 채워질 때까지 쿼리를 실행합니다. -3. `system.dictionaries` 테이블을 사용하여 메모리 사용량을 확인합니다. -4. 원하는 메모리 사용량에 도달할 때까지 셀 개수를 늘리거나 줄입니다. - -:::note -무작위 읽기(random reads)가 포함된 쿼리 처리 속도가 느리므로, 데이터 소스로 ClickHouse를 사용하지 마십시오. -::: - - -### complex_key_cache \{#complex_key_cache\} - -이 저장소 유형은 복합 [키](#dictionary-key-and-fields)에 사용하는 것입니다. `cache`와 유사합니다. - -### ssd_cache \{#ssd_cache\} - -`cache`와 유사하지만, 데이터는 SSD에, 인덱스는 RAM에 저장합니다. 업데이트 큐와 관련된 `cache` 딕셔너리의 모든 설정은 SSD 캐시 딕셔너리에도 동일하게 적용할 수 있습니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -```xml - - - - 4096 - - 16777216 - - 131072 - - 1048576 - - /var/lib/clickhouse/user_files/test_dict - - -``` - -또는 - -```sql -LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 - PATH '/var/lib/clickhouse/user_files/test_dict')) -``` - - -### complex_key_ssd_cache \{#complex_key_ssd_cache\} - -이 저장소 유형은 복합 [키](#dictionary-key-and-fields)에 사용하는 것입니다. `ssd_cache`와 유사하게 동작합니다. - -### direct \{#direct\} - -딕셔너리는 메모리에 저장되지 않고, 요청을 처리할 때마다 소스에서 직접 데이터를 조회합니다. - -딕셔너리 키는 [UInt64](../../sql-reference/data-types/int-uint.md) 타입입니다. - -로컬 파일을 제외한 모든 유형의 [소스](#dictionary-sources)를 지원합니다. - -구성 예시는 다음과 같습니다: - -```xml - - - -``` - -또는 - -```sql -LAYOUT(DIRECT()) -``` - - -### complex_key_direct \{#complex_key_direct\} - -이 저장 방식은 복합 [키](#dictionary-key-and-fields)에 사용하는 것입니다. `direct`와 유사합니다. - -### ip_trie \{#ip_trie\} - -이 딕셔너리는 네트워크 프리픽스를 기준으로 IP 주소를 조회하도록 설계되었습니다. CIDR 표기법으로 IP 범위를 저장하며, 특정 IP가 어떤 프리픽스(예: 서브넷 또는 ASN 범위)에 속하는지 빠르게 알아낼 수 있어, 지리적 위치 조회나 네트워크 분류와 같은 IP 기반 검색에 적합합니다. - - - -### ClickHouse 오픈 소스 버전에서 정규식 트리 딕셔너리 사용 \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} - -정규식 트리 딕셔너리는 정규식 트리를 포함하는 YAML 파일의 경로를 지정하는 `YAMLRegExpTree` 소스를 사용하여 ClickHouse 오픈 소스 버전에서 정의됩니다. - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -... -``` - -딕셔너리 소스 `YAMLRegExpTree`는 정규식 트리의 구조를 나타냅니다. 예를 들면 다음과 같습니다. - -```yaml -- regexp: 'Linux/(\d+[\.\d]*).+tlinux' - name: 'TencentOS' - version: '\1' - -- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' - name: 'Android' - versions: - - regexp: '33/tclwebkit' - version: '13' - - regexp: '3[12]/tclwebkit' - version: '12' - - regexp: '30/tclwebkit' - version: '11' - - regexp: '29/tclwebkit' - version: '10' -``` - -이 구성은 정규식 트리 노드 목록으로 이루어져 있습니다. 각 노드는 다음과 같은 구조를 가집니다. - -* **regexp**: 노드의 정규식입니다. -* **attributes**: 사용자 정의 딕셔너리 속성 목록입니다. 이 예제에서는 `name`과 `version` 두 개의 속성이 있습니다. 첫 번째 노드는 두 속성을 모두 정의합니다. 두 번째 노드는 속성 `name`만 정의합니다. 속성 `version`은 두 번째 노드의 자식 노드에서 제공합니다. - * 속성 값에는 일치한 정규식의 캡처 그룹을 참조하는 **역참조(back reference)**가 포함될 수 있습니다. 예제에서 첫 번째 노드의 속성 `version` 값은 정규식의 캡처 그룹 `(\d+[\.\d]*)`에 대한 역참조 `\1`로 구성됩니다. 역참조 번호는 1에서 9까지이며 `$1` 또는 `\1` (숫자 1의 경우)와 같이 작성합니다. 쿼리 실행 중에는 역참조가 일치한 캡처 그룹으로 치환됩니다. -* **child nodes**: 정규식 트리 노드의 자식 목록입니다. 각 자식은 고유한 속성과 (필요하다면) 추가 자식 노드를 가질 수 있습니다. 문자열 매칭은 깊이 우선 방식으로 수행됩니다. 문자열이 어떤 정규식 노드와 일치하면, 딕셔너리는 해당 문자열이 그 노드의 자식 노드와도 일치하는지 확인합니다. 그런 경우 가장 깊이 있는 일치 노드의 속성이 할당됩니다. 자식 노드의 속성은 부모 노드와 이름이 같은 속성을 덮어씁니다. YAML 파일에서 자식 노드의 이름은 위 예시의 `versions`처럼 임의로 지정할 수 있습니다. - -정규식 트리 딕셔너리는 `dictGet`, `dictGetOrDefault`, `dictGetAll` 함수로만 접근할 수 있습니다. - -예시: - -```sql -SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); -``` - -결과: - -```text -┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ -│ ('Android','12') │ -└─────────────────────────────────────────────────────────────────┘ -``` - -이 경우 먼저 최상위 계층의 두 번째 노드에서 정규식 `\d+/tclwebkit(?:\d+[\.\d]*)`과 일치하는 항목을 찾습니다. 그런 다음 딕셔너리가 자식 노드들을 계속 탐색하여 해당 문자열이 `3[12]/tclwebkit`와도 일치한다는 것을 확인합니다. 그 결과, 속성 `name`의 값은 (첫 번째 계층에 정의된) `Android`이고, 속성 `version`의 값은 (자식 노드에 정의된) `12`가 됩니다. - -강력한 YAML 구성 파일을 사용하면 정규 표현식 트리 딕셔너리(regexp tree dictionary)를 user agent 문자열 파서로 활용할 수 있습니다. [uap-core](https://github.com/ua-parser/uap-core)를 지원하며, 기능 테스트용 스크립트 [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh)에서 이를 사용하는 방법을 보여줍니다. - - -#### 속성 값 수집 \{#collecting-attribute-values\} - -여러 개의 정규식이 일치한 경우, 리프 노드의 값만 반환하는 대신 일치한 모든 정규식에서 나온 값을 반환해야 할 때가 있습니다. 이러한 상황에서는 특수한 [`dictGetAll`](../../sql-reference/functions/ext-dict-functions.md#dictGetAll) 함수를 사용할 수 있습니다. 어떤 노드에 타입 `T`의 속성 값이 있으면, `dictGetAll`은 0개 이상의 값을 포함하는 `Array(T)`를 반환합니다. - -기본적으로 키당 반환되는 매칭 개수에는 제한이 없습니다. 제한값은 `dictGetAll`의 선택적 네 번째 인수로 전달할 수 있습니다. 배열은 *위상 순서(topological order)*로 채워지며, 이는 자식 노드가 부모 노드보다 먼저 오고, 형제 노드들은 소스에서의 순서를 따른다는 의미입니다. - -예시: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - tag String, - topological_index Int64, - captured Nullable(String), - parent String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -LIFETIME(0) -``` - -```yaml -# /var/lib/clickhouse/user_files/regexp_tree.yaml -- regexp: 'clickhouse\.com' - tag: 'ClickHouse' - topological_index: 1 - paths: - - regexp: 'clickhouse\.com/docs(.*)' - tag: 'ClickHouse Documentation' - topological_index: 0 - captured: '\1' - parent: 'ClickHouse' - -- regexp: '/docs(/|$)' - tag: 'Documentation' - topological_index: 2 - -- regexp: 'github.com' - tag: 'GitHub' - topological_index: 3 - captured: 'NULL' -``` - -```sql -CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; -INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); -SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; -``` - -결과: - -```text -┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ -│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ -│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ -│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ -└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ -``` - - -#### 매칭 모드 \{#matching-modes\} - -패턴 매칭 동작은 다음 딕셔너리 설정으로 조정할 수 있습니다: - -- `regexp_dict_flag_case_insensitive`: 대소문자를 구분하지 않는 매칭을 사용합니다(기본값은 `false`입니다). 개별 표현식에서는 `(?i)` 및 `(?-i)`를 사용하여 이를 재정의할 수 있습니다. -- `regexp_dict_flag_dotall`: `.` 문자가 줄바꿈 문자와도 매칭되도록 허용합니다(기본값은 `false`입니다). - -### ClickHouse Cloud에서 정규식 트리 딕셔너리 사용하기 \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} - -위에서 사용한 `YAMLRegExpTree` 소스는 ClickHouse 오픈 소스에서는 동작하지만 ClickHouse Cloud에서는 동작하지 않습니다. ClickHouse에서 regexp 트리 딕셔너리를 사용하려면, 먼저 ClickHouse 오픈 소스에서 로컬 YAML 파일에서 regexp 트리 딕셔너리를 생성한 후, `dictionary` 테이블 함수와 [INTO OUTFILE](../statements/select/into-outfile.md) 절을 사용하여 이 딕셔너리를 CSV 파일로 내보냅니다. - -```sql -SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') -``` - -CSV 파일의 내용은 다음과 같습니다: - -```text -1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" -2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" -3,2,"33/tclwebkit","['version']","['13']" -4,2,"3[12]/tclwebkit","['version']","['12']" -5,2,"3[12]/tclwebkit","['version']","['11']" -6,2,"3[12]/tclwebkit","['version']","['10']" -``` - -덤프된 파일의 스키마는 다음과 같습니다. - -* `id UInt64`: RegexpTree 노드의 id입니다. -* `parent_id UInt64`: 노드의 부모 id입니다. -* `regexp String`: 정규 표현식 문자열입니다. -* `keys Array(String)`: 사용자 정의 속성 이름입니다. -* `values Array(String)`: 사용자 정의 속성 값입니다. - -ClickHouse Cloud에서 딕셔너리를 생성하려면 먼저 다음 구조를 가진 `regexp_dictionary_source_table` 테이블을 생성합니다. - -```sql -CREATE TABLE regexp_dictionary_source_table -( - id UInt64, - parent_id UInt64, - regexp String, - keys Array(String), - values Array(String) -) ENGINE=Memory; -``` - -그런 다음 로컬 CSV를 다음과 같이 업데이트합니다. - -```bash -clickhouse client \ - --host MY_HOST \ - --secure \ - --password MY_PASSWORD \ - --query " - INSERT INTO regexp_dictionary_source_table - SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') - FORMAT CSV" < regexp_dict.csv -``` - -자세한 내용은 [Insert Local Files](/integrations/data-ingestion/insert-local-files)를 참조하십시오. 소스 테이블을 초기화한 후에는 테이블 소스를 기반으로 RegexpTree를 생성할 수 있습니다. - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -PRIMARY KEY(regexp) -SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) -LIFETIME(0) -LAYOUT(regexp_tree); -``` - - -## Embedded Dictionaries \{#embedded-dictionaries\} - - - -ClickHouse에는 지오베이스(geobase)를 다루기 위한 내장 기능이 있습니다. - -이를 통해 다음을 수행할 수 있습니다: - -- 지역 ID를 사용하여 원하는 언어로 지역 이름을 가져옵니다. -- 지역 ID를 사용하여 도시, 구역, 연방 지구, 국가 또는 대륙의 ID를 가져옵니다. -- 한 지역이 다른 지역에 속하는지 확인합니다. -- 상위 지역의 체인을 가져옵니다. - -모든 함수는 지역 소속 관계를 여러 관점에서 동시에 사용할 수 있는 「translocality」를 지원합니다. 자세한 내용은 「웹 분석 딕셔너리를 다루기 위한 함수」 섹션을 참고하십시오. - -내부 딕셔너리는 기본 패키지에서는 비활성화되어 있습니다. -이를 활성화하려면 서버 설정 파일에서 `path_to_regions_hierarchy_file` 및 `path_to_regions_names_files` 매개변수의 주석을 해제해야 합니다. - -지오베이스는 텍스트 파일에서 로드됩니다. - -`regions_hierarchy*.txt` 파일을 `path_to_regions_hierarchy_file` 디렉터리에 배치하십시오. 이 설정 매개변수에는 `regions_hierarchy.txt` 파일(기본 지역 계층 구조)의 경로가 포함되어야 하며, 다른 파일(`regions_hierarchy_ua.txt`)은 동일한 디렉터리에 위치해야 합니다. - -`regions_names_*.txt` 파일을 `path_to_regions_names_files` 디렉터리에 배치하십시오. - -이 파일들을 직접 생성할 수도 있습니다. 파일 형식은 다음과 같습니다: - -`regions_hierarchy*.txt`: TabSeparated (헤더 없음), 컬럼: - -- 지역 ID (`UInt32`) -- 상위 지역 ID (`UInt32`) -- 지역 타입 (`UInt8`): 1 - 대륙, 3 - 국가, 4 - 연방 지구, 5 - 지역, 6 - 도시; 그 외 타입에는 값이 없습니다 -- 인구(`UInt32`) — 선택 컬럼입니다. - -`regions_names_*.txt`: TabSeparated (헤더 없음), 컬럼: - -- 지역 ID (`UInt32`) -- 지역 이름 (`String`) — 탭이나 줄 바꿈을 포함할 수 없습니다(이스케이프된 경우에도 포함할 수 없음). - -RAM에 저장하기 위해 평면 배열이 사용됩니다. 이 때문에 ID는 100만을 넘지 않아야 합니다. - -딕셔너리는 서버를 재시작하지 않고도 업데이트할 수 있습니다. 단, 사용 가능한 딕셔너리의 집합 자체는 업데이트되지 않습니다. -업데이트를 위해 파일 수정 시간을 확인합니다. 파일이 변경된 경우 딕셔너리가 업데이트됩니다. -변경 사항을 확인하는 주기는 `builtin_dictionaries_reload_interval` 매개변수로 설정합니다. -처음 로드할 때를 제외한 딕셔너리 업데이트는 쿼리를 차단하지 않습니다. 업데이트 동안 쿼리는 이전 버전의 딕셔너리를 사용합니다. 업데이트 중 오류가 발생하면 해당 오류는 서버 로그에 기록되며, 쿼리는 이전 버전의 딕셔너리를 계속 사용합니다. - -지오베이스 딕셔너리를 주기적으로 업데이트할 것을 권장합니다. 업데이트하는 동안 새 파일을 생성하여 별도의 위치에 기록하십시오. 모든 준비가 완료되면, 서버에서 사용 중인 파일 이름으로 변경하십시오. - -OS 식별자 및 검색 엔진을 다루기 위한 함수도 있지만, 이러한 함수는 사용하지 않을 것을 권장합니다. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md index f4da6fdb640..2ab21435494 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md @@ -955,6 +955,39 @@ SELECT modulo(5, 2) 1 ``` +## moduloLegacy \{#moduloLegacy\} + +도입된 버전: v1.1 + +나눗셈의 나머지를 계산합니다. C++의 `%` 연산자를 사용하는 레거시 modulo 구현으로, 음수 인수에 대해 음수 결과를 반환할 수 있습니다. 이 함수는 기존 테이블 파티션 로직과의 하위 호환성을 위해 제공됩니다. 표준 동작을 사용하려면 `modulo` 또는 `positiveModulo`를 사용하십시오. + +**문법** + +```sql +moduloLegacy(a, b) +``` + +**인수** + +* `a` — 피제수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `b` — 제수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) + +**반환 값** + +나머지를 반환합니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) + +**예제** + +**기본 사용 예** + +```sql title=Query +SELECT moduloLegacy(10, 3) +``` + +```response title=Response +1 +``` + ## moduloOrNull \{#moduloOrNull\} 도입 버전: v25.5 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md index dcb6b66461e..61f904af81d 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md @@ -4745,6 +4745,76 @@ SELECT indexOfAssumeSorted([1, 3, 3, 3, 4, 4, 5], 4) ``` +## kql_array_sort_asc \{#kql_array_sort_asc\} + +도입 버전: v23.10 + +하나 이상의 배열을 오름차순으로 정렬합니다. 첫 번째 배열이 정렬되며, 이후 배열들은 첫 번째 배열의 정렬된 순서에 맞게 재정렬됩니다. NULL 값은 끝에 배치됩니다. 이는 KQL (Kusto Query Language) 호환성 함수입니다. + +**구문** + +```sql +kql_array_sort_asc(array1[, array2, ..., nulls_last]) +``` + +**인자** + +* `array1` — 정렬할 배열입니다. [`Array(T)`](/sql-reference/data-types/array) +* `array2` — 선택 사항입니다. `array1`의 정렬 순서에 따라 재정렬할 추가 배열입니다. [`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — 선택 사항입니다. null 값을 마지막에 배치할지 여부를 나타내는 불리언입니다. 기본값은 true입니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**반환 값** + +오름차순으로 정렬된 배열들의 튜플을 반환합니다. [`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**예시** + +**기본 사용 예제** + +```sql title=Query +SELECT kql_array_sort_asc([3, 1, 2]) +``` + +```response title=Response +([1, 2, 3]) +``` + + +## kql_array_sort_desc \{#kql_array_sort_desc\} + +도입 버전: v23.10 + +하나 이상의 배열을 내림차순으로 정렬합니다. 첫 번째 배열이 정렬되며, 이후 배열들은 첫 번째 배열의 정렬 순서에 맞추어 재정렬됩니다. NULL 값은 끝에 위치합니다. 이는 KQL(Kusto Query Language)과의 호환성을 위한 함수입니다. + +**구문** + +```sql +kql_array_sort_desc(array1[, array2, ..., nulls_last]) +``` + +**인수** + +* `array1` — 정렬할 배열입니다. [`Array(T)`](/sql-reference/data-types/array) +* `array2` — `array1`의 정렬 순서에 따라 재정렬할 수 있는 추가 배열입니다(선택 사항). [`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — null 값이 마지막에 나타나야 하는지 여부를 나타내는 선택적 Boolean입니다. 기본값은 true입니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**반환 값** + +내림차순으로 정렬된 배열로 구성된 튜플을 반환합니다. [`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**예제** + +**기본 사용법** + +```sql title=Query +SELECT kql_array_sort_desc([3, 1, 2]) +``` + +```response title=Response +([3, 2, 1]) +``` + + ## length \{#length\} 도입된 버전: v1.1 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md index 5314c9418d8..fff3a9562e7 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md @@ -74,6 +74,269 @@ SELECT 1 = 1, 1 = 2; └──────────────┴──────────────┘ ``` +## globalIn \{#globalIn\} + +도입된 버전: v1.1 + +`in`과 동일하지만, 분산 쿼리에서 글로벌 Set 분산 방식을 사용합니다. 이 Set은 모든 원격 서버로 전송됩니다. + +**구문** + +```sql +globalIn(x, set) +``` + +**인수(Arguments)** + +* `x` — 검사할 값입니다. +* `set` — 값들의 Set입니다. + +**반환 값(Returned value)** + +`x`가 Set에 포함되어 있으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시(Examples)** + +**기본 사용법(Basic usage)** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalInIgnoreSet \{#globalInIgnoreSet\} + +도입: v1.1 + +`in`과 동일하지만, 분산 쿼리에서 전역 Set 분산(global set distribution)을 사용합니다. 이때 Set은 모든 원격 서버로 전송됩니다. +이 함수는 Set을 생성하지 않고 타입 분석에만 사용하는 IgnoreSet의 변형입니다. + +**구문** + +```sql +globalIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값의 집합입니다. + +**반환 값** + +x가 집합에 포함되면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotIn \{#globalNotIn\} + +도입 버전: v1.1 + +`notIn`과 같지만, 분산 쿼리에서 전역 Set 분산 방식을 사용합니다. 이 Set은 모든 원격 서버로 전송됩니다. + +**구문** + +```sql +globalNotIn(x, set) +``` + +**인수** + +* `x` — 검사할 값입니다. - `set` — 값들의 Set입니다. + +**반환 값** + +`x`가 Set에 없으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예제** + +**기본 사용 예** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotInIgnoreSet \{#globalNotInIgnoreSet\} + +도입 버전: v1.1 + +`notIn`과 동일하지만, 분산 쿼리에서 글로벌 Set 분산 방식을 사용합니다. Set은 모든 원격 서버로 전송됩니다. +이는 Set을 생성하지 않고 데이터 타입 분석을 위해 사용되는 IgnoreSet의 변형입니다. + +**구문** + +```sql +globalNotIn(x, set) +``` + +**인자** + +* `x` — 확인할 값입니다. - `set` — 값들의 집합(Set)입니다. + +**반환 값** + +x가 Set에 속하지 않으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotNullIn \{#globalNotNullIn\} + +도입 버전: v1.1 + +`notNullIn`과 동일하지만, 분산 쿼리에서 전역 Set 분산 방식을 사용합니다. Set은 모든 원격 서버에 전송됩니다. + +**구문** + +```sql +globalNotNullIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값들의 Set입니다. + +**반환 값** + +x가 Set에 포함되어 있지 않으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNotNullInIgnoreSet \{#globalNotNullInIgnoreSet\} + +도입 버전: v1.1 + +`notNullIn`과 동일하지만, 분산 쿼리에서 global set 분산 방식을 사용합니다. Set은 모든 원격 서버로 전송됩니다. +이 함수는 Set을 실제로 생성하지 않고 형식 분석(타입 분석)에 사용하는 IgnoreSet 변형입니다. + +**구문** + +```sql +globalNotNullIn(x, set) +``` + +**인수** + +* `x` — 검사할 값입니다. - `set` — 값들의 집합입니다. + +**반환 값** + +x가 집합에 포함되지 않으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNullIn \{#globalNullIn\} + +도입된 버전: v1.1 + +`nullIn`과 동일하지만, 분산 쿼리에서 전역 Set 분배 방식을 사용합니다. Set은 모든 원격 서버로 전송됩니다. + +**구문** + +```sql +globalNullIn(x, set) +``` + +**인수** + +* `x` — 검사할 값. +* `set` — 값으로 구성된 Set(집합). + +**반환 값** + +`x`가 Set에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## globalNullInIgnoreSet \{#globalNullInIgnoreSet\} + +도입 버전: v1.1 + +`nullIn`과 동일하지만, 분산 쿼리에서 전역 Set 분산을 사용합니다. Set은 모든 원격 서버로 전송됩니다. +이 IgnoreSet 변형은 Set을 생성하지 않고 타입 분석에 사용됩니다. + +**구문** + +```sql +globalNullIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. +* `set` — 값들의 집합입니다. + +**반환값** + +x가 집합에 포함되어 있으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예제** + +**기본 사용법** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + ## greater \{#greater\} 도입된 버전: v1.1 @@ -144,6 +407,71 @@ SELECT 2 >= 1, 2 >= 2, 1 >= 2; └───────────────────────┴───────────────────────┴───────────────────────┘ ``` +## in \{#in\} + +도입된 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자인 Set에 포함되어 있는지 확인합니다. 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자에 있는 NULL 값은 건너뛰며(Set에 포함되지 않은 것으로 간주합니다). + +**구문** + +```sql +in(x, set) +``` + +**Arguments** + +* `x` — 검사할 값. - `set` — 값의 Set. + +**Returned value** + +`x`가 Set에 포함되면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**Examples** + +**Basic usage** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## inIgnoreSet \{#inIgnoreSet\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자인 Set에 포함되어 있는지 확인합니다. 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자에서 NULL 값은 건너뛰며(해당 Set에 포함되지 않은 것으로 간주함) 처리합니다. +이 함수는 Set을 생성하지 않고 형식 분석에 사용하는 IgnoreSet 변형입니다. + +**구문** + +```sql +in(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값들의 집합입니다. + +**반환 값** + +x가 집합에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + ## isDistinctFrom \{#isDistinctFrom\} 도입 버전: v25.11 @@ -340,4 +668,199 @@ SELECT 1 != 2, 1 != 1; └─────────────────┴─────────────────┘ ``` +## notIn \{#notIn\} + +도입된 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자 Set의 요소가 아닌지 확인합니다. Set에 포함되지 않으면 1을 반환하고, 포함되어 있으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다. + +**구문** + +```sql +notIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값들의 Set입니다. + +**반환 값** + +`x`가 Set에 포함되지 않으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notInIgnoreSet \{#notInIgnoreSet\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자인 Set의 요소가 아닌지 확인합니다. Set에 포함되어 있지 않으면 1을, 그렇지 않으면 0을 반환합니다. 왼쪽 피연산자의 NULL 값은 무시됩니다. +Set을 생성하지 않고 타입 분석에 사용하는 IgnoreSet 변형입니다. + +**문법** + +```sql +notIn(x, set) +``` + +**Arguments** + +* `x` — 검사할 값입니다. - `set` — 값들의 Set입니다. + +**Returned value** + +x가 set에 포함되지 않으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**Examples** + +**기본 사용** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notNullIn \{#notNullIn\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자 Set에 포함되지 않는지 확인합니다. `notIn`과는 달리 NULL 값이 건너뛰어지지 않습니다. NULL은 Set의 요소들과 비교되며, NULL = NULL 비교는 true로 평가됩니다. + +**구문** + +```sql +notNullIn(x, set) +``` + +**인수** + +* `x` — 검사할 값입니다. - `set` — 값들의 Set입니다. + +**반환 값** + +x가 set에 포함되지 않으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## notNullInIgnoreSet \{#notNullInIgnoreSet\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자 Set의 요소가 아닌지 확인합니다. `notIn`과는 달리 NULL 값도 건너뛰지 않습니다. NULL은 Set의 요소와 비교되며, NULL = NULL은 true로 평가됩니다. +이는 Set을 생성하지 않고 타입 분석에 사용하는 IgnoreSet 변형입니다. + +**Syntax** + +```sql +notNullIn(x, set) +``` + +**인자** + +* `x` — 확인할 값. - `set` — 값들의 집합(Set). + +**반환 값** + +x가 Set에 속하지 않으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## nullIn \{#nullIn\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자 Set에 포함되어 있는지 확인합니다. `in`과 달리 NULL 값이 무시되지 않습니다. NULL은 Set의 요소와 비교되며, `NULL = NULL` 표현식은 true로 평가됩니다. + +**문법** + +```sql +nullIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값들로 구성된 Set입니다. + +**반환 값** + +x가 Set에 포함되어 있으면 1, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## nullInIgnoreSet \{#nullInIgnoreSet\} + +도입 버전: v1.1 + +왼쪽 피연산자가 오른쪽 피연산자 Set에 포함되는지 확인합니다. `in`과 달리 NULL 값은 건너뛰지 않습니다. NULL은 Set의 요소와 비교되며, NULL = NULL 비교 결과는 true가 됩니다. +이는 Set을 생성하지 않고 타입 분석에 사용하는 IgnoreSet의 변형입니다. + +**구문** + +```sql +nullIn(x, set) +``` + +**인수** + +* `x` — 확인할 값입니다. - `set` — 값의 집합입니다. + +**반환 값** + +`x`가 `set`에 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md index ad2a6b2e00f..8adb68f56ba 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md @@ -14,7 +14,7 @@ doc_type: 'reference' 따라서 이 섹션에 제시된 예제는 필요한 구성을 먼저 수행하지 않으면 [ClickHouse Fiddle](https://fiddle.clickhouse.com/)과 기본 설정 상태의 빠른 배포 및 프로덕션 배포 환경에서 예외를 발생시킵니다. ::: -참조 목록 생성에 대한 정보는 ["Dictionaries"](../dictionaries#embedded-dictionaries) 섹션을 참조하십시오. +참조 목록 생성에 대한 정보는 ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries) 섹션을 참조하십시오. ## 다중 지오베이스 \{#multiple-geobases\} @@ -52,7 +52,7 @@ regionToName(id\[, lang\]) **매개변수** * `id` — 지리 데이터베이스(geobase)의 지역 ID입니다. [UInt32](../data-types/int-uint). -* `geobase` — 딕셔너리 키입니다. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택적입니다. +* `geobase` — 딕셔너리 키입니다. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. **반환 값** @@ -139,12 +139,12 @@ regionToArea(id [, geobase]) **매개변수** -* `id` — 지리 데이터베이스(geobase)의 지역 ID입니다. [UInt32](../data-types/int-uint). -* `geobase` — 딕셔너리 키입니다. [여러 지리 데이터베이스](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. +* `id` — 지오베이스의 지역 ID입니다. [UInt32](../data-types/int-uint). +* `geobase` — 딕셔너리 키입니다. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. **반환 값** -* 해당 영역이 존재하는 경우 해당 지역 ID입니다. [UInt32](../data-types/int-uint). +* 해당 연방 지구가 존재하는 경우 해당 지역 ID입니다. [UInt32](../data-types/int-uint). * 존재하지 않으면 0을 반환합니다. **예시** @@ -191,13 +191,13 @@ regionToDistrict(id [, geobase]) **매개변수** -* `id` — 지오베이스의 지역 ID입니다. [UInt32](../data-types/int-uint). -* `geobase` — 딕셔너리 키입니다. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. +* `id` — 지리 데이터베이스(geobase)의 지역 ID입니다. [UInt32](../data-types/int-uint). +* `geobase` — 딕셔너리 키입니다. [여러 지리 데이터베이스](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. **반환 값** -* 해당 도시가 존재하는 경우, 해당 도시의 지역 ID입니다. [UInt32](../data-types/int-uint). -* 해당 도시가 없으면 0입니다. +* 해당 도시가 존재하는 경우 해당 도시의 지역 ID입니다. [UInt32](../data-types/int-uint). +* 존재하지 않으면 0을 반환합니다. **예시** @@ -233,7 +233,7 @@ LIMIT 15 ### regionToCountry -지역을 국가(geobase에서 타입 3)로 변환합니다. 기타 모든 면에서는 이 FUNCTION이 'regionToCity'와 동일합니다. +지역을 국가(geobase에서 타입 3)로 변환합니다. 이외의 모든 점에서 이 FUNCTION은 「regionToCity」와 동일합니다. **구문** @@ -291,13 +291,13 @@ regionToContinent(id [, geobase]) **매개변수** -* `id` — 지리 데이터베이스(geobase)의 Region ID. [UInt32](../data-types/int-uint). -* `geobase` — 딕셔너리 키. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택적입니다. +* `id` — geobase의 지역 ID. [UInt32](../data-types/int-uint). +* `geobase` — 딕셔너리 키. [Multiple Geobases](#multiple-geobases)를 참조하십시오. [String](../data-types/string). 선택 사항입니다. **반환 값** * 존재하는 경우 해당 대륙의 Region ID입니다. [UInt32](../data-types/int-uint). -* 존재하지 않는 경우 0입니다. +* 존재하지 않으면 0입니다. **예시** @@ -377,7 +377,7 @@ SELECT regionToName(number::UInt32, 'en'), regionToTopContinent(number::UInt32) ### regionToPopulation -지역의 인구 수를 가져옵니다. 인구 수는 geobase와 함께 제공되는 파일에 기록될 수 있습니다. 「[Dictionaries](../dictionaries#embedded-dictionaries)」 섹션을 참조하십시오. 지역에 대한 인구 수가 기록되어 있지 않으면 0을 반환합니다. geobase에서는 상위 지역에는 인구 수가 기록되어 있지 않고 하위 지역에만 기록되어 있을 수 있습니다. +지역의 인구 수를 가져옵니다. 인구 수는 geobase와 함께 제공되는 파일에 기록될 수 있습니다. 「[Dictionaries](../statements/create/dictionary/embedded#embedded-dictionaries)」 섹션을 참조하십시오. 지역에 대한 인구 수가 기록되어 있지 않으면 0을 반환합니다. geobase에서는 상위 지역에는 인구 수가 기록되어 있지 않고 하위 지역에만 기록되어 있을 수 있습니다. **구문** @@ -511,8 +511,8 @@ SELECT regionHierarchy(number::UInt32) AS arr, arrayMap(id -> regionToName(id, ' ``` {/* - 아래 태그 안의 내용은 문서 프레임워크를 빌드하는 시점에 - system.functions로부터 생성된 문서로 대체됩니다. 태그를 수정하거나 제거하지 마십시오. + 아래 태그 안의 내용은 문서 프레임워크 빌드 시 + system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 제거하지 마십시오. 자세한 내용은 https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md 를 참조하십시오. */ } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md index 6bfdb9d9803..38601bb26c0 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md @@ -9,10 +9,10 @@ doc_type: 'reference' # 딕셔너리 작업용 함수 \{#functions-for-working-with-dictionaries\} :::note -[DDL 쿼리](../../sql-reference/statements/create/dictionary.md)로 생성된 딕셔너리의 경우 `dict_name` 매개변수는 `.` 형식으로 완전하게 지정해야 합니다. 그렇지 않으면 현재 데이터베이스가 사용됩니다. +[DDL 쿼리](../statements/create/dictionary/index.md)로 생성된 딕셔너리의 경우 `dict_name` 매개변수는 `.` 형식으로 완전하게 지정해야 합니다. 그렇지 않으면 현재 데이터베이스가 사용됩니다. ::: -딕셔너리 연결 및 설정에 대한 자세한 내용은 [Dictionaries](../../sql-reference/dictionaries/index.md)를 참조하십시오. +딕셔너리 연결 및 설정에 대한 자세한 내용은 [Dictionaries](../statements/create/dictionary/index.md)를 참조하십시오. ## 예시 딕셔너리 \{#example-dictionary\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md index 072481e38a8..36f7c5e4c16 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md @@ -1093,6 +1093,40 @@ SELECT JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b', 4) = 0; ``` +## JSONKey \{#JSONKey\} + +도입 버전: v20.1 + +JSON 객체 필드의 키를 인덱스(1부터 시작) 기준으로 반환합니다. JSON이 문자열로 전달되는 경우 먼저 파싱합니다. 두 번째 인수는 중첩 객체 내부로 이동하기 위한 JSON 경로입니다. 함수는 지정된 위치의 키 이름을 반환합니다. + +**구문** + +```sql +JSONKey(json[, indices_or_keys, ...]) +``` + +**인수** + +* `json` — 파싱할 JSON 문자열. [`String`](/sql-reference/data-types/string) +* `indices_or_keys` — 중첩 요소의 경로를 지정하는 선택적 인덱스 또는 키 목록입니다. 각 인수는 문자열(키로 접근) 또는 정수(1부터 시작하는 인덱스로 접근)일 수 있습니다. [`String`](/sql-reference/data-types/string) 또는 [`Int*`](/sql-reference/data-types/int-uint) + +**반환 값** + +JSON 객체에서 지정한 위치의 키 이름을 반환합니다. [`String`](/sql-reference/data-types/string) + +**예시** + +**사용 예시** + +```sql title=Query +SELECT JSONKey('{"a": "hello", "b": [-100, 200.0, 300]}', 1); +``` + +```response title=Response +a +``` + + ## JSONLength \{#JSONLength\} 도입 버전: v20.1 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md index 141f9b08701..4b7b87035a8 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md @@ -1,6 +1,6 @@ --- description: '수학 함수 문서' -sidebar_label: '수학' +sidebar_label: '수학 함수' slug: /sql-reference/functions/math-functions title: '수학 함수' doc_type: 'reference' @@ -9,16 +9,16 @@ doc_type: 'reference' # 수학 함수 \{#mathematical-functions\} {/* - 아래 태그 안의 내용은 문서 프레임워크를 빌드할 때 - system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 삭제하지 마십시오. - 참고: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 아래 태그 안의 내용은 문서 프레임워크를 빌드할 때 + system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 제거하지 마십시오. + 자세한 내용은 다음을 참조하십시오: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } ## acos \{#acos\} -도입 버전: v1.1 +도입된 버전: v1.1 인수의 아크 코사인 값을 반환합니다. @@ -28,17 +28,17 @@ doc_type: 'reference' acos(x) ``` -**인수(Arguments)** +**인수** -* `x` — 아크 코사인(arc cosine)을 계산할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 아크코사인을 구할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`x`의 아크 코사인(arc cosine)을 반환합니다. 반환 타입은 [`Float*`](/sql-reference/data-types/float)입니다. +x의 아크코사인 값입니다. [`Float*`](/sql-reference/data-types/float) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT acos(0.5); @@ -50,7 +50,7 @@ SELECT acos(0.5); ## acosh \{#acosh\} -도입 버전: v20.12 +도입된 버전: v20.12 역쌍곡 코사인 값을 반환합니다. @@ -62,11 +62,11 @@ acosh(x) **인수** -* `x` — 각의 쌍곡 코사인 값. 값의 범위: `1 ≤ x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 각도의 쌍곡 코사인 값입니다. 범위: `1 ≤ x < +∞`의 값을 가집니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) 형식입니다. **반환 값** -라디안 단위의 각도를 반환합니다. 값의 범위: `0 ≤ acosh(x) < +∞`. [`Float64`](/sql-reference/data-types/float) +라디안 단위의 각도를 반환합니다. 범위: `0 ≤ acosh(x) < +∞`의 값을 가집니다. [`Float64`](/sql-reference/data-types/float) **예시** @@ -82,10 +82,10 @@ SELECT acosh(1) ## asin \{#asin\} -도입 버전: v1.1 +도입된 버전: v1.1 -지정된 인자의 아크사인을 계산합니다. -인자가 `[-1, 1]` 범위에 있을 때 `[-pi() / 2, pi() / 2]` 범위의 값을 반환합니다. +입력 인수의 아크사인 값을 계산합니다. +인수가 `[-1, 1]` 범위에 있으면 반환 값은 `[-pi() / 2, pi() / 2]` 범위에 속합니다. **구문** @@ -93,17 +93,17 @@ SELECT acosh(1) asin(x) ``` -**인자** +**인수(Arguments)** -* `x` — 아크사인 값을 계산할 인자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) +* `x` — 아크사인 값을 계산할 인수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) -**반환값** +**반환 값(Returned value)** -제공된 인자 `x`의 아크사인 값을 반환합니다. 반환 타입은 [`Float64`](/sql-reference/data-types/float)입니다. +제공된 인수 `x`의 아크사인 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예시** +**예시(Examples)** -**inverse** +**역함수(inverse)** ```sql title=Query SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1)) @@ -137,7 +137,7 @@ nan nan nan nan 도입 버전: v20.12 -역쌍곡 사인(inverse hyperbolic sine) 값을 반환합니다. +역쌍곡 사인(inverse hyperbolic sine)을 반환합니다. **구문** @@ -147,11 +147,11 @@ asinh(x) **인수** -* `x` — 각도의 쌍곡선 사인 값입니다. 구간 `-∞ < x < +∞`에 속하는 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 각도의 쌍곡선 사인 값입니다. 값의 범위는 `-∞ < x < +∞`입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -라디안 단위의 각도를 반환합니다. 구간 `-∞ < asinh(x) < +∞`에 속하는 값입니다. [`Float64`](/sql-reference/data-types/float) +라디안 단위의 각도를 반환합니다. 값의 범위는 `-∞ < asinh(x) < +∞`입니다. [`Float64`](/sql-reference/data-types/float) **예시** @@ -169,9 +169,9 @@ SELECT asinh(0) 도입 버전: v1.1 -인수의 아크탄젠트 값을 반환합니다. +인수의 아크탄젠트(arc tangent)를 반환합니다. -**구문** +**문법** ```sql atan(x) @@ -179,15 +179,15 @@ atan(x) **인수** -* `x` — 아크탄젠트(arc tangent)를 계산할 대상 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 아크탄젠트 값을 구할 입력 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`x`의 아크탄젠트(arc tangent) 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +`x`의 아크탄젠트 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT atan(1); @@ -201,7 +201,7 @@ SELECT atan(1); 도입 버전: v20.12 -유클리드 평면에서 양의 x축과 점 `(x, y) ≠ (0, 0)`으로 향하는 반직선 사이의 각도를 라디안 단위로 나타낸 `atan2` 값을 반환합니다. +유클리드 평면에서 양의 x축과 점 `(x, y) ≠ (0, 0)`으로 향하는 반직선 사이의 각도를 라디안 단위로 나타낸 atan2 값을 반환합니다. **구문** @@ -211,12 +211,12 @@ atan2(y, x) **인수** -* `y` — 반직선이 통과하는 점의 y-좌표입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -* `x` — 반직선이 통과하는 점의 x-좌표입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `y` — 반직선이 지나는 점의 y 좌표입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 반직선이 지나는 점의 x 좌표입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`-π < θ ≤ π`를 만족하는 각도 `θ`를 라디안 단위의 [`Float64`](/sql-reference/data-types/float) 값으로 반환합니다. +`-π < θ ≤ π`인 각도 `θ`를 라디안 단위의 [`Float64`](/sql-reference/data-types/float) 값으로 반환합니다. **예시** @@ -232,9 +232,9 @@ SELECT atan2(1, 1) ## atanh \{#atanh\} -도입된 버전: v20.12 +도입 버전: v20.12 -역쌍곡 탄젠트 함수의 값을 반환합니다. +역쌍곡 탄젠트 값을 반환합니다. **구문** @@ -244,11 +244,11 @@ atanh(x) **인수** -* `x` — 쌍곡선 탄젠트의 값. 값의 범위: -1 < x < 1. `(U)Int*`, `Float*` 또는 `Decimal*`. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 각도의 쌍곡선 탄젠트 값입니다. 값의 범위: -1 < x < 1. `(U)Int*`, `Float*` 또는 `Decimal*`. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -라디안 단위의 각도를 반환합니다. 반환 값의 범위: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) +라디안 단위의 각도를 반환합니다. 값의 범위: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) **예시** @@ -264,7 +264,7 @@ SELECT atanh(0) ## cbrt \{#cbrt\} -도입: v1.1 +도입된 버전: v1.1 인수의 세제곱근을 반환합니다. @@ -278,13 +278,13 @@ cbrt(x) * `x` — 세제곱근을 구할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환 값** +**반환값** `x`의 세제곱근을 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시** -**사용 예** +**사용 예시** ```sql title=Query SELECT cbrt(8); @@ -296,7 +296,7 @@ SELECT cbrt(8); ## cos \{#cos\} -도입: v1.1 +도입 버전: v1.1 인수의 코사인 값을 반환합니다. @@ -308,7 +308,7 @@ cos(x) **인수** -* `x` — 라디안 단위의 각도. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안 단위의 각도입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** @@ -328,9 +328,9 @@ SELECT cos(0); ## cosh \{#cosh\} -도입 버전: v20.12 +도입된 버전: v20.12 -인수의 쌍곡 코사인을 반환합니다. +인수의 쌍곡선 코사인 값을 반환합니다. **구문** @@ -340,11 +340,11 @@ cosh(x) **인수** -* `x` — 라디안 단위의 각도입니다. 값의 범위는 `-∞ < x < +∞`입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안 단위의 각도입니다. 값의 범위: `-∞ < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -반환되는 값의 범위는 `1 ≤ cosh(x) < +∞`입니다. [`Float64`](/sql-reference/data-types/float) +범위 `1 ≤ cosh(x) < +∞`에 속하는 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) **예시** @@ -360,9 +360,9 @@ SELECT cosh(0) ## degrees \{#degrees\} -도입 버전: v22.2 +도입된 버전: v22.2 -라디안 값을 도 단위로 변환합니다. +라디안을 도로 변환합니다. **구문** @@ -372,13 +372,13 @@ degrees(x) **인수** -* `x` — 라디안 단위의 입력값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안(radian) 단위의 입력입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`x`를 도(degree) 단위 값으로 변환하여 반환합니다. [`Float64`](/sql-reference/data-types/float) +`x` 값을 도(degree) 단위로 변환하여 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예시** +**예제** **기본 사용법** @@ -394,7 +394,7 @@ SELECT degrees(3.141592653589793) 도입 버전: v1.1 -오일러 상수(e)를 반환합니다. +자연상수 e를 반환합니다. **구문** @@ -404,11 +404,11 @@ e() **인수** -* 없음 +* 없음. **반환 값** -오일러 상수(Euler 상수)를 반환합니다. 반환 타입: [`Float64`](/sql-reference/data-types/float) +오일러 상수(Euler 상수)를 반환합니다. 반환 타입은 [`Float64`](/sql-reference/data-types/float)입니다. **예시** @@ -426,7 +426,7 @@ SELECT e(); 도입 버전: v1.1 -`x`가 0 이상일 때, `erf(x/(σ√2))`는 표준편차 `σ`를 갖는 정규분포를 따르는 확률 변수가 기대값에서 `x`보다 더 크게 벗어난 값을 가질 확률입니다. +`x`가 0 이상일 때, `erf(x/(σ√2))`는 표준 편차가 `σ`인 정규 분포를 따르는 확률 변수가 기댓값으로부터의 거리가 `x`를 초과하는 값을 가질 확률입니다. **구문** @@ -436,15 +436,15 @@ erf(x) **인수** -* `x` — 오차 함수 값을 계산할 대상 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 오차 함수 값을 계산할 입력 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -오차 함수 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +오차 함수 값을 [`Float*`](/sql-reference/data-types/float) 형으로 반환합니다. -**예제** +**예시** -**3시그마 규칙(Three sigma rule)** +**세 시그마 규칙** ```sql title=Query SELECT erf(3 / sqrt(2)) @@ -460,9 +460,9 @@ SELECT erf(3 / sqrt(2)) 도입 버전: v1.1 -큰 `x` 값에서도 정밀도를 잃지 않고 `1-erf(x)`에 가까운 값을 반환합니다. +입력 `x`가 큰 경우에도 정밀도 손실 없이 `1-erf(x)`에 가까운 값을 반환합니다. -**구문** +**Syntax** ```sql erfc(x) @@ -470,11 +470,11 @@ erfc(x) **인수** -* `x` — 오차 함수 값을 계산할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 오차 함수 값을 계산할 대상 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -상보 오차 함수의 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +상보 오차 함수 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시** @@ -492,7 +492,7 @@ SELECT erfc(0); 도입 버전: v1.1 -`x`가 함수에 전달된 인수일 때, e의 `x` 제곱값을 반환합니다. +함수의 인수로 주어진 `x`에 대해, e의 `x` 제곱 값을 반환합니다. **구문** @@ -502,15 +502,15 @@ exp(x) **인수** -* `x` — 지수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 지수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환값** +**반환 값** -`e^x`를 반환합니다. [`Float*`](/sql-reference/data-types/float) +`e^x` 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) **예제** -**기본 사용법** +**기본 사용** ```sql title=Query SELECT round(exp(-1), 4) @@ -524,9 +524,9 @@ SELECT round(exp(-1), 4) ## exp10 \{#exp10\} -도입된 버전: v1.1 +도입 버전: v1.1 -주어진 인수를 지수로 사용한 10의 거듭제곱 값을 반환합니다. +주어진 인수를 지수로 하는 10의 거듭제곱 값을 반환합니다. **구문** @@ -538,7 +538,7 @@ exp10(x) * `x` — 지수 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환 값** +**반환값** 10^x를 반환합니다. [`Float*`](/sql-reference/data-types/float) @@ -556,9 +556,9 @@ SELECT exp10(2); ## exp2 \{#exp2\} -도입: v1.1 +도입 버전: v1.1 -지정된 인수를 지수로 한 2의 거듭제곱을 반환합니다. +지정한 인자를 지수로 갖는 2의 거듭제곱 값을 반환합니다. **구문** @@ -566,17 +566,17 @@ SELECT exp10(2); exp2(x) ``` -**인수(Arguments)** +**인수** * `x` — 지수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환 값(Returned value)** +**반환값** 2^x를 반환합니다. [`Float*`](/sql-reference/data-types/float) -**예시(Examples)** +**예제** -**사용 예시(Usage example)** +**사용 예제** ```sql title=Query SELECT exp2(3); @@ -588,11 +588,11 @@ SELECT exp2(3); ## factorial \{#factorial\} -도입된 버전: v22.11 +도입 버전: v22.11 정수 값의 팩토리얼을 계산합니다. -0의 팩토리얼은 1입니다. 마찬가지로 `factorial()` FUNCTION은 모든 음수 값에 대해 `1`을 반환합니다. -입력 인수의 최댓값은 `20`이며, 값이 `21` 이상이면 예외가 발생합니다. +0의 팩토리얼은 1입니다. 마찬가지로 `factorial()` 함수는 어떤 음수 값에 대해서도 `1`을 반환합니다. +입력 인수로 사용할 수 있는 최대 양의 값은 `20`이며, `21` 이상이면 예외가 발생합니다. **구문** @@ -602,11 +602,11 @@ factorial(n) **인수** -* `n` — 팩토리얼을 계산할 정수입니다. 최대값은 20입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `n` — 팩토리얼을 계산할 정수 값입니다. 최댓값은 20입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) **반환 값** -입력값의 팩토리얼을 `UInt64`로 반환합니다. 입력값이 0 또는 음수일 경우 1을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +입력 값의 팩토리얼을 `UInt64`로 반환합니다. 입력이 0이거나 음수인 경우 1을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) **예시** @@ -622,7 +622,7 @@ factorial(10) ## hypot \{#hypot\} -도입 버전: v20.12 +도입된 버전: v20.12 직각삼각형의 빗변 길이를 반환합니다. hypot 함수는 매우 크거나 매우 작은 수를 제곱할 때 발생할 수 있는 문제를 방지합니다. @@ -633,18 +633,18 @@ hypot 함수는 매우 크거나 매우 작은 수를 제곱할 때 발생할 hypot(x, y) ``` -**매개변수** +**인자** -* `x` — 직각삼각형에서 직각을 이루는 첫 번째 변. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -* `y` — 직각삼각형에서 직각을 이루는 두 번째 변. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 직각삼각형의 첫 번째 직각변. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `y` — 직각삼각형의 두 번째 직각변. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** 직각삼각형의 빗변 길이를 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예제** +**예시** -**기본 사용 예** +**기본 사용법** ```sql title=Query SELECT hypot(1, 1) @@ -656,9 +656,9 @@ SELECT hypot(1, 1) ## intExp10 \{#intExp10\} -도입 버전: v1.1 +도입된 버전: v1.1 -[exp10](#exp10)과 유사하지만 `UInt64` 숫자를 반환합니다. +[exp10](#exp10)과 유사하지만 `UInt64` 값을 반환합니다. **구문** @@ -666,13 +666,13 @@ SELECT hypot(1, 1) intExp10(x) ``` -**인수** +**인자** -* `x` — 지수입니다. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `x` — 지수. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) **반환값** -10^x를 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +10^x 값을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) **예시** @@ -690,7 +690,7 @@ SELECT intExp10(2); 도입 버전: v1.1 -[exp2](#exp2)와 유사하지만 `UInt64` 정수를 반환합니다. +[exp2](#exp2)와 유사하지만 `UInt64` 값을 반환합니다. **구문** @@ -698,17 +698,17 @@ SELECT intExp10(2); intExp2(x) ``` -**인수** +**인자** * `x` — 지수. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) **반환 값** -2^x를 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +2^x 값을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT intExp2(3); @@ -720,7 +720,7 @@ SELECT intExp2(3); ## lgamma \{#lgamma\} -도입 버전: v1.1 +도입된 버전: v1.1 감마 함수의 로그를 반환합니다. @@ -732,11 +732,11 @@ lgamma(x) **인수** -* `x` — 감마 함수의 로그값을 계산할 숫자. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 감마 함수의 로그 값을 계산할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`x`의 감마 함수의 로그값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +`x`의 감마 함수의 로그 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시** @@ -752,9 +752,9 @@ SELECT lgamma(5); ## log \{#log\} -도입: v1.1 +도입된 버전: v1.1 -인수의 자연 로그를 반환합니다. +인수의 자연로그를 반환합니다. **구문** @@ -766,11 +766,11 @@ log(x) **인수(Arguments)** -* `x` — 자연 로그를 계산할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 자연로그를 계산할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값(Returned value)** -`x`의 자연 로그를 반환합니다. [`Float*`](/sql-reference/data-types/float) +`x`의 자연로그를 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시(Examples)** @@ -786,9 +786,9 @@ SELECT log(10); ## log10 \{#log10\} -도입: v1.1 +도입된 버전: v1.1 -인수의 상용로그(10진 로그)를 반환합니다. +인수의 상용 로그를 반환합니다. **구문** @@ -798,11 +798,11 @@ log10(x) **인수** -* `x` — 상용로그(밑이 10인 로그)를 계산할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 상용 로그를 계산할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -`x`의 상용로그를 반환합니다. [`Float*`](/sql-reference/data-types/float) +`x`의 상용 로그를 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시** @@ -821,7 +821,7 @@ SELECT log10(100); 도입된 버전: v20.12 log(1+x)를 계산합니다. -`x`의 값이 작은 경우 log(1+x)보다 log1p(x)를 사용하는 것이 더 정확합니다. +`x`의 값이 작은 경우 log1p(x)는 log(1+x)보다 더 정확하게 계산됩니다. **구문** @@ -829,13 +829,13 @@ log(1+x)를 계산합니다. log1p(x) ``` -**인수** +**인자** * `x` — 구간 `-1 < x < +∞`에 속하는 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -구간 -∞ < log1p(x) < +∞ 에 속하는 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) +구간 -∞ < log1p(x) < +∞에 속하는 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) **예시** @@ -853,7 +853,7 @@ SELECT log1p(0) 도입 버전: v1.1 -인자의 이진 로그를 반환합니다. +인수의 이진 로그를 반환합니다. **구문** @@ -863,15 +863,15 @@ log2(x) **인자** -* `x` — 이진 로그를 계산할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 이진 로그를 계산할 대상 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** `x`의 이진 로그를 반환합니다. [`Float*`](/sql-reference/data-types/float) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT log2(8); @@ -885,7 +885,7 @@ SELECT log2(8); 도입된 버전: v1.1 -원주율 π 값을 반환합니다. +파이(π)를 반환합니다. **구문** @@ -897,13 +897,13 @@ pi() * 없음. -**반환 값(Returned value)** +**반환 값** -pi를 반환합니다. 반환 타입은 [`Float64`](/sql-reference/data-types/float)입니다. +pi를 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예시(Examples)** +**예제(Examples)** -**사용 예시(Usage example)** +**사용 예제(Usage example)** ```sql title=Query SELECT pi(); @@ -915,9 +915,9 @@ SELECT pi(); ## pow \{#pow\} -도입: v1.1 +도입 버전: v1.1 -x의 y 제곱 값을 반환합니다. +x의 y제곱 값을 반환합니다. **구문** @@ -929,16 +929,16 @@ pow(x, y) **인수** -* `x` — 밑. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -* `y` — 지수. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 밑(base). [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `y` — 지수(exponent). [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환값** +**반환 값** -x^y를 [`Float64`](/sql-reference/data-types/float) 형식으로 반환합니다. +x^y 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT pow(2, 3); @@ -948,11 +948,53 @@ SELECT pow(2, 3); 8 ``` +## proportionsZTest \{#proportionsZTest\} + +도입 버전: v22.3 + +두 모집단 x와 y에서의 비율을 비교하는 통계 검정인 두 표본 비율 Z-검정의 검정 통계량을 반환합니다. +이 FUNCTION은 표준 오차 추정을 위해 pooled 방식과 unpooled 방식 두 가지를 모두 지원합니다. +pooled 방식에서는 두 비율의 평균을 사용하여 하나의 비율만으로 표준 오차를 추정합니다. +unpooled 방식에서는 두 비율을 각각 사용합니다. + +**구문** + +```sql +proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type) +``` + +**인수** + +* `successes_x` — 모집단 x에서의 성공 횟수. [`UInt64`](/sql-reference/data-types/int-uint) +* `successes_y` — 모집단 y에서의 성공 횟수. [`UInt64`](/sql-reference/data-types/int-uint) +* `trials_x` — 모집단 x에서의 시행 횟수. [`UInt64`](/sql-reference/data-types/int-uint) +* `trials_y` — 모집단 y에서의 시행 횟수. [`UInt64`](/sql-reference/data-types/int-uint) +* `conf_level` — 검정에 사용할 신뢰 수준. [`Float64`](/sql-reference/data-types/float) +* `pool_type` — 표준 오차 추정을 위한 풀링 방법 선택. 'unpooled' 또는 'pooled' 중 하나입니다. [`String`](/sql-reference/data-types/string) + +**반환 값** + +다음 값을 포함하는 튜플을 반환합니다: `z_stat`(Z 통계량), `p_val`(P 값), `ci_low`(신뢰 구간 하한), `ci_high`(신뢰 구간 상한). [`Tuple(Float64, Float64, Float64, Float64)`](/sql-reference/data-types/tuple) + +**예시** + +**사용 예시** + +```sql title=Query +SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled'); +``` + +```response title=Response +┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐ +│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │ +└────────────────────────────────────────────────────────────────────────────────────┘ +``` + ## radians \{#radians\} -도입 버전: v22.2 +도입된 버전: v22.2 -각도의 단위를 도(degree)에서 라디안(radian)으로 변환합니다. +도(degree)를 라디안(radian)으로 변환합니다. **구문** @@ -960,17 +1002,17 @@ SELECT pow(2, 3); radians(x) ``` -**인수(Arguments)** +**인수** -* `x` — 도(degree) 단위의 입력 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 도 단위의 입력입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -라디안(radian) 단위의 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) +라디안 단위의 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT radians(180) @@ -980,11 +1022,43 @@ SELECT radians(180) 3.141592653589793 ``` +## sigmoid \{#sigmoid\} + +도입 버전: v20.1 + +다음 sigmoid 함수 `1 / (1 + exp(-x))`를 계산합니다. sigmoid 함수는 임의의 실수를 (0, 1) 구간의 값으로 변환하며, 머신 러닝에서 널리 사용됩니다. + +**구문** + +```sql +sigmoid(x) +``` + +**인수** + +* `x` — 입력값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) + +**반환 값** + +입력값의 시그모이드(sigmoid)를 계산하여 (0, 1) 범위의 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT sigmoid(0) +``` + +```response title=Response +0.5 +``` + ## sign \{#sign\} -도입된 버전: v21.2 +도입 버전: v21.2 -실수의 부호를 반환합니다. +실수 값의 부호를 반환합니다. **구문** @@ -992,7 +1066,7 @@ SELECT radians(180) sign(x) ``` -**인수** +**인자** * `x` — -∞부터 +∞까지의 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Decimal*`](/sql-reference/data-types/decimal) 또는 [`Float*`](/sql-reference/data-types/float) @@ -1000,7 +1074,7 @@ sign(x) `x < 0`일 때 `-1`, `x = 0`일 때 `0`, `x > 0`일 때 `1`을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) -**예제** +**예시** **0의 부호** @@ -1012,7 +1086,7 @@ SELECT sign(0) 0 ``` -**양수일 때의 부호** +**양수에 대한 부호** ```sql title=Query SELECT sign(1) @@ -1022,7 +1096,7 @@ SELECT sign(1) 1 ``` -**음수일 때의 부호** +**음수에 대한 부호** ```sql title=Query SELECT sign(-1) @@ -1034,9 +1108,9 @@ SELECT sign(-1) ## sin \{#sin\} -도입 버전: v +도입: v1.1 -인수의 사인(sine)을 반환합니다. +인수의 사인(sine) 값을 반환합니다. **구문** @@ -1046,15 +1120,15 @@ sin(x) **인수** -* `x` — 사인 값을 계산할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 쌍곡선 사인 값을 구할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -x의 사인 값을 반환합니다. +x의 쌍곡선 사인 값을 반환합니다. **예시** -**간단한 예** +**simple** ```sql title=Query SELECT sin(1.23) @@ -1078,11 +1152,11 @@ sinh(x) **인수** -* `x` — 라디안 단위의 각도입니다. 값의 범위는 -∞ < x < +∞입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안 단위의 각도입니다. 값의 범위: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환값** +**반환 값** -구간 -∞ < sinh(x) < +∞에 속하는 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) +값의 범위: -∞ < sinh(x) < +∞인 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) **예시** @@ -1098,7 +1172,7 @@ SELECT sinh(0) ## sqrt \{#sqrt\} -도입 버전: v1.1 +도입된 버전: v1.1 인수의 제곱근을 반환합니다. @@ -1108,11 +1182,11 @@ SELECT sinh(0) sqrt(x) ``` -**인수** +**인자** -* `x` — 제곱근을 구할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 제곱근을 구할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환 값** +**반환값** x의 제곱근을 반환합니다. [`Float*`](/sql-reference/data-types/float) @@ -1140,17 +1214,17 @@ SELECT sqrt(16); tan(x) ``` -**인수** +**인수(Arguments)** -* `x` — 라디안 값의 각도. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안 단위의 각도입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) -**반환 값** +**반환값(Returned value)** -`x`의 탄젠트 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +`x`의 쌍곡선 탄젠트 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) -**예시** +**예제(Examples)** -**사용 예시** +**사용 예제(Usage example)** ```sql title=Query SELECT tan(0); @@ -1164,7 +1238,7 @@ SELECT tan(0); 도입된 버전: v20.1 -쌍곡선 탄젠트를 반환합니다. +쌍곡선 탄젠트(hyperbolic tangent)를 반환합니다. **구문** @@ -1174,11 +1248,11 @@ tanh(x) **인수** -* `x` — 라디안 단위의 각도입니다. 값의 구간: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 라디안 단위의 각도. 값의 범위: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** --1 < tanh(x) < 1 구간의 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +-1 < tanh(x) < 1 범위에 속하는 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) **예시** @@ -1196,21 +1270,21 @@ SELECT tanh(0) 도입된 버전: v1.1 -감마 함수값을 반환합니다. +감마 함수의 값을 반환합니다. -**문법** +**구문** ```sql tgamma(x) ``` -**인수** +**인자** -* `x` — 감마 함수 값을 계산할 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 감마 함수 값을 계산할 숫자입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal*`](/sql-reference/data-types/decimal) **반환 값** -감마 함수 값을 반환합니다. [`Float*`](/sql-reference/data-types/float) +감마 함수 값을 [`Float*`](/sql-reference/data-types/float)로 반환합니다. **예시** @@ -1226,12 +1300,12 @@ SELECT tgamma(5); ## widthBucket \{#widthBucket\} -도입된 버전: v23.3 +도입 버전: v23.3 -히스토그램에서 매개변수 `operand`가 속하는 버킷의 번호를 반환합니다. 이 히스토그램은 `low`부터 `high`까지의 범위를 동일한 너비의 `count`개의 버킷으로 나눈 것입니다. `operand`가 `low`보다 작으면 0을 반환하고, `operand`가 `high`보다 크거나 같으면 `count`+1을 반환합니다. -다른 데이터베이스와의 호환성을 위해 대소문자를 구분하지 않는 별칭 `WIDTH_BUCKET`도 제공합니다. +히스토그램에서 매개변수 `operand`가 위치하는 버킷의 번호를 반환합니다. 이 히스토그램은 `low` 에서 `high` 까지의 범위를 동일한 너비를 가진 `count`개의 버킷으로 나눈 것입니다. `operand`가 `low`보다 작으면 0을 반환하고, `operand`가 `high`보다 크거나 같으면 `count`+1을 반환합니다. +다른 데이터베이스와의 호환성을 위해 대소문자를 구분하지 않는 별칭인 `WIDTH_BUCKET`도 제공합니다. -**구문** +**문법** ```sql widthBucket(operand, low, high, count) @@ -1242,13 +1316,13 @@ widthBucket(operand, low, high, count) **인수** * `operand` — 버킷을 결정할 값입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `low` — 히스토그램 범위의 하한값입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `high` — 히스토그램 범위의 상한값입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `count` — 동일한 너비를 가진 버킷 개수입니다. 0이 될 수 없습니다. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +* `low` — 히스토그램 범위의 하한입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `high` — 히스토그램 범위의 상한입니다. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `count` — 동일한 너비를 갖는 버킷 개수입니다. 0일 수 없습니다. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **반환 값** -버킷 번호를 정수로 반환합니다. `operand` < `low` 이면 0을, `operand` >= `high` 이면 `count`+1을 반환합니다. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +버킷 번호를 정수로 반환합니다. `operand < low` 인 경우 0을, `operand >= high` 인 경우 `count+1`을 반환합니다. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **예시** diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index 928bac0b95d..df64ce71535 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -946,7 +946,7 @@ SELECT currentProfiles(); ## currentQueryID \{#currentQueryID\} -도입된 버전: v +도입된 버전: v25.2 현재 쿼리 ID를 반환합니다. @@ -1698,7 +1698,7 @@ SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); ## formatQuery \{#formatQuery\} -도입 버전: v +도입 버전: v23.10 지정된 SQL 쿼리를 포맷팅한 버전(여러 줄이 될 수 있음)을 반환합니다. 구문 분석 오류가 발생하면 예외를 던집니다. [example:multiline] @@ -1735,7 +1735,7 @@ WHERE (a > 3) AND (b < 3) ## formatQueryOrNull \{#formatQueryOrNull\} -도입된 버전: v +도입된 버전: v23.11 지정된 SQL 쿼리를 서식화한 문자열을 반환하며, 이 문자열은 여러 줄로 구성될 수 있습니다. 구문 분석 오류가 발생한 경우 NULL을 반환합니다. [example:multiline] @@ -1772,9 +1772,9 @@ WHERE (a > 3) AND (b < 3) ## formatQuerySingleLine \{#formatQuerySingleLine\} -도입 버전: v +도입 버전: v23.10 -formatQuery()와 유사하지만, 반환되는 형식화된 문자열에는 개행 문자가 포함되지 않습니다. 파싱 오류가 발생하면 예외를 던집니다. +formatQuery()와 유사하지만, 반환되는 포맷된 문자열에는 개행 문자가 포함되지 않습니다. 파싱 오류가 발생하면 예외를 던집니다. [example:multiline] **구문** @@ -1805,7 +1805,7 @@ SELECT a, b FROM tab WHERE (a > 3) AND (b < 3) ## formatQuerySingleLineOrNull \{#formatQuerySingleLineOrNull\} -도입 버전: v +도입 버전: v23.11 formatQuery()와 유사하지만, 반환되는 포맷된 문자열에는 줄 바꿈이 포함되지 않습니다. 구문 분석 오류가 발생한 경우 NULL을 반환합니다. [example:multiline] @@ -2021,6 +2021,37 @@ SELECT └────────────┴─────────────────────────────────────────────────────────────────┘ ``` +## fuzzQuery \{#fuzzQuery\} + +도입: v26.2 + +지정된 쿼리 문자열을 파싱한 뒤, AST에 임의의 뮤테이션(퍼징)을 적용합니다. 퍼징된 쿼리를 문자열로 반환합니다. 비결정적인 동작이므로 호출할 때마다 서로 다른 결과가 생성될 수 있습니다. `allow_fuzz_query_functions = 1` 설정이 필요합니다. + +**구문** + +```sql +fuzzQuery(query) +``` + +**인수** + +* `query` — 퍼징(fuzzing)을 적용할 SQL 쿼리입니다. [String](../../sql-reference/data-types/string.md) + +**반환 값** + +퍼징된 쿼리를 나타내는 쿼리 문자열 [`String`](/sql-reference/data-types/string) + +**예시** + +**기본** + +```sql title=Query +SET allow_fuzz_query_functions = 1; SELECT fuzzQuery('SELECT 1'); +``` + +```response title=Response +``` + ## generateRandomStructure \{#generateRandomStructure\} 도입 버전: v23.5 @@ -2246,7 +2277,7 @@ SELECT getMacro('test'); ## getMaxTableNameLengthForDatabase \{#getMaxTableNameLengthForDatabase\} -도입 버전: v +도입 버전: v25.1 지정된 데이터베이스에서 허용되는 최대 테이블 이름 길이를 반환합니다. @@ -2526,7 +2557,7 @@ SELECT getSizeOfEnumType(CAST('a' AS Enum8('a' = 1, 'b' = 2))) AS x; ## getSubcolumn \{#getSubcolumn\} -도입된 버전: v +도입된 버전: v23.3 식 또는 식별자, 그리고 하위 컬럼 이름을 나타내는 상수 문자열을 인수로 받습니다. @@ -3627,7 +3658,7 @@ SELECT number, neighbor(number, 2, 999) FROM system.numbers LIMIT 10; ## nested \{#nested\} -도입 버전: v +도입 버전: v23.2 이 FUNCTION은 ClickHouse 엔진 내부에서 사용되며, 직접 사용하도록 설계되지 않았습니다. @@ -4722,7 +4753,7 @@ SELECT number, sleepEachRow(0.5) FROM system.numbers LIMIT 5; ## structureToCapnProtoSchema \{#structureToCapnProtoSchema\} -도입 버전: v +도입 버전: v23.8 ClickHouse 테이블 구조를 CapnProto 형식의 스키마로 변환하는 함수입니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md index 07e5fb2044e..9aae3364a5f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md @@ -508,9 +508,9 @@ SELECT splitByWhitespace(' 1! a, b. '); 사용 가능한 tokenizer: * `splitByNonAlpha`는 영숫자가 아닌 ASCII 문자를 기준으로 문자열을 분할합니다(함수 [splitByNonAlpha](/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha)도 참조). -* `splitByString(S)`는 사용자 정의 구분 문자열 `S`를 기준으로 문자열을 분할합니다(함수 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString)도 참조). 구분자는 선택적 매개변수로 지정할 수 있으며, 예를 들어 `tokenizer = splitByString([', ', '; ', '\n', '\\'])`와 같이 설정합니다. 각 문자열은 여러 문자로 구성될 수 있습니다(예시의 `', '`). 구분자를 명시적으로 지정하지 않으면(예: `tokenizer = splitByString`) 기본 구분자 목록은 공백 하나 `[' ']`입니다. -* `ngrams(N)`는 문자열을 동일한 크기의 `N`-gram으로 분할합니다(함수 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams)도 참조). n-gram 길이는 1에서 8 사이의 정수인 선택적 매개변수로 지정할 수 있으며, 예를 들어 `tokenizer = ngrams(3)`와 같이 설정합니다. n-gram 크기를 명시적으로 지정하지 않으면(예: `tokenizer = ngrams`) 기본값은 3입니다. -* `sparseGrams(min_length, max_length, min_cutoff_length)`는 최소 `min_length`, 최대 `max_length`(포함) 길이의 가변 길이 n-gram으로 문자열을 분할합니다(함수 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams)도 참조). 별도 지정하지 않으면 `min_length`와 `max_length`의 기본값은 각각 3과 100입니다. 매개변수 `min_cutoff_length`를 지정하면 길이가 `min_cutoff_length` 이상인 n-gram만 반환합니다. `ngrams(N)`과 비교하면, `sparseGrams` tokenizer는 가변 길이 N-gram을 생성하여 원본 텍스트를 더 유연하게 표현할 수 있습니다. 예를 들어 `tokenizer = sparseGrams(3, 5, 4)`는 내부적으로 입력 문자열에서 3-, 4-, 5-gram을 생성하지만, 4-gram과 5-gram만 반환합니다. +* `splitByString(S)`는 사용자 정의 구분 문자열 `S`를 기준으로 문자열을 분할합니다(함수 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString)도 참조). 구분자는 선택적 매개변수로 지정할 수 있으며, 예를 들어 `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`와 같이 설정합니다. 각 문자열은 여러 문자로 구성될 수 있습니다(예시의 `', '`). 구분자를 명시적으로 지정하지 않으면 기본 구분자 목록은 공백 하나 `[' ']`입니다. +* `ngrams(N)`는 문자열을 동일한 크기의 `N`-gram으로 분할합니다(함수 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams)도 참조). n-gram 길이는 1에서 8 사이의 정수인 선택적 매개변수로 지정할 수 있으며, 예를 들어 `tokens(value, 'ngrams', 3)`와 같이 설정합니다. n-gram 크기를 명시적으로 지정하지 않으면 기본값은 3입니다. +* `sparseGrams(min_length, max_length, min_cutoff_length)`는 최소 `min_length`, 최대 `max_length`(포함) 길이의 가변 길이 n-gram으로 문자열을 분할합니다(함수 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams)도 참조). 별도 지정하지 않으면 `min_length`와 `max_length`의 기본값은 각각 3과 100입니다. 매개변수 `min_cutoff_length`를 지정하면 길이가 `min_cutoff_length` 이상인 n-gram만 반환합니다. `ngrams(N)`과 비교하면, `sparseGrams` tokenizer는 가변 길이 N-gram을 생성하여 원본 텍스트를 더 유연하게 표현할 수 있습니다. 예를 들어 `tokens(value, 'sparseGrams', 3, 5, 4)`는 내부적으로 입력 문자열에서 3-, 4-, 5-gram을 생성하지만, 4-gram과 5-gram만 반환합니다. * `array`는 토큰화를 수행하지 않으며, 각 행 값이 하나의 토큰이 됩니다(함수 [array](/sql-reference/functions/array-functions.md/#array)도 참조). `splitByString` tokenizer의 경우, 토큰이 [prefix code](https://en.wikipedia.org/wiki/Prefix_code)를 형성하지 않는다면 더 긴 구분자를 우선적으로 매칭하도록 하는 것이 바람직합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index e5cf151a489..43b01b0c222 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -940,7 +940,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitive \{#hasTokenCaseInsensitive\} -도입 버전: v +도입 버전: v20.1 `tokenbf_v1` 인덱스를 사용하여 `haystack` 내에서 `needle`을 대소문자를 구분하지 않고 검색합니다. @@ -959,7 +959,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitiveOrNull \{#hasTokenCaseInsensitiveOrNull\} -도입된 버전: v +도입된 버전: v23.1 `tokenbf_v1` 인덱스를 사용하여 `haystack`에서 `needle`을 대소문자를 구분하지 않고 검색합니다. `needle`의 형식이 올바르지 않은 경우 null을 반환합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md index ff996435152..b3d8ce3caec 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md @@ -800,4 +800,54 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht └────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘ ``` +## timeSeriesThrowDuplicateSeriesIf \{#timeSeriesThrowDuplicateSeriesIf\} + +도입된 버전: v26.2 + +`condition`을 평가하여 참이면 다음 메시지와 함께 예외를 발생시킵니다. +`Multiple series have the same tags , duplicate series in the same result set are not allowed`. +`condition`이 거짓이면 함수는 `0`을 반환합니다. +이 함수는 [throwIf()](/sql-reference/functions/other-functions#throwIf)와 유사하지만, +다른 오류 코드를 사용하고 오류 메시지를 다르게 서식을 지정합니다. + +**구문** + +```sql +timeSeriesThrowDuplicateSeriesIf(condition, group) +``` + +**인수** + +* `condition` — 확인할 조건입니다. 일반적으로 함수 [count()](/sql-reference/aggregate-functions/reference/count#count)를 포함합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `group` — 태그 그룹입니다. [`UInt64`](/sql-reference/data-types/int-uint) + +**반환 값** + +`0`을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) + +**예시** + +**예시** + +```sql title=Query +CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory; + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- OK + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- Throws exception "Multiple series have the same tags {'__name__': 'up'}" +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md index bbea3ae42ad..6c9cb816ce7 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md @@ -1,5 +1,5 @@ --- -description: '시간 윈도우 함수 문서' +description: '시간 윈도우 함수 관련 문서' sidebar_label: '시간 윈도우' slug: /sql-reference/functions/time-window-functions title: '시간 윈도우 함수' @@ -17,25 +17,25 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; -시간 윈도우 함수는 해당 윈도우의 포함되는 하한 값과 제외되는 상한 값을 반환합니다. -[WindowView](/sql-reference/statements/create/view#window-view)와 함께 사용하는 함수는 아래에 나열되어 있습니다. +시간 윈도우 함수는 해당 윈도우의 「포함되는 하한값」과 「포함되지 않는 상한값」(이상/미만 경계값)을 반환합니다. +[WindowView](/sql-reference/statements/create/view#window-view)를 다루는 함수는 다음과 같습니다: {/* 아래 태그 안의 내용은 문서 프레임워크를 빌드할 때 system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 제거하지 마십시오. - 참고: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 자세한 내용은 https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md 를 참조하십시오. */ } - {/*AUTOGENERATED_START*/ } + ## hop \{#hop\} 도입된 버전: v21.12 -hopping 시간 윈도우는 고정된 길이의 기간(`window_interval`)을 가지며, 지정된 hop 간격(`hop_interval`)만큼 이동합니다. `hop_interval`이 `window_interval`보다 작으면 hopping 윈도우는 서로 겹치게 됩니다. 따라서 레코드는 여러 개의 윈도우에 할당될 수 있습니다. +Hop 시간 윈도우는 고정된 기간(`window_interval`)을 가지며, 지정된 hop 간격(`hop_interval`)만큼 이동합니다. `hop_interval`이 `window_interval`보다 작으면 hop 윈도우는 서로 겹치게 됩니다. 따라서 하나의 레코드는 여러 윈도우에 할당될 수 있습니다. -하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, hop FUNCTION이 WINDOW VIEW 없이 사용될 때는 이 함수가 첫 번째 윈도우의 경계만 반환합니다. +하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, hop 함수가 WINDOW VIEW 없이 사용될 때는 첫 번째 윈도우의 경계만 반환합니다. **문법** @@ -43,16 +43,16 @@ hopping 시간 윈도우는 고정된 길이의 기간(`window_interval`)을 가 hop(time_attr, hop_interval, window_interval[, timezone]) ``` -**인수(Arguments)** +**인수** -* `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 양수 Hop 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `time_attr` — 날짜 및 시간. [`DateTime`](/sql-reference/data-types/datetime) +* `hop_interval` — 양수 hop 간격. [`Interval`](/sql-reference/data-types/int-uint) * `window_interval` — 양수 윈도우 간격. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항. 타임존 이름. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택적. 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 hopping 윈도우의 포함 하한과 미포함 상한을 반환합니다. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +해당 hopping 윈도우의 포함되는 하한 값과 포함되지 않는 상한 값을 반환합니다. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **예시** @@ -69,11 +69,11 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) ## hopEnd \{#hopEnd\} -도입 버전: v22.1 +도입된 버전: v22.1 -해당 hop 윈도우의 배타적 상한값을 반환합니다. +해당 hopping window의 배타적 상한값을 반환합니다. -하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, `WINDOW VIEW` 없이 `hop` 함수가 사용될 때는 첫 번째 윈도우의 상한값만 반환합니다. +하나의 레코드가 여러 hop window에 할당될 수 있으므로, `WINDOW VIEW` 없이 `hop` 함수가 사용되는 경우 함수는 첫 번째 window의 경계만 반환합니다. **구문** @@ -81,16 +81,16 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) hopEnd(time_attr, hop_interval, window_interval[, timezone]) ``` -**인수** +**인자** * `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 양수의 hop 간격. [`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — 양수의 윈도우 간격. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 선택적 매개변수. 타임존 이름. [`String`](/sql-reference/data-types/string) +* `hop_interval` — 양수 hop 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — 양수 윈도우 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항. 시간대 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 hopping 윈도우의 배타적인 상한값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +해당 hopping 윈도우의 상한(배타적)을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -109,11 +109,11 @@ SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 도입 버전: v22.1 -해당 hop 윈도의 포함되는 하한 값을 반환합니다. +해당 hop 윈도우의 포함되는 하한 경계를 반환합니다. -하나의 레코드가 여러 hop 윈도에 할당될 수 있으므로, `WINDOW VIEW` 없이 hop 함수가 사용되는 경우 이 함수는 첫 번째 윈도의 하한 경계만 반환합니다. +하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, `WINDOW VIEW` 없이 hop 함수가 사용되는 경우 첫 번째 윈도우의 경계값만 반환합니다. -**문법** +**구문** ```sql hopStart(time_attr, hop_interval, window_interval[, timezone]) @@ -122,17 +122,17 @@ hopStart(time_attr, hop_interval, window_interval[, timezone]) **인수** * `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 양수 hopping 간격. [`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — 양수 window 간격. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항. 시간대 이름. [`String`](/sql-reference/data-types/string) +* `hop_interval` — 양의 hopping 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — 양의 window 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항. 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 hopping window의 포함 구간 하한을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +해당 hopping 윈도우의 포함되는 하한값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** -**Hopping window 시작** +**Hopping 윈도우 시작** ```sql title=Query SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -147,7 +147,7 @@ SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 도입된 버전: v21.12 -tumbling time window는 레코드를 서로 겹치지 않는 연속적인 고정 기간(`interval`)의 윈도우에 할당합니다. +tumbling 시간 윈도우는 고정된 길이(`interval`)를 가진 서로 겹치지 않는 연속적인 윈도우에 레코드를 할당합니다. **구문** @@ -155,19 +155,19 @@ tumbling time window는 레코드를 서로 겹치지 않는 연속적인 고정 tumble(time_attr, interval[, timezone]) ``` -**인수** +**인수(Arguments)** * `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — Interval 형식의 윈도우 간격. [`Interval`](/sql-reference/data-types/int-uint) +* `interval` — 윈도우 간격을 나타내는 Interval 값. [`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 선택 사항. 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 tumbling 윈도우의 포함 구간 하한과 배제 구간 상한을 반환합니다. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +해당 tumbling window의 포함되는 하한과 포함되지 않는 상한 경계를 반환합니다. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) -**예시** +**예시(Examples)** -**tumbling 윈도우** +**Tumbling window** ```sql title=Query SELECT tumble(now(), toIntervalDay('1')) @@ -182,7 +182,7 @@ SELECT tumble(now(), toIntervalDay('1')) 도입 버전: v22.1 -해당 텀블링 윈도에 대한 배타적 상한값을 반환합니다. +해당 텀블링 윈도에 대한 배타적 상한을 반환합니다. **구문** @@ -190,17 +190,17 @@ SELECT tumble(now(), toIntervalDay('1')) tumbleEnd(time_attr, interval[, timezone]) ``` -**인자** +**인수(Arguments)** -* `time_attr` — 날짜 및 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — 윈도우 간격을 나타내는 Interval 값. [`Interval`](/sql-reference/data-types/int-uint) +* `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) +* `interval` — `Interval` 단위의 윈도우 간격. [`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 선택 사항. 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 텀블링 윈도우의 배타적 상한값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +해당 텀블링 윈도우에 대한 배타적인 상한 값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) -**예시** +**예시(Examples)** **텀블링 윈도우 종료 시점** @@ -215,9 +215,9 @@ SELECT tumbleEnd(now(), toIntervalDay('1')) ## tumbleStart \{#tumbleStart\} -도입 버전: v22.1 +도입된 버전: v22.1 -해당 텀블링 윈도우의 포함된 하한 값을 반환합니다. +해당 텀블링 윈도의 포함 구간 시작 값을 반환합니다. **구문** @@ -228,12 +228,12 @@ tumbleStart(time_attr, interval[, timezone]) **인수** * `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — 윈도우 간격을 나타내는 Interval 값. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항. 시간대 이름. [`String`](/sql-reference/data-types/string) +* `interval` — 윈도우 간격을 나타내는 Interval. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항. 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -해당 텀블링 윈도우(tumbling window)의 포함되는 하한값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +해당 텀블링 윈도우의 하한(포함 경계)을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -247,9 +247,44 @@ SELECT tumbleStart(now(), toIntervalDay('1')) 2024-07-04 00:00:00 ``` + +## windowID \{#windowID\} + +도입 버전: v22.1 + +해당 텀블링(tumbling) 윈도 또는 호핑(hopping) 윈도의 식별자를 반환합니다. +이 함수는 `WINDOW VIEW`에서만 사용할 수 있습니다. + +**구문** + +```sql +windowID(time_attr, interval[, timezone]) +``` + +**인수** + +* `time_attr` — 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) +* `interval` — 윈도우 간격을 나타내는 Interval 값. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항. 시간대 이름. [`String`](/sql-reference/data-types/string) + +**반환 값** + +해당 윈도우의 식별자를 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) + +**예시** + +**윈도우 ID** + +```sql title=Query +SELECT windowID(now(), toIntervalDay('1')) +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } -## 관련 콘텐츠 \{#related-content\} +## 관련 문서 \{#related-content\} -- [시계열 사용 사례 가이드](/use-cases/time-series) +- [시계열 사용 사례 가이드](/use-cases/time-series) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md index a05d2cd1b56..ee2013cb17a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md @@ -19,6 +19,43 @@ doc_type: 'reference' {/*AUTOGENERATED_START*/ } +## dotProduct \{#dotProduct\} + +도입 버전: v21.11 + +두 벡터(크기가 같은 튜플 또는 배열)의 [내적](https://en.wikipedia.org/wiki/Dot_product)(스칼라 곱)을 계산합니다. +서로 대응하는 원소들의 곱을 모두 더한 값을 반환합니다. + +**구문** + +```sql +dotProduct(vector1, vector2) +``` + +**별칭**: `scalarProduct` + +**인수** + +* `vector1` — 첫 번째 벡터입니다. [`Array(T)`](/sql-reference/data-types/array) 또는 [`Tuple(T)`](/sql-reference/data-types/tuple) +* `vector2` — 두 번째 벡터입니다. 첫 번째 벡터와 동일한 크기여야 합니다. [`Array(T)`](/sql-reference/data-types/array) 또는 [`Tuple(T)`](/sql-reference/data-types/tuple) + +**반환 값** + +두 벡터의 내적(dot product)을 반환합니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT dotProduct((1, 2), (3, 4)) +``` + +```response title=Response +11 +``` + + ## flattenTuple \{#flattenTuple\} 도입 버전: v22.6 @@ -60,7 +97,7 @@ SELECT flattenTuple(t) FROM tab; ## tuple \{#tuple\} -도입된 버전: v +도입된 버전: v1.1 입력 인수를 그룹화하여 튜플(tuple)을 반환합니다. @@ -702,7 +739,7 @@ SELECT tupleMultiplyByNumber((1, 2), -2.1) ## tupleNames \{#tupleNames\} -도입 버전: v +도입 버전: v24.8 튜플을 컬럼 이름 배열로 변환합니다. `Tuple(a T, b T, ...)` 형식의 튜플에 대해, 튜플에서 이름이 지정된 컬럼을 나타내는 문자열 배열을 반환합니다. 튜플 요소에 명시적인 이름이 없는 경우, 해당 인덱스 번호가 컬럼 이름으로 대신 사용됩니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index 012ce6450d7..06d9c83fe8a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -16,7 +16,7 @@ doc_type: 'reference' ## extractKeyValuePairs \{#extractKeyValuePairs\} -도입 버전: v +도입 버전: v23.4 임의의 문자열에서 key-value 쌍을 추출합니다. 문자열이 key-value 쌍 형식으로 100% 구조화되어 있을 필요는 없습니다. @@ -60,7 +60,7 @@ key-value 쌍은 키, 그 뒤에 오는 `key_value_delimiter`, 그리고 값으 └─────────────────────────────────────────────────────────────────────────┘ ``` -**인용 부호로서의 작은따옴표** +**인용 문자로 작은따옴표 사용** ```sql arthur :) select extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv @@ -173,7 +173,7 @@ unexpected_quoting_character_strategy=promote ## extractKeyValuePairsWithEscaping \{#extractKeyValuePairsWithEscaping\} -도입 버전: v +도입 버전: v23.4 `extractKeyValuePairs`와 동일하지만 이스케이프를 지원합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md index 29d04151412..0e600821b62 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md @@ -6,16 +6,16 @@ title: '형 변환 함수' doc_type: 'reference' --- -# 형 변환 함수 \{#type-conversion-functions\} +# 데이터 형식 변환 함수 \{#type-conversion-functions\} -## 데이터 변환 시 흔한 문제 \{#common-issues-with-data-conversion\} +## 데이터 변환 시 일반적인 문제 \{#common-issues-with-data-conversion\} -ClickHouse는 일반적으로 [C++ 프로그램과 동일한 동작](https://en.cppreference.com/w/cpp/language/implicit_conversion)을 따릅니다. +ClickHouse는 일반적으로 [C++ 프로그램과 동일한 동작 방식](https://en.cppreference.com/w/cpp/language/implicit_conversion)을 사용합니다. -`to` 함수와 [cast](#CAST)는 경우에 따라 다르게 동작합니다. 예를 들어 [LowCardinality](../data-types/lowcardinality.md)의 경우 [cast](#CAST)는 [LowCardinality](../data-types/lowcardinality.md) 특성을 제거하지만, `to` 함수는 제거하지 않습니다. [널 허용(Nullable)](../data-types/nullable.md)도 마찬가지이며, 이 동작은 SQL 표준과 호환되지 않습니다. [cast_keep_nullable](../../operations/settings/settings.md/#cast_keep_nullable) 설정을 사용하여 변경할 수 있습니다. +`to` 함수와 [cast](#CAST)는 일부 상황에서, 예를 들어 [LowCardinality](../data-types/lowcardinality.md)의 경우 서로 다르게 동작합니다. [cast](#CAST)는 [LowCardinality](../data-types/lowcardinality.md) 특성을 제거하지만 `to` 함수는 제거하지 않습니다. [Nullable](../data-types/nullable.md)에 대해서도 마찬가지이며, 이 동작은 SQL 표준과 호환되지 않습니다. 이 동작은 [cast_keep_nullable](../../operations/settings/settings.md/#cast_keep_nullable) 설정을 사용하여 변경할 수 있습니다. :::note -데이터 타입의 값이 더 작은 데이터 타입으로 변환될 때(예: `Int64`에서 `Int32`로), 또는 서로 호환되지 않는 데이터 타입 간에 변환될 때(예: `String`에서 `Int`로) 잠재적인 데이터 손실이 발생할 수 있습니다. 결과가 예상과 일치하는지 반드시 주의 깊게 확인하십시오. +데이터 타입의 값을 더 작은 데이터 타입(예: `Int64`에서 `Int32`로)으로 변환하거나, 서로 호환되지 않는 데이터 타입(예: `String`에서 `Int`로) 간에 변환하는 경우 데이터 손실이 발생할 수 있습니다. 결과가 기대한 대로인지 반드시 주의 깊게 확인하십시오. ::: 예: @@ -53,29 +53,29 @@ SETTINGS cast_keep_nullable = 1 ## `toString` 함수에 대한 참고 사항 \{#to-string-functions\} -`toString` 계열 함수는 숫자, 문자열(고정 문자열 제외), 날짜, 그리고 시간 정보를 포함한 날짜를 서로 변환하는 데 사용됩니다. -이들 모든 함수는 하나의 인자만 받습니다. +`toString` 계열 함수는 숫자, 문자열(고정 길이 문자열은 제외), 날짜, 시간 정보를 포함한 날짜 사이를 서로 변환할 수 있게 합니다. +이 모든 함수는 하나의 인자를 받습니다. -- 문자열로 변환하거나 문자열에서 변환할 때, 값은 TabSeparated 형식(및 거의 모든 다른 텍스트 형식)과 동일한 규칙으로 형식화되거나 파싱됩니다. 문자열을 파싱할 수 없으면 예외가 발생하고 요청이 취소됩니다. -- 날짜를 숫자로 또는 그 반대로 변환할 때, 해당 날짜는 유닉스 epoch 시작 시점부터의 일 수에 대응합니다. -- 시간 정보를 포함한 날짜를 숫자로 또는 그 반대로 변환할 때, 해당 날짜-시간 값은 유닉스 epoch 시작 시점부터의 초 수에 대응합니다. -- `DateTime` 인자를 받는 `toString` 함수는 두 번째 인자로 time zone 이름을 포함하는 String 인자를 받을 수 있습니다(예: `Europe/Amsterdam`). 이 경우 시간은 지정된 time zone에 따라 형식화됩니다. +- 문자열로 변환하거나 문자열에서 다른 타입으로 변환할 때, 값은 TabSeparated 형식(및 거의 모든 다른 텍스트 형식)과 동일한 규칙을 사용해 형식화되거나 해석됩니다. 문자열을 해석할 수 없으면 예외가 발생하고 요청이 취소됩니다. +- 날짜를 숫자로 또는 그 반대로 변환할 때, 날짜는 유닉스 에포크(Unix epoch) 시작 시점부터 경과한 일(day) 수에 해당합니다. +- 시간 정보를 포함한 날짜를 숫자로 또는 그 반대로 변환할 때, 시간 정보를 포함한 날짜는 유닉스 에포크 시작 시점부터 경과한 초(second) 수에 해당합니다. +- `DateTime` 인자를 갖는 `toString` 함수는 시간대 이름을 포함하는 두 번째 String 인자를 받을 수 있습니다(예: `Europe/Amsterdam`). 이 경우 시간은 지정된 시간대에 따라 형식화됩니다. ## `toDate`/`toDateTime` 함수에 대한 참고 사항 \{#to-date-and-date-time-functions\} -`toDate`/`toDateTime` 함수의 날짜 및 날짜-시간 형식은 다음과 같이 정의됩니다: +`toDate`/`toDateTime` 함수에 사용되는 날짜 및 날짜-시간 형식은 다음과 같이 정의됩니다. ```response YYYY-MM-DD YYYY-MM-DD hh:mm:ss ``` -예외적으로, UInt32, Int32, UInt64, Int64 숫자형 타입을 Date로 변환할 때 값이 65536 이상이면, 해당 값을 일수(day)가 아닌 Unix 타임스탬프로 해석한 뒤 날짜로 반올림합니다. -이를 통해 일반적으로 자주 사용하는 `toDate(unix_timestamp)` 형태를 지원할 수 있으며, 그렇지 않으면 오류가 발생하므로 더 번거로운 `toDate(toDateTime(unix_timestamp))` 형태로 작성해야 합니다. +예외적으로 UInt32, Int32, UInt64, Int64 숫자 타입에서 Date로 변환할 때, 값이 65536 이상이면 이 값을 일 수가 아닌 Unix 타임스탬프로 해석하여 해당 날짜로 반올림합니다. +이는 그렇지 않으면 오류가 발생하는 일반적인 패턴인 `toDate(unix_timestamp)` 호출을 지원하기 위한 것으로, 원래라면 더 번거로운 `toDate(toDateTime(unix_timestamp))`를 작성해야 합니다. -날짜(Date)와 시간 정보를 포함한 날짜(DateTime) 간 변환은 자연스럽게 처리되며, 시간 값을 0으로 채워 넣거나 시간 값을 제거하는 방식으로 수행됩니다. +날짜 타입과 시간 정보를 포함한 날짜·시간 타입 간의 변환은 자연스럽게 수행됩니다. 즉, 시간 값을 0시(자정)으로 추가하거나 시간 정보를 제거합니다. -숫자형 타입 간 변환은 C++에서 서로 다른 숫자형 타입 간 대입에 사용하는 규칙과 동일한 규칙을 따릅니다. +숫자 타입 간의 변환은 C++에서 서로 다른 숫자 타입 간의 대입과 동일한 규칙을 사용합니다. **예시** @@ -111,7 +111,7 @@ LIMIT 10 [`toUnixTimestamp`](/sql-reference/functions/date-time-functions#toUnixTimestamp) 함수도 함께 참고하십시오. {/* - 아래 태그 안의 내용은 문서 프레임워크 빌드 시점에 + 아래 태그 안의 내용은 문서 프레임워크를 빌드할 때 system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 삭제하지 마십시오. 자세한 내용은 https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md 를 참조하십시오. */ } @@ -121,11 +121,11 @@ LIMIT 10 ## CAST \{#CAST\} -도입: v1.1 +도입 버전: v1.1 -값을 지정된 데이터 타입으로 변환합니다. -`reinterpret` 함수와 달리, CAST는 대상 타입에서도 동일한 값을 생성하려고 시도합니다. -이렇게 변환할 수 없는 경우 예외가 발생합니다. +지정된 데이터 타입으로 값을 변환합니다. +`reinterpret` 함수와 달리 CAST는 대상 타입에서 동일한 값을 생성하려고 시도합니다. +이때 변환이 불가능하면 예외가 발생합니다. **구문** @@ -137,14 +137,14 @@ or x::T **인수** -* `x` — 임의의 데이터 타입 값. [`Any`](/sql-reference/data-types) -* `T` — 대상 데이터 타입. [`String`](/sql-reference/data-types/string) +* `x` — 임의의 타입 값입니다. [`Any`](/sql-reference/data-types) +* `T` — 대상 데이터 타입입니다. [`String`](/sql-reference/data-types/string) **반환 값** 대상 데이터 타입으로 변환된 값을 반환합니다. [`Any`](/sql-reference/data-types) -**예제** +**예시** **기본 사용법** @@ -158,7 +158,7 @@ SELECT CAST(42, 'String') └────────────────────┘ ``` -**AS 구문 사용** +**AS 구문 사용하기** ```sql title=Query SELECT CAST('2025-01-01' AS Date) @@ -170,7 +170,7 @@ SELECT CAST('2025-01-01' AS Date) └────────────────────────────┘ ``` -**:: 구문 사용** +**`::` 구문 사용** ```sql title=Query SELECT '123'::UInt32 @@ -183,13 +183,46 @@ SELECT '123'::UInt32 ``` +## DATE \{#DATE\} + +도입 버전: v21.2 + +인수를 Date 데이터 타입으로 변환합니다. MySQL 호환성을 위한 `toDate`의 별칭으로, `toDate`와 동일하게 동작합니다. + +**구문** + +```sql +DATE(expr) +``` + +**인수** + +* `expr` — 변환할 값입니다. [`String`](/sql-reference/data-types/string) 또는 [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) + +**반환 값** + +`Date` 값을 반환합니다. [`Date`](/sql-reference/data-types/date) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT DATE('2023-01-01') +``` + +```response title=Response +2023-01-01 +``` + + ## accurateCast \{#accurateCast\} 도입 버전: v1.1 -값을 지정된 데이터 타입으로 변환합니다. [`CAST`](#CAST)와 달리 `accurateCast`는 더 엄격하게 타입을 검사하며, 변환으로 인해 데이터 정밀도가 손실되거나 변환 자체가 불가능한 경우 예외를 발생시킵니다. +값을 지정된 데이터 타입으로 변환합니다. [`CAST`](#CAST)와 달리 `accurateCast`는 더 엄격한 타입 검사를 수행하며, 변환으로 인해 데이터 정밀도가 손실되거나 변환이 불가능한 경우 예외를 발생시킵니다. -이 함수는 정밀도 손실과 유효하지 않은 변환을 방지하므로 일반 `CAST`보다 더 안전합니다. +이 함수는 정밀도 손실과 잘못된 변환을 방지하므로 일반적인 `CAST`보다 더 안전합니다. **구문** @@ -197,16 +230,16 @@ SELECT '123'::UInt32 accurateCast(x, T) ``` -**인수** +**인자** * `x` — 변환할 값. [`Any`](/sql-reference/data-types) * `T` — 대상 데이터 타입의 이름. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** 대상 데이터 타입으로 변환된 값을 반환합니다. [`Any`](/sql-reference/data-types) -**예시** +**예제** **성공적인 변환** @@ -237,11 +270,11 @@ SELECT accurateCast('123.45', 'Float64') 도입 버전: v21.1 -지정된 데이터 타입으로 값을 변환합니다. -[`accurateCast`](#accurateCast)와 동일하지만, 변환을 정확하게 수행할 수 없는 경우 예외를 발생시키는 대신 기본값을 반환합니다. +값을 지정된 데이터 타입으로 변환합니다. +[`accurateCast`](#accurateCast)와 유사하지만, 변환을 정확하게 수행할 수 없는 경우 예외를 발생시키는 대신 기본값을 반환합니다. -두 번째 인수로 기본값을 제공하는 경우 해당 값은 대상 타입이어야 합니다. -기본값을 제공하지 않으면 대상 타입의 기본값이 사용됩니다. +두 번째 인수로 기본값을 전달하는 경우, 이 값은 대상 타입과 동일한 타입이어야 합니다. +기본값을 전달하지 않으면 대상 타입의 기본값이 사용됩니다. **구문** @@ -249,17 +282,17 @@ SELECT accurateCast('123.45', 'Float64') accurateCastOrDefault(x, T[, default_value]) ``` -**인수** +**인자** * `x` — 변환할 값입니다. [`Any`](/sql-reference/data-types) -* `T` — 대상 데이터 타입의 이름입니다. [`const String`](/sql-reference/data-types/string) -* `default_value` — 선택 사항입니다. 변환에 실패했을 때 반환할 기본값입니다. [`Any`](/sql-reference/data-types) +* `T` — 대상 데이터 타입 이름입니다. [`const String`](/sql-reference/data-types/string) +* `default_value` — 선택적입니다. 변환에 실패했을 때 반환할 기본값입니다. [`Any`](/sql-reference/data-types) -**반환 값** +**반환값** 대상 데이터 타입으로 변환된 값 또는 변환이 불가능한 경우 기본값을 반환합니다. [`Any`](/sql-reference/data-types) -**예시** +**예제** **성공적인 변환** @@ -285,7 +318,7 @@ SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) └─────────────────────────────────────────────┘ ``` -**암시적 기본값으로 인한 변환 실패** +**암시적 기본값을 사용하는 변환 실패** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32') @@ -302,12 +335,12 @@ SELECT accurateCastOrDefault('abc', 'UInt32') 도입 버전: v1.1 -값을 지정된 데이터 타입으로 변환합니다. +값을 지정한 데이터 타입으로 변환합니다. [`accurateCast`](#accurateCast)와 유사하지만, 변환을 정확하게 수행할 수 없는 경우 예외를 발생시키는 대신 `NULL`을 반환합니다. -이 함수는 [`accurateCast`](#accurateCast)의 안정성과 유연한 오류 처리를 결합합니다. +이 함수는 [`accurateCast`](#accurateCast)의 안전성과 우아한 오류 처리를 결합합니다. -**구문** +**문법** ```sql accurateCastOrNull(x, T) @@ -316,15 +349,15 @@ accurateCastOrNull(x, T) **인수** * `x` — 변환할 값입니다. [`Any`](/sql-reference/data-types) -* `T` — 대상 데이터 타입의 이름입니다. [`String`](/sql-reference/data-types/string) +* `T` — 대상 데이터 타입 이름입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -대상 데이터 타입으로 변환된 값을 반환하며, 변환이 불가능하면 `NULL`을 반환합니다. [`Any`](/sql-reference/data-types) +대상 데이터 타입으로의 변환에 성공하면 변환된 값을, 변환이 불가능하면 `NULL`을 반환합니다. [`Any`](/sql-reference/data-types) -**예제** +**예시** -**성공적인 변환** +**변환 성공** ```sql title=Query SELECT accurateCastOrNull(42, 'String') @@ -336,7 +369,7 @@ SELECT accurateCastOrNull(42, 'String') └──────────────────────────────────┘ ``` -**변환 실패 시 NULL 반환** +**변환 실패 시 NULL을 반환합니다** ```sql title=Query SELECT accurateCastOrNull('abc', 'UInt32') @@ -353,14 +386,14 @@ SELECT accurateCastOrNull('abc', 'UInt32') 도입 버전: v20.7 -임의의 표현식을 지정된 format을 통해 문자열로 변환합니다. +임의의 표현식을 지정된 형식을 사용해 문자열로 변환합니다. :::note -format에 접두사/접미사가 포함되어 있으면 각 행마다 함께 출력됩니다. -이 함수는 행 기반 format만 지원합니다. +형식에 접미사/접두사가 포함되어 있으면 각 행마다 출력됩니다. +이 함수에서는 행 기반 형식만 지원합니다. ::: -**문법** +**구문** ```sql formatRow(format, x, y, ...) @@ -368,12 +401,12 @@ formatRow(format, x, y, ...) **인수** -* `format` — 텍스트 형식입니다. 예: CSV, TSV. [`String`](/sql-reference/data-types/string) +* `format` — 텍스트 형식입니다(예: CSV, TSV). [`String`](/sql-reference/data-types/string) * `x, y, ...` — 표현식입니다. [`Any`](/sql-reference/data-types) **반환 값** -서식이 적용된 문자열입니다. (텍스트 형식의 경우 일반적으로 줄 바꿈 문자로 끝납니다). [`String`](/sql-reference/data-types/string) +서식화된 문자열입니다(텍스트 형식의 경우 보통 줄 바꿈 문자로 끝납니다). [`String`](/sql-reference/data-types/string) **예시** @@ -395,7 +428,7 @@ FROM numbers(3) └──────────────────────────────────┘ ``` -**사용자 지정 포맷 사용** +**사용자 정의 포맷 사용** ```sql title=Query SELECT formatRow('CustomSeparated', number, 'good') @@ -420,21 +453,21 @@ SETTINGS format_custom_result_before_delimiter='\n', format_custom_resul ## formatRowNoNewline \{#formatRowNoNewline\} -도입 버전: v20.7 +도입된 버전: v20.7 -[`formatRow`](#formatRow)와 동일하지만, 각 행의 개행 문자를 제거합니다. +[`formatRow`](#formatRow)와 동일하지만, 각 행의 줄 바꿈 문자를 제거합니다. -임의의 표현식을 지정된 포맷으로 문자열로 변환하되, 결과에서 뒤에 붙은 개행 문자를 제거합니다. +임의의 표현식을 지정된 포맷을 사용해 문자열로 변환하되, 결과 끝에 있는 줄 바꿈 문자를 모두 제거합니다. -**문법** +**구문** ```sql formatRowNoNewline(format, x, y, ...) ``` -**인자** +**인수** -* `format` — 텍스트 형식입니다. 예: CSV, TSV. [`String`](/sql-reference/data-types/string) +* `format` — 텍스트 형식입니다. 예를 들어 CSV, TSV입니다. [`String`](/sql-reference/data-types/string) * `x, y, ...` — 표현식입니다. [`Any`](/sql-reference/data-types) **반환 값** @@ -443,7 +476,7 @@ formatRowNoNewline(format, x, y, ...) **예제** -**기본 사용법** +**기본 사용** ```sql title=Query SELECT formatRowNoNewline('CSV', number, 'good') @@ -461,30 +494,30 @@ FROM numbers(3) ## fromUnixTimestamp64Micro \{#fromUnixTimestamp64Micro\} -도입 버전: v20.5 +도입된 버전: v20.5 마이크로초 단위 Unix 타임스탬프를 마이크로초 정밀도의 `DateTime64` 값으로 변환합니다. -입력값은 마이크로초 정밀도의 Unix 타임스탬프(1970-01-01 00:00:00 UTC 이후 경과한 마이크로초 수)로 간주됩니다. +입력값은 1970-01-01 00:00:00 UTC 이후 경과한 마이크로초 수를 나타내는 마이크로초 정밀도의 Unix 타임스탬프로 처리됩니다. -**구문** +**Syntax** ```sql fromUnixTimestamp64Micro(value[, timezone]) ``` -**인수** +**인수(Arguments)** -* `value` — 마이크로초 단위의 Unix 타임스탬프. [`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 선택적 인수. 반환 값에 사용할 타임존. [`String`](/sql-reference/data-types/string) +* `value` — 마이크로초 단위의 Unix 타임스탬프입니다. [`Int64`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항입니다. 반환 값에 사용할 타임존입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** 마이크로초 정밀도의 `DateTime64` 값을 반환합니다. [`DateTime64(6)`](/sql-reference/data-types/datetime64) -**예시** +**예제(Examples)** -**사용 예시** +**사용 예제(Usage example)** ```sql title=Query SELECT fromUnixTimestamp64Micro(1640995200123456) @@ -503,7 +536,7 @@ SELECT fromUnixTimestamp64Micro(1640995200123456) 밀리초 단위의 Unix 타임스탬프를 밀리초 정밀도의 `DateTime64` 값으로 변환합니다. -입력 값은 1970-01-01 00:00:00 UTC 이후 경과한 밀리초 수를 나타내는, 밀리초 정밀도의 Unix 타임스탬프로 간주됩니다. +입력 값은 밀리초 정밀도의 Unix 타임스탬프(1970-01-01 00:00:00 UTC 이후 경과한 밀리초 수)로 간주됩니다. **구문** @@ -513,12 +546,12 @@ fromUnixTimestamp64Milli(value[, timezone]) **인수** -* `value` — 밀리초 단위의 Unix 타임스탬프입니다. [`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 선택적입니다. 반환 값에 사용할 타임존입니다. [`String`](/sql-reference/data-types/string) +* `value` — 밀리초 단위 Unix 타임스탬프. [`Int64`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항. 반환 값에 사용할 시간대. [`String`](/sql-reference/data-types/string) -**반환값** +**반환 값** -밀리초 단위 정밀도를 가지는 `DateTime64` 값입니다. [`DateTime64(3)`](/sql-reference/data-types/datetime64) +밀리초 단위까지의 정밀도를 가지는 `DateTime64` 값. [`DateTime64(3)`](/sql-reference/data-types/datetime64) **예시** @@ -537,14 +570,14 @@ SELECT fromUnixTimestamp64Milli(1640995200123) ## fromUnixTimestamp64Nano \{#fromUnixTimestamp64Nano\} -도입 버전: v20.5 +도입된 버전: v20.5 나노초 단위 Unix 타임스탬프를 나노초 정밀도의 [`DateTime64`](/sql-reference/data-types/datetime64) 값으로 변환합니다. -입력 값은 1970-01-01 00:00:00 UTC부터 경과한 나노초 수를 나타내는, 나노초 정밀도의 Unix 타임스탬프로 간주합니다. +입력 값은 1970-01-01 00:00:00 UTC 이후 경과한 나노초 수인 나노초 정밀도의 Unix 타임스탬프로 처리됩니다. :::note -입력 값은 입력 값에 포함된 타임존이 아니라 UTC 기준 타임스탬프로 처리된다는 점에 유의하십시오. +입력 값은 해당 값의 타임존이 아니라 UTC 타임스탬프로 처리된다는 점에 유의하십시오. ::: **구문** @@ -553,10 +586,10 @@ SELECT fromUnixTimestamp64Milli(1640995200123) fromUnixTimestamp64Nano(value[, timezone]) ``` -**인수** +**인자** * `value` — 나노초 단위 Unix 타임스탬프. [`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항. 반환 값에 사용할 타임존. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택적입니다. 반환 값의 시간대. [`String`](/sql-reference/data-types/string) **반환 값** @@ -581,9 +614,9 @@ SELECT fromUnixTimestamp64Nano(1640995200123456789) 도입된 버전: v24.12 -초 단위 Unix 타임스탬프를 초 단위 정밀도를 갖는 `DateTime64` 값으로 변환합니다. +초 단위 Unix 타임스탬프를 초 정밀도의 `DateTime64` 값으로 변환합니다. -입력값은 초 단위 정밀도(1970-01-01 00:00:00 UTC 이후 경과한 초 수)를 갖는 Unix 타임스탬프로 간주됩니다. +입력 값은 1970-01-01 00:00:00 UTC 이후 경과한 초 수를 나타내는 초 단위 Unix 타임스탬프로 간주됩니다. **구문** @@ -591,10 +624,10 @@ SELECT fromUnixTimestamp64Nano(1640995200123456789) fromUnixTimestamp64Second(value[, timezone]) ``` -**인자** +**인수** * `value` — 초 단위 Unix 타임스탬프. [`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항입니다. 반환 값에 사용할 타임존. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 반환되는 값의 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** @@ -617,12 +650,12 @@ SELECT fromUnixTimestamp64Second(1640995200) ## parseDateTime \{#parseDateTime\} -도입된 버전: v23.3 +도입 버전: v23.3 MySQL 날짜 형식 문자열에 따라 날짜와 시간 문자열을 파싱합니다. -이 FUNCTION은 [`formatDateTime`](/sql-reference/functions/date-time-functions)의 역연산입니다. -`String` 인자를 형식 지정 `String`에 따라 파싱합니다. `DateTime` 데이터 타입을 반환합니다. +이 FUNCTION은 [`formatDateTime`](/sql-reference/functions/date-time-functions)의 역함수입니다. +형식 String을 사용하여 String 인자를 파싱합니다. 반환 타입은 DateTime입니다. **구문** @@ -630,21 +663,21 @@ MySQL 날짜 형식 문자열에 따라 날짜와 시간 문자열을 파싱합 parseDateTime(time_string, format[, timezone]) ``` -**별칭**: `TO_UNIXTIME` +**별칭(Aliases)**: `TO_UNIXTIME` -**인수** +**인수(Arguments)** * `time_string` — `DateTime`으로 변환할 문자열입니다. [`String`](/sql-reference/data-types/string) * `format` — `time_string`을 어떻게 파싱할지 지정하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 시간대입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존을 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** -MySQL 스타일 형식 문자열에 따라 입력 문자열을 파싱하여 얻은 `DateTime`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +MySQL 스타일 형식 문자열에 따라 입력 문자열에서 파싱한 `DateTime` 값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') @@ -663,7 +696,7 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') 날짜와 시간의 문자열 표현을 [`DateTime`](/sql-reference/data-types/datetime) 데이터 타입으로 변환합니다. -이 FUNCTION은 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse 고유 형식을 비롯한 여러 날짜 및 시간 형식을 파싱합니다. +이 FUNCTION은 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse에서 사용하는 형식 및 기타 여러 날짜와 시간 형식을 파싱합니다. **구문** @@ -671,14 +704,14 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') parseDateTime32BestEffort(time_string[, time_zone]) ``` -**인수** +**인자** -* `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택적입니다. `time_string`을 해석할 때 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜와 시간을 포함하는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`time_string`을 `DateTime` 값으로 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +`time_string`을 `DateTime` 타입으로 변환하여 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -724,9 +757,9 @@ AS parseDateTime32BestEffort ## parseDateTime32BestEffortOrNull \{#parseDateTime32BestEffortOrNull\} -도입 버전: v20.9 +도입: v20.9 -[`parseDateTime32BestEffort`](#parseDateTime32BestEffort)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환한다는 점을 제외하면 [`parseDateTime32BestEffort`](#parseDateTime32BestEffort)와 동일합니다. **구문** @@ -736,12 +769,12 @@ parseDateTime32BestEffortOrNull(time_string[, time_zone]) **인수** -* `time_string` — 변환할 날짜와 시간이 들어 있는 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택적입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 해석할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -문자열을 파싱하여 얻은 `DateTime` 객체를 반환하며, 파싱에 실패하면 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +문자열에서 파싱한 `DateTime` 객체를 반환하며, 파싱에 실패하면 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -764,7 +797,7 @@ SELECT 도입된 버전: v20.9 -[`parseDateTime32BestEffort`](#parseDateTime32BestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 값의 날짜 또는 0 값의 날짜-시간을 반환합니다. +[`parseDateTime32BestEffort`](#parseDateTime32BestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0값의 날짜 또는 날짜-시간 값을 반환합니다. **구문** @@ -772,18 +805,18 @@ SELECT parseDateTime32BestEffortOrZero(time_string[, time_zone]) ``` -**인자** +**인수(Arguments)** -* `time_string` — 변환할 날짜와 시간을 포함하는 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준이 되는 시간대를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** -문자열을 파싱하여 얻은 `DateTime` 값을 반환하며, 파싱에 실패하면 zero date인 `1970-01-01 00:00:00`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +문자열을 파싱하여 얻은 `DateTime` 객체를 반환하며, 파싱에 실패하면 zero date인 `1970-01-01 00:00:00`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query SELECT @@ -800,14 +833,14 @@ SELECT ## parseDateTime64 \{#parseDateTime64\} -도입된 버전: v24.11 +도입 버전: v24.11 -MySQL 날짜 형식 문자열을 사용하여, 초 단위 미만의 정밀도로 날짜와 시간 문자열을 파싱합니다. +MySQL 날짜 형식 문자열에 따라, 초 단위 이하 정밀도를 포함한 날짜 및 시간 문자열을 파싱합니다. 이 함수는 DateTime64에 대해 [`formatDateTime`](/sql-reference/functions/date-time-functions)의 역함수입니다. -`String` 인자를 형식 지정 `String`을 사용해 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 미만 정밀도로 표현할 수 있는 `DateTime64` 타입을 반환합니다. +형식 문자열을 사용하여 `String` 인자를 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 이하의 정밀도로 표현할 수 있는 `DateTime64` 타입을 반환합니다. -**문법** +**구문** ```sql parseDateTime64(time_string, format[, timezone]) @@ -815,13 +848,13 @@ parseDateTime64(time_string, format[, timezone]) **인수** -* `time_string` — `DateTime64`로 파싱할 문자열. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 파싱하는 방법을 지정하는 포맷 문자열. [`String`](/sql-reference/data-types/string) -* `timezone` — 옵션. 타임존. [`String`](/sql-reference/data-types/string) +* `time_string` — `DateTime64`로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 파싱하는 방법을 지정하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -MySQL 스타일 포맷 문자열을 기준으로 입력 문자열을 파싱해 얻은 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +입력 문자열을 MySQL 스타일 형식 문자열에 따라 파싱하여 얻은 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -842,9 +875,9 @@ SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') 도입 버전: v20.1 -[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) FUNCTION과 동일하지만 밀리초 및 마이크로초까지 파싱하며 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 데이터 타입을 반환합니다. +[`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 함수와 동일하지만 밀리초 및 마이크로초까지 파싱하며 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 데이터 타입을 반환합니다. -**문법** +**구문** ```sql parseDateTime64BestEffort(time_string[, precision[, time_zone]]) @@ -854,15 +887,15 @@ parseDateTime64BestEffort(time_string[, precision[, time_zone]]) * `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) * `precision` — 선택 사항입니다. 필요한 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항입니다. 시간대입니다. 함수는 이 매개변수로 지정된 시간대를 기준으로 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. 시간대입니다. 함수는 `time_string`을 해당 시간대에 따라 파싱합니다. [`String`](/sql-reference/data-types/string) **반환 값** [`DateTime64`](../../sql-reference/data-types/datetime64.md) 데이터 타입으로 변환된 `time_string`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT parseDateTime64BestEffort('2025-01-01') AS a, toTypeName(a) AS t @@ -887,9 +920,9 @@ FORMAT PrettyCompactMonoBlock ## parseDateTime64BestEffortOrNull \{#parseDateTime64BestEffortOrNull\} -도입 버전: v20.1 +도입된 버전: v20.1 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -897,15 +930,15 @@ FORMAT PrettyCompactMonoBlock parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]]) ``` -**인수** +**인자** -* `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `precision` — 선택 사항입니다. 필요한 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항입니다. 시간대를 지정합니다. 함수는 해당 시간대에 따라 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜 또는 날짜와 시간 정보를 포함하는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `precision` — 선택 사항입니다. 요구되는 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 선택 사항입니다. 시간대입니다. 함수는 `time_string`을 해당 시간대에 따라 해석합니다. [`String`](/sql-reference/data-types/string) **반환 값** -`time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환하여 반환하거나, 입력을 파싱하지 못하면 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) +`time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 형식으로 변환한 값을 반환하며, 입력을 해석할 수 없으면 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -925,9 +958,9 @@ SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid, ## parseDateTime64BestEffortOrZero \{#parseDateTime64BestEffortOrZero\} -도입: v20.1 +도입 버전: v20.1 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 처리할 수 없는 형식의 날짜를 만나면 날짜 0 값 또는 날짜-시간 0 값을 반환합니다. +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜-시간 값을 반환합니다. **구문** @@ -938,12 +971,12 @@ parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]]) **인수** * `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `precision` — 선택 사항입니다. 요구되는 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항입니다. 시간대입니다. 함수는 이 시간대를 기준으로 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) +* `precision` — 선택적 인수입니다. 필요한 정밀도를 나타냅니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 선택적 인수입니다. 시간대를 나타냅니다. 함수는 이 시간대를 기준으로 `time_string`을 해석합니다. [`String`](/sql-reference/data-types/string) **반환 값** -[`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환된 `time_string`을 반환하며, 입력을 파싱할 수 없는 경우 영(0) 날짜/시간 값(`1970-01-01 00:00:00.000`)을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +`time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환한 값을 반환하며, 입력을 해석할 수 없는 경우 zero date/datetime 값인 `1970-01-01 00:00:00.000`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -965,7 +998,7 @@ SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid, 도입 버전: v22.8 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우 미국식 날짜 형식(`MM/DD/YYYY` 등)으로 우선적으로 해석합니다. +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우 이 함수는 미국식 날짜 형식(`MM/DD/YYYY` 등)을 우선적으로 사용합니다. **구문** @@ -977,11 +1010,11 @@ parseDateTime64BestEffortUS(time_string [, precision [, time_zone]]) * `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) * `precision` — 선택 사항입니다. 필요한 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항입니다. 시간대입니다. 이 함수는 해당 시간대를 기준으로 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. 시간대입니다. 함수는 이 시간대에 따라 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) **반환 값** -모호한 경우 미국식 날짜 형식 선호 규칙을 사용하여 `time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환한 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +모호한 경우에는 미국식 날짜 형식 규칙을 사용하여, `time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 타입으로 변환한 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -1003,7 +1036,7 @@ SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format, 도입 버전: v22.8 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우 US 날짜 형식(`MM/DD/YYYY` 등)을 우선적으로 사용하고, 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우 미국식 날짜 형식(`MM/DD/YYYY` 등)을 우선적으로 사용하며, 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -1014,12 +1047,12 @@ parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]]) **인수** * `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `precision` — 선택 사항. 필요한 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항. 시간대입니다. 함수는 이 시간대를 기준으로 `time_string`을 해석합니다. [`String`](/sql-reference/data-types/string) +* `precision` — 선택 사항입니다. 필요한 정밀도를 지정합니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 선택 사항입니다. 시간대를 지정합니다. 함수는 지정된 시간대를 기준으로 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) **반환 값** -미국 형식 우선 규칙에 따라 `time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환한 값을 반환하며, 입력을 해석할 수 없는 경우 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) +미국식 형식을 우선 적용하여 `time_string`을 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환한 값을 반환하며, 입력을 파싱할 수 없는 경우 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -1041,9 +1074,9 @@ SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us, 도입 버전: v22.8 -[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우 미국식 날짜 형식(`MM/DD/YYYY` 등)을 우선적으로 사용하고, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜‑시간 값을 반환합니다. +[`parseDateTime64BestEffort`](#parseDateTime64BestEffort)와 동일하지만, 모호한 경우에는 US 날짜 형식(`MM/DD/YYYY` 등)을 우선적으로 사용하며, 처리할 수 없는 날짜 형식을 만나면 zero date 또는 zero date time을 반환합니다. -**문법** +**구문** ```sql parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) @@ -1051,13 +1084,13 @@ parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) **인수** -* `time_string` — 변환할 날짜 또는 날짜·시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `precision` — 선택 사항입니다. 필요한 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 선택 사항입니다. 시간대입니다. 이 함수는 해당 시간대에 따라 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) +* `precision` — 선택 사항입니다. 요구되는 정밀도입니다. 밀리초는 `3`, 마이크로초는 `6`입니다. 기본값: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 선택 사항입니다. 타임존을 나타냅니다. 함수는 해당 타임존에 따라 `time_string`을 파싱합니다. [`String`](/sql-reference/data-types/string) **반환 값** -미국식 형식을 기준으로 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환된 `time_string`을 반환하며, 입력을 파싱할 수 없는 경우 0 날짜/일시값(`1970-01-01 00:00:00.000`)을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +미국식 날짜/시간 형식을 기준으로 [`DateTime64`](../../sql-reference/data-types/datetime64.md)로 변환된 `time_string`을 반환하며, 입력을 파싱할 수 없는 경우 0 값의 날짜/날짜-시간 (`1970-01-01 00:00:00.000`)을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -1079,28 +1112,28 @@ SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us, 도입 버전: v24.10 -Joda 날짜 형식 문자열에 따라 초 단위 이하 정밀도를 포함한 날짜와 시간 문자열을 파싱합니다. +Joda 날짜 형식 문자열을 사용하여 초 단위 이하 정밀도를 포함한 날짜와 시간 문자열을 파싱합니다. 이 FUNCTION은 DateTime64에 대해 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax)의 역함수입니다. -Joda 스타일 형식 문자열을 사용하여 String 인자를 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 이하 정밀도로 표현할 수 있는 DateTime64 타입을 반환합니다. +Joda 스타일의 형식 `String`을 사용하여 `String` 인자를 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 이하 정밀도로 표현할 수 있는 `DateTime64` 타입을 반환합니다. -형식 패턴은 [Joda Time 문서](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)를 참조하십시오. +형식 패턴에 대해서는 [Joda Time 문서를](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) 참고하십시오. -**Syntax** +**구문** ```sql parseDateTime64InJodaSyntax(time_string, format[, timezone]) ``` -**인자** +**인수** * `time_string` — `DateTime64`로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문(Joda syntax)의 형식 문자열입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문을 사용하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) * `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열을 Joda 스타일 형식 문자열에 따라 파싱한 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +입력 문자열을 Joda 스타일 형식 문자열에 따라 파싱한 `DateTime64`를 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -1121,7 +1154,7 @@ SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm: 도입된 버전: v24.10 -[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -1132,12 +1165,12 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **인수** * `time_string` — DateTime64로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을(를) 어떻게 파싱할지 지정하는 Joda 구문 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 타임존을 나타냅니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문 형식 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항. 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열을 파싱해 얻은 DateTime64를 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +입력 문자열을 DateTime64로 파싱한 값을 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **예시** @@ -1158,7 +1191,7 @@ SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd 도입 버전: v24.10 -[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 0 날짜(Zero date)를 반환합니다. +[`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 0 날짜 값을 반환합니다. **구문** @@ -1166,15 +1199,15 @@ SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone]) ``` -**인수** +**인자** * `time_string` — `DateTime64`로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 파싱하는 방법을 지정하는 Joda 문법의 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존을 지정합니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열에서 파싱한 `DateTime64` 값을 반환하며, 파싱에 실패하면 0인 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +입력 문자열에서 파싱된 `DateTime64`를 반환하며, 파싱에 실패하면 0을 나타내는 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -1193,9 +1226,9 @@ SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64OrNull \{#parseDateTime64OrNull\} -도입 버전: v24.11 +도입된 버전: v24.11 -[`parseDateTime64`](#parseDateTime64)와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTime64`](#parseDateTime64)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -1203,15 +1236,15 @@ SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd parseDateTime64OrNull(time_string, format[, timezone]) ``` -**인수** +**인자** * `time_string` — `DateTime64`로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항인 시간대입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항. 시간대입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -입력 문자열을 파싱한 `DateTime64`를 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +입력 문자열을 파싱한 `DateTime64` 값을 반환하며, 파싱에 실패하면 `NULL`을 반환합니다. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **예시** @@ -1232,7 +1265,7 @@ SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') 도입 버전: v24.11 -[`parseDateTime64`](#parseDateTime64)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0값 날짜를 반환합니다. +[`parseDateTime64`](#parseDateTime64)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 zero date(0 날짜)를 반환합니다. **구문** @@ -1240,15 +1273,15 @@ SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') parseDateTime64OrZero(time_string, format[, timezone]) ``` -**인자** +**인수** * `time_string` — `DateTime64`로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 파싱하는 형식을 지정하는 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항인 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열에서 파싱한 `DateTime64` 값을 반환하며, 파싱에 실패하면 0인 `DateTime64` 값을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +입력 문자열에서 파싱된 `DateTime64`를 반환하며, 파싱에 실패하면 0으로 초기화된 `DateTime64`를 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** @@ -1267,24 +1300,24 @@ SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTimeBestEffort \{#parseDateTimeBestEffort\} -도입된 버전: v1.1 +도입 버전: v1.1 -`String` 형식으로 표현된 날짜와 시간을 `DateTime` 데이터 타입으로 변환합니다. -이 함수는 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html), [RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) 날짜 및 시간 명세, ClickHouse 고유 형식 및 기타 여러 날짜/시간 형식을 파싱합니다. +`String` 표현의 날짜와 시간을 `DateTime` 데이터 타입으로 변환합니다. +이 함수는 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html), [RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) 날짜 및 시간 사양, ClickHouse 고유 형식 및 그 외 일부 날짜와 시간 형식을 파싱합니다. 지원되는 비표준 형식: -* 9~10자리 UNIX 타임스탬프가 포함된 문자열. -* 날짜와 시간 구성 요소를 포함하는 문자열: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` 등. -* 날짜만 있고 시간 구성 요소가 없는 문자열: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` 등. -* 일(day)과 시간을 포함하는 문자열: `DD`, `DD hh`, `DD hh:mm`. 이 경우 `MM`은 `01`로 대체됩니다. -* 날짜와 시간에 더해 시간대 오프셋 정보가 포함된 문자열: `YYYY-MM-DD hh:mm:ss ±h:mm` 등. -* syslog 타임스탬프 형식의 문자열: `Mmm dd hh:mm:ss`. 예: `Jun 9 14:20:32`. +* 9~10자리 Unix 타임스탬프를 포함하는 문자열 +* 날짜와 시간 구성 요소를 포함하는 문자열: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` 등 +* 날짜는 있으나 시간 구성 요소가 없는 문자열: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` 등 +* 일(day)과 시간만 있는 문자열: `DD`, `DD hh`, `DD hh:mm`. 이 경우 `MM`은 `01`로 대체됩니다. +* 날짜와 시간에 더해 시간대 오프셋 정보를 포함하는 문자열: `YYYY-MM-DD hh:mm:ss ±h:mm` 등 +* syslog 타임스탬프: `Mmm dd hh:mm:ss`. 예: `Jun 9 14:20:32` -구분자가 있는 모든 형식에 대해 이 함수는 월 이름이 전체 이름이거나 월 이름의 앞 세 글자로 표현된 경우를 모두 파싱합니다. -연도가 명시되지 않은 경우 현재 연도로 간주합니다. +구분자가 있는 모든 형식에 대해서 이 함수는 월 이름이 전체 이름으로 표현된 경우와 월 이름의 첫 세 글자로 표현된 경우를 모두 파싱합니다. +연도가 지정되지 않은 경우 현재 연도와 동일한 값으로 간주합니다. -**문법** +**구문** ```sql parseDateTimeBestEffort(time_string[, time_zone]) @@ -1293,11 +1326,11 @@ parseDateTimeBestEffort(time_string[, time_zone]) **인수** * `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택적인 인수입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`time_string`을 `DateTime`으로 변환하여 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +`time_string`을 `DateTime`으로 변환한 값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1313,7 +1346,7 @@ SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort └─────────────────────────┘ ``` -**타임존 포함** +**시간대 포함** ```sql title=Query SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort @@ -1340,22 +1373,22 @@ SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort ## parseDateTimeBestEffortOrNull \{#parseDateTimeBestEffortOrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. 이 함수는 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse 고유 형식 및 기타 일부 날짜와 시간 형식을 파싱합니다. 지원되는 비표준 형식: -* 9~10자리 Unix 타임스탬프가 포함된 문자열. -* 날짜와 시간 구성 요소를 모두 포함하는 문자열: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` 등. +* 9~10자리 유닉스(unix) 타임스탬프를 포함하는 문자열. +* 날짜와 시간 구성 요소를 포함하는 문자열: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` 등. * 날짜만 있고 시간 구성 요소가 없는 문자열: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` 등. * 일(day)과 시간만 포함하는 문자열: `DD`, `DD hh`, `DD hh:mm`. 이 경우 `MM`은 `01`로 대체됩니다. -* 날짜와 시간에 더해 시간대 오프셋 정보까지 포함하는 문자열: `YYYY-MM-DD hh:mm:ss ±h:mm` 등. +* 날짜와 시간에 더해 시간대 오프셋 정보를 포함하는 문자열: `YYYY-MM-DD hh:mm:ss ±h:mm` 등. * syslog 타임스탬프: `Mmm dd hh:mm:ss`. 예: `Jun 9 14:20:32`. -구분자가 있는 모든 형식의 경우, 함수는 월 이름을 전체 이름 또는 앞 세 글자로 표기한 경우 모두 파싱합니다. -연도가 지정되지 않은 경우 현재 연도와 동일한 값으로 간주합니다. +구분자가 있는 모든 형식의 경우, 이 함수는 월 이름을 전체 이름이나 월 이름의 앞 세 글자로 표현한 경우를 모두 파싱합니다. +연도가 지정되지 않은 경우 현재 연도로 간주합니다. **구문** @@ -1365,12 +1398,12 @@ parseDateTimeBestEffortOrNull(time_string[, time_zone]) **인수** -* `time_string` — 변환할 날짜와 시간이 들어 있는 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준으로 사용하는 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`time_string`을 DateTime으로 변환한 값을 반환하며, 입력을 파싱할 수 없으면 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) +`time_string`을 DateTime으로 변환한 값을 반환하며, 입력 값을 파싱할 수 없는 경우 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -1390,22 +1423,22 @@ SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid, ## parseDateTimeBestEffortOrZero \{#parseDateTimeBestEffortOrZero\} -도입된 버전: v1.1 +도입 버전: v1.1 -[`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜-시간을 반환합니다. -이 함수는 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse 고유 형식 및 기타 일부 날짜 및 시간 형식을 파싱합니다. +[`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜-시간 값을 반환합니다. +이 함수는 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse 고유 형식 및 기타 일부 날짜와 시간 형식을 해석합니다. 지원되는 비표준 형식: * 9~10자리 유닉스 타임스탬프를 포함하는 문자열. * 날짜와 시간 구성 요소를 포함하는 문자열: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` 등. -* 날짜는 있으나 시간 구성 요소가 없는 문자열: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` 등. -* 일(day)과 시간만 있는 문자열: `DD`, `DD hh`, `DD hh:mm`. 이 경우 `MM`은 `01`로 대체됩니다. +* 날짜는 있지만 시간 구성 요소가 없는 문자열: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` 등. +* 일(day)과 시간만 있는 문자열: `DD`, `DD hh`, `DD hh:mm`. 이 경우 `MM` 값은 `01`로 대체됩니다. * 날짜와 시간에 더해 시간대 오프셋 정보가 포함된 문자열: `YYYY-MM-DD hh:mm:ss ±h:mm` 등. * syslog 타임스탬프: `Mmm dd hh:mm:ss`. 예: `Jun 9 14:20:32`. -구분자가 있는 모든 형식에 대해, 이 함수는 월 이름을 전체 이름 또는 월 이름의 처음 세 글자로 표현한 경우를 모두 파싱합니다. -연도가 지정되지 않은 경우, 현재 연도로 간주합니다. +구분자가 있는 모든 형식에 대해, 이 함수는 월 이름을 전체 이름 또는 월 이름의 앞 세 글자로 표기한 경우 모두 해석합니다. +연도가 지정되지 않은 경우 현재 연도로 간주합니다. **구문** @@ -1416,11 +1449,11 @@ parseDateTimeBestEffortOrZero(time_string[, time_zone]) **인자** * `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 사용할 시간대를 나타냅니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택적입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 값을 파싱할 수 있으면 `time_string`을 `DateTime`으로 반환하고, 파싱할 수 없으면 0 날짜/DateTime 값( `1970-01-01` 또는 `1970-01-01 00:00:00`)을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +`time_string`을 `DateTime`으로 반환하거나, 입력을 파싱할 수 없는 경우 0값 날짜/날짜시간 값(`1970-01-01` 또는 `1970-01-01 00:00:00`)을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1442,9 +1475,9 @@ SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid, 도입 버전: v1.1 -이 FUNCTION은 ISO 날짜 형식(예: `YYYY-MM-DD hh:mm:ss`)과 월(month)과 일(day) 구성 요소를 모호하지 않게 추출할 수 있는 다른 날짜 형식(예: `YYYYMMDDhhmmss`, `YYYY-MM`, `DD hh`, `YYYY-MM-DD hh:mm:ss ±h:mm`)에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작합니다. -월과 일 구성 요소를 모호하지 않게 추출할 수 없는 경우(예: `MM/DD/YYYY`, `MM-DD-YYYY`, `MM-DD-YY`)에는 `DD/MM/YYYY`, `DD-MM-YYYY`, `DD-MM-YY` 대신 미국식 날짜 형식으로 우선 해석합니다. -단, 앞의 설명에 대한 예외로, 월 값이 12보다 크고 31 이하인 경우에는 이 FUNCTION이 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)의 동작을 따릅니다. 예를 들어 `15/08/2020`은 `2020-08-15`로 파싱됩니다. +이 함수는 ISO 날짜 형식(예: `YYYY-MM-DD hh:mm:ss`)과 월(month)과 일(day) 구성 요소를 모호하지 않게 추출할 수 있는 다른 날짜 형식(예: `YYYYMMDDhhmmss`, `YYYY-MM`, `DD hh`, `YYYY-MM-DD hh:mm:ss ±h:mm`)에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작합니다. +월과 일(day) 구성 요소를 모호하지 않게 추출할 수 없는 경우(예: `MM/DD/YYYY`, `MM-DD-YYYY`, `MM-DD-YY`)에는 `DD/MM/YYYY`, `DD-MM-YYYY`, `DD-MM-YY` 대신 미국식 날짜 형식을 우선적으로 사용합니다. +단, 앞의 설명에 대한 예외로 월(month) 값이 12보다 크고 31 이하인 경우에는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)의 동작으로 돌아가며, 예를 들어 `15/08/2020`은 `2020-08-15`로 파싱됩니다. **구문** @@ -1479,26 +1512,26 @@ SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format, ## parseDateTimeBestEffortUSOrNull \{#parseDateTimeBestEffortUSOrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) FUNCTION과 동일하지만, 처리할 수 없는 날짜 형식을 발견하면 `NULL`을 반환합니다. +[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) FUNCTION과 동일하지만, 처리할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. -이 FUNCTION은 ISO 날짜 형식에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작하지만, 애매할 때는 미국식 날짜 형식을 우선하며, 파싱 오류가 발생하면 `NULL`을 반환합니다. +이 FUNCTION은 ISO 날짜 형식에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작하지만, 모호한 경우에는 미국식 날짜 형식을 우선 사용하며, 파싱 오류 시 `NULL`을 반환합니다. -**문법** +**구문** ```sql parseDateTimeBestEffortUSOrNull(time_string[, time_zone]) ``` -**인자** +**인수** * `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항입니다. `time_string`을 해석할 때 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 기준이 되는 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -미국식 형식을 우선 적용하여 `time_string`을 `DateTime`으로 변환해 반환하거나, 입력을 파싱할 수 없는 경우 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) +미국식 형식을 우선적으로 사용하여 `time_string`을 DateTime으로 반환하거나, 입력을 파싱할 수 없는 경우 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -1518,11 +1551,11 @@ SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us, ## parseDateTimeBestEffortUSOrZero \{#parseDateTimeBestEffortUSOrZero\} -도입된 버전: v1.1 +도입 버전: v1.1 -[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 함수와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜(`1970-01-01`) 또는 시간까지 포함한 0 날짜(`1970-01-01 00:00:00`)를 반환합니다. +[`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 함수와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 제로 날짜(zero date)인 `1970-01-01` 또는 시간 정보가 포함된 제로 날짜 `1970-01-01 00:00:00`를 반환합니다. -이 함수는 ISO 날짜 형식에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작하지만, 모호한 경우에는 US 날짜 형식을 우선하며, 파싱 오류 발생 시 0 값을 반환합니다. +이 함수는 ISO 날짜 형식에 대해서는 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)와 동일하게 동작하지만, 애매한 경우에는 미국식 날짜 형식을 우선 사용하며, 파싱 오류가 발생하면 0 값을 반환합니다. **구문** @@ -1533,11 +1566,11 @@ parseDateTimeBestEffortUSOrZero(time_string[, time_zone]) **인수** * `time_string` — 변환할 날짜와 시간이 포함된 문자열입니다. [`String`](/sql-reference/data-types/string) -* `time_zone` — 선택 사항. `time_string`을 해석할 때 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_zone` — 선택 사항입니다. `time_string`을 파싱할 때 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -미국식 형식을 우선적으로 사용하여 `time_string`을 `DateTime`으로 변환해 반환하며, 입력을 파싱할 수 없는 경우 0값 날짜/DateTime(`1970-01-01` 또는 `1970-01-01 00:00:00`)을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +미국 형식 우선 규칙을 사용하여 `time_string`을 `DateTime`으로 반환하며, 입력을 파싱할 수 없는 경우 영(0) 날짜/시간 값( `1970-01-01` 또는 `1970-01-01 00:00:00` )을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1557,14 +1590,14 @@ SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us, ## parseDateTimeInJodaSyntax \{#parseDateTimeInJodaSyntax\} -도입: v23.3 +도입된 버전: v23.3 -Joda 날짜 형식 문자열을 사용하여 날짜 및 시간 문자열을 구문 분석합니다. +Joda 날짜 형식 문자열에 따라 날짜와 시간 문자열을 파싱합니다. -이 함수는 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax)의 역함수입니다. -Joda 스타일의 형식 `String`을 사용하여 `String` 인수를 구문 분석합니다. `DateTime` 타입을 반환합니다. +이 함수는 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax)의 역연산입니다. +Joda 스타일의 형식 지정용 String을 사용하여 String 인수를 파싱합니다. DateTime 타입의 값을 반환합니다. -형식 패턴에 대해서는 [Joda Time 문서](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)를 참조하십시오. +형식 패턴은 [Joda Time 문서](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)를 참고하십시오. **구문** @@ -1575,12 +1608,12 @@ parseDateTimeInJodaSyntax(time_string, format[, timezone]) **인수** * `time_string` — `DateTime`으로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 문법의 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 시간대를 나타냅니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 파싱하는 방법을 지정하는 Joda 문법의 형식 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -Joda 스타일 포맷 문자열에 따라 입력 문자열을 파싱한 `DateTime`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +Joda 스타일 형식 문자열에 따라 입력 문자열을 파싱해 생성된 `DateTime`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1599,9 +1632,9 @@ SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss') ## parseDateTimeInJodaSyntaxOrNull \{#parseDateTimeInJodaSyntaxOrNull\} -도입 버전: v23.3 +도입: v23.3 -[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -1611,13 +1644,13 @@ parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone]) **인수** -* `time_string` — `DateTime` 형식으로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문을 사용하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 시간대입니다. [`String`](/sql-reference/data-types/string) +* `time_string` — `DateTime`으로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 문법의 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항. 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열을 파싱하여 얻은 `DateTime`을 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) +입력 문자열을 `DateTime`으로 파싱한 값을 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) **예시** @@ -1638,7 +1671,7 @@ SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: 도입 버전: v23.3 -[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0 날짜 값을 반환합니다. +[`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 0인 날짜 값을 반환합니다. **구문** @@ -1646,15 +1679,15 @@ SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone]) ``` -**인자** +**인수** * `time_string` — `DateTime`으로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문을 사용하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항입니다. 타임존을 나타냅니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떻게 파싱할지 지정하는 Joda 구문의 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열에서 파싱한 `DateTime`을 반환하며, 파싱에 실패하면 `DateTime` 값 0을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +입력 문자열에서 파싱한 `DateTime`을 반환하며, 파싱에 실패하면 값이 0인 `DateTime`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1673,9 +1706,9 @@ SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: ## parseDateTimeOrNull \{#parseDateTimeOrNull\} -도입 버전: v23.3 +도입된 버전: v23.3 -[`parseDateTime`](#parseDateTime)와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. +[`parseDateTime`](#parseDateTime)와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 `NULL`을 반환합니다. **구문** @@ -1688,12 +1721,12 @@ parseDateTimeOrNull(time_string, format[, timezone]) **인수** * `time_string` — `DateTime`으로 파싱할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `format` — `time_string`을 어떻게 파싱할지 지정하는 형식 문자열입니다. [`String`](/sql-reference/data-types/string) -* `timezone` — 선택 사항인 시간대입니다. [`String`](/sql-reference/data-types/string) +* `format` — `time_string`을 어떤 형식으로 파싱할지 지정하는 포맷 문자열입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열을 `DateTime`으로 파싱한 값을 반환하며, 파싱에 실패하면 NULL을 반환합니다. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) +입력 문자열을 파싱한 `DateTime`을 반환하며, 파싱에 실패하면 `NULL`을 반환합니다. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) **예시** @@ -1714,7 +1747,7 @@ SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') 도입 버전: v23.3 -[`parseDateTime`](#parseDateTime)와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0 값의 날짜를 반환합니다. +[`parseDateTime`](#parseDateTime)와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 0값의 날짜를 반환합니다. **구문** @@ -1730,7 +1763,7 @@ parseDateTimeOrZero(time_string, format[, timezone]) **반환 값** -입력 문자열에서 파싱한 `DateTime`을 반환하며, 파싱에 실패한 경우 0으로 초기화된 `DateTime`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +입력 문자열에서 파싱한 `DateTime`을 반환하며, 파싱에 실패하면 0 `DateTime` 값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -1749,9 +1782,9 @@ SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## reinterpret \{#reinterpret\} -도입 버전: v1.1 +도입: v1.1 -입력 값 `x`의 원본 메모리 내 바이트 시퀀스를 그대로 사용하고, 이를 대상 타입으로 재해석합니다. +제공된 값 `x`에 대해 메모리 상의 동일한 바이트 시퀀스를 사용하여 대상 타입으로 재해석합니다. **구문** @@ -1762,11 +1795,11 @@ reinterpret(x, type) **인수** * `x` — 임의의 타입. [`Any`](/sql-reference/data-types) -* `type` — 대상 타입. 배열인 경우 배열 요소 타입은 고정 길이 타입이어야 합니다. [`String`](/sql-reference/data-types/string) +* `type` — 변환 대상 타입. 배열인 경우, 배열 요소 타입은 고정 길이 타입이어야 합니다. [`String`](/sql-reference/data-types/string) **반환 값** -대상 타입의 값입니다. [`Any`](/sql-reference/data-types) +변환 대상 타입의 값. [`Any`](/sql-reference/data-types) **예시** @@ -1784,7 +1817,7 @@ SELECT reinterpret(toInt8(-1), 'UInt8') AS int_to_uint, └─────────────┴──────────────┴───────────────┘ ``` -**Array 예제** +**배열 예시** ```sql title=Query SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS string_to_array_of_Float32 @@ -1801,7 +1834,7 @@ SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS str 도입 버전: v1.1 -입력 값을 Date 값으로 재해석합니다(리틀 엔디언 순서를 가정). 이 값은 Unix epoch 시작일인 1970-01-01 이후 경과한 일 수를 나타냅니다. +입력 값을 리틀 엔디언 순서를 가정하여, Unix epoch인 1970-01-01 이후 경과한 일 수를 나타내는 Date 값으로 재해석합니다. **구문** @@ -1811,11 +1844,11 @@ reinterpretAsDate(x) **인수** -* `x` — Unix Epoch 시작 이후 경과한 일 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Unix Epoch 시작 시점부터 경과한 일 수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -날짜. [`Date`](/sql-reference/data-types/date) +날짜입니다. [`Date`](/sql-reference/data-types/date) **예시** @@ -1836,7 +1869,7 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A') 도입 버전: v1.1 -입력 값을 DateTime 값으로(리틀 엔디언 순서를 가정하여) 재해석하며, 이는 Unix epoch의 시작인 1970-01-01 이후 경과한 일 수를 나타냅니다. +입력 값을 DateTime 값으로 다시 해석합니다(리틀 엔디언 바이트 순서를 가정). 이 값은 Unix epoch의 시작인 1970-01-01 이후 경과한 일 수를 나타냅니다. **구문** @@ -1844,17 +1877,17 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A') reinterpretAsDateTime(x) ``` -**인수** +**인자** -* `x` — Unix Epoch 기준 시작 시점부터 경과한 초 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Unix Epoch 시작 시점부터 경과한 초 단위의 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) -**반환값** +**반환 값** 날짜와 시간. [`DateTime`](/sql-reference/data-types/datetime) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A') @@ -1871,8 +1904,8 @@ SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A') 도입 버전: v1.1 -입력값을 고정 길이 문자열로 재해석합니다(little endian 순서를 가정합니다). -마지막에 오는 널 바이트(null byte)는 무시됩니다. 예를 들어, `UInt32` 값 255에 대해 이 함수는 한 글자로 이루어진 문자열을 반환합니다. +입력값을 고정 길이 문자열(FixedString)로 재해석합니다(리틀 엔디언 순서를 가정합니다). +끝의 널 바이트는 무시되며, 예를 들어 `UInt32` 값 255에 대해 이 함수는 단일 문자로 이루어진 문자열을 반환합니다. **구문** @@ -1882,11 +1915,11 @@ reinterpretAsFixedString(x) **인수** -* `x` — 문자열로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 문자열로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) **반환 값** -`x`를 나타내는 바이트를 포함하는 고정 길이 문자열 값입니다. [`FixedString`](/sql-reference/data-types/fixedstring) +`x`를 나타내는 바이트를 포함하는 고정 길이 문자열 값. [`FixedString`](/sql-reference/data-types/fixedstring) **예시** @@ -1909,8 +1942,8 @@ SELECT 도입 버전: v1.1 -입력 값을 Float32 타입의 값으로 다시 해석합니다. -[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 결과 값은 정의되지 않습니다. +입력값을 `Float32` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력값은 정의되지 않습니다. **구문** @@ -1924,7 +1957,7 @@ reinterpretAsFloat32(x) **반환 값** -재해석된 `x` 값을 [`Float32`](/sql-reference/data-types/float) 형식으로 반환합니다. +재해석된 값 `x`를 반환합니다. [`Float32`](/sql-reference/data-types/float) **예시** @@ -1943,10 +1976,10 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x) ## reinterpretAsFloat64 \{#reinterpretAsFloat64\} -도입: v1.1 +도입된 버전: v1.1 -입력 값을 Float64 형식의 값으로 재해석합니다. -[`CAST`](#CAST)와 달리, 이 함수는 원래 값을 보존하려고 하지 않습니다. 대상 형식이 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다. +입력 값을 `Float64` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와 달리 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 결과는 정의되지 않은 값이 됩니다. **구문** @@ -1954,17 +1987,17 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x) reinterpretAsFloat64(x) ``` -**인수(Arguments)** +**인수** -* `x` — Float64로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Float64로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나일 수 있습니다. -**반환 값(Returned value)** +**반환 값** -`x`를 재해석한 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) +재해석한 값 `x`를 반환합니다. 반환 타입은 [`Float64`](/sql-reference/data-types/float)입니다. -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) @@ -1979,10 +2012,10 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) ## reinterpretAsInt128 \{#reinterpretAsInt128\} -도입: v1.1 +도입 버전: v1.1 -입력 값을 Int128 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력은 정의되지 않습니다. +입력 값을 `Int128` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력 값은 정의되지 않습니다. **구문** @@ -1990,13 +2023,13 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) reinterpretAsInt128(x) ``` -**인수** +**인자** -* `x` — Int128로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int128로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나입니다. **반환 값** -재해석된 `x` 값을 반환합니다. [`Int128`](/sql-reference/data-types/int-uint) +재해석한 값 `x`를 반환합니다. [`Int128`](/sql-reference/data-types/int-uint) **예시** @@ -2021,10 +2054,10 @@ SELECT 도입 버전: v1.1 -입력값을 Int16 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 출력값은 정의되지 않습니다. +입력 값을 Int16 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력 값은 정의되지 않습니다. -**문법** +**구문** ```sql reinterpretAsInt16(x) @@ -2032,7 +2065,7 @@ reinterpretAsInt16(x) **인수** -* `x` — Int16으로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나입니다. +* `x` — Int16으로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** @@ -2061,8 +2094,8 @@ SELECT 도입 버전: v1.1 -입력 값을 Int256 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우, 출력 값은 정의되지 않습니다. +입력 값을 `Int256` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면, 결과는 정의되지 않습니다. **구문** @@ -2072,11 +2105,11 @@ reinterpretAsInt256(x) **인자** -* `x` — Int256으로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int256으로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -재해석된 값 `x`를 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) +재해석된 값인 `x`를 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) **예시** @@ -2102,7 +2135,7 @@ SELECT 도입 버전: v1.1 입력 값을 Int32 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입으로 입력 값을 표현할 수 없는 경우 결과는 정의되지 않습니다. +[`CAST`](#CAST)와 달리 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입으로는 입력 값을 표현할 수 없으면 결과는 정의되지 않습니다. **구문** @@ -2110,9 +2143,9 @@ SELECT reinterpretAsInt32(x) ``` -**인자** +**인수** -* `x` — Int32로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int32로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나입니다. **반환 값** @@ -2139,12 +2172,12 @@ SELECT ## reinterpretAsInt64 \{#reinterpretAsInt64\} -도입 시기: v1.1 +도입 버전: v1.1 -입력 값을 Int64 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력 결과는 정의되지 않습니다. +입력값을 Int64 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입으로 입력값을 표현할 수 없는 경우 결과는 정의되지 않습니다. -**문법** +**구문** ```sql reinterpretAsInt64(x) @@ -2152,11 +2185,11 @@ reinterpretAsInt64(x) **인수** -* `x` — `Int64`로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Int64로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -`Int64`로 재해석된 값 `x`를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) +재해석된 값 `x`를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) **예시** @@ -2179,10 +2212,10 @@ SELECT ## reinterpretAsInt8 \{#reinterpretAsInt8\} -도입: v1.1 +도입 버전: v1.1 -입력 값을 `Int8` 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없으면 결과 값은 정의되지 않습니다. +입력 값을 Int8 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우 출력은 정의되지 않습니다. **구문** @@ -2190,13 +2223,13 @@ SELECT reinterpretAsInt8(x) ``` -**인자** +**인수** -* `x` — Int8로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나입니다. +* `x` — Int8 형식으로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -재해석한 값 `x`를 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) +재해석된 `x` 값을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) **예시** @@ -2221,8 +2254,8 @@ SELECT 도입 버전: v1.1 -입력 값을 문자열로 재해석합니다(리틀 엔디언 바이트 순서를 가정합니다). -값 끝부분의 널 바이트는 무시되며, 예를 들어 이 함수는 UInt32 값 255에 대해 문자 하나로 이루어진 문자열을 반환합니다. +입력값을 문자열로 재해석합니다(리틀 엔디언 순서를 가정합니다). +마지막에 있는 널 바이트는 무시됩니다. 예를 들어, 이 함수는 UInt32 값 255에 대해 한 글자로 이루어진 문자열을 반환합니다. **구문** @@ -2230,13 +2263,13 @@ SELECT reinterpretAsString(x) ``` -**인자** +**인수** -* `x` — 문자열로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 문자열로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) **반환 값** -`x`를 표현하는 바이트를 그대로 포함하는 문자열입니다. [`String`](/sql-reference/data-types/string) +`x`를 표현하는 바이트를 포함하는 문자열. [`String`](/sql-reference/data-types/string) **예시** @@ -2257,10 +2290,10 @@ SELECT ## reinterpretAsUInt128 \{#reinterpretAsUInt128\} -도입 버전: v1.1 +도입: v1.1 입력 값을 UInt128 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 결과는 정의되지 않습니다. +[`CAST`](#CAST)와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다. **구문** @@ -2274,7 +2307,7 @@ reinterpretAsUInt128(x) **반환 값** -재해석된 값 `x`를 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) +재해석된 `x` 값을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) **예제** @@ -2297,10 +2330,10 @@ SELECT ## reinterpretAsUInt16 \{#reinterpretAsUInt16\} -도입 버전: v1.1 +도입: v1.1 -입력값을 `UInt16` 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우, 결과는 정의되지 않습니다. +입력 값을 UInt16 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없으면 결과는 정의되지 않습니다. **구문** @@ -2310,11 +2343,11 @@ reinterpretAsUInt16(x) **인수** -* `x` — `UInt16` 값으로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt16 값으로 다시 해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -재해석한 값 `x`를 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) +다시 해석된 값 `x`를 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) **예시** @@ -2339,10 +2372,10 @@ SELECT 도입 버전: v1.1 -입력 값을 `UInt256` 타입의 값으로 다시 해석합니다. -[`CAST`](#CAST)와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우, 출력 값은 정의되지 않습니다. +입력 값을 UInt256 형식의 값으로 다시 해석합니다. +[`CAST`](#CAST)와는 달리 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 형식으로 입력 값을 표현할 수 없으면 결과는 정의되지 않습니다. -**문법** +**구문** ```sql reinterpretAsUInt256(x) @@ -2354,7 +2387,7 @@ reinterpretAsUInt256(x) **반환 값** -`x`를 UInt256으로 재해석한 값을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) +재해석된 값인 `x`를 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) **예제** @@ -2377,10 +2410,10 @@ SELECT ## reinterpretAsUInt32 \{#reinterpretAsUInt32\} -도입: v1.1 +도입 버전: v1.1 -입력 값을 `UInt32` 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 출력 값은 정의되지 않습니다. +입력 값을 `UInt32` 타입의 값으로 다시 해석합니다. +[`CAST`](#CAST)와는 달리 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 결과는 정의되지 않습니다. **구문** @@ -2390,11 +2423,11 @@ reinterpretAsUInt32(x) **인자** -* `x` — UInt32로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt32로 재해석할 값. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) 중 하나입니다. **반환 값** -재해석된 `x` 값을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) +재해석한 `x` 값을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) **예시** @@ -2417,10 +2450,10 @@ SELECT ## reinterpretAsUInt64 \{#reinterpretAsUInt64\} -도입: v1.1 +도입된 버전: v1.1 -입력 값을 UInt64 타입의 값으로 재해석합니다. -[`CAST`](#CAST)와는 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다. +입력 값을 `UInt64` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와는 달리 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력 값은 정의되지 않습니다. **구문** @@ -2428,13 +2461,13 @@ SELECT reinterpretAsUInt64(x) ``` -**인자** +**인수** -* `x` — UInt64로 재해석할 값. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt64로 재해석할 값입니다. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`UUID`](/sql-reference/data-types/uuid) 또는 [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -재해석된 `x` 값을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +`x`를 UInt64로 재해석한 값을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) **예시** @@ -2457,10 +2490,10 @@ SELECT ## reinterpretAsUInt8 \{#reinterpretAsUInt8\} -도입된 버전: v1.1 +도입 버전: v1.1 -입력 값을 `UInt8` 타입의 값으로 다시 해석합니다. -[`CAST`](#CAST)와 달리, 대상 타입이 입력 타입을 표현할 수 없더라도 원래 값을 보존하려고 시도하지 않으며, 이 경우 출력 값은 정의되지 않습니다. +입력 값을 `UInt8` 타입의 값으로 재해석합니다. +[`CAST`](#CAST)와 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입으로는 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다. **구문** @@ -2468,13 +2501,13 @@ SELECT reinterpretAsUInt8(x) ``` -**인자** +**인수** -* `x` — `UInt8`로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — UInt8로 재해석할 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`UUID`](/sql-reference/data-types/uuid), [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -재해석된 값 `x`를 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) +재해석된 `x` 값을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) **예시** @@ -2499,7 +2532,7 @@ SELECT 도입 버전: v1.1 -16바이트 길이의 문자열을 받아, 이를 8바이트씩 두 부분으로 나누어 각 부분을 리틀 엔디언(little-endian) 바이트 순서로 해석하여 UUID를 반환합니다. 문자열 길이가 충분하지 않으면, 필요한 개수만큼의 널(null) 바이트가 문자열 끝에 패딩된 것처럼 동작합니다. 문자열이 16바이트보다 길면, 끝에 있는 추가 바이트들은 무시됩니다. +16바이트 문자열을 받아, 이를 8바이트씩 두 부분으로 나누고 각 부분을 리틀 엔디언 바이트 순서로 해석하여 UUID를 반환합니다. 문자열의 길이가 16바이트보다 짧으면, 문자열 끝에 필요한 개수만큼 널(null) 바이트가 패딩된 것처럼 동작합니다. 문자열이 16바이트보다 길면, 끝에 있는 추가 바이트는 무시됩니다. **구문** @@ -2507,9 +2540,9 @@ SELECT reinterpretAsUUID(fixed_string) ``` -**인자** +**인수** -* `fixed_string` — 빅엔디언 바이트 문자열입니다. [`FixedString`](/sql-reference/data-types/fixedstring) +* `fixed_string` — 빅 엔디언(big-endian) 바이트 문자열입니다. [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** @@ -2517,7 +2550,7 @@ UUID 타입의 값입니다. [`UUID`](/sql-reference/data-types/uuid) **예시** -**문자열을 UUID로 변환** +**String을 UUID로 변환** ```sql title=Query SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f'))) @@ -2532,10 +2565,10 @@ SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f'))) ## toBFloat16 \{#toBFloat16\} -도입: v1.1 +도입 버전: v1.1 -입력 값을 BFloat16 타입 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +입력값을 BFloat16 타입의 값으로 변환합니다. +오류가 발생하는 경우 예외를 발생시킵니다. 함께 보기: @@ -2550,11 +2583,11 @@ toBFloat16(expr) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** -16비트 brain-float 값입니다. [`BFloat16`](/sql-reference/data-types/float) +16비트 브레인 플로트(brain-float) 값을 반환합니다. [`BFloat16`](/sql-reference/data-types/float) **예시** @@ -2579,8 +2612,8 @@ toBFloat16('42.7'): 42.5 도입 버전: v1.1 -String 형식의 입력 값을 BFloat16 형식의 값으로 변환합니다. -문자열이 부동 소수점 값을 나타내지 않는 경우 함수는 NULL을 반환합니다. +`String` 입력 값을 BFloat16 타입의 값으로 변환합니다. +문자열이 부동 소수점 값을 나타내지 않으면 함수는 `NULL`을 반환합니다. 지원되는 인수: @@ -2592,7 +2625,7 @@ String 형식의 입력 값을 BFloat16 형식의 값으로 변환합니다. * 숫자 값. :::note -이 함수는 문자열 표현에서 변환하는 동안 정밀도 손실이 발생해도 오류 없이 진행되도록 허용합니다. +이 함수는 문자열 표현에서 변환하는 과정에서 정밀도가 암묵적으로 손실되는 것을 허용합니다. ::: 함께 보기: @@ -2600,23 +2633,23 @@ String 형식의 입력 값을 BFloat16 형식의 값으로 변환합니다. * [`toBFloat16`](#toBFloat16). * [`toBFloat16OrZero`](#toBFloat16OrZero). -**문법** +**구문** ```sql toBFloat16OrNull(x) ``` -**인수** +**인수(Arguments)** -* `x` — 숫자를 나타내는 `String` 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** -16비트 brain-float 값(BFloat16)을 반환하며, 그렇지 않으면 `NULL`을 반환합니다. [`BFloat16`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) +16비트 brain-float 값을 반환하며, 그렇지 않으면 `NULL`을 반환합니다. [`BFloat16`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments @@ -2635,20 +2668,20 @@ SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments 도입 버전: v1.1 -`String` 입력 값을 BFloat16 타입의 값으로 변환합니다. +입력 `String` 값을 BFloat16 타입 값으로 변환합니다. 문자열이 부동 소수점 값을 나타내지 않으면 함수는 0을 반환합니다. 지원되는 인수: -* 숫자 값을 나타내는 문자열 표현. +* 숫자 값을 나타내는 문자열. -지원되지 않는 인수(`0` 반환): +지원되지 않는 인수 (`0` 반환): -* 2진수 및 16진수 값을 나타내는 문자열 표현. +* 이진수 및 16진수 값을 나타내는 문자열. * 숫자 값. :::note -이 함수는 문자열 표현에서 변환하는 동안 정밀도 손실이 발생해도 오류나 경고 없이 허용합니다. +이 함수는 문자열 표현에서 변환하는 동안 정밀도가 조용히(암묵적으로) 손실되는 것을 허용합니다. ::: 함께 보기: @@ -2664,15 +2697,15 @@ toBFloat16OrZero(x) **인수** -* `x` — 숫자의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열. [`String`](/sql-reference/data-types/string) **반환 값** -16비트 brain-float 값을 반환하며, 그렇지 않은 경우 `0`을 반환합니다. [`BFloat16`](/sql-reference/data-types/float) +16비트 brain-float 값을 반환하며, 그렇지 않으면 `0`을 반환합니다. [`BFloat16`](/sql-reference/data-types/float) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments @@ -2689,9 +2722,9 @@ SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments ## toBool \{#toBool\} -도입 버전: v22.2 +도입된 버전: v22.2 -입력 값을 Bool 타입의 값으로 변환합니다. +입력 값을 Bool 형식의 값으로 변환합니다. **구문** @@ -2701,15 +2734,15 @@ toBool(expr) **인수** -* `expr` — 숫자 또는 문자열을 반환하는 표현식입니다. 문자열의 경우 대소문자를 구분하지 않고 'true' 또는 'false' 값을 허용합니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) 또는 [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 문자열을 반환하는 표현식입니다. 문자열의 경우 대소문자를 구분하지 않고 「true」 또는 「false」만 허용합니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) 또는 [`Expression`](/sql-reference/data-types/special-data-types/expression) -**반환 값** +**반환값** 인수의 평가 결과에 따라 `true` 또는 `false`를 반환합니다. [`Bool`](/sql-reference/data-types/boolean) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -2734,10 +2767,10 @@ toBool('FALSE'): false ## toDate \{#toDate\} -도입된 버전: v1.1 +도입: v1.1 입력값을 [`Date`](/sql-reference/data-types/date) 타입으로 변환합니다. -String, FixedString, DateTime 또는 숫자형 타입에서의 변환을 지원합니다. +String, FixedString, DateTime 및 숫자 타입에서의 변환을 지원합니다. **구문** @@ -2745,7 +2778,7 @@ String, FixedString, DateTime 또는 숫자형 타입에서의 변환을 지원 toDate(x) ``` -**인수** +**인자** * `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) @@ -2753,7 +2786,7 @@ toDate(x) 변환된 입력값을 반환합니다. [`Date`](/sql-reference/data-types/date) -**예제** +**예시** **String을 Date로 변환** @@ -2765,7 +2798,7 @@ SELECT toDate('2025-04-15') 2025-04-15 ``` -**DateTime 값을 Date로 변환** +**DateTime을 Date로 변환** ```sql title=Query SELECT toDate(toDateTime('2025-04-15 10:30:00')) @@ -2788,11 +2821,11 @@ SELECT toDate(20297) ## toDate32 \{#toDate32\} -도입 버전: v21.9 +도입된 버전: v21.9 인수를 [Date32](../data-types/date32.md) 데이터 타입으로 변환합니다. -값이 범위를 벗어나면 `toDate32`는 [Date32](../data-types/date32.md)가 지원하는 경계값을 반환합니다. -인수가 [`Date`](../data-types/date.md) 타입인 경우, 해당 타입의 범위를 고려합니다. +값이 범위를 벗어나면 `toDate32`는 [Date32](../data-types/date32.md)가 지원하는 경계 값을 반환합니다. +인수가 [`Date`](../data-types/date.md) 타입인 경우 해당 타입의 범위가 적용됩니다. **구문** @@ -2806,9 +2839,9 @@ toDate32(expr) **반환값** -캘린더 날짜인 [`Date32`](/sql-reference/data-types/date32)를 반환합니다. +달력 날짜를 반환합니다. [`Date32`](/sql-reference/data-types/date32) -**예제** +**예시** **범위 내** @@ -2824,7 +2857,7 @@ value: 2025-01-01 toTypeName(value): Date32 ``` -**범위 초과** +**범위를 벗어남** ```sql title=Query SELECT toDate32('1899-01-01') AS value, toTypeName(value) @@ -2843,7 +2876,7 @@ toTypeName(value): Date32 도입 버전: v21.11 -인수를 [Date32](../data-types/date32.md) 데이터 타입으로 변환합니다. 값이 범위를 벗어나면 `toDate32OrDefault`는 [Date32](../data-types/date32.md)에서 지원하는 하한 값을 반환합니다. 인수가 [Date](../data-types/date.md) 타입이면 해당 타입의 범위가 적용됩니다. 유효하지 않은 인수가 전달되면 기본값을 반환합니다. +인수를 [Date32](../data-types/date32.md) 데이터 타입으로 변환합니다. 값이 허용 범위를 벗어나는 경우 `toDate32OrDefault`는 [Date32](../data-types/date32.md)에서 지원하는 하한 경계값을 반환합니다. 인수가 [Date](../data-types/date.md) 타입인 경우 해당 타입의 허용 범위도 함께 고려합니다. 잘못된 인수가 전달되면 기본값(default value)을 반환합니다. **구문** @@ -2853,16 +2886,16 @@ toDate32OrDefault(expr[, default]) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `default` — 선택 사항. 파싱에 실패했을 때 반환할 기본값. [`Date32`](/sql-reference/data-types/date32) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `default` — 선택 사항입니다. 파싱(구문 분석)에 실패했을 때 반환할 기본값입니다. [`Date32`](/sql-reference/data-types/date32) **반환 값** -성공한 경우 Date32 타입의 값을 반환하며, 그렇지 않으면 지정된 기본값을 반환하고, 기본값이 지정되지 않은 경우 1900-01-01을 반환합니다. [`Date32`](/sql-reference/data-types/date32) +성공한 경우 `Date32` 타입의 값을 반환하며, 그렇지 않은 경우 전달된 기본값이 있으면 그 값을, 없으면 1900-01-01을 반환합니다. [`Date32`](/sql-reference/data-types/date32) -**예시** +**예제** -**변환 성공 예시** +**변환 성공 예제** ```sql title=Query SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01')) @@ -2872,7 +2905,7 @@ SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01')) 1930-01-01 ``` -**형 변환 실패** +**변환 실패** ```sql title=Query SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) @@ -2887,7 +2920,7 @@ SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) 도입 버전: v21.9 -입력 값을 Date32 타입 값으로 변환하며, 잘못된 인수가 전달되면 `NULL`을 반환합니다. +입력값을 Date32 타입의 값으로 변환하지만 잘못된 인수가 전달되면 `NULL`을 반환합니다. [`toDate32`](#toDate32)와 동일하지만 잘못된 인수가 전달되면 `NULL`을 반환합니다. **구문** @@ -2898,11 +2931,11 @@ toDate32OrNull(x) **인수** -* `x` — 날짜를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 날짜를 나타내는 문자열. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -성공하면 `Date32` 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Date32`](/sql-reference/data-types/date32) 또는 [`NULL`](/sql-reference/syntax#null) +성공한 경우 Date32 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Date32`](/sql-reference/data-types/date32) 또는 [`NULL`](/sql-reference/syntax#null) **예제** @@ -2923,8 +2956,8 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') 도입 버전: v21.9 -입력 값을 [Date32](../data-types/date32.md) 타입의 값으로 변환하며, 잘못된 인수가 전달되면 [Date32](../data-types/date32.md)의 하한값을 반환합니다. -[toDate32](#toDate32)와 동일하지만, 잘못된 인수가 전달되면 [Date32](../data-types/date32.md)의 하한값을 반환합니다. +입력 값을 [Date32](../data-types/date32.md) 타입의 값으로 변환하지만, 잘못된 인수가 입력되면 [Date32](../data-types/date32.md)의 하한 값을 반환합니다. +[toDate32](#toDate32)와 동일하지만, 잘못된 인수가 입력되면 [Date32](../data-types/date32.md)의 하한 값을 반환합니다. 함께 보기: @@ -2938,13 +2971,13 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') toDate32OrZero(x) ``` -**인자** +**인수** -* `x` — 날짜를 나타내는 문자열. [`String`](/sql-reference/data-types/string) +* `x` — 문자열 형태의 날짜. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 Date32 값을, 실패하면 Date32의 하한 값인 `1900-01-01`을 반환합니다. [`Date32`](/sql-reference/data-types/date32) +성공한 경우 Date32 값을 반환하고, 그렇지 않으면 Date32의 하한인 `1900-01-01`을 반환합니다. [`Date32`](/sql-reference/data-types/date32) **예시** @@ -2963,9 +2996,9 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') ## toDateOrDefault \{#toDateOrDefault\} -도입된 버전: v21.11 +도입 버전: v21.11 -[toDate](#toDate)와 동일하지만, 변환에 실패하는 경우 기본값을 반환합니다. 기본값은 두 번째 인자가 지정되어 있으면 그 값이고, 지정되지 않은 경우 [Date](../data-types/date.md)의 최솟값입니다. +[toDate](#toDate)와 유사하지만, 변환에 성공하지 못하면 기본값을 반환합니다. 기본값은 두 번째 인자가 지정되어 있으면 그 값이고, 지정되지 않은 경우 [Date](../data-types/date.md)의 하한 값입니다. **구문** @@ -2973,14 +3006,14 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') toDateOrDefault(expr[, default]) ``` -**인수** +**인자** -* `expr` — 숫자 값이거나 숫자의 문자열 표현을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Date`](/sql-reference/data-types/date) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `default` — 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다. [`Date`](/sql-reference/data-types/date) **반환 값** -성공하면 `Date` 타입의 값을 반환하고, 그렇지 않으면 `default` 인수가 전달된 경우 해당 기본값을, 전달되지 않은 경우 1970-01-01을 반환합니다. [`Date`](/sql-reference/data-types/date) +성공한 경우 Date 타입의 값을 반환합니다. 실패한 경우 기본값이 전달되어 있으면 해당 값을, 전달되지 않은 경우 1970-01-01을 반환합니다. [`Date`](/sql-reference/data-types/date) **예시** @@ -3007,7 +3040,7 @@ SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) ## toDateOrNull \{#toDateOrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 입력값을 `Date` 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. [`toDate`](#toDate)와 동일하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. @@ -3018,13 +3051,13 @@ SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) toDateOrNull(x) ``` -**인자** +**인수** -* `x` — 날짜를 나타내는 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 날짜를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 Date 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Date`](/sql-reference/data-types/date) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 Date 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Date`](/sql-reference/data-types/date) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -3043,10 +3076,10 @@ SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid') ## toDateOrZero \{#toDateOrZero\} -도입 버전: v1.1 +도입된 버전: v1.1 -입력 값을 [`Date`](../data-types/date.md) 타입으로 변환하지만, 잘못된 인수가 전달되면 [`Date`](../data-types/date.md)의 하한 값을 반환합니다. -[toDate](#toDate)와 동일하지만, 잘못된 인수가 전달되면 [`Date`](../data-types/date.md) 타입의 하한 값을 반환합니다. +입력 값을 [`Date`](../data-types/date.md) 타입으로 변환하지만, 잘못된 인수가 전달되면 [`Date`](../data-types/date.md) 타입의 하한값을 반환합니다. +[toDate](#toDate)와 동일하지만, 잘못된 인수가 전달되면 [`Date`](../data-types/date.md) 타입의 하한값을 반환합니다. 함께 보기: @@ -3054,19 +3087,19 @@ SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid') * [`toDateOrNull`](#toDateOrNull) * [`toDateOrDefault`](#toDateOrDefault) -**구문** +**문법** ```sql toDateOrZero(x) ``` -**인자** +**인수** -* `x` — 문자열 형식의 날짜. [`String`](/sql-reference/data-types/string) +* `x` — 문자열 형태의 날짜. [`String`](/sql-reference/data-types/string) **반환 값** -성공적으로 변환되면 Date 값을, 그렇지 않으면 Date의 하한값인 `1970-01-01`을 반환합니다. [`Date`](/sql-reference/data-types/date) +성공한 경우 Date 값을, 그렇지 않으면 Date의 하한값인 `1970-01-01`을 반환합니다. [`Date`](/sql-reference/data-types/date) **예시** @@ -3087,15 +3120,15 @@ SELECT toDateOrZero('2025-12-30'), toDateOrZero('') 도입 버전: v1.1 -입력 값을 [DateTime](../data-types/datetime.md) 타입으로 변환합니다. +입력값을 [DateTime](../data-types/datetime.md) 형식으로 변환합니다. :::note -`expr`이 숫자인 경우, Unix Epoch의 시작 시점부터 경과한 초 수(Unix timestamp)로 해석됩니다. -`expr`이 [String](../data-types/string.md)인 경우, Unix timestamp 또는 날짜 / 날짜와 시간의 문자열 표현으로 해석될 수 있습니다. -이 때문에 짧은 숫자 문자열(최대 4자리)의 파싱은 모호성으로 인해 명시적으로 비활성화되어 있습니다. 예를 들어 문자열 `'1999'`는 연도(불완전한 Date / DateTime 문자열 표현)이거나 Unix timestamp일 수도 있습니다. 더 긴 숫자 문자열은 허용됩니다. +`expr`이 숫자인 경우 유닉스 에포크(Unix Epoch) 시작 시점부터의 초 단위 시간(Unix 타임스탬프, Unix timestamp)으로 해석됩니다. +`expr`이 [String](../data-types/string.md)인 경우 Unix 타임스탬프이거나 날짜/날짜-시간의 문자열 표현으로 해석될 수 있습니다. +따라서 짧은 숫자 문자열 표현(최대 4자리)은 모호성 때문에 파싱이 명시적으로 비활성화되어 있습니다. 예를 들어 문자열 `'1999'`는 연도(날짜/DateTime의 불완전한 문자열 표현)일 수도 있고 Unix 타임스탬프일 수도 있습니다. 더 긴 숫자 문자열은 허용됩니다. ::: -**구문** +**문법** ```sql toDateTime(expr[, time_zone]) @@ -3103,16 +3136,16 @@ toDateTime(expr[, time_zone]) **인수** -* `expr` — 값. [`String`](/sql-reference/data-types/string) 또는 [`Int`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) -* `time_zone` — 시간대. [`String`](/sql-reference/data-types/string) +* `expr` — 값입니다. [`String`](/sql-reference/data-types/string) 또는 [`Int`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) +* `time_zone` — 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`DateTime` 형식의 날짜와 시간 값을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +`DateTime` 형식의 날짜와 시간을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT toDateTime('2025-01-01 00:00:00'), toDateTime(1735689600, 'UTC') @@ -3129,11 +3162,11 @@ toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00 ## toDateTime32 \{#toDateTime32\} -도입된 버전: v20.9 +도입 버전: v20.9 입력 값을 `DateTime` 타입으로 변환합니다. -`String`, `FixedString`, `Date`, `Date32`, `DateTime` 또는 숫자 타입(`(U)Int*`, `Float*`, `Decimal`)에서의 변환을 지원합니다. -DateTime32는 `DateTime`과 비교해 확장된 범위를 제공하며, `1900-01-01`부터 `2299-12-31`까지의 날짜를 지원합니다. +`String`, `FixedString`, `Date`, `Date32`, `DateTime` 또는 수치형 타입(`(U)Int*`, `Float*`, `Decimal`)에서의 변환을 지원합니다. +`DateTime32`는 `DateTime`에 비해 더 넓은 범위를 제공하며, `1900-01-01`부터 `2299-12-31`까지의 날짜를 지원합니다. **구문** @@ -3144,7 +3177,7 @@ toDateTime32(x[, timezone]) **인수** * `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`DateTime64`](/sql-reference/data-types/datetime64) -* `timezone` — 선택 사항입니다. 반환되는 `DateTime` 값의 시간대입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 반환되는 `DateTime` 값에 사용할 타임존입니다. [`String`](/sql-reference/data-types/string) **반환 값** @@ -3164,7 +3197,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**정밀도를 지정한 10진수로** +**지정된 정밀도의 10진수로** ```sql title=Query SELECT toDateTime64(1735689600.000, 3) AS value, toTypeName(value); @@ -3181,7 +3214,7 @@ SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────┘ ``` -**타임존 포함** +**타임존을 사용하는 경우** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); @@ -3208,17 +3241,17 @@ toDateTime64(expr, scale[, timezone]) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식(expression). [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `scale` — 틱 크기(정밀도): 10^(-scale) 초. [`UInt8`](/sql-reference/data-types/int-uint) -* `timezone` — 선택 사항. 지정된 `DateTime64` 객체의 시간대. [`String`](/sql-reference/data-types/string) +* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `scale` — 틱 크기(정밀도)입니다. 10^(-scale)초를 의미합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `timezone` — 선택 사항입니다. 지정된 `DateTime64` 객체에 사용할 시간대입니다. [`String`](/sql-reference/data-types/string) **반환 값** -하위 초 단위 정밀도를 갖는 달력 날짜 및 시각을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +하위 초 단위까지 포함하는 달력 날짜와 하루 중 시간을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) -**예시** +**예제** -**값이 허용 범위 내에 있는 경우** +**값이 유효 범위 내에 있는 경우** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3230,7 +3263,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**지정된 정밀도의 decimal로** +**정밀도가 있는 Decimal로** ```sql title=Query SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value); @@ -3244,7 +3277,7 @@ SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────┘ ``` -**타임존 포함** +**타임존 사용** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); @@ -3261,8 +3294,8 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN 도입 버전: v21.11 -[toDateTime64](#toDateTime64)와 같이, 이 FUNCTION은 입력값을 [DateTime64](../data-types/datetime64.md) 타입의 값으로 변환하지만, -유효하지 않은 인수가 전달되었을 때는 [DateTime64](../data-types/datetime64.md)의 기본값 또는 사용자가 지정한 기본값을 반환합니다. +[toDateTime64](#toDateTime64)와 마찬가지로 이 함수는 입력값을 [DateTime64](../data-types/datetime64.md) 타입의 값으로 변환합니다. +다만 잘못된 인수가 전달된 경우 [DateTime64](../data-types/datetime64.md)의 기본값 또는 제공된 기본값을 반환합니다. **구문** @@ -3272,18 +3305,18 @@ toDateTime64OrDefault(expr, scale[, timezone, default]) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `scale` — 틱 크기(정밀도)입니다. 10^-precision 초 단위입니다. [`UInt8`](/sql-reference/data-types/int-uint) * `timezone` — 선택 사항입니다. 시간대입니다. [`String`](/sql-reference/data-types/string) * `default` — 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다. [`DateTime64`](/sql-reference/data-types/datetime64) **반환 값** -변환에 성공하면 DateTime64 타입의 값을 반환하며, 그렇지 않은 경우 전달된 기본값이 있으면 해당 값을, 없으면 1970-01-01 00:00:00.000을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +성공하면 DateTime64 유형의 값을 반환하며, 그렇지 않으면 `default` 값이 전달된 경우 해당 값을, 전달되지 않은 경우 1970-01-01 00:00:00.000을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) **예시** -**성공적인 변환** +**성공한 변환** ```sql title=Query SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3) @@ -3293,7 +3326,7 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3) 1976-10-18 00:00:00.300 ``` -**형 변환 실패** +**변환 실패** ```sql title=Query SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3)) @@ -3306,10 +3339,10 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2 ## toDateTime64OrNull \{#toDateTime64OrNull\} -도입 버전: v20.1 +도입된 버전: v20.1 -입력값을 `DateTime64` 타입 값으로 변환하지만, 유효하지 않은 인수가 전달되면 `NULL`을 반환합니다. -`toDateTime64`와 동일하지만, 유효하지 않은 인수가 전달되면 `NULL`을 반환합니다. +입력 값을 `DateTime64` 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. +`toDateTime64`와 동일하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. **구문** @@ -3319,11 +3352,11 @@ toDateTime64OrNull(x) **인수** -* `x` — 시간 및 서브초 정밀도를 포함하는 날짜의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 소수 초 단위까지의 정밀도를 포함하는 날짜와 시간의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공한 경우 DateTime64 값을, 그렇지 않은 경우 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 DateTime64 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -3342,12 +3375,12 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali ## toDateTime64OrZero \{#toDateTime64OrZero\} -도입된 버전: v20.1 +도입 버전: v20.1 -입력 값을 [DateTime64](../data-types/datetime64.md) 타입의 값으로 변환하지만, 잘못된 인수가 전달된 경우 [DateTime64](../data-types/datetime64.md)의 하한 값을 반환합니다. -[toDateTime64](#toDateTime64)와 동일하지만, 잘못된 인수가 전달된 경우 [DateTime64](../data-types/datetime64.md)의 하한 값을 반환합니다. +입력 값을 [DateTime64](../data-types/datetime64.md) 타입의 값으로 변환하되, 잘못된 인수가 전달되면 [DateTime64](../data-types/datetime64.md)의 하한 값을 반환합니다. +[toDateTime64](#toDateTime64)와 동일하게 동작하지만, 잘못된 인수가 전달되면 [DateTime64](../data-types/datetime64.md)의 하한 값을 반환합니다. -관련 항목: +함께 보기: * [toDateTime64](#toDateTime64). * [toDateTime64OrNull](#toDateTime64OrNull). @@ -3359,17 +3392,17 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali toDateTime64OrZero(x) ``` -**인수** +**인자** -* `x` — 시간과 초 이하 단위까지의 정밀도를 포함한 날짜의 문자열 표현. [`String`](/sql-reference/data-types/string) +* `x` — 시간 및 초 이하 단위 정밀도를 포함한 날짜의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 DateTime64 값을 반환하고, 그렇지 않으면 DateTime64의 하한값인 `1970-01-01 00:00:00.000`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) +성공하면 DateTime64 값을 반환하며, 실패하면 DateTime64의 하한 값인 `1970-01-01 00:00:00.000`을 반환합니다. [`DateTime64`](/sql-reference/data-types/datetime64) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invalid') @@ -3384,9 +3417,9 @@ SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invali ## toDateTimeOrDefault \{#toDateTimeOrDefault\} -도입 버전: v21.11 +도입: v21.11 -[toDateTime](#toDateTime)과 동일하지만, 변환에 실패하는 경우 기본값을 반환합니다. 기본값은 세 번째 인자가 지정된 경우 해당 값이고, 지정되지 않은 경우 [DateTime](../data-types/datetime.md)의 최솟값입니다. +[toDateTime](#toDateTime)과 유사하지만, 변환에 실패하는 경우 기본값을 반환합니다. 기본값은 세 번째 인자가 지정되어 있으면 해당 값이고, 지정되지 않은 경우 [DateTime](../data-types/datetime.md)의 하한입니다. **구문** @@ -3397,16 +3430,16 @@ toDateTimeOrDefault(expr[, timezone, default]) **인자** * `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `timezone` — 선택 사항입니다. 시간대입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항입니다. 타임존을 나타냅니다. [`String`](/sql-reference/data-types/string) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`DateTime`](/sql-reference/data-types/datetime) **반환 값** -성공한 경우 DateTime 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값을 반환하며, 기본값이 없으면 1970-01-01 00:00:00을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +성공한 경우 DateTime 타입의 값을 반환하고, 그렇지 않은 경우 `default` 값이 전달되었으면 해당 값을, 전달되지 않았으면 1970-01-01 00:00:00을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** -**성공한 변환** +**성공적인 변환** ```sql title=Query SELECT toDateTimeOrDefault('2022-12-30 13:44:17') @@ -3429,10 +3462,10 @@ SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')')) ## toDateTimeOrNull \{#toDateTimeOrNull\} -도입된 버전: v1.1 +도입 버전: v1.1 -입력값을 `DateTime` 타입의 값으로 변환하지만, 잘못된 인자가 전달되면 `NULL`을 반환합니다. -[`toDateTime`](#toDateTime)와 동일하지만, 잘못된 인자가 전달되면 `NULL`을 반환합니다. +입력값을 `DateTime` 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. +[`toDateTime`](#toDateTime)과 동일하지만, 잘못된 인수가 전달되면 `NULL`을 반환합니다. **구문** @@ -3442,15 +3475,15 @@ toDateTimeOrNull(x) **인수** -* `x` — 시간 정보를 포함한 날짜의 문자열 형식입니다. [`String`](/sql-reference/data-types/string) +* `x` — 시간 정보를 포함한 날짜를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 `DateTime` 값을, 그렇지 않으면 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) +성공한 경우 `DateTime` 값을, 그렇지 않으면 `NULL`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) 또는 [`NULL`](/sql-reference/syntax#null) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') @@ -3467,8 +3500,8 @@ SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') 도입 버전: v1.1 -입력값을 [DateTime](../data-types/datetime.md) 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 [DateTime](../data-types/datetime.md) 하한값을 반환합니다. -[toDateTime](#toDateTime)과 동일하게 동작하지만, 잘못된 인수가 전달될 경우 [DateTime](../data-types/datetime.md) 하한값을 반환합니다. +입력 값을 [DateTime](../data-types/datetime.md) 타입의 값으로 변환합니다. 단, 유효하지 않은 인수가 전달되면 [DateTime](../data-types/datetime.md) 하한값을 반환합니다. +[toDateTime](#toDateTime)과 동일하지만, 유효하지 않은 인수가 전달되면 [DateTime](../data-types/datetime.md) 하한값을 반환합니다. **구문** @@ -3478,11 +3511,11 @@ toDateTimeOrZero(x) **인수** -* `x` — 시간 정보를 포함한 날짜의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 시간 정보를 포함한 날짜의 문자열 표현. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -성공하면 DateTime 값을 반환하고, 그렇지 않으면 DateTime의 최소값인 `1970-01-01 00:00:00`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) +성공한 경우 DateTime 값을 반환하고, 실패한 경우 DateTime의 하한값인 `1970-01-01 00:00:00`을 반환합니다. [`DateTime`](/sql-reference/data-types/datetime) **예시** @@ -3503,32 +3536,32 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') 도입된 버전: v18.12 -입력 값을 스케일 `S`를 가지는 [`Decimal(38, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. +입력 값을 스케일 `S`를 갖는 [`Decimal(38, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 해당 값의 문자열 표현. -* Float* 타입의 값 또는 해당 값의 문자열 표현. +* 타입이 (U)Int*인 값 또는 해당 값의 문자열 표현. +* 타입이 Float*인 값 또는 해당 값의 문자열 표현. 지원되지 않는 인수: -* Float* 값 `NaN` 및 `Inf`의 값 또는 이 값들의 문자열 표현(대소문자 구분 없음). -* 이진수 및 16진수 값의 문자열 표현, 예: `SELECT toDecimal128('0xc0fe', 1);`. +* Float* 형식의 `NaN`, `Inf` 값 또는 해당 값의 문자열 표현(대소문자 구분 없음). +* 이진 및 16진수 값의 문자열 표현, 예: `SELECT toDecimal128('0xc0fe', 1);`. :::note `expr`의 값이 `Decimal128`의 범위 `(-1*10^(38 - S), 1*10^(38 - S))`를 초과하면 오버플로가 발생할 수 있습니다. -소수 부분의 초과 자릿수는 버려지며(반올림되지 않음), +소수 부분의 초과 자릿수는 버려집니다(반올림되지 않음). 정수 부분의 초과 자릿수는 예외를 발생시킵니다. ::: :::warning -변환 과정에서 여분의 자릿수가 잘려 나가고, 연산이 부동소수점 명령어를 사용하여 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다. -예를 들어, `toDecimal128(1.15, 2)`는 1.15 * 100이 부동소수점에서 114.99가 되기 때문에 `1.14`와 같습니다. -문자열 입력을 사용하면 내부적으로 정수 타입을 사용하여 연산할 수 있습니다: `toDecimal128('1.15', 2) = 1.15` +변환 시 부동 소수점 명령어를 사용하여 연산이 수행되므로 Float32/Float64 입력을 사용할 때 추가 자릿수가 잘려 나가 예기치 않게 동작할 수 있습니다. +예를 들어 `toDecimal128(1.15, 2)`는 부동 소수점에서 1.15 * 100이 114.99가 되기 때문에 `1.14`와 같습니다. +연산에 기본 정수 타입을 사용하도록 하려면 String 입력을 사용할 수 있습니다: `toDecimal128('1.15', 2) = 1.15` ::: -**구문** +**문법** ```sql toDecimal128(expr, S) @@ -3536,8 +3569,8 @@ toDecimal128(expr, S) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 이상 38 이하의 스케일 매개변수로, 숫자의 소수부가 가질 수 있는 자릿수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 38 사이의 스케일(scale) 매개변수로, 소수 부분이 가질 수 있는 자릿수(숫자 개수)를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** @@ -3569,11 +3602,11 @@ type_c: Decimal(38, 3) ## toDecimal128OrDefault \{#toDecimal128OrDefault\} -도입 버전: v21.11 +도입된 버전: v21.11 -[`toDecimal128`](#toDecimal128)과(와) 마찬가지로, 이 FUNCTION은 입력값을 [Decimal(38, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +[`toDecimal128`](#toDecimal128)과 같이, 이 함수는 입력값을 [Decimal(38, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. -**구문** +**문법** ```sql toDecimal128OrDefault(expr, S[, default]) @@ -3581,13 +3614,13 @@ toDecimal128OrDefault(expr, S[, default]) **인수** -* `expr` — 숫자를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) -* `S` — 0에서 38 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 선택 사항입니다. Decimal128(S) 타입으로의 파싱이 실패했을 때 반환할 기본값입니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) +* `expr` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `S` — 0에서 38 사이의 스케일(scale) 매개변수로, 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 선택 사항입니다. Decimal128(S) 형식으로 파싱하지 못했을 때 반환할 기본값입니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) **반환 값** -성공한 경우 Decimal(38, S) 타입의 값을, 그렇지 않은 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(38, S) 형식의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있을 경우 해당 값을, 없을 경우 0을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) **예시** @@ -3614,10 +3647,10 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) ## toDecimal128OrNull \{#toDecimal128OrNull\} -도입 버전: v20.1 +도입된 버전: v20.1 -입력 값을 [`Decimal(38, S)`](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. -[`toDecimal128`](#toDecimal128)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. +입력 값을 [`Decimal(38, S)`](../data-types/decimal.md) 타입의 값으로 변환하지만, 변환 중 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toDecimal128`](#toDecimal128)과 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. 지원되는 인수: @@ -3626,8 +3659,8 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) 지원되지 않는 인수(`NULL` 반환): -* Float* 값 `NaN` 및 `Inf` 값 또는 해당 값의 문자열 표현(대소문자 구분 없음). -* 2진수 및 16진수 값의 문자열 표현. +* Float* 값 `NaN` 및 `Inf`의 값 또는 해당 값의 문자열 표현(대소문자 구분 없음). +* 이진수 및 16진수 값의 문자열 표현. * `Decimal128`의 범위를 초과하는 값: `(-1*10^(38 - S), 1*10^(38 - S))`. 관련 항목: @@ -3645,15 +3678,15 @@ toDecimal128OrNull(expr, S) **인수** * `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0과 38 사이의 스케일(scale) 매개변수로, 숫자의 소수부가 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0에서 38 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수의 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 Decimal(38, S) 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) +성공한 경우 Decimal(38, S) 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) @@ -3668,23 +3701,23 @@ SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) ## toDecimal128OrZero \{#toDecimal128OrZero\} -도입 버전: v20.1 +도입된 버전: v20.1 입력 값을 [Decimal(38, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -[`toDecimal128`](#toDecimal128)과 동일하지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. +[`toDecimal128`](#toDecimal128)과 같지만, 변환 오류 시 예외를 던지는 대신 `0`을 반환합니다. -지원되는 인자: +지원되는 인수: -* (U)Int* 타입 값 또는 해당 값의 문자열 표현. -* Float* 타입 값 또는 해당 값의 문자열 표현. +* (U)Int* 타입의 값 또는 그 문자열 표현. +* Float* 타입의 값 또는 그 문자열 표현. -지원되지 않는 인자(`0`을 반환): +지원되지 않는 인수(`0` 반환): -* Float* 타입의 `NaN` 및 `Inf` 값 또는 해당 값의 문자열 표현(대소문자 구분 없음). +* Float* 타입의 `NaN` 및 `Inf` 값 또는 해당 문자열 표현(대소문자 구분 없음). * 2진수 및 16진수 값의 문자열 표현. :::note -입력 값이 `Decimal128`의 경계 `(-1*10^(38 - S), 1*10^(38 - S))`를 초과하면 함수는 `0`을 반환합니다. +입력 값이 `Decimal128`의 범위 `(-1*10^(38 - S), 1*10^(38 - S))`를 초과하면, 함수는 `0`을 반환합니다. ::: **구문** @@ -3695,16 +3728,16 @@ toDecimal128OrZero(expr, S) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0에서 38 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 이상 38 이하의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 최대 자릿수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 Decimal(38, S) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(38, S) 값을, 그렇지 않으면 `0`을 반환합니다. [`Decimal128(S)`](/sql-reference/data-types/decimal) -**예제** +**예시** -**기본 사용 예** +**기본 사용법** ```sql title=Query SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) @@ -3719,42 +3752,42 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) ## toDecimal256 \{#toDecimal256\} -도입된 버전: v20.8 +도입 버전: v20.8 -입력 값을 스케일이 `S`인 [`Decimal(76, S)`](../data-types/decimal.md) 타입 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. +입력 값을 스케일 `S`를 갖는 [`Decimal(76, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 타입 값 또는 해당 문자열 표현. -* Float* 타입 값 또는 해당 문자열 표현. +* (U)Int* 타입의 값 또는 해당 값의 문자열 표현. +* Float* 타입의 값 또는 해당 값의 문자열 표현. 지원되지 않는 인수: -* Float* 값 `NaN` 및 `Inf`(대소문자 구분 없음) 또는 해당 문자열 표현. -* 이진 및 16진수 값의 문자열 표현(예: `SELECT toDecimal256('0xc0fe', 1);`). +* Float* 값 `NaN` 및 `Inf`(대소문자 구분 없음) 자체 값 또는 해당 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현(예: `SELECT toDecimal256('0xc0fe', 1);`). :::note -`expr` 값이 `Decimal256`의 범위 `(-1*10^(76 - S), 1*10^(76 - S))`를 초과하면 오버플로가 발생할 수 있습니다. -소수부에서 초과된 자릿수는 (반올림 없이) 버려집니다. -정수부에서 초과된 자릿수는 예외를 발생시킵니다. +`expr`의 값이 `Decimal256`의 경계값 `(-1*10^(76 - S), 1*10^(76 - S))`을 초과하면 오버플로가 발생할 수 있습니다. +소수 부분에서 과도한 자리수는 버려지며(반올림되지 않음), +정수 부분에서 과도한 자리수는 예외를 발생시킵니다. ::: :::warning -변환 과정에서 추가 자릿수가 버려지며, 연산이 부동소수점 명령어를 사용하여 수행되므로 Float32/Float64 입력으로 작업할 때 예기치 않은 방식으로 동작할 수 있습니다. -예를 들어, `toDecimal256(1.15, 2)`는 `1.14`와 같습니다. 이는 부동소수점에서 1.15 * 100이 114.99가 되기 때문입니다. -문자열 입력을 사용하면 기본 정수 타입을 사용하여 연산할 수 있습니다: `toDecimal256('1.15', 2) = 1.15` +변환 과정에서 추가 자리수가 잘려 나가며, 연산이 부동소수점 명령어로 수행되기 때문에 Float32/Float64 입력을 사용할 때 예기치 않은 방식으로 동작할 수 있습니다. +예를 들어, `toDecimal256(1.15, 2)`는 1.15 * 100이 부동소수점에서 114.99가 되기 때문에 `1.14`와 같습니다. +연산이 내부 정수 타입을 사용하도록 하려면 String 입력을 사용할 수 있습니다: `toDecimal256('1.15', 2) = 1.15` ::: -**Syntax** +**구문** ```sql toDecimal256(expr, S) ``` -**인자** +**인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 이상 76 이하의 스케일(scale) 매개변수로, 소수 부분이 가질 수 있는 자릿수의 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 이상 76 이하의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** @@ -3788,7 +3821,7 @@ type_c: Decimal(76, 3) 도입 버전: v21.11 -[`toDecimal256`](#toDecimal256)와 마찬가지로 이 FUNCTION은 입력값을 [Decimal(76, S)](../data-types/decimal.md) 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +[`toDecimal256`](#toDecimal256)와 마찬가지로, 이 함수는 입력 값을 [Decimal(76, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. **구문** @@ -3798,17 +3831,17 @@ toDecimal256OrDefault(expr, S[, default]) **인수** -* `expr` — 숫자를 String 형식으로 표현한 값입니다. [`String`](/sql-reference/data-types/string) -* `S` — 0부터 76 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 선택 사항입니다. Decimal256(S) 타입으로 파싱(parse)하지 못했을 때 반환할 기본값입니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) +* `expr` — 숫자의 문자열(String) 표현입니다. [`String`](/sql-reference/data-types/string) +* `S` — 0과 76 사이의 스케일(scale) 매개변수로, 숫자의 소수부가 가질 수 있는 자릿수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 선택 사항입니다. Decimal256(S) 타입으로의 파싱이 실패했을 때 반환할 기본값입니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) **반환 값** -성공하면 Decimal(76, S) 타입의 값을 반환하고, 그렇지 않으면 기본값이 전달된 경우 해당 값을, 그렇지 않은 경우 0을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) +성공 시 Decimal(76, S) 타입의 값을, 실패 시 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) **예시** -**변환 성공 예** +**성공적인 변환** ```sql title=Query SELECT toDecimal256OrDefault(toString(1/42), 76) @@ -3833,21 +3866,21 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) 도입 버전: v20.8 -입력 값을 [`Decimal(76, S)`](../data-types/decimal.md) 형식의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -[`toDecimal256`](#toDecimal256)와 유사하지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +입력 값을 [`Decimal(76, S)`](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toDecimal256`](#toDecimal256)와 같지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int* 형식의 값 또는 해당 문자열 표현. -* Float* 형식의 값 또는 해당 문자열 표현. +* (U)Int* 타입의 값 또는 그 문자열 표현. +* Float* 타입의 값 또는 그 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인수 (`NULL` 반환): -* Float* 형식의 `NaN`, `Inf` 값 또는 해당 문자열 표현(대소문자를 구분하지 않습니다). -* 2진수 및 16진수 값의 문자열 표현. +* `NaN`, `Inf`(대소문자 구분 없음)과 같은 Float* 값 또는 그 문자열 표현. +* 2진수 및 16진수 값을 나타내는 문자열 표현. * `Decimal256`의 범위를 초과하는 값: `(-1 * 10^(76 - S), 1 * 10^(76 - S))`. -관련 항목: +함께 보기: * [`toDecimal256`](#toDecimal256). * [`toDecimal256OrZero`](#toDecimal256OrZero). @@ -3859,14 +3892,14 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) toDecimal256OrNull(expr, S) ``` -**인수** +**인자** * `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0에서 76 사이의 스케일 매개변수로, 숫자의 소수 부분에서 허용되는 자릿수의 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 0에서 76 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 Decimal(76, S) 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 Decimal(76, S) 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -3885,26 +3918,26 @@ SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2) ## toDecimal256OrZero \{#toDecimal256OrZero\} -도입 버전: v20.8 +도입된 버전: v20.8 -입력 값을 [Decimal(76, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `0`을 반환합니다. -[`toDecimal256`](#toDecimal256)과 유사하지만, 변환 오류 시 예외를 던지는 대신 `0`을 반환합니다. +입력 값을 [Decimal(76, S)](../data-types/decimal.md) 타입 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toDecimal256`](#toDecimal256)과 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. 지원되는 인수: * (U)Int* 타입 값 또는 해당 문자열 표현. * Float* 타입 값 또는 해당 문자열 표현. -지원되지 않는 인수(`0`을 반환): +지원되지 않는 인수(`0` 반환): -* `NaN` 및 `Inf`와 같은 Float* 값 또는 해당 문자열 표현(대소문자 구분 없음). -* 2진수 및 16진수 값의 문자열 표현. +* Float* 타입의 `NaN` 및 `Inf` 값 또는 그 문자열 표현(대소문자를 구분하지 않음). +* 이진수 및 16진수 값의 문자열 표현. :::note 입력 값이 `Decimal256`의 범위 `(-1*10^(76 - S), 1*10^(76 - S))`를 초과하는 경우, 함수는 `0`을 반환합니다. ::: -함께 참고: +함께 보기: * [`toDecimal256`](#toDecimal256). * [`toDecimal256OrNull`](#toDecimal256OrNull). @@ -3918,12 +3951,12 @@ toDecimal256OrZero(expr, S) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0에서 76 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 76 사이의 스케일 매개변수로, 소수 부분 자릿수의 최대 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 Decimal(76, S) 값을, 그렇지 않으면 `0`을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(76, S) 값을, 그렇지 않으면 `0`을 반환합니다. [`Decimal256(S)`](/sql-reference/data-types/decimal) **예시** @@ -3944,7 +3977,7 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) 도입 버전: v18.12 -입력값을 스케일이 `S`인 [`Decimal(9, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. 오류가 발생하는 경우 예외를 발생시킵니다. +입력 값을 스케일 `S`를 갖는 [`Decimal(9, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: @@ -3953,19 +3986,19 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) 지원되지 않는 인수: -* Float* 값 `NaN` 및 `Inf` 또는 해당 문자열 표현(대소문자 무시). -* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toDecimal32('0xc0fe', 1);`. +* Float* 타입의 `NaN` 및 `Inf` 값(대소문자 구분 없음)과 그 문자열 표현. +* 이진 및 16진수 값의 문자열 표현. 예: `SELECT toDecimal32('0xc0fe', 1);`. :::note `expr`의 값이 `Decimal32`의 범위 `(-1*10^(9 - S), 1*10^(9 - S))`를 초과하면 오버플로가 발생할 수 있습니다. -소수부의 자릿수가 너무 많으면 초과분은 버려지며(반올림하지 않음), -정수부의 자릿수가 너무 많으면 예외가 발생합니다. +소수부의 자릿수가 너무 많은 경우 초과 자릿수는 버려집니다(반올림되지 않음). +정수부의 자릿수가 너무 많은 경우 예외가 발생합니다. ::: :::warning -변환 시 초과 자릿수가 잘려 나가며, 부동소수점 명령어를 사용하여 연산이 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다. -예: `toDecimal32(1.15, 2)`는 `1.14`와 같은데, 이는 부동소수점에서 1.15 * 100이 114.99가 되기 때문입니다. -연산이 내부적으로 정수 타입을 사용하도록 하려면 String 입력을 사용할 수 있습니다: `toDecimal32('1.15', 2) = 1.15` +변환 과정에서 초과 자릿수가 잘려 나가며, 연산이 부동소수점 명령어를 사용해 수행되므로 Float32/Float64 입력을 처리할 때 예기치 않게 동작할 수 있습니다. +예: `toDecimal32(1.15, 2)`는 `1.14`와 같습니다. 이는 부동소수점 연산에서 1.15 * 100이 114.99가 되기 때문입니다. +문자열 입력을 사용하여 연산이 내부 정수 타입을 사용하도록 할 수 있습니다: `toDecimal32('1.15', 2) = 1.15` ::: **구문** @@ -3976,12 +4009,12 @@ toDecimal32(expr, S) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0에서 9 사이의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 9 사이의 스케일(scale) 매개변수로, 수의 소수 부분에 허용되는 자릿수의 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -`Decimal(9, S)` 타입의 값 [`Decimal32(S)`](/sql-reference/data-types/decimal)을(를) 반환합니다. +`Decimal(9, S)` 타입의 값을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) **예시** @@ -4011,7 +4044,7 @@ type_c: Decimal(9, 3) 도입된 버전: v21.11 -[`toDecimal32`](#toDecimal32)와 마찬가지로 이 FUNCTION은 입력값을 [Decimal(9, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +[`toDecimal32`](#toDecimal32)와 마찬가지로, 이 FUNCTION은 입력값을 [Decimal(9, S)](../data-types/decimal.md) 형식의 값으로 변환하지만, 오류가 발생하는 경우 기본값을 반환합니다. **구문** @@ -4022,12 +4055,12 @@ toDecimal32OrDefault(expr, S[, default]) **인수** * `expr` — 숫자의 문자열(String) 표현입니다. [`String`](/sql-reference/data-types/string) -* `S` — 0과 9 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 선택 사항입니다. Decimal32(S) 타입으로 파싱에 실패했을 때 반환할 기본값입니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) +* `S` — 0 이상 9 이하의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 선택 사항입니다. Decimal32(S) 타입으로의 파싱에 실패했을 때 반환할 기본값입니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) **반환 값** -성공하면 Decimal(9, S) 타입의 값을 반환하고, 실패하면 전달된 경우 기본값을, 전달되지 않은 경우 0을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) +성공한 경우 Decimal(9, S) 타입의 값을 반환하며, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) **예시** @@ -4057,18 +4090,18 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) 도입 버전: v20.1 입력 값을 [`Decimal(9, S)`](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -[`toDecimal32`](#toDecimal32)와 유사하지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +[`toDecimal32`](#toDecimal32)와 같지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int* 타입 값 또는 해당 타입의 문자열 표현. -* Float* 타입 값 또는 해당 타입의 문자열 표현. +* (U)Int* 타입 값 또는 해당 값의 문자열 표현. +* Float* 타입 값 또는 해당 값의 문자열 표현. 지원되지 않는 인수(`NULL` 반환): -* Float* 타입의 `NaN` 및 `Inf` 값 또는 해당 문자열 표현(대소문자 구분 없음). +* Float* 값 `NaN` 및 `Inf` 값 또는 해당 값의 문자열 표현(대소문자 구분 안 함). * 이진수 및 16진수 값의 문자열 표현. -* `Decimal32`의 범위를 벗어나는 값: `(-1*10^(9 - S), 1*10^(9 - S))`. +* `Decimal32`의 범위를 초과하는 값: `(-1*10^(9 - S), 1*10^(9 - S))`. 관련 항목: @@ -4082,18 +4115,18 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) toDecimal32OrNull(expr, S) ``` -**인자(Arguments)** +**인자** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 이상 9 이하의 스케일(scale) 파라미터로, 숫자의 소수 부분 자릿수 최대 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0 이상 9 이하의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) -**반환 값(Returned value)** +**반환 값** -성공하면 Decimal(9, S) 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) +성공 시 Decimal(9, S) 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) @@ -4110,21 +4143,21 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) 도입 버전: v20.1 -입력값을 [Decimal(9, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -[`toDecimal32`](#toDecimal32)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. +입력 값을 [Decimal(9, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toDecimal32`](#toDecimal32)와 같지만, 변환 오류 시 예외를 던지는 대신 `0`을 반환합니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 해당 값의 문자열 표현. -* Float* 타입의 값 또는 해당 값의 문자열 표현. +* (U)Int* 타입 값 또는 해당 문자열 표현. +* Float* 타입 값 또는 해당 문자열 표현. 지원되지 않는 인수(`0` 반환): -* Float* 값 `NaN` 및 `Inf`(대소문자 구분 없음) 또는 그 문자열 표현. +* Float* 타입 값 `NaN`, `Inf` 또는 해당 문자열 표현(대소문자 구분 없음). * 2진수 및 16진수 값의 문자열 표현. :::note -입력값이 `Decimal32`의 범위 `(-1*10^(9 - S), 1*10^(9 - S))`를 초과하면 함수는 `0`을 반환합니다. +입력 값이 `Decimal32`의 범위 `(-1*10^(9 - S), 1*10^(9 - S))`를 벗어나면, 함수는 `0`을 반환합니다. ::: **구문** @@ -4133,14 +4166,14 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) toDecimal32OrZero(expr, S) ``` -**인수** +**인자** -* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0에서 9 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수(소수점 이하 자리 수)를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 9 사이의 스케일 파라미터로, 숫자의 소수 부분이 가질 수 있는 자릿수(소수 자릿수)를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공 시 Decimal(9, S) 값을 반환하며, 실패 시 `0`을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(9, S) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Decimal32(S)`](/sql-reference/data-types/decimal) **예시** @@ -4159,34 +4192,34 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) ## toDecimal64 \{#toDecimal64\} -도입 버전: v18.12 +도입된 버전: v18.12 -입력 값을 스케일 `S`를 가진 [`Decimal(18, S)`](../data-types/decimal.md) 형식의 값으로 변환합니다. -오류가 발생하면 예외가 발생합니다. +입력 값을 스케일이 `S`인 [`Decimal(18, S)`](../data-types/decimal.md) 타입의 값으로 변환합니다. +오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 형식의 값 또는 해당 문자열 표현. -* Float* 형식의 값 또는 해당 문자열 표현. +* (U)Int* 타입의 값 또는 해당 문자열 표현. +* Float* 타입의 값 또는 해당 문자열 표현. 지원되지 않는 인수: -* Float* 값 `NaN` 및 `Inf`(대소문자 구분 안 함) 또는 해당 문자열 표현. +* Float* 값 `NaN` 및 `Inf`(대소문자 구분 없음)의 값 또는 문자열 표현. * 이진 및 16진수 값의 문자열 표현. 예: `SELECT toDecimal64('0xc0fe', 1);`. :::note `expr` 값이 `Decimal64`의 범위 `(-1*10^(18 - S), 1*10^(18 - S))`를 초과하면 오버플로가 발생할 수 있습니다. -소수 부분의 너무 많은 자릿수는 버려집니다(반올림하지 않음). -정수 부분의 너무 많은 자릿수는 예외를 발생시킵니다. +소수 부분의 초과 자릿수는 버려지며(반올림되지 않음), +정수 부분의 초과 자릿수는 예외를 발생시킵니다. ::: :::warning -변환 과정에서 추가 자릿수는 버려지며, 연산이 부동소수점 명령을 사용하여 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다. -예를 들어 `toDecimal64(1.15, 2)` 의 결과는 `1.14`인데, 이는 부동소수점 연산에서 1.15 * 100 이 114.99가 되기 때문입니다. -문자열 입력을 사용하면 연산에 기본 정수 형식을 사용할 수 있습니다: `toDecimal64('1.15', 2) = 1.15` +변환 시 부동 소수점 명령어를 사용하여 연산하므로 Float32/Float64 입력을 사용할 때 초과 자릿수를 잘라내며, 이로 인해 예상과 다르게 동작할 수 있습니다. +예를 들어 `toDecimal64(1.15, 2)`는 부동 소수점에서 1.15 * 100이 114.99가 되기 때문에 `1.14`와 같습니다. +문자열 입력을 사용하면 내부 정수 타입을 사용하여 연산하게 할 수 있습니다: `toDecimal64('1.15', 2) = 1.15` ::: -**구문** +**문법** ```sql toDecimal64(expr, S) @@ -4194,16 +4227,16 @@ toDecimal64(expr, S) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 이상 18 이하의 정수 값으로, 숫자의 소수부가 가질 수 있는 자릿수(스케일)를 지정하는 매개변수. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 18 사이의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수(숫자 개수)를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -10진수 값을 반환합니다. [`Decimal(18, S)`](/sql-reference/data-types/decimal) +10진수(Decimal) 값을 반환합니다. [`Decimal(18, S)`](/sql-reference/data-types/decimal) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -4229,27 +4262,27 @@ type_c: Decimal(18, 3) 도입 버전: v21.11 -[`toDecimal64`](#toDecimal64)와 마찬가지로 이 FUNCTION은 입력값을 [Decimal(18, S)](../data-types/decimal.md) 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +[`toDecimal64`](#toDecimal64)과(와) 마찬가지로, 이 FUNCTION은 입력값을 [Decimal(18, S)](../data-types/decimal.md) 타입의 값으로 변환하지만 오류가 발생하면 기본값을 반환합니다. -**구문** +**문법** ```sql toDecimal64OrDefault(expr, S[, default]) ``` -**인수** +**인자** -* `expr` — 숫자를 나타내는 문자열 표현입니다. [`String`](/sql-reference/data-types/string) -* `S` — 0에서 18 사이의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 선택 사항입니다. Decimal64(S) 타입으로 파싱하는 데 실패했을 때 반환할 기본값입니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) +* `expr` — 숫자를 문자열(String)로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `S` — 0에서 18 사이의 스케일 파라미터로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 선택 사항입니다. Decimal64(S) 타입으로의 파싱이 실패했을 때 반환할 기본값입니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) **반환 값** -성공하면 Decimal(18, S) 타입의 값이며, 그렇지 않으면 기본값이 전달된 경우 해당 값을, 전달되지 않은 경우 0을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(18, S) 타입의 값을 반환하며, 실패하면 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) -**예제** +**예시** -**성공적인 변환** +**변환 성공 예시** ```sql title=Query SELECT toDecimal64OrDefault(toString(0.0001), 18) @@ -4274,18 +4307,18 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) 도입 버전: v20.1 -입력 값을 [Decimal(18, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. -[`toDecimal64`](#toDecimal64)와 같지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +입력 값을 [Decimal(18, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toDecimal64`](#toDecimal64)와 유사하지만 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. -지원하는 인수: +지원되는 인수: -* 타입이 (U)Int*인 값 또는 해당 값의 문자열 표현. -* 타입이 Float*인 값 또는 해당 값의 문자열 표현. +* (U)Int* 타입의 값 또는 해당 문자열 표현. +* Float* 타입의 값 또는 해당 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인수(`NULL`을 반환): -* Float* 값 `NaN` 및 `Inf`의 문자열 표현(대소문자를 구분하지 않습니다). -* 이진수 및 16진수 값의 문자열 표현. +* Float* 값 `NaN` 및 `Inf`의 값 또는 해당 문자열 표현(대소문자를 구분하지 않음). +* 2진수 및 16진수 값의 문자열 표현. * `Decimal64`의 범위를 초과하는 값: `(-1*10^(18 - S), 1*10^(18 - S))`. 함께 보기: @@ -4302,16 +4335,16 @@ toDecimal64OrNull(expr, S) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0 이상 18 이하의 스케일(scale) 매개변수로, 숫자의 소수 부분에서 사용할 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0에서 18 사이의 스케일(scale) 매개변수로, 소수 부분의 자릿수 개수를 지정합니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 Decimal(18, S) 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 Decimal(18, S) 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) 또는 [`NULL`](/sql-reference/syntax#null) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) @@ -4326,23 +4359,23 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) ## toDecimal64OrZero \{#toDecimal64OrZero\} -도입된 버전: v20.1 +도입 버전: v20.1 -입력 값을 [Decimal(18, S)](../data-types/decimal.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -[`toDecimal64`](#toDecimal64)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. +입력값을 [Decimal(18, S)](../data-types/decimal.md) 타입 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toDecimal64`](#toDecimal64)와 유사하지만 변환 오류 시 예외를 던지는 대신 `0`을 반환합니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 그 문자열 표현. -* Float* 타입의 값 또는 그 문자열 표현. +* (U)Int* 타입 값 또는 그 문자열 표현. +* Float* 타입 값 또는 그 문자열 표현. -지원되지 않는 인수(`0` 반환): +지원되지 않는 인수(다음 경우에는 `0` 반환): -* Float* 값 `NaN` 및 `Inf`의 값 또는 그 문자열 표현(대소문자 구분 없음). -* 이진 및 16진수 값의 문자열 표현. +* Float* 값 `NaN` 및 `Inf`(대소문자 구분 없음) 또는 그러한 값의 문자열 표현. +* 2진수 및 16진수 값의 문자열 표현. :::note -입력 값이 `Decimal64`의 경계 값 `(-1*10^(18 - S), 1*10^(18 - S))`를 벗어나면 함수는 `0`을 반환합니다. +입력값이 `Decimal64`의 범위 `(-1*10^(18 - S), 1*10^(18 - S))`를 초과하는 경우 함수는 `0`을 반환합니다. ::: 함께 보기: @@ -4351,7 +4384,7 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) * [`toDecimal64OrNull`](#toDecimal64OrNull). * [`toDecimal64OrDefault`](#toDecimal64OrDefault). -**구문** +**문법** ```sql toDecimal64OrZero(expr, S) @@ -4359,12 +4392,12 @@ toDecimal64OrZero(expr, S) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 0과 18 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 0부터 18 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분에서 허용되는 자릿수입니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공 시 Decimal(18, S) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) +성공하면 Decimal(18, S) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Decimal64(S)`](/sql-reference/data-types/decimal) **예시** @@ -4383,13 +4416,13 @@ SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2) ## toDecimalString \{#toDecimalString\} -도입된 버전: v23.3 +도입 버전: v23.3 -숫자 값을 지정된 소수 자릿수의 `String`으로 변환합니다. +숫자 값을 지정된 소수 자릿수를 가진 String으로 변환합니다. -이 FUNCTION은 입력값을 지정된 소수 자릿수로 반올림합니다. 입력값의 소수 자릿수가 요청된 자릿수보다 적으면, 결과가 지정된 소수 자릿수와 정확히 일치하도록 끝을 0으로 채웁니다. +이 FUNCTION은 입력 값을 지정된 소수 자릿수로 반올림합니다. 입력 값의 소수 자릿수가 요청된 자릿수보다 적은 경우, 결과를 0으로 채워 지정된 소수 자릿수와 정확히 같아지도록 합니다. -**Syntax** +**구문** ```sql toDecimalString(number, scale) @@ -4397,16 +4430,16 @@ toDecimalString(number, scale) **인수** -* `number` — 문자열로 변환할 숫자 값입니다. Int, UInt, Float, Decimal 모든 숫자형 타입을 허용합니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`Int16`](/sql-reference/data-types/int-uint) 또는 [`Int32`](/sql-reference/data-types/int-uint) 또는 [`Int64`](/sql-reference/data-types/int-uint) 또는 [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`UInt64`](/sql-reference/data-types/int-uint) 또는 [`Float32`](/sql-reference/data-types/float) 또는 [`Float64`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) -* `scale` — 소수 부분에 표시할 자릿수입니다. 필요하면 결과가 반올림됩니다. [`UInt8`](/sql-reference/data-types/int-uint) +* `number` — 문자열로 변환할 숫자 값입니다. Int, UInt, Float, Decimal 등 모든 숫자 타입을 사용할 수 있습니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`Int16`](/sql-reference/data-types/int-uint) 또는 [`Int32`](/sql-reference/data-types/int-uint) 또는 [`Int64`](/sql-reference/data-types/int-uint) 또는 [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`UInt64`](/sql-reference/data-types/int-uint) 또는 [`Float32`](/sql-reference/data-types/float) 또는 [`Float64`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) +* `scale` — 소수 부분에 표시할 자릿수입니다. 필요한 경우 결과가 반올림됩니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -정확히 지정된 개수의 소수 자릿수를 가진 숫자의 문자열(String) 표현을 반환합니다. [`String`](/sql-reference/data-types/string) +정확히 지정된 개수의 소수 자릿수를 갖는 숫자의 String 표현을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** -**숫자를 반올림하고 형식 지정하기** +**숫자 반올림 및 형식 지정** ```sql title=Query SELECT toDecimalString(2.1456, 2) @@ -4418,7 +4451,7 @@ SELECT toDecimalString(2.1456, 2) └────────────────────────────┘ ``` -**0으로 채우기** +**0으로 패딩** ```sql title=Query SELECT toDecimalString(5, 3) @@ -4430,7 +4463,7 @@ SELECT toDecimalString(5, 3) └───────────────────────┘ ``` -**서로 다른 숫자형** +**다양한 수치형 타입** ```sql title=Query SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, @@ -4446,11 +4479,11 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, ## toFixedString \{#toFixedString\} -도입 버전: v1.1 +도입: v1.1 -[`String`](/sql-reference/data-types/string) 인수를 [`FixedString(N)`](/sql-reference/data-types/fixedstring) 타입(길이가 N으로 고정된 문자열)으로 변환합니다. +[`String`](/sql-reference/data-types/string) 인자를 [`FixedString(N)`](/sql-reference/data-types/fixedstring) 타입(길이가 N으로 고정된 문자열)으로 변환합니다. -문자열의 바이트 수가 N보다 적으면 오른쪽에 널 바이트(null byte)로 패딩됩니다. +문자열의 바이트 수가 N보다 적으면 오른쪽을 널(null) 바이트로 채웁니다. 문자열의 바이트 수가 N보다 많으면 예외가 발생합니다. **구문** @@ -4459,12 +4492,12 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, toFixedString(s, N) ``` -**인수** +**인자** -* `s` — 변환할 문자열입니다. [`String`](/sql-reference/data-types/string) -* `N` — 결과로 생성될 `FixedString`의 길이입니다. [`const UInt*`](/sql-reference/data-types/int-uint) +* `s` — 변환할 문자열. [`String`](/sql-reference/data-types/string) +* `N` — 결과로 생성되는 `FixedString`의 길이. [`const UInt*`](/sql-reference/data-types/int-uint) -**반환 값** +**반환값** 길이가 N인 `FixedString`을 반환합니다. [`FixedString(N)`](/sql-reference/data-types/fixedstring) @@ -4487,21 +4520,21 @@ SELECT toFixedString('foo', 8) AS s; 도입 버전: v1.1 -입력 값을 [Float32](/sql-reference/data-types/float) 타입의 값으로 변환합니다. +입력 값을 [Float32](/sql-reference/data-types/float) 타입 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 타입의 값. +* (U)Int* 타입 값. * (U)Int8/16/32/128/256의 문자열 표현. -* `NaN` 및 `Inf`를 포함한 Float* 타입의 값. -* `NaN` 및 `Inf`를 포함한 Float*의 문자열 표현(대소문자 구분 없음). +* `NaN` 및 `Inf`를 포함한 Float* 타입 값. +* 대소문자를 구분하지 않는 `NaN` 및 `Inf`를 포함한 Float*의 문자열 표현. 지원되지 않는 인수: -* `SELECT toFloat32('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `SELECT toFloat32('0xc0fe');`와 같은 이진수 및 16진수 값을 나타내는 문자열 표현. -같이 보기: +관련 항목: * [`toFloat32OrZero`](#toFloat32OrZero). * [`toFloat32OrNull`](#toFloat32OrNull). @@ -4515,7 +4548,7 @@ toFloat32(expr) **인자** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -4546,8 +4579,8 @@ toFloat32('NaN'): nan 도입 버전: v21.11 -[`toFloat32`](#toFloat32)와 마찬가지로 이 함수는 입력값을 [Float32](../data-types/float.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. -`default` 값이 전달되지 않으면 오류가 발생했을 때 `0`이 반환됩니다. +[`toFloat32`](#toFloat32)와 마찬가지로, 이 함수는 입력값을 [Float32](../data-types/float.md) 타입 값으로 변환하지만 오류가 발생하면 기본값을 반환합니다. +`default` 값을 전달하지 않으면 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -4562,11 +4595,11 @@ toFloat32OrDefault(expr[, default]) **반환 값** -성공하면 `Float32` 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`Float32`](/sql-reference/data-types/float) +성공하면 `Float32` 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. [`Float32`](/sql-reference/data-types/float) -**예제** +**예시** -**성공적인 변환** +**변환 성공 예** ```sql title=Query SELECT toFloat32OrDefault('8', CAST('0', 'Float32')) @@ -4576,7 +4609,7 @@ SELECT toFloat32OrDefault('8', CAST('0', 'Float32')) 8 ``` -**변환 실패** +**형 변환 실패** ```sql title=Query SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) @@ -4591,28 +4624,28 @@ SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) 도입 버전: v1.1 -입력 값을 [Float32](../data-types/float.md) 타입 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -[`toFloat32`](#toFloat32)와 같지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +입력 값을 [Float32](../data-types/float.md) 타입 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. +[`toFloat32`](#toFloat32)와 유사하지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. -지원되는 인자: +지원되는 인수: * (U)Int* 타입 값. * (U)Int8/16/32/128/256의 문자열 표현. * `NaN` 및 `Inf`를 포함한 Float* 타입 값. -* `NaN` 및 `Inf`를 포함한 Float*의 문자열 표현(대소문자를 구분하지 않음). +* `NaN` 및 `Inf`를 포함한 Float*의 문자열 표현(대소문자 구분 없음). -지원되지 않는 인자(`NULL` 반환): +지원되지 않는 인수(`NULL` 반환): -* `SELECT toFloat32OrNull('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. -* 잘못된 문자열 형식. +* `SELECT toFloat32OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* 유효하지 않은 문자열 형식. -함께 보기: +관련 항목: * [`toFloat32`](#toFloat32). * [`toFloat32OrZero`](#toFloat32OrZero). * [`toFloat32OrDefault`](#toFloat32OrDefault). -**문법** +**구문** ```sql toFloat32OrNull(x) @@ -4620,11 +4653,11 @@ toFloat32OrNull(x) **인자** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -성공하면 32비트 Float 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Float32`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 32비트 부동소수점 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Float32`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -4651,10 +4684,10 @@ toFloat32OrNull('abc'): \N 도입 버전: v1.1 -입력 값을 [Float32](../data-types/float.md) 타입의 값으로 변환합니다. 이때 오류가 발생하면 `0`을 반환합니다. -[`toFloat32`](#toFloat32)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. +입력 값을 [Float32](../data-types/float.md) 타입으로 변환하지만, 오류가 발생하면 `0`을 반환합니다. +[`toFloat32`](#toFloat32)와 비슷하지만, 변환 오류 발생 시 예외를 던지는 대신 `0`을 반환합니다. -함께 보기: +관련 항목: * [`toFloat32`](#toFloat32). * [`toFloat32OrNull`](#toFloat32OrNull). @@ -4666,13 +4699,13 @@ toFloat32OrNull('abc'): \N toFloat32OrZero(x) ``` -**인자** +**인수** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공 시 32비트 부동소수점(Float) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Float32`](/sql-reference/data-types/float) +성공하면 32비트 부동 소수점(Float) 값을 반환하고, 실패하면 `0`을 반환합니다. [`Float32`](/sql-reference/data-types/float) **예시** @@ -4698,26 +4731,26 @@ toFloat32OrZero('abc'): 0 도입 버전: v1.1 입력 값을 [`Float64`](../data-types/float.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외가 발생합니다. +오류가 발생하면 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 타입의 값 -* (U)Int8/16/32/128/256의 문자열 표현 -* `NaN` 및 `Inf`를 포함한 Float* 타입의 값 -* `NaN` 및 `Inf`를 포함한 Float* 타입의 문자열 표현(대소문자 구분 없음) +* (U)Int* 타입의 값. +* (U)Int8/16/32/128/256의 문자열 표현. +* `NaN` 및 `Inf`를 포함한 Float* 타입의 값. +* `NaN` 및 `Inf`를 포함한 Float* 타입의 문자열 표현(대소문자 구분 없음). 지원되지 않는 인수: -* `SELECT toFloat64('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현 +* `SELECT toFloat64('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. -추가 참고: +관련 항목: * [`toFloat64OrZero`](#toFloat64OrZero). * [`toFloat64OrNull`](#toFloat64OrNull). * [`toFloat64OrDefault`](#toFloat64OrDefault). -**Syntax** +**구문** ```sql toFloat64(expr) @@ -4725,11 +4758,11 @@ toFloat64(expr) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** -64비트 부동소수점 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) +64비트 부동 소수점 값을 반환합니다. [`Float64`](/sql-reference/data-types/float) **예제** @@ -4754,29 +4787,29 @@ toFloat64('NaN'): nan ## toFloat64OrDefault \{#toFloat64OrDefault\} -도입 버전: v21.11 +도입된 버전: v21.11 -[`toFloat64`](#toFloat64)와 마찬가지로, 이 FUNCTION은 입력값을 [Float64](../data-types/float.md) 형식의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다. -`default` 값을 전달하지 않으면 오류가 발생했을 때 `0`이 반환됩니다. +[`toFloat64`](#toFloat64)와 같이, 이 함수는 입력값을 [Float64](../data-types/float.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +`default` 값을 전달하지 않으면, 오류 발생 시 `0`이 반환됩니다. -**문법** +**구문** ```sql toFloat64OrDefault(expr[, default]) ``` -**인수** +**인자** -* `expr` — 숫자 또는 숫자 형태의 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Float64`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본 값입니다. [`Float64`](/sql-reference/data-types/float) **반환 값** -변환에 성공하면 Float64 타입의 값을 반환하고, 그렇지 않으면 전달된 경우 기본값을, 전달되지 않은 경우 0을 반환합니다. [`Float64`](/sql-reference/data-types/float) +성공하면 Float64 타입의 값을 반환하며, 실패하면 전달된 기본 값이 있으면 그 값을, 없으면 0을 반환합니다. [`Float64`](/sql-reference/data-types/float) **예시** -**변환 성공 사례** +**성공적인 변환** ```sql title=Query SELECT toFloat64OrDefault('8', CAST('0', 'Float64')) @@ -4786,7 +4819,7 @@ SELECT toFloat64OrDefault('8', CAST('0', 'Float64')) 8 ``` -**변환 실패** +**형 변환 실패** ```sql title=Query SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) @@ -4799,21 +4832,21 @@ SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) ## toFloat64OrNull \{#toFloat64OrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 -입력값을 [Float64](../data-types/float.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -[`toFloat64`](#toFloat64)와 유사하지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +입력 값을 [Float64](../data-types/float.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toFloat64`](#toFloat64)와 동일하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. 지원되는 인수: * (U)Int* 타입의 값. * (U)Int8/16/32/128/256의 문자열 표현. * `NaN` 및 `Inf`를 포함한 Float* 타입의 값. -* `NaN` 및 `Inf`를 포함한 Float* 타입의 문자열 표현(대소문자를 구분하지 않음). +* `NaN` 및 `Inf`를 포함한 Float* 타입의 문자열 표현(대소문자 구분 없음). 지원되지 않는 인수(`NULL` 반환): -* 이진 및 16진수 값의 문자열 표현(예: `SELECT toFloat64OrNull('0xc0fe');`). +* 이진수 및 16진수 값의 문자열 표현(예: `SELECT toFloat64OrNull('0xc0fe');`). * 잘못된 문자열 형식. 함께 보기: @@ -4830,11 +4863,11 @@ toFloat64OrNull(x) **인수** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자의 문자열 표현. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 64비트 부동 소수점 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Float64`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) +변환에 성공하면 64비트 부동 소수점 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Float64`](/sql-reference/data-types/float) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -4861,8 +4894,8 @@ toFloat64OrNull('abc'): \N 도입 버전: v1.1 -입력 값을 [Float64](../data-types/float.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -[`toFloat64`](#toFloat64)와 같지만, 변환 오류 시 예외를 발생시키는 대신 `0`을 반환합니다. +입력 값을 [Float64](../data-types/float.md) 타입으로 변환하지만, 오류가 발생하면 `0`을 반환합니다. +[`toFloat64`](#toFloat64)와 유사하지만, 변환 오류 시 예외를 던지는 대신 `0`을 반환합니다. 함께 보기: @@ -4876,17 +4909,17 @@ toFloat64OrNull('abc'): \N toFloat64OrZero(x) ``` -**인수** +**인자** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열 값. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 64비트 부동 소수점 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Float64`](/sql-reference/data-types/float) +성공하면 64비트 부동 소수점(Float) 값을 반환하고, 그렇지 않으면 `0`을 반환합니다. [`Float64`](/sql-reference/data-types/float) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -4907,9 +4940,9 @@ toFloat64OrZero('abc'): 0 도입 버전: v1.1 -입력 값을 [Int128](/sql-reference/data-types/int-uint) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 던집니다. -이 함수는 0을 향해 반올림하는 방식을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다. +입력 값을 [Int128](/sql-reference/data-types/int-uint) 타입 값으로 변환합니다. +오류가 발생하면 예외를 발생시킵니다. +이 함수는 0을 향한 반올림을 사용하므로 숫자의 소수 자릿수를 잘라냅니다. 지원되는 인수: @@ -4918,11 +4951,11 @@ toFloat64OrZero('abc'): 0 지원되지 않는 인수: -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toInt128('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. +* `SELECT toInt128('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력 값을 Int128 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력 값을 Int128의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -4938,9 +4971,9 @@ toFloat64OrZero('abc'): 0 toInt128(expr) ``` -**인자** +**인수** -* `expr` — 숫자 값 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -4971,10 +5004,10 @@ toInt128('-128'): -128 도입 버전: v21.11 -[`toInt128`](#toInt128)과 같이, 이 함수는 입력값을 [Int128](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. -`default` 값이 전달되지 않으면 오류가 발생한 경우 `0`이 반환됩니다. +[`toInt128`](#toInt128)과 마찬가지로, 이 FUNCTION은 입력값을 [Int128](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +`default` 값이 지정되지 않으면 오류가 발생했을 때 `0`이 반환됩니다. -**문법** +**구문** ```sql toInt128OrDefault(expr[, default]) @@ -4982,14 +5015,14 @@ toInt128OrDefault(expr[, default]) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Int128`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 Int128 타입의 값을 반환하며, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`Int128`](/sql-reference/data-types/int-uint) +성공한 경우 Int128 타입의 값을 반환합니다. 실패한 경우 기본값이 전달되었다면 그 값을, 전달되지 않았다면 0을 반환합니다. [`Int128`](/sql-reference/data-types/int-uint) -**예제** +**예시** **성공적인 변환** @@ -5016,19 +5049,19 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) 도입 버전: v20.8 -[`toInt128`](#toInt128)과(와) 마찬가지로 이 FUNCTION은 입력값을 [Int128](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toInt128`](#toInt128)과 마찬가지로 이 함수는 입력 값을 [Int128](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int*의 문자열 표현 +* (U)Int* 값의 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인수( `NULL` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현 -* `SELECT toInt128OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현 +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. +* `SELECT toInt128OrNull('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력값을 [Int128](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. +입력 값을 [Int128](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -5038,7 +5071,7 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) * [`toInt128OrZero`](#toInt128OrZero). * [`toInt128OrDefault`](#toInt128OrDefault). -**Syntax** +**구문** ```sql toInt128OrNull(x) @@ -5046,7 +5079,7 @@ toInt128OrNull(x) **인수** -* `x` — 숫자를 String 형식으로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 문자열(String)로 표현한 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** @@ -5075,8 +5108,8 @@ toInt128OrNull('abc'): \N 도입된 버전: v20.8 -입력 값을 [Int128](/sql-reference/data-types/int-uint) 데이터 타입으로 변환하지만 오류가 발생하는 경우 `0`을 반환합니다. -[`toInt128`](#toInt128)와 유사하지만, 예외를 던지는 대신 `0`을 반환합니다. +입력 값을 [Int128](/sql-reference/data-types/int-uint) 타입으로 변환하지만, 오류가 발생하면 `0`을 반환합니다. +[`toInt128`](#toInt128)과 유사하지만 예외를 발생시키는 대신 `0`을 반환합니다. 함께 보기: @@ -5092,11 +5125,11 @@ toInt128OrZero(x) **인수** -* `x` — 변환할 입력값입니다. 허용 타입: [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring), [`Float*`](/sql-reference/data-types/float), [`Decimal`](/sql-reference/data-types/decimal), [`(U)Int*`](/sql-reference/data-types/int-uint), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) **반환 값** -변환된 입력값을 반환하며, 변환에 실패하면 `0`을 반환합니다. 반환 타입: [`Int128`](/sql-reference/data-types/int-uint) +변환된 입력값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`Int128`](/sql-reference/data-types/int-uint) **예시** @@ -5110,7 +5143,7 @@ SELECT toInt128OrZero('123') 123 ``` -**변환에 실패하면 0을 반환합니다** +**변환 실패 시 0 반환** ```sql title=Query SELECT toInt128OrZero('abc') @@ -5123,15 +5156,15 @@ SELECT toInt128OrZero('abc') ## toInt16 \{#toInt16\} -도입된 버전: v1.1 +도입 버전: v1.1 -입력값을 [`Int16`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +입력 값을 [`Int16`](../data-types/int-uint.md) 타입의 값으로 변환합니다. +오류가 발생하는 경우 예외를 발생시킵니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 해당 문자열 표현. -* Float* 타입의 값. +* 타입이 (U)Int*인 값 또는 해당 문자열 표현. +* 타입이 Float*인 값. 지원되지 않는 인수: @@ -5139,13 +5172,13 @@ SELECT toInt128OrZero('abc') * `SELECT toInt16('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력값을 [Int16](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [Int16](../data-types/int-uint.md)의 범위 안에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toInt16(32768) == -32768;`. ::: :::note -이 함수는 [0으로의 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하며, 이는 숫자의 소수 부분을 잘라낸다는 의미입니다. +이 함수는 [0을 향한 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하며, 이는 숫자의 소수 자릿수를 잘라낸다는 의미입니다. ::: 함께 보기: @@ -5160,17 +5193,17 @@ SELECT toInt128OrZero('abc') toInt16(expr) ``` -**인자** +**인수** * `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -**반환 값** +**반환값** 16비트 정수 값을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -5193,8 +5226,8 @@ toInt16('-16'): -16 도입 버전: v21.11 -[`toInt16`](#toInt16)과 마찬가지로 이 함수는 입력값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생할 경우 기본값을 반환합니다. -`default` 값이 지정되지 않은 경우, 오류가 발생하면 `0`이 반환됩니다. +[`toInt16`](#toInt16)과(와) 마찬가지로, 이 FUNCTION은 입력값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +`default` 값이 지정되지 않으면 오류 발생 시 `0`이 반환됩니다. **구문** @@ -5202,18 +5235,18 @@ toInt16('-16'): -16 toInt16OrDefault(expr[, default]) ``` -**인자** +**인수** * `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `default` — 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다. [`Int16`](/sql-reference/data-types/int-uint) +* `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Int16`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 Int16 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) +성공하면 `Int16` 타입의 값을 반환하고, 실패하면 `default` 값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**변환 성공 예** +**성공적인 변환** ```sql title=Query SELECT toInt16OrDefault('-16', CAST('-1', 'Int16')) @@ -5238,23 +5271,23 @@ SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) 도입된 버전: v1.1 -[`toInt16`](#toInt16)과 마찬가지로 이 FUNCTION은 입력 값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toInt16`](#toInt16)과(와) 마찬가지로, 이 FUNCTION은 입력값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int*의 문자열 표현 +* (U)Int*의 문자열 표현. 지원되지 않는 인수(`NULL` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현 -* 이진수 및 16진수 값의 문자열 표현(예: `SELECT toInt16OrNull('0xc0fe');`) +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. +* `SELECT toInt16OrNull('0xc0fe');`와 같은 이진 및 16진 값의 문자열 표현. :::note -입력 값을 [Int16](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. +입력값을 [Int16](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생할 수 있습니다. 이는 오류로 간주되지 않습니다. ::: -함께 보기: +관련 항목: * [`toInt16`](#toInt16). * [`toInt16OrZero`](#toInt16OrZero). @@ -5268,11 +5301,11 @@ toInt16OrNull(x) **인수** -* `x` — 숫자를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 String 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`Int16` 타입의 값을 반환하며, 변환에 실패하면 `NULL`을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +`Int16` 타입의 값을 반환하며, 변환에 실패한 경우 `NULL`을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -5295,25 +5328,25 @@ toInt16OrNull('abc'): \N ## toInt16OrZero \{#toInt16OrZero\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`toInt16`](#toInt16)와 마찬가지로 이 FUNCTION은 입력 값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toInt16`](#toInt16)과(와) 마찬가지로 이 함수는 입력값을 [Int16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. 지원되는 인수: -* (U)Int*의 문자열 표현. +* (U)Int* 값의 문자열 표현. 지원되지 않는 인수(`0` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 2진수 및 16진수 값의 문자열 표현(예: `SELECT toInt16OrZero('0xc0fe');`). +* 예: `SELECT toInt16OrZero('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력 값을 [Int16](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. -이 동작은 오류로 간주되지 않습니다. +입력값이 [Int16](../data-types/int-uint.md) 범위로 표현될 수 없는 경우, 결과에서 오버플로 또는 언더플로가 발생합니다. +이는 오류로 간주되지 않습니다. ::: -함께 보기: +관련 항목: * [`toInt16`](#toInt16). * [`toInt16OrNull`](#toInt16OrNull). @@ -5325,13 +5358,13 @@ toInt16OrNull('abc'): \N toInt16OrZero(x) ``` -**인수** +**인자** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 String으로 표현한 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** -Int16 타입의 값을 반환하며, 변환이 실패한 경우 `0`을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) +Int16 타입의 값을 반환하며, 변환에 실패한 경우 `0`을 반환합니다. [`Int16`](/sql-reference/data-types/int-uint) **예시** @@ -5354,24 +5387,24 @@ toInt16OrZero('abc'): 0 ## toInt256 \{#toInt256\} -도입 버전: v1.1 +도입된 버전: v1.1 -입력 값을 [Int256](/sql-reference/data-types/int-uint) 형식의 값으로 변환합니다. +입력 값을 [Int256](/sql-reference/data-types/int-uint) 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. -이 함수는 0을 향한 반올림을 사용하므로, 숫자의 소수 자릿수를 절사합니다. +이 함수는 0을 향한 반올림(절단)을 사용하여, 숫자의 소수 자릿수를 잘라냅니다. 지원되는 인수: -* 형식이 (U)Int*인 값 또는 해당 문자열 표현입니다. -* 형식이 Float*인 값입니다. +* (U)Int* 타입의 값 또는 해당 문자열 표현. +* Float* 타입의 값. 지원되지 않는 인수: -* `NaN` 및 `Inf`를 포함하여, Float* 값의 문자열 표현입니다. -* `SELECT toInt256('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현입니다. +* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. +* `SELECT toInt256('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력 값을 Int256의 범위 내에서 표현할 수 없는 경우, 결과가 오버플로 또는 언더플로를 일으킵니다. +입력 값을 Int256 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -5389,9 +5422,9 @@ toInt256(expr) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -**반환되는 값** +**반환 값** 256비트 정수 값을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) @@ -5420,8 +5453,8 @@ toInt256('-256'): -256 도입 버전: v21.11 -[`toInt256`](#toInt256)과 유사하게 이 FUNCTION은 입력 값을 [Int256](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. -`default` 값이 전달되지 않으면 오류 발생 시 `0`이 반환됩니다. +[`toInt256`](#toInt256)와 마찬가지로 이 함수는 입력값을 [Int256](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 기본값을 반환합니다. +`default` 값을 전달하지 않으면 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -5436,11 +5469,11 @@ toInt256OrDefault(expr[, default]) **반환 값** -성공 시 Int256 타입의 값을 반환하고, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) +변환에 성공하면 Int256 타입의 값을 반환하고, 실패하면 전달된 경우 기본값을, 기본값이 없으면 0을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) **예시** -**변환 성공 예시** +**성공적인 변환** ```sql title=Query SELECT toInt256OrDefault('-256', CAST('-1', 'Int256')) @@ -5463,31 +5496,31 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) ## toInt256OrNull \{#toInt256OrNull\} -도입 버전: v20.8 +도입된 버전: v20.8 -[`toInt256`](#toInt256)와 같이, 이 FUNCTION은 입력값을 [Int256](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. +[`toInt256`](#toInt256)과(와) 마찬가지로, 이 함수는 입력 값을 [Int256](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -지원되는 인수: +지원되는 인자: -* (U)Int*의 문자열 표현. +* (U)Int* 값의 문자열 표현. -지원되지 않는 인수(`NULL`을 반환): +지원되지 않는 인자(`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 2진수 및 16진수 값의 문자열 표현. 예: `SELECT toInt256OrNull('0xc0fe');`. +* `SELECT toInt256OrNull('0xc0fe');`와 같은 이진 및 16진수 값의 문자열 표현. :::note -입력값을 [Int256](../data-types/int-uint.md)의 범위 안에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력 값을 [Int256](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toInt256`](#toInt256). * [`toInt256OrZero`](#toInt256OrZero). * [`toInt256OrDefault`](#toInt256OrDefault). -**구문** +**Syntax** ```sql toInt256OrNull(x) @@ -5495,11 +5528,11 @@ toInt256OrNull(x) **인수** -* `x` — 숫자를 나타내는 String 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환이 성공하면 `Int256` 타입의 값을 반환하고, 실패하면 `NULL`을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 Int256 타입의 값을, 변환에 실패하면 `NULL`을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -5524,10 +5557,10 @@ toInt256OrNull('abc'): \N 도입 버전: v20.8 -입력값을 [Int256](/sql-reference/data-types/int-uint) 타입으로 변환하지만, 오류가 발생할 경우 `0`을 반환합니다. -[`toInt256`](#toInt256)과 동일하지만, 예외를 발생시키는 대신 `0`을 반환합니다. +입력 값을 [Int256](/sql-reference/data-types/int-uint) 타입으로 변환하되, 오류가 발생하면 `0`을 반환합니다. +[`toInt256`](#toInt256)과 동일하지만 예외를 발생시키는 대신 `0`을 반환합니다. -관련 항목: +함께 보기: * [`toInt256`](#toInt256). * [`toInt256OrNull`](#toInt256OrNull). @@ -5539,13 +5572,13 @@ toInt256OrNull('abc'): \N toInt256OrZero(x) ``` -**인수** +**인자** -* `x` — 변환할 입력값. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) **반환값** -변환된 입력값을 반환하고, 변환에 실패하면 `0`을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) +변환된 입력값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`Int256`](/sql-reference/data-types/int-uint) **예시** @@ -5574,27 +5607,27 @@ SELECT toInt256OrZero('abc') 도입 버전: v1.1 -입력 값을 [`Int32`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +입력값을 [`Int32`](../data-types/int-uint.md) 타입의 값으로 변환합니다. +오류가 발생하면 예외를 던집니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 그 문자열 표현. +* (U)Int* 타입의 값 또는 문자열 표현. * Float* 타입의 값. 지원되지 않는 인수: -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. +* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. * `SELECT toInt32('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력 값을 [Int32](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과가 오버플로 또는 언더플로됩니다. +입력값을 [Int32](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과가 오버플로나 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toInt32(2147483648) == -2147483648;` ::: :::note -이 함수는 [0을 향한 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로 숫자의 소수 자릿수를 잘라냅니다. +이 함수는 [0을 향한 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하며, 이는 숫자의 소수 자릿수를 잘라낸다는 의미입니다. ::: 함께 보기: @@ -5613,13 +5646,13 @@ toInt32(expr) * `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -**반환값** +**반환 값** 32비트 정수 값을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -5642,8 +5675,8 @@ toInt32('-32'): -32 도입 버전: v21.11 -[`toInt32`](#toInt32)와 마찬가지로, 이 함수는 입력값을 [Int32](../data-types/int-uint.md) 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. -`default` 값이 지정되지 않은 경우, 오류 발생 시 `0`이 반환됩니다. +[`toInt32`](#toInt32)와 마찬가지로, 이 함수는 입력값을 [Int32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +`default` 값이 지정되지 않으면, 오류가 발생할 때 `0`이 반환됩니다. **구문** @@ -5651,14 +5684,14 @@ toInt32('-32'): -32 toInt32OrDefault(expr[, default]) ``` -**인자** +**인수** -* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Int32`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 Int32 타입의 값을 반환하며, 실패한 경우 인자로 기본값이 전달되었으면 해당 기본값을, 전달되지 않았으면 0을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) +성공한 경우 Int32 타입의 값을 반환하며, 그렇지 않은 경우 `default` 값이 전달되었다면 해당 값을, 전달되지 않았다면 0을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) **예시** @@ -5685,25 +5718,25 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) ## toInt32OrNull \{#toInt32OrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`toInt32`](#toInt32)와 마찬가지로 이 FUNCTION은 입력값을 [Int32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생할 경우 `NULL`을 반환합니다. +[`toInt32`](#toInt32)와 같이 이 함수는 입력값을 [Int32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: * (U)Int*의 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인수 (`NULL`을 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 예: `SELECT toInt32OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* 예를 들어 `SELECT toInt32OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력값을 [Int32](../data-types/int-uint.md) 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. +입력값을 [Int32](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toInt32`](#toInt32). * [`toInt32OrZero`](#toInt32OrZero). @@ -5717,11 +5750,11 @@ toInt32OrNull(x) **인자** -* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 String 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환이 성공하면 Int32 타입의 값을, 실패하면 `NULL`을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +Int32 타입의 값을 반환하며, 변환에 실패한 경우에는 `NULL`을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -5746,7 +5779,7 @@ toInt32OrNull('abc'): \N 도입 버전: v1.1 -[`toInt32`](#toInt32)와 마찬가지로 이 함수는 입력값을 [Int32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하면 `0`을 반환합니다. +[`toInt32`](#toInt32)와 마찬가지로, 이 함수는 입력값을 [Int32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `0`을 반환합니다. 지원되는 인수: @@ -5755,20 +5788,20 @@ toInt32OrNull('abc'): \N 지원되지 않는 인수(`0` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toInt32OrZero('0xc0fe');`. +* `SELECT toInt32OrZero('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력값을 [Int32](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. +입력값을 [Int32](../data-types/int-uint.md)의 범위 안에서 표현할 수 없는 경우, 결과에서 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toInt32`](#toInt32). * [`toInt32OrNull`](#toInt32OrNull). * [`toInt32OrDefault`](#toInt32OrDefault). -**구문** +**Syntax** ```sql toInt32OrZero(x) @@ -5776,11 +5809,11 @@ toInt32OrZero(x) **인자** -* `x` — 숫자를 나타내는 String 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -Int32 타입의 값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) +변환에 성공하면 Int32 타입의 값을 반환하고, 실패하면 `0`을 반환합니다. [`Int32`](/sql-reference/data-types/int-uint) **예시** @@ -5805,27 +5838,27 @@ toInt32OrZero('abc'): 0 도입 버전: v1.1 -입력 값을 [`Int64`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +입력 값을 [`Int64`](../data-types/int-uint.md) 타입 값으로 변환합니다. +오류가 발생하면 예외를 던집니다. -지원되는 인수: +지원하는 인자: -* (U)Int* 타입의 값 또는 해당 문자열 표현. +* (U)Int* 타입의 값 또는 해당 값의 문자열 표현. * Float* 타입의 값. -지원되지 않는 인수: +지원하지 않는 인자: -* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현 +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. * `SELECT toInt64('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력 값을 [Int64](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [Int64](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. -예를 들어: `SELECT toInt64(9223372036854775808) == -9223372036854775808;` +예: `SELECT toInt64(9223372036854775808) == -9223372036854775808;` ::: :::note -이 함수는 [0 방향으로 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다. +이 함수는 [0 방향으로 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하며, 이는 숫자의 소수 자릿수를 잘라낸다는 의미입니다. ::: 함께 보기: @@ -5840,9 +5873,9 @@ toInt32OrZero('abc'): 0 toInt64(expr) ``` -**인자** +**인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. 지원되는 입력: 타입이 (U)Int*인 값 및 해당 값의 문자열 표현, 타입이 Float*인 값. 지원되지 않는 입력: NaN 및 Inf를 포함한 Float* 값의 문자열 표현, 2진수 및 16진수 값의 문자열 표현. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. 지원: (U)Int* 형식의 값 및 해당 문자열 표현, Float* 형식의 값. 지원되지 않음: NaN 및 Inf를 포함한 Float* 값의 문자열 표현, 2진수 및 16진수 값의 문자열 표현. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -5873,8 +5906,8 @@ toInt64('-64'): -64 도입 버전: v21.11 -[`toInt64`](#toInt64)와 같이, 이 FUNCTION은 입력 값을 [Int64](../data-types/int-uint.md) 유형의 값으로 변환하지만 오류가 발생하는 경우 기본값을 반환합니다. -`default` 값이 지정되지 않으면 오류가 발생할 때 `0`이 반환됩니다. +[`toInt64`](#toInt64)와 마찬가지로, 이 FUNCTION은 입력값을 [Int64](../data-types/int-uint.md) 타입 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +`default` 값이 지정되지 않으면 오류 발생 시 `0`이 반환됩니다. **구문** @@ -5882,18 +5915,18 @@ toInt64('-64'): -64 toInt64OrDefault(expr[, default]) ``` -**인자** +**인수(Arguments)** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 결과로 내는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Int64`](/sql-reference/data-types/int-uint) -**반환 값** +**반환 값(Returned value)** -성공하면 `Int64` 타입의 값을 반환합니다. 실패하면 기본값이 전달된 경우 해당 값을, 그렇지 않으면 0을 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) +성공하면 Int64 타입의 값을 반환하고, 그렇지 않은 경우 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) -**예시** +**예시(Examples)** -**변환 성공** +**성공적인 변환(Successful conversion)** ```sql title=Query SELECT toInt64OrDefault('-64', CAST('-1', 'Int64')) @@ -5916,9 +5949,9 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) ## toInt64OrNull \{#toInt64OrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`toInt64`](#toInt64)와 마찬가지로 이 함수는 입력값을 [Int64](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toInt64`](#toInt64)와 마찬가지로 이 FUNCTION은 입력 값을 [Int64](../data-types/int-uint.md) 타입의 값으로 변환하되, 오류가 발생한 경우 `NULL`을 반환합니다. 지원되는 인수: @@ -5930,8 +5963,8 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) * `SELECT toInt64OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력값을 [Int64](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. -이는 오류로 처리되지 않습니다. +입력 값을 [Int64](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. +이는 오류로 간주되지 않습니다. ::: 함께 보기: @@ -5948,7 +5981,7 @@ toInt64OrNull(x) **인수** -* `x` — 숫자를 표현하는 String 형식입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) **반환 값** @@ -5975,10 +6008,10 @@ toInt64OrNull('abc'): \N ## toInt64OrZero \{#toInt64OrZero\} -도입: v1.1 +도입 버전: v1.1 -입력 값을 [Int64](/sql-reference/data-types/int-uint) 타입으로 변환합니다. 이때 오류가 발생하면 `0`을 반환합니다. -[`toInt64`](#toInt64)와 유사하지만, 예외를 발생시키는 대신 `0`을 반환합니다. +입력 값을 [Int64](/sql-reference/data-types/int-uint) 타입으로 변환하지만, 오류가 발생하면 `0`을 반환합니다. +[`toInt64`](#toInt64)와 동일하지만, 예외를 발생시키는 대신 `0`을 반환합니다. 함께 보기: @@ -5992,13 +6025,13 @@ toInt64OrNull('abc'): \N toInt64OrZero(x) ``` -**인수** +**인자** * `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`Decimal`](/sql-reference/data-types/decimal) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) **반환 값** -변환된 입력값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) +변환된 입력값을 반환하고, 변환에 실패하면 `0`을 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) **예시** @@ -6012,7 +6045,7 @@ SELECT toInt64OrZero('123') 123 ``` -**실패한 변환은 0을 반환합니다** +**변환 실패 시 0을 반환합니다** ```sql title=Query SELECT toInt64OrZero('abc') @@ -6027,30 +6060,30 @@ SELECT toInt64OrZero('abc') 도입 버전: v1.1 -입력 값을 [`Int8`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +입력값을 [`Int8`](../data-types/int-uint.md) 타입의 값으로 변환합니다. +오류가 발생하면 예외를 던집니다. 지원되는 인수: -* 타입이 (U)Int*인 값 또는 해당 문자열 표현. -* 타입이 Float*인 값. +* (U)Int* 타입 값 또는 해당 값의 문자열 표현. +* Float* 타입 값. 지원되지 않는 인수: * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toInt8('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toInt8('0xc0fe');`. :::note -입력 값을 [Int8](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. +입력값을 [Int8](../data-types/int-uint.md) 범위 내에서 표현할 수 없는 경우, 결과에 오버플로(overflow) 또는 언더플로(underflow)가 발생합니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toInt8(128) == -128;`. ::: :::note -이 함수는 [0 방향 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다. +이 함수는 [0 쪽으로의 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다. ::: -함께 참고: +함께 보기: * [`toInt8OrZero`](#toInt8OrZero). * [`toInt8OrNull`](#toInt8OrNull). @@ -6064,7 +6097,7 @@ toInt8(expr) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자의 문자열 표현을 결과로 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -6093,10 +6126,10 @@ toInt8('-8'): -8 ## toInt8OrDefault \{#toInt8OrDefault\} -도입 버전: v21.11 +도입: v21.11 -[`toInt8`](#toInt8)와 마찬가지로, 이 함수는 입력값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. -`default` 값을 인수로 전달하지 않으면, 오류가 발생했을 때 `0`이 반환됩니다. +[`toInt8`](#toInt8)과 마찬가지로, 이 함수는 입력값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다. +`default` 값을 전달하지 않으면 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -6106,16 +6139,16 @@ toInt8OrDefault(expr[, default]) **인자** -* `expr` — 숫자 또는 숫자 형식의 문자열을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`Int8`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 Int8 타입의 값을 반환하고, 실패한 경우에는 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) +성공한 경우 Int8 타입의 값을 반환하고, 그렇지 않은 경우 전달된 기본값을 반환하며, 기본값이 없으면 0을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) **예시** -**변환 성공 예시** +**성공적인 변환** ```sql title=Query SELECT toInt8OrDefault('-8', CAST('-1', 'Int8')) @@ -6125,7 +6158,7 @@ SELECT toInt8OrDefault('-8', CAST('-1', 'Int8')) -8 ``` -**변환 실패** +**형 변환 실패** ```sql title=Query SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) @@ -6140,7 +6173,7 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) 도입 버전: v1.1 -[`toInt8`](#toInt8)와 마찬가지로, 이 FUNCTION은 입력값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. +[`toInt8`](#toInt8)와 마찬가지로 이 함수는 입력 값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. 지원되는 인수: @@ -6149,10 +6182,10 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) 지원되지 않는 인수(`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toInt8OrNull('0xc0fe');`. +* 이진 및 16진 값의 문자열 표현(예: `SELECT toInt8OrNull('0xc0fe');`). :::note -입력값을 [Int8](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [Int8](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -6170,11 +6203,11 @@ toInt8OrNull(x) **인자** -* `x` — 숫자를 나타내는 String 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환에 성공하면 `Int8` 타입의 값을, 실패하면 `NULL`을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +변환이 성공하면 `Int8` 타입의 값을, 실패하면 `NULL`을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -6197,9 +6230,9 @@ toInt8OrNull('abc'): \N ## toInt8OrZero \{#toInt8OrZero\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`toInt8`](#toInt8)와 마찬가지로, 이 함수는 입력값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toInt8`](#toInt8)과(와) 마찬가지로, 이 함수는 입력값을 [Int8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. 지원되는 인수: @@ -6215,7 +6248,7 @@ toInt8OrNull('abc'): \N 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toInt8`](#toInt8). * [`toInt8OrNull`](#toInt8OrNull). @@ -6229,11 +6262,11 @@ toInt8OrZero(x) **인수** -* `x` — 숫자를 나타내는 `String` 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`Int8` 타입의 값을 반환하며, 변환에 실패한 경우 `0`을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) +성공 시 Int8 타입의 값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`Int8`](/sql-reference/data-types/int-uint) **예시** @@ -6258,13 +6291,13 @@ toInt8OrZero('abc'): 0 도입 버전: v25.4 -숫자 값과 단위 문자열로부터 Interval 값을 생성합니다. +숫자 값과 단위 문자열을 사용하여 Interval 값을 생성합니다. -이 함수는 단위를 문자열 인수로 지정하여 서로 다른 유형의 기간(초, 분, 시간, 일, 주, 월, 분기, 년)을 -하나의 함수로 일원화하여 생성할 수 있도록 합니다. 단위 문자열은 대소문자를 구분하지 않습니다. +이 함수는 단위를 문자열 인자로 지정하여, 서로 다른 타입의 Interval(초, 분, 시, 일, 주, 월, 분기, 연)을 +하나의 함수로 생성할 수 있는 통합된 방식을 제공합니다. 단위 문자열은 대소문자를 구분하지 않습니다. -이는 `toIntervalSecond`, `toIntervalMinute`, `toIntervalDay` 등의 타입별 함수를 호출하는 것과 동일하지만, -단위를 문자열 매개변수로 동적으로 지정할 수 있습니다. +이는 `toIntervalSecond`, `toIntervalMinute`, `toIntervalDay` 등과 같은 타입별 함수를 호출하는 것과 동일하지만, +단위를 문자열 매개변수로 동적으로 지정할 수 있도록 합니다. **구문** @@ -6274,16 +6307,16 @@ toInterval(value, unit) **인수** -* `value` — 단위의 개수를 나타내는 숫자 값입니다. 임의의 숫자형 데이터일 수 있습니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`Int16`](/sql-reference/data-types/int-uint) 또는 [`Int32`](/sql-reference/data-types/int-uint) 또는 [`Int64`](/sql-reference/data-types/int-uint) 또는 [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`UInt64`](/sql-reference/data-types/int-uint) 또는 [`Float32`](/sql-reference/data-types/float) 또는 [`Float64`](/sql-reference/data-types/float) -* `unit` — 시간 단위입니다. 상수 문자열이어야 합니다. 유효한 값: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/sql-reference/data-types/string) +* `value` — 단위의 개수를 나타내는 숫자 값입니다. 모든 숫자형 데이터 타입을 사용할 수 있습니다. [`Int8`](/sql-reference/data-types/int-uint) 또는 [`Int16`](/sql-reference/data-types/int-uint) 또는 [`Int32`](/sql-reference/data-types/int-uint) 또는 [`Int64`](/sql-reference/data-types/int-uint) 또는 [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`UInt64`](/sql-reference/data-types/int-uint) 또는 [`Float32`](/sql-reference/data-types/float) 또는 [`Float64`](/sql-reference/data-types/float) +* `unit` — 시간 단위입니다. 반드시 상수 문자열이어야 합니다. 유효한 값: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/sql-reference/data-types/string) **반환 값** -지정된 유형의 Interval 값을 반환합니다. 결과 유형은 단위에 따라 IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, IntervalYear 중 하나가 됩니다. [`Interval`](/sql-reference/data-types/int-uint) +지정된 타입의 Interval 값을 반환합니다. 결과 타입은 단위에 따라 달라지며 IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, IntervalYear 중 하나입니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** -**서로 다른 단위를 사용하여 Interval 생성** +**서로 다른 단위를 사용해 Interval 생성하기** ```sql title=Query SELECT @@ -6313,7 +6346,7 @@ SELECT └──────────────────────┴─────────────────────┴─────────────────────┘ ``` -**동적 인터벌 생성** +**동적 간격 생성** ```sql title=Query SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates @@ -6333,9 +6366,9 @@ FROM numbers(5) ## toIntervalDay \{#toIntervalDay\} -도입: v1.1 +도입 버전: v1.1 -[`IntervalDay`](../data-types/special-data-types/interval.md) 데이터 타입의 `n`일 간격(interval)을 반환합니다. +[`IntervalDay`](../data-types/special-data-types/interval.md) 데이터 타입의 `n`일 간격 값을 반환합니다. **구문** @@ -6343,17 +6376,17 @@ FROM numbers(5) toIntervalDay(n) ``` -**인수** +**인수(Arguments)** -* `n` — 일 수. 정수, 해당 정수의 문자열 표현 또는 부동 소수점 수입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 일 수. 정수 또는 해당 정수의 문자열 표현, 그리고 부동 소수점 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** -`n`일 간격(interval)을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`일의 interval(기간)을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query WITH @@ -6371,9 +6404,9 @@ SELECT date + interval_to_days AS result ## toIntervalHour \{#toIntervalHour\} -도입 버전: v1.1 +도입된 버전: v1.1 -데이터 타입 [`IntervalHour`](../data-types/special-data-types/interval.md)의 `n`시간 길이 구간(interval)을 반환합니다. +[`IntervalHour`](../data-types/special-data-types/interval.md) 데이터 타입의 `n`시간 간격(interval)을 반환합니다. **구문** @@ -6383,15 +6416,15 @@ toIntervalHour(n) **인수** -* `n` — 시간 수. 정수 또는 해당 값의 문자열 표현, 그리고 부동 소수점 수입니다. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 시간 수. 정수 또는 해당 값을 나타내는 문자열, 그리고 부동 소수점 수. [`Int*`](/sql-reference/data-types/int-uint) 또는 [`UInt*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n`시간의 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n` 시간의 간격(interval)을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query WITH @@ -6411,7 +6444,7 @@ SELECT date + interval_to_hours AS result 도입 버전: v22.6 -데이터 타입 [`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md)의 `n` 마이크로초 길이 간격(interval)을 반환합니다. +[`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n` 마이크로초 길이 interval을 반환합니다. **구문** @@ -6419,17 +6452,17 @@ SELECT date + interval_to_hours AS result toIntervalMicrosecond(n) ``` -**인수(Arguments)** +**인수** * `n` — 마이크로초(microseconds) 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n` 마이크로초에 해당하는 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n` 마이크로초에 해당하는 `Interval` 값을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query WITH @@ -6449,9 +6482,9 @@ SELECT date + interval_to_microseconds AS result 도입 버전: v22.6 -`n` 밀리초 길이의 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입 interval을 반환합니다. +데이터 타입 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md)의 `n`밀리초 간격(interval)을 반환합니다. -**문법** +**구문** ```sql toIntervalMillisecond(n) @@ -6459,11 +6492,11 @@ toIntervalMillisecond(n) **인자** -* `n` — 밀리초 단위의 값입니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 밀리초 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n` 밀리초 구간을 나타내는 [`Interval`](/sql-reference/data-types/int-uint) 값을 반환합니다. +`n` 밀리초 길이의 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6487,7 +6520,7 @@ SELECT date + interval_to_milliseconds AS result 도입 버전: v1.1 -데이터 타입 [`IntervalMinute`](../data-types/special-data-types/interval.md)을(를) 갖는 `n`분 간격을 반환합니다. +[`IntervalMinute`](../data-types/special-data-types/interval.md) 데이터 타입의 `n`분 길이 인터벌 값을 반환합니다. **문법** @@ -6497,11 +6530,11 @@ toIntervalMinute(n) **인수** -* `n` — 분(minute) 수. 정수, 그에 해당하는 문자열 표현, 또는 부동 소수점 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 분 단위 수입니다. 정수, 해당 정수의 문자열 표현, 또는 부동 소수점 수를 사용할 수 있습니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n`분 길이의 `Interval` 값을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`분의 Interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6525,7 +6558,7 @@ SELECT date + interval_to_minutes AS result 도입 버전: v1.1 -데이터 타입 [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md)의 `n`개월 길이 interval을 반환합니다. +[`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n`개월 간격(interval)을 반환합니다. **구문** @@ -6535,11 +6568,11 @@ toIntervalMonth(n) **인수** -* `n` — 개월 수를 나타냅니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 개월 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n`개월의 `Interval`을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`개월에 해당하는 `Interval`을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6563,9 +6596,9 @@ SELECT date + interval_to_month AS result 도입된 버전: v22.6 -[`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n` 나노초 간격(interval)을 반환합니다. +데이터 타입 [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md)의 `n` 나노초 길이 구간(interval)을 반환합니다. -**구문** +**문법** ```sql toIntervalNanosecond(n) @@ -6573,11 +6606,11 @@ toIntervalNanosecond(n) **인수** -* `n` — 나노초 단위의 개수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 나노초 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n` 나노초의 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n` 나노초 길이의 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6601,7 +6634,7 @@ SELECT date + interval_to_nanoseconds AS result 도입된 버전: v1.1 -[`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n`개 분기 구간(interval)을 반환합니다. +데이터 타입 [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md)의 `n`분기 간격(interval)을 반환합니다. **구문** @@ -6617,9 +6650,9 @@ toIntervalQuarter(n) `n`개의 분기로 구성된 Interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query WITH @@ -6639,7 +6672,7 @@ SELECT date + interval_to_quarter AS result 도입 버전: v1.1 -데이터 타입 [`IntervalSecond`](../data-types/special-data-types/interval.md)의 `n`초 길이 간격을 반환합니다. +[`IntervalSecond`](../data-types/special-data-types/interval.md) 데이터 타입의 `n`초 길이 간격(interval)을 반환합니다. **구문** @@ -6649,11 +6682,11 @@ toIntervalSecond(n) **인수** -* `n` — 초 단위 값입니다. 정수 또는 그 값의 문자열 표현, 그리고 부동 소수점 숫자를 허용합니다. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 초 단위 값. 정수형 숫자 또는 그에 대한 문자열 표현, 그리고 부동 소수점 숫자. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -`n`초 길이의 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`초에 해당하는 Interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6677,7 +6710,7 @@ SELECT date + interval_to_seconds AS result 도입된 버전: v1.1 -[`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n`주의 간격을 반환합니다. +데이터 타입 [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md)의 `n`주 구간(interval)을 반환합니다. **구문** @@ -6687,11 +6720,11 @@ toIntervalWeek(n) **인수** -* `n` — 주(week) 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 주 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n`주에 해당하는 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`주에 해당하는 Interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6715,7 +6748,7 @@ SELECT date + interval_to_week AS result 도입 버전: v1.1 -[`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n`년 interval 값을 반환합니다. +[`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) 데이터 타입의 `n`년 기간(interval)을 반환합니다. **구문** @@ -6723,13 +6756,13 @@ SELECT date + interval_to_week AS result toIntervalYear(n) ``` -**인수** +**인자** -* `n` — 연수(년 수). [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) +* `n` — 년 수. [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) 또는 [`String`](/sql-reference/data-types/string) **반환 값** -`n`년에 해당하는 간격을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) +`n`년을 나타내는 interval을 반환합니다. [`Interval`](/sql-reference/data-types/int-uint) **예시** @@ -6751,12 +6784,12 @@ SELECT date + interval_to_year AS result ## toLowCardinality \{#toLowCardinality\} -도입된 버전: v18.12 +도입 버전: v18.12 입력 인수를 동일한 데이터 타입의 [LowCardinality](../data-types/lowcardinality.md) 버전으로 변환합니다. :::tip -`LowCardinality` 데이터 타입에서 일반 데이터 타입으로 변환하려면 [CAST](#CAST) FUNCTION을 사용하십시오. +`LowCardinality` 데이터 타입을 일반 데이터 타입으로 변환하려면 [CAST](#CAST) FUNCTION을 사용하십시오. 예: `CAST(x AS String)`. ::: @@ -6768,11 +6801,11 @@ toLowCardinality(expr) **인수** -* `expr` — 지원되는 데이터 타입 중 하나의 값을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 지원되는 데이터 타입 중 하나의 값을 결과로 생성하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`Date`](/sql-reference/data-types/date) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -**반환 값** +**반환값** -입력 값을 `LowCardinality` 데이터 타입으로 변환하여 반환합니다. [`LowCardinality`](/sql-reference/data-types/lowcardinality) +입력값을 `LowCardinality` 데이터 타입으로 변환하여 반환합니다. [`LowCardinality`](/sql-reference/data-types/lowcardinality) **예시** @@ -6793,8 +6826,8 @@ SELECT toLowCardinality('1') 도입 버전: v1.1 -값을 문자열 형태로 변환합니다. -DateTime 인수인 경우, 함수는 시간대 이름을 지정하는 두 번째 String 인수를 받을 수 있습니다. +값을 문자열 표현으로 변환합니다. +DateTime 인자를 사용하는 경우, 이 함수는 두 번째 인자로 시간대 이름을 포함하는 String 인자를 받을 수 있습니다. **구문** @@ -6802,14 +6835,14 @@ DateTime 인수인 경우, 함수는 시간대 이름을 지정하는 두 번째 toString(value[, timezone]) ``` -**인자** +**인수** * `value` — 문자열로 변환할 값. [`Any`](/sql-reference/data-types) -* `timezone` — 선택적 인자입니다. DateTime 변환에 사용할 타임존 이름입니다. [`String`](/sql-reference/data-types/string) +* `timezone` — 선택 사항. DateTime 변환에 사용할 타임존 이름. [`String`](/sql-reference/data-types/string) **반환 값** -입력값의 문자열 표현을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 값을 문자열 표현으로 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -6840,28 +6873,28 @@ LIMIT 10 도입 버전: v1.1 -[String](/sql-reference/data-types/string) 또는 [FixedString](/sql-reference/data-types/fixedstring) 인수를 받아, 첫 번째 널 바이트에서 잘라진 원본 문자열의 복사본인 String을 반환합니다. +[String](/sql-reference/data-types/string) 또는 [FixedString](/sql-reference/data-types/fixedstring) 인수를 받아, 첫 번째 null 바이트에서 원본 문자열을 잘라 복사한 String을 반환합니다. -널 바이트(\0)는 문자열 종료 문자로 간주됩니다. -이 FUNCTION은 널 바이트가 의미 있는 내용의 끝을 나타내는 C 스타일 문자열이나 이진 데이터를 처리할 때 유용합니다. +null 바이트(\0)는 문자열 종료 문자로 간주됩니다. +이 함수는 null 바이트가 의미 있는 내용의 끝을 표시하는 C 스타일의 문자열 또는 이진 데이터를 처리할 때 유용합니다. -**문법** +**구문** ```sql toStringCutToZero(s) ``` -**인수** +**인수(Arguments)** -* `s` — 처리할 String 또는 FixedString. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `s` — 처리할 대상인 String 또는 FixedString 값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) -**반환 값** +**반환 값(Returned value)** -첫 번째 null 바이트 이전의 문자로 구성된 String을 반환합니다. [`String`](/sql-reference/data-types/string) +첫 번째 null 바이트 앞까지의 문자만 포함하는 String 값을 반환합니다. [`String`](/sql-reference/data-types/string) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query SELECT @@ -6878,10 +6911,10 @@ SELECT ## toTime \{#toTime\} -도입된 버전: v1.1 +도입 버전: v1.1 -입력 값을 [Time](/sql-reference/data-types/time) 데이터 타입으로 변환합니다. -String, FixedString, DateTime 또는 자정 이후 경과한 초를 나타내는 숫자형 타입에서의 변환을 지원합니다. +입력 값을 [Time](/sql-reference/data-types/time) 타입으로 변환합니다. +`String`, `FixedString`, `DateTime` 또는 자정 이후 경과 초(second)를 나타내는 숫자 타입에서의 변환을 지원합니다. **구문** @@ -6891,7 +6924,7 @@ toTime(x) **인수** -* `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring), [`DateTime`](/sql-reference/data-types/datetime), [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) +* `x` — 변환할 입력 값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`DateTime`](/sql-reference/data-types/datetime) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) **반환 값** @@ -6919,7 +6952,7 @@ SELECT toTime(toDateTime('2025-04-15 14:30:25')) 14:30:25 ``` -**정수를 Time으로 변환** +**정수형을 Time으로 변환** ```sql title=Query SELECT toTime(52225) @@ -6932,11 +6965,11 @@ SELECT toTime(52225) ## toTime64 \{#toTime64\} -도입 버전: v25.6 +도입된 버전: v25.6 입력 값을 [Time64](/sql-reference/data-types/time64) 타입으로 변환합니다. -String, FixedString, DateTime64 또는 자정 이후 경과 시간을 마이크로초 단위로 나타내는 숫자형 타입에서의 변환을 지원합니다. -시간 값을 마이크로초 단위 정밀도로 표현합니다. +String, FixedString, DateTime64, 또는 자정 이후 경과한 마이크로초 수를 나타내는 숫자 타입에서의 변환을 지원합니다. +시간 값에 대해 마이크로초 단위의 정밀도를 제공합니다. **구문** @@ -6946,15 +6979,15 @@ toTime64(x) **인수** -* `x` — 변환할 입력 값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `x` — 변환할 입력값입니다. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) 또는 [`DateTime64`](/sql-reference/data-types/datetime64) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) **반환 값** -마이크로초 정밀도로 변환된 입력 값을 반환합니다. [`Time64(6)`](/sql-reference/data-types/time64) +마이크로초 단위 정밀도로 변환된 입력값을 반환합니다. [`Time64(6)`](/sql-reference/data-types/time64) **예제** -**String에서 Time64로의 변환** +**String을 Time64로 변환** ```sql title=Query SELECT toTime64('14:30:25.123456') @@ -6987,17 +7020,17 @@ SELECT toTime64(52225123456) ## toTime64OrNull \{#toTime64OrNull\} -도입된 버전: v25.6 +도입 버전: v25.6 -입력 값을 `Time64` 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -[`toTime64`](#toTime64)와 동일하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. +입력 값을 `Time64` 타입의 값으로 변환하지만, 오류가 발생하면 `NULL`을 반환합니다. +[`toTime64`](#toTime64)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. -관련 항목: +참고: * [`toTime64`](#toTime64) * [`toTime64OrZero`](#toTime64OrZero) -**문법** +**구문** ```sql toTime64OrNull(x) @@ -7005,11 +7038,11 @@ toTime64OrNull(x) **인수** -* `x` — 초 이하 단위까지의 정밀도를 갖는 시간의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 소수점 이하(서브초) 정밀도를 포함하는 시간의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 Time64 값을, 그렇지 않으면 `NULL`을 반환합니다. [`Time64`](/sql-reference/data-types/time64) 또는 [`NULL`](/sql-reference/syntax#null) +성공한 경우 Time64 값을, 그렇지 않은 경우 `NULL`을 반환합니다. [`Time64`](/sql-reference/data-types/time64) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -7030,8 +7063,8 @@ SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid') 도입 버전: v25.6 -입력 값을 Time64 타입 값으로 변환하지만, 오류가 발생하는 경우 `00:00:00.000`을 반환합니다. -[`toTime64`](#toTime64)와 비슷하지만, 변환 오류 시 예외를 발생시키는 대신 `00:00:00.000`을 반환합니다. +입력 값을 Time64 타입 값으로 변환하지만, 오류가 발생하면 `00:00:00.000`을 반환합니다. +[`toTime64`](#toTime64)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `00:00:00.000`을 반환합니다. **구문** @@ -7041,7 +7074,7 @@ toTime64OrZero(x) **인수** -* `x` — 초 단위 이하(소수점 이하) 정밀도를 포함한 시간의 문자열 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 소수점 이하 초 단위 정밀도의 시간을 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** @@ -7064,10 +7097,10 @@ SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid') ## toTimeOrNull \{#toTimeOrNull\} -도입 버전: v1.1 +도입된 버전: v1.1 -입력 값을 Time 타입 값으로 변환하지만, 오류가 발생하면 `NULL`을 반환합니다. -[`toTime`](#toTime)와 동일하지만, 변환 오류 시 예외를 던지는 대신 `NULL`을 반환합니다. +입력 값을 Time 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. +[`toTime`](#toTime)과 유사하지만, 변환 오류 시 예외를 발생시키는 대신 `NULL`을 반환합니다. 함께 보기: @@ -7086,7 +7119,7 @@ toTimeOrNull(x) **반환 값** -성공하면 Time 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`Time`](/sql-reference/data-types/time) 또는 [`NULL`](/sql-reference/syntax#null) +성공하면 Time 값을, 실패하면 `NULL`을 반환합니다. [`Time`](/sql-reference/data-types/time) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -7105,10 +7138,10 @@ SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid') ## toTimeOrZero \{#toTimeOrZero\} -도입 버전: v1.1 +도입된 버전: v1.1 -입력 값을 Time 타입의 값으로 변환하지만, 오류가 발생하면 `00:00:00`을 반환합니다. -toTime과 동일하지만, 변환 오류 시 예외를 발생시키는 대신 `00:00:00`을 반환합니다. +입력 값을 Time 타입 값으로 변환하지만, 오류가 발생하면 `00:00:00`을 반환합니다. +toTime과 비슷하지만, 변환 오류 시 예외를 발생시키는 대신 `00:00:00`을 반환합니다. **구문** @@ -7118,11 +7151,11 @@ toTimeOrZero(x) **인수** -* `x` — 시간을 나타내는 문자열 표현. [`String`](/sql-reference/data-types/string) +* `x` — 시간을 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공하면 Time 값을 반환하고, 그렇지 않으면 `00:00:00`을 반환합니다. [`Time`](/sql-reference/data-types/time) +성공하면 Time 값을, 그렇지 않으면 `00:00:00`을 반환합니다. [`Time`](/sql-reference/data-types/time) **예시** @@ -7141,24 +7174,24 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') ## toUInt128 \{#toUInt128\} -도입 버전: v1.1 +도입된 버전: v1.1 입력 값을 [`UInt128`](/sql-reference/functions/type-conversion-functions#toUInt128) 타입의 값으로 변환합니다. -오류가 발생하는 경우 예외를 발생시킵니다. -함수는 0 방향으로 반올림을 수행하므로 숫자의 소수 자릿수를 잘라냅니다. +오류가 발생하면 예외를 발생시킵니다. +이 함수는 0을 향한 반올림을 사용하며, 숫자의 소수 자릿수를 잘라냅니다. -지원되는 인자: +지원되는 인수: -* (U)Int* 타입 값 또는 해당 타입의 문자열 표현. +* (U)Int* 타입 값 또는 해당 문자열 표현. * Float* 타입 값. -지원되지 않는 인자: +지원되지 않는 인수: * `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. -* 예: `SELECT toUInt128('0xc0fe');`와 같은 이진 및 16진수 값의 문자열 표현. +* `SELECT toUInt128('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력 값을 UInt128 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 UInt128의 범위 내에서 표현할 수 없는 경우, 결과는 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -7176,15 +7209,15 @@ toUInt128(expr) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** 128비트 부호 없는 정수 값을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -7205,10 +7238,10 @@ toUInt128('128'): 128 ## toUInt128OrDefault \{#toUInt128OrDefault\} -도입 버전: v21.11 +도입된 버전: v21.11 -[`toUInt128`](#toUInt128)과 마찬가지로, 이 FUNCTION은 입력값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. -`default` 값을 전달하지 않으면, 오류가 발생할 때 `0`이 반환됩니다. +[`toUInt128`](#toUInt128)과(와) 마찬가지로, 이 FUNCTION은 입력값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생할 경우 기본값을 반환합니다. +`default` 값이 지정되지 않으면 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -7216,18 +7249,18 @@ toUInt128('128'): 128 toUInt128OrDefault(expr[, default]) ``` -**인수** +**인자** * `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`UInt128`](/sql-reference/data-types/int-uint) -**반환 값** +**반환값** -성공하면 [`UInt128`](/sql-reference/data-types/int-uint) 타입의 값을 반환하고, 실패하면 기본값이 전달된 경우 해당 값을, 전달되지 않은 경우 0을 반환합니다. +성공한 경우 UInt128 타입의 값을 반환하고, 그렇지 않은 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) **예시** -**변환 성공 예** +**성공적인 변환** ```sql title=Query SELECT toUInt128OrDefault('128', CAST('0', 'UInt128')) @@ -7252,19 +7285,19 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) 도입된 버전: v21.6 -[`toUInt128`](#toUInt128)과 같이, 이 FUNCTION은 입력값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `NULL`을 반환합니다. +[`toUInt128`](#toUInt128)과 같이, 이 함수는 입력 값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: * (U)Int*의 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인수 (`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. * `SELECT toUInt128OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력값을 [`UInt128`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [`UInt128`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에서 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -7274,7 +7307,7 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) * [`toUInt128OrZero`](#toUInt128OrZero). * [`toUInt128OrDefault`](#toUInt128OrDefault). -**문법** +**구문** ```sql toUInt128OrNull(x) @@ -7282,15 +7315,15 @@ toUInt128OrNull(x) **인수** -* `x` — 숫자를 나타내는 String 형식의 값. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 String 형태로 표현한 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환에 성공하면 UInt128 타입의 값을 반환하고, 실패하면 `NULL`을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +UInt128 타입의 값을 반환하며, 변환에 실패한 경우 `NULL`을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -7311,19 +7344,19 @@ toUInt128OrNull('abc'): \N 도입 버전: v1.1 -[`toUInt128`](#toUInt128)와 마찬가지로, 이 함수는 입력 값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toUInt128`](#toUInt128)과 마찬가지로, 이 함수는 입력 값을 [`UInt128`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -지원되는 인수: +지원되는 인자: -* (U)Int*의 문자열 표현. +* (U)Int*의 문자열 표현 -지원되지 않는 인수(`0` 반환): +지원되지 않는 인자 (`0` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 예: `SELECT toUInt128OrZero('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현 +* `SELECT toUInt128OrZero('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현 :::note -입력 값을 [`UInt128`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력 값을 [`UInt128`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생할 수 있습니다. 이는 오류로 간주되지 않습니다. ::: @@ -7339,13 +7372,13 @@ toUInt128OrNull('abc'): \N toUInt128OrZero(x) ``` -**인수** +**인자** -* `x` — 숫자를 나타내는 String 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -UInt128 타입의 값을 반환하며, 변환에 실패한 경우 `0`을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) +변환에 성공하면 `UInt128` 타입의 값을, 실패하면 `0`을 반환합니다. [`UInt128`](/sql-reference/data-types/int-uint) **예시** @@ -7375,31 +7408,31 @@ toUInt128OrZero('abc'): 0 지원되는 인수: -* (U)Int* 타입의 값 또는 해당 문자열 표현. -* Float* 타입의 값. +* (U)Int* 타입 값 또는 해당 타입의 문자열 표현. +* Float* 타입 값. 지원되지 않는 인수: -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. +* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. * `SELECT toUInt16('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력 값을 [`UInt16`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [`UInt16`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과가 오버플로우 또는 언더플로우됩니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toUInt16(65536) == 0;`. ::: :::note -이 함수는 숫자의 소수 자릿수를 잘라내는 방식인 [0 방향 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)(rounding towards zero)을 사용합니다. +이 함수는 [0을 향한 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 버립니다. ::: -관련 항목: +함께 보기: * [`toUInt16OrZero`](#toUInt16OrZero). * [`toUInt16OrNull`](#toUInt16OrNull). * [`toUInt16OrDefault`](#toUInt16OrDefault). -**구문** +**Syntax** ```sql toUInt16(expr) @@ -7407,7 +7440,7 @@ toUInt16(expr) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -7438,8 +7471,8 @@ toUInt16('16'): 16 도입 버전: v21.11 -[`toUInt16`](#toUInt16)과 유사하게, 이 FUNCTION은 입력값을 [UInt16](../data-types/int-uint.md) 타입의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다. -`default` 값을 전달하지 않으면 오류가 발생했을 때 `0`이 반환됩니다. +[`toUInt16`](#toUInt16)과 마찬가지로 이 FUNCTION은 입력값을 [UInt16](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +`default` 값이 전달되지 않으면 오류 발생 시 `0`을 반환합니다. **구문** @@ -7449,14 +7482,14 @@ toUInt16OrDefault(expr[, default]) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`UInt16`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 `UInt16` 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) +성공하면 `UInt16` 타입의 값을 반환하며, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) -**예시** +**예제** **성공적인 변환** @@ -7468,7 +7501,7 @@ SELECT toUInt16OrDefault('16', CAST('0', 'UInt16')) 16 ``` -**형변환 실패** +**변환 실패** ```sql title=Query SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) @@ -7483,20 +7516,20 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) 도입 버전: v1.1 -[`toUInt16`](#toUInt16)과(와) 마찬가지로, 이 함수는 입력값을 [`UInt16`](../data-types/int-uint.md) 타입 값으로 변환하지만 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toUInt16`](#toUInt16)와 마찬가지로 이 함수는 입력값을 [`UInt16`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: * (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수( `NULL`을 반환): +지원되지 않는 인수(`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 예: `SELECT toUInt16OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `SELECT toUInt16OrNull('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력값을 [`UInt16`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. -이는 오류로 간주되지 않습니다. +입력값을 [`UInt16`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. +이때는 오류로 간주되지 않습니다. ::: 함께 보기: @@ -7511,13 +7544,13 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) toUInt16OrNull(x) ``` -**인수** +**인자** -* `x` — 숫자를 나타내는 String 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자의 문자열(String) 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환이 성공하면 `UInt16` 타입의 값을 반환하고, 그렇지 않으면 `NULL`을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +변환에 성공하면 `UInt16` 타입의 값을 반환하고, 변환에 실패하면 `NULL`을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -7542,19 +7575,19 @@ toUInt16OrNull('abc'): \N 도입 버전: v1.1 -[`toUInt16`](#toUInt16)과 마찬가지로 이 함수는 입력값을 [`UInt16`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toUInt16`](#toUInt16)과 같이 이 함수는 입력 값을 [`UInt16`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 `0`을 반환합니다. -지원되는 인수: +지원되는 인자: -* (U)Int8/16/32/128/256의 문자열 표현입니다. +* (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수(`0` 반환): +지원되지 않는 인자(`0`을 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현입니다. -* 2진수 및 16진수 값의 문자열 표현입니다(예: `SELECT toUInt16OrZero('0xc0fe');`). +* `NaN`과 `Inf`를 포함한 Float* 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현, 예: `SELECT toUInt16OrZero('0xc0fe');`. :::note -입력값을 [`UInt16`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력 값을 [`UInt16`](../data-types/int-uint.md)의 범위 안에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -7564,7 +7597,7 @@ toUInt16OrNull('abc'): \N * [`toUInt16OrNull`](#toUInt16OrNull). * [`toUInt16OrDefault`](#toUInt16OrDefault). -**문법** +**구문** ```sql toUInt16OrZero(x) @@ -7572,11 +7605,11 @@ toUInt16OrZero(x) **인수** -* `x` — 숫자를 나타내는 `String` 형식의 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자의 문자열(String) 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환에 성공하면 `UInt16` 타입의 값을, 그렇지 않으면 `0`을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) +변환에 성공하면 UInt16 타입의 값을 반환하고, 변환에 실패하면 `0`을 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) **예시** @@ -7601,22 +7634,22 @@ toUInt16OrZero('abc'): 0 도입 버전: v1.1 -입력 값을 UInt256 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. -이 함수는 0에 가까운 방향으로 반올림하므로 숫자의 소수 자릿수를 잘라냅니다. +입력 값을 `UInt256` 타입의 값으로 변환합니다. +오류가 발생하면 예외를 던집니다. +이 함수는 0 방향으로 반올림하므로, 숫자의 소수 자릿수를 잘라냅니다. -지원되는 인자: +지원되는 인수: * (U)Int* 타입의 값 또는 해당 문자열 표현. * Float* 타입의 값. -지원되지 않는 인자: +지원되지 않는 인수: * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt256('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현, 예: `SELECT toUInt256('0xc0fe');`. :::note -입력 값을 UInt256의 범위 내에서 표현할 수 없는 경우 결과에 오버플로나 언더플로가 발생합니다. +입력 값을 `UInt256`의 범위 내에서 표현할 수 없으면 결과가 오버플로 또는 언더플로 됩니다. 이는 오류로 간주되지 않습니다. ::: @@ -7634,15 +7667,15 @@ toUInt256(expr) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** 256비트 부호 없는 정수 값을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -7665,8 +7698,8 @@ toUInt256('256'): 256 도입 버전: v21.11 -[`toUInt256`](#toUInt256)과 마찬가지로 이 함수는 입력값을 [UInt256](../data-types/int-uint.md) 자료형의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. -`default` 값이 전달되지 않으면, 오류가 발생했을 때 `0`이 반환됩니다. +[`toUInt256`](#toUInt256)와 같이, 이 FUNCTION은 입력 값을 [UInt256](../data-types/int-uint.md) 타입의 값으로 변환하지만 오류가 발생하면 기본값을 반환합니다. +`default` 값이 전달되지 않으면, 오류 발생 시 `0`이 반환됩니다. **구문** @@ -7681,11 +7714,11 @@ toUInt256OrDefault(expr[, default]) **반환 값** -성공하면 `UInt256` 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) +성공하면 `UInt256` 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) **예시** -**성공적인 변환** +**변환 성공** ```sql title=Query SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256')) @@ -7695,7 +7728,7 @@ SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256')) 0 ``` -**형 변환 실패** +**변환 실패** ```sql title=Query SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) @@ -7708,21 +7741,21 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) ## toUInt256OrNull \{#toUInt256OrNull\} -도입 버전: v20.8 +도입된 버전: v20.8 -[`toUInt256`](#toUInt256)와 같이, 이 FUNCTION은 입력값을 [`UInt256`](../data-types/int-uint.md) 타입으로 변환하지만, 오류가 발생하면 `NULL`을 반환합니다. +[`toUInt256`](#toUInt256)과 마찬가지로 이 FUNCTION은 입력값을 [`UInt256`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int*의 문자열 표현. +* (U)Int* 값의 문자열 표현. 지원되지 않는 인수(`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt256OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* 이진 및 16진수 값의 문자열 표현(예: `SELECT toUInt256OrNull('0xc0fe');`). :::note -입력값을 [`UInt256`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력값을 [`UInt256`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -7732,7 +7765,7 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) * [`toUInt256OrZero`](#toUInt256OrZero). * [`toUInt256OrDefault`](#toUInt256OrDefault). -**문법** +**구문** ```sql toUInt256OrNull(x) @@ -7740,15 +7773,15 @@ toUInt256OrNull(x) **인수** -* `x` — 숫자를 나타내는 String 형식의 문자열입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환이 성공하면 UInt256 타입의 값을 반환하고, 실패하면 `NULL`을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +변환이 성공하면 `UInt256` 타입의 값을 반환하고, 실패하면 `NULL`을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -7767,47 +7800,46 @@ toUInt256OrNull('abc'): \N ## toUInt256OrZero \{#toUInt256OrZero\} -도입 버전: v20.8 +도입된 버전: v20.8 -[`toUInt256`](#toUInt256)과 마찬가지로, 이 함수는 입력값을 [`UInt256`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toUInt256`](#toUInt256)와 유사하게, 이 함수는 입력값을 [`UInt256`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. -지원되는 인수: +지원되는 인자: -* (U)Int*의 문자열 표현. +* (U)Int* 값의 문자열 표현. -지원되지 않는 인수(`0` 반환): +지원되지 않는 인자(`0` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. * 예: `SELECT toUInt256OrZero('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. :::note -입력값을 [`UInt256`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. -이는 오류로 간주되지 않습니다. +입력값을 [`UInt256`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생하지만, 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toUInt256`](#toUInt256). * [`toUInt256OrNull`](#toUInt256OrNull). * [`toUInt256OrDefault`](#toUInt256OrDefault). -**문법** +**구문** ```sql toUInt256OrZero(x) ``` -**인수(Arguments)** +**인수** -* `x` — 숫자를 나타내는 문자열. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 String으로 표현한 값입니다. [`String`](/sql-reference/data-types/string) -**반환 값(Returned value)** +**반환 값** -변환이 성공하면 UInt256 타입의 값을, 실패하면 `0`을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) +변환에 성공하면 `UInt256` 타입의 값을 반환하고, 실패하면 `0`을 반환합니다. [`UInt256`](/sql-reference/data-types/int-uint) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT @@ -7829,35 +7861,35 @@ toUInt256OrZero('abc'): 0 도입 버전: v1.1 입력값을 [`UInt32`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +오류가 발생하면 예외를 던집니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 문자열 표현. +* (U)Int* 타입의 값 또는 그 문자열 형태. * Float* 타입의 값. 지원되지 않는 인수: -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt32('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 형태. +* `SELECT toUInt32('0xc0fe');`와 같은 이진 및 16진 값의 문자열 형태. :::note -입력값을 [`UInt32`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과값은 오버플로 또는 언더플로가 발생합니다. +입력값을 [`UInt32`](../data-types/int-uint.md) 범위 내에서 표현할 수 없는 경우, 결과가 오버플로 또는 언더플로 됩니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toUInt32(4294967296) == 0;` ::: :::note -이 함수는 [0으로의 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하며, 이는 숫자의 소수 부분을 잘라낸다는 의미입니다. +이 함수는 [0 방향 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다. ::: -함께 보기: +관련 항목: * [`toUInt32OrZero`](#toUInt32OrZero). * [`toUInt32OrNull`](#toUInt32OrNull). * [`toUInt32OrDefault`](#toUInt32OrDefault). -**구문** +**Syntax** ```sql toUInt32(expr) @@ -7865,15 +7897,15 @@ toUInt32(expr) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** -32비트 부호 없는 정수 값인 [`UInt32`](/sql-reference/data-types/int-uint)를 반환합니다. +32비트 부호 없는 정수 값을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT @@ -7894,9 +7926,9 @@ toUInt32('32'): 32 ## toUInt32OrDefault \{#toUInt32OrDefault\} -도입 버전: v21.11 +도입된 버전: v21.11 -[`toUInt32`](#toUInt32)와 마찬가지로, 이 FUNCTION은 입력값을 [UInt32](../data-types/int-uint.md) 타입의 값으로 변환하되, 오류가 발생하면 기본값을 반환합니다. +[`toUInt32`](#toUInt32)와 마찬가지로 이 FUNCTION은 입력 값을 [UInt32](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. `default` 값이 전달되지 않으면 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -7905,16 +7937,16 @@ toUInt32('32'): 32 toUInt32OrDefault(expr[, default]) ``` -**인수** +**인자** -* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`UInt32`](/sql-reference/data-types/int-uint) **반환 값** -성공하면 `UInt32` 타입의 값을 반환하며, 실패한 경우 `default` 값이 전달되었으면 해당 값을, 그렇지 않으면 0을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) +변환에 성공하면 `UInt32` 타입의 값을 반환하며, 실패하면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) -**예시** +**예제** **성공적인 변환** @@ -7939,25 +7971,25 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) ## toUInt32OrNull \{#toUInt32OrNull\} -도입된 버전: v1.1 +도입 버전: v1.1 -[`toUInt32`](#toUInt32)와 같이, 이 FUNCTION은 입력 값을 [`UInt32`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toUInt32`](#toUInt32)와 마찬가지로, 이 함수는 입력 값을 [`UInt32`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. 지원되는 인수: -* (U)Int8/16/32/128/256의 문자열 표현 +* (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수 (`NULL` 반환): +지원되지 않는 인수(`NULL` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현 -* 예: `SELECT toUInt32OrNull('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현 +* `NaN` 및 `Inf`를 포함한 Float* 타입 값의 문자열 표현. +* `SELECT toUInt32OrNull('0xc0fe');`와 같은 이진수 및 16진수 값을 나타내는 문자열. :::note -입력 값을 [`UInt32`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. +입력 값을 [`UInt32`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -관련 내용: +함께 보기: * [`toUInt32`](#toUInt32). * [`toUInt32OrZero`](#toUInt32OrZero). @@ -7969,17 +8001,17 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) toUInt32OrNull(x) ``` -**인수** +**인수(Arguments)** -* `x` — 숫자를 나타내는 String 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환 값(Returned value)** -변환이 성공하면 `UInt32` 타입의 값을 반환하고, 실패하면 `NULL`을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +변환에 성공하면 `UInt32` 타입의 값을 반환하고, 변환에 실패하면 `NULL`을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) -**예시** +**예시(Examples)** -**사용 예시** +**사용 예시(Usage example)** ```sql title=Query SELECT @@ -8000,23 +8032,23 @@ toUInt32OrNull('abc'): \N 도입 버전: v1.1 -[`toUInt32`](#toUInt32)와 유사하게, 이 함수는 입력값을 [`UInt32`](../data-types/int-uint.md) 형식의 값으로 변환하지만, 오류가 발생한 경우 `0`을 반환합니다. +[`toUInt32`](#toUInt32)와 마찬가지로, 이 함수는 입력값을 [`UInt32`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. 지원되는 인수: * (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수 (`0` 반환): +지원되지 않는 인수(`0` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toUInt32OrZero('0xc0fe');`. +* `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현(예: `SELECT toUInt32OrZero('0xc0fe');`). :::note -입력값을 [`UInt32`](../data-types/int-uint.md) 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. +입력값을 [`UInt32`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -같이 보기: +함께 보기: * [`toUInt32`](#toUInt32). * [`toUInt32OrNull`](#toUInt32OrNull). @@ -8030,11 +8062,11 @@ toUInt32OrZero(x) **인수** -* `x` — 문자열로 표현된 숫자입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) **반환 값** -성공적으로 변환되면 UInt32 타입의 값을, 변환에 실패하면 `0`을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) +변환에 성공하면 UInt32 타입의 값을, 실패하면 `0`을 반환합니다. [`UInt32`](/sql-reference/data-types/int-uint) **예시** @@ -8060,26 +8092,26 @@ toUInt32OrZero('abc'): 0 도입 버전: v1.1 입력 값을 [`UInt64`](../data-types/int-uint.md) 타입의 값으로 변환합니다. -오류가 발생하면 예외를 발생시킵니다. +오류가 발생하면 예외를 던집니다. 지원되는 인수: -* (U)Int* 타입의 값 또는 문자열 표현. -* Float* 타입의 값. +* (U)Int* 타입 값 또는 해당 문자열 표현. +* Float* 타입 값. 지원되지 않는 타입: * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt64('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `SELECT toUInt64('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력 값을 [`UInt64`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면, 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [`UInt64`](../data-types/int-uint.md) 범위로 표현할 수 없는 경우, 결과가 오버플로 또는 언더플로 됩니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toUInt64(18446744073709551616) == 0;` ::: :::note -이 함수는 [0으로의 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 버립니다. +이 함수는 [0 방향으로 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 수행하므로, 숫자의 소수 자릿수를 잘라냅니다. ::: 함께 보기: @@ -8088,15 +8120,15 @@ toUInt32OrZero('abc'): 0 * [`toUInt64OrNull`](#toUInt64OrNull). * [`toUInt64OrDefault`](#toUInt64OrDefault). -**Syntax** +**구문** ```sql toUInt64(expr) ``` -**인자** +**인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자 형식의 문자열을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) **반환 값** @@ -8127,10 +8159,10 @@ toUInt64('64'): 64 도입 버전: v21.11 -[`toUInt64`](#toUInt64)와 마찬가지로, 이 FUNCTION은 입력값을 [UInt64](../data-types/int-uint.md) 타입의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다. -`default` 값이 지정되지 않으면 오류가 발생했을 때 `0`이 반환됩니다. +[`toUInt64`](#toUInt64)와 마찬가지로 이 FUNCTION은 입력값을 [UInt64](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. +`default` 값이 전달되지 않은 경우에는 오류가 발생했을 때 `0`이 반환됩니다. -**문법** +**구문** ```sql toUInt64OrDefault(expr[, default]) @@ -8138,16 +8170,16 @@ toUInt64OrDefault(expr[, default]) **인수** -* `expr` — 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) -* `default` — 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다. [`UInt64`](/sql-reference/data-types/int-uint) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`UInt64`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 `UInt64` 타입의 값을 반환하고, 실패한 경우에는 전달된 기본값을, 기본값이 전달되지 않았다면 0을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +성공하면 UInt64 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**변환 성공 예** +**성공적인 변환** ```sql title=Query SELECT toUInt64OrDefault('64', CAST('0', 'UInt64')) @@ -8170,25 +8202,24 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) ## toUInt64OrNull \{#toUInt64OrNull\} -도입된 버전: v1.1 +도입 버전: v1.1 -[`toUInt64`](#toUInt64)와 마찬가지로 이 FUNCTION은 입력값을 [`UInt64`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. +[`toUInt64`](#toUInt64)와 마찬가지로, 이 FUNCTION은 입력값을 [`UInt64`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -지원되는 인수: +지원되는 인자: * (U)Int*의 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인자(`NULL` 반환): * `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt64OrNull('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* 이진수 및 16진수 값의 문자열 표현. 예: `SELECT toUInt64OrNull('0xc0fe');`. :::note -입력값을 [`UInt64`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에서 오버플로우 또는 언더플로우가 발생합니다. -이는 오류로 간주되지 않습니다. +입력값을 [`UInt64`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생하지만, 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toUInt64`](#toUInt64). * [`toUInt64OrZero`](#toUInt64OrZero). @@ -8200,11 +8231,11 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) toUInt64OrNull(x) ``` -**인자** +**인수** -* `x` — 숫자의 문자열(String) 표현입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 String입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** 변환에 성공하면 UInt64 타입의 값을, 실패하면 `NULL`을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) @@ -8231,23 +8262,23 @@ toUInt64OrNull('abc'): \N 도입 버전: v1.1 -[`toUInt64`](#toUInt64)와 마찬가지로, 이 함수는 입력값을 [`UInt64`](../data-types/int-uint.md) 타입의 값으로 변환하지만 오류가 발생하는 경우 `0`을 반환합니다. +[`toUInt64`](#toUInt64)와 마찬가지로, 이 FUNCTION은 입력값을 [`UInt64`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. 지원되는 인수: -* (U)Int*의 문자열 표현입니다. +* (U)Int* 값의 문자열 표현. 지원되지 않는 인수(`0` 반환): -* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현입니다. -* `SELECT toUInt64OrZero('0xc0fe');`와 같은 이진 및 16진수 값의 문자열 표현입니다. +* `NaN` 및 `Inf`를 포함한 Float* 값의 문자열 표현. +* `SELECT toUInt64OrZero('0xc0fe');`와 같은 2진수 및 16진수 값의 문자열 표현. :::note -입력값을 [`UInt64`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에서 오버플로 또는 언더플로가 발생합니다. +입력값을 [`UInt64`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -관련 항목: +함께 보기: * [`toUInt64`](#toUInt64). * [`toUInt64OrNull`](#toUInt64OrNull). @@ -8259,17 +8290,17 @@ toUInt64OrNull('abc'): \N toUInt64OrZero(x) ``` -**인수(Arguments)** +**인수** -* `x` — 숫자를 문자열로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) -**반환 값(Returned value)** +**반환 값** -변환에 성공하면 `UInt64` 타입의 값을 반환하고, 실패하면 `0`을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) +`UInt64` 타입의 값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`UInt64`](/sql-reference/data-types/int-uint) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT @@ -8288,29 +8319,29 @@ toUInt64OrZero('abc'): 0 ## toUInt8 \{#toUInt8\} -도입된 버전: v1.1 +도입 버전: v1.1 입력 값을 [`UInt8`](../data-types/int-uint.md) 타입의 값으로 변환합니다. 오류가 발생하면 예외를 던집니다. 지원되는 인수: -* 타입이 (U)Int*인 값 또는 해당 문자열 표현. +* 타입이 (U)Int*인 값 또는 해당 값의 문자열 표현. * 타입이 Float*인 값. 지원되지 않는 인수: * `NaN`, `Inf`를 포함한 Float* 값의 문자열 표현. -* `SELECT toUInt8('0xc0fe');`와 같은 이진수 및 16진수 값의 문자열 표현. +* `SELECT toUInt8('0xc0fe');`와 같은 이진 및 16진수 값의 문자열 표현. :::note -입력 값을 [UInt8](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. +입력 값을 [UInt8](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에서 overflow 또는 underflow가 발생합니다. 이는 오류로 간주되지 않습니다. 예: `SELECT toUInt8(256) == 0;`. ::: :::note -이 함수는 [0 방향으로 반올림](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용합니다. 즉, 수의 소수 부분을 잘라냅니다. +이 함수는 [0 쪽으로의 반올림(rounding towards zero)](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)을 사용하므로, 숫자의 소수 자릿수를 잘라 냅니다. ::: 함께 보기: @@ -8319,23 +8350,23 @@ toUInt64OrZero('abc'): 0 * [`toUInt8OrNull`](#toUInt8OrNull). * [`toUInt8OrDefault`](#toUInt8OrDefault). -**Syntax** +**구문** ```sql toUInt8(expr) ``` -**인자** +**매개변수** -* `expr` — 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다. [`Expression`](/sql-reference/data-types/special-data-types/expression) -**반환 값** +**반환값** -8비트 부호 없는 정수 값[`UInt8`](/sql-reference/data-types/int-uint)을 반환합니다. +8비트 부호 없는 정수 값을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -8358,8 +8389,8 @@ toUInt8('8'): 8 도입 버전: v21.11 -[`toUInt8`](#toUInt8)와 마찬가지로, 이 함수는 입력값을 [UInt8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다. -`default` 값이 전달되지 않으면, 오류가 발생한 경우 `0`이 반환됩니다. +[`toUInt8`](#toUInt8)와 마찬가지로, 이 함수는 입력값을 [UInt8](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다. +`default` 값을 전달하지 않으면, 오류가 발생했을 때 `0`이 반환됩니다. **구문** @@ -8369,12 +8400,12 @@ toUInt8OrDefault(expr[, default]) **인수** -* `expr` — 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) +* `expr` — 숫자 또는 숫자를 나타내는 문자열 표현을 반환하는 식입니다. [`String`](/sql-reference/data-types/string) 또는 [`(U)Int*`](/sql-reference/data-types/int-uint) 또는 [`Float*`](/sql-reference/data-types/float) * `default` — 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다. [`UInt8`](/sql-reference/data-types/int-uint) **반환 값** -성공한 경우 `UInt8` 타입의 값을 반환하고, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) +변환에 성공하면 `UInt8` 타입의 값을 반환하며, 실패한 경우 `default` 인수가 전달되었으면 해당 값을, 전달되지 않았으면 0을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) **예시** @@ -8403,19 +8434,19 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) 도입된 버전: v1.1 -[`toUInt8`](#toUInt8)와 마찬가지로 이 함수는 입력 값을 [`UInt8`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하면 `NULL`을 반환합니다. +[`toUInt8`](#toUInt8)와 같이, 이 FUNCTION은 입력 값을 [`UInt8`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `NULL`을 반환합니다. -지원되는 인수: +지원되는 인자: * (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수(`NULL` 반환): +지원되지 않는 인자 (`NULL` 반환): -* `NaN` 및 `Inf`를 포함한 일반 Float* 값의 문자열 표현. -* 이진수 및 16진수 값의 문자열 표현, 예: `SELECT toUInt8OrNull('0xc0fe');`. +* 일반적인 Float* 값의 문자열 표현 (`NaN` 및 `Inf` 포함). +* 2진수 및 16진수 값의 문자열 표현. 예: `SELECT toUInt8OrNull('0xc0fe');`. :::note -입력 값을 [`UInt8`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. +입력 값을 [`UInt8`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: @@ -8425,7 +8456,7 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) * [`toUInt8OrZero`](#toUInt8OrZero). * [`toUInt8OrDefault`](#toUInt8OrDefault). -**구문** +**Syntax** ```sql toUInt8OrNull(x) @@ -8433,11 +8464,11 @@ toUInt8OrNull(x) **인수** -* `x` — 숫자를 String 형식으로 표현한 값입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 String 형식의 값입니다. [`String`](/sql-reference/data-types/string) **반환 값** -변환에 성공하면 UInt8 타입의 값을, 실패하면 `NULL`을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) +변환이 성공하면 UInt8 타입의 값을, 그렇지 않으면 `NULL`을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) 또는 [`NULL`](/sql-reference/syntax#null) **예시** @@ -8462,23 +8493,23 @@ toUInt8OrNull('abc'): \N 도입 버전: v1.1 -[`toUInt8`](#toUInt8)와 마찬가지로 이 함수는 입력 값을 [`UInt8`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. +[`toUInt8`](#toUInt8)과 마찬가지로, 이 함수는 입력값을 [`UInt8`](../data-types/int-uint.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 `0`을 반환합니다. 지원되는 인수: * (U)Int8/16/32/128/256의 문자열 표현. -지원되지 않는 인수(`0` 반환): +지원되지 않는 인수 (`0` 반환): -* `NaN` 및 `Inf`를 포함한 일반적인 Float* 타입 값의 문자열 표현. -* 이진수 및 16진수 값의 문자열 표현, 예를 들어 `SELECT toUInt8OrZero('0xc0fe');`. +* 일반적인 부동소수점(Float*) 값의 문자열 표현 (`NaN`, `Inf` 포함). +* 이진 및 16진 값의 문자열 표현. 예: `SELECT toUInt8OrZero('0xc0fe');`. :::note -입력 값을 [`UInt8`](../data-types/int-uint.md)의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. +입력값이 [`UInt8`](../data-types/int-uint.md)의 범위 내에서 표현될 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다. ::: -함께 보기: +다음도 함께 참고하십시오: * [`toUInt8`](#toUInt8). * [`toUInt8OrNull`](#toUInt8OrNull). @@ -8492,11 +8523,11 @@ toUInt8OrZero(x) **인수** -* `x` — 숫자를 나타내는 문자열(String)입니다. [`String`](/sql-reference/data-types/string) +* `x` — 숫자를 나타내는 String 표현입니다. [`String`](/sql-reference/data-types/string) **반환 값** -`UInt8` 타입의 값을 반환하며, 변환에 실패하면 `0`을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) +변환에 성공하면 UInt8 타입의 값을 반환하고, 실패하면 `0`을 반환합니다. [`UInt8`](/sql-reference/data-types/int-uint) **예시** @@ -8521,9 +8552,9 @@ toUInt8OrZero('abc'): 0 도입 버전: v1.1 -`String` 형식의 값을 `UUID` 값으로 변환합니다. +`String` 값을 `UUID` 값으로 변환합니다. -**문법** +**구문** ```sql toUUID(string) @@ -8531,11 +8562,11 @@ toUUID(string) **인수** -* `string` — 문자열로 표현된 UUID. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) +* `string` — 문자열 형태의 UUID. [`String`](/sql-reference/data-types/string) 또는 [`FixedString`](/sql-reference/data-types/fixedstring) **반환 값** -UUID 문자열 표현으로부터 UUID를 반환합니다. [`UUID`](/sql-reference/data-types/uuid) +UUID의 문자열 표현에서 UUID 값을 반환합니다. [`UUID`](/sql-reference/data-types/uuid) **예시** @@ -8556,7 +8587,7 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid 도입 버전: v20.12 -입력 값을 [UUID](../data-types/uuid.md) 타입의 값으로 변환하지만, 오류가 발생할 경우 zero UUID를 반환합니다. +입력 값을 [UUID](../data-types/uuid.md) 타입의 값으로 변환하지만, 오류가 발생하는 경우 zero UUID를 반환합니다. [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID)와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 zero UUID (`00000000-0000-0000-0000-000000000000`)를 반환합니다. 지원되는 인수: @@ -8577,15 +8608,15 @@ toUUIDOrZero(x) **인수** -* `x` — UUID를 문자열로 표현한 값. [`String`](/sql-reference/data-types/string) +* `x` — UUID의 문자열 표현. [`String`](/sql-reference/data-types/string) **반환 값** -성공 시 UUID 값을, 그렇지 않으면 모두 0으로 구성된 UUID (`00000000-0000-0000-0000-000000000000`)를 반환합니다. [`UUID`](/sql-reference/data-types/uuid) +성공하면 UUID 값을 반환하고, 실패하면 0 UUID 값(`00000000-0000-0000-0000-000000000000`)을 반환합니다. [`UUID`](/sql-reference/data-types/uuid) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT @@ -8604,11 +8635,11 @@ SELECT 도입 버전: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64)를 마이크로초 단위의 고정 정밀도를 가진 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. -입력 값의 정밀도에 따라 값이 적절히 확대되거나 축소됩니다. +[`DateTime64`](/sql-reference/data-types/datetime64)를 마이크로초 단위의 고정 정밀도를 갖는 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. +입력 값은 그 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다. :::note -출력 값은 입력 값의 시간대가 아니라 UTC 기준입니다. +출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다. ::: **구문** @@ -8619,7 +8650,7 @@ toUnixTimestamp64Micro(value) **인수** -* `value` — 임의의 정밀도를 가진 DateTime64 값. [`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 임의의 정밀도를 가진 DateTime64 값입니다. [`DateTime64`](/sql-reference/data-types/datetime64) **반환 값** @@ -8643,13 +8674,13 @@ SELECT toUnixTimestamp64Micro(dt64); ## toUnixTimestamp64Milli \{#toUnixTimestamp64Milli\} -도입 버전: v20.5 +도입된 버전: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64)를 밀리초 고정 정밀도의 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. -입력 값은 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다. +[`DateTime64`](/sql-reference/data-types/datetime64)를 밀리초(ms) 단위의 고정 정밀도를 갖는 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. +입력 값은 정밀도에 따라 적절히 확대하거나 축소됩니다. :::note -출력 값은 입력 값의 시간대가 아니라 UTC를 기준으로 합니다. +출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다. ::: **구문** @@ -8660,15 +8691,15 @@ toUnixTimestamp64Milli(value) **인수** -* `value` — 임의의 정밀도를 가진 DateTime64 값입니다. [`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 임의의 정밀도를 가진 DateTime64 값. [`DateTime64`](/sql-reference/data-types/datetime64) **반환 값** 밀리초 단위의 Unix 타임스탬프를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64 @@ -8684,10 +8715,10 @@ SELECT toUnixTimestamp64Milli(dt64); ## toUnixTimestamp64Nano \{#toUnixTimestamp64Nano\} -도입 버전: v20.5 +도입된 버전: v20.5 -[`DateTime64`](/sql-reference/data-types/datetime64)를 나노초 단위의 고정된 정밀도를 갖는 [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) 값으로 변환합니다. -입력값은 자신의 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다. +[`DateTime64`](/sql-reference/data-types/datetime64)을(를) 고정 나노초 정밀도의 [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) 값으로 변환합니다. +입력 값은 정밀도에 따라 적절하게 확대 또는 축소됩니다. :::note 출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다. @@ -8705,7 +8736,7 @@ toUnixTimestamp64Nano(value) **반환 값** -Unix 타임스탬프를 나노초 단위로 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) +나노초 단위의 Unix 타임스탬프를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) **예시** @@ -8727,11 +8758,11 @@ SELECT toUnixTimestamp64Nano(dt64); 도입 버전: v24.12 -[`DateTime64`](/sql-reference/data-types/datetime64)를 초 단위의 고정 정밀도를 갖는 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. -입력 값은 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다. +[`DateTime64`](/sql-reference/data-types/datetime64)를 초 단위 고정 정밀도의 [`Int64`](/sql-reference/data-types/int-uint) 값으로 변환합니다. +입력 값의 정밀도에 따라 값의 배율이 적절히 조정됩니다. :::note -출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다. +출력 값은 입력 값의 시간대가 아니라 UTC를 기준으로 합니다. ::: **구문** @@ -8742,11 +8773,11 @@ toUnixTimestamp64Second(value) **인수** -* `value` — 임의의 정밀도를 가진 DateTime64 값. [`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 임의의 정밀도를 가진 DateTime64 값입니다. [`DateTime64`](/sql-reference/data-types/datetime64) **반환 값** -초 단위 Unix 타임스탬프를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) +초 단위의 Unix 타임스탬프를 반환합니다. [`Int64`](/sql-reference/data-types/int-uint) **예시** diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md index 14d9ea43946..0248d1624b9 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md @@ -1,22 +1,22 @@ --- -description: 'URL을 다루는 함수에 대한 문서' +description: 'URL을 처리하는 함수에 대한 문서' sidebar_label: 'URL' slug: /sql-reference/functions/url-functions -title: 'URL을 다루는 함수' +title: 'URL 작업을 위한 함수' doc_type: 'reference' --- -# URL 처리를 위한 함수 \{#functions-for-working-with-urls\} +# URL 작업용 함수 \{#functions-for-working-with-urls\} ## 개요 \{#overview\} :::note -이 섹션에서 언급되는 함수들은 최대 성능을 위해 최적화되어 있으며, 대부분 RFC-3986 표준을 따르지 않습니다. -RFC-3986을 구현한 함수들은 함수 이름에 `RFC`가 접미사로 붙으며, 일반적으로 더 느립니다. +이 섹션에 언급된 함수들은 최대 성능을 위해 최적화되어 있으며, 대부분 RFC-3986 표준을 따르지 않습니다. +RFC-3986을 구현하는 함수들은 함수 이름에 `RFC`가 붙으며, 일반적으로 더 느립니다. ::: -일반적으로 사용자 정보 문자열이나 `@` 기호가 포함되지 않은 공개적으로 등록된 도메인을 사용할 때는 `RFC`가 아닌 함수 변형을 사용해도 됩니다. -아래 표는 URL에서 각 기호가 해당 `RFC` 및 `RFC`가 아닌 변형에 의해 파싱될 수 있는지(`✔`) 또는 없는지(`✗`)를 보여 줍니다: +일반적으로 사용자 문자열이나 `@` 기호가 포함되지 않은 공용 등록 도메인을 다룰 때는 `RFC`가 아닌 함수 변형을 사용하면 됩니다. +아래 표는 URL 내에서 어떤 기호가 해당 `RFC` 및 비-`RFC` 변형에 의해 파싱될 수 있는지(`✔`) 또는 없는지(`✗`)를 자세히 보여 줍니다: | Symbol | non-`RFC` | `RFC` | | | ----------- | --------- | ----- | - | @@ -37,30 +37,94 @@ RFC-3986을 구현한 함수들은 함수 이름에 `RFC`가 접미사로 붙으 | = | ✗ | ✔* | | | & | ✗ | ✔* | | -`*`로 표시된 기호는 RFC 3986에서 서브 구분자(sub-delimiter)이며, `@` 기호 뒤에 나오는 사용자 정보에 사용할 수 있습니다. +`*`로 표시된 기호는 RFC 3986의 서브 구분자(sub-delimiter)이며, `@` 기호 뒤에 오는 사용자 정보에 허용됩니다. URL 함수에는 두 가지 유형이 있습니다: -* URL에서 파트를 추출하는 함수입니다. 해당 파트가 URL에 없으면 빈 문자열을 반환합니다. -* URL의 일부를 제거하는 함수입니다. URL에 제거할 부분이 없으면 URL은 변경되지 않습니다. +* URL에서 일부를 추출하는 함수. 관련 부분이 URL에 없으면 빈 문자열을 반환합니다. +* URL에서 일부를 제거하는 함수. URL에 해당 부분이 없으면 URL은 변경되지 않습니다. :::note -아래 함수들은 `system.functions` 시스템 테이블에서 가져온 것입니다. +아래 함수들은 `system.functions` 시스템 테이블에서 생성됩니다. ::: {/* - 아래 태그의 내용은 문서 프레임워크 빌드 시에 - system.functions에서 생성된 문서로 대체됩니다. 태그는 수정하거나 제거하지 마십시오. - 자세한 내용은 https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md 를 참고하십시오. + 아래 태그 내부의 내용은 문서 프레임워크를 빌드할 때 + system.functions에서 생성된 문서로 대체됩니다. 태그를 수정하거나 제거하지 마십시오. + 자세한 내용은 https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md 를 참조하십시오. */ } {/*AUTOGENERATED_START*/ } +## URLHierarchy \{#URLHierarchy\} + +도입: v1.1 + +경로와 쿼리 문자열에서 `/`, `?`, `#` 기호를 기준으로 URL을 순차적으로 잘라 얻은 부분 문자열들을 요소로 하는 배열을 반환합니다. 연속된 구분 기호는 하나로 취급됩니다. 결과 배열의 첫 번째 요소에는 프로토콜과 호스트가 포함되며, 이후 요소들은 경로가 점차 길어지면서 계층 구조를 이루도록 구성됩니다. + +**구문** + +```sql +URLHierarchy(url) +``` + +**인수(Arguments)** + +* `url` — 처리할 URL입니다. [`String`](/sql-reference/data-types/string) + +**반환값(Returned value)** + +계층 구조를 이루도록 앞부분부터 차례대로 더 길어지는 URL들의 배열을 반환합니다. [`Array(String)`](/sql-reference/data-types/array) + +**예시(Examples)** + +**기본 사용 예(Basic usage)** + +```sql title=Query +SELECT URLHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1'] +``` + +## URLPathHierarchy \{#URLPathHierarchy\} + +도입된 버전: v1.1 + +URL의 경로(path) 구성 요소를 포함하는 배열을 반환하며, 끝은 `/`, `?`, `#` 기호에서 잘립니다. `URLHierarchy`와 달리 결과에는 프로토콜과 호스트가 포함되지 않고 경로(path)부터 시작합니다. 연속된 구분 문자는 하나로 간주됩니다. + +**구문** + +```sql +URLPathHierarchy(url) +``` + +**인자** + +* `url` — 처리할 URL입니다. [`String`](/sql-reference/data-types/string) + +**반환 값** + +계층 구조를 이루도록 URL 경로 구성 요소를 점차 확장해 나열한 배열을 반환합니다. [`Array(String)`](/sql-reference/data-types/array) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT URLPathHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['/a/','/a/b','/a/b?c=1'] +``` + ## cutFragment \{#cutFragment\} 도입 버전: v1.1 -번호 기호(#)를 포함한 URL의 프래그먼트 식별자를 제거합니다. +URL에서 `#` 기호를 포함한 프래그먼트 식별자(fragment identifier)를 제거합니다. **구문** @@ -74,7 +138,7 @@ cutFragment(url) **반환 값** -프래그먼트 식별자(fragment identifier)가 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) +프래그먼트 식별자가 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -110,9 +174,9 @@ cutQueryString(url) 쿼리 문자열이 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) -**예시** +**예제** -**사용 예** +**사용 예제** ```sql title=Query SELECT cutQueryString('http://example.com/path?query=value¶m=123#fragment'); @@ -128,7 +192,7 @@ SELECT cutQueryString('http://example.com/path?query=value¶m=123#fragment'); 도입 버전: v1.1 -URL에서 물음표(?)와 번호 기호(#)를 포함하여 쿼리 문자열과 프래그먼트 식별자를 제거합니다. +URL에서 물음표(?)와 해시 기호(#)를 포함하여 쿼리 문자열과 프래그먼트 식별자를 제거합니다. **구문** @@ -140,9 +204,9 @@ cutQueryStringAndFragment(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환값** +**반환 값** -쿼리 문자열과 프래그먼트 식별자가 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) +쿼리 문자열과 fragment 식별자를 제거한 URL을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -160,9 +224,9 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# ## cutToFirstSignificantSubdomain \{#cutToFirstSignificantSubdomain\} -도입: v1.1 +도입 버전: v1.1 -[첫 번째 유의미한 서브도메인](/sql-reference/functions/url-functions#firstSignificantSubdomain)까지의 상위 서브도메인을 포함하는 도메인 부분을 반환합니다. +최상위 서브도메인부터 [첫 번째 중요한 서브도메인](/sql-reference/functions/url-functions#firstSignificantSubdomain)까지를 포함하는 도메인 부분을 반환합니다. **구문** @@ -170,13 +234,13 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# cutToFirstSignificantSubdomain(url) ``` -**인수** +**인자** * `url` — 처리할 URL 또는 도메인 문자열입니다. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -가능한 경우 최상위 서브도메인부터 첫 번째 유의미한 서브도메인까지를 포함하는 도메인 부분을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +가능한 경우, 최상위 서브도메인부터 첫 번째 유의미한 서브도메인까지를 포함하는 도메인 부분을 반환하며, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -197,11 +261,11 @@ SELECT ## cutToFirstSignificantSubdomainCustom \{#cutToFirstSignificantSubdomainCustom\} -도입 버전: v21.1 +도입된 버전: v21.1 -도메인에서 첫 번째 의미 있는 서브도메인까지의 상위 서브도메인을 포함하는 부분을 반환합니다. 사용자 정의 [TLD 목록](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)의 이름을 인수로 받습니다. 이 FUNCTION은 최신 TLD 목록이 필요하거나 사용자 정의 목록을 사용하는 경우에 유용합니다. +최상위 서브도메인부터 첫 번째 중요한 서브도메인까지를 포함하는 도메인 부분을 반환합니다. 사용자 지정 [TLD 목록](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 이름을 인수로 받습니다. 최신 TLD 목록이 필요하거나 별도의 사용자 지정 목록이 있는 경우 이 FUNCTION이 유용합니다. -**구성 예** +**구성 예시** ```yaml @@ -221,15 +285,15 @@ cutToFirstSignificantSubdomainCustom(url, tld_list_name) **인수** * `url` — 처리할 URL 또는 도메인 문자열입니다. [`String`](/sql-reference/data-types/string) -* `tld_list_name` — ClickHouse에 설정된 사용자 정의 TLD 목록의 이름입니다. [`const String`](/sql-reference/data-types/string) +* `tld_list_name` — ClickHouse에 구성된 사용자 정의 TLD 목록 이름입니다. [`const String`](/sql-reference/data-types/string) **반환 값** -첫 번째 유의미한 서브도메인까지의 상위 서브도메인을 포함하는 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) +첫 번째 의미 있는 서브도메인까지의 최상위 서브도메인을 포함하는 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** -**비표준 도메인에 사용자 정의 TLD 목록 사용하기** +**비표준 도메인에 대한 사용자 정의 TLD 목록 사용** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list') @@ -241,11 +305,11 @@ foo.there-is-no-such-domain ## cutToFirstSignificantSubdomainCustomRFC \{#cutToFirstSignificantSubdomainCustomRFC\} -도입: v22.10 +도입 버전: v22.10 -도메인에서 최상위 도메인과 그 상위 서브도메인을 포함하여 첫 번째 의미 있는 서브도메인까지의 부분을 반환합니다. -사용자 정의 [TLD 목록](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 이름을 인수로 받습니다. -최신 TLD 목록이 필요하거나 사용자 정의 목록이 있는 경우 이 FUNCTION을 사용하는 것이 유용합니다. +첫 번째 의미 있는 서브도메인까지의 상위 수준 서브도메인을 포함하는 도메인 부분을 반환합니다. +사용자 정의 [TLD 목록](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 이름을 인자로 받습니다. +최신 TLD 목록이 필요하거나 사용자 정의 목록을 사용하는 경우 이 FUNCTION이 유용합니다. [cutToFirstSignificantSubdomainCustom](#cutToFirstSignificantSubdomainCustom)과 유사하지만 RFC 3986을 준수합니다. **구성 예시** @@ -267,11 +331,11 @@ cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name) **인수** -* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. - `tld_list_name` — ClickHouse에서 구성한 사용자 정의 TLD 목록의 이름입니다. +* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. - `tld_list_name` — ClickHouse에 설정된 사용자 정의 TLD 목록의 이름입니다. **반환 값** -최상위 서브도메인부터 첫 번째 의미 있는 서브도메인까지 포함하는 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) +첫 번째 의미 있는 서브도메인까지의 최상위 서브도메인들을 포함하는 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -289,9 +353,9 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); ## cutToFirstSignificantSubdomainCustomWithWWW \{#cutToFirstSignificantSubdomainCustomWithWWW\} -도입된 버전: v21.1 +도입 버전: v21.1 -최상위 서브도메인을 포함하여 첫 번째 중요한 서브도메인까지의 도메인 부분을 `www`를 제거하지 않고 반환합니다. 사용자 지정 TLD 목록 이름을 인자로 받습니다. 최신 TLD 목록이 필요하거나 자체 목록을 사용하는 경우에 유용합니다. +최상위 서브도메인부터 첫 번째 유의미한 서브도메인까지 포함하는 도메인 부분을 반환하며, 'www'는 제거하지 않습니다. 사용자 지정 TLD 목록 이름을 인수로 받습니다. 최신 TLD 목록이 필요하거나 사용자 지정 목록을 사용하는 경우에 유용합니다. **구성 예시** @@ -310,18 +374,17 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name) ```` -**인수(Arguments)** +**인수** -* `url` — 처리할 URL 또는 도메인 문자열입니다. -* `tld_list_name` — ClickHouse에서 구성된 사용자 정의 TLD 목록의 이름입니다. +* `url` — 처리할 URL 또는 도메인 문자열. - `tld_list_name` — ClickHouse에서 구성한 사용자 정의 TLD 목록 이름. -**반환 값(Returned value)** +**반환 값** -첫 번째 유의미한 서브도메인까지의 최상위 서브도메인을 포함하는 도메인 부분을 반환하며, 「www」는 제거하지 않습니다. [`String`](/sql-reference/data-types/string) +'www'를 제거하지 않고 첫 번째 의미 있는 서브도메인까지의 최상위 서브도메인을 포함하는 도메인 부분입니다. [`String`](/sql-reference/data-types/string) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list'); @@ -337,9 +400,9 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_lis 도입 버전: v22.10 -`www`를 제거하지 않고, 최상위 서브도메인을 포함해 첫 번째 주요 서브도메인까지의 도메인 부분을 반환합니다. -사용자 지정 TLD 목록의 이름을 인수로 받습니다. -최신 TLD 목록이 필요하거나 사용자 지정 목록을 사용하는 경우에 유용합니다. +`www`를 제거하지 않고, 상위 서브도메인들을 포함하여 첫 번째 의미 있는 서브도메인까지의 도메인 부분을 반환합니다. +사용자 정의 TLD 목록 이름을 인수로 받습니다. +최신 TLD 목록이 필요하거나 사용자 정의 목록을 사용하는 경우에 유용합니다. [cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW)와 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구성 예시** @@ -361,15 +424,15 @@ cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name) **인수** -* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. - `tld_list_name` — ClickHouse에 구성된 사용자 정의 TLD 목록의 이름입니다. +* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. - `tld_list_name` — ClickHouse에 구성한 사용자 정의 TLD 목록의 이름입니다. **반환 값** -`www`를 제거하지 않고, 첫 번째 의미 있는 서브도메인까지의 상위 서브도메인을 포함하는 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) +`www`를 제거하지 않고, 첫 번째 의미 있는 서브도메인까지의 상위 서브도메인을 포함한 도메인 부분을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** -**사용자 정의 TLD 목록으로 www를 유지하는 RFC 3986 파싱** +**사용자 정의 TLD 목록을 사용하여 www를 유지하는 RFC 3986 파싱** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list') @@ -383,7 +446,7 @@ www.example.custom 도입 버전: v22.10 -도메인에서 최상위 수준 하위 도메인을 포함하여 ["first significant subdomain"](/sql-reference/functions/url-functions#firstSignificantSubdomain)까지의 부분을 반환합니다. [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)과 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. +최상위 서브도메인부터 ["first significant subdomain"](/sql-reference/functions/url-functions#firstSignificantSubdomain)까지를 포함하는 도메인 부분을 반환합니다. [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)과 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구문** @@ -391,17 +454,17 @@ www.example.custom cutToFirstSignificantSubdomainRFC(url) ``` -**인수(Arguments)** +**인수** * `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. [`String`](/sql-reference/data-types/string) -**반환 값(Returned value)** +**반환 값** -가능한 경우 최상위 도메인부터 첫 번째 유의미한 서브도메인까지를 포함하는 도메인 부분을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +가능한 경우 최상위 서브도메인부터 첫 번째 의미 있는 서브도메인까지를 포함하는 도메인 부분을 반환하며, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) -**예시(Examples)** +**예시** -**사용 예시(Usage example)** +**사용 예시** ```sql title=Query SELECT @@ -417,11 +480,11 @@ SELECT ## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWWRFC\} -도입 버전: v20.12 +도입된 버전: v20.12 -최상위 서브도메인부터 「첫 번째 의미 있는 서브도메인(first significant subdomain)」까지를 포함하는 도메인 부분을 반환하며, "www."는 제거하지 않습니다. +최상위 서브도메인부터 「첫 번째 유의미한 서브도메인(first significant subdomain)」까지를 포함하는 도메인 부분을 반환하며, 'www.' 접두사는 제거하지 않습니다. -[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)과 유사하지만, "www." 접두사가 있는 경우 이를 유지합니다. +[`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain)과 유사하지만, 'www.' 접두사가 있을 경우 이를 유지합니다. **구문** @@ -435,7 +498,7 @@ cutToFirstSignificantSubdomainWithWWW(url) **반환 값** -가능한 경우 첫 번째 중요 서브도메인(www 포함)까지의 상위 서브도메인을 포함하는 도메인 부분을 반환하며, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +가능한 경우 최상위 서브도메인부터 최초의 의미 있는 서브도메인(필요 시 www 포함)까지를 포함하는 도메인 부분을 반환하며, 불가능한 경우 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -456,9 +519,9 @@ SELECT ## cutToFirstSignificantSubdomainWithWWWRFC \{#cutURLParameter\} -도입 버전: v22.10 +도입된 버전: v22.10 -도메인에서 최상위 서브도메인부터 「첫 번째 주요 서브도메인(first significant subdomain)」까지를, 'www'를 제거하지 않고 반환합니다. [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW)와 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. +최상위 서브도메인부터 「첫 번째 중요한 서브도메인(first significant subdomain)」까지를 포함하는 도메인 부분을, 'www'를 제거하지 않고 반환합니다. [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW)와 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구문** @@ -466,13 +529,13 @@ SELECT cutToFirstSignificantSubdomainWithWWWRFC(url) ``` -**인수** +**인자** -* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. +* `url` — RFC 3986에 따라 처리할 URL 또는 도메인 문자열. **반환 값** -도메인에서 최상위 서브도메인부터 첫 번째 유의미한 서브도메인까지의 부분(가능한 경우 'www' 포함)을 반환합니다. 해당 부분이 없으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +가능한 경우 첫 번째 주요 서브도메인(「www」 포함)까지의 상위 서브도메인을 포함한 도메인 부분을 반환하며, 그렇지 않으면 빈 문자열을 반환합니다. 반환 타입은 [`String`](/sql-reference/data-types/string)입니다. **예시** @@ -492,10 +555,10 @@ SELECT ## cutURLParameter \{#cutWWW\} -도입된 버전: v1.1 +도입 버전: v1.1 -URL에 `name` 매개변수가 존재하면 제거합니다. -이 FUNCTION은 매개변수 이름의 문자를 인코딩하거나 디코딩하지 않습니다. 예를 들어 `Client ID`와 `Client%20ID`는 서로 다른 매개변수 이름으로 처리됩니다. +`name` 파라미터가 포함된 URL에서 해당 파라미터를 제거합니다. +이 FUNCTION은 파라미터 이름의 문자를 인코딩하거나 디코딩하지 않으며, 예를 들어 `Client ID`와 `Client%20ID`는 서로 다른 파라미터 이름으로 취급됩니다. **구문** @@ -503,14 +566,14 @@ URL에 `name` 매개변수가 존재하면 제거합니다. cutURLParameter(url, name) ``` -**인수** +**인자** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `name` — URL 매개변수 이름. [`String`](/sql-reference/data-types/string) 또는 [`Array(String)`](/sql-reference/data-types/array) +* `name` — URL 파라미터 이름. [`String`](/sql-reference/data-types/string) 또는 [`Array(String)`](/sql-reference/data-types/array) **반환 값** -`name` URL 매개변수가 제거된 URL. [`String`](/sql-reference/data-types/string) +`name` URL 파라미터가 제거된 URL입니다. [`String`](/sql-reference/data-types/string) **예시** @@ -530,9 +593,9 @@ SELECT ## cutWWW \{#decodeURLComponent\} -도입된 버전: v1.1 +도입 버전: v1.1 -URL 도메인에서 선행하는 `www.`가 있을 경우 이를 제거합니다. +URL 도메인의 앞에 `www.`가 붙어 있으면 제거합니다. **구문** @@ -540,17 +603,17 @@ URL 도메인에서 선행하는 `www.`가 있을 경우 이를 제거합니다. cutWWW(url) ``` -**인수(Arguments)** +**인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환값(Returned value)** +**반환 값** -도메인 앞부분의 `www.`이 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) +도메인 맨 앞의 `www.`가 제거된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) -**예제(Examples)** +**예시** -**사용 예제(Usage example)** +**사용 예시** ```sql title=Query SELECT cutWWW('http://www.example.com/path?query=value#fragment'); @@ -566,7 +629,7 @@ SELECT cutWWW('http://www.example.com/path?query=value#fragment'); 도입 버전: v1.1 -URL로 인코딩된 문자열을 입력으로 받아 원래 읽을 수 있는 형태로 디코딩합니다. +URL로 인코딩된 문자열을 입력으로 받아 디코딩하여 원래의 사람이 읽을 수 있는 형태로 복원합니다. **구문** @@ -574,11 +637,11 @@ URL로 인코딩된 문자열을 입력으로 받아 원래 읽을 수 있는 decodeURLComponent(url) ``` -**인자** +**인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** 디코딩된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) @@ -600,9 +663,9 @@ SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS Decod 도입 버전: v1.1 -폼 인코딩 규칙([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))을 사용하여 URL 인코딩된 문자열을 디코딩합니다. 이때 `+` 기호는 공백으로 변환되고, 퍼센트 인코딩된 문자는 디코딩됩니다. +`+` 기호를 공백으로 변환하고 퍼센트 인코딩된 문자를 디코딩하는 폼 인코딩 규칙([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))을 사용하여 URL로 인코딩된 문자열을 디코딩합니다. -**구문** +**Syntax** ```sql decodeURLFormComponent(url) @@ -612,9 +675,9 @@ decodeURLFormComponent(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -URL을 디코딩한 값을 반환합니다. [`String`](/sql-reference/data-types/string) +디코딩된 URL을 반환합니다. [`String`](/sql-reference/data-types/string) **예제** @@ -634,9 +697,9 @@ SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') A 도입된 버전: v1.1 -URL에서 호스트 이름을 추출합니다. +URL에서 호스트 이름(hostname)을 추출합니다. -URL은 프로토콜의 포함 여부와 관계없이 지정할 수 있습니다. +URL은 프로토콜 포함 여부와 관계없이 지정할 수 있습니다. **구문** @@ -644,13 +707,13 @@ URL은 프로토콜의 포함 여부와 관계없이 지정할 수 있습니다. domain(url) ``` -**인자** +**인수** * `url` — URL. [`String`](/sql-reference/data-types/string) **반환 값** -입력 문자열을 URL로 파싱할 수 있으면 호스트 이름을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 문자열을 URL로 해석할 수 있는 경우 호스트 이름을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -668,9 +731,9 @@ SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk'); ## domainRFC \{#domainWithoutWWW\} -도입된 버전: v22.10 +도입 버전: v22.10 -URL에서 호스트 이름을 추출합니다. +URL에서 호스트명을 추출합니다. [`domain`](#domain)과 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구문** @@ -685,7 +748,7 @@ domainRFC(url) **반환 값** -입력 문자열을 URL로 파싱할 수 있으면 호스트 이름을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 문자열을 URL로 파싱할 수 있으면 호스트 이름을, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -705,9 +768,9 @@ SELECT ## domainWithoutWWW \{#domainWithoutWWWRFC\} -도입 버전: v1.1 +도입: v1.1 -URL에서 선행 `www.`가 있을 경우 이를 제거한 도메인을 반환합니다. +URL의 도메인에서 앞에 오는 `www.`를 제거한 값을 반환합니다. **구문** @@ -719,13 +782,13 @@ domainWithoutWWW(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -입력 문자열을 URL로 파싱할 수 있으면 도메인 이름을 반환합니다(`www.` 접두사 제외). 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 문자열을 URL로 파싱할 수 있는 경우 도메인 이름을 반환합니다(선행 `www.`는 제외). 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT domainWithoutWWW('http://paul@www.example.com:80/'); @@ -739,9 +802,9 @@ SELECT domainWithoutWWW('http://paul@www.example.com:80/'); ## domainWithoutWWWRFC \{#encodeURLComponent\} -도입 버전: v1.1 +도입된 버전: v1.1 -도메인 앞에 `www.`가 있는 경우 이를 제거한 도메인을 반환합니다. [`domainWithoutWWW`](#domainWithoutWWW)와 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. +선행 `www.`가 있을 경우 이를 제거한 도메인을 반환합니다. [`domainWithoutWWW`](#domainWithoutWWW)와 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 따릅니다. **구문** @@ -753,9 +816,9 @@ domainWithoutWWWRFC(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** -입력 문자열을 URL로 해석할 수 있는 경우 도메인 이름(앞부분의 `www.` 없이)을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 문자열을 URL로 해석할 수 있으면 도메인 이름(앞부분의 `www.` 제외)을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -775,11 +838,11 @@ SELECT ## encodeURLComponent \{#encodeURLFormComponent\} -도입된 버전: v22.3 +도입 버전: v22.3 -일반 문자열을 입력으로 받아 특수 문자를 해당 문자에 대한 퍼센트 인코딩 값으로 대체한 URL 인코딩(퍼센트 인코딩) 형식으로 변환합니다. +일반 문자열을 입력으로 받아 특수 문자를 해당 퍼센트 인코딩 값으로 대체한 URL 인코딩(퍼센트 인코딩) 형식으로 변환합니다. -**구문** +**Syntax** ```sql encodeURLComponent(url) @@ -809,9 +872,9 @@ SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedUR ## encodeURLFormComponent \{#extractURLParameter\} -도입 버전: v22.3 +도입된 버전: v22.3 -문자열을 폼 인코딩 규칙([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))에 따라 인코딩합니다. 이때 공백은 `+` 기호로 변환되고, 특수 문자는 퍼센트 인코딩됩니다. +공백 문자를 + 기호로 변환하고 특수 문자를 퍼센트 인코딩하는 폼 인코딩 규칙([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))에 따라 문자열을 인코딩합니다. **구문** @@ -843,11 +906,11 @@ SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS En ## extractURLParameter \{#extractURLParameterNames\} -도입: v1.1 +도입 버전: v1.1 -URL에 `name` 매개변수가 존재하면 해당 값을 반환하며, 존재하지 않으면 빈 문자열을 반환합니다. -이 이름을 가진 매개변수가 여러 개 있으면 첫 번째로 나타나는 값을 반환합니다. -함수는 `url` 인자에 포함된 매개변수가 `name` 인자와 동일한 방식으로 인코딩되어 있다고 가정합니다. +URL에 `name` 매개변수가 존재하면 해당 값을 반환하고, 존재하지 않으면 빈 문자열을 반환합니다. +해당 이름을 가진 매개변수가 여러 개 있을 경우 첫 번째 항목을 반환합니다. +함수는 `url` 매개변수에 포함된 매개변수가 `name` 인자와 동일한 방식으로 인코딩되어 있다고 가정합니다. **구문** @@ -858,15 +921,15 @@ extractURLParameter(url, name) **인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `name` — 파라미터 이름. [`String`](/sql-reference/data-types/string) +* `name` — 매개변수 이름. [`String`](/sql-reference/data-types/string) **반환 값** -지정한 이름의 URL 파라미터 값을 반환합니다. [`String`](/sql-reference/data-types/string) +지정된 이름의 URL 매개변수 값을 반환합니다. [`String`](/sql-reference/data-types/string) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'param1'); @@ -882,8 +945,8 @@ SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'p 도입 버전: v1.1 -URL 매개변수 이름에 해당하는 이름 문자열의 배열을 반환합니다. -값은 디코딩하지 않습니다. +URL 매개변수의 이름에 해당하는 문자열 배열을 반환합니다. +값은 디코딩되지 않습니다. **구문** @@ -897,11 +960,11 @@ extractURLParameterNames(url) **반환 값** -URL 파라미터 이름에 해당하는 문자열의 배열을 반환합니다. [`Array(String)`](/sql-reference/data-types/array) +URL 파라미터 이름에 해당하는 문자열 배열을 반환합니다. [`Array(String)`](/sql-reference/data-types/array) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2'); @@ -917,8 +980,8 @@ SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2 도입 버전: v1.1 -URL 매개변수에 해당하는 `name=value` 문자열 배열을 반환합니다. -값은 디코딩되지 않은 상태로 반환됩니다. +URL 매개변수와 일치하는 `name=value` 형식의 문자열 배열을 반환합니다. +값은 디코딩되지 않습니다. **구문** @@ -930,7 +993,7 @@ extractURLParameters(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** URL 매개변수에 대응하는 `name=value` 문자열의 배열을 반환합니다. [`Array(String)`](/sql-reference/data-types/array) @@ -948,20 +1011,20 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); └───────────────────────────────────┘ ``` -## firstSignificantSubdomain \{#firstSignificantSubdomainRFC\} +## firstSignificantSubdomain \{#firstSignificantSubdomainCustom\} -도입 버전: v +도입 버전: v1.1 -"first significant subdomain"을 반환합니다. +「first significant subdomain(첫 번째 중요한 서브도메인)」을 반환합니다. -first significant subdomain은 최상위 도메인이 'com', 'net', 'org', 'co' 중 하나인 경우 2차 도메인이며, -그 외에는 3차 도메인입니다. +첫 번째 중요한 서브도메인은 두 번째 레벨 도메인이 'com', 'net', 'org', 또는 'co'인 경우 해당 두 번째 레벨 도메인입니다. +그 외에는 세 번째 레벨 도메인입니다. -예를 들어, firstSignificantSubdomain('https://news.clickhouse.com/') = 'clickhouse', firstSignificantSubdomain('https://news.clickhouse.com.tr/') = 'clickhouse'입니다. +예를 들어, firstSignificantSubdomain('https://news.clickhouse.com/') = 'clickhouse', firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'입니다. -"중요하지 않은(insignificant)" 2차 도메인 목록 및 기타 구현 세부 사항은 향후 변경될 수 있습니다. +「중요하지 않은(insignificant)」 두 번째 레벨 도메인 목록과 기타 구현 세부 사항은 향후 변경될 수 있습니다. -**구문** +**구문(Syntax)** ```sql ``` @@ -983,11 +1046,77 @@ SELECT firstSignificantSubdomain('https://news.clickhouse.com/') ```response title=Response ``` +## firstSignificantSubdomainCustom \{#firstSignificantSubdomainCustomRFC\} + +도입 버전: v21.1 + +사용자 정의 TLD(최상위 도메인) 목록을 사용하여 URL의 첫 번째 유의미한 서브도메인을 반환합니다. 사용자 정의 TLD 목록 이름은 어떤 도메인 접미사를 최상위 도메인으로 취급할지 정의하는 구성 이름을 가리킵니다. 이는 비표준 TLD 계층 구조를 사용하는 환경에서 유용합니다. 이 FUNCTION은 프로토콜과 그 이후의 모든 부분이 제거되어 있다고 가정하는 단순화된 URL 파싱 알고리즘을 사용합니다. + +**구문** + +```sql +firstSignificantSubdomainCustom(url, tld_list_name) +``` + +**인수** + +* `url` — 서브도메인을 추출할 URL입니다. [`String`](/sql-reference/data-types/string) +* `tld_list_name` — 설정에 정의된 사용자 지정 TLD 목록의 이름입니다. [`String`](/sql-reference/data-types/string) + +**반환 값** + +첫 번째 유의미한 서브도메인을 반환합니다. [`String`](/sql-reference/data-types/string) + +**예시** + +**기본 사용 예** + +```sql title=Query +SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainCustomRFC \{#firstSignificantSubdomainRFC\} + +도입 버전: v22.10 + +`firstSignificantSubdomainCustom`와 유사하지만, 단순화된 알고리즘 대신 RFC 3986을 준수하는 URL 파싱을 사용합니다. + +**구문** + +```sql +firstSignificantSubdomainCustomRFC(url, tld_list_name) +``` + +**인수** + +* `url` — 서브도메인을 추출할 URL입니다. [`String`](/sql-reference/data-types/string) +* `tld_list_name` — 설정에 지정된 사용자 정의 TLD 목록 이름입니다. [`String`](/sql-reference/data-types/string) + +**반환값** + +의미 있는 첫 번째 서브도메인을 반환합니다. [`String`](/sql-reference/data-types/string) + +**예시** + +**기본 사용법** + +```sql title=Query +SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + ## firstSignificantSubdomainRFC \{#fragment\} -도입 버전: v +도입 버전: v22.10 -RFC 1034에서 정의된 기준에 따라 「first significant subdomain」을 반환합니다. +RFC 1034에 따라 「첫 번째 유의미한 서브도메인(first significant subdomain)」을 반환합니다. **구문** @@ -1000,13 +1129,13 @@ RFC 1034에서 정의된 기준에 따라 「first significant subdomain」을 **반환 값** -**예제** +**예시** ## fragment \{#netloc\} 도입 버전: v1.1 -맨 앞의 해시(`#`) 기호를 제외한 fragment 식별자를 반환합니다. +앞에 붙는 해시 기호(#)를 제외한 fragment 식별자(fragment identifier)를 반환합니다. **구문** @@ -1014,13 +1143,13 @@ RFC 1034에서 정의된 기준에 따라 「first significant subdomain」을 fragment(url) ``` -**인자** +**인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환값** +**반환 값** -선행 해시 기호를 제외한 프래그먼트 식별자(fragment identifier)를 반환합니다. [`String`](/sql-reference/data-types/string) +앞에 붙은 해시 기호(#)를 제외한 fragment identifier를 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -1040,7 +1169,7 @@ SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1 도입된 버전: v20.5 -URL에서 네트워크 위치 정보(`username:password@host:port`)를 추출합니다. +URL에서 네트워크 위치(`username:password@host:port`)를 추출합니다. **구문** @@ -1074,7 +1203,7 @@ SELECT netloc('http://paul@www.example.com:80/'); 도입 버전: v1.1 -URL에서 쿼리 문자열을 제외한 경로를 반환합니다. +URL에서 쿼리 문자열을 제외한 경로(path)를 반환합니다. **구문** @@ -1086,7 +1215,7 @@ path(url) * `url` — URL. [`String`](/sql-reference/data-types/string) -**반환 값** +**반환값** 쿼리 문자열을 제외한 URL의 경로를 반환합니다. [`String`](/sql-reference/data-types/string) @@ -1106,9 +1235,9 @@ SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/? ## pathFull \{#port\} -도입 버전: v1.1 +도입된 버전: v1.1 -[`path`](#path)와 동일하지만, URL의 쿼리 문자열과 fragment까지 포함합니다. +[`path`](#path)와 동일하지만, URL의 쿼리 문자열과 프래그먼트까지 포함합니다. **구문** @@ -1122,11 +1251,11 @@ pathFull(url) **반환 값** -쿼리 문자열과 프래그먼트를 포함한 URL 경로를 반환합니다. [`String`](/sql-reference/data-types/string) +쿼리 문자열(query string)과 fragment를 포함한 URL 경로를 반환합니다. [`String`](/sql-reference/data-types/string) -**예제** +**예시** -**사용 예제** +**사용 예시** ```sql title=Query SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functions/?query=value#section'); @@ -1142,7 +1271,7 @@ SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functio 도입: v20.5 -URL의 포트 번호를 반환하며, URL에 포트가 없거나 URL을 파싱할 수 없는 경우 `default_port`를 반환합니다. +URL에서 포트를 반환하며, URL에 포트가 없거나 URL을 파싱할 수 없는 경우 `default_port`를 반환합니다. **구문** @@ -1153,7 +1282,7 @@ port(url[, default_port]) **인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `default_port` — 선택 사항. 반환할 기본 포트 번호입니다. 기본값은 `0`입니다. [`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — 선택적입니다. 반환할 기본 포트 번호입니다. 기본값은 `0`입니다. [`UInt16`](/sql-reference/data-types/int-uint) **반환 값** @@ -1175,9 +1304,9 @@ SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/do ## portRFC \{#protocol\} -도입된 버전: v22.10 +도입 버전: v22.10 -URL에서 포트 번호를 반환하며, URL에 포트가 없거나 URL을 파싱할 수 없는 경우 `default_port`를 반환합니다. +포트 번호를 반환하며, URL에 포트가 없거나 URL을 파싱할 수 없는 경우에는 `default_port`를 반환합니다. [`port`](#port)와 유사하지만, [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구문** @@ -1189,11 +1318,11 @@ portRFC(url[, default_port]) **인수** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `default_port` — 선택 사항. 반환할 기본 포트 번호입니다. 기본값은 `0`입니다. [`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — 선택적입니다. 반환할 기본 포트 번호입니다. 기본값은 `0`입니다. [`UInt16`](/sql-reference/data-types/int-uint) **반환 값** -URL에 포트가 없거나 검증 오류가 발생한 경우 기본 포트를, 그렇지 않으면 URL의 포트를 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) +URL에 포트가 없거나 유효성 검사 오류가 발생한 경우 기본 포트를, 그렇지 않은 경우 해당 포트를 반환합니다. [`UInt16`](/sql-reference/data-types/int-uint) **예시** @@ -1215,7 +1344,7 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass URL에서 프로토콜을 추출합니다. -일반적인 반환 값 예시: http, https, ftp, mailto, tel, magnet. +일반적으로 반환되는 값의 예: http, https, ftp, mailto, tel, magnet. **구문** @@ -1229,7 +1358,7 @@ protocol(url) **반환 값** -URL의 프로토콜을 반환하며, 프로토콜을 결정할 수 없으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +URL의 프로토콜을 반환하며, 프로토콜을 알 수 없으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -1249,9 +1378,9 @@ SELECT protocol('https://clickhouse.com/'); 도입 버전: v1.1 -URL의 쿼리 문자열에서 맨 앞의 물음표(`?`)와 `#` 및 `#` 이후의 모든 부분을 제외한 값을 반환합니다. +URL의 쿼리 문자열에서 처음 물음표(`?`)를 제외하고, `#` 문자와 그 이후의 모든 내용을 제외한 문자열을 반환합니다. -**문법** +**구문** ```sql queryString(url) @@ -1263,7 +1392,7 @@ queryString(url) **반환 값** -URL에서 앞부분의 물음표(`?`)와 프래그먼트(fragment)를 제외한 쿼리 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +URL의 쿼리 문자열에서 선행 물음표와 프래그먼트를 제거한 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -1281,11 +1410,11 @@ SELECT queryString('https://clickhouse.com/docs?query=value¶m=123#section'); ## queryStringAndFragment \{#topLevelDomain\} -도입: v1.1 +도입 버전: v1.1 -URL의 쿼리 문자열과 프래그먼트(fragment) 식별자를 반환합니다. +URL에서 쿼리 문자열과 프래그먼트 식별자를 반환합니다. -**문법** +**구문** ```sql queryStringAndFragment(url) @@ -1297,7 +1426,7 @@ queryStringAndFragment(url) **반환 값** -URL의 쿼리 문자열과 프래그먼트 식별자(fragment identifier)를 반환합니다. [`String`](/sql-reference/data-types/string) +URL의 쿼리 문자열과 프래그먼트 식별자를 반환합니다. [`String`](/sql-reference/data-types/string) **예시** @@ -1315,12 +1444,12 @@ SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value¶m=123 ## topLevelDomain \{#topLevelDomainRFC\} -도입된 버전: v1.1 +도입 버전: v1.1 URL에서 최상위 도메인을 추출합니다. :::note -URL은 프로토콜 포함 여부와 관계없이 지정할 수 있습니다. +URL은 프로토콜이 있어도 없어도 지정할 수 있습니다. 예를 들어: ```text @@ -1343,11 +1472,11 @@ topLevelDomain(url) **반환 값** -입력 문자열을 URL로 구문 분석할 수 있으면 도메인 이름을 반환합니다. 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) +입력 문자열을 URL로 파싱할 수 있는 경우 도메인 이름을 반환합니다. 그렇지 않으면 빈 문자열을 반환합니다. [`String`](/sql-reference/data-types/string) -**예시** +**예제** -**사용 예시** +**사용 예제** ```sql title=Query SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); @@ -1363,7 +1492,7 @@ SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); 도입된 버전: v22.10 -URL에서 최상위 도메인(top-level domain)을 추출합니다. +URL에서 최상위 도메인을 추출합니다. [`topLevelDomain`](#topLevelDomain)과 유사하지만 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)을 준수합니다. **구문** diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md index 67c562deec3..9252558de52 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md @@ -12,7 +12,7 @@ doc_type: 'reference' 새로운 데이터베이스를 생성합니다. ```sql -CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [COMMENT 'Comment'] +CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment'] ``` @@ -61,3 +61,36 @@ SELECT name, comment FROM system.databases WHERE name = 'db_comment'; │ db_comment │ The temporary database │ └────────────┴────────────────────────┘ ``` + + +### SETTINGS \{#settings\} + +#### lazy_load_tables \{#lazy-load-tables\} + +이 설정을 활성화하면 데이터베이스 시작 시 테이블이 완전히 로드되지 않습니다. 대신 각 테이블에 대해 경량 프록시가 생성되고, 실제 테이블 엔진은 처음 접근할 때 구체화됩니다. 이는 많은 테이블이 존재하지만 그중 일부만 실제로 조회되는 데이터베이스에서 시작 시간과 메모리 사용량을 줄이는 데 도움이 됩니다. + +```sql +CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1; +``` + +디스크에 테이블 메타데이터를 저장하는 데이터베이스 엔진(예: `Atomic`, `Ordinary`)에 적용됩니다. 뷰, materialized view, 딕셔너리, 그리고 테이블 함수 기반 테이블은 이 설정과 관계없이 항상 즉시 로드됩니다. + +**사용 시점:** 이 설정은 테이블 수가 매우 많아(수백 또는 수천 개) 그중 일부만 자주 쿼리되는 데이터베이스에 유용합니다. 테이블 엔진 객체 생성, 데이터 파트 스캔, 백그라운드 스레드 초기화를 최초 접근 시점까지 지연하여 서버 시작 시간과 메모리 사용량을 줄입니다. + +**`system.tables`에 대한 영향:** + +* 테이블에 접근하기 전에는 `system.tables`에서 해당 테이블의 엔진이 `TableProxy`로 표시됩니다. 최초 접근 후에는 실제 엔진 이름(예: `MergeTree`)이 표시됩니다. +* 실제 스토리지가 아직 생성되지 않았기 때문에, 로드되지 않은 테이블에 대해서는 `total_rows` 및 `total_bytes`와 같은 컬럼이 `NULL`을 반환합니다. + +**DDL 연산과의 상호작용:** + +* `SELECT`, `INSERT`, `ALTER`, `DROP`는 최초 사용 시 실제 테이블 엔진 로딩을 자동으로 트리거합니다. +* `RENAME TABLE`은 로딩을 트리거하지 않고 동작합니다. +* 일단 테이블이 로드되면, 서버 프로세스가 종료될 때까지 계속 로드된 상태로 유지됩니다. + +**제한 사항:** + +* `system.tables` 메타데이터(예: `total_rows`, `engine`)에 의존하는 모니터링 도구는 로드되지 않은 테이블에 대해 불완전한 정보를 볼 수 있습니다. +* 로드되지 않은 테이블에 대한 최초 쿼리에는 일회성 로딩 비용(저장된 `CREATE TABLE` 문 파싱 및 엔진 초기화)이 발생합니다. + +기본값: `0` (비활성화). diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md deleted file mode 100644 index 0efc1626601..00000000000 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -description: '딕셔너리에 대한 문서' -sidebar_label: '딕셔너리' -sidebar_position: 38 -slug: /sql-reference/statements/create/dictionary -title: 'CREATE DICTIONARY' -doc_type: 'reference' ---- - -지정된 [구조](../../../sql-reference/dictionaries/index.md#dictionary-key-and-fields), [소스](../../../sql-reference/dictionaries/index.md#dictionary-sources), [레이아웃](/sql-reference/dictionaries#storing-dictionaries-in-memory) 및 [수명](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)을 갖는 새로운 [딕셔너리](../../../sql-reference/dictionaries/index.md)를 생성합니다. - -## 구문 \{#syntax\} - -```sql -CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] -( - key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID], - key2 type2 [DEFAULT|EXPRESSION expr2], - attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], - attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] -) -PRIMARY KEY key1, key2 -SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) -LAYOUT(LAYOUT_NAME([param_name param_value])) -LIFETIME({MIN min_val MAX max_val | max_val}) -SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) -COMMENT 'Comment' -``` - -딕셔너리 구조는 속성으로 구성됩니다. 딕셔너리 속성은 테이블 컬럼과 비슷한 방식으로 지정됩니다. 유일하게 필수인 속성은 타입이며, 다른 모든 속성에는 기본값이 사용될 수 있습니다. - -`ON CLUSTER` 절을 사용하면 클러스터에 딕셔너리를 생성할 수 있습니다. 자세한 내용은 [분산 DDL](../../../sql-reference/distributed-ddl.md)을 참조하십시오. - -딕셔너리 [레이아웃](/sql-reference/dictionaries#storing-dictionaries-in-memory)에 따라 하나 이상의 속성을 딕셔너리 키로 지정할 수 있습니다. - -## SOURCE \{#source\} - -딕셔너리의 소스로 사용할 수 있는 것은 다음과 같습니다: - -* 현재 ClickHouse 서비스의 테이블 -* 원격 ClickHouse 서비스의 테이블 -* HTTP(S)로 접근 가능한 파일 -* 다른 데이터베이스 - -### 현재 ClickHouse 서비스의 테이블에서 딕셔너리 생성 \{#create-a-dictionary-from-a-table-in-the-current-clickhouse-service\} - -입력 테이블 `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -딕셔너리 생성하기: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -딕셔너리를 출력합니다: - -```sql -SHOW CREATE DICTIONARY id_value_dictionary; -``` - -```response -CREATE DICTIONARY default.id_value_dictionary -( - `id` UInt64, - `value` String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LIFETIME(MIN 0 MAX 1000) -LAYOUT(FLAT()) -``` - -:::note -[ClickHouse Cloud](https://clickhouse.com)의 SQL 콘솔을 사용할 때 딕셔너리를 생성하려면 `default` 사용자 또는 `default_role` 역할이 부여된 다른 사용자와 비밀번호를 반드시 지정해야 합니다. -::: - -```sql -CREATE USER IF NOT EXISTS clickhouse_admin -IDENTIFIED WITH sha256_password BY 'passworD43$x'; - -GRANT default_role TO clickhouse_admin; - -CREATE DATABASE foo_db; - -CREATE TABLE foo_db.source_table ( - id UInt64, - value String -) ENGINE = MergeTree -PRIMARY KEY id; - -CREATE DICTIONARY foo_db.id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table' USER 'clickhouse_admin' PASSWORD 'passworD43$x' DB 'foo_db' )) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000); -``` - -### 원격 ClickHouse 서비스의 테이블에서 딕셔너리 생성하기 \{#create-a-dictionary-from-a-table-in-a-remote-clickhouse-service\} - -입력 테이블(원격 ClickHouse 서비스에 있는 `source_table`): - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -딕셔너리 생성하기: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(HOST 'HOSTNAME' PORT 9000 USER 'default' PASSWORD 'PASSWORD' TABLE 'source_table' DB 'default')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -### HTTP(S)로 제공되는 파일에서 딕셔너리 생성하기 \{#create-a-dictionary-from-a-file-available-by-https\} - -```sql -CREATE DICTIONARY default.taxi_zone_dictionary -( - `LocationID` UInt16 DEFAULT 0, - `Borough` String, - `Zone` String, - `service_zone` String -) -PRIMARY KEY LocationID -SOURCE(HTTP(URL 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv' FORMAT 'CSVWithNames')) -LIFETIME(MIN 0 MAX 0) -LAYOUT(HASHED()) -``` - -### 다른 데이터베이스에서 딕셔너리 생성 \{#create-a-dictionary-from-another-database\} - -자세한 내용은 [Dictionary sources](/sql-reference/dictionaries#dbms)를 참조하십시오. - -**추가 참고** - -* 더 자세한 내용은 [Dictionaries](../../../sql-reference/dictionaries/index.md) 항목을 참조하십시오. -* [system.dictionaries](../../../operations/system-tables/dictionaries.md) — 이 테이블에는 [Dictionaries](../../../sql-reference/dictionaries/index.md)에 대한 정보가 포함되어 있습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md similarity index 100% rename from i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md rename to i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md new file mode 100644 index 00000000000..c297677a4e3 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md @@ -0,0 +1,179 @@ +--- +description: '딕셔너리 키 및 속성 구성' +sidebar_label: '속성' +sidebar_position: 2 +slug: /sql-reference/statements/create/dictionary/attributes +title: '딕셔너리 속성' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + + + +`structure` 절은 쿼리에서 사용할 수 있는 딕셔너리 키와 필드를 정의합니다. + +XML 설명: + +```xml + + + + Id + + + + + + + ... + + + +``` + +속성은 다음 요소로 정의됩니다: + +* `` — 키 컬럼 +* `` — 데이터 컬럼: 여러 개의 속성을 가질 수 있습니다. + +DDL 쿼리: + +```sql +CREATE DICTIONARY dict_name ( + Id UInt64, + -- attributes +) +PRIMARY KEY Id +... +``` + +속성은 쿼리 본문에서 정의합니다: + +* `PRIMARY KEY` — 키 컬럼 +* `AttrName AttrType` — 데이터 컬럼. 여러 개의 속성을 정의할 수 있습니다. + + +## 키 \{#key\} + +ClickHouse는 다음과 같은 종류의 키를 지원합니다: + +- 숫자 키(Numeric key). `UInt64`. `` 태그에서 정의하거나 `PRIMARY KEY` 키워드를 사용하여 정의합니다. +- 복합 키(Composite key). 서로 다른 타입 값들로 구성된 Set입니다. `` 태그에서 정의하거나 `PRIMARY KEY` 키워드를 사용하여 정의합니다. + +XML 구조에는 `` 또는 `` 중 하나만 포함될 수 있습니다. DDL 쿼리에는 하나의 `PRIMARY KEY`만 포함되어야 합니다. + +:::note +키를 속성(attribute)으로 정의해서는 안 됩니다. +::: + +### 숫자 키 \{#numeric-key\} + +타입: `UInt64`. + +구성 예시: + +```xml + + Id + +``` + +구성 필드: + +* `name` – 키 컬럼의 이름입니다. + +DDL 쿼리의 경우: + +```sql +CREATE DICTIONARY ( + Id UInt64, + ... +) +PRIMARY KEY Id +... +``` + +* `PRIMARY KEY` – 키가 저장된 컬럼의 이름입니다. + + +### 복합 키(Composite Key) \{#composite-key\} + +키는 임의 타입의 필드로 구성된 `tuple`일 수 있습니다. 이 경우 [layout](./layouts/)은 반드시 `complex_key_hashed` 또는 `complex_key_cache`여야 합니다. + +:::tip +복합 키는 하나의 요소만으로도 구성될 수 있습니다. 예를 들어 문자열을 키로 사용할 수 있습니다. +::: + +키 구조는 `` 요소에 설정합니다. 키 필드는 딕셔너리 [속성(attributes)](#dictionary-key-and-fields)과 동일한 형식으로 지정합니다. 예: + +```xml + + + + field1 + String + + + field2 + UInt32 + + ... + +... +``` + +또는 + +```sql +CREATE DICTIONARY ( + field1 String, + field2 UInt32 + ... +) +PRIMARY KEY field1, field2 +... +``` + +`dictGet*` FUNCTION에 대한 쿼리에서는 키로서 튜플이 전달됩니다. 예를 들어 `dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))`와 같습니다. + + +## 속성 \{#attributes\} + +구성 예: + +```xml + + ... + + Name + ClickHouseDataType + + rand64() + true + true + true + + +``` + +또는 + +```sql +CREATE DICTIONARY somename ( + Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID +) +``` + +구성 항목: + + +| Tag | Description | Required | +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `name` | 컬럼 이름입니다. | 예 | +| `type` | ClickHouse 데이터 타입: [UInt8](../../../data-types/int-uint.md), [UInt16](../../../data-types/int-uint.md), [UInt32](../../../data-types/int-uint.md), [UInt64](../../../data-types/int-uint.md), [Int8](../../../data-types/int-uint.md), [Int16](../../../data-types/int-uint.md), [Int32](../../../data-types/int-uint.md), [Int64](../../../data-types/int-uint.md), [Float32](../../../data-types/float.md), [Float64](../../../data-types/float.md), [UUID](../../../data-types/uuid.md), [Decimal32](../../../data-types/decimal.md), [Decimal64](../../../data-types/decimal.md), [Decimal128](../../../data-types/decimal.md), [Decimal256](../../../data-types/decimal.md),[Date](../../../data-types/date.md), [Date32](../../../data-types/date32.md), [DateTime](../../../data-types/datetime.md), [DateTime64](../../../data-types/datetime64.md), [String](../../../data-types/string.md), [Array](../../../data-types/array.md).
    ClickHouse는 딕셔너리에서 값을 가져와 지정된 데이터 타입으로 형변환하려고 시도합니다. 예를 들어 MySQL의 경우, MySQL 소스 테이블에서 필드는 `TEXT`, `VARCHAR`, `BLOB`일 수 있지만, ClickHouse에서는 `String`으로 저장될 수 있습니다.
    [널 허용(Nullable)](../../../data-types/nullable.md)은 현재 [Flat](./layouts/flat), [Hashed](./layouts/hashed), [ComplexKeyHashed](./layouts/hashed#complex_key_hashed), [Direct](./layouts/direct), [ComplexKeyDirect](./layouts/direct#complex_key_direct), [RangeHashed](./layouts/range-hashed), Polygon, [Cache](./layouts/cache), [ComplexKeyCache](./layouts/cache#complex_key_cache), [SSDCache](./layouts/ssd-cache), [SSDComplexKeyCache](./layouts/ssd-cache#complex_key_ssd_cache) 딕셔너리에서 지원됩니다. [IPTrie](./layouts/ip-trie) 딕셔너리에서는 `Nullable` 타입이 지원되지 않습니다. | 예 | +| `null_value` | 존재하지 않는 요소에 대한 기본값입니다.
    예제에서는 빈 문자열입니다. [NULL](../../../syntax.md#null) 값은 `Nullable` 타입(위의 타입 설명 행 참조)에 대해서만 사용할 수 있습니다. | 예 | +| `expression` | ClickHouse가 값에 대해 실행하는 [식(Expression)](../../../syntax.md#expressions)입니다.
    이 식은 원격 SQL 데이터베이스의 컬럼 이름일 수 있습니다. 이를 사용하여 원격 컬럼의 별칭을 만들 수 있습니다.

    기본값: 식이 없습니다. | 아니요 | +| `hierarchical` | `true`이면, 현재 키의 부모 키 값을 포함하는 속성입니다. [계층형 딕셔너리(Hierarchical Dictionaries)](./layouts/hierarchical)를 참고하십시오.

    기본값: `false`입니다. | 아니요 | +| `injective` | `id -> attribute` 대응이 [단사(injective)](https://en.wikipedia.org/wiki/Injective_function)인지 여부를 나타내는 플래그입니다.
    `true`이면, ClickHouse는 단사인 딕셔너리에 대한 요청을 `GROUP BY` 절 뒤에 자동으로 추가할 수 있습니다. 일반적으로 이러한 요청의 양을 크게 줄여 줍니다.

    기본값: `false`입니다. | 아니요 | +| `is_object_id` | 쿼리가 MongoDB 문서에 대해 `ObjectID`로 실행되는지 여부를 나타내는 플래그입니다.

    기본값: `false`입니다. | 아니요 | \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md new file mode 100644 index 00000000000..1ae9789c940 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md @@ -0,0 +1,57 @@ +--- +description: 'ClickHouse에 내장된 geobase 딕셔너리' +sidebar_label: '내장 딕셔너리' +sidebar_position: 6 +slug: /sql-reference/statements/create/dictionary/embedded +title: '내장(geobase) 딕셔너리' +doc_type: 'reference' +--- + +import SelfManaged from '@site/i18n/ko/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; + + + +ClickHouse에는 지오베이스(geobase) 작업을 위한 내장 기능이 포함되어 있습니다. + +이를 통해 다음과 같은 작업을 할 수 있습니다. + +* 특정 지역의 ID로 원하는 언어의 지역 이름을 가져옵니다. +* 특정 지역의 ID로 도시, 구역, 연방 지구, 국가, 대륙의 ID를 가져옵니다. +* 한 지역이 다른 지역에 속하는지 확인합니다. +* 상위 지역의 체인을 가져옵니다. + +모든 함수는 지역 소속에 대한 서로 다른 관점을 동시에 사용할 수 있는 기능인 「translocality」를 지원합니다. 자세한 내용은 「웹 분석 딕셔너리 작업을 위한 함수」 섹션을 참조하십시오. + +내부 딕셔너리는 기본 패키지에서 비활성화되어 있습니다. +이를 활성화하려면 서버 설정 파일에서 `path_to_regions_hierarchy_file` 및 `path_to_regions_names_files` 파라미터의 주석을 해제하십시오. + +지오베이스는 텍스트 파일에서 로드됩니다. + +`regions_hierarchy*.txt` 파일을 `path_to_regions_hierarchy_file` 디렉터리에 두십시오. 이 설정 파라미터에는 `regions_hierarchy.txt` 파일(기본 지역 계층 구조)의 경로가 포함되어야 하며, 다른 파일(`regions_hierarchy_ua.txt`)도 동일한 디렉터리에 위치해야 합니다. + +`regions_names_*.txt` 파일은 `path_to_regions_names_files` 디렉터리에 두십시오. + +이 파일들을 직접 생성할 수도 있습니다. 파일 형식은 다음과 같습니다. + +`regions_hierarchy*.txt`: TabSeparated (헤더 없음), 컬럼: + +* 지역 ID (`UInt32`) +* 상위 지역 ID (`UInt32`) +* 지역 유형 (`UInt8`): 1 - 대륙, 3 - 국가, 4 - 연방 지구, 5 - 지역, 6 - 도시; 다른 유형은 값이 없습니다. +* 인구 (`UInt32`) — 선택적 컬럼 + +`regions_names_*.txt`: TabSeparated (헤더 없음), 컬럼: + +* 지역 ID (`UInt32`) +* 지역 이름 (`String`) — 탭 또는 줄 바꿈 문자를 포함할 수 없습니다. 이스케이프된 경우에도 포함할 수 없습니다. + +RAM에 저장하기 위해 평면 배열을 사용합니다. 이 때문에 ID는 100만을 넘지 않아야 합니다. + +딕셔너리는 서버를 재시작하지 않고도 업데이트할 수 있습니다. 단, 사용 가능한 딕셔너리의 집합 자체는 업데이트되지 않습니다. +업데이트를 위해 파일의 수정 시간을 확인합니다. 파일이 변경된 경우 딕셔너리가 업데이트됩니다. +변경 사항을 확인하는 주기는 `builtin_dictionaries_reload_interval` 파라미터로 설정합니다. +(최초 사용 시 로딩을 제외한) 딕셔너리 업데이트는 쿼리를 블록하지 않습니다. 업데이트 중에는 쿼리가 이전 버전 딕셔너리를 사용합니다. 업데이트 도중 오류가 발생하면, 오류는 서버 로그에 기록되며 쿼리는 계속해서 이전 버전 딕셔너리를 사용합니다. + +지오베이스를 포함하는 딕셔너리를 주기적으로 업데이트할 것을 권장합니다. 업데이트 시에는 새 파일을 생성하여 별도의 위치에 기록하십시오. 모든 준비가 완료되면 서버에서 사용 중인 파일 이름으로 변경하십시오. + +OS 식별자 및 검색 엔진을 다루기 위한 함수도 있지만, 사용하지 않는 것이 좋습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md new file mode 100644 index 00000000000..fe85ce41d08 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md @@ -0,0 +1,74 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/cache +title: 'cache 딕셔너리 레이아웃' +sidebar_label: 'cache' +sidebar_position: 6 +description: '딕셔너리를 고정 크기의 메모리 캐시에 저장합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`cached` 딕셔너리 레이아웃 타입은 고정된 개수의 셀로 구성된 캐시에 딕셔너리를 저장합니다. +이 셀에는 자주 사용되는 요소가 포함됩니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + +딕셔너리를 조회할 때는 먼저 캐시를 검색합니다. 각 데이터 블록마다, 캐시에서 찾을 수 없거나 오래된 키들을 `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`로 소스에서 요청합니다. 수신한 데이터는 캐시에 기록됩니다. + +키를 딕셔너리에서 찾을 수 없으면 캐시 업데이트 작업이 생성되어 업데이트 큐에 추가됩니다. 업데이트 큐 속성은 `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds`, `max_threads_for_updates` 설정으로 제어할 수 있습니다. + +캐시 딕셔너리의 경우, 캐시 내 데이터의 만료 [lifetime](../lifetime.md#refreshing-dictionary-data-using-lifetime)을 설정할 수 있습니다. 셀에 데이터를 로드한 이후 `lifetime`보다 더 많은 시간이 경과하면 해당 셀의 값은 사용되지 않고 키는 만료된 것으로 간주됩니다. 이 키는 다음에 다시 사용해야 할 때 재요청됩니다. 이 동작은 `allow_read_expired_keys` 설정으로 구성할 수 있습니다. + +이는 딕셔너리를 저장하는 방식들 중 가장 비효율적인 방법입니다. 캐시의 성능은 설정을 얼마나 올바르게 구성했는지와 사용 시나리오에 크게 의존합니다. 캐시 타입 딕셔너리는 적중률이 충분히 높을 때(권장 99% 이상)만 성능이 좋습니다. 평균 적중률은 [system.dictionaries](../../../../operations/system-tables/dictionaries.md) 테이블에서 확인할 수 있습니다. + +`allow_read_expired_keys` 설정이 1로 설정된 경우(기본값은 0), 딕셔너리는 비동기 업데이트를 지원할 수 있습니다. 클라이언트가 키를 요청했고 모든 키가 캐시에 있으나 일부가 만료된 경우, 딕셔너리는 클라이언트에게 만료된 키를 그대로 반환한 뒤 소스에 비동기적으로 재요청합니다. + +캐시 성능을 개선하려면 `LIMIT`가 있는 서브쿼리를 사용하고, 딕셔너리 관련 FUNCTION은 외부에서 호출하십시오. + +모든 유형의 소스를 지원합니다. + +설정 예: + + + + ```sql + LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) + ``` + + + + ```xml + + + + 1000000000 + + 0 + + 100000 + + 10 + + 60000 + + 4 + + + ``` + + + +
    + +충분히 큰 캐시 크기를 설정하십시오. 셀의 개수는 실험을 통해 결정해야 합니다: + +1. 값을 하나 설정합니다. +2. 캐시가 완전히 찰 때까지 쿼리를 실행합니다. +3. `system.dictionaries` 테이블을 사용하여 메모리 사용량을 확인합니다. +4. 원하는 메모리 사용량에 도달할 때까지 셀의 개수를 늘리거나 줄입니다. + +:::note +이 레이아웃의 소스로 ClickHouse를 사용하는 것은 권장되지 않습니다. 딕셔너리 조회에는 임의 포인트 읽기(random point reads)가 필요하며, 이는 ClickHouse가 최적화해 둔 액세스 패턴이 아닙니다. +::: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md new file mode 100644 index 00000000000..eec3859eede --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md @@ -0,0 +1,47 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/direct +title: 'direct 딕셔너리 레이아웃' +sidebar_label: 'direct' +sidebar_position: 9 +description: '캐시 없이 소스를 직접 조회하는 딕셔너리 레이아웃입니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## direct \{#direct\} + +딕셔너리는 메모리에 저장되지 않고, 요청을 처리하는 동안마다 소스에 직접 접근합니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + +로컬 파일을 제외한 모든 유형의 [소스](../sources/#dictionary-sources)를 지원합니다. + +구성 예시는 다음과 같습니다: + + + + +```sql +LAYOUT(DIRECT()) +``` + + + + +```xml + + + +``` + + + + +
    + +## complex_key_direct \{#complex_key_direct\} + +이 스토리지 유형은 복합 [키](../keys-and-fields.md#dictionary-key-and-fields)를 사용할 때 사용합니다. `direct` 유형과 유사합니다. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md new file mode 100644 index 00000000000..c2fb411151f --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md @@ -0,0 +1,48 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/flat +title: '플랫 딕셔너리 레이아웃' +sidebar_label: '플랫' +sidebar_position: 2 +description: '딕셔너리를 메모리에 플랫 배열(flat array) 형태로 저장합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`flat` 레이아웃을 사용하면 딕셔너리가 flat 배열(flat array) 형태로 메모리에 완전히 저장됩니다. +사용되는 메모리 양은 (사용된 공간 기준으로) 가장 큰 키 값의 크기에 비례합니다. + +:::tip +이 레이아웃 유형은 딕셔너리를 저장하는 모든 방식 가운데 가장 뛰어난 성능을 제공합니다. +::: + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입이며 값은 `max_array_size` (기본값 — 500,000)로 제한됩니다. +딕셔너리를 생성할 때 더 큰 키가 발견되면 ClickHouse는 예외를 발생시키고 딕셔너리를 생성하지 않습니다. +딕셔너리 flat 배열의 초기 크기는 `initial_array_size` 설정(기본값 — 1024)으로 제어됩니다. + +모든 유형의 소스를 지원합니다. +딕셔너리를 업데이트할 때 데이터(파일 또는 테이블에서)는 전체를 한 번에 읽습니다. + +구성 예: + + + + ```sql + LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) + ``` + + + + ```xml + + + 50000 + 5000000 + + + ``` + + + +
    diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md new file mode 100644 index 00000000000..f9c7c0f116c --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md @@ -0,0 +1,71 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed-array +title: 'hashed_array 딕셔너리 레이아웃 유형' +sidebar_label: 'hashed_array' +sidebar_position: 4 +description: '속성 배열이 있는 해시 테이블을 사용하여 딕셔너리를 메모리에 저장합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed_array \{#hashed_array\} + +딕셔너리는 통째로 메모리에 저장됩니다. 각 속성은 배열에 저장됩니다. 키 속성은 값이 속성 배열의 인덱스인 해시 테이블 형태로 저장됩니다. 딕셔너리는 임의의 식별자를 가진 임의 개수의 요소를 포함할 수 있습니다. 실제로는 키 개수가 수천만 개에 이를 수 있습니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + +모든 유형의 소스를 지원합니다. 업데이트 시에는 데이터(파일 또는 테이블에서)가 전체가 한 번에 읽힙니다. + +구성 예시는 다음과 같습니다. + + + + +```sql +LAYOUT(HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + + +``` + + + + +
    + +## complex_key_hashed_array \{#complex_key_hashed_array\} + +이 저장소 유형은 복합 [키](../keys-and-fields.md#dictionary-key-and-fields)를 위한 것입니다. [hashed_array](#hashed_array)와 유사합니다. + +구성 예: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md new file mode 100644 index 00000000000..2ebbbd529d4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md @@ -0,0 +1,187 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed +title: 'hashed 딕셔너리 레이아웃 유형' +sidebar_label: 'hashed' +sidebar_position: 3 +description: '해시 테이블을 사용하여 딕셔너리를 메모리에 저장합니다: hashed, sparse_hashed, complex_key_hashed, complex_key_sparse_hashed' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed \{#hashed\} + +딕셔너리는 해시 테이블(hash table) 형태로 전체가 메모리에 저장됩니다. 딕셔너리에는 어떤 식별자를 가진 요소든 개수 제한 없이 포함될 수 있습니다. 실제로는 키 개수가 수천만 개에 이를 수 있습니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + +모든 유형의 소스를 지원합니다. 업데이트 시에는 데이터(파일 또는 테이블)는 전체를 한 번에 읽습니다. + +구성 예: + + + + +```sql +LAYOUT(HASHED()) +``` + + + + +```xml + + + +``` + + + + +
    + +설정이 포함된 구성 예: + + + + +```sql +LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + 10 + + + 10000 + + + 0.5 + + +``` + + + + +
    + +## sparse_hashed \{#sparse_hashed\} + +`hashed`와 유사하지만, 메모리를 더 적게 사용하는 대신 CPU 사용량이 더 많습니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + +구성 예시: + + + + +```sql +LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +이 딕셔너리 타입에서도 `shards`를 사용할 수 있으며, `sparse_hashed`는 `hashed`보다 느리므로 `hashed`보다 `sparse_hashed`에서 `shards` 사용이 더 중요합니다. + +## complex_key_hashed \{#complex_key_hashed\} + +이 저장 방식은 복합 [키](../keys-and-fields.md#dictionary-key-and-fields)에 사용합니다. `hashed`와 유사합니다. + +구성 예시는 다음과 같습니다. + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +## complex_key_sparse_hashed \{#complex_key_sparse_hashed\} + +이 저장소 유형은 복합 [키](../keys-and-fields.md#dictionary-key-and-fields)에 사용되는 유형입니다. [sparse_hashed](#sparse_hashed)와 유사합니다. + +구성 예제: + + + + +```sql +LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md new file mode 100644 index 00000000000..a4ae6153619 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md @@ -0,0 +1,94 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hierarchical +title: '계층형 딕셔너리' +sidebar_label: '계층형' +sidebar_position: 10 +description: '부모-자식 키 관계를 사용하는 계층형 딕셔너리를 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## 계층형 딕셔너리 \{#hierarchical-dictionaries\} + +ClickHouse는 [숫자 키](../keys-and-fields.md#numeric-key)를 사용하는 계층형 딕셔너리를 지원합니다. + +다음과 같은 계층 구조를 살펴보십시오: + +```text +0 (Common parent) +│ +├── 1 (Russia) +│ │ +│ └── 2 (Moscow) +│ │ +│ └── 3 (Center) +│ +└── 4 (Great Britain) + │ + └── 5 (London) +``` + +이 계층은 다음 딕셔너리 테이블로 표현할 수 있습니다. + +| region_id | parent_region | region_name | +| ------------- | ----------------- | --------------- | +| 1 | 0 | Russia | +| 2 | 1 | Moscow | +| 3 | 2 | Center | +| 4 | 0 | Great Britain | +| 5 | 4 | London | + +이 테이블에는 요소의 가장 가까운 부모 키를 담고 있는 `parent_region` 컬럼이 있습니다. + +ClickHouse는 외부 딕셔너리 속성에 대해 계층(hierarchical) 속성을 지원합니다. 이 속성을 사용하면 위에서 설명한 것과 유사한 방식으로 계층형 딕셔너리를 구성할 수 있습니다. + +[dictGetHierarchy](../../../functions/ext-dict-functions.md#dictGetHierarchy) 함수는 요소의 부모 체인(상위 계층)을 가져올 수 있습니다. + +이 예제에서 딕셔너리의 구조는 다음과 같습니다: + + + + ```sql + CREATE DICTIONARY regions_dict + ( + region_id UInt64, + parent_region UInt64 DEFAULT 0 HIERARCHICAL, + region_name String DEFAULT '' + ) + PRIMARY KEY region_id + SOURCE(...) + LAYOUT(HASHED()) + LIFETIME(3600); + ``` + + + + ```xml + + + + region_id + + + + parent_region + UInt64 + 0 + true + + + + region_name + String + + + + + + ``` + + + +
    diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md new file mode 100644 index 00000000000..60412441bfe --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md @@ -0,0 +1,126 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ip-trie +title: 'ip_trie 딕셔너리 레이아웃' +sidebar_label: 'ip_trie' +sidebar_position: 10 +description: 'IP 주소 프리픽스(prefix)를 빠르게 조회하기 위해 딕셔너리를 트라이(trie) 구조로 저장합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`ip_trie` 딕셔너리는 네트워크 프리픽스를 기준으로 IP 주소를 조회하도록 설계된 구조입니다. +CIDR 표기법으로 IP 범위를 저장하며, 주어진 IP가 어떤 프리픽스(예: 서브넷 또는 ASN 범위)에 속하는지 빠르게 판별할 수 있어 지리적 위치 조회나 네트워크 분류와 같은 IP 기반 검색에 매우 적합합니다. + + + +## YAMLRegExpTree 소스를 사용하는 정규식 트리 딕셔너리 \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} + + + +정규식 트리 딕셔너리는 ClickHouse 오픈 소스 버전에서 [`YAMLRegExpTree`](../sources/yamlregexptree.md) 소스를 사용하여 정의합니다. 이때 정규식 트리가 포함된 YAML 파일의 경로를 해당 소스에 전달합니다. + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +... +``` + +딕셔너리 소스 [`YAMLRegExpTree`](../sources/yamlregexptree.md)는 정규식 트리의 구조를 나타냅니다. 예를 들면 다음과 같습니다. + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +이 설정은 정규식 트리 노드 목록으로 구성됩니다. 각 노드는 다음과 같은 구조를 가집니다. + +* **regexp**: 노드의 정규 표현식입니다. +* **attributes**: 사용자 정의 딕셔너리 속성(attribute) 목록입니다. 이 예제에는 `name`과 `version` 두 개의 속성이 있습니다. 첫 번째 노드는 두 속성을 모두 정의합니다. 두 번째 노드는 `name` 속성만 정의합니다. `version` 속성은 두 번째 노드의 자식 노드에서 제공합니다. + * 속성 값에는 매칭된 정규 표현식의 캡처 그룹을 참조하는 **역참조(back reference)** 를 포함할 수 있습니다. 예제에서 첫 번째 노드의 `version` 속성 값은 정규 표현식의 캡처 그룹 `(\d+[\.\d]*)` 에 대한 역참조 `\1` 로 구성됩니다. 역참조 번호는 1에서 9까지이며 `$1` 또는 `\1` (번호 1의 경우)처럼 표기합니다. 역참조는 쿼리 실행 중에 매칭된 캡처 그룹으로 치환됩니다. +* **child nodes**: 각자 자신의 attributes와 (필요한 경우) 자식 노드를 가지는 regexp 트리 노드의 자식 목록입니다. 문자열 매칭은 깊이 우선 방식으로 진행됩니다. 어떤 문자열이 regexp 노드와 매칭되면, 딕셔너리는 해당 문자열이 그 노드의 자식 노드와도 매칭되는지 확인합니다. 그렇게 되면, 가장 깊이 매칭된 노드의 attributes가 할당됩니다. 자식 노드의 속성은 동일한 이름을 가진 상위 노드의 속성을 덮어씁니다. YAML 파일에서 child node의 이름은 위 예제의 `versions` 와 같이 임의로 지정할 수 있습니다. + +Regexp 트리 딕셔너리에는 `dictGet`, `dictGetOrDefault`, `dictGetAll` 함수만을 사용해 접근할 수 있습니다. 예를 들면 다음과 같습니다. + +```sql title="Query" +SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); +``` + +```text title="Response" +┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ +│ ('Android','12') │ +└─────────────────────────────────────────────────────────────────┘ +``` + +이 경우, 먼저 최상위 계층의 두 번째 노드에서 정규식 `\d+/tclwebkit(?:\d+[\.\d]*)`과 일치합니다. +이후 딕셔너리는 자식 노드를 계속 탐색하여 문자열이 `3[12]/tclwebkit`에도 일치한다는 것을 확인합니다. +그 결과 속성 `name`의 값은 (첫 번째 계층에서 정의된) `Android`가 되고, 속성 `version`의 값은 (자식 노드에서 정의된) `12`가 됩니다. + +정교한 YAML 구성 파일을 사용하면 정규식 트리 딕셔너리를 사용자 에이전트 문자열 파서로 활용할 수 있습니다. +ClickHouse는 [uap-core](https://github.com/ua-parser/uap-core)를 지원하며, 기능 테스트 [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh)에서 사용 방법을 확인할 수 있습니다. + + +### 속성 값 수집 \{#collecting-attribute-values\} + +여러 개의 정규식에 매칭된 값들을 리프 노드의 값뿐만 아니라 함께 반환해야 하는 경우가 있습니다. 이때는 전용 함수 [`dictGetAll`](../../../functions/ext-dict-functions.md#dictGetAll)을 사용할 수 있습니다. 어떤 노드가 타입 `T`의 속성 값을 가지면 `dictGetAll`은 0개 이상의 값을 포함하는 `Array(T)`를 반환합니다. + +기본적으로 키마다 반환되는 매치(일치 항목)의 개수에는 상한이 없습니다. 선택적인 네 번째 인수로 상한을 `dictGetAll`에 전달할 수 있습니다. 배열은 *위상 순서(topological order)*로 채워지며, 이는 자식 노드가 부모 노드보다 앞에 오고, 형제 노드는 소스에 나온 순서를 따른다는 의미입니다. + +예시: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + tag String, + topological_index Int64, + captured Nullable(String), + parent String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0) +``` + +```yaml +# /var/lib/clickhouse/user_files/regexp_tree.yaml +- regexp: 'clickhouse\.com' + tag: 'ClickHouse' + topological_index: 1 + paths: + - regexp: 'clickhouse\.com/docs(.*)' + tag: 'ClickHouse Documentation' + topological_index: 0 + captured: '\1' + parent: 'ClickHouse' + +- regexp: '/docs(/|$)' + tag: 'Documentation' + topological_index: 2 + +- regexp: 'github.com' + tag: 'GitHub' + topological_index: 3 + captured: 'NULL' +``` + +```sql +CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; +INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); +SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; +``` + +결과: + +```text +┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ +│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ +│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ +│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ +└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ +``` + + +### 매칭 모드 \{#matching-modes\} + +패턴 매칭 동작은 특정 딕셔너리 설정으로 조정할 수 있습니다: + +- `regexp_dict_flag_case_insensitive`: 대소문자를 구분하지 않는 매칭을 사용합니다 (기본값은 `false`입니다). 개별 표현식에서는 `(?i)` 및 `(?-i)`로 재정의할 수 있습니다. +- `regexp_dict_flag_dotall`: '.'이 개행 문자와도 매칭되도록 허용합니다 (기본값은 `false`입니다). + +## ClickHouse Cloud에서 정규식 트리 딕셔너리 사용 \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} + +[`YAMLRegExpTree`](../sources/yamlregexptree.md) 소스는 ClickHouse 오픈 소스에서는 동작하지만 ClickHouse Cloud에서는 동작하지 않습니다. +ClickHouse Cloud에서 regexp 트리 딕셔너리를 사용하려면, 먼저 ClickHouse 오픈 소스에서 YAML 파일을 사용해 로컬에 regexp 트리 딕셔너리를 생성한 다음, `dictionary` 테이블 함수와 [INTO OUTFILE](../../select/into-outfile.md) 절을 사용하여 이 딕셔너리를 CSV 파일로 내보냅니다. + +```sql +SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') +``` + +CSV 파일의 내용은 다음과 같습니다. + +```text +1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" +2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" +3,2,"33/tclwebkit","['version']","['13']" +4,2,"3[12]/tclwebkit","['version']","['12']" +5,2,"3[12]/tclwebkit","['version']","['11']" +6,2,"3[12]/tclwebkit","['version']","['10']" +``` + +덤프된 파일의 스키마는 다음과 같습니다. + +* `id UInt64`: RegexpTree 노드의 id입니다. +* `parent_id UInt64`: 노드의 부모 id입니다. +* `regexp String`: 정규표현식 문자열입니다. +* `keys Array(String)`: 사용자 정의 속성 이름입니다. +* `values Array(String)`: 사용자 정의 속성 값입니다. + +ClickHouse Cloud에서 딕셔너리를 생성하려면, 먼저 아래 테이블 구조로 `regexp_dictionary_source_table` 테이블을 생성합니다. + +```sql +CREATE TABLE regexp_dictionary_source_table +( + id UInt64, + parent_id UInt64, + regexp String, + keys Array(String), + values Array(String) +) ENGINE=Memory; +``` + +그런 다음 로컬 CSV를 다음과 같이 업데이트합니다. + +```bash +clickhouse client \ + --host MY_HOST \ + --secure \ + --password MY_PASSWORD \ + --query " + INSERT INTO regexp_dictionary_source_table + SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') + FORMAT CSV" < regexp_dict.csv +``` + +자세한 내용은 [Insert Local Files](/integrations/data-ingestion/insert-local-files)를 참조하십시오. 소스 테이블을 초기화한 후에는 테이블 소스를 기반으로 RegexpTree를 생성할 수 있습니다. + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +PRIMARY KEY(regexp) +SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) +LIFETIME(0) +LAYOUT(regexp_tree); +``` diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md new file mode 100644 index 00000000000..fc477cdb8f9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md @@ -0,0 +1,55 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ssd-cache +title: 'ssd_cache 딕셔너리 레이아웃 유형' +sidebar_label: 'ssd_cache' +sidebar_position: 8 +description: '메모리 내 인덱스를 사용하여 딕셔너리 데이터를 SSD에 저장하는 ssd_cache 또는 complex_key_ssd_cache 유형' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## ssd_cache \{#ssd_cache\} + +`cache`와 유사하지만 데이터는 SSD에, 인덱스는 RAM에 저장합니다. 업데이트 큐와 관련된 모든 캐시 딕셔너리 설정은 SSD 캐시 딕셔너리에도 적용할 수 있습니다. + +딕셔너리 키는 [UInt64](../../../data-types/int-uint.md) 타입입니다. + + + + +```sql +LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 + PATH '/var/lib/clickhouse/user_files/test_dict')) +``` + + + + +```xml + + + + 4096 + + 16777216 + + 131072 + + 1048576 + + /var/lib/clickhouse/user_files/test_dict + + +``` + + + + +
    + +## complex_key_ssd_cache \{#complex_key_ssd_cache\} + +이 저장소 유형은 복합 [키](../keys-and-fields.md#dictionary-key-and-fields)와 함께 사용하는 것입니다. `ssd_cache`와 유사합니다. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md new file mode 100644 index 00000000000..17b95f06c7a --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md @@ -0,0 +1,144 @@ +--- +description: '자동 갱신을 위한 딕셔너리 LIFETIME 설정' +sidebar_label: 'LIFETIME' +sidebar_position: 5 +slug: /sql-reference/statements/create/dictionary/lifetime +title: 'LIFETIME를 사용한 딕셔너리 데이터 갱신' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + +ClickHouse는 `LIFETIME` 태그(초 단위로 정의됨)에 따라 주기적으로 딕셔너리를 업데이트합니다. +`LIFETIME`은 전체를 다운로드하는 딕셔너리에 대한 업데이트 주기이며, 캐시된 딕셔너리에 대한 무효화 주기입니다. + +업데이트 중에도 이전 버전의 딕셔너리를 계속 조회할 수 있습니다. +딕셔너리 업데이트는 최초 사용을 위해 로드되는 시점을 제외하고 쿼리를 차단하지 않습니다. +업데이트 중 오류가 발생하면 해당 오류는 서버 로그에 기록되며, 쿼리는 이전 버전의 딕셔너리를 계속 사용할 수 있습니다. +딕셔너리 업데이트가 성공하면 이전 버전의 딕셔너리는 [원자적으로](/concepts/glossary#atomicity) 교체됩니다. + +설정 예: + + + +```xml + + ... + 300 + ... + +``` + +또는 + +```sql +CREATE DICTIONARY (...) +... +LIFETIME(300) +... +``` + +`0` (`LIFETIME(0)`)으로 설정하면 딕셔너리가 업데이트되지 않습니다. + +업데이트를 위한 시간 간격을 설정할 수 있으며, ClickHouse는 이 범위 내에서 균일하게 무작위로 선택된 시간을 사용합니다. 이는 다수의 서버에서 업데이트할 때 딕셔너리 소스에 가해지는 부하를 분산하기 위해 필요합니다. + +설정 예시: + +```xml + + ... + + 300 + 360 + + ... + +``` + +또는 + +```sql +LIFETIME(MIN 300 MAX 360) +``` + +`0`과 `0`인 경우, ClickHouse는 타임아웃에 의해 딕셔너리를 다시 로드하지 않습니다. +이때 딕셔너리 설정 파일이 변경되었거나 `SYSTEM RELOAD DICTIONARY` 명령이 실행된 경우에는 ClickHouse가 더 일찍 딕셔너리를 다시 로드할 수 있습니다. + +딕셔너리를 업데이트할 때 ClickHouse 서버는 [source](./sources/) 유형에 따라 서로 다른 방식으로 동작합니다. + +* 텍스트 파일의 경우 수정 시간을 확인합니다. 시간이 이전에 기록된 시간과 다르면 딕셔너리가 업데이트됩니다. +* 다른 소스의 딕셔너리는 기본적으로 매번 업데이트됩니다. + +다른 소스(ODBC, PostgreSQL, ClickHouse 등)의 경우, 매번이 아니라 실제로 변경된 경우에만 딕셔너리를 업데이트하도록 쿼리를 설정할 수 있습니다. 이를 위해 다음 단계를 수행하십시오. + +* 딕셔너리용 테이블에는 소스 데이터가 업데이트될 때마다 항상 변경되는 필드가 있어야 합니다. +* 소스 설정에는 변경되는 필드를 가져오는 쿼리를 지정해야 합니다. ClickHouse 서버는 쿼리 결과를 행으로 해석하며, 이 행이 이전 상태와 비교하여 변경된 경우 딕셔너리가 업데이트됩니다. [source](./sources/)에 대한 설정에서 `` 필드에 이 쿼리를 지정합니다. + +설정 예: + +```xml + + ... + + ... + SELECT update_time FROM dictionary_source where id = 1 + + ... + +``` + +또는 + +```sql +... +SOURCE(ODBC(... invalidate_query 'SELECT update_time FROM dictionary_source where id = 1')) +... +``` + +`Cache`, `ComplexKeyCache`, `SSDCache`, `SSDComplexKeyCache` 딕셔너리는 동기 및 비동기 업데이트를 모두 지원합니다. + +또한 `Flat`, `Hashed`, `HashedArray`, `ComplexKeyHashed` 딕셔너리는 이전 업데이트 이후에 변경된 데이터만 요청하도록 설정할 수도 있습니다. 딕셔너리 소스 구성에서 `update_field`가 지정된 경우, 초 단위의 이전 업데이트 시각 값이 데이터 요청에 포함됩니다. 소스 유형(Executable, HTTP, MySQL, PostgreSQL, ClickHouse, 또는 ODBC)에 따라 외부 소스에서 데이터를 요청하기 전에 `update_field`에 서로 다른 로직이 적용됩니다. + + +* 소스가 HTTP인 경우 `update_field`는 마지막 업데이트 시간을 값으로 하는 쿼리 매개변수로 추가됩니다. +* 소스가 Executable인 경우 `update_field`는 마지막 업데이트 시간을 값으로 하는 실행 스크립트 인수로 추가됩니다. +* 소스가 ClickHouse, MySQL, PostgreSQL, ODBC인 경우 `update_field`를 마지막 업데이트 시간 이상으로 비교하는 `WHERE` 절이 추가됩니다. + * 기본적으로 이 `WHERE` 조건은 SQL 쿼리의 최상위 레벨에서 검사됩니다. 또는 `{condition}` 키워드를 사용하여 쿼리 내의 다른 임의의 `WHERE` 절에서 이 조건을 검사할 수도 있습니다. 예: + ```sql + ... + SOURCE(CLICKHOUSE(... + update_field 'added_time' + QUERY ' + SELECT my_arr.1 AS x, my_arr.2 AS y, creation_time + FROM ( + SELECT arrayZip(x_arr, y_arr) AS my_arr, creation_time + FROM dictionary_source + WHERE {condition} + )' + )) + ... + ``` + +`update_field` 옵션이 설정되어 있으면, 추가 옵션인 `update_lag`을 설정할 수 있습니다. `update_lag` 옵션의 값은 갱신된 데이터를 요청하기 전에 이전 업데이트 시각에서 미리 차감됩니다. + +설정 예: + +```xml + + ... + + ... + added_time + 15 + + ... + +``` + +또는 + +```sql +... +SOURCE(CLICKHOUSE(... update_field 'added_time' update_lag 15)) +... +``` diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md new file mode 100644 index 00000000000..5dbc9d5eb8a --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md @@ -0,0 +1,102 @@ +--- +description: '딕셔너리 생성 및 구성 방법에 대한 문서' +sidebar_label: '개요' +sidebar_position: 1 +slug: /sql-reference/statements/create/dictionary +title: 'CREATE DICTIONARY' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import CloudSupportedBadge from '@theme/badges/CloudSupportedBadge'; + + +# CREATE DICTIONARY \{#create-dictionary\} + +딕셔너리는 다양한 유형의 참조 목록에 편리하게 사용할 수 있는 (`key -> attributes`) 매핑입니다. +ClickHouse는 쿼리에서 사용할 수 있는 딕셔너리용 특수 함수를 지원합니다. 참조 테이블에 대한 `JOIN`을 사용하는 것보다 함수와 함께 딕셔너리를 사용하는 편이 더 쉽고 효율적입니다. + +딕셔너리는 두 가지 방식으로 생성할 수 있습니다: + +- [DDL 쿼리로 생성](#creating-a-dictionary-with-a-ddl-query) (권장) +- [설정 파일로 생성](#creating-a-dictionary-with-a-configuration-file) + +## DDL 쿼리로 딕셔너리 생성하기 \{#creating-a-dictionary-with-a-ddl-query\} + + + +딕셔너리는 DDL 쿼리로 생성할 수 있습니다. +이 방식이 권장되는 방법입니다. 이 방식으로 생성한 딕셔너리는 다음과 같은 장점이 있습니다: + +- 서버 설정 파일에 별도의 레코드가 추가되지 않습니다. +- 딕셔너리를 테이블이나 VIEW와 같은 일급 객체처럼 사용할 수 있습니다. +- 딕셔너리 테이블 함수를 사용하는 대신 익숙한 `SELECT` 구문을 사용해 데이터를 직접 읽을 수 있습니다. `SELECT` 문을 통해 딕셔너리에 직접 접근하는 경우, 캐시된 딕셔너리는 캐시된 데이터만 반환하고, 캐시되지 않은 딕셔너리는 저장된 모든 데이터를 반환합니다. +- 딕셔너리 이름을 쉽게 변경할 수 있습니다. + +### 구문 \{#syntax\} + +```sql +CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] +( + key1 type1 [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID], + key2 type2 [DEFAULT | EXPRESSION expr2], + attr1 type2 [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], + attr2 type2 [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] +) +PRIMARY KEY key1, key2 +SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) +LAYOUT(LAYOUT_NAME([param_name param_value])) +LIFETIME({MIN min_val MAX max_val | max_val}) +SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) +COMMENT 'Comment' +``` + +| 절 | 설명 | +| ------------------------------------------- | -------------------------------------------------------------------- | +| [Attributes](./attributes.md) | 딕셔너리 속성은 테이블 컬럼과 유사한 방식으로 지정합니다. 필수 속성은 타입뿐이며, 나머지는 기본값을 사용할 수 있습니다. | +| PRIMARY KEY | 딕셔너리 조회를 위한 키 컬럼을 정의합니다. 레이아웃에 따라 하나 이상의 속성을 키로 지정할 수 있습니다. | +| [`SOURCE`](./sources/overview.md) | 딕셔너리의 데이터 소스를 정의합니다(예: ClickHouse 테이블, HTTP, PostgreSQL). | +| [`LAYOUT`](./layouts/overview.md) | 딕셔너리가 메모리에 저장되는 방식을 제어합니다(예: `FLAT`, `HASHED`, `CACHE`). | +| [`LIFETIME`](./lifetime.md) | 딕셔너리의 갱신 주기를 설정합니다. | +| [`ON CLUSTER`](../../../distributed-ddl.md) | 클러스터에 딕셔너리를 생성합니다. 선택 사항입니다. | +| `SETTINGS` | 추가 딕셔너리 설정입니다. 선택 사항입니다. | +| `COMMENT` | 딕셔너리에 텍스트 주석을 추가합니다. 선택 사항입니다. | + + +## 구성 파일로 딕셔너리 생성하기 \{#creating-a-dictionary-with-a-configuration-file\} + + + +:::note +구성 파일을 사용한 딕셔너리 생성은 ClickHouse Cloud에서 지원되지 않습니다. 위에서 설명한 DDL을 사용하여 `default` USER로 딕셔너리를 생성하십시오. +::: + +딕셔너리 구성 파일 형식은 다음과 같습니다: + +```xml + + An optional element with any content. Ignored by the ClickHouse server. + + + /etc/metrika.xml + + + + + + + + +``` + +같은 파일에서 여러 개의 딕셔너리를 정의할 수 있습니다. + + +## 관련 콘텐츠 \{#related-content\} + +- [Layouts](/sql-reference/statements/create/dictionary/layouts) — 딕셔너리가 메모리에 저장되는 방식 +- [Sources](/sql-reference/statements/create/dictionary/sources) — 데이터 소스에 연결하기 +- [Lifetime](./lifetime.md) — 자동 새로고침 설정 +- [Attributes](./attributes.md) — 키 및 속성 설정 +- [Embedded Dictionaries](./embedded.md) — 내장 지오베이스 딕셔너리 +- [system.dictionaries](../../../../operations/system-tables/dictionaries.md) — 딕셔너리 정보가 포함된 시스템 테이블 \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md new file mode 100644 index 00000000000..81e06fade18 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/cassandra +title: 'Cassandra 딕셔너리 소스' +sidebar_position: 11 +sidebar_label: 'Cassandra' +description: 'ClickHouse에서 Cassandra를 딕셔너리 소스로 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예시: + + + + ```sql + SOURCE(CASSANDRA( + host 'localhost' + port 9042 + user 'username' + password 'qwerty123' + keyspace 'database_name' + column_family 'table_name' + allow_filtering 1 + partition_key_prefix 1 + consistency 'One' + where '"SomeColumn" = 42' + max_threads 8 + query 'SELECT id, value_1, value_2 FROM database_name.table_name' + )) + ``` + + + + ```xml + + + localhost + 9042 + username + qwerty123 + database_name + table_name + 1 + 1 + One + "SomeColumn" = 42 + 8 + SELECT id, value_1, value_2 FROM database_name.table_name + + + ``` + + + +설정 필드: + +| Setting | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Cassandra 호스트 또는 쉼표로 구분된 호스트 목록입니다. | +| `port` | Cassandra 서버의 포트입니다. 지정하지 않으면 기본 포트 `9042`가 사용됩니다. | +| `user` | Cassandra 사용자 이름입니다. | +| `password` | Cassandra 사용자의 비밀번호입니다. | +| `keyspace` | 키스페이스(데이터베이스) 이름입니다. | +| `column_family` | 컬럼 패밀리(테이블) 이름입니다. | +| `allow_filtering` | 클러스터링 키 컬럼에 대해 비용이 많이 들 수 있는 조건을 허용할지 여부를 나타내는 플래그입니다. 기본값은 `1`입니다. | +| `partition_key_prefix` | Cassandra 테이블의 기본 키에 포함된 파티션 키 컬럼 수입니다. 복합 키 딕셔너리에 필요합니다. 딕셔너리 정의에서 키 컬럼의 순서는 Cassandra에서의 순서와 동일해야 합니다. 기본값은 `1`이며(첫 번째 키 컬럼이 파티션 키이고 나머지 키 컬럼은 클러스터링 키입니다). | +| `consistency` | Consistency 레벨입니다. 가능한 값: `One`, `Two`, `Three`, `All`, `EachQuorum`, `Quorum`, `LocalQuorum`, `LocalOne`, `Serial`, `LocalSerial`. 기본값은 `One`입니다. | +| `where` | 선택적 필터 조건입니다. | +| `max_threads` | 복합 키 딕셔너리에서 여러 파티션으로부터 데이터를 로드할 때 사용할 최대 스레드 수입니다. | +| `query` | 사용자 정의 쿼리입니다. 선택 사항입니다. | + +:::note +`column_family` 또는 `where` 필드는 `query` 필드와 함께 사용할 수 없습니다. 또한 `column_family` 또는 `query` 필드 중 하나는 반드시 선언해야 합니다. +::: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md new file mode 100644 index 00000000000..cbd9a8004c1 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md @@ -0,0 +1,70 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/clickhouse +title: 'ClickHouse 딕셔너리 소스' +sidebar_position: 8 +sidebar_label: 'ClickHouse' +description: 'ClickHouse 테이블을 딕셔너리 소스로 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예: + + + + ```sql + SOURCE(CLICKHOUSE( + host 'example01-01-1' + port 9000 + user 'default' + password '' + db 'default' + table 'ids' + where 'id=10' + secure 1 + query 'SELECT id, value_1, value_2 FROM default.ids' + )); + ``` + + + + ```xml + + + example01-01-1 + 9000 + default + + default +
    ids
    + id=10 + 1 + SELECT id, value_1, value_2 FROM default.ids + + + ``` + + + +
    + +설정 필드: + +| Setting | Description | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | ClickHouse 호스트입니다. 로컬 호스트인 경우 쿼리가 네트워크 통신 없이 처리됩니다. 장애 허용을 향상하려면 [Distributed](/engines/table-engines/special/distributed) 테이블을 생성한 다음 이후 구성에서 이를 입력하면 됩니다. | +| `port` | ClickHouse 서버의 포트입니다. | +| `user` | ClickHouse USER의 이름입니다. | +| `password` | ClickHouse USER의 비밀번호입니다. | +| `db` | 데이터베이스 이름입니다. | +| `table` | 테이블 이름입니다. | +| `where` | 선택 조건입니다. 선택 사항입니다. | +| `invalidate_query` | 딕셔너리 상태를 확인하기 위한 쿼리입니다. 선택 사항입니다. 자세한 내용은 [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](../lifetime.md#refreshing-dictionary-data-using-lifetime) 절을 참고하십시오. | +| `secure` | 연결에 SSL을 사용합니다. | +| `query` | 사용자 정의 쿼리입니다. 선택 사항입니다. | + +:::note +`table` 필드 또는 `where` 필드는 `query` 필드와 함께 사용할 수 없습니다. 그리고 `table` 또는 `query` 필드 중 하나는 반드시 선언해야 합니다. +::: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md new file mode 100644 index 00000000000..310ff3a1b5e --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md @@ -0,0 +1,54 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-file +title: '실행 파일 딕셔너리 소스' +sidebar_position: 3 +sidebar_label: '실행 파일' +description: 'ClickHouse에서 실행 파일을 딕셔너리 소스로 설정합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +실행 파일을 사용하는 방식은 [딕셔너리가 메모리에 저장되는 방법](../layouts/)에 따라 달라집니다. 딕셔너리가 `cache` 및 `complex_key_cache`를 사용해 저장되는 경우 ClickHouse는 실행 파일의 STDIN으로 요청을 전송해 필요한 키를 조회합니다. 그렇지 않은 경우 ClickHouse는 실행 파일을 시작하고 그 출력을 딕셔너리 데이터로 처리합니다. + +설정 예시: + + + + ```sql + SOURCE(EXECUTABLE( + command 'cat /opt/dictionaries/os.tsv' + format 'TabSeparated' + implicit_key false + )) + ``` + + + + ```xml + + + cat /opt/dictionaries/os.tsv + TabSeparated + false + + + ``` + + + +설정 필드: + +| Setting | Description | +| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 실행 파일의 절대 경로이거나, (명령의 디렉터리가 `PATH`에 있는 경우) 파일 이름입니다. | +| `format` | 파일 형식입니다. [Formats](/sql-reference/formats)에 설명된 모든 형식을 지원합니다. | +| `command_termination_timeout` | 실행 스크립트에는 기본 읽기/쓰기 루프가 포함되어야 합니다. 딕셔너리가 파괴된 후 파이프가 닫히며, 실행 파일은 ClickHouse가 자식 프로세스에 SIGTERM 신호를 보내기 전에 종료할 수 있도록 `command_termination_timeout` 초가 주어집니다. 초 단위로 지정합니다. 기본값은 `10`입니다. 선택 사항입니다. | +| `command_read_timeout` | 명령 stdout에서 데이터를 읽는 타임아웃(밀리초)입니다. 기본값은 `10000`입니다. 선택 사항입니다. | +| `command_write_timeout` | 명령 stdin에 데이터를 쓰는 타임아웃(밀리초)입니다. 기본값은 `10000`입니다. 선택 사항입니다. | +| `implicit_key` | 실행 소스 파일은 값만 반환할 수 있으며, 요청된 키와의 대응은 결과의 행 순서에 따라 암묵적으로 결정됩니다. 기본값은 `false`입니다. | +| `execute_direct` | `execute_direct` = `1`인 경우 `command`는 [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path)에 지정된 user_scripts 폴더 내에서 검색됩니다. 공백 구분자를 사용해 추가 스크립트 인자를 지정할 수 있습니다. 예: `script_name arg1 arg2`. `execute_direct` = `0`인 경우 `command`는 `bin/sh -c`의 인자로 전달됩니다. 기본값은 `0`입니다. 선택 사항입니다. | +| `send_chunk_header` | 프로세스로 데이터 청크를 전송하기 전에, 먼저 해당 청크의 행 수를 보낼지 여부를 제어합니다. 기본값은 `false`입니다. 선택 사항입니다. | + +이 딕셔너리 소스는 XML 설정을 통해서만 구성할 수 있습니다. DDL을 통해 실행 가능한 소스를 사용하는 딕셔너리를 생성하는 기능은 비활성화되어 있으며, 그렇지 않으면 DB 사용자가 ClickHouse 노드에서 임의의 바이너리를 실행할 수 있게 되기 때문입니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md new file mode 100644 index 00000000000..1e4531e72e2 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md @@ -0,0 +1,72 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-pool +title: 'Executable Pool 딕셔너리 소스' +sidebar_position: 4 +sidebar_label: 'Executable Pool' +description: 'ClickHouse에서 딕셔너리 소스로 사용할 Executable Pool을 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Executable pool은 프로세스 풀에서 데이터를 로드할 수 있게 합니다. +이 소스는 모든 데이터를 한 번에 소스에서 로드해야 하는 딕셔너리 레이아웃과는 함께 동작하지 않습니다. + +Executable pool은 딕셔너리가 다음 레이아웃 중 하나를 사용하여 [저장](../layouts/#ways-to-store-dictionaries-in-memory)되는 경우에 동작합니다: + +* `cache` +* `complex_key_cache` +* `ssd_cache` +* `complex_key_ssd_cache` +* `direct` +* `complex_key_direct` + +Executable pool은 지정된 명령으로 프로세스 풀을 생성하고, 프로세스가 종료될 때까지 실행 상태를 유지합니다. 프로그램은 가능한 동안 STDIN에서 데이터를 읽고, 결과를 STDOUT으로 출력해야 합니다. STDIN에서 다음 데이터 블록을 대기할 수 있습니다. ClickHouse는 데이터 블록을 처리한 후 STDIN을 닫지 않고, 필요할 때 또 다른 데이터 청크를 파이프를 통해 전달합니다. 실행 스크립트는 이러한 방식의 데이터 처리에 대비되어 있어야 하며, STDIN을 폴링하고 데이터를 STDOUT으로 가능한 한 일찍 플러시해야 합니다. + +설정 예: + + + + ```sql + SOURCE(EXECUTABLE_POOL( + command 'while read key; do printf "$key\tData for key $key\n"; done' + format 'TabSeparated' + pool_size 10 + max_command_execution_time 10 + implicit_key false + )) + ``` + + + + ```xml + + + while read key; do printf "$key\tData for key $key\n"; done + TabSeparated + 10 + 10 + false + + + ``` + + + +설정 필드: + +| Setting | Description | +| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 실행 파일의 절대 경로이거나, 프로그램 디렉터리가 `PATH`에 포함되어 있는 경우 파일 이름입니다. | +| `format` | 파일 포맷입니다. [Formats](/sql-reference/formats)에 설명된 모든 포맷을 지원합니다. | +| `pool_size` | 풀 크기입니다. `pool_size`가 0으로 지정되면 풀 크기에 대한 제한이 없습니다. 기본값은 `16`입니다. | +| `command_termination_timeout` | 실행 스크립트에는 기본 read-write 루프가 포함되어 있어야 합니다. 딕셔너리가 삭제되면 파이프가 닫히고, 실행 파일은 ClickHouse가 자식 프로세스에 SIGTERM 시그널을 보내기 전에 종료하기 위해 `command_termination_timeout`초가 주어집니다. 초 단위로 지정합니다. 기본값은 `10`입니다. 선택 사항입니다. | +| `max_command_execution_time` | 데이터 블록을 처리하기 위한 실행 스크립트 명령의 최대 실행 시간입니다. 초 단위로 지정합니다. 기본값은 `10`입니다. 선택 사항입니다. | +| `command_read_timeout` | 명령 stdout에서 데이터를 읽기 위한 타임아웃으로, 밀리초 단위입니다. 기본값은 `10000`입니다. 선택 사항입니다. | +| `command_write_timeout` | 명령 stdin에 데이터를 쓰기 위한 타임아웃으로, 밀리초 단위입니다. 기본값은 `10000`입니다. 선택 사항입니다. | +| `implicit_key` | 실행 소스 파일은 값만 반환할 수 있으며, 요청된 키에 대한 대응 관계는 결과에서 행의 순서에 의해 암묵적으로 결정됩니다. 기본값은 `false`입니다. 선택 사항입니다. | +| `execute_direct` | `execute_direct` = `1`이면, `command`는 [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path)에 지정된 user_scripts 폴더 내에서 검색됩니다. 추가 스크립트 인자는 공백 구분자를 사용하여 지정할 수 있습니다. 예: `script_name arg1 arg2`. `execute_direct` = `0`이면, `command`는 `bin/sh -c`의 인자로 전달됩니다. 기본값은 `1`입니다. 선택 사항입니다. | +| `send_chunk_header` | 프로세스로 데이터 청크를 보내기 전에 행 개수를 전송할지 여부를 제어합니다. 기본값은 `false`입니다. 선택 사항입니다. | + +이 딕셔너리 소스는 XML 설정을 통해서만 구성할 수 있습니다. DDL을 통해 executable 소스를 사용하는 딕셔너리를 생성하는 기능은 비활성화되어 있으며, 그렇지 않으면 DB 사용자가 ClickHouse 노드에서 임의의 바이너리를 실행할 수 있게 되기 때문입니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md new file mode 100644 index 00000000000..b62a955fbf9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md @@ -0,0 +1,69 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/http +title: 'HTTP(S) 딕셔너리 소스' +sidebar_position: 5 +sidebar_label: 'HTTP(S)' +description: 'ClickHouse에서 HTTP 또는 HTTPS 엔드포인트를 딕셔너리 소스로 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +HTTP(S) 서버와의 동작 방식은 [딕셔너리가 메모리에 저장되는 방식](../layouts/)에 따라 달라집니다. 딕셔너리가 `cache` 및 `complex_key_cache`를 사용해 저장되는 경우, ClickHouse는 `POST` 메서드로 요청을 보내 필요한 키를 가져옵니다. + +설정 예: + + + + ```sql + SOURCE(HTTP( + url 'http://[::1]/os.tsv' + format 'TabSeparated' + credentials(user 'user' password 'password') + headers(header(name 'API-KEY' value 'key')) + )) + ``` + + + + ```xml + + + http://[::1]/os.tsv + TabSeparated + + user + password + + +
    + API-KEY + key +
    +
    +
    + + ``` +
    +
    + +
    + +ClickHouse가 HTTPS 리소스에 액세스하려면 서버 구성에서 [openSSL을 구성](/operations/server-configuration-parameters/settings#openssl)해야 합니다. + +설정 필드: + +| Setting | Description | +| ------------- | -------------------------------------------------------------- | +| `url` | 소스 URL입니다. | +| `format` | 파일 형식입니다. [Formats](/sql-reference/formats)에 설명된 모든 형식을 지원합니다. | +| `credentials` | 기본 HTTP 인증입니다. 선택 사항입니다. | +| `user` | 인증에 필요한 사용자 이름입니다. | +| `password` | 인증에 필요한 비밀번호입니다. | +| `headers` | HTTP 요청에 사용되는 모든 사용자 정의 HTTP 헤더 항목입니다. 선택 사항입니다. | +| `header` | 단일 HTTP 헤더 항목입니다. | +| `name` | 요청에 전송할 헤더에 사용되는 식별자 이름입니다. | +| `value` | 특정 식별자 이름에 대해 설정되는 값입니다. | + +DDL 명령(`CREATE DICTIONARY ...`)으로 딕셔너리를 생성할 때, HTTP 딕셔너리용 원격 호스트는 데이터베이스 사용자가 임의의 HTTP 서버에 액세스하지 못하도록 `config`의 `remote_url_allow_hosts` 섹션 내용과 비교하여 검증됩니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md new file mode 100644 index 00000000000..3a2d9c16900 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md @@ -0,0 +1,49 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/local-file +title: '로컬 파일 딕셔너리 소스' +sidebar_position: 2 +sidebar_label: '로컬 파일' +description: 'ClickHouse에서 로컬 파일을 딕셔너리 소스로 설정합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +로컬 파일 소스는 로컬 파일 시스템의 파일에서 딕셔너리 데이터를 로드합니다. 이는 TSV, CSV 또는 기타 [지원되는 포맷](/sql-reference/formats)과 같은 포맷의 플랫 파일(flat file)로 저장할 수 있는 작고 정적인 조회용 테이블에 유용합니다. + +설정 예시는 다음과 같습니다: + + + + ```sql + SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) + ``` + + + + ```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + + ``` + + + +
    + +설정 필드는 다음과 같습니다: + +| Setting | Description | +| -------- | ------------------------------------------------------------------ | +| `path` | 파일의 절대 경로입니다. | +| `format` | 파일 포맷입니다. [Formats](/sql-reference/formats)에 설명되어 있는 모든 포맷이 지원됩니다. | + +DDL 명령어(`CREATE DICTIONARY ...`)를 통해 소스가 `FILE`인 딕셔너리를 생성하는 경우, ClickHouse 노드에서 데이터베이스 사용자가 임의의 파일에 접근하지 못하도록 소스 파일은 `user_files` 디렉터리에 위치해야 합니다. + +**관련 항목** + +* [Dictionary function](/sql-reference/table-functions/dictionary) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md new file mode 100644 index 00000000000..2bcff785f0e --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md @@ -0,0 +1,82 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mongodb +title: 'MongoDB 딕셔너리 소스' +sidebar_position: 9 +sidebar_label: 'MongoDB' +description: 'ClickHouse에서 MongoDB를 딕셔너리 소스로 설정합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예시: + + + + ```sql + SOURCE(MONGODB( + host 'localhost' + port 27017 + user '' + password '' + db 'test' + collection 'dictionary_source' + options 'ssl=true' + )) + ``` + + 또는 URI를 사용할 수 있습니다: + + ```sql + SOURCE(MONGODB( + uri 'mongodb://localhost:27017/clickhouse' + collection 'dictionary_source' + )) + ``` + + + + ```xml + + + localhost + 27017 + + + test + dictionary_source + ssl=true + + + ``` + + 또는 URI를 사용할 수 있습니다: + + ```xml + + + mongodb://localhost:27017/test?ssl=true + dictionary_source + + + ``` + + + +
    + +설정 필드: + +| Setting | 설명 | +| ------------ | ----------------------------------------------- | +| `host` | MongoDB 호스트입니다. | +| `port` | MongoDB 서버의 포트입니다. | +| `user` | MongoDB 사용자 이름입니다. | +| `password` | MongoDB 사용자의 비밀번호입니다. | +| `db` | 데이터베이스 이름입니다. | +| `collection` | 컬렉션 이름입니다. | +| `options` | MongoDB 연결 문자열 옵션입니다. 선택 사항입니다. | +| `uri` | 연결을 설정하기 위한 URI입니다 (개별 host/port/db 필드의 대안입니다). | + +[엔진에 대한 자세한 정보](/engines/table-engines/integrations/mongodb) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md new file mode 100644 index 00000000000..71aee56b5a4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md @@ -0,0 +1,132 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mysql +title: 'MySQL 딕셔너리 소스' +sidebar_position: 7 +sidebar_label: 'MySQL' +description: 'ClickHouse에서 MySQL을 딕셔너리 소스로 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예: + + + + ```sql + SOURCE(MYSQL( + port 3306 + user 'clickhouse' + password 'qwerty' + replica(host 'example01-1' priority 1) + replica(host 'example01-2' priority 1) + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + 3306 + clickhouse + qwerty + + example01-1 + 1 + + + example01-2 + 1 + + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +설정 필드: + +| Setting | Description | +| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `port` | MySQL 서버의 포트입니다. 모든 레플리카에 대해 공통으로 지정하거나, 각 레플리카별로(`` 내부) 개별 지정할 수 있습니다. | +| `user` | MySQL 사용자 이름입니다. 모든 레플리카에 대해 공통으로 지정하거나, 각 레플리카별로(`` 내부) 개별 지정할 수 있습니다. | +| `password` | MySQL 사용자의 비밀번호입니다. 모든 레플리카에 대해 공통으로 지정하거나, 각 레플리카별로(`` 내부) 개별 지정할 수 있습니다. | +| `replica` | 레플리카 구성 섹션입니다. 여러 개를 정의할 수 있습니다. | +| `replica/host` | MySQL 호스트입니다. | +| `replica/priority` | 레플리카 우선순위입니다. 연결을 시도할 때 ClickHouse는 우선순위 순서대로 레플리카에 연결을 시도합니다. 숫자가 낮을수록 우선순위가 높습니다. | +| `db` | 데이터베이스 이름입니다. | +| `table` | 테이블 이름입니다. | +| `where` | 선택 조건입니다. 조건의 구문은 MySQL의 `WHERE` 절과 동일하며, 예를 들어 `id > 10 AND id < 20`과 같습니다. 선택 사항입니다. | +| `invalidate_query` | 딕셔너리 상태를 확인하기 위한 쿼리입니다. 선택 사항입니다. 자세한 내용은 [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](../lifetime.md#refreshing-dictionary-data-using-lifetime) 섹션을 참고하십시오. | +| `fail_on_connection_loss` | 연결 손실 시 서버 동작을 제어합니다. `true`이면 클라이언트와 서버 간 연결이 끊어졌을 때 즉시 예외를 발생시킵니다. `false`이면 ClickHouse 서버가 예외를 발생시키기 전에 쿼리 실행을 최대 3번까지 재시도합니다. 재시도는 응답 시간이 증가하는 원인이 된다는 점에 유의하십시오. 기본값: `false`입니다. | +| `query` | 사용자 정의 쿼리입니다. 선택 사항입니다. | + +:::note +`table` 또는 `where` 필드는 `query` 필드와 함께 사용할 수 없습니다. 또한 `table` 또는 `query` 필드 중 하나는 반드시 선언해야 합니다. +::: + +:::note +명시적인 `secure` 파라미터는 없습니다. SSL 연결을 설정하는 경우 보안이 필수입니다. +::: + +MySQL은 소켓을 통해 로컬 호스트에 연결할 수 있습니다. 이를 위해 `host`와 `socket`을 설정합니다. + +설정 예: + + + + + +```sql +SOURCE(MYSQL( + host 'localhost' + socket '/path/to/socket/file.sock' + user 'clickhouse' + password 'qwerty' + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' +)) +``` + + + + +```xml + + + localhost + /path/to/socket/file.sock + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + +``` + +
    +
    \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md new file mode 100644 index 00000000000..f9ff7855ba0 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md @@ -0,0 +1,24 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/null +title: 'Null 딕셔너리 소스' +sidebar_position: 14 +sidebar_label: 'Null' +description: '테스트를 위해 ClickHouse에서 Null(비어 있는) 딕셔너리 소스를 구성합니다.' +doc_type: 'reference' +--- + +더미(비어 있는) 딕셔너리를 생성하는 데 사용할 수 있는 특수한 소스입니다. +더미 딕셔너리는 테스트 목적이나 데이터 노드와 쿼리 노드를 분리하고 분산 테이블을 사용하는 구성에서 유용합니다. + +```sql +CREATE DICTIONARY null_dict ( + id UInt64, + val UInt8, + default_val UInt8 DEFAULT 123, + nullable_val Nullable(UInt8) +) +PRIMARY KEY id +SOURCE(NULL()) +LAYOUT(FLAT()) +LIFETIME(0); +``` diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md new file mode 100644 index 00000000000..ddacf1d6882 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md @@ -0,0 +1,289 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/odbc +title: 'ODBC 딕셔너리 소스' +sidebar_position: 6 +sidebar_label: 'ODBC' +description: 'ClickHouse에서 딕셔너리 소스로 사용할 ODBC 연결을 구성합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +ODBC 드라이버가 있는 모든 데이터베이스에 이 방법을 사용해 연결할 수 있습니다. + +설정 예시는 다음과 같습니다: + + + + ```sql + SOURCE(ODBC( + db 'DatabaseName' + table 'SchemaName.TableName' + connection_string 'DSN=some_parameters' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + DatabaseName + ShemaName.TableName
    + DSN=some_parameters + SQL_QUERY + SELECT id, value_1, value_2 FROM ShemaName.TableName +
    + + ``` +
    +
    + +
    + +설정 필드는 다음과 같습니다: + +| Setting | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `db` | 데이터베이스 이름입니다. 데이터베이스 이름이 `` 매개변수에 설정되어 있는 경우 생략합니다. | +| `table` | 테이블 이름과, 존재한다면 스키마 이름입니다. | +| `connection_string` | 연결 문자열입니다. | +| `invalidate_query` | 딕셔너리 상태를 확인하는 쿼리입니다. 선택 사항입니다. 자세한 내용은 [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](../lifetime.md#refreshing-dictionary-data-using-lifetime) 섹션을 참조하십시오. | +| `background_reconnect` | 연결이 실패할 경우 백그라운드에서 레플리카에 다시 연결합니다. 선택 사항입니다. | +| `query` | 사용자 정의 쿼리입니다. 선택 사항입니다. | + +:::note +`table` 필드와 `query` 필드는 동시에 사용할 수 없습니다. 또한 `table` 또는 `query` 필드 중 하나는 반드시 선언해야 합니다. +::: + +ClickHouse는 ODBC 드라이버에서 따옴표(quoting) 기호 설정을 전달받아 드라이버로 보내는 쿼리에서 모든 설정 값을 따옴표로 감싸므로, 데이터베이스에 정의된 테이블 이름의 대소문자(case)에 맞게 테이블 이름을 지정해야 합니다. + +Oracle을 사용할 때 인코딩 문제를 겪는 경우, 관련 [FAQ](/knowledgebase/oracle-odbc) 항목을 참조하십시오. + +### ODBC 딕셔너리 기능의 알려진 취약점 \{#known-vulnerability-of-the-odbc-dictionary-functionality\} + +:::note +ODBC 드라이버를 통해 데이터베이스에 연결할 때 연결 매개변수 `Servername` 을(를) 다른 값으로 바꿀 수 있습니다. 이 경우 `odbc.ini` 의 `USERNAME` 및 `PASSWORD` 값이 원격 서버로 전송되어 유출될 수 있습니다. +::: + +**안전하지 않은 사용 예** + +PostgreSQL용 unixODBC를 구성해 보겠습니다. `/etc/odbc.ini` 의 내용은 다음과 같습니다: + +```text +[gregtest] +Driver = /usr/lib/psqlodbca.so +Servername = localhost +PORT = 5432 +DATABASE = test_db +#OPTION = 3 +USERNAME = test +PASSWORD = test +``` + +그런 다음 아래와 같은 쿼리를 실행하면 + +```sql +SELECT * FROM odbc('DSN=gregtest;Servername=some-server.com', 'test_db'); +``` + +ODBC 드라이버는 `odbc.ini`에 설정된 `USERNAME`과 `PASSWORD` 값을 `some-server.com`으로 전송합니다. + +### PostgreSQL 연결 예제 \{#example-of-connecting-postgresql\} + +Ubuntu OS. + +PostgreSQL용 unixODBC 및 ODBC 드라이버를 설치합니다: + +```bash +$ sudo apt-get install -y unixodbc odbcinst odbc-postgresql +``` + +`/etc/odbc.ini` (또는 ClickHouse를 실행하는 사용자로 로그인한 경우 `~/.odbc.ini`) 구성하기: + +```text + [DEFAULT] + Driver = myconnection + + [myconnection] + Description = PostgreSQL connection to my_db + Driver = PostgreSQL Unicode + Database = my_db + Servername = 127.0.0.1 + UserName = username + Password = password + Port = 5432 + Protocol = 9.3 + ReadOnly = No + RowVersioning = No + ShowSystemTables = No + ConnSettings = +``` + +ClickHouse에서의 딕셔너리 구성 예: + + + + ```sql + CREATE DICTIONARY table_name ( + id UInt64, + some_column UInt64 DEFAULT 0 + ) + PRIMARY KEY id + SOURCE(ODBC(connection_string 'DSN=myconnection' table 'postgresql_table')) + LAYOUT(HASHED()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + table_name + + + + + DSN=myconnection + postgresql_table
    +
    + + + 300 + 360 + + + + + + + id + + + some_column + UInt64 + 0 + + +
    +
    + ``` +
    +
    + +
    + +드라이버 라이브러리가 위치한 전체 경로(`DRIVER=/usr/local/lib/psqlodbcw.so`)를 지정하도록 `odbc.ini` 파일을 수정해야 할 수 있습니다. + +### MS SQL Server 연결 예제 \{#example-of-connecting-ms-sql-server\} + +Ubuntu OS 기준입니다. + +MS SQL Server에 연결하기 위한 ODBC 드라이버 설치: + +```bash +$ sudo apt-get install tdsodbc freetds-bin sqsh +``` + +드라이버 설정: + +```bash + $ cat /etc/freetds/freetds.conf + ... + + [MSSQL] + host = 192.168.56.101 + port = 1433 + tds version = 7.0 + client charset = UTF-8 + + # test TDS connection + $ sqsh -S MSSQL -D database -U user -P password + + + $ cat /etc/odbcinst.ini + + [FreeTDS] + Description = FreeTDS + Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so + Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so + FileUsage = 1 + UsageCount = 5 + + $ cat /etc/odbc.ini + # $ cat ~/.odbc.ini # if you signed in under a user that runs ClickHouse + + [MSSQL] + Description = FreeTDS + Driver = FreeTDS + Servername = MSSQL + Database = test + UID = test + PWD = test + Port = 1433 + + + # (optional) test ODBC connection (to use isql-tool install the [unixodbc](https://packages.debian.org/sid/unixodbc)-package) + $ isql -v MSSQL "user" "password" +``` + +비고: + +* 특정 SQL Server 버전에서 지원되는 최소 TDS 버전을 확인하려면 제품 설명서를 참조하거나 [MS-TDS Product Behavior](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/135d0ebe-5c4c-4a94-99bf-1811eccb9f4a)를 확인하십시오. + +ClickHouse에서 딕셔너리를 구성하는 예: + + + + ```sql + CREATE DICTIONARY test ( + k UInt64, + s String DEFAULT '' + ) + PRIMARY KEY k + SOURCE(ODBC(table 'dict' connection_string 'DSN=MSSQL;UID=test;PWD=test')) + LAYOUT(FLAT()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + test + + + dict
    + DSN=MSSQL;UID=test;PWD=test +
    + + + + 300 + 360 + + + + + + + + + k + + + s + String + + + +
    +
    + ``` +
    +
    diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md new file mode 100644 index 00000000000..32e4b6c1150 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md @@ -0,0 +1,106 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources +title: '딕셔너리 소스' +sidebar_position: 1 +sidebar_label: '개요' +doc_type: 'reference' +description: '딕셔너리 소스 유형 구성' +--- + +import CloudDetails from '@site/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## 구문 \{#dictionary-sources\} + + + +딕셔너리는 다양한 소스를 통해 ClickHouse에 연결할 수 있습니다. +소스는 구성 파일에서는 `source` 섹션에서, DDL 문에서는 `SOURCE` 절을 사용하여 설정합니다. + + + + +```sql +CREATE DICTIONARY dict_name (...) +... +SOURCE(SOURCE_TYPE(param1 val1 ... paramN valN)) -- 소스 설정 +... +``` + + + + +```xml + + + ... + + + + + + ... + + ... + +``` + + + + +
    + +## 지원되는 딕셔너리 소스 \{#supported-dictionary-sources\} + +다음 소스 유형(`SOURCE_TYPE`/`source_type`)을 사용할 수 있습니다: + +- [로컬 파일](./local-file.md) +- [실행 파일](./executable-file.md) +- [실행 풀](./executable-pool.md) +- [HTTP(S)](./http.md) +- DBMS + - [ODBC](./odbc.md) + - [MySQL](./mysql.md) + - [ClickHouse](./clickhouse.md) + - [MongoDB](./mongodb.md) + - [Redis](./redis.md) + - [Cassandra](./cassandra.md) + - [PostgreSQL](./postgresql.md) + - [YTsaurus](./ytsaurus.md) +- [YAMLRegExpTree](./yamlregexptree.md) +- [Null](./null.md) + +[로컬 파일](./local-file.md), [실행 파일](./executable-file.md), [HTTP(s)](./http.md), [ClickHouse](./clickhouse.md) 소스 유형에는 +선택 설정을 사용할 수 있습니다: + + + + +```sql +SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) +--highlight-next-line +SETTINGS(format_csv_allow_single_quotes = 0) +``` + + + + +```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + +#highlight-next-line + 0 + + +``` + + + \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md new file mode 100644 index 00000000000..e9c41adf8c4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/postgresql +title: 'PostgreSQL 딕셔너리 소스' +sidebar_position: 12 +sidebar_label: 'PostgreSQL' +description: 'ClickHouse에서 PostgreSQL을 딕셔너리 소스로 구성하는 방법.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예시: + + + + ```sql + SOURCE(POSTGRESQL( + port 5432 + host 'postgresql-hostname' + user 'postgres_user' + password 'postgres_password' + db 'db_name' + table 'table_name' + replica(host 'example01-1' port 5432 priority 1) + replica(host 'example01-2' port 5432 priority 2) + where 'id=10' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + postgresql-hostname + 5432 + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +설정 필드: + +| Setting | Description | +| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | PostgreSQL 서버의 호스트입니다. 모든 레플리카에 동일하게 지정하거나, 각 레플리카별로 개별적으로 지정할 수 있습니다 (`` 내부). | +| `port` | PostgreSQL 서버의 포트입니다. 모든 레플리카에 동일하게 지정하거나, 각 레플리카별로 개별적으로 지정할 수 있습니다 (`` 내부). | +| `user` | PostgreSQL 사용자 이름입니다. 모든 레플리카에 동일하게 지정하거나, 각 레플리카별로 개별적으로 지정할 수 있습니다 (`` 내부). | +| `password` | PostgreSQL 사용자의 비밀번호입니다. 모든 레플리카에 동일하게 지정하거나, 각 레플리카별로 개별적으로 지정할 수 있습니다 (`` 내부). | +| `replica` | 레플리카 구성 섹션입니다. 여러 개의 섹션을 정의할 수 있습니다. | +| `replica/host` | PostgreSQL 호스트입니다. | +| `replica/port` | PostgreSQL 포트입니다. | +| `replica/priority` | 레플리카 우선순위입니다. 연결을 시도할 때 ClickHouse는 레플리카를 우선순위 순서대로 순회합니다. 숫자가 낮을수록 우선순위가 높습니다. | +| `db` | 데이터베이스 이름입니다. | +| `table` | 테이블 이름입니다. | +| `where` | 선택 조건입니다. 조건 구문은 PostgreSQL의 `WHERE` 절과 동일합니다. 예: `id > 10 AND id < 20`. 선택 사항입니다. | +| `invalidate_query` | 딕셔너리 상태를 확인하기 위한 쿼리입니다. 선택 사항입니다. 자세한 내용은 [LIFETIME을 사용한 딕셔너리 데이터 새로 고침](../lifetime.md#refreshing-dictionary-data-using-lifetime) 섹션을 참고하십시오. | +| `background_reconnect` | 연결이 실패할 경우 백그라운드에서 레플리카에 다시 연결합니다. 선택 사항입니다. | +| `query` | 사용자 정의 쿼리입니다. 선택 사항입니다. | + +:::note +`table` 또는 `where` 필드는 `query` 필드와 함께 사용할 수 없습니다. 또한 `table` 또는 `query` 필드 중 하나는 반드시 선언해야 합니다. +::: diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md new file mode 100644 index 00000000000..413636ef24b --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md @@ -0,0 +1,50 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/redis +title: 'Redis 딕셔너리 소스' +sidebar_position: 10 +sidebar_label: 'Redis' +description: 'ClickHouse에서 딕셔너리 소스로 Redis를 구성하는 방법을 설명합니다.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +설정 예: + + + + ```sql + SOURCE(REDIS( + host 'localhost' + port 6379 + storage_type 'simple' + db_index 0 + )) + ``` + + + + ```xml + + + localhost + 6379 + simple + 0 + + + ``` + + + +
    + +설정 필드: + +| Setting | Description | +| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Redis 호스트입니다. | +| `port` | Redis 서버의 포트입니다. | +| `storage_type` | 키 작업에 사용하는 Redis 내부 스토리지 구조입니다. `simple`은 단순 소스와 해시된 단일 키 소스용이며, `hash_map`은 두 개의 키를 가진 해시된 소스용입니다. 범위 기반 소스와 복잡한 키를 가진 캐시 소스는 지원되지 않습니다. 기본값은 `simple`입니다. 선택 사항입니다. | +| `db_index` | Redis 논리 데이터베이스의 특정 숫자 인덱스입니다. 기본값은 `0`입니다. 선택 사항입니다. | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md new file mode 100644 index 00000000000..66c11185dad --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md @@ -0,0 +1,79 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/yamlregexptree +title: 'YAMLRegExpTree 딕셔너리 소스' +sidebar_position: 15 +sidebar_label: 'YAMLRegExpTree' +description: 'YAML 파일을 정규 표현식 트리 딕셔너리의 소스로 설정합니다.' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + + + +`YAMLRegExpTree` 소스는 로컬 파일 시스템의 YAML 파일에서 정규 표현식 트리를 로드합니다. +이 소스는 [`regexp_tree`](../layouts/regexp-tree.md) 딕셔너리 레이아웃 전용으로 설계되었으며, +user agent 파싱과 같은 패턴 기반 조회를 위해 정규 표현식과 속성 간의 계층적 매핑을 제공합니다. + +:::note +`YAMLRegExpTree` 소스는 ClickHouse 오픈 소스에서만 사용할 수 있습니다. +ClickHouse Cloud에서는 딕셔너리를 CSV로 내보낸 후 [ClickHouse 테이블 소스](./clickhouse.md)를 통해 로드하십시오. +자세한 내용은 [ClickHouse Cloud에서 regexp_tree 딕셔너리 사용](../layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud)을 참고하십시오. +::: + + +## 설정 \{#configuration\} + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0); +``` + +설정 항목: + +| Setting | 설명 | +| ------- | ------------------------------------------------------------------------------ | +| `PATH` | 정규 표현식 트리가 포함된 YAML 파일의 절대 경로입니다. DDL로 생성하는 경우 파일은 `user_files` 디렉터리에 있어야 합니다. | + + +## YAML 파일 구조 \{#yaml-file-structure\} + +YAML 파일은 정규 표현식 트리 노드 목록으로 구성됩니다. 각 노드는 속성과 자식 노드를 가질 수 있으며, 이들로 계층 구조를 이룹니다: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +각 노드는 다음과 같은 구조입니다: + +* **`regexp`**: 이 노드에 대한 정규 표현식입니다. +* **attributes**: 사용자 정의 딕셔너리 속성입니다(예: `name`, `version`). 속성 값에는 정규 표현식의 캡처 그룹에 대한 **역참조(back reference)** 를 포함할 수 있으며, `\1` 또는 `$1` (숫자 1–9) 형태로 작성합니다. 이는 쿼리 시점에 일치한 캡처 그룹으로 대체됩니다. +* **child nodes**: 각자 자체 속성과 선택적으로 더 많은 자식을 가지는 자식 노드 목록입니다. 자식 목록의 이름은 임의로 정할 수 있습니다(예: 위의 `versions`). 문자열 매칭은 깊이 우선으로 진행됩니다. 문자열이 어떤 노드와 일치하면 해당 노드의 자식도 검사합니다. 가장 깊은 수준에서 일치한 노드의 속성이 우선하며, 동일한 이름의 상위 속성을 덮어씁니다. + + +## 관련 페이지 \{#related-pages\} + +- [regexp_tree dictionary layout](../layouts/regexp-tree.md) — 레이아웃 구성, 쿼리 예제, 매칭 모드 +- [dictGet](/sql-reference/functions/ext-dict-functions#dictGet), [dictGetAll](/sql-reference/functions/ext-dict-functions#dictGetAll) — regexp tree 딕셔너리를 대상으로 쿼리하는 함수 \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md new file mode 100644 index 00000000000..394e20c60f3 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md @@ -0,0 +1,59 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/ytsaurus +title: 'YTsaurus 딕셔너리 소스' +sidebar_position: 13 +sidebar_label: 'YTsaurus' +description: 'ClickHouse에서 YTsaurus를 딕셔너리 소스로 구성합니다.' +doc_type: 'reference' +--- + +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + +:::info +이 기능은 실험적 기능이며, 향후 릴리스에서 하위 호환성이 깨지는 방식으로 변경될 수 있습니다. +설정 [`allow_experimental_ytsaurus_dictionary_source`](/operations/settings/settings#allow_experimental_ytsaurus_dictionary_source)을(를) 통해 YTsaurus 딕셔너리 소스 사용을 활성화하십시오. +::: + +설정 예: + + + + ```sql + SOURCE(YTSAURUS( + http_proxy_urls 'http://localhost:8000' + cypress_path '//tmp/test' + oauth_token 'password' + )) + ``` + + + + ```xml + + + http://localhost:8000 + //tmp/test + password + 1 + + + ``` + + + +
    + +설정 항목: + +| Setting | Description | +| ----------------- | -------------------------- | +| `http_proxy_urls` | YTsaurus HTTP 프록시의 URL입니다. | +| `cypress_path` | 테이블 소스의 Cypress 경로입니다. | +| `oauth_token` | OAuth 토큰입니다. | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md index f1503204a52..86a42f019c7 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md @@ -73,10 +73,10 @@ Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table defa ``` :::note -ClickHouse Cloud에서는 `PERMANENTLY` 절을 사용해야 합니다(예: `DETACH TABLE <table> PERMANENTLY`). 이 절을 사용하지 않으면 클러스터가 재시작될 때(예: 업그레이드 중) 테이블이 다시 연결됩니다. +ClickHouse Cloud에서는 `PERMANENTLY` 절을 사용해야 합니다(예: `DETACH TABLE PERMANENTLY`). 이 절을 사용하지 않으면 클러스터가 재시작될 때(예: 업그레이드 중) 테이블이 다시 연결됩니다. ::: **함께 보기** * [Materialized View](/sql-reference/statements/create/view#materialized-view) -* [Dictionaries](../../sql-reference/dictionaries/index.md) +* [Dictionaries](./create/dictionary/index.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md index 74461c191d8..20f7a6b3964 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md @@ -104,4 +104,4 @@ EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster] **함께 보기** -* [Dictionaries](../../sql-reference/dictionaries/index.md) +* [Dictionaries](./create/dictionary/index.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md index 39efd65d113..a9ba0c4ad21 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md @@ -19,6 +19,10 @@ doc_type: 'reference' OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL | FORCE] [DEDUPLICATE [BY expression]] ``` +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + `OPTIMIZE` 쿼리는 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 패밀리(여기에는 [materialized views](/sql-reference/statements/create/view#materialized-view) 포함)와 [Buffer](../../engines/table-engines/special/buffer.md) 엔진에서 지원됩니다. 다른 테이블 엔진은 지원되지 않습니다. `OPTIMIZE`를 [ReplicatedMergeTree](../../engines/table-engines/mergetree-family/replication.md) 테이블 엔진 패밀리와 함께 사용하는 경우, ClickHouse는 머지 작업을 생성하고 모든 레플리카에서 실행이 완료되기를 기다리거나([alter_sync](/operations/settings/settings#alter_sync) 설정이 `2`로 설정된 경우), 현재 레플리카에서만 기다립니다([alter_sync](/operations/settings/settings#alter_sync) 설정이 `1`로 설정된 경우). @@ -34,6 +38,55 @@ OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION I `alter_sync`가 `2`로 설정되어 있고, 일부 레플리카가 `replication_wait_for_inactive_replica_timeout` 설정으로 지정된 시간보다 더 오래 비활성 상태인 경우, `UNFINISHED` 예외가 발생합니다. ::: +## DRY RUN \{#dry-run\} + +`DRY RUN` 절은 지정한 파트의 머지 작업을 결과를 커밋하지 않고 시뮬레이션합니다. 머지된 파트는 임시 위치에 기록한 뒤 검증되고, 그 후 폐기됩니다. 원래 파트와 테이블 데이터는 변경되지 않습니다. + +다음과 같은 경우에 유용합니다: + +* ClickHouse 버전 간 머지의 정확성을 테스트할 때 +* 머지 관련 버그를 결정론적으로 재현할 때 +* 머지 성능을 벤치마크할 때 + +`DRY RUN`은 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 계열 테이블에서만 지원됩니다. 파트 이름 목록과 함께 `PARTS` 키워드를 지정해야 합니다. 지정된 모든 파트는 존재하고 활성 상태이며, 동일한 파티션에 속해야 합니다. + +`DRY RUN`은 `FINAL` 및 `PARTITION`과 함께 사용할 수 없습니다. `DEDUPLICATE`(선택적인 컬럼 지정 가능) 및 `CLEANUP`( `ReplacingMergeTree` 테이블에 대해)과는 함께 사용할 수 있습니다. + +**구문** + +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + +기본적으로 병합 결과로 생성된 파트는 [`CHECK TABLE`](/sql-reference/statements/check-table) 쿼리와 유사한 방식으로 검증됩니다. 이 동작은 [optimize_dry_run_check_part](/operations/settings/settings#optimize_dry_run_check_part) 설정(기본적으로 활성화됨)에 의해 제어됩니다. 이 설정을 비활성화하면 검증을 건너뛰게 되며, 병합 자체를 벤치마킹하는 데 유용할 수 있습니다. + +**예시** + +```sql +CREATE TABLE dry_run_example (key UInt64, value String) ENGINE = MergeTree ORDER BY key; + +INSERT INTO dry_run_example VALUES (1, 'a'), (2, 'b'); +INSERT INTO dry_run_example VALUES (1, 'c'), (4, 'd'); + +-- Simulate merging using two parts +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0'; + +-- Simulate merging with deduplication +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0' DEDUPLICATE; + +-- Parts and data remain unchanged after DRY RUN +SELECT name, rows FROM system.parts +WHERE database = currentDatabase() AND table = 'dry_run_example' AND active +ORDER BY name; +``` + +```response +┌─name────────┬─rows─┐ +│ all_1_1_0 │ 2 │ +│ all_2_2_0 │ 2 │ +└─────────────┴──────┘ +``` + ## BY 표현식 \{#by-expression\} 모든 컬럼이 아니라 사용자 정의 컬럼 집합에 대해 중복 제거를 수행하려면, 컬럼 목록을 명시적으로 지정하거나 [`*`](../../sql-reference/statements/select/index.md#asterisk), [`COLUMNS`](/sql-reference/statements/select#select-clause), [`EXCEPT`](/sql-reference/statements/select/except-modifier) 표현식을 임의로 조합하여 사용할 수 있습니다. 명시적으로 작성되었거나 암묵적으로 확장된 컬럼 목록에는 행 정렬 표현식(기본 키와 정렬 키 모두)과 파티션 표현식(파티셔닝 키)에 지정된 모든 컬럼이 포함되어야 합니다. @@ -105,7 +158,7 @@ SELECT * FROM example; #### `DEDUPLICATE` \{#deduplicate\} -중복 제거에 사용할 컬럼을 지정하지 않으면, 모든 컬럼이 사용됩니다. 행은 모든 컬럼의 값이 이전 행의 해당 값과 모두 동일한 경우에만 제거됩니다: +중복 제거 기준 컬럼이 지정되지 않으면 모든 컬럼이 사용됩니다. 모든 컬럼의 값이 바로 이전 행의 해당 컬럼 값과 모두 동일한 경우에만 해당 행이 제거됩니다: ```sql OPTIMIZE TABLE example FINAL DEDUPLICATE; diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md index 99039e345e5..f549f913f22 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md @@ -47,7 +47,7 @@ RENAME TABLE [db1.]name1 TO [db2.]name2 [,...] [ON CLUSTER cluster] RENAME TABLE table_A TO table_A_bak, table_B TO table_B_bak; ``` -또는 더 간단한 SQL을 사용할 수 있습니다: +또는 더 간단한 SQL 문을 사용할 수 있습니다: ```sql RENAME table_A TO table_A_bak, table_B TO table_B_bak; @@ -65,4 +65,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **관련 문서** -* [Dictionaries](../../sql-reference/dictionaries/index.md) +* [Dictionaries](./create/dictionary/index.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md index 21e1e5bc202..f750e8b6b16 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md @@ -488,7 +488,7 @@ Set을 반환합니다: 일부 경우에는 `JOIN` 대신 [IN](../../../sql-reference/operators/in.md)을 사용하는 것이 더 효율적입니다. -차원 테이블(광고 캠페인 이름과 같은 차원 속성을 포함하는 상대적으로 작은 테이블)과 조인하기 위해 `JOIN`이 필요한 경우, 오른쪽 테이블에 쿼리마다 다시 접근해야 하므로 `JOIN`은 그다지 편리하지 않을 수 있습니다. 이러한 경우에는 `JOIN` 대신 사용해야 하는 「dictionaries」 기능이 있습니다. 자세한 내용은 [Dictionaries](../../../sql-reference/dictionaries/index.md) 섹션을 참조하십시오. +차원 테이블(광고 캠페인 이름과 같은 차원 속성을 포함하는 상대적으로 작은 테이블)과 조인하기 위해 `JOIN`이 필요한 경우, 오른쪽 테이블에 쿼리마다 다시 접근해야 하므로 `JOIN`은 그다지 편리하지 않을 수 있습니다. 이러한 경우에는 `JOIN` 대신 사용해야 하는 「dictionaries」 기능이 있습니다. 자세한 내용은 [Dictionaries](../../create/dictionary/index.md) 섹션을 참조하십시오. ### 메모리 제한 \{#memory-limitations\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md index bdab7ae6926..a0ce3254f54 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md @@ -245,7 +245,7 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%' ## SHOW DICTIONARIES \{#show-dictionaries\} -`SHOW DICTIONARIES` 문은 [Dictionaries](../../sql-reference/dictionaries/index.md) 목록을 표시합니다. +`SHOW DICTIONARIES` 문은 [Dictionaries](./create/dictionary/index.md) 목록을 표시합니다. ### 구문 \{#syntax-4\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index f480a885641..b4615e8aa9f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -14,7 +14,7 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; ## SYSTEM RELOAD EMBEDDED DICTIONARIES \{#reload-embedded-dictionaries\} -모든 [내부 딕셔너리](../../sql-reference/dictionaries/index.md)를 다시 로드합니다. +모든 [내부 딕셔너리](./create/dictionary/index.md)를 다시 로드합니다. 기본적으로 내부 딕셔너리는 비활성화되어 있습니다. 내부 딕셔너리 업데이트 결과와 관계없이 항상 `Ok.`를 반환합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md index 54924038fb1..7c762984ac1 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md @@ -7,13 +7,9 @@ title: 'dictionary' doc_type: 'reference' --- - - # dictionary 테이블 함수 \{#dictionary-table-function\} -[dictionary](../../sql-reference/dictionaries/index.md) 데이터를 ClickHouse 테이블로 표시합니다. [Dictionary](../../engines/table-engines/special/dictionary.md) 엔진과 같은 방식으로 동작합니다. - - +[dictionary](../statements/create/dictionary/index.md) 데이터를 ClickHouse 테이블로 표시합니다. [Dictionary](../../engines/table-engines/special/dictionary.md) 엔진과 같은 방식으로 동작합니다. ## 구문 \{#syntax\} @@ -26,14 +22,10 @@ dictionary('dict') - `dict` — 딕셔너리의 이름입니다. [String](../../sql-reference/data-types/string.md). - - ## 반환값 \{#returned_value\} ClickHouse 테이블이 반환됩니다. - - ## 예제 \{#examples\} 입력 테이블 `dictionary_source_table`: @@ -70,4 +62,4 @@ SELECT * FROM dictionary('new_dictionary'); ## 관련 항목 \{#related\} -- [딕셔너리 엔진](/engines/table-engines/special/dictionary) +- [딕셔너리 엔진](/engines/table-engines/special/dictionary) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md index 5cde3c6231b..4e1991e726d 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md @@ -439,7 +439,7 @@ y: 993 ### 스키마 변경 \{#iceberg-writes-schema-evolution\} -ClickHouse에서는 단순 타입(튜플, 배열, 맵이 아닌 타입)을 사용하는 컬럼을 추가, 삭제 또는 수정할 수 있습니다. +ClickHouse에서는 단순 타입(튜플, 배열, 맵이 아닌 타입)을 사용하는 컬럼을 추가, 삭제 또는 수정하거나 이름을 변경할 수 있습니다. ### 예제 \{#example-iceberg-writes-evolution\} @@ -498,6 +498,27 @@ Row 1: ────── x: Ivanov y: 993 + +ALTER TABLE iceberg_writes_example RENAME COLUMN y TO value; +SHOW CREATE TABLE iceberg_writes_example; + + ┌─statement─────────────────────────────────────────────────┐ +1. │ CREATE TABLE default.iceberg_writes_example ↴│ + │↳( ↴│ + │↳ `x` Nullable(String), ↴│ + │↳ `value` Nullable(Int64) ↴│ + │↳) ↴│ + │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │ + └───────────────────────────────────────────────────────────┘ + +SELECT * +FROM iceberg_writes_example +FORMAT VERTICAL; + +Row 1: +────── +x: Ivanov +value: 993 ``` diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md index 57ed2e7a779..b5dc2c3d73b 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md @@ -129,4 +129,4 @@ SELECT * FROM mongodb( ## 관련 항목 \{#related\} - [`MongoDB` 테이블 엔진](engines/table-engines/integrations/mongodb.md) -- [MongoDB를 딕셔너리(Dictionary) 소스로 사용하기](sql-reference/dictionaries/index.md#mongodb) \ No newline at end of file +- [MongoDB를 딕셔너리(Dictionary) 소스로 사용하기](../statements/create/dictionary/sources.md#mongodb) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md index e32b93f1803..bf5be35f814 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md @@ -7,14 +7,10 @@ title: 'mysql' doc_type: 'reference' --- - - # mysql Table Function \{#mysql-table-function\} 원격 MySQL 서버에 저장된 데이터에 대해 `SELECT` 및 `INSERT` 쿼리를 실행할 수 있습니다. - - ## 구문 \{#syntax\} ```sql @@ -65,11 +61,9 @@ MySQL의 일부 데이터 타입은 서로 다른 ClickHouse 타입으로 매핑 `INSERT` 쿼리에서 테이블 함수 `mysql(...)`와 컬럼 이름 목록이 있는 테이블 이름을 구분하려면 `FUNCTION` 또는 `TABLE FUNCTION` 키워드를 사용해야 합니다. 아래 예시를 참고하십시오. ::: - - ## 예제 \{#examples\} -MySQL의 테이블 예: +MySQL 테이블: ```text mysql> CREATE TABLE `test`.`test` ( @@ -111,7 +105,7 @@ SELECT * FROM mysql(creds, table='test'); └────────┴───────┘ ``` -교체 및 삽입: +대체 및 삽입: ```sql INSERT INTO FUNCTION mysql('localhost:3306', 'test', 'test', 'bayonet', '123', 1) (int_id, float) VALUES (1, 3); @@ -154,8 +148,8 @@ WHERE id > (SELECT max(id) FROM mysql_copy); ## 관련 항목 \{#related\} - ['MySQL' 테이블 엔진](../../engines/table-engines/integrations/mysql.md) -- [MySQL을 딕셔너리 소스로 사용하는 방법](/sql-reference/dictionaries#mysql) +- [MySQL을 딕셔너리 소스로 사용하는 방법](/sql-reference/statements/create/dictionary/sources#mysql) - [mysql_datatypes_support_level](operations/settings/settings.md#mysql_datatypes_support_level) - [mysql_map_fixed_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_fixed_string_to_text_in_show_columns) - [mysql_map_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_string_to_text_in_show_columns) -- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) +- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md index 0a65d0ed72c..78232a334d4 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md @@ -7,14 +7,10 @@ title: 'odbc' doc_type: 'reference' --- - - # odbc Table Function \{#odbc-table-function\} [ODBC](https://en.wikipedia.org/wiki/Open_Database_Connectivity)를 통해 연결된 테이블을 반환합니다. - - ## 구문 \{#syntax\} ```sql @@ -38,8 +34,6 @@ ODBC 연결을 안전하게 구현하기 위해 ClickHouse는 별도의 프로 외부 테이블에서 `NULL` 값을 가진 필드는 기본 데이터 타입의 기본값으로 변환됩니다. 예를 들어, 원격 MySQL 테이블 필드의 형이 `INT NULL`인 경우, 이는 ClickHouse `Int32` 데이터 타입의 기본값인 0으로 변환됩니다. - - ## 사용 예시 \{#usage-example\} **ODBC를 통해 로컬 MySQL 설치 환경에서 데이터 가져오기** @@ -120,5 +114,5 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test') ## 관련 항목 \{#see-also\} -- [ODBC 사전](/sql-reference/dictionaries#dbms) -- [ODBC 테이블 엔진](/engines/table-engines/integrations/odbc). +- [ODBC 사전](/sql-reference/statements/create/dictionary/sources#dbms) +- [ODBC 테이블 엔진](/engines/table-engines/integrations/odbc). \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md index 6755bb39a36..f9664ba8199 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md @@ -7,14 +7,10 @@ title: 'postgresql' doc_type: 'reference' --- - - # postgresql Table Function \{#postgresql-table-function\} 원격 PostgreSQL 서버에 저장된 데이터에 대해 `SELECT` 및 `INSERT` 쿼리를 수행할 수 있습니다. - - ## 구문 \{#syntax\} ```sql @@ -36,8 +32,6 @@ postgresql({host:port, database, table, user, password[, schema, [, on_conflict] 인수는 [named collections](operations/named-collections.md)을 사용하여 전달할 수도 있습니다. 이 경우 `host`와 `port`는 개별적으로 지정해야 합니다. 이 방식은 프로덕션 환경에서 사용하는 것을 권장합니다. - - ## 반환 값 \{#returned_value\} 원본 PostgreSQL 테이블과 동일한 컬럼을 가진 테이블 객체입니다. @@ -46,8 +40,6 @@ postgresql({host:port, database, table, user, password[, schema, [, on_conflict] `INSERT` 쿼리에서 테이블 함수 `postgresql(...)`와 컬럼 이름 목록이 포함된 테이블 이름을 구분하려면 `FUNCTION` 또는 `TABLE FUNCTION` 키워드를 사용해야 합니다. 아래 예제를 참고하십시오. ::: - - ## 구현 세부사항 \{#implementation-details\} PostgreSQL 측의 `SELECT` 쿼리는 읽기 전용 PostgreSQL 트랜잭션 내부에서 `COPY (SELECT ...) TO STDOUT` 형태로 실행되며, 각 `SELECT` 쿼리 후에 커밋이 수행됩니다. @@ -104,7 +96,7 @@ postgresql> SELECT * FROM test; (1 row) ``` -일반 인자를 사용하여 ClickHouse에서 데이터 조회: +일반 인수를 사용하여 ClickHouse에서 데이터 조회: ```sql SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'password') WHERE str IN ('test'); @@ -142,7 +134,7 @@ SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'p └────────┴──────────────┴───────┴──────┴────────────────┘ ``` -기본이 아닌 스키마 사용: +기본 스키마가 아닌 스키마 사용: ```text postgres=# CREATE SCHEMA "nice.schema"; @@ -161,8 +153,8 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) ## 관련 항목 \{#related\} - [The PostgreSQL table engine](../../engines/table-engines/integrations/postgresql.md) -- [Using PostgreSQL as a dictionary source](/sql-reference/dictionaries#postgresql) +- [Using PostgreSQL as a dictionary source](/sql-reference/statements/create/dictionary/sources#postgresql) ### PeerDB를 사용한 Postgres 데이터 복제 또는 마이그레이션 \{#replicating-or-migrating-postgres-data-with-with-peerdb\} -> 테이블 함수 외에도 ClickHouse의 [PeerDB](https://docs.peerdb.io/introduction)를 사용하여 Postgres에서 ClickHouse로 데이터를 지속적으로 전송하는 파이프라인을 구성할 수 있습니다. PeerDB는 변경 데이터 캡처(Change Data Capture, CDC)를 사용해 Postgres 데이터를 ClickHouse로 복제하는 데 특화된 도구입니다. +> 테이블 함수 외에도 ClickHouse의 [PeerDB](https://docs.peerdb.io/introduction)를 사용하여 Postgres에서 ClickHouse로 데이터를 지속적으로 전송하는 파이프라인을 구성할 수 있습니다. PeerDB는 변경 데이터 캡처(Change Data Capture, CDC)를 사용해 Postgres 데이터를 ClickHouse로 복제하는 데 특화된 도구입니다. \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md index 6124bc7546d..380f957ab4e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md @@ -7,14 +7,10 @@ title: 'redis' doc_type: 'reference' --- - - # redis 테이블 함수 \{#redis-table-function\} 이 테이블 함수는 ClickHouse를 [Redis](https://redis.io/)와 통합할 수 있게 합니다. - - ## 구문 \{#syntax\} ```sql @@ -39,14 +35,10 @@ redis(host:port, key, structure[, db_index[, password[, pool_size]]]) 현재 `redis` table function에서는 [Named collections](/operations/named-collections.md)를 지원하지 않습니다. - - ## 반환 값 \{#returned_value\} Redis 키를 key로 사용하고, 나머지 컬럼을 하나의 Redis value로 묶은 테이블 객체입니다. - - ## 사용 예제 \{#usage-example\} Redis에서 읽기: @@ -72,4 +64,4 @@ INSERT INTO TABLE FUNCTION redis( ## 관련 항목 \{#related\} - [`Redis` 테이블 엔진](/engines/table-engines/integrations/redis.md) -- [Redis를 딕셔너리 소스로 사용하기](/sql-reference/dictionaries/index.md#redis) +- [Redis를 딕셔너리 소스로 사용하기](/sql-reference/statements/create/dictionary/sources#redis) \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md index bf74537d49c..43ff8676101 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md @@ -57,9 +57,13 @@ ClickHouse는 윈도우 및 윈도우 함수 정의를 위한 표준 문법을 ```text aggregate_function (column_name) OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column] - [ROWS or RANGE expression_to_bound_rows_withing_the_group]] | [window_name]) + [ROWS or RANGE expression_to_bound_rows_within_the_group]] | [window_name]) FROM table_name -WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]]) +WINDOW window_name as ([ + [PARTITION BY grouping_column] + [ORDER BY sorting_column] + [ROWS or RANGE expression_to_bound_rows_within_the_group] +]) ``` * `PARTITION BY` - 결과 집합을 그룹으로 나누는 방식을 정의합니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/ko/docusaurus-plugin-content-docs/current/tutorial.md index aac6f6bbb30..47663841608 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/tutorial.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/tutorial.md @@ -142,7 +142,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 ") SETTINGS input_format_try_infer_datetimes = 0 ``` - 2. `INSERT`가 완료될 때까지 기다리십시오. 150 MB 용량의 데이터를 다운로드하는 데 잠시 시간이 걸릴 수 있습니다. + 2. `INSERT`가 완료될 때까지 기다리십시오. 150MB 분량의 데이터를 다운로드하는 데 잠시 시간이 걸릴 수 있습니다. 3. INSERT가 완료되면 정상적으로 완료되었는지 확인합니다: @@ -150,13 +150,13 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 SELECT count() FROM trips ``` - 이 쿼리를 실행하면 1,999,657개의 행이 반환되어야 합니다. + 이 쿼리는 1,999,657개의 행을 반환해야 합니다. ## 데이터 분석하기 데이터를 분석하기 위해 몇 가지 쿼리를 실행하세요. 다음 예제를 살펴보거나 직접 SQL 쿼리를 작성해 보세요. - * 평균 팁 금액 계산: + * 평균 팁 금액을 계산합니다: ```sql SELECT round(avg(tip_amount), 2) FROM trips @@ -188,7 +188,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 예상 출력

    - `passenger_count` 값은 0부터 9까지입니다: + `passenger_count` 값은 0부터 9까지의 범위를 가집니다: ```response ┌─passenger_count─┬─average_total_amount─┐ @@ -238,7 +238,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이

    - * 각 여행의 소요 시간을 분 단위로 계산한 다음, 결과를 소요 시간(분)별로 그룹화합니다. + * 각 여행의 소요 시간을 분 단위로 계산한 다음, 소요 시간별로 결과를 그룹화합니다: ```sql SELECT @@ -270,7 +270,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이

    - * 동네별로 하루 중 각 시간대별 픽업 건수를 표시합니다: + * 동네별로 시간대별 픽업 건수를 표시합니다: ```sql SELECT @@ -327,7 +327,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이

    - 7. LaGuardia 또는 JFK 공항행 승차 기록을 조회하십시오: + 7. LaGuardia 또는 JFK 공항행 택시 운행 기록을 조회하십시오: ```sql SELECT @@ -369,7 +369,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 ## 딕셔너리 생성하기 - 딕셔너리는 메모리에 저장된 key-value 쌍의 매핑입니다. 자세한 내용은 [딕셔너리](/sql-reference/dictionaries/index.md)를 참조하세요. + 딕셔너리는 메모리에 저장된 key-value 쌍의 매핑입니다. 자세한 내용은 [딕셔너리](/sql-reference/statements/create/dictionary)를 참조하세요. ClickHouse 서비스의 테이블과 연결된 딕셔너리를 생성하세요. 테이블과 딕셔너리는 뉴욕시의 각 지역별로 하나의 행을 포함하는 CSV 파일을 기반으로 합니다. @@ -403,23 +403,23 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 ``` :::note - `LIFETIME`을 0으로 설정하면 자동 업데이트가 비활성화되어 S3 버킷으로의 불필요한 트래픽을 방지합니다. 다른 경우에는 다르게 구성할 수 있습니다. 자세한 내용은 [LIFETIME을 사용하여 딕셔너리 데이터 새로고침](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)을 참조하십시오. + `LIFETIME`을 0으로 설정하면 자동 업데이트가 비활성화되어 S3 버킷으로의 불필요한 트래픽을 방지합니다. 다른 경우에는 다르게 구성할 수 있습니다. 자세한 내용은 [LIFETIME을 사용하여 딕셔너리 데이터 새로고침](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)을 참조하십시오. ::: - 3. 올바르게 동작하는지 확인합니다. 다음 쿼리는 265개의 행, 즉 각 동네마다 하나의 행을 반환해야 합니다. + 3. 정상적으로 동작하는지 확인합니다. 다음 쿼리는 265개의 행, 즉 각 지역마다 하나의 행을 반환해야 합니다: ```sql SELECT * FROM taxi_zone_dictionary ``` - 4. 딕셔너리에서 값을 조회하려면 `dictGet` 함수([또는 그 변형 함수](./sql-reference/functions/ext-dict-functions.md))를 사용합니다. 딕셔너리 이름, 조회하려는 값의 컬럼 이름, 그리고 키(이 예제에서는 `taxi_zone_dictionary`의 `LocationID` 컬럼)를 인수로 전달합니다. + 4. 딕셔너리에서 값을 조회하려면 `dictGet` 함수([또는 그 변형 함수](./sql-reference/functions/ext-dict-functions.md))를 사용합니다. 딕셔너리 이름, 조회하려는 값의 컬럼, 그리고 키 값(이 예제에서는 `taxi_zone_dictionary`의 `LocationID` 컬럼)을 인수로 전달합니다. - 예를 들어, 다음 쿼리는 `LocationID`가 132인 `Borough`를 반환하며, 이는 JFK 공항에 해당합니다. + 예를 들어, 다음 쿼리는 `LocationID`가 132인 `Borough`를 반환하는데, 이는 JFK 공항에 해당합니다. ```sql SELECT dictGet('taxi_zone_dictionary', 'Borough', 132) ``` - JFK는 퀸즈에 있습니다. 값을 조회하는 데 걸리는 시간은 사실상 0초임을 알 수 있습니다: + JFK는 퀸즈에 있습니다. 값을 조회하는 데 걸리는 시간은 사실상 0에 가깝습니다: ```response ┌─dictGet('taxi_zone_dictionary', 'Borough', 132)─┐ @@ -434,7 +434,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 SELECT dictHas('taxi_zone_dictionary', 132) ``` - 6. 다음 쿼리는 딕셔너리에서 `LocationID`에 4567 값이 없으므로 0을 반환합니다. + 6. 다음 쿼리는 딕셔너리에서 `LocationID`의 값으로 4567이 존재하지 않으므로 0을 반환합니다. ```sql SELECT dictHas('taxi_zone_dictionary', 4567) ``` @@ -451,7 +451,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 ORDER BY total DESC ``` - 이 쿼리는 LaGuardia 또는 JFK 공항에서 끝나는 택시 운행 횟수를 자치구별로 합산합니다. 결과는 다음과 같으며, 승차 지역(pickup neighborhood)이 알려지지 않은 운행이 상당히 많다는 점을 확인할 수 있습니다. + 이 쿼리는 LaGuardia 또는 JFK 공항에서 종료되는 택시 운행 횟수를 자치구별로 합산합니다. 결과는 다음과 같으며, 승차 지역(pickup neighborhood)이 알려지지 않은 운행이 상당히 많다는 점을 확인할 수 있습니다. ```response ┌─total─┬─borough_name──┐ @@ -471,7 +471,7 @@ New York City 택시 예제 데이터셋을 사용하여 ClickHouse에서 데이 `taxi_zone_dictionary`와 `trips` 테이블을 조인하는 쿼리를 작성하세요. - 1. 먼저 앞에서 살펴본 공항 쿼리와 비슷하게 동작하는 간단한 `JOIN`부터 시작합니다: + 1. 앞에서 살펴본 공항 쿼리와 비슷하게 동작하는 간단한 `JOIN`부터 시작합니다: ```sql SELECT diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md index 90be71ba544..0f7c3eea47f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md @@ -588,7 +588,7 @@ LIMIT 5 ## 딕셔너리 사용하기 \{#using-dictionaries\} -[Dictionaries](/sql-reference/dictionaries)는 ClickHouse의 [주요 기능](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)으로, 다양한 내부 및 외부 [소스](/sql-reference/dictionaries#dictionary-sources)에서 가져온 데이터를 메모리 상의 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 형태로 표현하며, 초저지연 조회 쿼리에 최적화되어 있습니다. +[Dictionaries](/sql-reference/statements/create/dictionary)는 ClickHouse의 [주요 기능](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)으로, 다양한 내부 및 외부 [소스](/sql-reference/statements/create/dictionary/sources#dictionary-sources)에서 가져온 데이터를 메모리 상의 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 형태로 표현하며, 초저지연 조회 쿼리에 최적화되어 있습니다. @@ -726,7 +726,7 @@ SELECT FROM geoip_url ``` -ClickHouse에서 저지연 IP 조회를 수행하기 위해 Geo IP 데이터를 메모리에 저장하는 딕셔너리를 활용하여 키 -> 속성 매핑을 구성합니다. ClickHouse는 네트워크 프리픽스(CIDR 블록)를 좌표와 국가 코드에 매핑하기 위한 `ip_trie` [딕셔너리 구조](/sql-reference/dictionaries#ip_trie)를 제공합니다. 다음 쿼리는 이 구조와 위의 테이블을 소스로 사용하는 딕셔너리를 정의합니다. +ClickHouse에서 저지연 IP 조회를 수행하기 위해 Geo IP 데이터를 메모리에 저장하는 딕셔너리를 활용하여 키 -> 속성 매핑을 구성합니다. ClickHouse는 네트워크 프리픽스(CIDR 블록)를 좌표와 국가 코드에 매핑하기 위한 `ip_trie` [딕셔너리 구조](/sql-reference/statements/create/dictionary/layouts/ip-trie)를 제공합니다. 다음 쿼리는 이 구조와 위의 테이블을 소스로 사용하는 딕셔너리를 정의합니다. ```sql CREATE DICTIONARY ip_trie ( @@ -838,10 +838,10 @@ ORDER BY (ServiceName, Timestamp) [User agent 문자열](https://en.wikipedia.org/wiki/User_agent)의 파싱은 고전적인 정규 표현식 문제로, 로그 및 트레이스 기반 데이터셋에서 흔히 요구되는 작업입니다. ClickHouse는 Regular Expression Tree 딕셔너리를 사용하여 user agent를 효율적으로 파싱합니다. -정규 표현식 트리 딕셔너리는 ClickHouse 오픈 소스에서 `YAMLRegExpTree` 딕셔너리 소스 타입을 사용해 정의되며, 정규 표현식 트리가 포함된 YAML 파일의 경로를 지정합니다. 사용자 정의 정규 표현식 딕셔너리를 사용하려는 경우, 필요한 구조에 대한 자세한 내용은 [여기](/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source)에서 확인할 수 있습니다. 아래에서는 [uap-core](https://github.com/ua-parser/uap-core)를 사용한 user agent 파싱에 초점을 맞추고, 지원되는 CSV 형식으로 딕셔너리를 로드합니다. 이 접근 방식은 OSS와 ClickHouse Cloud 모두에서 호환됩니다. +정규 표현식 트리 딕셔너리는 ClickHouse 오픈 소스에서 `YAMLRegExpTree` 딕셔너리 소스 타입을 사용해 정의되며, 정규 표현식 트리가 포함된 YAML 파일의 경로를 지정합니다. 사용자 정의 정규 표현식 딕셔너리를 사용하려는 경우, 필요한 구조에 대한 자세한 내용은 [여기](/sql-reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source)에서 확인할 수 있습니다. 아래에서는 [uap-core](https://github.com/ua-parser/uap-core)를 사용한 user agent 파싱에 초점을 맞추고, 지원되는 CSV 형식으로 딕셔너리를 로드합니다. 이 접근 방식은 OSS와 ClickHouse Cloud 모두에서 호환됩니다. :::note -아래 예제에서는 2024년 6월 기준 최신 uap-core user agent 파싱용 정규 표현식 스냅샷을 사용합니다. 가끔씩 업데이트되는 최신 파일은 [여기](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)에서 확인할 수 있습니다. 아래에서 사용하는 CSV 파일로 로드하려면 [여기](/sql-reference/dictionaries#collecting-attribute-values)의 단계를 따르면 됩니다. +아래 예제에서는 2024년 6월 기준 최신 uap-core user agent 파싱용 정규 표현식 스냅샷을 사용합니다. 가끔씩 업데이트되는 최신 파일은 [여기](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)에서 확인할 수 있습니다. 아래에서 사용하는 CSV 파일로 로드하려면 [여기](/sql-reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values)의 단계를 따르면 됩니다. ::: 다음 Memory 테이블을 생성하십시오. 이 테이블들은 디바이스, 브라우저 및 운영 체제를 파싱하기 위한 정규 표현식을 저장합니다. @@ -875,7 +875,7 @@ CREATE TABLE regexp_device ) ENGINE=Memory; ``` -이 테이블들은 `url` 테이블 함수를 사용하여 아래의 공개적으로 호스팅된 CSV 파일에서 데이터를 채울 수 있습니다. +이 테이블들은 `url` 테이블 함수를 사용하여 아래의 공개로 호스팅되는 CSV 파일에서 데이터를 불러올 수 있습니다. ```sql INSERT INTO regexp_os SELECT * FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/user_agent_regex/regexp_os.csv', 'CSV', 'id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') @@ -1031,7 +1031,7 @@ Os: ('Other','0','0','0') - [고급 딕셔너리 주제](/dictionary#advanced-dictionary-topics) - [「Using Dictionaries to Accelerate Queries」](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [딕셔너리](/sql-reference/dictionaries) +- [딕셔너리](/sql-reference/statements/create/dictionary) ## 쿼리 가속화 \{#accelerating-queries\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md index aefa1ab9417..658b0f747a8 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md @@ -1,6 +1,6 @@ --- slug: /use-cases/observability/clickstack/alerts -title: 'ClickStack로 검색하기' +title: 'ClickStack에서 알림 사용하기' sidebar_label: '알림' pagination_prev: null pagination_next: null @@ -24,14 +24,12 @@ import remove_chart_alert from '@site/static/images/use-cases/observability/remo import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +ClickStack에는 알림 기능이 기본으로 포함되어 있어 로그, 메트릭, 트레이스 전반에서 팀이 실시간으로 문제를 감지하고 대응할 수 있습니다. -## ClickStack의 경보(Alerting) \{#alerting-in-clickstack\} +알림은 HyperDX 인터페이스에서 직접 생성할 수 있으며 Slack, PagerDuty와 같은 대표적인 알림 시스템과 연동됩니다. -ClickStack에는 경보(Alerting)에 대한 기본 제공 기능이 포함되어 있어 로그, 메트릭, 트레이스 전반에서 팀이 문제를 실시간으로 감지하고 대응할 수 있습니다. +알림 기능은 ClickStack 데이터 전반에서 원활하게 동작하여 시스템 상태를 추적하고, 성능 회귀(regression)를 포착하며, 주요 비즈니스 이벤트를 모니터링하는 데 도움이 됩니다. -경보는 HyperDX 인터페이스에서 직접 생성할 수 있으며, Slack, PagerDuty와 같은 널리 사용되는 알림 시스템과 연동됩니다. - -경보 기능은 ClickStack 데이터 전반에서 원활하게 작동하여 시스템 상태를 추적하고 성능 회귀를 감지하며 핵심 비즈니스 이벤트를 모니터링하는 데 도움이 됩니다. ## 알림 유형 \{#types-of-alerts\} diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md index c3d5852af8f..c3db438661f 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md @@ -14,4 +14,5 @@ keywords: ['ClickStack 샘플 데이터셋', 'ClickStack 데모 데이터', '관 |---------|-------------| | [Sample Data](sample-data.md) | 데모 환경의 로그, 트레이스, 메트릭이 포함된 샘플 데이터셋을 로드합니다 | | [Local Data](local-data.md) | 로컬 시스템의 메트릭과 로그를 수집해 분석을 위해 ClickStack으로 전송합니다 | -| [Remote Demo Data](remote-demo-data.md) | 원격 데모 클러스터에 연결해 문제를 살펴봅니다 | \ No newline at end of file +| [Remote Demo Data](remote-demo-data.md) | 원격 데모 클러스터에 연결해 문제를 살펴봅니다 | +| [Session Replay Demo](session-replay.md) | 세션 리플레이를 위해 데모 웹 애플리케이션을 계측하고 ClickStack에서 상호 작용을 확인합니다 | \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md new file mode 100644 index 00000000000..1b99ce237ed --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md @@ -0,0 +1,179 @@ +--- +slug: /use-cases/observability/clickstack/example-datasets/session-replay-demo +title: '세션 리플레이 데모' +sidebar_position: 4 +pagination_prev: null +pagination_next: null +description: 'ClickStack 세션 리플레이를 위한 웹 앱 계측 방법을 보여주는 대화형 데모 애플리케이션' +doc_type: 'guide' +keywords: ['clickstack', '세션 리플레이', '브라우저 SDK', '데모', '관측성', '계측'] +--- + +import Image from '@theme/IdealImage'; +import api_key from '@site/static/images/clickstack/api-key.png'; +import demo_app from '@site/static/images/clickstack/session-replay/demo-app.png'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; + +:::note[TL;DR] +이 가이드는 ClickStack Browser SDK를 사용해 웹 애플리케이션을 세션 리플레이용으로 인스트루먼트하는 방법을 단계별로 설명합니다. 미리 생성된 데이터를 불러오는 다른 샘플 데이터셋과 달리, 이 데모는 사용자의 상호작용을 통해 직접 세션 데이터를 생성하는 인터랙티브 애플리케이션을 제공합니다. + +소요 시간: 10-15분 +::: + + +## 개요 \{#overview\} + +[세션 리플레이 데모 애플리케이션](https://github.com/ClickHouse/clickstack-session-replay-demo)은 바닐라 JavaScript로 구현된 문서 탐색기입니다. 하나의 스크립트 태그와 한 번의 초기화 호출만으로 모든 사용자 상호작용을 자동으로 캡처할 수 있을 정도로, 세션 리플레이 계측을 얼마나 최소한의 코드로 구현할 수 있는지 보여 줍니다. + +이 리포지토리에는 두 개의 브랜치가 포함되어 있습니다. + +- **`main`** — 계측이 모두 완료되어 바로 사용할 수 있는 브랜치 +- **`pre-instrumented`** — 계측이 아직 추가되지 않은 클린 버전으로, 어디에 계측을 추가해야 하는지 코드 주석으로 표시되어 있는 브랜치 + +이 가이드는 먼저 `main` 브랜치를 사용하여 세션 리플레이가 실제로 동작하는 것을 살펴본 다음, 동일한 패턴을 애플리케이션에도 적용할 수 있도록 계측 코드를 단계별로 설명합니다. + +세션 리플레이가 무엇이며 ClickStack 내에서 어떤 역할을 하는지에 대한 배경 설명은 [Session Replay](/use-cases/observability/clickstack/session-replay) 기능 페이지를 참고하십시오. + +## 사전 준비 사항 \{#prerequisites\} + +- Docker 및 Docker Compose가 설치되어 있어야 합니다 +- 포트 3000, 4317, 4318 및 8080이 사용 가능해야 합니다 + +## 데모 실행하기 \{#running-the-demo\} + + + +### 리포지토리 클론하기 \{#clone-repository\} + +```shell +git clone https://github.com/ClickHouse/clickstack-session-replay-demo +cd clickstack-session-replay-demo +``` + +### ClickStack 시작하기 \{#start-clickstack\} + +```shell +docker-compose up -d clickstack +``` + +### API key 가져오기 \{#get-api-key\} + +1. [http://localhost:8080](http://localhost:8080)에서 HyperDX를 엽니다. +2. 필요하면 계정을 생성하거나 로그인합니다. +3. **Team Settings → API Keys**로 이동합니다. +4. **Ingestion API Key**를 복사합니다. + + + +5. 환경 변수로 설정합니다: + +```shell +export CLICKSTACK_API_KEY='your-api-key-here' +``` + +### 데모 애플리케이션 시작하기 \{#start-demo-app\} + +```shell +docker-compose --profile demo up demo-app +``` + +:::note +`CLICKSTACK_API_KEY` 변수를 export한 것과 동일한 터미널에서 이 명령을 실행해야 합니다. +::: + +브라우저에서 [http://localhost:3000](http://localhost:3000)을 연 다음 애플리케이션을 사용해 보십시오. 토픽을 검색하고, 카테고리로 필터링하며, 코드 예제를 보고, 항목을 북마크합니다. + + + +모든 상호작용은 ClickStack Browser SDK에 의해 자동으로 캡처됩니다. + +### 세션 리플레이 보기 \{#view-session-replay\} + +[http://localhost:8080](http://localhost:8080)의 HyperDX로 돌아가서 왼쪽 사이드바에서 **Client Sessions**로 이동합니다. + + + +세션 목록에서 각 세션의 지속 시간과 이벤트 수를 확인할 수 있습니다. ▶️ 버튼을 클릭하여 재생합니다. + + + +타임라인에서 세부 수준을 조정하려면 **Highlighted**와 **All Events** 모드 간에 전환합니다. + + + +## 계측 \{#instrumentation\} + +데모 애플리케이션은 세션 리플레이를 활성화하는 데 얼마나 적은 코드만으로도 충분한지 보여줍니다. 애플리케이션에 두 가지만 추가하면 됩니다: + +**1. SDK 포함하기 (`app/public/index.html`):** + +```html + +``` + +**2. ClickStack 초기화하기 (`app/public/js/app.js`):** + +```javascript +window.HyperDX.init({ + url: 'http://localhost:4318', + apiKey: window.CLICKSTACK_API_KEY, + service: 'clickhouse-session-replay-demo', + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + +나머지 코드는 모두 일반적인 애플리케이션 코드입니다. SDK는 사용자 상호 작용, 콘솔 로그, 네트워크 요청, 오류를 모두 자동으로 수집하므로 별도의 계측 작업은 필요하지 않습니다. + + +### 직접 시도해 보기 \{#try-it-yourself\} + +애플리케이션을 처음부터 계측하려면 `pre-instrumented` 브랜치로 전환하십시오: + +```shell +git checkout pre-instrumented +``` + +이 브랜치에는 ClickStack 계측이 전혀 없는 동일한 애플리케이션이 포함되어 있습니다. `app/public/index.html` 및 `app/public/js/app.js`의 코드 주석에 위의 두 코드 스니펫을 정확히 어디에 추가해야 하는지 표시되어 있습니다. 코드를 추가한 후 데모 앱을 다시 시작하면 상호 작용이 ClickStack에 나타나기 시작합니다. + + +## 문제 해결 \{#troubleshooting\} + +### HyperDX에 세션이 표시되지 않는 경우 \{#sessions-not-appearing\} + +1. 브라우저 콘솔에 오류가 있는지 확인하십시오. +2. ClickStack이 실행 중인지 확인하십시오: `docker-compose ps` +3. API 키가 설정되어 있는지 확인하십시오: `echo $CLICKSTACK_API_KEY` +4. Client Sessions 뷰에서 시간 범위를 조정하십시오 (예: **Last 15 minutes**(최근 15분)을 선택) +5. 브라우저를 강제로 새로 고침하십시오: `Cmd+Shift+R` (Mac) 또는 `Ctrl+Shift+R` (Windows/Linux) + +### 401 Unauthorized 오류 \{#401-errors\} + +API 키가 올바르게 설정되지 않았습니다. 다음을 확인하십시오: + +1. 터미널에서 다음 명령으로 환경 변수로 설정했는지: `export CLICKSTACK_API_KEY='your-key'` +2. 키를 export한 **동일한 터미널**에서 데모 앱을 시작했는지 +3. 임의로 생성한 문자열이 아니라 HyperDX UI에서 발급된 키를 사용했는지 + +## 정리 \{#cleanup\} + +서비스를 중지하십시오: + +```bash +docker-compose down +``` + +모든 데이터 삭제: + +```bash +docker-compose down -v +``` + + +## 더 알아보기 \{#learn-more\} + +- [Session Replay](/use-cases/observability/clickstack/session-replay) — 기능 개요, SDK 옵션, 개인정보 보호 설정 +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — 전체 SDK 옵션과 고급 구성 +- [ClickStack 시작하기](/use-cases/observability/clickstack/getting-started) — ClickStack을 배포하고 처음 데이터를 수집하는 방법 +- [모든 샘플 데이터셋](/use-cases/observability/clickstack/sample-datasets) — 기타 예제 데이터셋 및 가이드 \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md new file mode 100644 index 00000000000..afbde696939 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md @@ -0,0 +1,150 @@ +--- +slug: /use-cases/observability/clickstack/session-replay +title: '세션 리플레이' +sidebar_label: '세션 리플레이' +sidebar_position: 5 +pagination_prev: null +pagination_next: null +description: 'ClickStack에서 사용자 세션을 캡처하고 재생하여 프론트엔드 문제를 디버깅하고, 사용자 행동을 파악하며, 브라우저 활동을 백엔드 로그 및 트레이스와 연관시켜 분석합니다.' +doc_type: 'guide' +keywords: ['clickstack', '세션 리플레이', '브라우저 SDK', '프론트엔드 관측성', '사용자 세션', '디버깅'] +--- + +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; +import trace_to_replay from '@site/static/images/clickstack/session-replay/trace-to-replay.png'; +import clickpy_trace from '@site/static/images/clickstack/session-replay/clickpy-trace.gif'; + +ClickStack의 세션 리플레이 기능은 웹 애플리케이션에서 사용자의 상호작용을 캡처하고 재구성하여, 세션 동안 사용자가 화면에서 무엇을 보고 무엇을 했는지 정확히 시각적으로 재생할 수 있도록 합니다. 비디오를 녹화하는 대신 SDK는 DOM 변경, 마우스 움직임, 클릭, 스크롤, 키보드 입력, 콘솔 로그, 네트워크 요청(XHR, Fetch, WebSocket), JavaScript 예외를 기록한 뒤 브라우저에서 그 경험을 재구성합니다. + +세션 리플레이는 로그, 트레이스, 메트릭과 함께 ClickHouse에 저장되므로, 몇 번의 클릭만으로 사용자의 경험을 재생하는 화면에서 곧바로 이를 뒷받침한 백엔드 트레이스와 데이터베이스 쿼리를 확인할 수 있습니다. 이를 통해 세션 리플레이는 프로덕션 이슈 디버깅, 사용자 행동 이해, UX 마찰 지점 파악, 그리고 지원팀에 보고된 문제를 시각적으로 확인하는 데 유용하게 활용됩니다. + + +## 애플리케이션 계측하기 \{#instrumentation\} + +ClickStack은 OpenTelemetry와 완전히 호환되므로, 표준 OpenTelemetry JavaScript SDK나 [ClickStack 언어별 SDK](/use-cases/observability/clickstack/sdks)를 사용하여 브라우저 텔레메트리(트레이스, 예외)를 전송할 수 있습니다. 다만, **세션 리플레이에는 ClickStack Browser SDK**(`@hyperdx/browser`)가 필요합니다. 이 SDK는 OpenTelemetry SDK를 확장하여 세션 기록, 콘솔 캡처, 네트워크 요청 캡처 기능을 제공합니다. 세션 리플레이 없이 트레이스만 필요하다면, OTel과 호환되는 브라우저 SDK라면 어떤 것이든 ClickStack과 함께 사용할 수 있습니다. + +아래 예시는 ClickStack Browser SDK를 사용합니다. 애플리케이션에 세션 리플레이를 추가하는 단계는 세 가지입니다. 패키지를 설치하고 SDK를 초기화하면 이후 모든 사용자 상호작용이 자동으로 캡처되며, 추가 코드 변경은 필요하지 않습니다. + +:::tip +SDK는 앱이 시작될 때 반드시 로드되는 위치에서 초기화하십시오. 예를 들어 Next.js 애플리케이션에서는 루트 `layout.js`가 될 수 있습니다. 이렇게 하면 세션 기록이 즉시 시작되어 전체 사용자 경험이 캡처됩니다. +::: + + + + +```shell +npm install @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // Managed ClickStack의 경우 생략 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +```shell +yarn add @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // Managed ClickStack의 경우 생략 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +번들러를 사용하지 않는 애플리케이션의 경우, script 태그를 통해 SDK를 직접 포함하십시오. 이렇게 하면 전역 변수 `HyperDX`가 노출되며, NPM 패키지와 동일한 방식으로 사용할 수 있습니다. + +```html + + +``` + + + + +:::note +`tracePropagationTargets` 옵션은 세션 리플레이를 백엔드 트레이스와 연결하는 데 핵심입니다. 이 값을 API 도메인으로 설정하면, 프런트엔드에서 백엔드까지 전체 분산 트레이싱이 활성화됩니다. 개인정보 보호 제어, 사용자 정의 액션, React 에러 바운더리, 소스맵 등 전체 SDK 옵션 목록은 [Browser SDK 참조 문서](/use-cases/observability/clickstack/sdks/browser)를 참고하십시오. +::: + +Browser SDK는 개인정보 보호가 중요한 애플리케이션을 위해 [입력값과 텍스트 마스킹](/use-cases/observability/clickstack/sdks/browser#options)을 지원하며, [사용자 정보 첨부](/use-cases/observability/clickstack/sdks/browser#attach-user-information-or-metadata) 기능을 통해 ClickStack UI에서 사용자별로 세션을 검색하고 필터링할 수 있습니다. + +## 세션 재생 보기 \{#viewing-replays\} + +ClickStack UI (HyperDX)의 왼쪽 사이드바에서 **Client Sessions**로 이동합니다. 이 화면에는 캡처된 모든 브라우저 세션과 각 세션의 지속 시간, 이벤트 개수가 표시됩니다. + + + +원하는 세션에서 재생 버튼을 클릭하여 세션을 다시 재생합니다. 재생 화면에서는 오른쪽에 복원된 사용자 경험이 표시되고, 왼쪽에는 브라우저 이벤트(네트워크 요청, 콘솔 로그, 오류)의 타임라인이 표시됩니다. + + + +타임라인에 표시되는 세부 수준을 조정하려면 **Highlighted**와 **All Events** 모드 사이를 전환합니다. 오류는 빨간색으로 표시되며, 이벤트를 클릭하면 해당 세션 시점으로 재생이 이동합니다. + +### 세션에서 트레이스로 \{#session-to-trace\} + +세션 타임라인에서 네트워크 요청이나 오류를 선택하면 **Trace** 탭으로 이동하여, 해당 요청이 백엔드 서비스에서 어떻게 처리되는지와 함께 그 사용자 상호작용으로 트리거된 로그, span, 데이터베이스 쿼리를 확인할 수 있습니다. + +이는 `tracePropagationTargets` 구성이 `traceparent` 헤더를 통해 브라우저 span을 서버 span과 연결하여, 사용자의 클릭부터 데이터베이스까지 이어지는 연결된 분산 트레이스를 생성하기 때문에 가능합니다. 프론트엔드와 백엔드를 모두 계측하는 방법을 포함한 실제 단계별 예시는 [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-nextjs-opentelemetry-clickstack)을 참조하십시오. + +ClickStack에서 세션 리플레이에서 백엔드 트레이스로 탐색하는 화면 + +### 트레이스에서 세션으로 \{#trace-to-session\} + +상관관계는 반대 방향으로도 적용됩니다. **Search** 뷰에서 트레이스를 볼 때 해당 항목을 클릭하여 트레이스 상세 화면을 연 다음 **Session Replay** 탭을 선택하면, 해당 트레이스가 발생했을 때 사용자가 어떤 경험을 하고 있었는지 정확히 확인할 수 있습니다. 이는 오류나 느린 요청을 조사할 때 특히 유용하며, 백엔드 문제에서 시작해 곧바로 사용자의 관점을 확인할 수 있습니다. + + + +## 세션 데이터가 저장되는 방식 \{#data-storage\} + +세션 리플레이 데이터는 로그 및 트레이스와는 별도로 ClickHouse의 전용 [`hyperdx_sessions`](/use-cases/observability/clickstack/ingesting-data/schemas#sessions) 테이블에 저장됩니다. 각 세션 이벤트는 하나의 행이며, 이벤트 페이로드를 포함하는 `Body` 필드와 이벤트 메타데이터를 저장하는 `LogAttributes` 맵으로 구성됩니다. `Body`와 `LogAttributes` 컬럼은 함께 리플레이를 재구성하는 데 사용되는 실제 세션 이벤트의 세부 정보를 보관합니다. + +테이블 스키마에 대한 전체 정보는 [ClickStack에서 사용하는 테이블 및 스키마](/use-cases/observability/clickstack/ingesting-data/schemas)를 참고하십시오. + +## 직접 사용해 보기 \{#try-it-out\} + +세션 리플레이를 실제로 확인하는 방법은 두 가지입니다. + +- **라이브 예제** — [clickpy.clickhouse.com](https://clickpy.clickhouse.com)에 방문하여 애플리케이션을 사용한 다음, [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com)에서 **ClickPy Sessions** 소스 아래에 있는 세션 리플레이를 확인합니다. ClickPy가 어떻게 계측되었는지에 대한 자세한 내용은 블로그 글 [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-your-app-with-otel-clickstack)을 참고하십시오. +- **로컬 데모** — [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo)는 데모 애플리케이션을 단계별로 계측하는 과정을 안내하며, 여기에는 로컬에서 ClickStack을 실행하고 세션 리플레이를 확인하는 과정이 포함됩니다. + +## 더 알아보기 \{#learn-more\} + +- [Session Replay 데모](/use-cases/observability/clickstack/example-datasets/session-replay-demo) — 단계별 안내가 포함된 대화형 로컬 데모 애플리케이션 +- [Browser SDK 참조](/use-cases/observability/clickstack/sdks/browser) — 전체 SDK 옵션, 소스 맵, 사용자 정의 동작 및 고급 구성 옵션 +- [Search](/use-cases/observability/clickstack/search) — 세션과 이벤트를 필터링하기 위한 검색 구문 +- [Dashboards](/use-cases/observability/clickstack/dashboards) — 세션 및 트레이스 데이터를 기반으로 시각화와 대시보드를 생성 +- [Alerts](/use-cases/observability/clickstack/alerts) — 오류, 지연 시간 및 기타 신호에 대한 알림 설정 +- [ClickStack 아키텍처](/use-cases/observability/clickstack/architecture) — ClickHouse, HyperDX, OTel collector가 함께 동작하도록 구성되는 방식 \ No newline at end of file diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/whats-new/roadmap.md b/i18n/ko/docusaurus-plugin-content-docs/current/whats-new/roadmap.md index b1cecf2a515..0b5ded5e58a 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/whats-new/roadmap.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/whats-new/roadmap.md @@ -7,22 +7,19 @@ doc_type: 'landing-page' keywords: ['로드맵', '향후 기능', '개발 계획', '예정된 릴리스', '제품 방향'] --- - - ## 현재 로드맵 \{#current-roadmap\} 현재 로드맵은 공개 논의를 위해 게시되어 있습니다: -- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - - +- [2026](https://github.com/ClickHouse/ClickHouse/issues/93288) ## 이전 로드맵 \{#previous-roadmaps\} +- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - [2024](https://github.com/ClickHouse/ClickHouse/issues/58392) - [2023](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2022](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2021](https://github.com/ClickHouse/ClickHouse/issues/17623) - [2020](https://github.com/ClickHouse/ClickHouse/blob/be29057de1835f6f4a17e03a422b45b81efe6833/docs/ru/whats-new/extended-roadmap.md) - [2019](https://github.com/ClickHouse/ClickHouse/issues/4785) -- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) +- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index 1d408f81308..390c22b2753 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -68,7 +68,6 @@ doc_type: 'reference' | [allow_statistics_optimize](/operations/settings/settings#allow_statistics_optimize) | `1` | | [use_statistics](/operations/settings/settings#use_statistics) | `1` | | [use_statistics_cache](/operations/settings/settings#use_statistics_cache) | `1` | -| [enable_full_text_index](/operations/settings/settings#enable_full_text_index) | `1` | | [allow_experimental_delta_kernel_rs](/operations/settings/settings#allow_experimental_delta_kernel_rs) | `1` | | [allow_insert_into_iceberg](/operations/settings/settings#allow_insert_into_iceberg) | `0` | | [enable_join_runtime_filters](/operations/settings/settings#enable_join_runtime_filters) | `1` | @@ -94,6 +93,9 @@ doc_type: 'reference' | [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | | [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | | [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [ast_fuzzer_runs](/operations/settings/settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/operations/settings/settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/operations/settings/settings#allow_fuzz_query_functions) | `0` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md index 6d635a893de..61888d4e6fc 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md @@ -27,7 +27,7 @@ BYOC разработан специально для крупномасштаб * AWS (GA) * GCP (Private Preview). Если вы заинтересованы, присоединитесь к списку ожидания [здесь](https://clickhouse.com/cloud/bring-your-own-cloud). -* Azure (Roadmap). Если вы заинтересованы, присоединитесь к списку ожидания [здесь](https://clickhouse.com/cloud/bring-your-own-cloud). +* Azure (Private Preview). Если вы заинтересованы, присоединитесь к списку ожидания [здесь](https://clickhouse.com/cloud/bring-your-own-cloud). **Поддерживаемые регионы Cloud:** Все **публичные регионы**, перечисленные в нашей документации по [поддерживаемым регионам](https://clickhouse.com/docs/cloud/reference/supported-regions), доступны для развертываний BYOC. Частные регионы в настоящее время не поддерживаются. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md index 836105d7bdf..4e03486360c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md @@ -86,7 +86,7 @@ ClickHouse предоставляет интеграционные движки -## Пример 1: Миграция с MySQL в ClickHouse Cloud с использованием интеграционного табличного движка \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} +## Пример: Миграция с MySQL в ClickHouse Cloud с использованием интеграционного табличного движка \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} Мы будем использовать [integration table engine](/engines/table-engines/integrations/mysql/) (динамически создаваемый с помощью [mysql table function](/sql-reference/table-functions/mysql/)) для чтения данных из исходной базы данных MySQL, а также [remoteSecure table function](/sql-reference/table-functions/remote/) для записи данных в целевую таблицу в вашем сервисе ClickHouse Cloud. @@ -124,18 +124,4 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');" :::note На хосте `clickhouse-local` данные локально не сохраняются. Вместо этого данные считываются из исходной таблицы MySQL и затем сразу записываются в целевую таблицу в ClickHouse Cloud. -::: - -## Пример 2. Миграция с MySQL в ClickHouse Cloud с использованием JDBC bridge \{#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge\} - -Мы будем использовать [табличный движок интеграции JDBC](/engines/table-engines/integrations/jdbc.md) (создаваемый на лету с помощью [табличной функции jdbc](/sql-reference/table-functions/jdbc.md)) вместе с [ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) и JDBC-драйвером MySQL для чтения данных из исходной базы данных MySQL, а [табличную функцию remoteSecure](/sql-reference/table-functions/remote.md) — для записи данных в целевую таблицу в вашем сервисе ClickHouse Cloud. - - - -### На целевом сервисе ClickHouse Cloud: \{#on-the-destination-clickhouse-cloud-service-1\} - -#### Создайте целевую базу данных: \{#create-the-destination-database-1\} - -```sql -CREATE DATABASE db -``` +::: \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md index 9c8070eea0d..54b2e57911d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md @@ -43,6 +43,10 @@ import crash_reports_collection from '@site/static/images/cloud/reference/crash- ::: +## 20 февраля 2026 г. \{#february-20-2026\} + +- **ClickPipes:** Обратные приватные конечные точки в неактивном состоянии теперь будут автоматически удаляться по истечении заданного льготного периода. Это гарантирует, что неиспользуемые или неправильно сконфигурированные конечные точки не будут бесконечно сохраняться в бекенде. Подробнее см. в [документации по автоматической очистке](/integrations/clickpipes/aws-privatelink#automatic-cleanup). + ## 13 февраля 2026 г. \{#february-13-2026\} - [BigQuery Connector](/integrations/clickpipes/bigquery/overview) теперь доступен в режиме Private Preview. Прочитайте эту [публикацию в блоге](https://clickhouse.com/blog/bigquery-clickpipe-private-preview) для получения дополнительной информации и присоединяйтесь к [листу ожидания](https://clickhouse.com/cloud/clickpipes/bigquery-connector), чтобы получить доступ. @@ -1608,7 +1612,7 @@ ClickHouse Cloud теперь готов к использованию в про ### Общие изменения \{#general-changes-5\} -- Добавлена поддержка [словарей](/sql-reference/dictionaries/index.md) на основе локальных таблиц ClickHouse и HTTP-источников +- Добавлена поддержка [словарей](/sql-reference/statements/create/dictionary) на основе локальных таблиц ClickHouse и HTTP-источников - Введена поддержка региона [Мумбаи](/cloud/reference/supported-regions) ### Изменения в консоли \{#console-changes-30\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md index 23f69ec2d88..8432a2271f1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/dictionary/index.md @@ -3,16 +3,17 @@ slug: /dictionary title: 'Словарь' keywords: ['словарь', 'словари'] description: 'Словарь представляет данные в формате ключ-значение для быстрого поиска.' -doc_type: 'reference' +doc_type: 'guide' --- import dictionaryUseCases from '@site/static/images/dictionary/dictionary-use-cases.png'; import dictionaryLeftAnyJoin from '@site/static/images/dictionary/dictionary-left-any-join.png'; import Image from '@theme/IdealImage'; + # Словарь \{#dictionary\} -Словарь в ClickHouse предоставляет хранящееся в памяти представление данных в формате [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) из различных [внутренних и внешних источников](/sql-reference/dictionaries#dictionary-sources), оптимизированное для операций поиска с крайне низкой задержкой. +Словарь в ClickHouse предоставляет хранящееся в памяти представление данных в формате [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) из различных [внутренних и внешних источников](/sql-reference/statements/create/dictionary/sources#dictionary-sources), оптимизированное для операций поиска с крайне низкой задержкой. Словари полезны для: @@ -87,7 +88,7 @@ Controversial_ratio: 0 #### Применение словаря \{#applying-a-dictionary\} -Чтобы продемонстрировать эти концепции, мы используем словарь для наших данных о голосовании. Поскольку словари обычно хранятся в памяти ([ssd_cache](/sql-reference/dictionaries#ssd_cache) — исключение), вам следует учитывать объём данных. Проверим размер нашей таблицы `votes`: +Чтобы продемонстрировать эти концепции, мы используем словарь для наших данных о голосовании. Поскольку словари обычно хранятся в памяти ([ssd_cache](/sql-reference/statements/create/dictionary/layouts/ssd-cache) — исключение), вам следует учитывать объём данных. Проверим размер нашей таблицы `votes`: ```sql SELECT table, @@ -105,7 +106,7 @@ GROUP BY table Данные будут храниться в нашем словаре без сжатия, поэтому нам потребуется как минимум 4 ГБ памяти, если бы мы собирались хранить все столбцы (мы не будем) в словаре. Словарь будет реплицирован по нашему кластеру, поэтому этот объём памяти должен быть зарезервирован *на каждый узел*. -> В примере ниже данные для нашего словаря поступают из таблицы ClickHouse. Хотя это и является наиболее распространённым источником словарей, поддерживается [ряд источников](/sql-reference/dictionaries#dictionary-sources), включая файлы, HTTP и базы данных, в том числе [Postgres](/sql-reference/dictionaries#postgresql). Как мы покажем, словари могут автоматически обновляться, что делает их идеальным способом обеспечить доступность небольших наборов данных, подверженных частым изменениям, для прямых JOIN. +> В примере ниже данные для нашего словаря поступают из таблицы ClickHouse. Хотя это и является наиболее распространённым источником словарей, поддерживается [ряд источников](/sql-reference/statements/create/dictionary/sources#dictionary-sources), включая файлы, HTTP и базы данных, в том числе [Postgres](/sql-reference/statements/create/dictionary/sources/postgresql). Как мы покажем, словари могут автоматически обновляться, что делает их идеальным способом обеспечить доступность небольших наборов данных, подверженных частым изменениям, для прямых JOIN. Для нашего словаря требуется первичный ключ, по которому будут выполняться обращения. Концептуально это идентично первичному ключу транзакционной базы данных и должно быть уникальным. Наш запрос выше требует обращения по ключу соединения — `PostId`. Словарь, в свою очередь, должен быть заполнен суммарными значениями голосов «за» и «против» по `PostId` из нашей таблицы `votes`. Ниже приведён запрос для получения данных этого словаря: @@ -319,20 +320,20 @@ Peak memory usage: 666.82 MiB. ### Выбор `LAYOUT` словаря \{#choosing-the-dictionary-layout\} -Клауза `LAYOUT` управляет внутренней структурой данных словаря. Существует несколько вариантов, описанных [здесь](/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory). Некоторые рекомендации по выбору подходящего `LAYOUT` можно найти [здесь](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout). +Клауза `LAYOUT` управляет внутренней структурой данных словаря. Существует несколько вариантов, описанных [здесь](/sql-reference/statements/create/dictionary/layouts#ways-to-store-dictionaries-in-memory). Некоторые рекомендации по выбору подходящего `LAYOUT` можно найти [здесь](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout). ### Обновление словарей \{#refreshing-dictionaries\} Мы указали для словаря `LIFETIME` со значением `MIN 600 MAX 900`. LIFETIME — это интервал обновления словаря; в данном случае значения приводят к периодической перезагрузке через случайный интервал между 600 и 900 секундами. Такой случайный интервал необходим для распределения нагрузки на источник словаря при обновлении на большом числе серверов. Во время обновления старая версия словаря по-прежнему может использоваться в запросах, при этом только начальная загрузка блокирует запросы. Обратите внимание, что задание `(LIFETIME(0))` предотвращает обновление словарей. Принудительную перезагрузку словарей можно выполнить с помощью команды `SYSTEM RELOAD DICTIONARY`. -Для источников данных, таких как ClickHouse и Postgres, вы можете настроить запрос, который будет обновлять словари только в том случае, если они действительно изменились (это определяется ответом на запрос), а не с периодическим интервалом. Дополнительные подробности можно найти [здесь](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime). +Для источников данных, таких как ClickHouse и Postgres, вы можете настроить запрос, который будет обновлять словари только в том случае, если они действительно изменились (это определяется ответом на запрос), а не с периодическим интервалом. Дополнительные подробности можно найти [здесь](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime). ### Другие типы словарей \{#other-dictionary-types\} -ClickHouse также поддерживает [иерархические](/sql-reference/dictionaries#hierarchical-dictionaries), [многоугольные](/sql-reference/dictionaries#polygon-dictionaries) и [словарі на основе регулярных выражений](/sql-reference/dictionaries#regexp-tree-dictionary) словари. +ClickHouse также поддерживает [иерархические](/sql-reference/statements/create/dictionary/layouts/hierarchical), [многоугольные](/sql-reference/statements/create/dictionary/layouts/polygon) и [словарі на основе регулярных выражений](/sql-reference/statements/create/dictionary/layouts/regexp-tree) словари. ### Дополнительные материалы для чтения \{#more-reading\} - [Использование словарей для ускорения запросов](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [Расширенная конфигурация словарей](/sql-reference/dictionaries) \ No newline at end of file +- [Расширенная конфигурация словарей](/sql-reference/statements/create/dictionary) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md index 2de99c27c3e..a7bbe762830 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md @@ -37,6 +37,7 @@ CREATE TABLE iceberg_table_local ENGINE = IcebergLocal(path_to_table, [,format] [,compression_method]) ``` + ## Параметры движка \{#engine-arguments\} Описание аргументов соответствует описанию аргументов в движках `S3`, `AzureBlobStorage`, `HDFS` и `File` соответственно. @@ -69,12 +70,15 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table ``` + ## Псевдонимы \{#aliases\} Движок таблицы `Iceberg` теперь является псевдонимом движка `IcebergS3`. ## Эволюция схемы \{#schema-evolution\} -В данный момент с помощью CH вы можете читать таблицы Iceberg, схема которых со временем изменялась. В настоящее время поддерживается чтение таблиц, в которых столбцы добавлялись и удалялись, а их порядок менялся. Вы также можете изменить столбец с обязательным значением на столбец, в котором допускается значение NULL. Дополнительно поддерживаются разрешённые преобразования типов для простых типов, а именно:   + +ClickHouse поддерживает чтение таблиц Iceberg, схема которых со временем изменялась. Это включает таблицы, в которых столбцы добавлялись, удалялись или менялся их порядок, а также столбцы, изменённые из обязательных в допускающие значение NULL. Дополнительно поддерживаются следующие преобразования типов: + * int -> long * float -> double * decimal(P, S) -> decimal(P', S), где P' > P. @@ -93,27 +97,30 @@ ClickHouse поддерживает отсечение партиций в за ## Обработка таблиц с удалёнными строками \{#deleted-rows\} -В настоящее время поддерживаются только таблицы Iceberg с [позиционными удалениями (position deletes)](https://iceberg.apache.org/spec/#position-delete-files). +ClickHouse поддерживает чтение таблиц Iceberg, использующих следующие методы удаления: -Следующие методы удаления **не поддерживаются**: +- [Position deletes](https://iceberg.apache.org/spec/#position-delete-files) +- [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files) (поддерживаются начиная с версии 25.8+) -* [удаления по равенству (equality deletes)](https://iceberg.apache.org/spec/#equality-delete-files) -* [векторы удаления (deletion vectors)](https://iceberg.apache.org/spec/#deletion-vectors) (введены в версии 3) +Следующий метод удаления **не поддерживается**: + +- [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors) (введены в v3) ### Базовое использование \{#basic-usage\} ```sql SELECT * FROM example_table ORDER BY 1 SETTINGS iceberg_timestamp_ms = 1714636800000 - ``` +``` ```sql SELECT * FROM example_table ORDER BY 1 SETTINGS iceberg_snapshot_id = 3547395809148285433 - ``` +``` Примечание: Нельзя указывать параметры `iceberg_timestamp_ms` и `iceberg_snapshot_id` в одном запросе одновременно. + ### Важные замечания \{#important-considerations\} * **Снапшоты** обычно создаются, когда: @@ -186,6 +193,7 @@ ClickHouse поддерживает отсечение партиций в за * В моменты ts1 и ts2: отображаются только исходные два столбца * В момент ts3: отображаются все три столбца, при этом для первой строки значение price равно NULL + #### Сценарий 2: Отличия между исторической и текущей схемами \{#scenario-2\} Запрос time travel, выполненный в текущий момент времени, может показать схему, отличающуюся от текущей схемы таблицы: @@ -228,6 +236,7 @@ ClickHouse поддерживает отсечение партиций в за Это происходит потому, что `ALTER TABLE` не создает новый снимок, а для текущей таблицы Spark берет значение `schema_id` из последнего файла метаданных, а не из снимка. + #### Сценарий 3: Отличия между исторической и текущей схемами \{#scenario-3\} Второй момент заключается в том, что при выполнении операции time travel вы не можете получить состояние таблицы до того, как в неё были записаны какие-либо данные: @@ -249,6 +258,7 @@ ClickHouse поддерживает отсечение партиций в за В ClickHouse поведение аналогично Spark. Вы можете мысленно заменить запросы Select в Spark на запросы Select в ClickHouse — и всё будет работать так же. + ## Определение файла метаданных \{#metadata-file-resolution\} При использовании движка таблиц `Iceberg` в ClickHouse системе необходимо найти корректный файл metadata.json, который описывает структуру таблицы Iceberg. Ниже описано, как работает этот процесс определения: @@ -283,7 +293,7 @@ ClickHouse поддерживает отсечение партиций в за **Примечание**: Все упомянутые параметры являются настройками на уровне движка и должны указываться при создании таблицы, как показано ниже: -```sql +```sql CREATE TABLE example_table ENGINE = Iceberg( 's3://bucket/path/to/iceberg_table' ) SETTINGS iceberg_metadata_table_uuid = '6f6f6407-c6a5-465f-a808-ea8900e35a38'; @@ -291,6 +301,7 @@ CREATE TABLE example_table ENGINE = Iceberg( **Примечание**: Хотя каталоги Iceberg обычно отвечают за разрешение метаданных, табличный движок `Iceberg` в ClickHouse напрямую интерпретирует файлы, хранящиеся в S3, как таблицы Iceberg, поэтому важно понимать правила их разрешения. + ## Кэш данных \{#data-cache\} Табличный движок `Iceberg` и одноимённая табличная функция поддерживают кэширование данных так же, как и хранилища `S3`, `AzureBlobStorage`, `HDFS`. См. [здесь](../../../engines/table-engines/integrations/s3.md#data-cache). @@ -301,4 +312,4 @@ CREATE TABLE example_table ENGINE = Iceberg( ## См. также \{#see-also\} -- [табличная функция iceberg](/sql-reference/table-functions/iceberg.md) +- [табличная функция iceberg](/sql-reference/table-functions/iceberg.md) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md index 5c6a95ac11d..bb076c44ddb 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md @@ -62,6 +62,7 @@ SETTINGS CREATE TABLE test_replicas (id UInt32, name String, age UInt32, money UInt32) ENGINE = MySQL(`mysql{2|3|4}:3306`, 'clickhouse', 'test_replicas', 'root', 'clickhouse'); ``` + ## Пример использования \{#usage-example\} Создайте таблицу в MySQL: @@ -127,6 +128,7 @@ SELECT * FROM mysql_table └────────────────┴────────┘ ``` + ## Настройки \{#mysql-settings\} Настройки по умолчанию не очень эффективны, поскольку соединения при этом даже не переиспользуются. Эти настройки позволяют увеличить число запросов, выполняемых сервером в секунду. @@ -196,4 +198,4 @@ SELECT * FROM mysql_table ## См. также \{#see-also\} - [Табличная функция MySQL](../../../sql-reference/table-functions/mysql.md) -- [Использование MySQL в качестве источника словаря](/sql-reference/dictionaries#mysql) +- [Использование MySQL в качестве источника словаря](/sql-reference/statements/create/dictionary/sources#mysql) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md index 8ea6ab781a6..616df40b5ac 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md @@ -141,5 +141,5 @@ SELECT * FROM odbc_t ## Смотрите также \{#see-also\} -- [Словари ODBC](/sql-reference/dictionaries#mysql) +- [Словари ODBC](/sql-reference/statements/create/dictionary/sources#mysql) - [Табличная функция ODBC](../../../sql-reference/table-functions/odbc.md) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md index efa63994dce..d1872a2e650 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md @@ -229,7 +229,7 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) **См. также** * [Табличная функция `postgresql`](../../../sql-reference/table-functions/postgresql.md) -* [Использование PostgreSQL как источника словаря](/sql-reference/dictionaries#mysql) +* [Использование PostgreSQL как источника словаря](/sql-reference/statements/create/dictionary/sources#mysql) ## Связанные материалы \{#related-content\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index 06f8350b081..0df030f08a0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -283,6 +283,56 @@ SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%' Ключ партиционирования по месяцам позволяет читать только те блоки данных, которые содержат даты из нужного диапазона. В этом случае блок данных может содержать данные за множество дат (вплоть до целого месяца). Внутри блока данные отсортированы по первичному ключу, который может не содержать дату в качестве первого столбца. Из-за этого использование запроса только с условием по дате, без указания префикса первичного ключа, приведёт к чтению большего объёма данных, чем при выборке за одну дату. +### Использование индекса для детерминированных выражений в первичных ключах \{#use-of-index-for-deterministic-expressions-in-primary-keys\} + +Первичный ключ может содержать выражения, а не только имена столбцов. Эти выражения не ограничены простыми цепочками функций: это могут быть произвольные деревья выражений (например, вложенные функции и составные выражения), при условии, что они детерминированы. + +Выражение **детерминировано**, если оно всегда возвращает один и тот же результат для одинаковых входных значений (например: `length()`, `toDate()`, `lower()`, `left()`, `cityHash64()`, `toUUID()`; в отличие от `now()` или `rand()`). Если первичный ключ содержит детерминированные выражения, ClickHouse может применить их к константным значениям из запроса и использовать результат для построения условий по индексу первичного ключа. Это позволяет выполнять пропуск данных для предикатов вида `=`, `IN` и `has`. + +Распространённый сценарий — сделать первичный ключ компактным (например, хранить хэш вместо длинного `String`), при этом всё ещё позволяя предикатам по исходному столбцу использовать индекс. + +Пример детерминированного (но не инъективного) первичного ключа: + +```sql +ENGINE = MergeTree() +ORDER BY length(user_id) +``` + +Примеры предикатов, использующих индекс: + +```sql +SELECT * FROM table WHERE user_id = 'alice'; +SELECT * FROM table WHERE user_id IN ('alice', 'bob'); +SELECT * FROM table WHERE has(['alice', 'bob'], user_id); +``` + +В этих случаях ClickHouse вычисляет `length('alice')` (и другие константы) один раз и использует значения длины, чтобы сузить диапазоны в индексе по первичному ключу. Поскольку длина строки **не является инъективной**, разные строки `user_id` могут иметь одинаковую длину, поэтому индекс может читать дополнительные гранулы (ложные срабатывания). Результат при этом остаётся корректным, потому что исходный предикат (`user_id = ...`, `IN` и т. д.) всё равно применяется после чтения. + +Если детерминированное выражение также **инъективно** (разные входные значения не могут давать одинаковый результат для используемых типов аргументов), дополнительно ClickHouse может эффективно использовать индекс для отрицательных форм условий: `!=`, `NOT IN` и `NOT has(...)`. Например, `reverse(p)` и `hex(p)` инъективны для `String`. + +Пример инъективного первичного ключа: + +```sql +ENGINE = MergeTree() +ORDER BY hex(p) +``` + +Поддерживаются также более сложные инъективные выражения, например: + +```sql +ENGINE = MergeTree() +ORDER BY reverse(tuple(reverse(p), hex(p))) +``` + +Примеры предикатов, для которых может использоваться индекс: + +```sql +SELECT * FROM table WHERE p != 'abc'; +SELECT * FROM table WHERE p NOT IN ('abc', '12345'); +SELECT * FROM table WHERE NOT has(['abc', '12345'], p); +``` + + ### Использование индекса для частично монотонных первичных ключей \{#use-of-index-for-partially-monotonic-primary-keys\} Рассмотрим, например, дни месяца. В пределах одного месяца они образуют [монотонную последовательность](https://en.wikipedia.org/wiki/Monotonic_function), но на более длительных периодах уже не являются монотонными. Это частично монотонная последовательность. Если пользователь создаёт таблицу с частично монотонным первичным ключом, ClickHouse, как обычно, создаёт разреженный индекс. Когда пользователь выбирает данные из такой таблицы, ClickHouse анализирует условия запроса. Если нужно получить данные между двумя метками индекса и обе эти метки приходятся на один месяц, ClickHouse может использовать индекс в этом частном случае, потому что он может вычислить расстояние между параметрами запроса и метками индекса. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 77a6b6ea734..c56d74c49eb 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -7,13 +7,8 @@ title: 'Полнотекстовый поиск с текстовыми инде doc_type: 'reference' --- -import BetaBadge from '@theme/badges/BetaBadge'; - - # Полнотекстовый поиск с текстовыми индексами \{#full-text-search-with-text-indexes\} - - Текстовые индексы (также известные как [обратные индексы](https://en.wikipedia.org/wiki/Inverted_index)) обеспечивают быстрый полнотекстовый поиск по текстовым данным. Текстовый индекс хранит отображение от токенов к номерам строк, содержащих каждый токен. Токены создаются процессом, называемым токенизацией. @@ -81,13 +76,7 @@ two : [3] SELECT value FROM system.settings WHERE name = 'compatibility'; ``` -возвращает - -```text -25.4 -``` - -или любое другое значение, меньшее 26.2, вам потребуется настроить три дополнительных параметра для использования текстового индекса: +возвращает значение меньше `26.2` (например, `25.4`), вам потребуется настроить три дополнительных параметра для использования текстового индекса: ```sql SET enable_full_text_index = true; diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md index ad973641d52..464f15df055 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # Движок таблицы словаря \{#dictionary-table-engine\} -Движок `Dictionary` отображает данные [словаря](../../../sql-reference/dictionaries/index.md) как таблицу ClickHouse. +Движок `Dictionary` отображает данные [словаря](../../../sql-reference/statements/create/dictionary/index.md) как таблицу ClickHouse. ## Пример \{#example\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md index 7575e5c9a3c..c60840d9098 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md @@ -169,7 +169,8 @@ SELECT mcc, count() FROM cell_towers GROUP BY mcc ORDER BY count() DESC LIMIT 10 На основе приведённого выше запроса и [списка MCC](https://en.wikipedia.org/wiki/Mobile_country_code) странами с наибольшим количеством сотовых вышек являются США, Германия и Россия. -Вы можете создать в ClickHouse [словарь (Dictionary)](../../sql-reference/dictionaries/index.md) для расшифровки этих значений. +Вы можете создать в ClickHouse [словарь (Dictionary)](../../sql-reference/statements/create/dictionary/index.md) для расшифровки этих значений. + ## Сценарий использования: использование геоданных \{#use-case\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md index da7a56d2f77..1c51e02b2a1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md @@ -30,12 +30,12 @@ dbt совместим с ClickHouse через [адаптер, поддерж {/*AUTOGENERATED_START*/ } -| Страница | Описание | -| --------------------------------------------------------------------------- | -------------------------------------------------------------- | -| [Возможности и конфигурации](/integrations/dbt/features-and-configurations) | Описание доступных возможностей и общих конфигураций | -| [Материализации](/integrations/dbt/materializations) | Доступные материализации и их конфигурации | -| [Руководства](/integrations/dbt/guides) | Руководства по использованию dbt с ClickHouse | -| [Materialized Views](/integrations/dbt/materialization-materialized-view) | Отдельная документация по материализации materialized_view | +| Страница | Описание | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | +| [Возможности и конфигурации](/integrations/dbt/features-and-configurations) | Описание доступных возможностей и общих конфигураций | +| [Материализации](/integrations/dbt/materializations) | Доступные материализации и их конфигурации | +| [Руководства](/integrations/dbt/guides) | Руководства по использованию dbt с ClickHouse | +| [Материализация: materialized_view](/integrations/dbt/materialization-materialized-view) | Отдельная документация по материализации materialized_view | {/*AUTOGENERATED_END*/ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md index c7ec3431b82..6f73aaf3176 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md @@ -3,8 +3,8 @@ sidebar_label: 'Материализация: materialized_view' slug: /integrations/dbt/materialization-materialized-view sidebar_position: 4 description: 'Специализированная документация по материализации materialized_view' -keywords: ['clickhouse', 'dbt', 'materialized view', 'обновляемое', 'внешняя целевая таблица', 'catchup'] -title: 'Materialized Views' +keywords: ['clickhouse', 'dbt', 'materialized_view', 'обновляемое', 'Materialized Views', 'catchup'] +title: 'Материализация: materialized_view' doc_type: 'guide' --- @@ -292,13 +292,62 @@ GROUP BY event_date, event_type 1. Обновите вызов `materialization_target_table()` 2. Выполните `dbt run --full-refresh -s your_mv_model` -### Сравнение поведения между подходами с неявной и явной целевой таблицей\{#explicit-target-behavior\} +### Устранение распространённых проблем \{#explicit-target-troubleshooting\} -| Operation | Implicit target | Explicit target | -| --- | --- | --- | -| First dbt run | Все ресурсы созданы | Все ресурсы созданы | -| Next dbt run | **Отдельными ресурсами нельзя управлять независимо, все операции выполняются вместе:**

    **target table**:
    изменения обрабатываются с помощью настройки `on_schema_change`. По умолчанию установлено значение `ignore`, поэтому новые столбцы не обрабатываются.

    **MVs**: все обновляются с помощью операций `alter table modify query` | **Изменения могут применяться по отдельности:

    target table**:
    автоматическое определение того, являются ли они целевыми таблицами для MVs, определённых в dbt. Если да, то изменения структуры столбцов по умолчанию управляются с помощью настройки `mv_on_schema_change` со значением `fail`, поэтому выполнение завершится ошибкой при изменении столбцов. Мы добавили это значение по умолчанию как дополнительный уровень защиты

    **MVs**: их SQL обновляется операциями `alter table modify query`. | -| dbt run --full-refresh | **Отдельными ресурсами нельзя управлять независимо, все операции выполняются вместе:

    target table**:
    target table пересоздаётся пустой. Параметр `catchup` позволяет настроить backfill с использованием объединённого SQL всех MVs. По умолчанию `catchup` имеет значение `True`

    **MVs**: все пересоздаются. | **Изменения будут применяться по отдельности:

    target table:** будет пересоздана как обычно.

    **MVs**: удаляются и пересоздаются. Параметр `catchup` доступен для начального backfill. По умолчанию `catchup` имеет значение `True`.

    **Примечание: В процессе выполнения target table будет пустой или частично загруженной до тех пор, пока MVs не будут пересозданы. Чтобы этого избежать, см. следующий раздел о том, как поэтапно обновлять целевую таблицу.**| +#### Целевая таблица остаётся пустой во время или после выполнения `run` \{#target-table-empty\} + +Есть несколько причин, по которым это может происходить: + +- materialized view могут быть настроены с `catchup=False` или целевая таблица может быть настроена с `repopulate_from_mvs_on_full_refresh=False`, поэтому backfill не выполняется при создании materialized view или при пересоздании целевой таблицы. Это ожидаемое поведение, поэтому, если вы хотите повторно вставить данные с использованием SQL materialized view, убедитесь, что в materialized view установлено `catchup=True` (это значение по умолчанию) или в целевой таблице установлено `repopulate_from_mvs_on_full_refresh=True`. Проследите, чтобы оба параметра не были активированы одновременно, чтобы избежать дубликатов. Подробности смотрите в [разделе конфигурации](#explicit-target-configuration). +- Когда выполняется `dbt run --full-refresh`, если materialized view используют значение по умолчанию `catchup=True`, целевая таблица будет пересоздана, и MVs последовательно повторно вставят данные. Чтобы избежать этой ситуации, изучите раздел [Full refresh with explicit targets](#explicit-target-full-refresh) + +#### `dbt run --full-refresh` в целевой таблице с `repopulate_from_mvs_on_full_refresh=True` использует логику из старых версий materialized view, а не из текущего SQL в проекте \{#full-refresh-with-repopulate-from-mvs-on-full-refresh\} + +`repopulate_from_mvs_on_full_refresh=True` использует существующий SQL materialized view, который уже определён в ClickHouse. Чтобы убедиться, что используется новое определение materialized view, выполните `dbt run` для каждого materialized view перед выполнением `dbt run --full-refresh` в целевой таблице. + +#### После выполнения запуска появляются дубликаты данных \{#duplicate-data\} + +Возможные причины: + +- Одновременно включены `catchup=True` на materialized view и `repopulate_from_mvs_on_full_refresh=True` на целевой таблице: оставьте только один из них в зависимости от операций, которые вы хотите выполнять. См. [раздел конфигурации](#explicit-target-configuration) для получения дополнительной информации. +- Целевая таблица не определена с `WHERE 0`: целевая таблица должна создаваться пустой, но внутренний запрос может вставлять данные, если `WHERE 0` не указан. Убедитесь, что это условие включено. + +#### Потеря данных при активной ингестии после выполнения `dbt run --full-refresh` \{#data-loss-active-ingestion\} + +Некоторые строки из исходной таблицы отсутствуют в целевой таблице после выполнения `dbt run --full-refresh`. +materialized view в ClickHouse ведут себя как триггеры вставки — они обрабатывают данные только пока существуют. Во время полного обновления есть небольшой интервал, когда MV удаляется и создаётся заново («слепое окно»). Любые строки, вставленные в исходную таблицу в это окно, не будут захвачены. Подробности см. в разделе [Поведение при активной ингестии](#behavior-during-active-ingestion). + +### Методы отладки \{#debugging-techniques\} + +#### Проверьте текущую таблицу-назначение materialized view в ClickHouse \{#check-mv-target\} + +Выполните запрос к `system.tables`, чтобы узнать, в какую таблицу materialized view записывает данные: + +```sql +SELECT + name as mv_name, + replaceRegexpOne( + create_table_query, + '.*TO\\s+`?([^`\\s(]+)`?\\.`?([^`\\s(]+)`?.*', + '\\1.\\2' + ) AS target_table +FROM system.tables +WHERE database = 'your_schema' + AND engine = 'MaterializedView' +``` + + +#### Проверьте, распознаёт ли dbt таблицу как целевую для materialized view \{#check-dbt-recognition\} + +Во время выполнения dbt run найдите в логах следующее сообщение: + +>Table `` is used as a target by a dbt-managed materialized view. Defaulting mv_on_schema_change to "fail" to prevent data loss. + +Если это сообщение появляется, значит dbt обнаружил, что таблица используется как целевая как минимум одной materialized view, управляемой dbt. Если вы ожидаете это сообщение, но не видите его, убедитесь, что: + +- Модель materialized view корректно определяет `{{ materialization_target_table(ref('your_target')) }}` +- В конфигурации модели materialized view указано `materialized='materialized_view'` +- И materialized view, и целевая таблица были запущены как минимум один раз ### Миграция от неявной к явной целевой таблице \{#migration-implicit-to-explicit\} @@ -367,23 +416,34 @@ select a, b, c from {{ source('raw', 'table_2') }} **3. При необходимости повторяйте их, руководствуясь инструкциями из раздела [«Явная цель»](#explicit-target).** -## Поведение во время активной ингестии \{#behavior-during-active-ingestion\} +## Сравнение поведения между подходами с неявной и явной целевой таблицей\{#behavior-comparison\} + +### Как они ведут себя в целом \{#general-behavior\} + +| Operation | Неявная цель | Явная цель | +| --- | --- | --- | +| First dbt run | Все ресурсы созданы | Все ресурсы созданы | +| Next dbt run | **Отдельными ресурсами нельзя управлять, всё выполняется разом:**

    **target table**:
    изменения управляются с помощью настройки `on_schema_change`. По умолчанию установлено значение `ignore`, поэтому новые столбцы не обрабатываются.

    **Materialized views**: все обновляются с помощью операций `alter table modify query` | **Изменения можно применять по отдельности:

    target table**:
    автоматическое определение, являются ли они целевыми таблицами из materialized views, определённых в dbt. Если да, изменения структуры столбцов по умолчанию управляются настройкой `mv_on_schema_change` со значением `fail`, поэтому выполнение завершится с ошибкой, если столбец изменится. Мы добавили это значение по умолчанию как дополнительный уровень защиты

    **Materialized views**: их SQL обновляется с помощью операций `alter table modify query`. | +| dbt run --full-refresh | **Отдельными ресурсами нельзя управлять, всё выполняется разом:

    target table**:
    target table пересоздаётся пустой. `catchup` доступен для настройки бэкфила с использованием SQL всех materialized views вместе. `catchup` имеет значение `True` по умолчанию

    **Materialized views**: все пересоздаются. | **Изменения будут применяться по отдельности:

    target table:** будет пересоздана как обычно.

    **Materialized views**: удаление и пересоздание. `catchup` доступен для первоначального бэкфила. `catchup` имеет значение `True` по умолчанию.

    **Примечание: в процессе выполнения целевая таблица будет пустой или частично загруженной до тех пор, пока materialized views не будут пересозданы. Чтобы этого избежать, см. следующий раздел о том, как поэтапно обновлять целевую таблицу.**| + +### Поведение во время активной ингестии \{#behavior-during-active-ingestion\} -Поскольку materialized view в ClickHouse действуют как **триггеры на вставку** (insert triggers), они обрабатывают данные только пока существуют. Если materialized view удаляется и создаётся заново (например, во время `--full-refresh`), любые строки, вставленные в исходную таблицу в этот промежуток времени, **не** будут обработаны этой MV. Такое состояние MV называют «слепым» (blind). +При итеративной доработке моделей важно понимать, как разные операции взаимодействуют с вставляемыми данными: -Кроме того, процесс **catch-up** (как через `catchup` у самой MV, так и через `repopulate_from_mvs_on_full_refresh` целевой таблицы) выполняет `INSERT INTO ... SELECT`, используя SQL самой materialized view. Если вставки в исходную таблицу происходят одновременно, запрос catch-up может включить строки, которые MV уже обработала (или обработает сразу после создания), что потенциально приводит к появлению **дубликатов данных** в целевой таблице. Использование дедуплицирующего движка, такого как `ReplacingMergeTree`, для целевой таблицы снижает этот риск. +- Поскольку materialized view в ClickHouse действуют как **триггеры на вставку** (insert triggers), они обрабатывают данные только пока существуют. Если materialized view удаляется и создаётся заново (например, во время `--full-refresh`), любые строки, вставленные в исходную таблицу в этот промежуток времени, **не** будут обработаны этой materialized view. Такое состояние materialized view называют «слепым» (blind). +- Различные процессы `catchup` основаны на операциях `INSERT INTO ... SELECT`, использующих SQL materialized view, и не зависят от того, как сами materialized view работают. Как только начинается выполнение `INSERT`, новые данные в него уже не попадают, но они будут захвачены присоединённой materialized view. В следующей таблице показана степень безопасности каждой операции, когда вставки активно выполняются в исходную таблицу. -### Неявные операции с целевой таблицей \{#ingestion-implicit-target\} +#### Неявные операции с целевой таблицей \{#ingestion-implicit-target\} | Operation | Internal process | Safety while inserts are happening | |-----------|------------------|------------------------------------| -| Первый `dbt run` | 1. Создать целевую таблицу
    2. Вставить данные (если `catchup=True`)
    3. Создать MV(ы) | ⚠️ **MV «ничего не видит» между шагами 1 и 3.** Любые строки, вставленные в исходную таблицу в этот промежуток, не будут зафиксированы. | -| Последующие `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ Безопасно. MV обновляется атомарно. | -| `dbt run --full-refresh` | 1. Создать резервную таблицу
    2. Вставить данные (если `catchup=True`)
    3. Удалить MV(ы)
    4. Поменять таблицы местами
    5. Воссоздать MV(ы) | ⚠️ **MV «ничего не видит» во время пересоздания.** Данные, вставленные в исходную таблицу между шагами 3 и 5, не попадут в новую целевую таблицу. | +| Первый `dbt run` | 1. Создать целевую таблицу
    2. Вставить данные (если `catchup=True`)
    3. Создать materialized view(ы) | ⚠️ **materialized view «ничего не видит» между шагами 1 и 3.** Любые строки, вставленные в исходную таблицу в этот промежуток, не будут зафиксированы. | +| Последующие `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ Безопасно. materialized view обновляется атомарно. | +| `dbt run --full-refresh` | 1. Создать резервную таблицу
    2. Вставить данные (если `catchup=True`)
    3. Удалить materialized view(ы)
    4. Поменять таблицы местами
    5. Воссоздать materialized view(ы) | ⚠️ **materialized view «ничего не видит» во время пересоздания.** Данные, вставленные в исходную таблицу между шагами 3 и 5, не попадут в новую целевую таблицу. | -### Явные операции с целевыми объектами \{#ingestion-explicit-target\} +#### Явные операции с целевыми объектами \{#ingestion-explicit-target\} **Модели materialized view:** diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md index 1ebdd436152..00af082cec8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md @@ -9,4 +9,4 @@ doc_type: 'reference' # Интеграция с Cassandra \{#cassandra-integration\} -Интеграцию с Cassandra можно настроить с помощью словаря. Подробности [здесь](/sql-reference/dictionaries#cassandra). \ No newline at end of file +Интеграцию с Cassandra можно настроить с помощью словаря. Подробности [здесь](/sql-reference/statements/create/dictionary/sources/cassandra). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index 1976afb3c94..52cd96aec03 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -42,9 +42,6 @@ import connection_details_csharp from '@site/static/images/_snippets/connection- `ClickHouse.Driver` поддерживает следующие версии .NET: -* .NET Framework 4.6.2 -* .NET Framework 4.8 -* .NET Standard 2.1 * .NET 6.0 * .NET 8.0 * .NET 9.0 @@ -355,8 +352,8 @@ using ClickHouse.Driver; using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("id", 1L); -parameters.Add("name", "Alice"); +parameters.AddParameter("id", 1L); +parameters.AddParameter("name", "Alice"); await client.ExecuteNonQueryAsync( "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})", @@ -413,7 +410,7 @@ var options = new InsertOptions using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("max_id", 100L); +parameters.AddParameter("max_id", 100L); var reader = await client.ExecuteReaderAsync( "SELECT * FROM default.my_table WHERE id < {max_id:Int64}", @@ -683,7 +680,7 @@ while (reader.Read()) 3. **Указывайте часовой пояс в подсказках типов SQL.** При использовании параметров с `Unspecified` значениями DateTime, записываемыми в столбцы с часовым поясом, отличным от UTC, включайте часовой пояс в SQL: ```csharp var parameters = new ClickHouseParameterCollection(); - parameters.Add("dt", myDateTime); + parameters.AddParameter("dt", myDateTime); await client.ExecuteNonQueryAsync( "INSERT INTO table (dt) VALUES ({dt:DateTime('Europe/Amsterdam')})", diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx index 44746e1afbb..a07966e6ab4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx @@ -35,7 +35,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra * Maven Central (веб-страница проекта): https://mvnrepository.com/artifact/com.clickhouse/client-v2 * Ночные сборки (ссылка на репозиторий): https://central.sonatype.com/repository/maven-snapshots/ - * Old Nightly builds artifactory (repository link): https://s01.oss.sonatype.org/content/repositories/snapshots/ + * Старый artifactory ночных сборок (ссылка на репозиторий): https://s01.oss.sonatype.org/content/repositories/snapshots/
    @@ -123,9 +123,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Для проверки сертификатов и ключей используйте такие инструменты, как [openssl](https://docs.openssl.org/master/man1/openssl/): * проверить целостность ключа: `openssl rsa -in [key-file.key] -check -noout` - * проверьте, что у клиентского сертификата значение CN совпадает с именем пользователя: + * проверьте, что в клиентском сертификате значение CN совпадает с именем пользователя: * получить CN из пользовательского сертификата — `openssl x509 -noout -subject -in [user.cert]` - * проверить, что то же значение задано в базе данных: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (запрос выведет `auth_params` с содержимым вида ` {"common_names":["some_user"]}`) + * проверить, что то же значение установлено в базе данных: `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (запрос вернёт `auth_params` с содержимым вида ` {"common_names":["some_user"]}`) ::: @@ -140,16 +140,16 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------- | --------------------------- | - | `addEndpoint(String endpoint)` | `endpoint` - адрес сервера в формате URL | Добавляет endpoint сервера в список доступных серверов. В настоящее время поддерживается только один endpoint. | `none` | `none` | - | `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - протокол подключения
    `host` - IP-адрес или имя хоста
    `secure` - использовать HTTPS | Добавляет endpoint сервера в список доступных серверов. В настоящее время поддерживается только один endpoint. | `none` | `none` | - | `enableConnectionPool(boolean enable)` | `enable` - флаг включения/отключения | Устанавливает, включен ли пул соединений | `true` | `connection_pool_enabled` | - | `setMaxConnections(int maxConnections)` | `maxConnections` - число соединений | Устанавливает, сколько соединений клиент может открыть к каждому endpoint-у сервера. | `10` | `max_open_connections` | - | `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает TTL соединения, по истечении которого соединение будет считаться неактивным | `-1` | `connection_ttl` | - | `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут Keep-Alive для HTTP-соединения. Установите `0`, чтобы отключить Keep-Alive. | - | `http_keep_alive_timeout` | - | `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` или `FIFO` | Выбирает стратегию повторного использования соединений, которую должен применять пул соединений | `FIFO` | `connection_reuse_strategy` | - | `setDefaultDatabase(String database)` | `database` - имя базы данных | Устанавливает базу данных по умолчанию. | `default` | `database` | + | Метод | Аргументы | Описание | По умолчанию | Ключ | + | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------ | --------------------------- | + | `addEndpoint(String endpoint)` | `endpoint` - адрес сервера в формате URL | Добавляет endpoint сервера в список доступных серверов. В настоящее время поддерживается только один endpoint. | `none` | `none` | + | `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | `protocol` - протокол подключения
    `host` - IP-адрес или имя хоста
    `secure` - использовать HTTPS | Добавляет endpoint сервера в список доступных серверов. В настоящее время поддерживается только один endpoint. | `none` | `none` | + | `enableConnectionPool(boolean enable)` | `enable` - флаг включения/отключения | Устанавливает, включен ли пул соединений | `true` | `connection_pool_enabled` | + | `setMaxConnections(int maxConnections)` | `maxConnections` - число соединений | Устанавливает, сколько соединений клиент может открыть к каждому endpoint-у сервера. | `10` | `max_open_connections` | + | `setConnectionTTL(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает TTL соединения, по истечении которого соединение будет считаться неактивным | `-1` | `connection_ttl` | + | `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | `timeout` - значение тайм-аута
    `unit` - единица времени | Устанавливает тайм-аут Keep-Alive для HTTP-соединения. Установите `0`, чтобы отключить Keep-Alive. | - | `http_keep_alive_timeout` | + | `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | `strategy` - `LIFO` или `FIFO` | Выбирает стратегию повторного использования соединений, которую должен применять пул соединений | `FIFO` | `connection_reuse_strategy` | + | `setDefaultDatabase(String database)` | `database` - имя базы данных | Устанавливает базу данных по умолчанию. | `default` | `database` |
    @@ -195,7 +195,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `disableNativeCompression` | `disable` — флаг отключения | Отключает нативное сжатие. Если установлено в `true`, нативное сжатие будет отключено. | `false` | `disable_native_compression` | - + | Method | Arguments | Description | Default | Key | | ------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------- | | `setSSLTrustStore(String path)` | `path` - путь к файлу в локальной системе | Указывает, должен ли клиент использовать SSL truststore для проверки подлинности хоста сервера. | - | `trust_store` | @@ -207,7 +207,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `sslSocketSNI(String sni)` | `sni` - строка с именем сервера | Указывает имя сервера, которое будет использоваться для SNI (Server Name Indication) в SSL/TLS-соединении. | - | `ssl_socket_sni` | - + | Method | Arguments | Description | Default | Key | | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------- | ---------------------------------------- | | `addProxy(ProxyType type, String host, int port)` | `type` - тип прокси
    `host` - имя хоста или IP-адрес прокси-сервера
    `port` - порт прокси-сервера | Устанавливает прокси-сервер, который будет использоваться для взаимодействия с сервером. | - | `proxy_type`, `proxy_host`, `proxy_port` | @@ -230,7 +230,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | `serverSetting(String name, Collection values)` | `name` - имя настройки
    `values` - значения настройки | Указывает, какие настройки с множественными значениями передавать серверу, например [роли](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` |
    - + | Method | Arguments | Description | Default | Key | | ---------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------- | | `useServerTimeZone(boolean useServerTimeZone)` | `useServerTimeZone` - флаг включения/выключения | Определяет, должен ли клиент использовать часовой пояс сервера при декодировании значений столбцов типов DateTime и Date. | `true` | `use_server_time_zone` | @@ -239,23 +239,63 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------- | - | `setOption(String key, String value)` | `key` - ключ параметра конфигурации
    `value` - значение параметра | Устанавливает сырое значение параметров клиента. Полезно при чтении конфигурации из property-файлов. | - | - | - | `useAsyncRequests(boolean async)` | `async` - флаг включения/выключения | Определяет, должен ли клиент выполнять запросы в отдельном потоке. По умолчанию отключено, так как приложение лучше знает, как организовать многопоточные задачи. | `false` | `async` | - | `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - экземпляр ExecutorService | Задает ExecutorService для выполнения операционных задач. | `none` | `none` | - | `setClientNetworkBufferSize(int size)` | `size` - размер в байтах | Устанавливает размер буфера в адресном пространстве памяти приложения, который используется для копирования данных между сокетом и приложением. | `300000` | `client_network_buffer_size` | - | `allowBinaryReaderToReuseBuffers(boolean reuse)` | `reuse` - флаг включения/выключения | Если включено, двоичный читатель будет использовать заранее выделенные буферы для транскодирования чисел. Снижает нагрузку на GC для числовых данных. | - | - | - | `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - реализация стратегии сопоставления | Задает пользовательскую стратегию, используемую для сопоставления полей класса DTO и столбцов БД при регистрации DTO. | `none` | `none` | - | `setClientName(String clientName)` | `clientName` - строка с именем приложения | Устанавливает дополнительную информацию о вызывающем приложении. Будет передана в заголовке `User-Agent`. | - | `client_name` | - | `registerClientMetrics(Object registry, String name)` | `registry` - экземпляр реестра Micrometer
    `name` - имя группы метрик | Регистрирует метрики в экземпляре реестра Micrometer (https://micrometer.io/). | - | - | - | `setServerVersion(String version)` | `version` - строка с версией сервера | Устанавливает версию сервера, чтобы избежать автоматического определения версии. | - | `server_version` | - | `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - отображение (Map) подсказок типов | Устанавливает отображение подсказок типов для типов ClickHouse. Например, чтобы многомерные массивы представлялись в виде контейнеров Java. | - | `type_hint_mapping` | + | Method | Arguments | Description | Default | Key | + | ------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------- | + | `setOption(String key, String value)` | `key` - configuration option key
    `value` - option value | Устанавливает сырое значение параметров клиента. Полезно при чтении конфигурации из property-файлов. | - | - | + | `useAsyncRequests(boolean async)` | `async` - flag to enable/disable | Определяет, должен ли клиент выполнять запросы в отдельном потоке. По умолчанию отключено, так как приложение лучше знает, как организовать многопоточные задачи. | `false` | `async` | + | `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - executor service instance | Задает ExecutorService для выполнения операционных задач. | `none` | `none` | + | `setClientNetworkBufferSize(int size)` | `size` - size in bytes | Устанавливает размер буфера в адресном пространстве памяти приложения, который используется для копирования данных между сокетом и приложением. | `300000` | `client_network_buffer_size` | + | `allowBinaryReaderToReuseBuffers(boolean reuse)` | `reuse` - flag to enable/disable | Если включено, двоичный читатель будет использовать заранее выделенные буферы для транскодирования чисел. Снижает нагрузку на GC для числовых данных. | - | - | + | `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | `strategy` - matching strategy implementation | Задает пользовательскую стратегию, используемую для сопоставления полей класса DTO и столбцов БД при регистрации DTO. | `none` | `none` | + | `setClientName(String clientName)` | `clientName` - application name string | Устанавливает дополнительную информацию о вызывающем приложении. Будет передана в заголовке `User-Agent`. | - | `client_name` | + | `registerClientMetrics(Object registry, String name)` | `registry` - Micrometer registry instance
    `name` - metrics group name | Регистрирует метрики в экземпляре реестра Micrometer (https://micrometer.io/). | - | - | + | `setServerVersion(String version)` | `version` - server version string | Устанавливает версию сервера, чтобы избежать автоматического определения версии. | - | `server_version` | + | `typeHintMapping(Map typeHintMapping)` | `typeHintMapping` - map of type hints | Устанавливает отображение подсказок типов для типов ClickHouse. Например, чтобы многомерные массивы представлялись в виде контейнеров Java. | - | `type_hint_mapping` |

    + ### Идентификация клиента \{#client-identification\} + + В журнале запросов есть два поля, идентифицирующих приложение, из которого поступил запрос: `client_name` и `http_user_agent`. Нативный TCP-протокол использует + `client_name` для идентификации приложения. HTTP-протокол использует `http_user_agent` для идентификации приложения. Метод `setClientName` в Client builder устанавливает корректные значения + для обоих протоколов. + Поле `http_user_agent` задаётся в соответствии с общим форматом заголовка `User-Agent`: `application-name[/version] [(operating-system; architecture; ...)]`. + Этот набор значений повторяется для каждого уровня: приложение, клиентская библиотека, HTTP-клиентская библиотека. Значение, заданное методом `setClientName`, стоит первым в списке. + + Например: + + ```java showLineNumbers + client.setClientName("my-app-01/1.0"); + ``` + + приведёт к следующему значению `http_user_agent`: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + Приложение может задать собственный HTTP-заголовок `User-Agent` для идентификации. При этом часть `clickhouse-java-v2/0.9.6-SNAPSHOT` будет добавлена в конец заголовка. + + ### Идентификация операции \{#operation-identification\} + + Журнал запросов содержит ещё два поля — `query_id` и `log_comment`, — которые можно использовать для идентификации операции и добавления дополнительной информации в журнал запросов. + + `query_id` — уникальный идентификатор операции. Его можно задать в приложении, вызвав метод `setQueryId` класса `QuerySettings`. + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.setQueryId("some-query-id"); + ``` + + `log_comment` — это комментарий, который можно добавить в журнал запросов. Он задаётся приложением с помощью вызова метода `logComment` класса `QuerySettings`. + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.logComment("some-comment"); + ``` + ### Настройки сервера \{#server-settings\} Настройки на стороне сервера можно задать на уровне клиента один раз при его создании (см. метод `serverSetting` класса `Builder`) и на уровне конкретной операции (см. метод `serverSetting` в классе настроек операции). @@ -303,9 +343,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Перечисление [поддерживаемых форматов](/interfaces/formats). В него входят все форматы, поддерживаемые ClickHouse. - * `raw` - транскодирование необработанных данных выполняется пользователем - * `full` — клиент сам выполняет транскодирование данных и принимает сырой поток данных - * `-` - операция не поддерживается ClickHouse для данного формата + * `raw` - пользователь должен самостоятельно транскодировать сырые данные + * `full` — клиент самостоятельно выполняет транскодирование данных и принимает необработанный поток данных + * `-` — операция для этого формата в ClickHouse не поддерживается Эта версия клиента поддерживает: @@ -340,7 +380,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | [JSONEachRow](/interfaces/formats/JSONEachRow) | как есть | raw | | [PrettyJSONEachRow](/interfaces/formats/PrettyJSONEachRow) | * | как есть | | [JSONEachRowWithProgress](/interfaces/formats/JSONEachRowWithProgress) | - | как есть | - | [JSONStringsEachRow](/interfaces/formats/JSONStringsEachRow) | raw | как есть | + | [JSONStringsEachRow](/interfaces/formats/JSONStringsEachRow) | raw | raw | | [JSONStringsEachRowWithProgress](/interfaces/formats/JSONStringsEachRowWithProgress) | * | raw | | [JSONCompactEachRow](/interfaces/formats/JSONCompactEachRow) | как есть | как есть | | [JSONCompactEachRowWithNames](/interfaces/formats/JSONCompactEachRowWithNames) | raw | raw | @@ -397,7 +437,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra ### insert(String tableName, InputStream data, ClickHouseFormat format) \{#insertstring-tablename-inputstream-data-clickhouseformat-format\} - Принимает данные в виде потока байтов `InputStream` в указанном формате. Ожидается, что `data` кодированы в `format`. + Принимает данные в виде потока байтов `InputStream` в указанном формате. Ожидается, что `data` закодированы в `format`. **Сигнатуры** @@ -440,7 +480,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Отправляет запрос на запись в базу данных. Список объектов преобразуется в эффективный формат и затем отправляется на сервер. Класс элементов списка должен быть заранее зарегистрирован с помощью метода `register(Class, TableSchema)`. - **Подписи** + **Сигнатуры** ```java client.insert(String tableName, List data, InsertSettings settings) @@ -478,15 +518,15 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **Методы конфигурации** - | Метод | Описание | - | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | Устанавливает идентификатор запроса, который будет присвоен операции. Значение по умолчанию: `null`. | - | `setDeduplicationToken(String token)` | Устанавливает токен дедупликации. Этот токен будет отправлен на сервер и может использоваться для идентификации запроса. Значение по умолчанию: `null`. | - | `setInputStreamCopyBufferSize(int size)` | Размер буфера копирования. Буфер используется при операциях записи для копирования данных из входного потока, предоставленного пользователем, в выходной поток. По умолчанию: `8196`. | - | `serverSetting(String name, String value)` | Задаёт отдельную настройку сервера для операции. | - | `serverSetting(String name, Collection values)` | Устанавливает отдельную серверную настройку с несколькими значениями для операции. Элементы коллекции должны быть значениями типа `String`. | - | `setDBRoles(Collection dbRoles)` | Указывает роли БД, которые нужно назначить перед выполнением операции. Элементы коллекции должны быть значениями типа `String`. | - | `setOption(String option, Object value)` | Задаёт параметр конфигурации в «сыром» виде. Это не серверная настройка. | + | Метод | Описание | + | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | Устанавливает идентификатор запроса, который будет присвоен операции. Значение по умолчанию: `null`. | + | `setDeduplicationToken(String token)` | Устанавливает токен дедупликации. Этот токен будет отправлен на сервер и может использоваться для идентификации запроса. Значение по умолчанию: `null`. | + | `setInputStreamCopyBufferSize(int size)` | Размер буфера копирования. Буфер используется при операциях записи для копирования данных из пользовательского входного потока в выходной поток. Значение по умолчанию: `8196`. | + | `serverSetting(String name, String value)` | Устанавливает индивидуальную настройку сервера для операции. | + | `serverSetting(String name, Collection values)` | Устанавливает отдельную серверную настройку с несколькими значениями для операции. Элементы коллекции должны быть значениями типа `String`. | + | `setDBRoles(Collection dbRoles)` | Указывает роли БД, которые нужно назначить перед выполнением операции. Элементы коллекции должны быть значениями типа `String`. | + | `setOption(String option, Object value)` | Устанавливает параметр конфигурации в «сыром» виде. Это не настройка сервера. | ### InsertResponse \{#insertresponse\} @@ -496,10 +536,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Этот объект необходимо закрыть как можно скорее, чтобы освободить соединение, так как его нельзя переиспользовать, пока все данные предыдущего ответа не будут полностью прочитаны. ::: - | Метод | Описание | - | ------------------------------- | ------------------------------------------------------------------------------------------------------------ | - | `OperationMetrics getMetrics()` | Возвращает объект, содержащий метрики операции. | - | `String getQueryId()` | Возвращает идентификатор запроса, назначенный операции приложением (через настройки операции) либо сервером. | + | Метод | Описание | + | ------------------------------- | ----------------------------------------------------------------------------------------------------------- | + | `OperationMetrics getMetrics()` | Возвращает объект, содержащий метрики операции. | + | `String getQueryId()` | Возвращает идентификатор запроса, назначенный операции приложением (через настройки операции) или сервером. | ## API запросов \{#query-api\} @@ -507,7 +547,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Отправляет `sqlQuery` как есть. Формат ответа задаётся настройками запроса. `QueryResponse` будет содержать ссылку на поток ответа, который должен быть прочитан ридером, поддерживающим соответствующий формат. - **Подписи** + **Сигнатуры** ```java CompletableFuture query(String sqlQuery, QuerySettings settings) @@ -556,7 +596,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Отправляет `sqlQuery` как есть. Дополнительно передаёт параметры запроса, чтобы сервер мог скомпилировать SQL-выражение. - **Подписи** + **Сигнатуры** ```java CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) @@ -572,7 +612,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **Возвращаемое значение** - Будущее типа `QueryResponse` — результирующий набор данных и дополнительная информация, такая как метрики на стороне сервера. Объект Response должен быть закрыт после потребления набора данных. + Future типа `QueryResponse` — результирующий набор данных и дополнительная информация, такая как метрики на стороне сервера. Объект Response должен быть закрыт после чтения набора данных. **Примеры** @@ -604,7 +644,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Запрашивает данные в формате `RowBinaryWithNamesAndTypes`. Возвращает результат в виде коллекции. Производительность чтения такая же, как при использовании reader, но требуется больше памяти для хранения всего набора данных. - **Подписи** + **Сигнатуры** ```java List queryAll(String sqlQuery) @@ -644,25 +684,25 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **Методы конфигурации** - | Метод | Описание | - | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | Задаёт идентификатор запроса, который будет присвоен операции. | - | `setFormat(ClickHouseFormat format)` | Задаёт формат ответа. Полный список форматов см. в `RowBinaryWithNamesAndTypes`. | - | `setMaxExecutionTime(Integer maxExecutionTime)` | Устанавливает время выполнения операции на сервере. Не влияет на таймаут чтения. | - | `waitEndOfQuery(Boolean waitEndOfQuery)` | Указывает серверу дождаться завершения запроса перед отправкой ответа. | - | `setUseServerTimeZone(Boolean useServerTimeZone)` | Часовой пояс сервера (см. конфигурацию клиента) будет использоваться при разборе значений типов дата/время в результате операции. По умолчанию `false`. | - | `setUseTimeZone(String timeZone)` | Запрашивает использование сервером часового пояса `timeZone` для преобразования времени. См. [session_timezone](/operations/settings/settings#session_timezone). | - | `serverSetting(String name, String value)` | Задаёт отдельную настройку сервера для операции. | - | `serverSetting(String name, Collection values)` | Устанавливает отдельную серверную настройку с несколькими значениями для операции. Элементы коллекции должны быть значениями типа `String`. | - | `setDBRoles(Collection dbRoles)` | Указывает роли БД, которые нужно назначить перед выполнением операции. Элементы коллекции должны быть значениями типа `String`. | - | `setOption(String option, Object value)` | Устанавливает параметр конфигурации в необработанном виде. Это не параметр сервера. | + | Метод | Описание | + | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | Устанавливает идентификатор запроса, который будет присвоен операции. | + | `setFormat(ClickHouseFormat format)` | Задаёт формат ответа. Полный список см. в `RowBinaryWithNamesAndTypes`. | + | `setMaxExecutionTime(Integer maxExecutionTime)` | Устанавливает время выполнения операции на сервере. Не влияет на таймаут чтения. | + | `waitEndOfQuery(Boolean waitEndOfQuery)` | Указывает серверу дождаться завершения запроса перед отправкой ответа. | + | `setUseServerTimeZone(Boolean useServerTimeZone)` | Часовой пояс сервера (см. конфигурацию клиента) будет использоваться для разбора значений типов даты и времени в результате выполнения операции. По умолчанию `false`. | + | `setUseTimeZone(String timeZone)` | Запрашивает использование сервером часового пояса `timeZone` для преобразования времени. См. [session_timezone](/operations/settings/settings#session_timezone). | + | `serverSetting(String name, String value)` | Устанавливает отдельную настройку сервера для операции. | + | `serverSetting(String name, Collection values)` | Устанавливает отдельную серверную настройку с несколькими значениями для операции. Элементы коллекции должны быть значениями типа `String`. | + | `setDBRoles(Collection dbRoles)` | Задаёт роли БД, которые будут назначены перед выполнением операции. Элементы коллекции должны быть значениями типа `String`. | + | `setOption(String option, Object value)` | Устанавливает параметр конфигурации в «сыром» виде. Это не серверная настройка. | ### QueryResponse \{#queryresponse\} Объект ответа, содержащий результат выполнения запроса. Доступен только при получении ответа от сервера. :::note - Этот объект необходимо закрыть как можно скорее, чтобы освободить соединение, так как соединение нельзя повторно использовать, пока все данные предыдущего ответа не будут полностью прочитаны. + Этот объект необходимо закрыть как можно скорее, чтобы освободить соединение, так как его нельзя переиспользовать, пока все данные предыдущего ответа не будут полностью прочитаны. ::: | Метод | Описание | @@ -684,7 +724,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Извлекает схему таблицы `table`. - **Подписи** + **Сигнатуры** ```java TableSchema getTableSchema(String table) @@ -749,18 +789,17 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Полный код примеров хранится в репозитории в папке `example` [folder](https://github.com/ClickHouse/clickhouse-java/tree/main/examples): * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - основной набор примеров. - * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - пример использования клиента в приложении Spring Boot. - * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - пример использования клиента в приложении Ktor на Kotlin. + * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - пример того, как использовать клиента в приложении Spring Boot. + * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - пример использования клиента в Ktor-приложении на Kotlin. ## Чтение данных \{#reading-data\} Существует два распространённых способа чтения данных: - * Метод `query()` возвращает низкоуровневый объект `QueryResponse`, содержащий `InputStream` с данными. Обычно он используется вместе с `ClickHouseBinaryFormatReader` для потокового чтения, но - может быть использован и с любой другой пользовательской реализацией ридера. `QueryResponse` также предоставляет доступ к метаданным результирующего набора данных и метрикам. - * метод `queryAll()` и использование `GenericRecord` для удобного доступа к строкам. В этом случае весь результирующий набор загружается в память целиком. + * Метод `query()` возвращает низкоуровневый объект `QueryResponse`, содержащий `InputStream` с данными. Обычно он используется вместе с `ClickHouseBinaryFormatReader` для потокового чтения, но также может использоваться с любой другой пользовательской реализацией ридера. `QueryResponse` также предоставляет доступ к метаданным результирующего набора данных и метрикам. + * метод `queryAll()` с использованием `GenericRecord` для удобного построчного доступа. В этом случае весь результирующий набор загружается в память. * Метод `queryRecords()`, который возвращает `com.clickhouse.client.api.query.Records` — итератор по объектам `GenericRecord`. Этот метод использует потоковый подход - (данные не загружаются в память) и `GenericRecord` для доступа к данным. + (данные не загружаются в память) и использует `GenericRecord` для доступа к данным. **Примечание:** потоковый подход требует быстрого чтения, в противном случае, поскольку данные считываются непосредственно из сетевого потока, может возникнуть тайм-аут записи на сервере. @@ -768,10 +807,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **Методы `ClickHouseBinaryFormatReader`** - * `getList(...)` — читает любой `Array(...)` как `List`. Хороший вариант по умолчанию для гибкого чтения с учетом типов. Поддерживает вложенные массивы. + * `getList(...)` — читает любой `Array(...)` как `List`. Оптимальный вариант по умолчанию для гибкого чтения с типизацией. Поддерживает вложенные массивы. * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` — наиболее подходят для одномерных массивов значений примитивных типов или совместимых с ними. - * `getStringArray(...)` - для `Array(String)` (и значений enum, представленных именами). - * `getObjectArray(...)` - универсальный метод для любого типа элементов `Array(...)`, включая вложенные массивы. Используйте его для чтения массивов с Nullable-значениями и вложенных массивов. + * `getStringArray(...)` — для `Array(String)` (а также значений перечислений, представленных именами). + * `getObjectArray(...)` — универсальный метод для любого типа элементов `Array(...)`, включая вложенные массивы. Используйте его для чтения массивов с Nullable-значениями и вложенными массивами. Перегрузки на основе индекса и имени доступны для всех методов. Индексация начинается с 1. Методы, основанные на индексе, обеспечивают прямой доступ к столбцу. Методы, основанные на имени, при каждом вызове требуют поиска по индексу. @@ -793,13 +832,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **Методы `GenericRecord`** - * `getList(...)` - читает любой `Array(...)` как `List`. Оптимальный вариант по умолчанию для гибкого чтения с типизацией. Поддерживает вложенные массивы. - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` — наилучшим образом подходят для одномерных массивов значений, совместимых с примитивными типами. + * `getList(...)` — читает любой `Array(...)` как `List`. Оптимальный вариант по умолчанию для гибкого типизованного чтения. Поддерживает вложенные массивы. + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` — лучше всего подходят для одномерных массивов значений, совместимых с примитивными типами. * `getStringArray(...)` — для `Array(String)` (и значений перечислений, представленных именами). - * `getObjectArray(...)` — универсальный метод для любых типов элементов `Array(...)`, включая вложенные массивы. Используйте его для чтения массивов с Nullable-значениями и вложенными массивами. + * `getObjectArray(...)` - универсальный вариант для любого типа элементов `Array(...)`, включая вложенные массивы. Используйте его для чтения массивов с элементами типа Nullable и вложенных массивов. - Перегрузки по индексу и по имени доступны для всех методов. Нумерация индексов начинается с 1. Варианты, основанные на индексе, обеспечивают прямой доступ к столбцу. - Методы, основанные на имени, каждый раз требуют поиска индекса. + Перегрузки на основе индекса и имени доступны для всех методов. Индексация начинается с 1. Методы, основанные на индексе, обеспечивают прямой доступ к столбцу. + Методы, основанные на имени, при каждом вызове требуют поиска по индексу. ````java try (QueryResponse response = client.query("SELECT * FROM my_table").get()) { @@ -1089,7 +1128,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra ```` - **V2 Вставьте данные в формате TSV.** + **V2 Вставка данных в формате TSV.** ```java InputStream inData = getInData(); @@ -1103,14 +1142,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra } ``` - * достаточно одного вызова метода — нет необходимости создавать дополнительный объект запроса. - * Поток тела запроса автоматически закрывается после копирования всех данных. - * Теперь доступен новый низкоуровневый API `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`. `com.clickhouse.client.api.DataStreamWriter` предназначен для реализации пользовательской логики записи данных, например, для чтения данных из - очереди. + * достаточно одного вызова метода — не нужно создавать дополнительный объект запроса. + * Поток тела запроса автоматически закрывается, когда все данные будут скопированы. + * Теперь доступен новый низкоуровневый API `com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`. `com.clickhouse.client.api.DataStreamWriter` предназначен для реализации пользовательской логики записи данных. Например, можно реализовать чтение данных из очереди. ### Чтение данных - * По умолчанию данные считываются в формате `RowBinaryWithNamesAndTypes`. В настоящее время, когда требуется привязка данных, поддерживается только этот формат. + * По умолчанию данные читаются в формате `RowBinaryWithNamesAndTypes`. В настоящее время при необходимости привязки данных поддерживается только этот формат. * Данные можно считывать как коллекцию записей с помощью метода `List com.clickhouse.client.api.Client#queryAll(java.lang.String)`. Метод считывает данные в память и освобождает соединение, поэтому дополнительная обработка не требуется. `GenericRecord` предоставляет доступ к данным и выполняет некоторые преобразования. ```java @@ -1304,8 +1342,8 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Также вы можете отключить сжатие несколькими способами. - 1. Отключите сжатие, указав `compress=0` в URL подключения: `http://localhost:8123/default?compress=0` - 2. Отключите через конфигурацию клиента: + 1. Отключите сжатие, указав `compress=0` в URL-адресе подключения: `http://localhost:8123/default?compress=0` + 2. Отключите в конфигурации клиента: ```java showLineNumbers ClickHouseClient client = ClickHouseClient.builder() @@ -1396,7 +1434,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra jdbc:ch://my-server/system?auto_discovery=true ``` - При включенном автообнаружении нет необходимости указывать все узлы ClickHouse в URL подключения. Узлы, указанные в URL, будут рассматриваться как начальные (seed) узлы, и Java-клиент автоматически обнаружит дополнительные узлы из системных таблиц и/или через clickhouse-keeper или ZooKeeper. + При включённом автообнаружении нет необходимости указывать все узлы ClickHouse в URL подключения. Узлы, указанные в URL, будут рассматриваться как начальные (seed) узлы, и Java-клиент автоматически обнаружит дополнительные узлы из системных таблиц и/или через clickhouse-keeper или ZooKeeper. Настройка автоматического обнаружения выполняется с помощью следующих параметров: @@ -1410,30 +1448,30 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra Java-клиент выбирает узел ClickHouse для отправки запросов в соответствии с политикой балансировки нагрузки. Как правило, политика балансировки нагрузки отвечает за следующее: - 1. Выбирать узел из списка управляемых узлов. + 1. Выбрать узел из списка управляемых узлов. 2. Управление статусом узла. - 3. При необходимости запланируйте фоновый процесс обнаружения узлов (если включено автообнаружение) и проверку их работоспособности. + 3. При необходимости запланируйте фоновый процесс обнаружения узлов (если включено автообнаружение) и запуск проверки их работоспособности. Ниже приведён список параметров для настройки балансировки нагрузки: - | Параметр | Значение по умолчанию | Описание | - | ----------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | load_balancing_policy | `""` | Политика балансировки нагрузки может иметь одно из следующих значений:
  • `firstAlive` — запрос отправляется первому работоспособному узлу из списка управляемых узлов
  • `random` — запрос отправляется случайному узлу из списка управляемых узлов
  • `roundRobin` — запросы по очереди отправляются каждому узлу из списка управляемых узлов
  • полное имя класса, реализующего `ClickHouseLoadBalancingPolicy`, — пользовательская политика балансировки нагрузки
  • Если политика не указана, запрос отправляется на первый узел из списка управляемых узлов | - | load_balancing_tags | `""` | Теги балансировки нагрузки, используемые для фильтрации узлов. Запросы отправляются только на узлы с указанными тегами. | - | health_check_interval | `0` | Интервал проверки работоспособности в миллисекундах; нулевое или отрицательное значение означает однократную проверку. | - | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Метод проверки работоспособности. Может быть одним из следующих:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - проверка с помощью запроса `select 1`
  • `ClickHouseHealthCheckMethod.PING` - проверка на уровне протокола, как правило, более быстрая
  • | - | node_check_interval | `0` | Интервал проверки узла в миллисекундах, отрицательное значение рассматривается как ноль. Статус узла проверяется, если с момента последней проверки прошло указанное количество времени.
    Разница между `health_check_interval` и `node_check_interval` заключается в том, что опция `health_check_interval` планирует фоновое задание, которое проверяет статус узлов в списке (всех или только проблемных), а `node_check_interval` задаёт минимальный интервал времени, который должен пройти с момента последней проверки конкретного узла. | - | check_all_nodes | `false` | Выполнять проверку работоспособности для всех узлов или только для проблемных узлов. | + | Параметр | Значение по умолчанию | Описание | + | ----------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | load_balancing_policy | `""` | Политика балансировки нагрузки может иметь одно из следующих значений:
  • `firstAlive` — запрос отправляется первому работоспособному узлу из списка управляемых узлов
  • `random` — запрос отправляется случайному узлу из списка управляемых узлов
  • `roundRobin` — запросы по очереди отправляются на каждый узел из списка управляемых узлов
  • полное имя класса, реализующего интерфейс `ClickHouseLoadBalancingPolicy`, — пользовательская политика балансировки нагрузки
  • Если политика не указана, запрос отправляется на первый узел из списка управляемых узлов | + | load_balancing_tags | `""` | Теги балансировки нагрузки, используемые для фильтрации узлов. Запросы отправляются только на узлы с указанными тегами. | + | health_check_interval | `0` | Интервал проверки работоспособности в миллисекундах; нулевое или отрицательное значение означает однократную проверку. | + | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Метод проверки работоспособности. Может быть одним из следующих:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - проверка с помощью запроса `select 1`
  • `ClickHouseHealthCheckMethod.PING` - проверка, специфичная для протокола и, как правило, более быстрая
  • | + | node_check_interval | `0` | Интервал проверки узла в миллисекундах, отрицательное значение считается нулём. Статус узла проверяется, если с момента последней проверки прошло указанное количество времени.
    Разница между `health_check_interval` и `node_check_interval` заключается в том, что опция `health_check_interval` запускает фоновое задание, которое проверяет статус узлов в списке (всех или только проблемных), а `node_check_interval` задаёт минимальное время, которое должно пройти с момента последней проверки конкретного узла. | + | check_all_nodes | `false` | Выполнять проверку работоспособности для всех узлов или только для проблемных узлов. | ### Отказоустойчивость и повторные попытки Java-клиент предоставляет параметры конфигурации для настройки отказоустойчивости и повторных попыток выполнения неудачных запросов: - | Параметр | Значение по умолчанию | Описание | - | ---------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | failover | `0` | Максимальное число переключений (failover) для одного запроса. Нулевое или отрицательное значение означает, что failover отключён. При failover неуспешный запрос отправляется на другой узел (в соответствии с политикой балансировки нагрузки) для восстановления после сбоя. | - | retry | `0` | Максимальное число повторных попыток выполнения запроса. Нулевое или отрицательное значение означает отсутствие повторных попыток. Повторная попытка выполняется для того же узла и только в том случае, если сервер ClickHouse возвращает код ошибки `NETWORK_ERROR`. | - | repeat_on_session_lock | `true` | Следует ли повторять выполнение, если сеанс заблокирован до истечения времени ожидания (в соответствии с `session_timeout` или `connect_timeout`). Неудачный запрос повторяется, если сервер ClickHouse возвращает код ошибки `SESSION_IS_LOCKED`. | + | Параметр | Значение по умолчанию | Описание | + | ---------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | failover | `0` | Максимальное число переключений (failover) для одного запроса. Нулевое или отрицательное значение означает, что failover отключён. При failover неуспешный запрос отправляется на другой узел (в соответствии с политикой балансировки нагрузки) для восстановления после сбоя. | + | retry | `0` | Максимальное количество повторных попыток выполнения запроса. Нулевое или отрицательное значение означает, что повторные попытки не выполняются. Повторная отправка запроса выполняется на тот же узел и только в том случае, если сервер ClickHouse возвращает код ошибки `NETWORK_ERROR`. | + | repeat_on_session_lock | `true` | Следует ли повторять выполнение, если сеанс заблокирован до истечения времени ожидания (в соответствии с `session_timeout` или `connect_timeout`). Неудачный запрос повторяется, если сервер ClickHouse возвращает код ошибки `SESSION_IS_LOCKED`. | ### Добавление пользовательских HTTP-заголовков diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx index 8b6877847dc..7abc29b3c34 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx @@ -72,7 +72,7 @@ import TabItem from '@theme/TabItem'; * [Maven Central](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc) и добавьте его в classpath * начиная с версии `0.9.4` доступен артефакт https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all * используйте квалификатор `all`, чтобы получить JAR‑файл, включающий все `shaded`‑зависимости. - * или из официального репозитория [по этой ссылке](https://github.com/ClickHouse/clickhouse-java/releases) + * или из официального репозитория [здесь](https://github.com/ClickHouse/clickhouse-java/releases) ## Конфигурация \{#configuration\} @@ -95,10 +95,10 @@ import TabItem from '@theme/TabItem'; Обратите внимание на следующие особенности синтаксиса URL: * в URL допускается **только** одна конечная точка - * протокол следует указывать, если используется не протокол по умолчанию — 'HTTP' - * порт следует указывать, если используется порт, отличный от порта по умолчанию '8123' - * драйвер не определяет протокол по номеру порта, его нужно указывать явно - * Параметр `ssl` не требуется, если протокол указан. + * протокол следует указывать, если используется протокол, отличный от значения по умолчанию — 'HTTP' + * порт следует указывать, если используется не порт по умолчанию '8123' + * драйвер не определяет протокол по номеру порта; его необходимо указывать явно + * Параметр `ssl` можно не указывать, если протокол задан явно. ### Свойства соединения \{#connection-properties\} @@ -107,17 +107,17 @@ import TabItem from '@theme/TabItem'; **Свойства драйвера**: - | Свойство | Значение по умолчанию | Описание | - | ----------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | `disable_frameworks_detection` | `true` | Отключить определение фреймворков по заголовку User-Agent | - | `jdbc_ignore_unsupported_values` | `false` | Подавляет `SQLFeatureNotSupportedException` в случаях, когда это не влияет на работу драйвера | - | `clickhouse.jdbc.v1` | `false` | Использовать старую реализацию JDBC вместо новой | - | `default_query_settings` | `null` | Позволяет передавать настройки запроса по умолчанию при выполнении запросов | - | `jdbc_resultset_auto_close` | `true` | Автоматически закрывает `ResultSet` при закрытии `Statement` | - | `beta.row_binary_for_simple_insert` | `false` | Использовать реализацию `PreparedStatement`, основанную на записи в формате `RowBinary`. Работает только для запросов `INSERT INTO ... VALUES`. | - | `jdbc_resultset_auto_close` | `true` | Автоматически закрывает `ResultSet` при закрытии объекта `Statement` | - | `jdbc_use_max_result_rows` | `false` | Включает использование серверного свойства `max_result_rows` для ограничения количества строк, возвращаемых запросом. При включении переопределяет режим переполнения, установленный пользователем. Подробности см. в JavaDoc. | - | `jdbc_sql_parser` | `JAVACC` | Настраивает, какой SQL‑парсер использовать. Доступные варианты: `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`. | + | Свойство | Значение по умолчанию | Описание | + | ----------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `disable_frameworks_detection` | `true` | Отключить определение фреймворков по заголовку User-Agent | + | `jdbc_ignore_unsupported_values` | `false` | Подавляет `SQLFeatureNotSupportedException`, если это не влияет на работу драйвера | + | `clickhouse.jdbc.v1` | `false` | Использовать старую реализацию JDBC вместо новой | + | `default_query_settings` | `null` | Позволяет передавать значения настроек запроса по умолчанию при выполнении запросов | + | `jdbc_resultset_auto_close` | `true` | Автоматически закрывает `ResultSet` при закрытии `Statement` | + | `beta.row_binary_for_simple_insert` | `false` | Использовать реализацию `PreparedStatement`, основанную на записи в формате `RowBinary`. Работает только для запросов `INSERT INTO ... VALUES`. | + | `jdbc_resultset_auto_close` | `true` | Автоматически закрывает `ResultSet` при закрытии `Statement` | + | `jdbc_use_max_result_rows` | `false` | Позволяет использовать серверное свойство `max_result_rows` для ограничения числа строк, возвращаемых запросом. При включении переопределяет установленный пользователем режим переполнения. Подробности см. в JavaDoc. | + | `jdbc_sql_parser` | `JAVACC` | Определяет, какой SQL‑парсер использовать. Доступные варианты: `ANTLR4`, `ANTLR4_PARAMS_PARSER`, `JAVACC`. | :::note Настройки сервера @@ -156,6 +156,40 @@ import TabItem from '@theme/TabItem'; Примечание: URL-кодирование JDBC URL или свойств не требуется — они будут закодированы автоматически. + ### Идентификация клиента \{#client-identification\} + + Существует два способа идентифицировать приложение, инициировавшее запрос: задать `com.clickhouse.client.api.ClientConfigProperties#CLIENT_NAME` через + свойства соединения или использовать метод `java.sql.Connection#setClientInfo(String name, String value)`. + + ```java showLineNumbers + Properties properties = new Properties(); + properties.setProperty(ClientConfigProperties.CLIENT_NAME.getKey(), "my-app-01"); + Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", properties); + ``` + + ```java showLineNumbers + conn.setClientInfo(com.clickhouse.jdbc.ClientInfoProperties.APPLICATION_NAME.getKey(), "my-app-01"); + ``` + + Оба способа приведут к следующему значению `http_user_agent` в журнале запросов: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + ### Идентификация операции \{#operation-identification\} + + Драйвер JDBC генерирует `query_id` для каждой операции (в настоящее время он включается в исключения сервера). + + Чтобы задать `log_comment` для операции, используйте метод `com.clickhouse.jdbc.StatementImpl#getLocalSettings`. Для этого необходимо предварительно привести `Statement` или `PreparedStatement` к типу `com.clickhouse.jdbc.StatementImpl`. + + ```java showLineNumbers + StatementImpl stmt = (StatementImpl) conn.createStatement(); + stmt.getLocalSettings().logComment("some-comment"); + ``` + + **Примечание:** этот подход работает только при однопоточном использовании оператора, поскольку `localSettings` является общим для всех потоков. + ## Поддерживаемые типы данных \{#supported-data-types\} Драйвер JDBC поддерживает те же форматы данных, что и базовый [Java-клиент](/integrations/java#supported-data-types). @@ -165,7 +199,7 @@ import TabItem from '@theme/TabItem'; Следующее сопоставление применяется к: * `ResultSet#getObject(columnIndex)` — метод вернёт объект соответствующего Java‑класса. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` и т. д.) - * `ResultSetMetaData#getColumnType(columnIndex)` — этот метод вернёт соответствующий тип JDBC. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` и т. д.) + * `ResultSetMetaData#getColumnType(columnIndex)` — метод вернёт соответствующий тип JDBC. (`Int8` -> `java.lang.Byte`, `Int16` -> `java.lang.Short` и т. д.) Существует несколько способов изменить сопоставление: @@ -195,17 +229,17 @@ import TabItem from '@theme/TabItem'; | Decimal256 | DECIMAL | java.math.BigDecimal | | Bool | BOOLEAN | java.lang.Boolean | - * Числовые типы взаимно преобразуемы. Поэтому значение `Int8` можно получить в виде `Float64` и наоборот: + * Числовые типы взаимно преобразуемы. Поэтому значение `Int8` можно читать как `Float64` и наоборот. * `rs.getObject(1, Float64.class)` вернёт значение типа `Float64` из столбца `Int8`. * `rs.getLong(1)` вернёт значение типа `Long` из столбца `Int8`. - * `rs.getByte(1)` может вернуть значение типа `Byte` из столбца `Int16`, если оно укладывается в диапазон типа `Byte`. - * Преобразование из более широкого типа в более узкий не рекомендуется из‑за риска повреждения данных. - * Тип `Bool` также ведёт себя как числовой тип. - * Все числовые типы можно читать как `java.lang.String`. + * `rs.getByte(1)` может вернуть значение типа `Byte` из столбца `Int16`, если оно помещается в диапазон типа `Byte`. + * Преобразование из более широкого типа в более узкий не рекомендуется из‑за риска искажения данных. + * Тип `Bool` также может использоваться как числовой. + * Все числовые типы могут быть прочитаны как `java.lang.String`. **Строковые типы** - | Тип в ClickHouse | Тип в JDBC | Класс в Java | + | Тип в ClickHouse | Тип в JDBC | Класс Java | | ---------------- | ---------- | ---------------- | | String | VARCHAR | java.lang.String | | FixedString | VARCHAR | java.lang.String | @@ -213,17 +247,17 @@ import TabItem from '@theme/TabItem'; * `String` можно читать только как `java.lang.String` или `byte[]`. * `FixedString` считывается как есть и дополняется нулевыми байтами до длины столбца. (Например, `FixedString(10)` для `'John'` будет прочитан как `'John\0\0\0\0\0\0\0\0\0'`.) - **Типы перечислений (Enum)** + **Типы Enum** - | Тип ClickHouse | Тип JDBC | Класс Java | - | -------------- | -------- | ---------------- | - | Enum8 | OTHER | java.lang.String | - | Enum16 | OTHER | java.lang.String | + | Тип в ClickHouse | Тип JDBC | Класс Java | + | ---------------- | -------- | ---------------- | + | Enum8 | OTHER | java.lang.String | + | Enum16 | OTHER | java.lang.String | * `Enum8` и `Enum16` по умолчанию сопоставляются с `java.lang.String`. - * Значения Enum можно читать как числовые, используя специализированный числовой геттер или метод `getObject(columnIndex, Integer.class)`. + * Значения Enum можно читать как числовые, используя соответствующий числовой геттер или метод `getObject(columnIndex, Integer.class)`. * `Enum16` внутренне сопоставляется с типом short, а `Enum8` — с типом byte. Не следует читать значения `Enum16` как byte из‑за риска повреждения данных. - * Значения Enum в `PreparedStatement` можно задавать как строковые или числовые. + * Значения Enum в `PreparedStatement` можно задавать как строковые или числовые значения. **Типы даты и времени** @@ -236,30 +270,30 @@ import TabItem from '@theme/TabItem'; | Time | TIME | java.sql.Time | | Time64 | TIME | java.sql.Time | - * Типы Date / Time сопоставляются с типами `java.sql` для лучшей совместимости с JDBC. Однако можно получить объекты `java.time.LocalDate`, `java.time.LocalDateTime`, `java.time.LocalTime`, используя `ResultSet#getObject(columnIndex, Class)` и передав соответствующий класс в качестве второго аргумента. - * `rs.getObject(1, java.time.LocalDate.class)` вернёт значение `java.time.LocalDate` из столбца `Date`. - * `rs.getObject(1, java.time.LocalDateTime.class)` вернёт значение `java.time.LocalDateTime` из столбца `DateTime`. - * `rs.getObject(1, java.time.LocalTime.class)` вернёт значение `java.time.LocalTime` из столбца `Time`. + * Типы Date/Time сопоставляются с типами `java.sql` для лучшей совместимости с JDBC. Однако получение объектов `java.time.LocalDate`, `java.time.LocalDateTime`, `java.time.LocalTime` возможно с помощью `ResultSet#getObject(columnIndex, Class)`, передав соответствующий класс в качестве второго аргумента. + * `rs.getObject(1, java.time.LocalDate.class)` вернёт значение типа `java.time.LocalDate` из столбца `Date`. + * `rs.getObject(1, java.time.LocalDateTime.class)` вернёт значение типа `java.time.LocalDateTime` из столбца `DateTime`. + * `rs.getObject(1, java.time.LocalTime.class)` вернёт значение типа `java.time.LocalTime` из столбца `Time`. * `Date`, `Date32`, `Time`, `Time64` не зависят от часового пояса сервера. * `DateTime`, `DateTime64` зависят от часового пояса сервера или сеанса. * `DateTime` и `DateTime64` можно получить в виде `ZonedDateTime`, используя `getObject(colIndex, ZonedDateTime.class)`. **Вложенные типы** - | Тип ClickHouse | Тип JDBC | Класс Java | - | -------------- | --------------- | ------------------------- | - | Array | ARRAY | java.sql.Array | - | Tuple | OTHER | com.clickhouse.data.Tuple | - | Map | JAVA_OBJECT | java.util.Map | - | Nested | ARRAY | java.sql.Array | + | Тип в ClickHouse | Тип JDBC | Класс Java | + | ---------------- | --------------- | ------------------------- | + | Array | ARRAY | java.sql.Array | + | Tuple | OTHER | com.clickhouse.data.Tuple | + | Map | JAVA_OBJECT | java.util.Map | + | Nested | ARRAY | java.sql.Array | - * `Array` по умолчанию сопоставляется с `java.sql.Array` для совместимости с JDBC. Это также позволяет получить больше информации о возвращаемом значении массива, что полезно для вывода типов. + * `Array` по умолчанию сопоставляется с `java.sql.Array` для совместимости с JDBC. Это также позволяет получить более подробную информацию о возвращаемом массиве, что полезно для вывода типов. * `Array` реализует метод `getResultSet()`, возвращающий `java.sql.ResultSet` с тем же содержимым, что и исходный массив. - * Типы коллекций не следует читать как `java.lang.String`, поскольку это некорректный способ представления данных (например, строковые значения в массиве не заключаются в кавычки). - * `Map` сопоставляется типу `JAVA_OBJECT`, так как значение можно получить только через метод `getObject(columnIndex, Class)`. + * Типы коллекций не следует читать как `java.lang.String`, поскольку это некорректный способ представления таких данных (например, в массивах строковые значения не заключаются в кавычки). + * `Map` сопоставляется типу `JAVA_OBJECT`, так как значение можно прочитать только с помощью метода `getObject(columnIndex, Class)`. * `Map` не является `java.sql.Struct`, поскольку у него нет именованных столбцов. - * `Tuple` сопоставляется с `Object[]`, поскольку он может содержать элементы разных типов, а использование `List` здесь некорректно. - * `Tuple` можно прочитать как `Array` с помощью метода `getObject(columnIndex, Array.class)`. В этом случае `Array#baseTypeName` вернёт определение столбца типа `Tuple`. + * `Tuple` сопоставляется с `Object[]`, поскольку он может содержать значения разных типов, а использование `List` некорректно. + * `Tuple` можно получить как `Array` с помощью метода `getObject(columnIndex, Array.class)`. В этом случае `Array#baseTypeName` вернёт определение столбца `Tuple`. **Запись массивов** @@ -268,7 +302,7 @@ import TabItem from '@theme/TabItem'; Метод принимает два аргумента: - * `typeName` — название типа элементов массива. Например, `Array(Int32)` -> `"Int32"`. + * `typeName` — имя типа элементов массива. Например: `Array(Int32)` -> `"Int32"`. * `elements` — сами элементы массива. Например, `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}`. Кортеж можно представить как `Object[]` или как `java.sql.Struct` (см. ниже, как записывать кортежи). @@ -408,7 +442,7 @@ import TabItem from '@theme/TabItem'; Метод принимает два аргумента: - * `typeName` — имя типа для вложенных элементов. Например, `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`. + * `typeName` — имя типа вложенных элементов. Например, `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`. * `elements` — это собственно вложенные элементы. Например, `[1, 'test']` -> `new Object[] {1, 'test'}`. **Пример** @@ -463,8 +497,8 @@ import TabItem from '@theme/TabItem'; **Типы Nullable и LowCardinality** - * `Nullable` и `LowCardinality` — это специальные типы-обёртки для других типов. - * `Nullable` влияет на то, как `ResultSetMetaData` возвращает имена типов + * `Nullable` и `LowCardinality` — это специальные типы, которые оборачивают другие типы. + * `Nullable` влияет на формат имён типов, возвращаемых через `ResultSetMetaData` **Специальные типы** @@ -477,10 +511,10 @@ import TabItem from '@theme/TabItem'; | AggregateFunction | OTHER | (двоичное представление) | | SimpleAggregateFunction | (тип-обёртка) | (класс-обёртка) | - * `UUID` не относится к стандартным типам JDBC. Однако он входит в состав JDK. По умолчанию метод `getObject()` возвращает объект `java.util.UUID`. + * `UUID` не относится к стандартным типам данных JDBC. Однако он входит в состав JDK. По умолчанию в методе `getObject()` возвращается объект `java.util.UUID`. * `UUID` можно считывать и записывать в виде `String` с помощью метода `getObject(columnIndex, String.class)`. - * `IPv4` и `IPv6` не являются стандартными типами JDBC. Однако они входят в JDK. По умолчанию метод `getObject()` возвращает объекты типов `java.net.Inet4Address` и `java.net.Inet6Address`. - * `IPv4` и `IPv6` можно читать и записывать как значения типа `String` с помощью метода `getObject(columnIndex, String.class)`. + * `IPv4` и `IPv6` не являются стандартными типами JDBC. Однако они входят в состав JDK. По умолчанию метод `getObject()` возвращает объекты `java.net.Inet4Address` и `java.net.Inet6Address`. + * `IPv4` и `IPv6` можно считывать и записывать в виде значений типа `String` с помощью метода `getObject(columnIndex, String.class)`. ### Обработка дат, времени и часовых поясов \{#handling-dates-times-and-timezones\} @@ -607,7 +641,7 @@ import TabItem from '@theme/TabItem'; В Linux одних только эквивалентных настроек может быть недостаточно для устранения проблемы. Из‑за особенностей того, как Linux обрабатывает параметры keep-alive для сокетов, требуются дополнительные действия. Выполните следующие шаги: - 1. Настройте следующие параметры ядра Linux в `/etc/sysctl.conf` или соответствующем конфигурационном файле: + 1. Настройте следующие параметры ядра Linux в файле `/etc/sysctl.conf` или другом соответствующем конфигурационном файле: * `net.inet.tcp.keepidle`: 60000 * `net.inet.tcp.keepintvl`: 45000 @@ -616,9 +650,9 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60 (можно рассмотреть снижение этого значения по сравнению со значением по умолчанию — 300 секунд) + * `net.ipv4.tcp_keepalive_time`: 60 (можете рассмотреть возможность уменьшения этого значения по сравнению со значением по умолчанию — 300 секунд) - 2. После изменения параметров ядра примените их, выполнив следующую команду: + 2. После изменения параметров ядра примените изменения, выполнив следующую команду: ```shell sudo sysctl -p @@ -634,30 +668,30 @@ import TabItem from '@theme/TabItem'; ### Основные изменения \{#key-changes\} - | Возможность | V1 (устаревшая) | V2 (новая) | - | -------------------------------------------------------------- | ----------------------- | --------------------------------------------------- | - | Поддержка транзакций | Частично поддерживается | Не поддерживается | - | Переименование столбцов в результирующем наборе | Частично поддерживается | Не поддерживается | - | SQL с несколькими операторами | Не поддерживается | Недоступно | - | Именованные параметры запроса | Поддерживается | Не поддерживается (отсутствует в спецификации JDBC) | - | Потоковая передача данных с использованием `PreparedStatement` | Поддерживается | Не поддерживается | - - * JDBC V2 реализован как более лёгкий, поэтому некоторые возможности были удалены. - * Потоковая передача данных не поддерживается в JDBC V2, так как она не предусмотрена спецификацией JDBC и платформой Java. - * JDBC V2 требует явной конфигурации. Не задаёт параметров отказоустойчивости по умолчанию. + | Возможность | V1 (устаревшая) | V2 (новая) | + | --------------------------------------------------- | ----------------------- | --------------------------------------------------- | + | Поддержка транзакций | Частично поддерживается | Не поддерживается | + | Переименование столбцов в результирующем наборе | Частично поддерживается | Не поддерживается | + | SQL с несколькими операторами | Не поддерживается | Недоступно | + | Именованные параметры запроса | Поддерживается | Не поддерживается (отсутствует в спецификации JDBC) | + | Потоковая передача данных через `PreparedStatement` | Поддерживается | Не поддерживается | + + * JDBC V2 реализован в более лёгком варианте, поэтому часть функциональности была удалена. + * Потоковая передача данных не поддерживается в JDBC V2, так как она не предусмотрена ни спецификацией JDBC, ни платформой Java. + * JDBC V2 требует явной конфигурации. Не имеет настроек отказоустойчивости по умолчанию. * Протокол в URL должен быть указан явно. Протокол не определяется неявно по номеру порта. ### Изменения конфигурации \{#configuration-changes\} Доступны только два перечисления: - * `com.clickhouse.jdbc.DriverProperties` — собственные параметры конфигурации драйвера. - * `com.clickhouse.client.api.ClientConfigProperties` — свойства конфигурации клиента. Изменения конфигурации клиента + * `com.clickhouse.jdbc.DriverProperties` — собственные свойства конфигурации драйвера. + * `com.clickhouse.client.api.ClientConfigProperties` — параметры конфигурации клиента. Изменения конфигурации клиента описаны в [документации по Java‑клиенту](/integrations/language-clients/java/client/client.mdx#migration_from_v1_config). Свойства подключения разбираются следующим образом: - * Сначала свойства берутся из URL. Они переопределяют все остальные свойства. + * Сначала из URL извлекаются свойства — они переопределяют все остальные. * Свойства драйвера не передаются клиенту. * Конечные точки (host, port, protocol) определяются из URL. @@ -703,7 +737,7 @@ import TabItem from '@theme/TabItem'; | Decimal256 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | | Bool | ✅ | BOOLEAN | java.lang.Boolean | BOOLEAN | java.lang.Boolean | - * Наибольшее отличие состоит в том, что беззнаковые типы сопоставляются с типами Java, что повышает переносимость. + * Основное отличие состоит в том, что беззнаковые типы сопоставляются со стандартными типами Java, что обеспечивает лучшую переносимость. **Строковые типы** @@ -713,63 +747,63 @@ import TabItem from '@theme/TabItem'; | FixedString | ✅ | VARCHAR | java.lang.String | VARCHAR | java.lang.String | * `FixedString` читается «как есть» в обеих версиях. Например, `FixedString(10)` для `'John'` будет прочитан как `'John\0\0\0\0\0\0\0\0\0'`. - * Когда используется `PreparedStatement#setBytes`, значение будет преобразовано в `unhex('')`, а затем считано как `String`. + * Когда используется `PreparedStatement#setBytes`, значение будет преобразовано в `unhex('')`, а затем интерпретировано как `String`. * Строки хранятся в кодировке UTF-8. **Типы даты и времени** - | Тип в ClickHouse | Совместим с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | - | ---------------- | -------------- | ------------- | ------------------ | ----------------------------- | ----------------------------- | - | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | - | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | - | Time | ✅ | TIME | java.sql.Time | новый тип / не поддерживается | новый тип / не поддерживается | - | Time64 | ✅ | TIME | java.sql.Time | новый тип/не поддерживается | новый тип/не поддерживается | + | Тип ClickHouse | Совместим с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | + | -------------- | -------------- | ------------- | ------------------ | ----------------------------- | ----------------------------- | + | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | + | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | + | Time | ✅ | TIME | java.sql.Time | новый тип / не поддерживается | новый тип / не поддерживается | + | Time64 | ✅ | TIME | java.sql.Time | новый тип / не поддерживается | новый тип / не поддерживается | * `Time` и `Time64` поддерживаются в V2 только как новые типы данных. - * `DateTime` и `DateTime64` сопоставляются с `java.sql.Timestamp` для обеспечения лучшей совместимости с JDBC. + * `DateTime` и `DateTime64` сопоставляются с `java.sql.Timestamp` для лучшей совместимости с JDBC. **Типы Enum** - | Тип ClickHouse | Совместим с V1 | JDBC Type (V2) | Java Class (V2) | JDBC Type (V1) | Java Class (V1) | - | -------------- | -------------- | -------------- | ---------------- | -------------- | ---------------- | - | Enum | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | - | Enum8 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | - | Enum16 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | + | Тип ClickHouse | Совместимо с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | + | -------------- | --------------- | ------------- | ---------------- | ------------- | ---------------- | + | Enum | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | + | Enum8 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | + | Enum16 | ✅ | VARCHAR | java.lang.String | OTHER | java.lang.String | **Вложенные типы** - | Тип ClickHouse | Совместимость с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | - | -------------- | ------------------ | --------------- | --------------- | ------------- | ------------------------------------- | - | Array | ❌ | ARRAY | java.sql.Array | ARRAY | Object[] или массив примитивных типов | - | Tuple | ❌ | OTHER | Object[] | STRUCT | java.sql.Struct | - | Map | ❌ | JAVA_OBJECT | java.util.Map | STRUCT | java.util.Map | - | Nested | ❌ | ARRAY | java.sql.Array | STRUCT | java.sql.Struct | + | Тип ClickHouse | Совместим с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | + | -------------- | -------------- | --------------- | --------------- | ------------- | ------------------------------------- | + | Array | ❌ | ARRAY | java.sql.Array | ARRAY | Object[] или массив примитивных типов | + | Tuple | ❌ | OTHER | Object[] | STRUCT | java.sql.Struct | + | Map | ❌ | JAVA_OBJECT | java.util.Map | STRUCT | java.util.Map | + | Nested | ❌ | ARRAY | java.sql.Array | STRUCT | java.sql.Struct | - * В V2 `Array` по умолчанию сопоставляется с `java.sql.Array` для совместимости с JDBC. Это также делается, чтобы предоставить более подробную информацию о возвращаемом значении массива, что полезно для вывода типов. + * В V2 тип `Array` по умолчанию сопоставляется типу `java.sql.Array` для совместимости с JDBC. Это также позволяет получить больше информации о возвращаемом значении массива, что полезно для вывода типов. * В V2 `Array` реализует метод `getResultSet()`, который возвращает объект `java.sql.ResultSet` с тем же содержимым, что и исходный массив. - * V1 использует `STRUCT` для `Map`, но всегда возвращает объект типа `java.util.Map`. V2 исправляет это за счёт сопоставления `Map` с `JAVA_OBJECT`. - * V1 использует `STRUCT` для `Tuple`, но всегда возвращает объект типа `List`. V2 сопоставляет `Tuple` с `OTHER` и по умолчанию возвращает `Object[]`. - * V2 добавляет `com.clickhouse.data.Tuple#Tuple` для записи кортежей. Это упрощает определение, является ли значение кортежем или массивом. - * Методы `PreparedStatement#setBytes` и `ResultSet#getBytes` нельзя применять к типам коллекций. Они предназначены для работы с бинарными строками. - * Обычно для записи и чтения значений типа `Array` используется `java.sql.Array`. Драйвер JDBC полностью поддерживает этот механизм. - * В V2 тип `Nested` сопоставляется с типом `Array` и представляется в виде массива кортежей. - * V2 имеет частичную поддержку `java.sql.Struct`, поскольку этот тип очень похож на Array и не поддерживает пары ключ‑значение. `Struct` можно использовать для записи значений типа `Tuple`. + * V1 использует `STRUCT` для `Map`, но всегда возвращает объект `java.util.Map`. V2 исправляет это путём сопоставления `Map` с `JAVA_OBJECT`. + * V1 использует `STRUCT` для `Tuple`, но всегда возвращает объект `List`. V2 отображает `Tuple` в `OTHER` и по умолчанию возвращает `Object[]`. + * V2 добавляет `com.clickhouse.data.Tuple#Tuple` для записи кортежей. Это упрощает определение того, является ли значение кортежем или массивом. + * `PreparedStatement#setBytes` и `ResultSet#getBytes` не могут использоваться с коллекционными типами. Эти методы предназначены для работы с двоичными строками. + * Обычно для записи и чтения типов `Array` используется `java.sql.Array`. Драйвер JDBC полностью поддерживает такой способ работы. + * В V2 `Nested` сопоставляется с `Array` и представляется в виде массива кортежей. + * V2 имеет частичную поддержку `java.sql.Struct`, поскольку он очень похож на тип Array и не поддерживает пары ключ‑значение. `Struct` можно использовать для записи значений типа `Tuple`. **Геотипы** - | Тип ClickHouse | Совместимость с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | - | -------------- | ------------------ | ------------- | --------------- | ------------- | --------------- | - | Point | ✅ | OTHER | double[] | OTHER | double[] | - | Ring | ✅ | OTHER | double[][] | OTHER | double[][] | - | Polygon | ✅ | OTHER | double[][][] | OTHER | double[][][] | - | MultiPolygon | ✅ | OTHER | double[][][][] | OTHER | double[][][][] | + | Тип ClickHouse | Совместим с V1 | Тип JDBC (V2) | Класс Java (V2) | Тип JDBC (V1) | Класс Java (V1) | + | -------------- | -------------- | ------------- | --------------- | ------------- | --------------- | + | Point | ✅ | OTHER | double[] | OTHER | double[] | + | Ring | ✅ | OTHER | double[][] | OTHER | double[][] | + | Polygon | ✅ | OTHER | double[][][] | OTHER | double[][][] | + | MultiPolygon | ✅ | OTHER | double[][][][] | OTHER | double[][][][] | **Типы Nullable и LowCardinality** - * `Nullable` и `LowCardinality` — это специальные типы, которые оборачивают другие типы. - * В V2 в этих типах изменений нет. + * `Nullable` и `LowCardinality` — это специальные типы-обёртки для других типов. + * В V2 эти типы не изменялись. **Специальные типы** @@ -784,17 +818,17 @@ import TabItem from '@theme/TabItem'; | Dynamic | ❌ | OTHER | java.lang.Object | не поддерживается | не поддерживается | | Variant | ❌ | OTHER | java.lang.Object | не поддерживается | не поддерживается | - * V1 использует `VARCHAR` для `UUID`, но при этом всегда возвращает объект `java.util.UUID`. V2 исправляет это, сопоставляя `UUID` с `OTHER` и также возвращая объект `java.util.UUID`. - * V1 использует `VARCHAR` для `IPv4` и `IPv6`, но всегда возвращает объекты `java.net.Inet4Address` и `java.net.Inet6Address`. V2 исправляет это, сопоставляя `IPv4` и `IPv6` с `OTHER` и тоже возвращает объекты `java.net.Inet4Address` и `java.net.Inet6Address`. - * `Dynamic` и `Variant` являются новыми типами в V2. В V1 они не поддерживаются. - * Тип `JSON` построен на основе типа `Dynamic`. Поэтому он поддерживается только в V2. + * V1 использует `VARCHAR` для `UUID`, но при этом всегда возвращает объект `java.util.UUID`. V2 исправляет это, сопоставляя `UUID` с `OTHER` и возвращая объект `java.util.UUID`. + * V1 использует `VARCHAR` для `IPv4` и `IPv6`, но всегда возвращает объекты `java.net.Inet4Address` и `java.net.Inet6Address`. V2 исправляет это, сопоставляя `IPv4` и `IPv6` с `OTHER` и возвращает объекты `java.net.Inet4Address` и `java.net.Inet6Address`. + * `Dynamic` и `Variant` — новые типы в V2; в V1 не поддерживаются. + * Тип `JSON` основан на типе `Dynamic`, поэтому он доступен только в V2. * Значения IPv4 и IPv6 можно считывать в виде массива байт (`byte[]`), используя метод `getBytes(columnIndex)`. Однако рекомендуется использовать специализированные классы для этих типов. - * V2 не поддерживает чтение IP‑адресов в виде числовых значений, поскольку преобразование лучше реализовано в классах InetAddress. + * V2 не поддерживает чтение IP-адресов в виде числовых значений, поскольку преобразование лучше реализовано в классах InetAddress. ### Изменения метаданных базы данных \{#database-metadata-changes\} * В V2 для обозначения баз данных используется только термин `Schema`. Термин `Catalog` зарезервирован для будущего использования. - * V2 возвращает `false` для `DatabaseMetaData.supportsTransactions()` и `DatabaseMetaData.supportsSavepoints()`. Это поведение будет изменено в последующих версиях. + * V2 возвращает `false` для `DatabaseMetaData.supportsTransactions()` и `DatabaseMetaData.supportsSavepoints()`. Это будет изменено в ходе дальнейшей разработки. @@ -878,7 +912,7 @@ import TabItem from '@theme/TabItem'; **Синтаксис URL**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2][#tag1,tag2,...]`, например: - * `jdbc:ch://localhost` — то же самое, что и `jdbc:clickhouse:http://localhost:8123` + * `jdbc:ch://localhost` эквивалентен `jdbc:clickhouse:http://localhost:8123` * `jdbc:ch:https://localhost` эквивалентен `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT` * `jdbc:ch:grpc://localhost` эквивалентен `jdbc:clickhouse:grpc://localhost:9100` @@ -888,12 +922,12 @@ import TabItem from '@theme/TabItem'; | -------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `continueBatchOnError` | `false` | Определяет, следует ли продолжать обработку пакета при возникновении ошибки | | `createDatabaseIfNotExist` | `false` | Определяет, следует ли создавать базу данных, если она ещё не существует | - | `custom_http_headers` | | пользовательские HTTP-заголовки, перечисленные через запятую, например: `User-Agent=client1,X-Gateway-Id=123` | - | `custom_http_params` | | пользовательские параметры HTTP-запроса, разделённые запятыми, например: `extremes=0,max_result_rows=100` | + | `custom_http_headers` | | пользовательские HTTP-заголовки, разделённые запятыми, например: `User-Agent=client1,X-Gateway-Id=123` | + | `custom_http_params` | | пользовательские параметры HTTP-запроса, перечисленные через запятую, например: `extremes=0,max_result_rows=100` | | `nullAsDefault` | `0` | `0` - обрабатывать значение NULL как есть и возбуждать исключение при попытке вставить NULL в столбец без типа Nullable; `1` - обрабатывать значение NULL как есть и отключать проверку на NULL при вставке; `2` - заменять NULL на значение по умолчанию для соответствующего типа данных как при выполнении запроса, так и при вставке | | `jdbcCompliance` | `true` | Определяет, следует ли поддерживать стандартные синхронные операции UPDATE/DELETE и псевдотранзакции | | `typeMappings` | | Позволяет настроить сопоставление между типом данных ClickHouse и классом Java, что повлияет на результат работы как [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-), так и [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-). Например: `UInt128=java.lang.String,UInt256=java.lang.String` | - | `wrapperObject` | `false` | Определяет, должен ли [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) возвращать объекты java.sql.Array / java.sql.Struct для Array / Tuple. | + | `wrapperObject` | `false` | Определяет, должен ли [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) возвращать java.sql.Array / java.sql.Struct для типов Array / Tuple. | Примечание: дополнительную информацию см. в разделе [конфигурация JDBC](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java). @@ -905,7 +939,7 @@ import TabItem from '@theme/TabItem'; * AggregatedFunction — :warning: не поддерживает конструкции вида `SELECT * FROM table ...` * Decimal — `SET output_format_decimal_trailing_zeros=1` в 21.9+ для единообразия вывода - * Enum — может интерпретироваться и как строка, и как целое число + * Enum может интерпретироваться и как строка, и как целое число * UInt64 — сопоставляется с `long` (в client-v1) ::: @@ -971,7 +1005,7 @@ import TabItem from '@theme/TabItem'; } ``` - * [input function doc](/sql-reference/table-functions/input/) по возможности + * [input function doc](/sql-reference/table-functions/input/) когда это возможно ### Вставка с плейсхолдерами \{#insert-with-placeholders\} @@ -1083,8 +1117,8 @@ import TabItem from '@theme/TabItem'; | Имя | Значение по умолчанию | Допустимые значения | Описание | | -------------------- | --------------------- | ------------------- | --------------------------------------------------------------------------- | - | `ssl` | false | true, false | Включать ли SSL/TLS для соединения | - | `sslmode` | strict | strict, none | Проверять ли сертификат SSL/TLS | + | `ssl` | false | true, false | Следует ли включать SSL/TLS для подключения | + | `sslmode` | strict | strict, none | Следует ли проверять сертификат SSL/TLS | | `sslrootcert` | | | Путь к файлу корневых сертификатов SSL/TLS | | `sslcert` | | | Путь к файлу сертификата SSL/TLS | | `sslkey` | | | RSA-ключ в формате PKCS#8 | @@ -1112,9 +1146,9 @@ import TabItem from '@theme/TabItem'; } ``` - ## Устранение таймаута JDBC при крупных вставках данных \{#v07-resolving-jdbc-timeout-on-large-inserts\} + ## Устранение таймаута JDBC при больших вставках данных \{#v07-resolving-jdbc-timeout-on-large-inserts\} - При выполнении крупных вставок данных в ClickHouse с длительным временем выполнения вы можете столкнуться с ошибками JDBC из‑за тайм‑аута, например: + При выполнении больших вставок в ClickHouse с длительным временем выполнения могут возникать ошибки тайм-аута JDBC, такие как: ```plaintext Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] @@ -1134,9 +1168,9 @@ import TabItem from '@theme/TabItem'; ### Linux \{#v07-linux\} - В Linux одних только эквивалентных настроек может оказаться недостаточно для устранения проблемы. Потребуются дополнительные шаги, поскольку Linux по‑другому обрабатывает параметры keep-alive для сокетов. Выполните следующие действия: + В Linux одних только эквивалентных настроек может быть недостаточно для устранения проблемы. Из‑за особенностей того, как Linux обрабатывает параметры keep-alive для сокетов, требуются дополнительные действия. Выполните следующие шаги: - 1. Настройте следующие параметры ядра Linux в `/etc/sysctl.conf` или соответствующем конфигурационном файле: + 1. Настройте следующие параметры ядра Linux в `/etc/sysctl.conf` или другом конфигурационном файле: * `net.inet.tcp.keepidle`: 60000 * `net.inet.tcp.keepintvl`: 45000 @@ -1153,7 +1187,7 @@ import TabItem from '@theme/TabItem'; sudo sysctl -p ``` - После установки этих параметров необходимо убедиться, что ваш клиент включает опцию Keep Alive для сокета: + После настройки этих параметров необходимо убедиться, что ваш клиент включает опцию Keep Alive для сокета: ```java properties.setProperty("socket_keepalive", "true"); diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/misc/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/misc/index.md index a62b8f91870..99e77e7e636 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/misc/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/misc/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/misc -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['визуальные интерфейсы', 'GUI', 'прокси', 'сторонние интеграции'] title: 'Инструменты' description: 'Посадочная страница раздела «Инструменты»' doc_type: 'landing-page' diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md index b165fda1a27..b9b92076f5a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -38,8 +38,6 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous В этой таблице сравнивается производительность запросов [TPC-H] между обычными таблицами PostgreSQL и таблицами pg_clickhouse, подключёнными к ClickHouse, при коэффициенте масштабирования 1; ✔︎ означает полное проталкивание вычислений (full pushdown), а дефис — отмену запроса по истечении 1 минуты. Все тесты запускались на MacBook Pro M4 Max с 36 ГБ ОЗУ. -{/* cd dev/tpch && make ch && make pg && make run */ } - | Запрос | PostgreSQL | pg_clickhouse | Pushdown | | ----------: | ---------: | ----------------: | :------: | | [Запрос 1] | 4693 ms | 268 ms | ✔︎ | @@ -52,7 +50,7 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous | [Запрос 8] | 342 ms | 156 ms | ✔︎ | | [Запрос 9] | 3094 ms | 298 ms | ✔︎ | | [Запрос 10] | 581 ms | 197 ms | ✔︎ | -| [Запрос 11] | 212 ms | 24 ms | ✔︎ | +| [Запрос 11] | 212 ms | 24 ms | | | [Запрос 12] | 1116 ms | 84 ms | ✔︎ | | [Запрос 13] | 958 ms | 1368 ms | | | [Запрос 14] | 181 ms | 73 ms | ✔︎ | @@ -65,7 +63,6 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous | [Запрос 21] | 1349 ms | 4434 ms | | | [Запрос 22] | 258 ms | 1415 ms | | - ### Сборка из исходного кода \{#compile-from-source\} #### Общий Unix \{#general-unix\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md index bdc37076e92..75d4d46a463 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -362,7 +362,7 @@ DROP FOREIGN TABLE uact CASCADE; ## Справочник по SQL DML \{#dml-sql-reference\} -SQL-выражения [DML], приведённые ниже, могут использовать pg_clickhouse. Примеры зависят от следующих таблиц ClickHouse, созданных скриптом [make-logs.sql]: +SQL-выражения [DML], приведённые ниже, могут использовать pg_clickhouse. Примеры зависят от следующих таблиц ClickHouse: ```sql CREATE TABLE logs ( @@ -577,6 +577,15 @@ try=# EXECUTE avg_durations_between_dates('2025-12-09', '2025-12-13'); (5 rows) ``` +:::warning +Параметризованное выполнение не позволяет [http-драйверу](#create-server) +корректно преобразовывать часовые пояса для значений `DateTime` в версиях ClickHouse до 25.8, +когда [основная ошибка] была [исправлена]. Обратите внимание, что PostgreSQL иногда +использует параметризованный план запроса даже без `PREPARE`. Для любых запросов, +которым требуется точное преобразование часовых поясов и когда обновление до 25.8 или +более новой версии невозможно, вместо этого используйте [бинарный драйвер](#create-server). +::: + pg_clickhouse, как и обычно, проталкивает агрегации на нижележащий уровень, что видно из подробного вывода [EXPLAIN](#explain): ```pgsql @@ -676,7 +685,8 @@ pg_clickhouse при первом использовании любой из SET pg_clickhouse.session_settings = 'join_use_nulls 1, final 1'; ``` -По умолчанию — `join_use_nulls 1`. Установите пустую строку, чтобы перейти к использованию настроек сервера ClickHouse. +По умолчанию — `join_use_nulls 1`. Установите пустую строку, чтобы перейти к использованию +настроек сервера ClickHouse. ```sql SET pg_clickhouse.session_settings = ''; @@ -694,7 +704,8 @@ SET pg_clickhouse.session_settings = 'join_algorithm grace_hash\,hash'; SET pg_clickhouse.session_settings = $$join_algorithm 'grace_hash,hash'$$; ``` -Если для вас важна читаемость и нужно задать много параметров, используйте несколько строк, например: +Если для вас важна читаемость и нужно задать много параметров, используйте несколько +строк, например: ```sql SET pg_clickhouse.session_settings TO $$ @@ -715,7 +726,14 @@ SET pg_clickhouse.session_settings TO $$ $$; ``` -pg_clickhouse не проверяет настройки, а передаёт их в ClickHouse +Некоторые настройки будут игнорироваться, если они могут помешать +работе самого pg_clickhouse. К ним относятся: + +* `date_time_output_format`: HTTP-драйвер требует, чтобы он был равен «iso» +* `format_tsv_null_representation`: HTTP-драйвер требует значение по умолчанию +* `output_format_tsv_crlf_end_of_line`: HTTP-драйвер требует значение по умолчанию + +В остальном pg_clickhouse не проверяет настройки, а передаёт их в ClickHouse для каждого запроса. Тем самым он поддерживает все настройки для каждой версии ClickHouse. Обратите внимание, что pg_clickhouse должен быть загружен до задания @@ -776,19 +794,19 @@ shared_preload_libraries = pg_clickhouse Полезно для экономии памяти и снижения накладных расходов на загрузку в каждом сеансе, но при обновлении библиотеки требуется перезапуск кластера. -## Справочник функций и операторов \{#function-and-operator-reference\} - -### Типы данных \{#data-types\} +## Типы данных \{#data-types\} pg_clickhouse сопоставляет следующие типы данных ClickHouse с типами данных -PostgreSQL: +PostgreSQL. [IMPORT FOREIGN SCHEMA](#import-foreign-schema) использует первый тип в +определении столбца PostgreSQL при импорте столбцов; дополнительные типы могут указываться в +командах [CREATE FOREIGN TABLE](#create-foreign-table): | ClickHouse | PostgreSQL | Примечания | -| -----------|------------------|-------------------------------------------------| +|------------|------------------|-------------------------------------------------| | Bool | boolean | | | Date | date | | | Date32 | date | | -| DateTime | timestamp | | +| DateTime | timestamptz | | | Decimal | numeric | | | Float32 | real | | | Float64 | double precision | | @@ -799,13 +817,137 @@ PostgreSQL: | Int64 | bigint | | | Int8 | smallint | | | JSON | jsonb | только для HTTP-движка | -| String | text | | +| String | text, bytea | | | UInt16 | integer | | | UInt32 | bigint | | | UInt64 | bigint | Ошибка для значений > максимального значения BIGINT | | UInt8 | smallint | | | UUID | uuid | | +Дополнительные замечания и подробности приведены ниже. + +### BYTEA \{#bytea\} + +ClickHouse не предоставляет эквивалента типа PostgreSQL [BYTEA], однако +позволяет хранить произвольные байты в типе [String]. В общем случае строки ClickHouse +следует сопоставлять с типом PostgreSQL [TEXT], но при работе с двоичными данными используйте +тип [BYTEA]. Пример: + +```sql +-- Create clickHouse table with String columns. +SELECT clickhouse_raw_query($$ + CREATE TABLE bytes ( + c1 Int8, c2 String, c3 String + ) ENGINE = MergeTree ORDER BY (c1); +$$); + +-- Create foreign table with BYTEA columns. +CREATE FOREIGN TABLE bytes ( + c1 int, + c2 BYTEA, + c3 BYTEA +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Insert binary data into the foreign table. +INSERT INTO bytes +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the results. +SELECT * FROM bytes; +``` + +Последний запрос `SELECT` выведет: + +```pgsql + c1 | c2 | c3 +----+------------------------------------------------------------+------------------------------------ + 1 | \x1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | \xae3b28cde02542f81acce8783245430d + 2 | \x5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | \x23e7c6cacb8383f878ad093b0027d72b + 3 | \x53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | \x7e969132fc656148b97b6a2ee8bc83c1 + 4 | \x4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | \x8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +Обратите внимание: если в столбцах ClickHouse присутствуют нулевые байты, внешняя +таблица, использующая столбцы [TEXT], не будет выводить правильные значения: + +```sql +-- Create foreign table with TEXT columns. +CREATE FOREIGN TABLE texts ( + c1 int, + c2 TEXT, + c3 TEXT +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Encode binary data as hex. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +Вывод: + +```pgsql + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b + 3 | 53ac2c1fa83c8f64603fe9568d883331 | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +Обратите внимание, что вторая и третья строки содержат усечённые значения. Это связано с тем, что +PostgreSQL использует строки, завершающиеся нулевым символом, и не поддерживает нулевые символы внутри +строк. + +Попытка вставить бинарные значения в столбцы [TEXT] завершится успешно и будет +работать как ожидается: + +```sql +-- Insert via text columns: +TRUNCATE texts; +INSERT INTO texts +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the data. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +Текстовые столбцы будут корректными: + +```pgdsql + + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b0027d72b + 3 | 53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +Но при чтении их как [BYTEA] этого не произойдёт: + +```pgsql +# SELECT * FROM bytes; + c1 | c2 | c3 +----+------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------ + 1 | \x5c783162663766306363383231643331313738363136613535613865306335323637373733353339376364646536663431353361396664336437 | \x5c786165336232386364653032353432663831616363653837383332343534333064 + 2 | \x5c783566366539653132636438353932373132653633383031366634623161326537333233306565343064623439386330663062316463383431 | \x5c783233653763366361636238333833663837386164303933623030323764373262 + 3 | \x5c783533616332633166613833633866363436303366653935363864383833333331303037643632383164653333306134623565373238663965 | \x5c783765393639313332666336353631343862393762366132656538626338336331 + 4 | \x5c783465336332653463623735343261343531373361386461633933396464633462633735323032653334326562633736396230663564613266 | \x5c783865663330663434633635343830643132623635306162366232623034323435 +(4 rows) +``` + +:::tip +Как правило, используйте столбцы [TEXT] только для закодированных строк, а столбцы [BYTEA] — +только для двоичных данных и никогда не используйте их взаимозаменяемо. +::: + + +## Справочник функций и операторов \{#function-and-operator-reference\} + ### Функции \{#functions\} Эти функции предоставляют интерфейс для выполнения запросов к базе данных ClickHouse. @@ -890,6 +1032,7 @@ SELECT clickhouse_raw_query( * `btrim`: [trimBoth](https://clickhouse.com/docs/sql-reference/functions/string-functions#trimboth) * `strpos`: [position](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#position) * `regexp_like`: [match](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#match) +* `md5`: [MD5](https://clickhouse.com/docs/sql-reference/functions/hash-functions#MD5) ### Пользовательские функции \{#custom-functions\} @@ -1046,9 +1189,25 @@ Copyright (c) 2025-2026, ClickHouse "Документация PostgreSQL: строковые константы в долларовых кавычках" [library preloading]: https://www.postgresql.org/docs/18/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD + "Документация PostgreSQL: предварительная загрузка разделяемых библиотек" -"Документация PostgreSQL: предварительная загрузка разделяемых библиотек - [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES +[PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "Документация PostgreSQL: примечания к PREPARE" - [query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse - "Документация ClickHouse: альтернативы подготовленным запросам в ClickHouse" \ No newline at end of file + +[query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse + "Документация ClickHouse: альтернативы подготовленным запросам в ClickHouse" + +[underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 + "ClickHouse/ClickHouse#85847 Некоторые запросы в multipart-формах не читают настройки" + +[fixed]: https://github.com/ClickHouse/ClickHouse/pull/85570 + "ClickHouse/ClickHouse#85570 исправление обработки HTTP с multipart" + +[BYTEA]: https://www.postgresql.org/docs/current/datatype-binary.html + "Документация PostgreSQL: двоичные типы данных" + +[String]: https://clickhouse.com/docs/sql-reference/data-types/string + "Документация ClickHouse: String" + +[TEXT]: https://www.postgresql.org/docs/current/datatype-character.html + "Документация PostgreSQL: символьные типы" \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md index 67da18d66f7..97926c8e939 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md @@ -228,54 +228,54 @@ taxi=# \det+ taxi.* ```pgsql taxi=# \d taxi.trips - Foreign table "taxi.trips" - Column | Type | Collation | Nullable | Default | FDW options ------------------------+-----------------------------+-----------+----------+---------+------------- - trip_id | bigint | | not null | | - vendor_id | text | | not null | | - pickup_date | date | | not null | | - pickup_datetime | timestamp without time zone | | not null | | - dropoff_date | date | | not null | | - dropoff_datetime | timestamp without time zone | | not null | | - store_and_fwd_flag | smallint | | not null | | - rate_code_id | smallint | | not null | | - pickup_longitude | double precision | | not null | | - pickup_latitude | double precision | | not null | | - dropoff_longitude | double precision | | not null | | - dropoff_latitude | double precision | | not null | | - passenger_count | smallint | | not null | | - trip_distance | double precision | | not null | | - fare_amount | numeric(10,2) | | not null | | - extra | numeric(10,2) | | not null | | - mta_tax | numeric(10,2) | | not null | | - tip_amount | numeric(10,2) | | not null | | - tolls_amount | numeric(10,2) | | not null | | - ehail_fee | numeric(10,2) | | not null | | - improvement_surcharge | numeric(10,2) | | not null | | - total_amount | numeric(10,2) | | not null | | - payment_type | text | | not null | | - trip_type | smallint | | not null | | - pickup | character varying(25) | | not null | | - dropoff | character varying(25) | | not null | | - cab_type | text | | not null | | - pickup_nyct2010_gid | smallint | | not null | | - pickup_ctlabel | real | | not null | | - pickup_borocode | smallint | | not null | | - pickup_ct2010 | text | | not null | | - pickup_boroct2010 | text | | not null | | - pickup_cdeligibil | text | | not null | | - pickup_ntacode | character varying(4) | | not null | | - pickup_ntaname | text | | not null | | - pickup_puma | integer | | not null | | - dropoff_nyct2010_gid | smallint | | not null | | - dropoff_ctlabel | real | | not null | | - dropoff_borocode | smallint | | not null | | - dropoff_ct2010 | text | | not null | | - dropoff_boroct2010 | text | | not null | | - dropoff_cdeligibil | text | | not null | | - dropoff_ntacode | character varying(4) | | not null | | - dropoff_ntaname | text | | not null | | - dropoff_puma | integer | | not null | | + Foreign table "taxi.trips" + Column | Type | Collation | Nullable | Default | FDW options +-----------------------+--------------------------+-----------+----------+---------+------------- + trip_id | bigint | | not null | | + vendor_id | text | | not null | | + pickup_date | date | | not null | | + pickup_datetime | timestamp with time zone | | not null | | + dropoff_date | date | | not null | | + dropoff_datetime | timestamp with time zone | | not null | | + store_and_fwd_flag | smallint | | not null | | + rate_code_id | smallint | | not null | | + pickup_longitude | double precision | | not null | | + pickup_latitude | double precision | | not null | | + dropoff_longitude | double precision | | not null | | + dropoff_latitude | double precision | | not null | | + passenger_count | smallint | | not null | | + trip_distance | double precision | | not null | | + fare_amount | numeric(10,2) | | not null | | + extra | numeric(10,2) | | not null | | + mta_tax | numeric(10,2) | | not null | | + tip_amount | numeric(10,2) | | not null | | + tolls_amount | numeric(10,2) | | not null | | + ehail_fee | numeric(10,2) | | not null | | + improvement_surcharge | numeric(10,2) | | not null | | + total_amount | numeric(10,2) | | not null | | + payment_type | text | | not null | | + trip_type | smallint | | not null | | + pickup | character varying(25) | | not null | | + dropoff | character varying(25) | | not null | | + cab_type | text | | not null | | + pickup_nyct2010_gid | smallint | | not null | | + pickup_ctlabel | real | | not null | | + pickup_borocode | smallint | | not null | | + pickup_ct2010 | text | | not null | | + pickup_boroct2010 | text | | not null | | + pickup_cdeligibil | text | | not null | | + pickup_ntacode | character varying(4) | | not null | | + pickup_ntaname | text | | not null | | + pickup_puma | integer | | not null | | + dropoff_nyct2010_gid | smallint | | not null | | + dropoff_ctlabel | real | | not null | | + dropoff_borocode | smallint | | not null | | + dropoff_ct2010 | text | | not null | | + dropoff_boroct2010 | text | | not null | | + dropoff_cdeligibil | text | | not null | | + dropoff_ntacode | character varying(4) | | not null | | + dropoff_ntaname | text | | not null | | + dropoff_puma | integer | | not null | | Server: taxi_srv FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') ``` @@ -348,7 +348,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 27.266 ms ``` -* Рассчитайте ежедневное число посадок в каждом районе: +* Рассчитайте ежедневное количество поездок в каждом районе: ```pgsql taxi=# SELECT @@ -375,8 +375,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 30.978 ms ``` -* Вычислите продолжительность каждой поездки в минутах, затем сгруппируйте результаты по - продолжительности поездки: +* Рассчитайте продолжительность каждой поездки в минутах, затем сгруппируйте результаты по продолжительности поездки: ```pgsql taxi=# SELECT @@ -426,9 +425,11 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 36.895 ms ``` -* Выберите поездки до аэропортов LaGuardia или JFK: +* Установите часовой пояс отображения на Нью‑Йорк и выберите поездки до аэропортов LaGuardia или JFK: ```pgsql + taxi=# SET timezone = 'America/New_York'; + SET taxi=# SELECT pickup_datetime, dropoff_datetime, @@ -446,13 +447,13 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') WHERE dropoff_nyct2010_gid IN (132, 138) ORDER BY pickup_datetime LIMIT 5; - pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour - ---------------------+---------------------+--------------+---------------------+----------------------+--------------+------+-----+------ - 2015-07-01 00:04:14 | 2015-07-01 00:15:29 | 13.30 | -34 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:09:42 | 2015-07-01 00:12:55 | 6.80 | 50 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:23:04 | 2015-07-01 00:24:39 | 4.80 | -125 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:27:51 | 2015-07-01 00:39:02 | 14.72 | -101 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:32:03 | 2015-07-01 00:55:39 | 39.34 | 48 | 138 | LGA | 2015 | 1 | 0 + pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour + ------------------------+------------------------+--------------+---------------------+----------------------+--------------+------+-----+------ + 2015-06-30 20:04:14-04 | 2015-06-30 20:15:29-04 | 13.30 | -34 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:09:42-04 | 2015-06-30 20:12:55-04 | 6.80 | 50 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:23:04-04 | 2015-06-30 20:24:39-04 | 4.80 | -125 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:27:51-04 | 2015-06-30 20:39:02-04 | 14.72 | -101 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:32:03-04 | 2015-06-30 20:55:39-04 | 39.34 | 48 | 138 | LGA | 2015 | 30 | 20 (5 rows) Time: 17.450 ms @@ -502,7 +503,7 @@ Manhattan, Queens и Staten Island), а также с Newark Airport (EWR). Установка `LIFETIME` в 0 отключает автоматическое обновление, чтобы избежать лишнего трафика к нашему бакету S3. В других случаях вы можете настроить это по‑другому. Подробности см. в разделе [Refreshing dictionary - data using LIFETIME](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime). + data using LIFETIME](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime). ::: 2. Теперь импортируйте его: @@ -643,7 +644,7 @@ Manhattan, Queens и Staten Island), а также с Newark Airport (EWR). [EXPLAIN]: https://www.postgresql.org/docs/current/sql-explain.html "SQL-команды: EXPLAIN" -[dictionary]: /sql-reference/dictionaries/index.md +[dictionary]: /sql-reference/statements/create/dictionary [PGXN]: https://pgxn.org/dist/pg_clickhouse "pg_clickhouse на PGXN" @@ -656,5 +657,5 @@ Manhattan, Queens и Staten Island), а также с Newark Airport (EWR). [Postgres image]: https://hub.docker.com/_/postgres "Postgres OCI‑образ на Docker Hub" -[Refreshing dictionary data using LIFETIME]: /sql-reference/dictionaries/index.md#refreshing-dictionary-data-using-lifetime +[Refreshing dictionary data using LIFETIME]: /sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime "Документация ClickHouse: обновление данных словаря с помощью LIFETIME" \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/index.md index 97ce3b5d8de..87c6409fa4b 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/integrations/tools/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/tools -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['Интеграции ClickHouse', 'SQL-клиенты', 'интеграции данных', 'инструменты', 'сторонние инструменты'] title: 'Инструменты' description: 'Основная страница раздела «Инструменты»' doc_type: 'landing-page' @@ -12,4 +12,4 @@ doc_type: 'landing-page' |-----------|---------------------------------------------------------------------------------------------------------------------------------| | [SQL Client](/integrations/sql-clients) | Как интегрировать ClickHouse с различными распространёнными инструментами управления базами данных, анализа и визуализации | | [Data Integrations](/integrations/tools/data-integrations) | Интеграции данных с ClickHouse | -| [Misc](/integrations/audit-splunk) | Прочие инструменты для ClickHouse | \ No newline at end of file +| [Misc](/integrations/misc) | Прочие инструменты для ClickHouse | \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/caches.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/caches.md index 79b520503ab..208e7177920 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/caches.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/caches.md @@ -27,7 +27,7 @@ doc_type: 'reference' * Кэш [индекса векторного сходства](../engines/table-engines/mergetree-family/annindexes.md). * Кэш [текстового индекса](../engines/table-engines/mergetree-family/textindexes.md#caching). * Кэш схем [формата Avro](/interfaces/formats/Avro). -* Кэш данных [словарей](../sql-reference/dictionaries/index.md). +* Кэш данных [словарей](../sql-reference/statements/create/dictionary/index.md). * Кэш инференса схем. * [Кэш файловой системы](storing-data.md) поверх S3, Azure, локальных и других дисков. * [Пользовательский (userspace) кэш страниц](/operations/userspace-page-cache). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md index 44754a7fa47..ff8f4094ee8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md @@ -52,14 +52,16 @@ SETTINGS allow_introspection_functions = 1 * Используйте функции интроспекции `addressToLine`, `addressToLineWithInlines`, `addressToSymbol` и `demangle` ([introspection functions](../../sql-reference/functions/introspection.md)), чтобы получить имена функций и их позиции в коде ClickHouse. Чтобы получить профиль для какого-либо запроса, вам нужно агрегировать данные из таблицы `trace_log`. Вы можете агрегировать данные по отдельным функциям или по целым стекам трассировки. -Если вам нужно визуализировать информацию из `trace_log`, попробуйте [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) и [speedscope](https://github.com/laplab/clickhouse-speedscope). +Если вам нужно визуализировать информацию из `trace_log`, попробуйте [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) и [speedscope](https://www.speedscope.app). ## Пример \{#example\} В этом примере мы: * Фильтруем данные `trace_log` по идентификатору запроса и текущей дате. + * Агрегируем по стек-трейсу. + * Используя функции интроспекции, получим отчет о следующем: * Именах символов и соответствующих им функциях исходного кода. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md index 301ad68d49f..d6ac1f187b1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md @@ -375,7 +375,7 @@ ClickHouse перезагружает встроенные словари каж ``` -## dictionaries_config \{#dictionaries_config\} +## dictionaries_config \{#dictionaries_config\} Путь к конфигурационному файлу словарей. @@ -386,7 +386,7 @@ ClickHouse перезагружает встроенные словари каж См. также: -* "[Словари](../../sql-reference/dictionaries/index.md)". +* "[Словари](../../sql-reference/statements/create/dictionary/index.md)". **Пример** @@ -1903,12 +1903,14 @@ TCP-порт для защищённого взаимодействия с кл | `select_from_system_db_requires_grant` | Определяет, требует ли запрос `SELECT * FROM system.
    ` каких-либо прав и может ли он выполняться любым пользователем. Если установлено значение `true`, этот запрос требует `GRANT SELECT ON system.
    ` так же, как и для несистемных таблиц. Исключения: несколько системных таблиц (`tables`, `columns`, `databases` и некоторые константные таблицы, такие как `one`, `contributors`) остаются доступными для всех; кроме того, если выдана привилегия `SHOW` (например, `SHOW USERS`), соответствующая системная таблица (то есть `system.users`) будет доступна. | `true` | | `settings_constraints_replace_previous` | Определяет, будет ли ограничение в профиле настроек для некоторой настройки отменять действие предыдущего ограничения (определённого в других профилях) для этой настройки, включая поля, которые не заданы новым ограничением. Также включает тип ограничения `changeable_in_readonly`. | `true` | | `table_engines_require_grant` | Определяет, требуется ли привилегия для создания таблицы с конкретным движком таблицы. | `false` | +| `throw_on_unmatched_row_policies` | Определяет, должно ли при чтении из таблицы выбрасываться исключение, если для таблицы заданы политики по строкам, но ни одна из них не относится к текущему пользователю. | `false` | | `users_without_row_policies_can_read_rows` | Определяет, могут ли пользователи без разрешающих политик по строкам читать строки с помощью запроса `SELECT`. Например, если есть два пользователя A и B, и политика по строкам определена только для A, то при значении параметра `true` пользователь B увидит все строки. При значении `false` пользователь B не увидит ни одной строки. | `true` | Пример: ```xml + true true true true diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md index b09f8fdbecf..e2b03618ca1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md @@ -34,20 +34,22 @@ import SettingsInfoBlock from '@theme/SettingsInfoBlock/SettingsInfoBlock'; Настройки для дополнительных необязательных улучшений в системе управления доступом. -| Setting | Description | Default | -| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -| `on_cluster_queries_require_cluster_grant` | Определяет, требуют ли запросы `ON CLUSTER` привилегию `CLUSTER`. | `true` | -| `role_cache_expiration_time_seconds` | Задаёт количество секунд с момента последнего обращения, в течение которых роль хранится в кэше ролей (Role Cache). | `600` | -| `select_from_information_schema_requires_grant` | Определяет, требует ли `SELECT * FROM information_schema.
    ` каких‑либо привилегий или может выполняться любым пользователем. Если установлено значение `true`, то этот запрос требует `GRANT SELECT ON information_schema.
    ` так же, как и для обычных таблиц. | `true` | -| `select_from_system_db_requires_grant` | Определяет, требует ли `SELECT * FROM system.
    ` каких‑либо привилегий или может выполняться любым пользователем. Если установлено значение `true`, то этот запрос требует `GRANT SELECT ON system.
    ` так же, как и для несистемных таблиц. Исключения: несколько системных таблиц (`tables`, `columns`, `databases` и некоторые константные таблицы, такие как `one`, `contributors`) по‑прежнему доступны всем; а если выдана привилегия `SHOW` (например, `SHOW USERS`), то соответствующая системная таблица (то есть `system.users`) будет доступна. | `true` | -| `settings_constraints_replace_previous` | Определяет, будет ли ограничение в профиле настроек для некоторой настройки отменять действие предыдущего ограничения (определённого в других профилях) для этой настройки, включая поля, которые не заданы новым ограничением. Также включает тип ограничения `changeable_in_readonly`. | `true` | -| `table_engines_require_grant` | Определяет, требуется ли привилегия для создания таблицы с определённым движком таблицы. | `false` | -| `users_without_row_policies_can_read_rows` | Определяет, могут ли пользователи без разрешающих политик строк (ROW POLICY) по-прежнему читать строки с помощью запроса `SELECT`. Например, если есть два пользователя A и B, и политика строк (ROW POLICY) определена только для A, то если этот параметр равен `true`, пользователь B увидит все строки. Если этот параметр равен `false`, пользователь B не увидит ни одной строки. | `true` | +| Setting | Description | Default | +| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| `on_cluster_queries_require_cluster_grant` | Определяет, требуют ли запросы `ON CLUSTER` привилегию `CLUSTER`. | `true` | +| `role_cache_expiration_time_seconds` | Задаёт количество секунд с момента последнего обращения, в течение которых роль хранится в кэше ролей (Role Cache). | `600` | +| `select_from_information_schema_requires_grant` | Определяет, требует ли `SELECT * FROM information_schema.
    ` каких‑либо привилегий или может выполняться любым пользователем. Если установлено значение `true`, то этот запрос требует `GRANT SELECT ON information_schema.
    ` так же, как и для обычных таблиц. | `true` | +| `select_from_system_db_requires_grant` | Определяет, требует ли `SELECT * FROM system.
    ` каких‑лиибо привилегий или может выполняться любым пользователем. Если установлено значение `true`, то этот запрос требует `GRANT SELECT ON system.
    ` так же, как и для несистемных таблиц. Исключения: несколько системных таблиц (`tables`, `columns`, `databases` и некоторые константные таблицы, такие как `one`, `contributors`) по‑прежнему доступны всем; а если выдана привилегия `SHOW` (например, `SHOW USERS`), то соответствующая системная таблица (то есть `system.users`) будет доступна. | `true` | +| `settings_constraints_replace_previous` | Определяет, будет ли ограничение в профиле настроек для некоторой настройки отменять действие предыдущего ограничения (определённого в других профилях) для этой настройки, включая поля, которые не заданы новым ограничением. Также включает тип ограничения `changeable_in_readonly`. | `true` | +| `table_engines_require_grant` | Определяет, требуется ли привилегия для создания таблицы с определённым движком таблицы. | `false` | +| `throw_on_unmatched_row_policies` | Определяет, должно ли при чтении из таблицы генерироваться исключение, если для таблицы заданы политики строк (ROW POLICY), но ни одна из них не относится к текущему пользователю. | `false` | +| `users_without_row_policies_can_read_rows` | Определяет, могут ли пользователи без разрешающих политик строк (ROW POLICY) по-прежнему читать строки с помощью запроса `SELECT`. Например, если есть два пользователя A и B, и политика строк (ROW POLICY) определена только для A, то если этот параметр равен `true`, пользователь B увидит все строки. Если этот параметр равен `false`, пользователь B не увидит ни одной строки. | `true` | Example: ```xml + true true true true @@ -930,7 +932,7 @@ ClickHouse перезагружает встроенные словари каж См. также: -* "[Словари](../../sql-reference/dictionaries/index.md)". +* "[Словари](../../sql-reference/statements/create/dictionary/index.md)". **Пример** @@ -4964,6 +4966,10 @@ ClickHouse использует этот параметр для всех таб ``` +## users_to_ignore_early_memory_limit_check \{#users_to_ignore_early_memory_limit_check\} + +Список пользователей, разделённых запятыми, для которых игнорируется ранняя проверка ограничения по памяти. Если пользователь не входит в этот список, запрос будет отклонён, если общее использование памяти превышает лимит. + ## validate_tcp_client_information \{#validate_tcp_client_information\} Определяет, включена ли проверка информации о клиенте при получении пакета запроса. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index 9e99ae42a80..d2e990e3375 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -466,6 +466,18 @@ INSERT INTO tab SETTINGS check_conversion_from_numbers_to_enum = 1 VALUES (4); - Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата CapnProto +## input_format_connection_handling \{#input_format_connection_handling\} + + + + + +Когда эта опция включена, если соединение неожиданно закрывается, любые оставшиеся данные в буфере будут разобраны и обработаны, а не приведут к ошибке. + +:::note +Включение этой опции отключает параллельный разбор и делает дедупликацию невозможной. +::: + ## input_format_csv_allow_cr_end_of_line \{#input_format_csv_allow_cr_end_of_line\} @@ -972,6 +984,18 @@ DESC format(JSONEachRow, '{"obj" : {"a" : 42, "b" : "Hello"}}, {"obj" : {"a" : 4 Ограничивает размер блоков, формируемых при разборе данных во входных форматах, в байтах. Используется во входных форматах, основанных на строках, когда блок формируется на стороне ClickHouse. 0 означает отсутствие ограничения по размеру в байтах. +## input_format_max_block_wait_ms \{#input_format_max_block_wait_ms\} + + + + + +Ограничивает максимальное время ожидания в миллисекундах перед формированием блока при разборе во входных форматах, ориентированных на строки. Значение 0 означает отсутствие ограничения. + +:::note +Этот параметр работает только в том случае, если включен `input_format_connection_handling`. Установка значения также отключает параллельный разбор и делает дедупликацию невозможной. +::: + ## input_format_max_bytes_to_read_for_schema_inference \{#input_format_max_bytes_to_read_for_schema_inference\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md index 69b71abbe27..4dca84a96b6 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -606,6 +606,16 @@ SELECT SUM(-1), MAX(0) FROM system.one WHERE 0; Экспериментальный табличный движок для интеграции с YTsaurus. +## allow_fuzz_query_functions \{#allow_fuzz_query_functions\} + + + + + + + +Включает функцию `fuzzQuery`, которая применяет случайные мутации AST к строке запроса. + ## allow_general_join_planning \{#allow_general_join_planning\} @@ -632,9 +642,11 @@ SELECT SUM(-1), MAX(0) FROM system.one WHERE 0; +**Псевдонимы**: `allow_experimental_insert_into_iceberg` + - + Разрешает выполнение запросов `insert` в Iceberg. @@ -1071,9 +1083,9 @@ ALTER TABLE test FREEZE SETTINGS alter_partition_verbose_result = 1; ## apply_row_policy_after_final \{#apply_row_policy_after_final\} - + - + Если параметр включён, политики строк (ROW POLICY) и PREWHERE применяются после обработки FINAL для таблиц семейства *MergeTree (особенно актуально для ReplacingMergeTree). Если параметр выключен, политики строк применяются до FINAL, что может приводить к отличающимся результатам, когда политика @@ -1122,6 +1134,32 @@ ALTER TABLE test FREEZE SETTINGS alter_partition_verbose_result = 1; - 'path' — использовать FlightDescriptor::Path (значение по умолчанию, работает с большинством серверов Arrow Flight) - 'command' — использовать FlightDescriptor::Command с запросом SELECT (требуется для Dremio) +## ast_fuzzer_any_query \{#ast_fuzzer_any_query\} + + + + + + + +Если значение `false` (по умолчанию), серверный AST fuzzer (управляется `ast_fuzzer_runs`) выполняет фаззинг только запросов на чтение (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). При значении `true` выполняется фаззинг всех типов запросов, включая DDL и INSERT. + +## ast_fuzzer_runs \{#ast_fuzzer_runs\} + + + + + + + +Включает серверный AST-фаззер, который запускает случайные запросы после каждого обычного запроса и отбрасывает их результаты. + +- 0: отключено (по умолчанию). +- Значение между 0 и 1 (исключая границы): вероятность запуска одного фаззированного запроса. +- Значение >= 1: количество фаззированных запросов, выполняемых на каждый обычный запрос. + +Фаззер накапливает фрагменты AST из всех запросов во всех сессиях, со временем порождая всё более интересные мутации. Фаззированные запросы, завершившиеся с ошибкой, незаметно отбрасываются; их результаты никогда не возвращаются клиенту. + ## asterisk_include_alias_columns \{#asterisk_include_alias_columns\} @@ -3350,8 +3388,6 @@ ClickHouse применяет этот SETTING, когда запрос соде ## enable_full_text_index \{#enable_full_text_index\} - - **Псевдонимы**: `allow_experimental_full_text_index` @@ -5342,6 +5378,30 @@ SELECT * FROM x_dist ORDER BY number ASC; Выборки также могут сохраняться в system.trace_log с помощью конфигурации jemalloc_collect_global_profile_samples_in_trace_log или с настройкой запроса jemalloc_collect_profile_samples_in_trace_log. См. [Профилирование выделений](/operations/allocation-profiling). +## jemalloc_profile_text_collapsed_use_count \{#jemalloc_profile_text_collapsed_use_count\} + + + + + +При использовании формата вывода `collapsed` для профиля кучи jemalloc агрегирование выполняется по количеству аллокаций вместо байтов. Если значение равно false (по умолчанию), каждый стек взвешивается по количеству живых байтов; если true — по количеству живых аллокаций. + +## jemalloc_profile_text_output_format \{#jemalloc_profile_text_output_format\} + + + + + +Формат вывода профиля кучи jemalloc в таблице system.jemalloc_profile_text. Возможные значения: 'raw' (сырой профиль), 'symbolized' (формат jeprof с символами) или 'collapsed' (формат FlameGraph). + +## jemalloc_profile_text_symbolize_with_inline \{#jemalloc_profile_text_symbolize_with_inline\} + + + + + +Определяет, нужно ли включать inline-кадры при символизации профиля кучи jemalloc. При включении inline-кадры учитываются, что может существенно замедлить процесс символизации; при отключении они пропускаются. Влияет только на форматы вывода 'symbolized' и 'collapsed'. + ## join_algorithm \{#join_algorithm\} @@ -8220,6 +8280,14 @@ SELECT * FROM test LIMIT 10 OFFSET 100; В настоящий момент эта настройка требует `optimize_skip_unused_shards` (причина в том, что однажды она может быть включена по умолчанию, и корректная работа будет гарантирована только в том случае, если данные вставлялись через distributed таблицу, то есть распределены в соответствии с sharding_key). ::: +## optimize_dry_run_check_part \{#optimize_dry_run_check_part\} + + + + + +Когда настройка включена, `OPTIMIZE ... DRY RUN` проверяет получившуюся объединённую часть с помощью `checkDataPart`. Если проверка не проходит, генерируется исключение. + ## optimize_empty_string_comparisons \{#optimize_empty_string_comparisons\} @@ -11140,14 +11208,6 @@ SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded'; Максимальная селективность фильтра для использования подсказки, основанной на инвертированном текстовом индексе. -## text_index_use_bloom_filter \{#text_index_use_bloom_filter\} - - - - - -Для тестирования позволяет включать или отключать использование bloom-фильтра в текстовом индексе. - ## throw_if_no_data_to_insert \{#throw_if_no_data_to_insert\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md index d21e618833b..ba065e74b60 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md @@ -1,6 +1,6 @@ --- -description: 'Системная таблица, содержащая сведения о словарях' -keywords: ['system table', 'словари'] +description: 'Системная таблица, содержащая информацию о словарях' +keywords: ['системная таблица', 'словари'] slug: /operations/system-tables/dictionaries title: 'system.dictionaries' doc_type: 'reference' @@ -10,44 +10,45 @@ import SystemTableCloud from '@site/i18n/ru/docusaurus-plugin-content-docs/curre -Содержит информацию о [словарях](../../sql-reference/dictionaries/index.md). +Содержит информацию о [словарях](../../sql-reference/statements/create/dictionary/index.md). Столбцы: {/*AUTOGENERATED_START*/ } -* `database` ([String](../../sql-reference/data-types/)) — Имя базы данных, содержащей словарь, созданный DDL-запросом. Пустая строка для других словарей. + +* `database` ([String](../../sql-reference/data-types/)) — Имя базы данных, содержащей словарь, созданный с помощью DDL-запроса. Пустая строка для других словарей. * `name` ([String](../../sql-reference/data-types/)) — Имя словаря. * `uuid` ([UUID](../../sql-reference/data-types/)) — UUID словаря. * `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](../../sql-reference/data-types/)) — Статус словаря. Возможные значения: - * **NOT_LOADED** — Словарь не был загружен, так как не использовался + * **NOT_LOADED** — Словарь не был загружен, потому что не использовался * **LOADED** — Словарь успешно загружен * **FAILED** — Не удалось загрузить словарь из-за ошибки * **LOADING** — Словарь сейчас загружается * **LOADED_AND_RELOADING** — Словарь успешно загружен - * **и в данный момент перезагружается (частые причины: запрос SYSTEM RELOAD DICTIONARY** — - * **таймаут** — - * **изменение конфигурации словаря)** — - * **FAILED_AND_RELOADING** — Не удалось загрузить словарь из-за ошибки, и сейчас он загружается. + * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — и в данный момент перезагружается (частые причины: запрос SYSTEM RELOAD DICTIONARY + * **timeout** — таймаут + * **dictionary config has changed)** — конфигурация словаря была изменена) + * **FAILED_AND_RELOADING** — Не удалось загрузить словарь из-за ошибки, и он сейчас загружается. * `origin` ([String](../../sql-reference/data-types/)) — Путь к конфигурационному файлу, который описывает словарь. -* `type` ([String](../../sql-reference/data-types/)) — Тип размещения словаря. См. «Хранение словарей в памяти». -* `key.names` ([Array(String)](../../sql-reference/data-types/)) — Массив имён ключей, предоставленных словарём. -* `key.types` ([Array(String)](../../sql-reference/data-types/)) — Соответствующий массив типов ключей, предоставленных словарём. -* `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — Массив имён атрибутов, предоставленных словарём. -* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — Соответствующий массив типов атрибутов, предоставленных словарём. -* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — Объём оперативной памяти, выделенной для словаря. -* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — Объём оперативной памяти, выделенной для иерархического индекса. +* `type` ([String](../../sql-reference/data-types/)) — Тип размещения словаря. Хранение словарей в памяти. +* `key.names` ([Array(String)](../../sql-reference/data-types/)) — Массив имен ключей, предоставляемых словарем. +* `key.types` ([Array(String)](../../sql-reference/data-types/)) — Соответствующий массив типов ключей, предоставляемых словарем. +* `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — Массив имен атрибутов, предоставляемых словарем. +* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — Соответствующий массив типов атрибутов, предоставляемых словарем. +* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — Объем ОЗУ, выделенный для словаря. +* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — Объем ОЗУ, выделенный для иерархического индекса. * `query_count` ([UInt64](../../sql-reference/data-types/)) — Количество запросов с момента загрузки словаря или последней успешной перезагрузки. -* `hit_rate` ([Float64](../../sql-reference/data-types/)) — Для кэш-словарей — процент обращений, при которых значение было найдено в кэше. +* `hit_rate` ([Float64](../../sql-reference/data-types/)) — Для кэширующих словарей — процент обращений, при которых значение было в кэше. * `found_rate` ([Float64](../../sql-reference/data-types/)) — Процент обращений, при которых значение было найдено. * `element_count` ([UInt64](../../sql-reference/data-types/)) — Количество элементов, хранящихся в словаре. -* `load_factor` ([Float64](../../sql-reference/data-types/)) — Процент заполнения словаря (для хеш-словаря — процент заполнения хеш-таблицы). -* `source` ([String](../../sql-reference/data-types/)) — Текстовое описание источника данных для словаря. -* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — Минимальное время жизни словаря в памяти, по истечении которого ClickHouse пытается перезагрузить словарь (если задан `invalidate_query`, то только если он изменился). Указывается в секундах. -* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — Максимальное время жизни словаря в памяти, по истечении которого ClickHouse пытается перезагрузить словарь (если задан `invalidate_query`, то только если он изменился). Указывается в секундах. +* `load_factor` ([Float64](../../sql-reference/data-types/)) — Процент заполнения словаря (для хэшированного словаря — процент заполнения хэш-таблицы). +* `source` ([String](../../sql-reference/data-types/)) — Описание источника данных для словаря. +* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — Минимальное время жизни словаря в памяти, по истечении которого ClickHouse пытается перезагрузить словарь (если задан `invalidate_query`, то только при изменении). Указывается в секундах. +* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — Максимальное время жизни словаря в памяти, по истечении которого ClickHouse пытается перезагрузить словарь (если задан `invalidate_query`, то только при изменении). Указывается в секундах. * `loading_start_time` ([DateTime](../../sql-reference/data-types/)) — Время начала загрузки словаря. -* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — Время окончания загрузки или обновления словаря. Помогает контролировать проблемы с источниками словаря и исследовать их причины. -* `error_count` ([UInt64](../../sql-reference/data-types/)) — Количество ошибок с момента последней успешной загрузки. Помогает контролировать проблемы с источниками словаря и исследовать их причины. +* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — Время завершения загрузки или обновления словаря. Помогает отслеживать проблемы с источниками словаря и исследовать их причины. +* `error_count` ([UInt64](../../sql-reference/data-types/)) — Количество ошибок с момента последней успешной загрузки. Помогает отслеживать проблемы с источниками словаря и исследовать их причины. * `loading_duration` ([Float32](../../sql-reference/data-types/)) — Длительность загрузки словаря. * `last_exception` ([String](../../sql-reference/data-types/)) — Текст ошибки, возникающей при создании или перезагрузке словаря, если словарь не удалось создать. * `comment` ([String](../../sql-reference/data-types/)) — Текст комментария к словарю. @@ -58,6 +59,7 @@ import SystemTableCloud from '@site/i18n/ru/docusaurus-plugin-content-docs/curre Настройте словарь: + ```sql CREATE DICTIONARY dictionary_with_comment ( diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/events.md b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/events.md index d209f59e302..87addc9832f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/events.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/operations/system-tables/events.md @@ -1,6 +1,5 @@ --- -description: 'Системная таблица с информацией о количестве событий, - произошедших в системе.' +description: 'Системная таблица, содержащая информацию о количестве событий, произошедших в системе.' keywords: ['системная таблица', 'события'] slug: /operations/system-tables/events title: 'system.events' @@ -8,22 +7,418 @@ doc_type: 'reference' --- import SystemTableCloud from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -Содержит информацию о количестве событий, произошедших в системе. Например, в таблице можно узнать, сколько запросов `SELECT` было обработано с момента запуска сервера ClickHouse. +Содержит информацию о числе событий, произошедших в системе. Например, в этой таблице можно узнать, сколько запросов `SELECT` было обработано с момента запуска сервера ClickHouse. Столбцы: {/*AUTOGENERATED_START*/ } -* `event` ([String](../../sql-reference/data-types/)) — Имя события. -* `value` ([UInt64](../../sql-reference/data-types/)) — Количество событий. -* `description` ([String](../../sql-reference/data-types/)) — Описание события. +* `event` ([String](../../sql-reference/data-types/)) — имя события. +* `value` ([UInt64](../../sql-reference/data-types/)) — число произошедших событий. +* `description` ([String](../../sql-reference/data-types/)) — описание события. {/*AUTOGENERATED_END*/ } -Все поддерживаемые события можно найти в файле исходного кода [src/Common/ProfileEvents.cpp](https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/ProfileEvents.cpp). + + + + В ClickHouse OSS доступны следующие события: + + {/*AUTOGENERATED_START id='oss_events'*/ } + + | Событие | Описание | + | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `Запрос` | Количество запросов, которые были интерпретированы и, возможно, выполнены. Не включает запросы, которые не удалось синтаксически разобрать, а также запросы, отклонённые из‑за ограничений на размер AST, ограничений QUOTA или ограничений на количество одновременно выполняемых запросов. Может включать внутренние запросы, инициированные самим ClickHouse. Подзапросы не учитываются. | + | `SelectQuery` | То же, что и `Query`, но учитывает только запросы SELECT. | + | `InitialQuery` | Аналогично `Query`, но учитывает только исходные запросы (см. `is_initial_query`). | + | `InitialSelectQuery` | Аналогичен `InitialQuery`, но учитывает только запросы SELECT. | + | `QueriesWithSubqueries` | Считает запросы вместе со всеми подзапросами. | + | `SelectQueriesWithSubqueries` | Считает запросы SELECT вместе со всеми подзапросами. | + | `FileOpen` | Количество открытых файлов. | + | `Seek` | Количество вызовов функции lseek. | + | `ReadBufferFromFileDescriptorRead` | Количество операций чтения (read/pread) из файловых дескрипторов. Сокеты не учитываются. | + | `ReadBufferFromFileDescriptorReadBytes` | Количество байт, прочитанных из файловых дескрипторов. Если файл сжат, здесь будет показан размер сжатых данных. | + | `WriteBufferFromFileDescriptorWrite` | Количество операций записи (write/pwrite) в файловые дескрипторы. Сокеты не учитываются. | + | `WriteBufferFromFileDescriptorWriteBytes` | Количество байт, записанных в файловые дескрипторы. Если файл сжат, здесь будет показан размер сжатых данных. | + | `FileSync` | Количество вызовов функций F_FULLFSYNC/fsync/fdatasync для файлов. | + | `FileSyncElapsedMicroseconds` | Общее время ожидания выполнения системного вызова F_FULLFSYNC/fsync/fdatasync для файлов. | + | `IOBufferAllocs` | Количество выделений буферов ввода‑вывода (для ReadBuffer/WriteBuffer). | + | `IOBufferAllocBytes` | Количество байт, выделенных под буферы ввода‑вывода (для ReadBuffer/WriteBuffer). | + | `DiskReadElapsedMicroseconds` | Общее время ожидания выполнения системного вызова read. Включает чтение из кэша страниц (page cache). | + | `DiskWriteElapsedMicroseconds` | Общее время ожидания выполнения системного вызова write. Включает запись в кэш страниц (page cache). | + | `NetworkReceiveElapsedMicroseconds` | Общее время ожидания получения или приёма данных из сети. Включает только сетевое взаимодействие, связанное с ClickHouse, и не включает взаимодействие сторонних библиотек. | + | `NetworkSendElapsedMicroseconds` | Общее время ожидания отправки или передачи данных в сеть. Включает только сетевое взаимодействие, связанное с ClickHouse, и не включает взаимодействие сторонних библиотек. | + | `NetworkReceiveBytes` | Общее количество байт, полученных из сети. Включает только сетевое взаимодействие, связанное с ClickHouse, и не включает взаимодействие сторонних библиотек. | + | `NetworkSendBytes` | Общее количество байт, отправленных в сеть. Включает только сетевое взаимодействие, связанное с ClickHouse, и не включает взаимодействие сторонних библиотек. | + | `GlobalThreadPoolExpansions` | Подсчитывает общее количество случаев, когда новые потоки добавлялись в глобальный пул потоков. Эта метрика отражает частоту расширения глобального пула потоков для удовлетворения возросших требований к обработке. | + | `GlobalThreadPoolThreadCreationMicroseconds` | Суммарное время, затраченное на ожидание запуска новых потоков. | + | `GlobalThreadPoolLockWaitMicroseconds` | Суммарное время, в течение которого потоки ожидали блокировок в глобальном пуле потоков. | + | `GlobalThreadPoolJobs` | Подсчитывает количество заданий, отправленных в глобальный пул потоков. | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | Измеряет время, прошедшее с момента постановки задания в пул потоков до момента, когда его забирает на выполнение рабочий поток. Эта метрика помогает выявлять задержки в обработке заданий и характеризует отзывчивость пула потоков на новые задачи. | + | `LocalThreadPoolExpansions` | Подсчитывает общее количество случаев, когда потоки заимствовались из глобального пула потоков для расширения локальных пулов потоков. | + | `LocalThreadPoolShrinks` | Подсчитывает общее количество случаев, когда потоки возвращались в глобальный пул потоков из локальных пулов потоков. | + | `LocalThreadPoolThreadCreationMicroseconds` | Суммарное время, в течение которого локальные пулы потоков ожидали возможности заимствовать поток из глобального пула. | + | `LocalThreadPoolJobs` | Подсчитывает количество заданий, отправленных в локальные пулы потоков. | + | `LocalThreadPoolBusyMicroseconds` | Суммарное время, в течение которого потоки выполняли непосредственную работу. | + | `LocalThreadPoolJobWaitTimeMicroseconds` | Измеряет время, прошедшее с момента постановки задания в пул потоков до момента, когда его забирает на выполнение рабочий поток. Эта метрика помогает выявлять задержки в обработке заданий и характеризует отзывчивость пула потоков на новые задачи. | + | `QueryPlanOptimizeMicroseconds` | Суммарное время, затраченное на выполнение оптимизаций плана запроса. | + | `ContextLock` | Количество раз, когда блокировка Context была получена или предпринята попытка её получения. Это глобальная блокировка. | + | `RWLockAcquiredReadLocks` | Количество раз, когда была получена блокировка на чтение (в тяжёлой блокировке чтения-записи, RWLock). | + | `QueryProfilerSignalOverruns` | Количество случаев, когда обработка сигнала профилировщика запросов была отброшена из-за переполнения, плюс количество сигналов, которые ОС не доставила из-за переполнения. | + | `QueryProfilerRuns` | Количество раз, когда QueryProfiler был запущен. | + | `MainConfigLoads` | Количество раз, когда основная конфигурация была перезагружена. | + | `ServerStartupMilliseconds` | Время, прошедшее от запуска сервера до начала прослушивания сокетов, в миллисекундах. | + | `AsyncLoaderWaitMicroseconds` | Суммарное время ожидания запроса в очереди заданий асинхронного загрузчика. | + | `LogTrace` | Количество сообщений журнала с уровнем Trace. | + | `LogDebug` | Количество сообщений журнала с уровнем Debug. | + | `LogInfo` | Количество сообщений журнала с уровнем Info. | + | `LogWarning` | Количество сообщений журнала с уровнем Warning. | + | `LoggerElapsedNanoseconds` | Суммарное время, затраченное на логирование. | + | `InterfaceNativeSendBytes` | Количество байт, отправленных через нативные интерфейсы | + | `InterfaceNativeReceiveBytes` | Количество байт, полученных через нативные интерфейсы | + | `MemoryWorkerRun` | Число запусков, выполненных MemoryWorker в фоновом режиме | + | `MemoryWorkerRunElapsedMicroseconds` | Общее время работы MemoryWorker в фоновом режиме | + | `AsyncLoggingFileLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для файлового логирования | + | `AsyncLoggingErrorFileLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для журнала ошибок | + | `AsyncLoggingTextLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для text_log | + + {/*AUTOGENERATED_END*/ } + + + + В ClickHouse Cloud доступны следующие события: + + {/*AUTOGENERATED_START id='cloud_events'*/ } + + | Событие | Описание | + | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `Запрос` | Количество запросов, которые были интерпретированы и могли быть выполнены. Не включает запросы, которые не удалось разобрать или которые были отклонены из‑за ограничений на размер AST, ограничений QUOTA или ограничений на число одновременно выполняемых запросов. Может включать внутренние запросы, инициированные самим ClickHouse. Подзапросы не учитываются. | + | `SelectQuery` | То же, что и `Query`, но учитывает только запросы SELECT. | + | `InitialQuery` | Аналогично `Query`, но учитывает только исходные запросы (см. `is_initial_query`). | + | `QueriesWithSubqueries` | Количество запросов с учётом всех подзапросов | + | `SelectQueriesWithSubqueries` | Количество запросов SELECT с учётом всех подзапросов | + | `SelectQueriesWithPrimaryKeyUsage` | Количество запросов SELECT, использующих первичный ключ для вычисления условия WHERE | + | `QueryTimeMicroseconds` | Общее время выполнения всех запросов. | + | `SelectQueryTimeMicroseconds` | Общее время выполнения запросов SELECT. | + | `OtherQueryTimeMicroseconds` | Общее время выполнения запросов, отличных от SELECT и INSERT. | + | `FileOpen` | Количество открытых файлов. | + | `Seek` | Количество вызовов функции lseek. | + | `ReadBufferFromFileDescriptorRead` | Количество операций чтения (read/pread) из файлового дескриптора. Не включает сокеты. | + | `ReadBufferFromFileDescriptorReadBytes` | Количество байт, прочитанных из файловых дескрипторов. Если файл сжат, здесь будет отражён размер сжатых данных. | + | `WriteBufferFromFileDescriptorWrite` | Количество операций записи (write/pwrite) в файловый дескриптор. Не включает сокеты. | + | `WriteBufferFromFileDescriptorWriteBytes` | Количество байт, записанных в файловые дескрипторы. Если файл сжат, здесь будет отражён размер сжатых данных. | + | `ReadCompressedBytes` | Количество байт (число байт до декомпрессии), прочитанных из сжатых источников (файлы, сеть). | + | `CompressedReadBufferBlocks` | Количество сжатых блоков (блоков данных, сжатых независимо друг от друга), прочитанных из сжатых источников (файлы, сеть). | + | `CompressedReadBufferBytes` | Количество несжатых байт (число байт после декомпрессии), прочитанных из сжатых источников (файлы, сеть). | + | `OpenedFileCacheHits` | Количество случаев, когда файл был найден в кэше открытых файлов, так что его не пришлось открывать повторно. | + | `OpenedFileCacheMisses` | Количество случаев, когда файл не был найден в кэше открытых файлов, поэтому его пришлось открыть повторно. | + | `OpenedFileCacheMicroseconds` | Время, затраченное на выполнение методов OpenedFileCache. | + | `IOBufferAllocs` | Количество выделений буферов ввода‑вывода (для ReadBuffer/WriteBuffer). | + | `IOBufferAllocBytes` | Количество байт, выделенных для буферов ввода‑вывода (для ReadBuffer/WriteBuffer). | + | `ArenaAllocChunks` | Количество фрагментов, выделенных для области памяти Arena (используется для операций GROUP BY и аналогичных). | + | `ArenaAllocBytes` | Количество байт, выделенных для области памяти Arena (используется для операций GROUP BY и аналогичных). | + | `FunctionExecute` | Количество вызовов обычных SQL-функций (SQL-функции вызываются по блокам, поэтому это число соответствует количеству блоков). | + | `TableFunctionExecute` | Количество вызовов табличных функций. | + | `DefaultImplementationForNullsRows` | Количество строк, обработанных стандартной реализацией обработки NULL при выполнении функций. | + | `DefaultImplementationForNullsRowsWithNulls` | Количество строк со значениями NULL, обработанных стандартной реализацией обработки NULL при выполнении функций. | + | `MarkCacheHits` | Количество случаев, когда запись была найдена в кэше меток, поэтому файл меток не пришлось загружать. | + | `MarkCacheMisses` | Количество случаев, когда запись не была найдена в кэше меток, поэтому пришлось загрузить файл меток в память, что является дорогостоящей операцией и увеличивает задержку выполнения запроса. | + | `QueryConditionCacheHits` | Количество случаев, когда запись была найдена в кэше условий запроса (и чтение меток можно пропустить). Обновляется только для запросов SELECT с SETTING use_query_condition_cache = 1. | + | `QueryConditionCacheMisses` | Количество случаев, когда запись не была найдена в кэше условий запроса (и чтение меток нельзя пропустить). Обновляется только для запросов SELECT с SETTING use_query_condition_cache = 1. | + | `CreatedReadBufferOrdinary` | Количество случаев создания обычного буфера чтения для чтения данных (при выборе среди других методов чтения). | + | `DiskReadElapsedMicroseconds` | Общее время ожидания при системных вызовах чтения. Включает чтение из page cache. | + | `DiskWriteElapsedMicroseconds` | Общее время ожидания при системных вызовах записи. Включает запись в page cache. | + | `NetworkReceiveElapsedMicroseconds` | Общее время ожидания при получении данных из сети или непосредственном получении данных из сети. Учитываются только сетевые взаимодействия, связанные с ClickHouse, без учёта сторонних библиотек. | + | `NetworkSendElapsedMicroseconds` | Общее время ожидания при отправке данных в сеть или непосредственной отправке данных в сеть. Учитываются только сетевые взаимодействия, связанные с ClickHouse, без учёта сторонних библиотек. | + | `NetworkReceiveBytes` | Общее количество байт, полученных из сети. Учитываются только сетевые взаимодействия, связанные с ClickHouse, без учёта сторонних библиотек. | + | `NetworkSendBytes` | Общее количество байт, отправленных в сеть. Учитываются только сетевые взаимодействия, связанные с ClickHouse, без учёта сторонних библиотек. | + | `GlobalThreadPoolExpansions` | Подсчитывает общее количество раз, когда в глобальный пул потоков добавлялись новые потоки. Эта метрика показывает, как часто глобальный пул потоков расширяется для удовлетворения возросших потребностей в обработке. | + | `GlobalThreadPoolThreadCreationMicroseconds` | Суммарное время ожидания запуска новых потоков. | + | `GlobalThreadPoolLockWaitMicroseconds` | Суммарное время, которое потоки провели в ожидании блокировок в глобальном пуле потоков. | + | `GlobalThreadPoolJobs` | Подсчитывает количество задач, отправленных в глобальный пул потоков. | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | Измеряет время от момента постановки задачи в пул потоков до момента, когда рабочий поток забирает её на выполнение. Эта метрика помогает выявлять задержки в обработке задач и показывает отзывчивость пула потоков на новые задания. | + | `LocalThreadPoolExpansions` | Подсчитывает общее количество раз, когда потоки заимствовались из глобального пула потоков для расширения локальных пулов потоков. | + | `LocalThreadPoolShrinks` | Подсчитывает общее количество раз, когда потоки возвращались в глобальный пул потоков из локальных пулов потоков. | + | `LocalThreadPoolThreadCreationMicroseconds` | Суммарное время, которое локальные пулы потоков провели в ожидании возможности заимствовать поток из глобального пула. | + | `LocalThreadPoolLockWaitMicroseconds` | Суммарное время, которое потоки провели в ожидании блокировок в локальных пулах потоков. | + | `LocalThreadPoolJobs` | Подсчитывает количество задач, отправленных в локальные пулы потоков. | + | `LocalThreadPoolBusyMicroseconds` | Суммарное время, которое потоки потратили на выполнение фактической (полезной) работы. | + | `LocalThreadPoolJobWaitTimeMicroseconds` | Измеряет время от момента постановки задачи в пул потоков до момента, когда рабочий поток забирает её на выполнение. Эта метрика помогает выявлять задержки в обработке задач и показывает отзывчивость пула потоков на новые задания. | + | `RemoteReadThrottlerBytes` | Количество байт, прошедших через ограничитель пропускной способности сети «max_remote_read_network_bandwidth_for_server» / «max_remote_read_network_bandwidth». | + | `RemoteWriteThrottlerBytes` | Количество байт, прошедших через ограничитель пропускной способности сети «max_remote_write_network_bandwidth_for_server» / «max_remote_write_network_bandwidth». | + | `InsertedRows` | Количество строк, вставленных (INSERT) во все таблицы. | + | `InsertedBytes` | Количество байт (в несжатом виде; для столбцов — в формате их хранения в памяти), вставленных (INSERT) во все таблицы. | + | `ZooKeeperInit` | Количество установленных подключений к ZooKeeper. | + | `ZooKeeperTransactions` | Количество операций ZooKeeper, включая операции чтения, записи и составные транзакции (multi). | + | `ZooKeeperList` | Количество запросов list (getChildren) к ZooKeeper. | + | `ZooKeeperCreate` | Количество запросов create к ZooKeeper. | + | `ZooKeeperRemove` | Количество запросов remove к ZooKeeper. | + | `ZooKeeperExists` | Количество запросов exists к ZooKeeper. | + | `ZooKeeperGet` | Количество запросов get к ZooKeeper. | + | `ZooKeeperSet` | Количество запросов set к ZooKeeper. | + | `ZooKeeperMulti` | Количество запросов multi (составные транзакции) к ZooKeeper. | + | `ZooKeeperMultiRead` | Количество запросов чтения multi (составные транзакции) к ZooKeeper. | + | `ZooKeeperMultiWrite` | Количество запросов записи multi (составные транзакции) к ZooKeeper. | + | `ZooKeeperSync` | Количество запросов sync к ZooKeeper. Эти запросы редко бывают необходимы или полезны. | + | `ZooKeeperClose` | Количество случаев, когда соединение с ZooKeeper было закрыто по инициативе клиента. | + | `ZooKeeperWatchResponse` | Количество полученных от ZooKeeper уведомлений watch. | + | `ZooKeeperWaitMicroseconds` | Количество микросекунд, суммарно затраченных всеми потоками, отправляющими запросы, на ожидание ответов от ZooKeeper после создания запроса. | + | `ZooKeeperBytesSent` | Количество байт, отправленных по сети при обмене данными с ZooKeeper. | + | `ZooKeeperBytesReceived` | Количество байт, полученных по сети при обмене данными с ZooKeeper. | + | `DistributedConnectionTries` | Общее количество попыток установления распределённого соединения. | + | `DistributedConnectionUsable` | Общее количество успешных распределённых подключений к подходящему серверу (с требуемой таблицей, но, возможно, устаревшей). | + | `SuspendSendingQueryToShard` | Общее количество случаев, когда отправка запроса к сегменту была приостановлена при включённом async_query_sending_for_remote. | + | `CompileFunction` | Количество запусков компиляции сгенерированного LLVM-кода (для создания объединённой функции для сложных выражений). | + | `CompileExpressionsMicroseconds` | Общее время, затраченное на компиляцию выражений в LLVM-код (в микросекундах). | + | `CompileExpressionsBytes` | Количество байт, использованных для компиляции выражений. | + | `QueryPlanOptimizeMicroseconds` | Общее время, затраченное на выполнение оптимизаций плана запроса (в микросекундах). | + | `SelectedParts` | Количество частей данных, выбранных для чтения из таблицы MergeTree. | + | `SelectedPartsTotal` | Общее количество частей данных до выбора тех, которые будут прочитаны из таблицы MergeTree. | + | `SelectedRanges` | Количество (несмежных) диапазонов во всех частях данных, выбранных для чтения из таблицы MergeTree. | + | `SelectedMarks` | Количество меток (гранул индекса), выбранных для чтения из таблицы MergeTree. | + | `SelectedMarksTotal` | Общее количество меток (гранул индекса) до выбора тех, которые будут прочитаны из таблицы MergeTree. | + | `SelectedRows` | Количество строк, прочитанных оператором SELECT из всех таблиц. | + | `SelectedBytes` | Количество байт (в несжатом виде; для столбцов в том виде, как они хранятся в памяти), прочитанных оператором SELECT из всех таблиц. | + | `RowsReadByMainReader` | Количество строк, прочитанных из таблиц MergeTree основным читателем (после шага PREWHERE). | + | `RowsReadByPrewhereReaders` | Количество строк, прочитанных из таблиц MergeTree (суммарно) читателями PREWHERE. | + | `LoadedDataParts` | Количество частей данных, загруженных таблицами MergeTree во время инициализации. | + | `LoadedDataPartsMicroseconds` | Количество микросекунд, затраченных таблицами MergeTree на загрузку частей данных во время инициализации. | + | `FilteringMarksWithPrimaryKeyMicroseconds` | Время, затраченное на фильтрацию частей по первичному ключу (PK). | + | `WaitMarksLoadMicroseconds` | Время, затраченное на загрузку меток. | + | `BackgroundLoadingMarksTasks` | Количество фоновых заданий по загрузке меток. | + | `MarksTasksFromCache` | Количество случаев, когда метки загружались синхронно, поскольку уже присутствовали в кэше. | + | `LoadedMarksFiles` | Количество загруженных файлов меток. | + | `LoadedMarksCount` | Количество загруженных меток (суммарно по всем столбцам). | + | `LoadedMarksMemoryBytes` | Размер в памяти представлений загруженных меток. | + | `LoadedPrimaryIndexFiles` | Количество загруженных файлов первичного индекса. | + | `LoadedPrimaryIndexRows` | Количество загруженных строк первичного ключа. | + | `LoadedPrimaryIndexBytes` | Объём (в байтах) загруженных данных первичного ключа. | + | `Merge` | Количество запущенных фоновых слияний. | + | `MergeSourceParts` | Количество исходных частей, запланированных к слиянию. | + | `MergedRows` | Количество строк, прочитанных для фоновых слияний. Это количество строк до слияния. | + | `MergedColumns` | Количество столбцов, объединённых на горизонтальном этапе слияний. | + | `MergedUncompressedBytes` | Количество несжатых байт (для столбцов в том виде, как они хранятся в памяти), прочитанных для фоновых слияний. Это объём до слияния. | + | `MergeTotalMilliseconds` | Общее время, затраченное на фоновые слияния. | + | `MergeExecuteMilliseconds` | Общее прошедшее время выполнения фоновых слияний. | + | `MergeHorizontalStageTotalMilliseconds` | Общее время, затраченное на горизонтальный этап фоновых слияний. | + | `MergeHorizontalStageExecuteMilliseconds` | Общее прошедшее время выполнения горизонтального этапа фоновых слияний. | + | `MergeVerticalStageTotalMilliseconds` | Общее время, затраченное на вертикальный этап фоновых слияний. | + | `MergeProjectionStageTotalMilliseconds` | Общее время, затраченное на этап проекций при фоновых слияниях. | + | `MergeProjectionStageExecuteMilliseconds` | Общее прошедшее время выполнения этапа проекций при фоновых слияниях. | + | `MergePrewarmStageTotalMilliseconds` | Общее время, затраченное на этап предварительного прогрева фоновых слияний | + | `MergePrewarmStageExecuteMilliseconds` | Общее активное время, затраченное на выполнение этапа предварительного прогрева фоновых слияний | + | `MergeTreeDataWriterRows` | Количество строк, вставленных через INSERT в таблицы MergeTree. | + | `MergeTreeDataWriterUncompressedBytes` | Несжатые байты (для столбцов в том виде, как они хранятся в памяти), вставленные через INSERT в таблицы MergeTree. | + | `MergeTreeDataWriterCompressedBytes` | Количество байт, записанных в файловую систему для данных, вставленных через INSERT в таблицы MergeTree. | + | `MergeTreeDataWriterBlocks` | Количество блоков, вставленных через INSERT в таблицы MergeTree. Каждый блок образует часть данных нулевого уровня. | + | `MergeTreeDataWriterBlocksAlreadySorted` | Количество блоков, вставленных через INSERT в таблицы MergeTree, которые уже были отсортированы. | + | `MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` | Время, затраченное в executeStep() для задач исполнителя MergeMutate. | + | `MergeMutateBackgroundExecutorTaskResetMicroseconds` | Время, затраченное на сброс (reset) задачи исполнителя MergeMutate. | + | `CommonBackgroundExecutorTaskExecuteStepMicroseconds` | Время, затраченное в executeStep() для задач исполнителя Common. | + | `CommonBackgroundExecutorTaskResetMicroseconds` | Время, затраченное на сброс (reset) задачи исполнителя Common. | + | `MergeTreeDataWriterSortingBlocksMicroseconds` | Время, затраченное на сортировку блоков | + | `InsertedCompactParts` | Количество частей, вставленных в формате Compact. | + | `MergedIntoCompactParts` | Количество частей, слитых в формат Compact. | + | `RegexpWithMultipleNeedlesCreated` | Скомпилированные регулярные выражения с несколькими шаблонами (библиотека VectorScan). | + | `RegexpWithMultipleNeedlesGlobalCacheHit` | Количество случаев получения скомпилированного регулярного выражения с несколькими шаблонами (библиотека VectorScan) из глобального кэша. | + | `RegexpWithMultipleNeedlesGlobalCacheMiss` | Количество случаев, когда не удалось получить скомпилированное регулярное выражение с несколькими шаблонами (библиотека VectorScan) из глобального кэша. | + | `ContextLock` | Количество раз, когда блокировка Context была захвачена или предпринята попытка её захвата. Это глобальная блокировка. | + | `ContextLockWaitMicroseconds` | Время ожидания блокировки Context в микросекундах | + | `RWLockAcquiredReadLocks` | Количество раз, когда была захвачена блокировка на чтение (в «тяжёлой» RWLock). | + | `PartsLockHoldMicroseconds` | Общее время удержания блокировки частей данных в таблицах MergeTree | + | `PartsLockWaitMicroseconds` | Общее время ожидания блокировки частей данных в таблицах MergeTree | + | `RealTimeMicroseconds` | Общее реальное (настенное) время, затраченное в потоках обработки (запросов и других задач) (обратите внимание, что это сумма). | + | `UserTimeMicroseconds` | Общее время, затраченное в потоках обработки (запросов и других задач) на выполнение инструкций CPU в пользовательском режиме. Сюда входит время простоя конвейера CPU из‑за доступа к основной памяти, промахов кэша, неправильных предсказаний переходов, гиперпоточности и т. п. | + | `SystemTimeMicroseconds` | Общее время, затраченное в потоках обработки (запросов и других задач) на выполнение инструкций CPU в режиме ядра ОС. Это время, проведённое в системных вызовах (syscalls), не включая время ожидания во время блокирующих системных вызовов. | + | `MemoryAllocatorPurge` | Общее количество запросов на очистку (purge) аллокатора памяти | + | `MemoryAllocatorPurgeTimeMicroseconds` | Общее время, затраченное на очистку аллокатора памяти | + | `SoftPageFaults` | Количество мягких отказов страниц (soft page faults) в потоках выполнения запроса. Мягкий отказ страницы обычно означает промах в кэше аллокатора памяти, что требует нового отображения памяти со стороны ОС и последующего выделения страницы физической памяти. | + | `OSCPUWaitMicroseconds` | Общее время, в течение которого поток был готов к выполнению, но ожидал назначения процессора со стороны ОС (по данным самой ОС). | + | `OSCPUVirtualTimeMicroseconds` | Время работы CPU по данным ОС. Не включает вынужденные ожидания, вызванные виртуализацией. | + | `OSWriteBytes` | Количество байт, записанных на диски или блочные устройства. Не включает байты, находящиеся в «грязных» страницах кэша страниц. Может не включать данные, записанные ОС асинхронно. | + | `OSReadChars` | Количество байт, прочитанных из файловой системы, включая кэш страниц. | + | `OSWriteChars` | Количество байт, записанных в файловую систему, включая кэш страниц. | + | `QueryProfilerRuns` | Количество запусков QueryProfiler. | + | `S3ReadMicroseconds` | Время выполнения запросов GET и HEAD к хранилищу S3. | + | `S3ReadRequestsCount` | Количество запросов GET и HEAD к хранилищу S3. | + | `S3ReadRequestsErrors` | Количество ошибок, не связанных с ограничением пропускной способности (non-throttling), в запросах GET и HEAD к хранилищу S3. | + | `S3ReadRequestAttempts` | Количество попыток для запросов GET и HEAD, включая первичную попытку и все повторные попытки, но исключая повторные попытки, выполняемые внутренней стратегией повторов S3. | + | `S3WriteMicroseconds` | Время выполнения запросов POST, DELETE, PUT и PATCH к хранилищу S3. | + | `S3WriteRequestsCount` | Количество запросов POST, DELETE, PUT и PATCH к хранилищу S3. | + | `S3WriteRequestAttempts` | Количество попыток для запросов POST, DELETE, PUT и PATCH, включая первичную попытку и все повторные попытки, но исключая повторные попытки, выполняемые внутренней стратегией повторов. | + | `DiskS3ReadMicroseconds` | Время выполнения запросов GET и HEAD к хранилищу DiskS3. | + | `DiskS3ReadRequestsCount` | Количество запросов GET и HEAD к хранилищу DiskS3. | + | `DiskS3ReadRequestsErrors` | Количество ошибок, не связанных с ограничением пропускной способности (non-throttling), в запросах GET и HEAD к хранилищу DiskS3. | + | `DiskS3ReadRequestAttempts` | Количество попыток для запросов GET и HEAD к хранилищу DiskS3, включая первичную попытку и все повторные попытки, но исключая повторные попытки, выполняемые внутренней стратегией повторов S3. | + | `DiskS3WriteMicroseconds` | Время выполнения запросов POST, DELETE, PUT и PATCH к хранилищу DiskS3. | + | `DiskS3WriteRequestsCount` | Количество запросов POST, DELETE, PUT и PATCH к хранилищу DiskS3. | + | `DiskS3WriteRequestAttempts` | Количество попыток запросов POST, DELETE, PUT и PATCH к хранилищу DiskS3, включая исходную попытку и все повторные, но без учёта повторов, выполняемых внутренним механизмом повторных попыток | + | `S3DeleteObjects` | Количество вызовов S3 API DeleteObject(s). | + | `S3ListObjects` | Количество вызовов S3 API ListObjects. | + | `S3HeadObject` | Количество вызовов S3 API HeadObject. | + | `S3PutObject` | Количество вызовов S3 API PutObject. | + | `S3GetObject` | Количество вызовов S3 API GetObject. | + | `DiskS3DeleteObjects` | Количество вызовов DiskS3 API DeleteObject(s). | + | `DiskS3ListObjects` | Количество вызовов DiskS3 API ListObjects. | + | `DiskS3HeadObject` | Количество вызовов DiskS3 API HeadObject. | + | `DiskS3PutObject` | Количество вызовов DiskS3 API PutObject. | + | `DiskS3GetObject` | Количество вызовов DiskS3 API GetObject. | + | `DiskPlainRewritableS3DirectoryCreated` | Количество каталогов, созданных хранилищем метаданных «plain_rewritable» для S3ObjectStorage. | + | `DiskPlainRewritableS3DirectoryRemoved` | Количество каталогов, удалённых хранилищем метаданных «plain_rewritable» для S3ObjectStorage. | + | `S3Clients` | Количество созданных клиентов S3. | + | `ReadBufferFromS3Microseconds` | Время, затраченное на чтение из S3. | + | `ReadBufferFromS3InitMicroseconds` | Время, затраченное на инициализацию подключения к S3. | + | `ReadBufferFromS3Bytes` | Количество байт, прочитанных из S3. | + | `WriteBufferFromS3Microseconds` | Время, затраченное на запись в S3. | + | `WriteBufferFromS3Bytes` | Количество байт, записанных в S3. | + | `CachedReadBufferReadFromCacheHits` | Количество попаданий при чтении из кэша файловой системы. | + | `CachedReadBufferReadFromCacheMisses` | Количество промахов при чтении из кэша файловой системы. | + | `CachedReadBufferReadFromSourceMicroseconds` | Время чтения из источника кэша файловой системы (удалённая файловая система и т. п.). | + | `CachedReadBufferReadFromCacheMicroseconds` | Время чтения из кэша файловой системы. | + | `CachedReadBufferReadFromSourceBytes` | Количество байт, прочитанных из источника кэша файловой системы (удалённая файловая система и т. п.). | + | `CachedReadBufferReadFromCacheBytes` | Количество байт, прочитанных из кэша файловой системы. | + | `CachedReadBufferCacheWriteBytes` | Количество байт, записанных из источника (удалённая файловая система и т. п.) в кэш файловой системы. | + | `CachedReadBufferCacheWriteMicroseconds` | Время, затраченное на запись данных в кэш файловой системы. | + | `CachedReadBufferCreateBufferMicroseconds` | Время, затраченное на подготовку буфера. | + | `CachedWriteBufferCacheWriteBytes` | Количество байт, записанных из источника (удалённая файловая система и т. п.) в кэш файловой системы. | + | `CachedWriteBufferCacheWriteMicroseconds` | Время, затраченное на запись данных в кэш файловой системы. | + | `FilesystemCacheLoadMetadataMicroseconds` | Время, затраченное на загрузку метаданных кэша файловой системы. | + | `FilesystemCacheCreatedKeyDirectories` | Количество созданных директорий ключей. | + | `FilesystemCacheBackgroundDownloadQueuePush` | Количество файловых сегментов, отправленных на фоновую загрузку в кэш файловой системы. | + | `FilesystemCacheLockKeyMicroseconds` | Время блокировки ключа кэша. | + | `FilesystemCacheLockMetadataMicroseconds` | Время блокировки метаданных кэша файловой системы. | + | `FilesystemCacheLockCacheMicroseconds` | Время блокировки кэша файловой системы. | + | `FilesystemCacheReserveMicroseconds` | Время резервирования места в кэше файловой системы. | + | `FilesystemCacheReserveAttempts` | Количество попыток резервирования места в кэше файловой системы. | + | `FilesystemCacheGetOrSetMicroseconds` | Время выполнения операции getOrSet() для кэша файловой системы. | + | `FilesystemCacheGetMicroseconds` | Время выполнения операции get() для кэша файловой системы. | + | `FileSegmentCompleteMicroseconds` | Длительность FileSegment::complete() в файловом кэше | + | `FileSegmentLockMicroseconds` | Время блокировки сегмента файла | + | `FileSegmentWriteMicroseconds` | Время выполнения write() для сегмента файла | + | `FileSegmentUseMicroseconds` | Время использования сегмента файла (use()) | + | `FileSegmentHolderCompleteMicroseconds` | Время выполнения complete() для держателя сегментов файлов | + | `FileSegmentFailToIncreasePriority` | Количество случаев, когда приоритет не был повышен из‑за высокой конкуренции за блокировку кэша | + | `FilesystemCacheHoldFileSegments` | Количество сегментов файлов в файловом кэше, которые были удержаны | + | `FilesystemCacheUnusedHoldFileSegments` | Количество сегментов файлов в файловом кэше, которые были удержаны, но не использованы (из‑за seek, LIMIT n и т. п.) | + | `RemoteFSSeeks` | Общее количество операций seek для асинхронного буфера | + | `RemoteFSPrefetches` | Количество предзагрузок (prefetch) при асинхронном чтении из удалённой файловой системы | + | `RemoteFSCancelledPrefetches` | Количество отменённых предзагрузок (prefetch) (из‑за seek) | + | `RemoteFSUnusedPrefetches` | Количество предзагрузок (prefetch), остававшихся в ожидании к моменту уничтожения буфера | + | `RemoteFSPrefetchedReads` | Количество чтений из буфера с предзагрузкой (prefetch) | + | `RemoteFSPrefetchedBytes` | Количество байт, прочитанных из буфера с предзагрузкой (prefetch) | + | `RemoteFSUnprefetchedReads` | Количество чтений из буфера без предзагрузки (без prefetch) | + | `RemoteFSUnprefetchedBytes` | Количество байт, прочитанных из буфера без предзагрузки (без prefetch) | + | `RemoteFSBuffers` | Количество буферов, созданных для асинхронного чтения из удалённой файловой системы | + | `WaitPrefetchTaskMicroseconds` | Время ожидания читателя с предзагрузкой (prefetch) | + | `ThreadpoolReaderTaskMicroseconds` | Время, затраченное на получение данных при асинхронном чтении | + | `ThreadpoolReaderReadBytes` | Количество байт, прочитанных задачей из пула потоков при асинхронном чтении | + | `ThreadpoolReaderSubmit` | Количество отправок задач в пул потоков при асинхронном чтении | + | `ThreadpoolReaderSubmitReadSynchronously` | Сколько раз задача не была запланирована в пуле потоков и вместо этого чтение выполнялось синхронно | + | `ThreadpoolReaderSubmitReadSynchronouslyBytes` | Сколько байт было прочитано синхронно | + | `ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` | Сколько времени было затрачено на синхронное чтение | + | `ThreadpoolReaderSubmitLookupInCacheMicroseconds` | Сколько времени было затрачено на проверку наличия содержимого в кэше | + | `FileSegmentWaitReadBufferMicroseconds` | Метрика по сегменту файла. Время ожидания внутреннего буфера чтения (включая ожидание кэша) | + | `FileSegmentReadMicroseconds` | Метрика по сегменту файла. Время, затраченное на чтение из файла | + | `FileSegmentCacheWriteMicroseconds` | Метрика по сегменту файла. Время, затраченное на запись данных в кэш | + | `FileSegmentUsedBytes` | Метрика по сегменту файла. Сколько байт фактически было использовано из текущего сегмента файла | + | `ThreadPoolReaderPageCacheMiss` | Количество случаев, когда чтение в ThreadPoolReader не было выполнено из кэша страниц и было передано в пул потоков | + | `ThreadPoolReaderPageCacheMissBytes` | Количество байт, прочитанных в ThreadPoolReader, когда чтение не было выполнено из кэша страниц и было передано в пул потоков | + | `ThreadPoolReaderPageCacheMissElapsedMicroseconds` | Время, затраченное на чтение данных внутри асинхронной задачи в ThreadPoolReader, когда чтение не было выполнено из кэша страниц | + | `SynchronousReadWaitMicroseconds` | Время ожидания синхронных чтений при асинхронном локальном чтении | + | `AsynchronousRemoteReadWaitMicroseconds` | Время ожидания асинхронных удалённых чтений | + | `SynchronousRemoteReadWaitMicroseconds` | Время ожидания синхронных удалённых чтений | + | `MainConfigLoads` | Количество перезагрузок основной конфигурации | + | `MetadataFromKeeperCacheHit` | Количество раз, когда запрос метаданных к Объектному хранилищу был обслужен из кэша без обращения к Keeper | + | `MetadataFromKeeperCacheMiss` | Количество раз, когда запрос метаданных к Объектному хранилищу потребовал обращения к Keeper | + | `MetadataFromKeeperCacheUpdateMicroseconds` | Общее время, затраченное на обновление кэша, включая ожидание ответов от Keeper | + | `MetadataFromKeeperUpdateCacheOneLevel` | Количество выполненных обновлений кэша для одного уровня дерева каталогов | + | `MetadataFromKeeperTransactionCommit` | Количество попыток зафиксировать транзакцию с метаданными (commit) | + | `MetadataFromKeeperCleanupTransactionCommit` | Количество попыток зафиксировать транзакцию с метаданными (commit) для очистки удалённых объектов | + | `MetadataFromKeeperOperations` | Количество запросов, сделанных к Keeper | + | `MetadataFromKeeperIndividualOperations` | Количество путей, прочитанных или записанных одиночными или групповыми запросами к Keeper | + | `MetadataFromKeeperIndividualOperationsMicroseconds` | Время, затраченное на выполнение одиночных или групповых запросов к Keeper | + | `SharedMergeTreeMetadataCacheHintLoadedFromCache` | Количество попаданий в кэш метаданных без обращения к Keeper | + | `ScalarSubqueriesCacheMiss` | Количество случаев, когда чтение из скалярного подзапроса не было закэшировано и должно было быть полностью вычислено | + | `ServerStartupMilliseconds` | Время от запуска сервера до начала прослушивания сокетов в миллисекундах | + | `MergerMutatorsGetPartsForMergeElapsedMicroseconds` | Время, затраченное на создание моментального снимка данных частей для построения диапазонов на его основе | + | `MergerMutatorPrepareRangesForMergeElapsedMicroseconds` | Время, затраченное на подготовку диапазонов частей, которые могут быть слиты в соответствии с предикатом слияния | + | `MergerMutatorSelectPartsForMergeElapsedMicroseconds` | Время, затраченное на выбор частей из диапазонов, которые могут быть слиты | + | `MergerMutatorRangesForMergeCount` | Количество диапазонов-кандидатов для слияния | + | `MergerMutatorPartsInRangesForMergeCount` | Количество частей-кандидатов для слияния | + | `MergerMutatorSelectRangePartsCount` | Количество частей в выбранном диапазоне для слияния | + | `AsyncLoaderWaitMicroseconds` | Общее время, в течение которого запрос ожидал выполнения задач асинхронного загрузчика | + | `LogTrace` | Количество сообщений журнала с уровнем Trace | + | `LogDebug` | Количество сообщений журнала с уровнем Debug | + | `LogInfo` | Количество сообщений журнала с уровнем Info | + | `LogWarning` | Количество сообщений журнала с уровнем Warning | + | `LogError` | Количество сообщений журнала с уровнем Error | + | `LoggerElapsedNanoseconds` | Суммарное время, затраченное на логирование | + | `InterfaceHTTPSendBytes` | Количество байт, отправленных через HTTP-интерфейсы | + | `InterfaceHTTPReceiveBytes` | Количество байт, полученных через HTTP-интерфейсы | + | `InterfaceNativeSendBytes` | Количество байт, отправленных через нативные интерфейсы | + | `InterfaceNativeReceiveBytes` | Количество байт, полученных через нативные интерфейсы | + | `InterfacePrometheusSendBytes` | Количество байт, отправленных через интерфейсы Prometheus | + | `InterfacePrometheusReceiveBytes` | Количество байт, полученных через интерфейсы Prometheus | + | `InterfaceInterserverSendBytes` | Количество байт, отправленных через межсерверные интерфейсы | + | `InterfaceInterserverReceiveBytes` | Количество байт, полученных через межсерверные интерфейсы | + | `SharedMergeTreeVirtualPartsUpdates` | Количество обновлений виртуальных частей | + | `SharedMergeTreeVirtualPartsUpdatesByLeader` | Количество обновлений виртуальных частей лидером | + | `SharedMergeTreeVirtualPartsUpdateMicroseconds` | Время обновления виртуальных частей в микросекундах | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` | Количество обновлений виртуальных частей из ZooKeeper | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` | Время обновлений виртуальных частей из ZooKeeper в микросекундах | + | `SharedMergeTreeVirtualPartsUpdatesPeerNotFound` | Количество неуспешных обновлений виртуальных частей от пиров из-за того, что ни один пир не был найден | + | `SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` | Количество успешных выборов лидера для обновлений виртуальных частей | + | `SharedMergeTreeMergeMutationAssignmentAttempt` | Число попыток назначить merge или mutation | + | `SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` | Число неудачных попыток назначить merge или mutation из‑за отсутствия данных для слияния | + | `SharedMergeTreePartsKillerRuns` | Число запусков parts killer | + | `SharedMergeTreePartsKillerMicroseconds` | Время работы основного потока parts killer | + | `SharedMergeTreeMergeSelectingTaskMicroseconds` | Время в микросекундах, затраченное задачей выбора merge для SMT | + | `SharedMergeTreeScheduleDataProcessingJob` | Число вызовов функции scheduleDataProcessingJob | + | `SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` | Число вызовов функции scheduleDataProcessingJob без работы | + | `SharedMergeTreeScheduleDataProcessingJobMicroseconds` | Время выполнения scheduleDataProcessingJob | + | `SharedMergeTreeHandleBlockingPartsMicroseconds` | Время обработки блокирующих частей в scheduleDataProcessingJob | + | `SharedMergeTreeHandleFetchPartsMicroseconds` | Время обработки загруженных частей в scheduleDataProcessingJob | + | `SharedMergeTreeHandleOutdatedPartsMicroseconds` | Время обработки устаревших частей в scheduleDataProcessingJob | + | `SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` | Время выполнения tryUpdateDiskMetadataCacheForPart в scheduleDataProcessingJob | + | `DiskConnectionsCreated` | Число созданных подключений к диску | + | `DiskConnectionsReused` | Число повторно использованных подключений к диску | + | `DiskConnectionsReset` | Число сброшенных подключений к диску | + | `DiskConnectionsPreserved` | Число сохранённых подключений к диску | + | `DiskConnectionsExpired` | Число подключений к диску с истекшим сроком действия | + | `DiskConnectionsElapsedMicroseconds` | Общее время, затраченное на создание подключений к диску | + | `HTTPConnectionsCreated` | Число созданных клиентских HTTP‑подключений | + | `HTTPConnectionsReused` | Число повторно использованных клиентских HTTP‑подключений | + | `HTTPConnectionsPreserved` | Число сохранённых клиентских HTTP‑подключений | + | `HTTPConnectionsElapsedMicroseconds` | Общее время, затраченное на создание клиентских HTTP‑подключений | + | `HTTPServerConnectionsCreated` | Число созданных серверных HTTP‑подключений | + | `HTTPServerConnectionsReused` | Число повторно использованных серверных HTTP‑подключений | + | `HTTPServerConnectionsPreserved` | Число сохранённых серверных HTTP‑подключений. Подключение успешно поддерживалось в состоянии keep‑alive | + | `HTTPServerConnectionsExpired` | Число серверных HTTP‑подключений с истекшим сроком действия | + | `HTTPServerConnectionsReset` | Число сброшенных серверных HTTP‑подключений. Сервер закрывает подключение | + | `AddressesDiscovered` | Общее число новых адресов в результатах DNS‑разрешения для HTTP‑подключений | + | `ReadWriteBufferFromHTTPRequestsSent` | Число HTTP‑запросов, отправленных ReadWriteBufferFromHTTP | + | `ReadWriteBufferFromHTTPBytes` | Общий размер полезной нагрузки в байтах, полученной и отправленной ReadWriteBufferFromHTTP. Не включает HTTP‑заголовки | + | `ConcurrencyControlSlotsGranted` | Число выделенных CPU‑слотов в соответствии с гарантией 1 потока на запрос и для запросов с настройкой 'use_concurrency_control' = 0 | + | `ConcurrencyControlSlotsAcquiredNonCompeting` | Общее число выделенных неконкурирующих CPU‑слотов | + | `MemoryWorkerRun` | Число запусков, выполненных MemoryWorker в фоне | + | `MemoryWorkerRunElapsedMicroseconds` | Общее время, затраченное MemoryWorker на фоновую работу | + | `FilterTransformPassedRows` | Число строк, прошедших фильтр в запросе | + | `FilterTransformPassedBytes` | Число байт, прошедших фильтр в запросе | + | `IndexBinarySearchAlgorithm` | Число использований двоичного алгоритма поиска по меткам индекса | + | `IndexGenericExclusionSearchAlgorithm` | Число использований алгоритма поиска с общим исключением по меткам индекса | + | `AsyncLoggingConsoleTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для логирования в консоль | + | `AsyncLoggingFileLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для файлового логирования | + | `AsyncLoggingErrorFileLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для журнала ошибок | + | `AsyncLoggingTextLogTotalMessages` | Количество сообщений (принятых или отброшенных), отправленных в асинхронную очередь для text_log | + + {/*AUTOGENERATED_END*/ } + + **Пример** @@ -44,6 +439,6 @@ SELECT * FROM system.events LIMIT 5 **См. также** * [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) — содержит периодически вычисляемые метрики. -* [system.metrics](/operations/system-tables/metrics) — содержит метрики, вычисляемые в реальном времени. -* [system.metric_log](/operations/system-tables/metric_log) — содержит историю значений метрик таблиц `system.metrics` и `system.events`. -* [Monitoring](../../operations/monitoring.md) — основные понятия мониторинга ClickHouse. +* [system.metrics](/operations/system-tables/metrics) — содержит мгновенно вычисляемые метрики. +* [system.metric_log](/operations/system-tables/metric_log) — содержит историю значений метрик из таблиц `system.metrics` и `system.events`. +* [Monitoring](../../operations/monitoring.md) — основные концепции мониторинга ClickHouse. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md deleted file mode 100644 index 6ca7655616e..00000000000 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md +++ /dev/null @@ -1,2572 +0,0 @@ ---- -description: 'Обзор возможностей внешних словарей в ClickHouse' -sidebar_label: 'Определение словарей' -sidebar_position: 35 -slug: /sql-reference/dictionaries -title: 'Словари' -doc_type: 'reference' ---- - -import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; -import CloudDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md'; -import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; -import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; - -# Словари \{#dictionaries\} - -Словарь — это отображение (`key -> attributes`), удобное для различных типов справочных списков. - -ClickHouse поддерживает специальные функции для работы со словарями, которые можно использовать в запросах. Использовать словари с функциями проще и эффективнее, чем применять `JOIN` со справочными таблицами. - -ClickHouse поддерживает: - -- Словари с [набором функций](../../sql-reference/functions/ext-dict-functions.md). -- [Встроенные словари](#embedded-dictionaries) с определённым [набором функций](../../sql-reference/functions/embedded-dict-functions.md). - -:::tip Учебник -Если вы только начинаете работать со словарями в ClickHouse, у нас есть учебник, посвящённый этой теме. Ознакомьтесь с ним [здесь](tutorial.md). -::: - -Вы можете добавлять собственные словари из различных источников данных. Источником для словаря может быть таблица ClickHouse, локальный текстовый или исполняемый файл, ресурс HTTP(S) или другая СУБД. Для получения дополнительной информации смотрите раздел «[Источники словарей](#dictionary-sources)». - -ClickHouse: - -- Полностью или частично хранит словари в RAM. -- Периодически обновляет словари и динамически загружает недостающие значения. Другими словами, словари могут загружаться динамически. -- Позволяет создавать словари на основе XML-файлов или [DDL-запросов](../../sql-reference/statements/create/dictionary.md). - -Конфигурация словарей может располагаться в одном или нескольких XML-файлах. Путь к конфигурации задаётся параметром [dictionaries_config](../../operations/server-configuration-parameters/settings.md#dictionaries_config). - -Словари могут загружаться при запуске сервера или при первом использовании, в зависимости от настройки [dictionaries_lazy_load](../../operations/server-configuration-parameters/settings.md#dictionaries_lazy_load). - -Системная таблица [dictionaries](/operations/system-tables/dictionaries) содержит информацию о словарях, настроенных на сервере. Для каждого словаря вы можете найти там: - -- Статус словаря. -- Параметры конфигурации. -- Метрики, такие как объём оперативной памяти (RAM), выделенной для словаря, или количество запросов с момента успешной загрузки словаря. - - - -## Создание словаря с помощью DDL-запроса \{#creating-a-dictionary-with-a-ddl-query\} - -Словари можно создавать с помощью [DDL-запросов](../../sql-reference/statements/create/dictionary.md), и это рекомендованный способ, поскольку словари, созданные с помощью DDL: - -- Не требуют добавления дополнительных записей в конфигурационные файлы сервера. -- Можно использовать как полноценные сущности, подобно таблицам или представлениям. -- Можно читать данные напрямую, используя привычный SELECT вместо табличных функций словаря. Обратите внимание, что при прямом доступе к словарю через оператор SELECT кешируемый словарь вернёт только кешированные данные, тогда как некешируемый словарь вернёт все данные, которые он хранит. -- Легко переименовывать. - -## Создание словаря с помощью файла конфигурации \{#creating-a-dictionary-with-a-configuration-file\} - - - -:::note -Создание словаря с помощью файла конфигурации не поддерживается в ClickHouse Cloud. Пожалуйста, используйте DDL (см. выше) и создайте словарь от имени пользователя `default`. -::: - -Файл конфигурации словаря имеет следующий формат: - -```xml - - An optional element with any content. Ignored by the ClickHouse server. - - - /etc/metrika.xml - - - - - - - - -``` - -Вы можете [настроить](#configuring-a-dictionary) любое количество словарей в одном файле. - -:::note -Вы можете преобразовывать значения для небольшого словаря, описав его в `SELECT`-запросе (см. функцию [transform](../../sql-reference/functions/other-functions.md)). Эта функциональность не связана со словарями. -::: - -## Настройка словаря \{#configuring-a-dictionary\} - - - -Если словарь настраивается с использованием XML-файла, конфигурация словаря выглядит следующим образом: - -```xml - - dict_name - - - - - - - - - - - - - - - - - -``` - -Соответствующий [DDL-запрос](../../sql-reference/statements/create/dictionary.md) имеет следующую структуру: - -```sql -CREATE DICTIONARY dict_name -( - ... -- attributes -) -PRIMARY KEY ... -- complex or single key configuration -SOURCE(...) -- Source configuration -LAYOUT(...) -- Memory layout configuration -LIFETIME(...) -- Lifetime of dictionary in memory -``` - -## Хранение словарей в памяти \{#storing-dictionaries-in-memory\} - -Существует несколько способов хранить словари в памяти. - -Мы рекомендуем [flat](#flat), [hashed](#hashed) и [complex_key_hashed](#complex_key_hashed), которые обеспечивают оптимальную скорость обработки. - -Кэширование не рекомендуется из‑за потенциально низкой производительности и трудностей с подбором оптимальных параметров. Подробнее см. в разделе [cache](#cache). - -Существует несколько способов повысить производительность словарей: - -* Вызывайте функцию для работы со словарём после `GROUP BY`. -* Помечайте извлекаемые атрибуты как инъективные. Атрибут называется инъективным, если разным ключам соответствуют разные значения атрибутов. Поэтому когда в `GROUP BY` используется функция, получающая значение атрибута по ключу, эта функция автоматически выносится за пределы `GROUP BY`. - -ClickHouse генерирует исключение при возникновении ошибок со словарями. Примеры ошибок: - -* Не удалось загрузить запрашиваемый словарь. -* Ошибка при обращении к словарю типа `cached`. - -Вы можете просмотреть список словарей и их статусы в таблице [system.dictionaries](../../operations/system-tables/dictionaries.md). - - - -Конфигурация выглядит следующим образом: - -```xml - - - ... - - - - - - ... - - -``` - -Соответствующий [DDL-запрос](../../sql-reference/statements/create/dictionary.md): - -```sql -CREATE DICTIONARY (...) -... -LAYOUT(LAYOUT_TYPE(param value)) -- layout settings -... -``` - -В словарях, у которых в макете отсутствует слово `complex-key*`, ключ имеет тип [UInt64](../../sql-reference/data-types/int-uint.md), а в словарях `complex-key*` ключ составной (complex, произвольных типов). - -Ключи [UInt64](../../sql-reference/data-types/int-uint.md) в XML-словарях задаются с помощью тега ``. - -Пример конфигурации (столбец key_column имеет тип UInt64): - -```xml -... - - - key_column - -... -``` - -Составные ключи `complex` для XML-словарей задаются с помощью тега ``. - -Пример конфигурации составного ключа (ключ имеет один элемент типа [String](../../sql-reference/data-types/string.md)): - -```xml -... - - - - country_code - String - - -... -``` - -## Способы хранения словарей в памяти \{#ways-to-store-dictionaries-in-memory\} - -Различные способы хранения данных словаря в памяти связаны с определёнными компромиссами по потреблению CPU и RAM. Дерево решений, опубликованное в разделе [Choosing a Layout](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout) тематической [статьи в блоге](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) о словарях, является хорошей отправной точкой для выбора подходящего варианта размещения. - -- [flat](#flat) -- [hashed](#hashed) -- [sparse_hashed](#sparse_hashed) -- [complex_key_hashed](#complex_key_hashed) -- [complex_key_sparse_hashed](#complex_key_sparse_hashed) -- [hashed_array](#hashed_array) -- [complex_key_hashed_array](#complex_key_hashed_array) -- [range_hashed](#range_hashed) -- [complex_key_range_hashed](#complex_key_range_hashed) -- [cache](#cache) -- [complex_key_cache](#complex_key_cache) -- [ssd_cache](#ssd_cache) -- [complex_key_ssd_cache](#complex_key_ssd_cache) -- [direct](#direct) -- [complex_key_direct](#complex_key_direct) -- [ip_trie](#ip_trie) - -### flat \{#flat\} - -Словарь полностью хранится в памяти в виде плоских массивов. Сколько памяти использует словарь? Объем пропорционален размеру наибольшего ключа (по занимаемому месту). - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md), а значение ограничено `max_array_size` (по умолчанию — 500000). Если при создании словаря обнаруживается ключ большего размера, ClickHouse генерирует исключение и не создает словарь. Начальный размер плоских массивов словаря контролируется настройкой `initial_array_size` (по умолчанию — 1024). - -Поддерживаются все типы источников. При обновлении данные (из файла или таблицы) читаются полностью. - -Этот метод обеспечивает наилучшую производительность среди всех доступных методов хранения словаря. - -Пример конфигурации: - -```xml - - - 50000 - 5000000 - - -``` - -или - -```sql -LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) -``` - -### hashed \{#hashed\} - -Словарь полностью хранится в памяти в виде хеш-таблицы. Словарь может содержать любое количество элементов с любыми идентификаторами. На практике количество ключей может достигать десятков миллионов. - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md). - -Поддерживаются все типы источников. При обновлении данные (из файла или из таблицы) считываются целиком. - -Пример конфигурации: - -```xml - - - -``` - -или - -```sql -LAYOUT(HASHED()) -``` - -Пример конфигурации: - -```xml - - - - 10 - - - 10000 - - - 0.5 - - -``` - -или - -```sql -LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### sparse_hashed \{#sparse_hashed\} - -Похож на `hashed`, но использует меньше памяти за счёт более интенсивного использования CPU. - -Ключ словаря имеет тип данных [UInt64](../../sql-reference/data-types/int-uint.md). - -Пример конфигурации: - -```xml - - - - - - - -``` - -или - -```sql -LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -Для словарей этого типа также можно использовать `shards`; это особенно важно для `sparse_hashed` по сравнению с `hashed`, поскольку `sparse_hashed` работает медленнее. - -### complex_key_hashed \{#complex_key_hashed\} - -Этот тип хранилища предназначен для использования с составными [ключами](#dictionary-key-and-fields). Аналогичен `hashed`. - -Пример конфигурации: - -```xml - - - - - - - -``` - -или - -```sql -LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### complex_key_sparse_hashed \{#complex_key_sparse_hashed\} - -Этот тип хранилища предназначен для составных [ключей](#dictionary-key-and-fields). Аналогичен типу [sparse_hashed](#sparse_hashed). - -Пример конфигурации: - -```xml - - - - - - - -``` - -или - -```sql -LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### hashed_array \{#hashed_array\} - -Словарь полностью хранится в памяти. Каждый атрибут хранится в массиве. Ключевой атрибут хранится в виде хеш-таблицы, где значение — это индекс в массиве атрибутов. Словарь может содержать любое количество элементов с любыми идентификаторами. На практике количество ключей может достигать десятков миллионов. - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md). - -Поддерживаются все типы источников. При обновлении данные (из файла или из таблицы) считываются целиком. - -Пример конфигурации: - -```xml - - - - -``` - -или - -```sql -LAYOUT(HASHED_ARRAY([SHARDS 1])) -``` - -### complex_key_hashed_array \{#complex_key_hashed_array\} - -Этот тип хранилища предназначен для использования с составными [ключами](#dictionary-key-and-fields). Аналогичен [hashed_array](#hashed_array). - -Пример конфигурации: - -```xml - - - -``` - -или - -```sql -LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) -``` - -### range_hashed \{#range_hashed\} - -Словарь хранится в памяти в виде хэш-таблицы с упорядоченным массивом диапазонов и соответствующих им значений. - -Этот метод хранения работает аналогично hashed и позволяет, помимо ключа, использовать диапазоны дат/времени (произвольного числового типа). - -Пример: таблица содержит скидки для каждого рекламодателя в формате: - -```text -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 123 │ 2015-01-16 │ 2015-01-31 │ 0.25 │ -│ 123 │ 2015-01-01 │ 2015-01-15 │ 0.15 │ -│ 456 │ 2015-01-01 │ 2015-01-15 │ 0.05 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ -``` - -Чтобы использовать выборку для диапазонов дат, определите элементы `range_min` и `range_max` в [структуре](#dictionary-key-and-fields). Эти элементы должны содержать элементы `name` и `type` (если `type` не указан, будет использован тип по умолчанию — Date). `type` может быть любым числовым типом (Date / DateTime / UInt64 / Int32 / другие). - -:::note -Значения `range_min` и `range_max` должны умещаться в диапазон значений типа `Int64`. -::: - -Пример: - -```xml - - - - min - - - - - advertiser_id - - - discount_start_date - Date - - - discount_end_date - Date - - ... -``` - -или - -```sql -CREATE DICTIONARY discounts_dict ( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Date, - amount Float64 -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'discounts')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(RANGE_HASHED(range_lookup_strategy 'max')) -RANGE(MIN discount_start_date MAX discount_end_date) -``` - -Чтобы работать с этими словарями, необходимо передать дополнительный аргумент в функцию `dictGet`, для которого задаётся диапазон: - -```sql -dictGet('dict_name', 'attr_name', id, date) -``` - -Пример запроса: - -```sql -SELECT dictGet('discounts_dict', 'amount', 1, '2022-10-20'::Date); -``` - -Эта функция возвращает значение для указанных `id` и диапазона дат, включающего переданную дату. - -Подробности алгоритма: - -* Если `id` не найден или для `id` не найден диапазон, возвращается значение по умолчанию для типа атрибута. -* Если имеются пересекающиеся диапазоны и `range_lookup_strategy=min`, возвращается подходящий диапазон с минимальным `range_min`; если найдено несколько диапазонов, возвращается диапазон с минимальным `range_max`; если снова найдено несколько диапазонов (несколько диапазонов имеют одинаковые `range_min` и `range_max`), возвращается случайный диапазон из них. -* Если имеются пересекающиеся диапазоны и `range_lookup_strategy=max`, возвращается подходящий диапазон с максимальным `range_min`; если найдено несколько диапазонов, возвращается диапазон с максимальным `range_max`; если снова найдено несколько диапазонов (несколько диапазонов имеют одинаковые `range_min` и `range_max`), возвращается случайный диапазон из них. -* Если `range_max` равно `NULL`, диапазон является открытым. `NULL` рассматривается как максимально возможное значение. Для `range_min` в качестве открытого значения можно использовать `1970-01-01` или `0` (-MAX_INT). - -Пример конфигурации: - -```xml - - - ... - - - - - - - - Abcdef - - - StartTimeStamp - UInt64 - - - EndTimeStamp - UInt64 - - - XXXType - String - - - - - - -``` - -или - -```sql -CREATE DICTIONARY somedict( - Abcdef UInt64, - StartTimeStamp UInt64, - EndTimeStamp UInt64, - XXXType String DEFAULT '' -) -PRIMARY KEY Abcdef -RANGE(MIN StartTimeStamp MAX EndTimeStamp) -``` - -Пример конфигурации с перекрывающимися и открытыми диапазонами: - -```sql -CREATE TABLE discounts -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -ENGINE = Memory; - -INSERT INTO discounts VALUES (1, '2015-01-01', Null, 0.1); -INSERT INTO discounts VALUES (1, '2015-01-15', Null, 0.2); -INSERT INTO discounts VALUES (2, '2015-01-01', '2015-01-15', 0.3); -INSERT INTO discounts VALUES (2, '2015-01-04', '2015-01-10', 0.4); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-15', 0.5); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-10', 0.6); - -SELECT * FROM discounts ORDER BY advertiser_id, discount_start_date; -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 1 │ 2015-01-01 │ ᴺᵁᴸᴸ │ 0.1 │ -│ 1 │ 2015-01-15 │ ᴺᵁᴸᴸ │ 0.2 │ -│ 2 │ 2015-01-01 │ 2015-01-15 │ 0.3 │ -│ 2 │ 2015-01-04 │ 2015-01-10 │ 0.4 │ -│ 3 │ 1970-01-01 │ 2015-01-15 │ 0.5 │ -│ 3 │ 1970-01-01 │ 2015-01-10 │ 0.6 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ - --- RANGE_LOOKUP_STRATEGY 'max' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'max')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.2 │ -- two ranges are matching, range_min 2015-01-15 (0.2) is bigger than 2015-01-01 (0.1) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.4 │ -- two ranges are matching, range_min 2015-01-04 (0.4) is bigger than 2015-01-01 (0.3) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.5 │ -- two ranges are matching, range_min are equal, 2015-01-15 (0.5) is bigger than 2015-01-10 (0.6) -└─────┘ - -DROP DICTIONARY discounts_dict; - --- RANGE_LOOKUP_STRATEGY 'min' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'min')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- the only one range is matching: 2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.1 │ -- two ranges are matching, range_min 2015-01-01 (0.1) is less than 2015-01-15 (0.2) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.3 │ -- two ranges are matching, range_min 2015-01-01 (0.3) is less than 2015-01-04 (0.4) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.6 │ -- two ranges are matching, range_min are equal, 2015-01-10 (0.6) is less than 2015-01-15 (0.5) -└─────┘ -``` - -### complex_key_range_hashed \{#complex_key_range_hashed\} - -Словарь хранится в памяти в виде хеш-таблицы с упорядоченным массивом диапазонов и соответствующих им значений (см. [range_hashed](#range_hashed)). Этот тип хранения предназначен для использования с составными [ключами](#dictionary-key-and-fields). - -Пример конфигурации: - -```sql -CREATE DICTIONARY range_dictionary -( - CountryID UInt64, - CountryKey String, - StartDate Date, - EndDate Date, - Tax Float64 DEFAULT 0.2 -) -PRIMARY KEY CountryID, CountryKey -SOURCE(CLICKHOUSE(TABLE 'date_table')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(COMPLEX_KEY_RANGE_HASHED()) -RANGE(MIN StartDate MAX EndDate); -``` - -### cache \{#cache\} - -Словарь хранится в кэше с фиксированным количеством ячеек. Эти ячейки содержат часто используемые элементы. - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md). - -При поиске в словаре сначала выполняется поиск в кэше. Для каждого блока данных все ключи, которые не найдены в кэше или устарели, запрашиваются из источника с помощью `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`. Полученные данные затем записываются в кэш. - -Если ключи не найдены в словаре, создаётся задача обновления кэша и добавляется в очередь обновления. Свойствами очереди обновления можно управлять с помощью настроек `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds`, `max_threads_for_updates`. - -Для словарей типа cache может быть задан срок действия данных в кэше — [lifetime](#refreshing-dictionary-data-using-lifetime). Если с момента загрузки данных в ячейку прошло больше времени, чем указано в `lifetime`, значение ячейки не используется и ключ считается просроченным. Ключ запрашивается повторно при следующем обращении. Это поведение можно настроить с помощью настройки `allow_read_expired_keys`. - -Это наименее эффективный из всех способов хранения словарей. Скорость работы кэша сильно зависит от корректных настроек и сценария использования. Словарь типа cache показывает хорошую производительность только при достаточно высокой доле попаданий (рекомендуется 99% и выше). Среднюю долю попаданий можно посмотреть в таблице [system.dictionaries](../../operations/system-tables/dictionaries.md). - -Если настройка `allow_read_expired_keys` установлена в 1 (по умолчанию — 0), словарь может поддерживать асинхронные обновления. Если клиент запрашивает ключи, и все они есть в кэше, но некоторые из них просрочены, словарь вернёт клиенту просроченные значения и асинхронно запросит их из источника. - -Чтобы улучшить производительность кэша, используйте подзапрос с `LIMIT` и вызывайте функцию со словарём извне. - -Поддерживаются все типы источников. - -Пример настроек: - -```xml - - - - 1000000000 - - 0 - - 100000 - - 10 - - 60000 - - 4 - - -``` - -или - -```sql -LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) -``` - -Установите достаточно большой размер кэша. Вам нужно поэкспериментировать, чтобы подобрать количество ячеек: - -1. Задайте некоторое значение размера кэша. -2. Выполняйте запросы, пока кэш полностью не заполнится. -3. Оцените потребление памяти, используя таблицу `system.dictionaries`. -4. Увеличивайте или уменьшайте количество ячеек, пока не достигнете требуемого уровня потребления памяти. - -:::note -Не используйте ClickHouse как источник данных, так как он медленно обрабатывает запросы со случайными чтениями. -::: - -### complex_key_cache \{#complex_key_cache\} - -Этот тип хранилища используется для составных [ключей](#dictionary-key-and-fields). Аналогичен `cache`. - -### ssd_cache \{#ssd_cache\} - -Аналогично словарю `cache`, но данные сохраняются на SSD, а индекс — в оперативной памяти. Все настройки словаря cache, связанные с очередью обновления, также могут быть применены к словарям SSD cache. - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md). - -```xml - - - - 4096 - - 16777216 - - 131072 - - 1048576 - - /var/lib/clickhouse/user_files/test_dict - - -``` - -или - -```sql -LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 - PATH '/var/lib/clickhouse/user_files/test_dict')) -``` - -### complex_key_ssd_cache \{#complex_key_ssd_cache\} - -Этот тип хранилища предназначен для работы с составными [ключами](#dictionary-key-and-fields). Аналогичен `ssd_cache`. - -### direct \{#direct\} - -Словарь не хранится в памяти, и при обработке запроса происходит прямое обращение к источнику. - -Ключ словаря имеет тип [UInt64](../../sql-reference/data-types/int-uint.md). - -Поддерживаются все типы [источников](#dictionary-sources), кроме локальных файлов. - -Пример конфигурации: - -```xml - - - -``` - -или - -```sql -LAYOUT(DIRECT()) -``` - -### complex_key_direct \{#complex_key_direct\} - -Этот тип хранилища предназначен для использования с составными [ключами](#dictionary-key-and-fields). Аналогичен типу `direct`. - -### ip_trie \{#ip_trie\} - -Этот словарь предназначен для поиска IP-адресов по сетевому префиксу. Он хранит IP-диапазоны в нотации CIDR и позволяет быстро определить, к какому префиксу (например, подсети или диапазону ASN) относится конкретный IP, что делает его идеальным для поисковых операций по IP, таких как геолокация или классификация сетей. - - - -### Использование словаря на основе дерева регулярных выражений в ClickHouse с открытым исходным кодом \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} - -Словари на основе дерева регулярных выражений в ClickHouse с открытым исходным кодом определяются с использованием источника YAMLRegExpTree, которому указывается путь к YAML‑файлу, содержащему дерево регулярных выражений. - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -... -``` - -Источник словаря `YAMLRegExpTree` описывает структуру дерева регулярных выражений. Например: - -```yaml -- regexp: 'Linux/(\d+[\.\d]*).+tlinux' - name: 'TencentOS' - version: '\1' - -- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' - name: 'Android' - versions: - - regexp: '33/tclwebkit' - version: '13' - - regexp: '3[12]/tclwebkit' - version: '12' - - regexp: '30/tclwebkit' - version: '11' - - regexp: '29/tclwebkit' - version: '10' -``` - -Эта конфигурация состоит из списка узлов дерева регулярных выражений. Каждый узел имеет следующую структуру: - -* **regexp**: регулярное выражение узла. -* **attributes**: список пользовательских атрибутов словаря. В этом примере есть два атрибута: `name` и `version`. Первый узел определяет оба атрибута. Второй узел определяет только атрибут `name`. Атрибут `version` задаётся дочерними узлами второго узла. - * Значение атрибута может содержать **обратные ссылки**, указывающие на группы захвата в сопоставленном регулярном выражении. В примере значение атрибута `version` в первом узле состоит из обратной ссылки `\1` на группу захвата `(\d+[\.\d]*)` в регулярном выражении. Номера обратных ссылок лежат в диапазоне от 1 до 9 и записываются как `$1` или `\1` (для номера 1). Во время выполнения запроса обратная ссылка заменяется соответствующей группой захвата. -* **child nodes**: список дочерних узлов узла дерева regexp, каждый из которых имеет собственные атрибуты и (потенциально) дочерние узлы. Сопоставление строки выполняется в порядке обхода дерева в глубину. Если строка соответствует узлу regexp, словарь проверяет, соответствует ли она также дочерним узлам этого узла. Если да, используются атрибуты самого глубокого совпавшего узла. Атрибуты дочернего узла переопределяют одноимённые атрибуты родительских узлов. Имя дочерних узлов в файлах YAML может быть произвольным, например `versions` в приведённом выше примере. - -Словари на основе дерева регулярных выражений допускают доступ только с использованием функций `dictGet`, `dictGetOrDefault` и `dictGetAll`. - -Пример: - -```sql -SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); -``` - -Результат: - -```text -┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ -│ ('Android','12') │ -└─────────────────────────────────────────────────────────────────┘ -``` - -В этом случае мы сначала сопоставляем регулярное выражение `\d+/tclwebkit(?:\d+[\.\d]*)` со вторым узлом верхнего уровня. Затем словарь продолжает обход дочерних узлов и обнаруживает, что строка также совпадает с `3[12]/tclwebkit`. В результате значение атрибута `name` равно `Android` (определено на верхнем уровне), а значение атрибута `version` равно `12` (определено в дочернем узле). - -Используя мощный файл конфигурации YAML, мы можем использовать словарь в виде дерева регулярных выражений в качестве парсера строк User-Agent. Поддерживается [uap-core](https://github.com/ua-parser/uap-core), и в функциональном тесте [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) показано, как его использовать. - -#### Сбор значений атрибутов \{#collecting-attribute-values\} - -Иногда полезно возвращать значения из нескольких регулярных выражений, которые сработали при сопоставлении, а не только значение конечного узла. В таких случаях можно использовать специализированную функцию [`dictGetAll`](../../sql-reference/functions/ext-dict-functions.md#dictGetAll). Если узел имеет значение атрибута типа `T`, `dictGetAll` вернет `Array(T)`, содержащий ноль или более значений. - -По умолчанию количество совпадений, возвращаемых на один ключ, не ограничено. Ограничение можно передать в качестве необязательного четвертого аргумента в `dictGetAll`. Массив заполняется в *топологическом порядке*, что означает, что дочерние узлы идут перед родительскими, а узлы на одном уровне следуют порядку в исходных данных. - -Пример: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - tag String, - topological_index Int64, - captured Nullable(String), - parent String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -LIFETIME(0) -``` - -```yaml -# /var/lib/clickhouse/user_files/regexp_tree.yaml -- regexp: 'clickhouse\.com' - tag: 'ClickHouse' - topological_index: 1 - paths: - - regexp: 'clickhouse\.com/docs(.*)' - tag: 'ClickHouse Documentation' - topological_index: 0 - captured: '\1' - parent: 'ClickHouse' - -- regexp: '/docs(/|$)' - tag: 'Documentation' - topological_index: 2 - -- regexp: 'github.com' - tag: 'GitHub' - topological_index: 3 - captured: 'NULL' -``` - -```sql -CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; -INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); -SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; -``` - -Результат: - -```text -┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ -│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ -│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ -│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ -└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ -``` - -#### Режимы сопоставления \{#matching-modes\} - -Поведение сопоставления по шаблону можно изменить с помощью определённых настроек словаря: - -- `regexp_dict_flag_case_insensitive`: Использовать регистронезависимое сопоставление (по умолчанию `false`). Может быть переопределено в отдельных выражениях с помощью `(?i)` и `(?-i)`. -- `regexp_dict_flag_dotall`: Разрешает символу `.` сопоставляться с символами перевода строки (по умолчанию `false`). - -### Использование словаря дерева регулярных выражений в ClickHouse Cloud \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} - -Ранее использованный источник `YAMLRegExpTree` работает в ClickHouse Open Source, но не в ClickHouse Cloud. Чтобы использовать словари дерева регулярных выражений в ClickHouse Cloud, сначала создайте такой словарь локально в ClickHouse Open Source из YAML-файла, затем выгрузите этот словарь в CSV-файл с помощью табличной функции `dictionary` и предложения [INTO OUTFILE](../statements/select/into-outfile.md). - -```sql -SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') -``` - -Содержимое CSV-файла: - -```text -1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" -2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" -3,2,"33/tclwebkit","['version']","['13']" -4,2,"3[12]/tclwebkit","['version']","['12']" -5,2,"3[12]/tclwebkit","['version']","['11']" -6,2,"3[12]/tclwebkit","['version']","['10']" -``` - -Схема файла дампа: - -* `id UInt64`: идентификатор узла RegexpTree. -* `parent_id UInt64`: идентификатор родительского узла. -* `regexp String`: строка регулярного выражения. -* `keys Array(String)`: имена пользовательских атрибутов. -* `values Array(String)`: значения пользовательских атрибутов. - -Чтобы создать словарь в ClickHouse Cloud, сначала создайте таблицу `regexp_dictionary_source_table` со следующей структурой: - -```sql -CREATE TABLE regexp_dictionary_source_table -( - id UInt64, - parent_id UInt64, - regexp String, - keys Array(String), - values Array(String) -) ENGINE=Memory; -``` - -Затем обновите локальный CSV, выполнив - -```bash -clickhouse client \ - --host MY_HOST \ - --secure \ - --password MY_PASSWORD \ - --query " - INSERT INTO regexp_dictionary_source_table - SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') - FORMAT CSV" < regexp_dict.csv -``` - -Подробнее см. раздел [Insert Local Files](/integrations/data-ingestion/insert-local-files). После инициализации исходной таблицы мы можем создать RegexpTree на основе исходной таблицы: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -PRIMARY KEY(regexp) -SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) -LIFETIME(0) -LAYOUT(regexp_tree); -``` - -## Встроенные словари \{#embedded-dictionaries\} - - - -ClickHouse содержит встроенную функциональность для работы с геобазой. - -Это позволяет вам: - -- Использовать ID региона, чтобы получить его название на нужном языке. -- Использовать ID региона, чтобы получить ID города, области, федерального округа, страны или континента. -- Проверять, входит ли регион в состав другого региона. -- Получать цепочку родительских регионов. - -Все функции поддерживают «транслокальность» — возможность одновременно использовать разные представления владения регионами. Для получения дополнительной информации см. раздел «Функции для работы с веб-аналитическими словарями». - -Встроенные словари отключены в стандартном пакете по умолчанию. -Чтобы их включить, раскомментируйте параметры `path_to_regions_hierarchy_file` и `path_to_regions_names_files` в конфигурационном файле сервера. - -Геобаза загружается из текстовых файлов. - -Поместите файлы `regions_hierarchy*.txt` в директорию `path_to_regions_hierarchy_file`. Этот параметр конфигурации должен содержать путь к файлу `regions_hierarchy.txt` (иерархия регионов по умолчанию), а остальные файлы (`regions_hierarchy_ua.txt`) должны находиться в той же директории. - -Поместите файлы `regions_names_*.txt` в директорию `path_to_regions_names_files`. - -Вы также можете создать эти файлы самостоятельно. Формат файла следующий: - -`regions_hierarchy*.txt`: TabSeparated (без заголовка), столбцы: - -- ID региона (`UInt32`) -- ID родительского региона (`UInt32`) -- тип региона (`UInt8`): 1 — континент, 3 — страна, 4 — федеральный округ, 5 — регион, 6 — город; остальные типы не используются -- население (`UInt32`) — необязательный столбец - -`regions_names_*.txt`: TabSeparated (без заголовка), столбцы: - -- ID региона (`UInt32`) -- название региона (`String`) — не может содержать символы табуляции или перевода строки, даже экранированные. - -Для хранения в RAM используется плоский массив. По этой причине ID не должны превышать один миллион. - -Словари можно обновлять без перезапуска сервера. Однако набор доступных словарей не обновляется. -Для обновления проверяются времена модификации файлов. Если файл изменился, словарь обновляется. -Интервал проверки изменений настраивается параметром `builtin_dictionaries_reload_interval`. -Обновления словарей (помимо загрузки при первом использовании) не блокируют запросы. Во время обновлений запросы используют старые версии словарей. Если при обновлении возникает ошибка, она записывается в лог сервера, а запросы продолжают использовать старую версию словарей. - -Рекомендуется периодически обновлять словари с геобазой. Во время обновления генерируйте новые файлы и записывайте их в отдельный каталог. Когда всё будет готово, переименуйте их в файлы, используемые сервером. - -Также существуют функции для работы с идентификаторами ОС и поисковыми системами, но их не следует использовать. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md index 7d27393d5ee..8ce91145cbd 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md @@ -970,6 +970,39 @@ SELECT modulo(5, 2) 1 ``` +## moduloLegacy \{#moduloLegacy\} + +Введена в версии: v1.1 + +Вычисляет остаток от деления. Это устаревшая реализация операции modulo, которая использует оператор C++ `%`, из‑за чего для отрицательных аргументов могут получаться отрицательные результаты. Эта функция существует для обратной совместимости со старой логикой партиционирования таблиц. Для стандартного поведения используйте `modulo` или `positiveModulo`. + +**Синтаксис** + +```sql +moduloLegacy(a, b) +``` + +**Аргументы** + +* `a` — делимое. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `b` — делитель. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) + +**Возвращаемое значение** + +Возвращает остаток от деления. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT moduloLegacy(10, 3) +``` + +```response title=Response +1 +``` + ## moduloOrNull \{#moduloOrNull\} Добавлена в версии: v25.5 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md index 59cb4a76795..7a6b5dd18f1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md @@ -4768,6 +4768,76 @@ SELECT indexOfAssumeSorted([1, 3, 3, 3, 4, 4, 5], 4) ``` +## kql_array_sort_asc \{#kql_array_sort_asc\} + +Добавлено в: v23.10 + +Сортирует один или несколько массивов по возрастанию. Первый массив сортируется, а последующие массивы переупорядочиваются в соответствии с отсортированному порядком первого массива. Значения NULL помещаются в конец. Это функция совместимости с KQL (Kusto Query Language). + +**Синтаксис** + +```sql +kql_array_sort_asc(array1[, array2, ..., nulls_last]) +``` + +**Аргументы** + +* `array1` — Массив для сортировки. [`Array(T)`](/sql-reference/data-types/array) +* `array2` — Необязательный аргумент. Дополнительные массивы, которые нужно упорядочить в соответствии с порядком сортировки `array1`. [`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — Необязательный аргумент. Логическое значение, указывающее, должны ли значения `NULL` располагаться в конце. По умолчанию — `true`. [`UInt8`](/sql-reference/data-types/int-uint) + +**Возвращаемое значение** + +Возвращает кортеж массивов, отсортированных по возрастанию. [`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT kql_array_sort_asc([3, 1, 2]) +``` + +```response title=Response +([1, 2, 3]) +``` + + +## kql_array_sort_desc \{#kql_array_sort_desc\} + +Введена в: v23.10 + +Сортирует один или несколько массивов по убыванию. Первый массив сортируется, а последующие массивы переупорядочиваются в соответствии с порядком элементов в первом массиве после сортировки. Значения NULL помещаются в конец. Это функция совместимости с KQL (Kusto Query Language). + +**Синтаксис** + +```sql +kql_array_sort_desc(array1[, array2, ..., nulls_last]) +``` + +**Аргументы** + +* `array1` — Массив, который нужно отсортировать. [`Array(T)`](/sql-reference/data-types/array) +* `array2` — Необязательные дополнительные массивы, которые нужно переупорядочить в соответствии с порядком сортировки массива `array1`. [`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — Необязательное булево значение, указывающее, должны ли `NULL`-значения располагаться в конце. Значение по умолчанию — `true`. [`UInt8`](/sql-reference/data-types/int-uint) + +**Возвращаемое значение** + +Возвращает кортеж массивов, отсортированных по убыванию. [`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT kql_array_sort_desc([3, 1, 2]) +``` + +```response title=Response +([3, 2, 1]) +``` + + ## length \{#length\} Введена в: v1.1 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md index 8c232a4af38..067c1bfbab4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md @@ -73,6 +73,267 @@ SELECT 1 = 1, 1 = 2; └──────────────┴──────────────┘ ``` +## globalIn \{#globalIn\} + +Введён в: v1.1 + +Аналогичен `in`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. + +**Синтаксис** + +```sql +globalIn(x, set) +``` + +**Аргументы** + +* `x` — проверяемое значение. - `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` содержится в `set`, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalInIgnoreSet \{#globalInIgnoreSet\} + +Добавлена в: v1.1 + +То же, что и `in`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. +Это вариант IgnoreSet, который используется для анализа типов без создания Set. + +**Синтаксис** + +```sql +globalIn(x, set) +``` + +**Аргументы** + +* `x` — Проверяемое значение. - `set` — Set значений. + +**Возвращаемое значение** + +Возвращает 1, если x принадлежит `set`, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotIn \{#globalNotIn\} + +Введена в версии v1.1 + +То же, что и `notIn`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. + +**Синтаксис** + +```sql +globalNotIn(x, set) +``` + +**Аргументы** + +* `x` — проверяемое значение. - `set` — множество значений. + +**Возвращаемое значение** + +Возвращает 1, если x не входит в множество, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotInIgnoreSet \{#globalNotInIgnoreSet\} + +Добавлено в версии v1.1 + +То же, что и `notIn`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. +Это вариант IgnoreSet, который используется для анализа типов без создания Set. + +**Синтаксис** + +```sql +globalNotIn(x, set) +``` + +**Аргументы** + +* `x` — проверяемое значение. +* `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` отсутствует в наборе, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotNullIn \{#globalNotNullIn\} + +Введена в версии: v1.1 + +То же, что и `notNullIn`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. + +**Синтаксис** + +```sql +globalNotNullIn(x, set) +``` + +**Аргументы** + +* `x` — значение, которое нужно проверить. - `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` отсутствует в наборе, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNotNullInIgnoreSet \{#globalNotNullInIgnoreSet\} + +Добавлено в: v1.1 + +То же, что и `notNullIn`, но использует глобальное распределение Set при выполнении распределённых запросов. Set отправляется на все удалённые серверы. +Это вариант IgnoreSet, который используется для анализа типов без создания Set. + +**Синтаксис** + +```sql +globalNotNullIn(x, set) +``` + +**Аргументы** + +* `x` — Проверяемое значение. - `set` — Множество значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` отсутствует во множестве, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNullIn \{#globalNullIn\} + +Впервые появилась в версии v1.1 + +То же, что и `nullIn`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. + +**Синтаксис** + +```sql +globalNullIn(x, set) +``` + +**Аргументы** + +* `x` — значение для проверки. - `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` принадлежит множеству, иначе — 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## globalNullInIgnoreSet \{#globalNullInIgnoreSet\} + +Добавлен в: v1.1 + +То же, что `nullIn`, но использует глобальное распределение Set в распределённых запросах. Set отправляется на все удалённые серверы. +Это вариант IgnoreSet, который используется для анализа типов без создания Set. + +**Синтаксис** + +```sql +globalNullIn(x, set) +``` + +**Аргументы** + +* `x` — Проверяемое значение. - `set` — Множество значений. + +**Возвращаемое значение** + +Возвращает 1, если x находится в set, в противном случае — 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + ## greater \{#greater\} Добавлена в версии v1.1 @@ -143,6 +404,72 @@ SELECT 2 >= 1, 2 >= 2, 1 >= 2; └───────────────────────┴───────────────────────┴───────────────────────┘ ``` +## in \{#in\} + +Впервые представлена в: v1.1 + +Проверяет, является ли левый операнд элементом множества, заданного правым операндом. Возвращает 1, если является, и 0 в противном случае. Значения NULL в левом операнде пропускаются (считаются отсутствующими в множестве). + +**Синтаксис** + +```sql +in(x, set) +``` + +**Аргументы** + +* `x` — Значение для проверки. - `set` — Набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` находится в наборе, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## inIgnoreSet \{#inIgnoreSet\} + +Введена в версии: v1.1 + +Проверяет, является ли левый операнд элементом множества правого операнда. Возвращает 1, если да, и 0 в противном случае. Значения NULL в левом операнде пропускаются (рассматриваются как отсутствующие в множестве). +Это вариант IgnoreSet, используемый при анализе типов без создания Set. + +**Синтаксис** + +```sql +in(x, set) +``` + +**Аргументы** + +* `x` — значение для проверки. +* `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` содержится в наборе, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + ## isDistinctFrom \{#isDistinctFrom\} Введена в версии: v25.11 @@ -339,4 +666,200 @@ SELECT 1 != 2, 1 != 1; └─────────────────┴─────────────────┘ ``` +## notIn \{#notIn\} + +Впервые появилась в: v1.1 + +Проверяет, что левый операнд НЕ является элементом множества, заданного правым операндом. Возвращает 1, если он отсутствует в множестве, и 0 в противном случае. Значения NULL в левом операнде пропускаются. + +**Синтаксис** + +```sql +notIn(x, set) +``` + +**Аргументы** + +* `x` — значение, которое нужно проверить. - `set` — множество значений. + +**Возвращаемое значение** + +Возвращает 1, если x отсутствует в множестве, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notInIgnoreSet \{#notInIgnoreSet\} + +Появилась в версии: v1.1 + +Проверяет, что левый операнд НЕ принадлежит множеству, заданному правым операндом. Возвращает 1, если значения нет в множестве, и 0 в противном случае. Значения NULL в левом операнде пропускаются. +Это вариант IgnoreSet, используемый для анализа типов без создания Set. + +**Синтаксис** + +```sql +notIn(x, set) +``` + +**Аргументы** + +* `x` — значение, которое нужно проверить. - `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` отсутствует в наборе, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notNullIn \{#notNullIn\} + +Впервые добавлена в: v1.1 + +Проверяет, что левый операнд НЕ является элементом множества в правом операнде. В отличие от `notIn`, значения NULL не пропускаются: NULL сравнивается с элементами Set, и выражение NULL = NULL оценивается как true. + +**Синтаксис** + +```sql +notNullIn(x, set) +``` + +**Аргументы** + +* `x` — значение для проверки. - `set` — множество значений. + +**Возвращаемое значение** + +Возвращает 1, если x не содержится в множестве, и 0 — в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## notNullInIgnoreSet \{#notNullInIgnoreSet\} + +Добавлено в версии: v1.1 + +Проверяет, что левый операнд НЕ принадлежит множеству, заданному правым операндом. В отличие от `notIn`, значения NULL не пропускаются: NULL сравнивается с элементами множества, и выражение NULL = NULL считается истинным. +Это вариант IgnoreSet, используемый для анализа типов без создания множества. + +**Синтаксис** + +```sql +notNullIn(x, set) +``` + +**Аргументы** + +* `x` — значение для проверки. +* `set` — множество значений. + +**Возвращаемое значение** + +Возвращает 1, если x не входит в множество, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## nullIn \{#nullIn\} + +Введена в версии: v1.1 + +Проверяет, принадлежит ли левый операнд множеству правого операнда. В отличие от `in`, значения NULL не пропускаются: NULL сравнивается с элементами множества, и выражение NULL = NULL вычисляется в истину. + +**Синтаксис** + +```sql +nullIn(x, set) +``` + +**Аргументы** + +* `x` — проверяемое значение. - `set` — набор значений. + +**Возвращаемое значение** + +Возвращает 1, если `x` содержится в наборе, иначе 0. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## nullInIgnoreSet \{#nullInIgnoreSet\} + +Введена в: v1.1 + +Проверяет, является ли левый операнд элементом множества в правом операнде. В отличие от `in`, значения NULL не пропускаются: NULL сравнивается с элементами множества, и выражение NULL = NULL вычисляется как true. +Это вариант IgnoreSet, который используется для анализа типов без создания множества. + +**Синтаксис** + +```sql +nullIn(x, set) +``` + +**Аргументы** + +* `x` — Проверяемое значение. - `set` — Набор значений. + +**Возвращаемое значение** + +Возвращает 1, если x принадлежит набору, и 0 в противном случае. [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md index 27ce19893b7..1b7adffa0ea 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md @@ -14,7 +14,7 @@ doc_type: 'reference' Таким образом, примеры, приведённые в этом разделе, по умолчанию будут приводить к исключению в [ClickHouse Fiddle](https://fiddle.clickhouse.com/), а также в быстрых и продукционных развертываниях, если предварительно не выполнить настройку. ::: -Сведения о создании справочных списков см. в разделе ["Dictionaries"](../dictionaries#embedded-dictionaries). +Сведения о создании справочных списков см. в разделе ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries). ## Несколько геобаз \{#multiple-geobases\} @@ -34,12 +34,13 @@ ClickHouse поддерживает одновременную работу с Пример: ```sql -regionToCountry(RegionID) – Использует словарь по умолчанию: /opt/geo/regions_hierarchy.txt -regionToCountry(RegionID, '') – Использует словарь по умолчанию: /opt/geo/regions_hierarchy.txt -regionToCountry(RegionID, 'ua') – Использует словарь для ключа 'ua': /opt/geo/regions_hierarchy_ua.txt +regionToCountry(RegionID) – Uses the default dictionary: /opt/geo/regions_hierarchy.txt +regionToCountry(RegionID, '') – Uses the default dictionary: /opt/geo/regions_hierarchy.txt +regionToCountry(RegionID, 'ua') – Uses the dictionary for the 'ua' key: /opt/geo/regions_hierarchy_ua.txt ``` -### regionToName {#regiontoname} + +### regionToName Принимает идентификатор региона и геобазу данных и возвращает строку с названием региона на соответствующем языке. Если региона с указанным идентификатором не существует, возвращается пустая строка. @@ -72,14 +73,15 @@ SELECT regionToName(number::UInt32,'en') FROM numbers(0,5); ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┐ │ │ -│ Мир │ -│ США │ -│ Колорадо │ -│ Округ Боулдер │ +│ World │ +│ USA │ +│ Colorado │ +│ Boulder County │ └────────────────────────────────────────────┘ ``` -### regionToCity {#regiontocity} + +### regionToCity Принимает идентификатор региона из геобазы. Если этот регион является городом или частью города, функция возвращает идентификатор региона соответствующего города. В противном случае возвращает 0. @@ -127,7 +129,8 @@ SELECT regionToName(number::UInt32, 'en'), regionToCity(number::UInt32) AS id, r └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────┘ ``` -### regionToArea {#regiontoarea} + +### regionToArea Преобразует регион в область (тип 5 в геобазе). Во всём остальном эта функция аналогична функции ['regionToCity'](#regiontocity). @@ -140,12 +143,12 @@ regionToArea(id [, geobase]) **Параметры** * `id` — идентификатор региона из геобазы. [UInt32](../data-types/int-uint). -* `geobase` — ключ словаря. См. [Multiple Geobases](#multiple-geobases). [String](../data-types/string). Необязательный параметр. +* `geobase` — ключ словаря. См. [Несколько геобаз](#multiple-geobases). [String](../data-types/string). Необязательный параметр. **Возвращаемое значение** -* Идентификатор региона для соответствующей области, если он существует. [UInt32](../data-types/int-uint). -* 0, если такого нет. +* идентификатор региона для соответствующего города, если такой регион существует. [UInt32](../data-types/int-uint). +* 0, если такого региона нет. **Пример** @@ -162,24 +165,25 @@ LIMIT 15 ```text ┌─regionToName(regionToArea(toUInt32(number), \'ua\'))─┐ │ │ -│ Москва и Московская область │ -│ Санкт-Петербург и Ленинградская область │ -│ Белгородская область │ -│ Ивановская область │ -│ Калужская область │ -│ Костромская область │ -│ Курская область │ -│ Липецкая область │ -│ Орловская область │ -│ Рязанская область │ -│ Смоленская область │ -│ Тамбовская область │ -│ Тверская область │ -│ Тульская область │ +│ Moscow and Moscow region │ +│ St. Petersburg and Leningrad region │ +│ Belgorod region │ +│ Ivanovsk region │ +│ Kaluga region │ +│ Kostroma region │ +│ Kursk region │ +│ Lipetsk region │ +│ Orlov region │ +│ Ryazan region │ +│ Smolensk region │ +│ Tambov region │ +│ Tver region │ +│ Tula region │ └──────────────────────────────────────────────────────┘ ``` -### regionToDistrict {#regiontodistrict} + +### regionToDistrict Преобразует регион в федеральный округ (тип 4 в геобазе). Во всём остальном эта функция аналогична `regionToCity`. @@ -196,7 +200,7 @@ regionToDistrict(id [, geobase]) **Возвращаемое значение** -* идентификатор региона для соответствующего города, если такой регион существует. [UInt32](../data-types/int-uint). +* Идентификатор региона для соответствующего города, если такой регион существует. [UInt32](../data-types/int-uint). * 0, если такого региона нет. **Пример** @@ -214,26 +218,27 @@ LIMIT 15 ```text ┌─regionToName(regionToDistrict(toUInt32(number), \'ua\'))─┐ │ │ -│ Центральный федеральный округ │ -│ Северо-Западный федеральный округ │ -│ Южный федеральный округ │ -│ Северо-Кавказский федеральный округ │ -│ Приволжский федеральный округ │ -│ Уральский федеральный округ │ -│ Сибирский федеральный округ │ -│ Дальневосточный федеральный округ │ -│ Шотландия │ -│ Фарерские острова │ -│ Фламандский регион │ -│ Брюссельский столичный регион │ -│ Валлония │ -│ Федерация Боснии и Герцеговины │ +│ Central federal district │ +│ Northwest federal district │ +│ South federal district │ +│ North Caucases federal district │ +│ Privolga federal district │ +│ Ural federal district │ +│ Siberian federal district │ +│ Far East federal district │ +│ Scotland │ +│ Faroe Islands │ +│ Flemish region │ +│ Brussels capital region │ +│ Wallonia │ +│ Federation of Bosnia and Herzegovina │ └──────────────────────────────────────────────────────────┘ ``` -### regionToCountry {#regiontocountry} -Преобразует регион в страну (тип 3 в геобазе). Во всём остальном эта функция аналогична `regionToCity`. +### regionToCountry + +Преобразует регион в страну (тип 3 в geobase). В остальном эта функция аналогична функции 'regionToCity'. **Синтаксис** @@ -264,22 +269,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToCountry(number::UInt32) AS id ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToCountry(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ Мир │ 0 │ │ -│ США │ 2 │ США │ -│ Колорадо │ 2 │ США │ -│ Округ Боулдер │ 2 │ США │ -│ Боулдер │ 2 │ США │ -│ Китай │ 6 │ Китай │ -│ Сычуань │ 6 │ Китай │ -│ Чэнду │ 6 │ Китай │ -│ Америка │ 0 │ │ -│ Северная Америка │ 0 │ │ -│ Евразия │ 0 │ │ -│ Азия │ 0 │ │ +│ World │ 0 │ │ +│ USA │ 2 │ USA │ +│ Colorado │ 2 │ USA │ +│ Boulder County │ 2 │ USA │ +│ Boulder │ 2 │ USA │ +│ China │ 6 │ China │ +│ Sichuan │ 6 │ China │ +│ Chengdu │ 6 │ China │ +│ America │ 0 │ │ +│ North America │ 0 │ │ +│ Eurasia │ 0 │ │ +│ Asia │ 0 │ │ └────────────────────────────────────────────┴────┴─────────────────────────────────────────────────────────────┘ ``` -### regionToContinent {#regiontocontinent} + +### regionToContinent Преобразует регион в континент (тип 1 в geobase). В остальном эта функция аналогична функции 'regionToCity'. @@ -297,7 +303,7 @@ regionToContinent(id [, geobase]) **Возвращаемое значение** * Идентификатор региона соответствующего континента, если он существует. [UInt32](../data-types/int-uint). -* 0, если такого региона нет. +* 0, если такого нет. **Пример** @@ -312,22 +318,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToContinent(number::UInt32) AS ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ Мир │ 0 │ │ -│ USA │ 10 │ Северная Америка │ -│ Colorado │ 10 │ Северная Америка │ -│ Boulder County │ 10 │ Северная Америка │ -│ Boulder │ 10 │ Северная Америка │ -│ China │ 12 │ Азия │ -│ Sichuan │ 12 │ Азия │ -│ Chengdu │ 12 │ Азия │ -│ Америка │ 9 │ Америка │ -│ Северная Америка │ 10 │ Северная Америка │ -│ Евразия │ 11 │ Евразия │ -│ Азия │ 12 │ Азия │ +│ World │ 0 │ │ +│ USA │ 10 │ North America │ +│ Colorado │ 10 │ North America │ +│ Boulder County │ 10 │ North America │ +│ Boulder │ 10 │ North America │ +│ China │ 12 │ Asia │ +│ Sichuan │ 12 │ Asia │ +│ Chengdu │ 12 │ Asia │ +│ America │ 9 │ America │ +│ North America │ 10 │ North America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 12 │ Asia │ └────────────────────────────────────────────┴────┴───────────────────────────────────────────────────────────────┘ ``` -### regionToTopContinent {#regiontotopcontinent} + +### regionToTopContinent Находит континент верхнего уровня в иерархии для региона. @@ -360,24 +367,25 @@ SELECT regionToName(number::UInt32, 'en'), regionToTopContinent(number::UInt32) ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToTopContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ Мир │ 0 │ │ -│ США │ 9 │ Америка │ -│ Колорадо │ 9 │ Америка │ -│ Округ Боулдер │ 9 │ Америка │ -│ Боулдер │ 9 │ Америка │ -│ Китай │ 11 │ Евразия │ -│ Сычуань │ 11 │ Евразия │ -│ Чэнду │ 11 │ Евразия │ -│ Америка │ 9 │ Америка │ -│ North Америка │ 9 │ Америка │ -│ Евразия │ 11 │ Евразия │ -│ Азия │ 11 │ Евразия │ +│ World │ 0 │ │ +│ USA │ 9 │ America │ +│ Colorado │ 9 │ America │ +│ Boulder County │ 9 │ America │ +│ Boulder │ 9 │ America │ +│ China │ 11 │ Eurasia │ +│ Sichuan │ 11 │ Eurasia │ +│ Chengdu │ 11 │ Eurasia │ +│ America │ 9 │ America │ +│ North America │ 9 │ America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 11 │ Eurasia │ └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────────────┘ ``` -### regionToPopulation {#regiontopopulation} -Возвращает численность населения для региона. Данные о населении могут храниться в файлах geobase. См. раздел ["Dictionaries"](../dictionaries#embedded-dictionaries). Если численность населения для региона не указана, функция возвращает 0. В geobase численность населения может быть указана для дочерних регионов, но не для родительских. +### regionToPopulation + +Возвращает численность населения для региона. Данные о населении могут храниться в файлах geobase. См. раздел ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries). Если численность населения для региона не указана, функция возвращает 0. В geobase численность населения может быть указана для дочерних регионов, но не для родительских. **Синтаксис** @@ -408,22 +416,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToPopulation(number::UInt32) AS ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─population─┐ │ │ 0 │ -│ Мир │ 4294967295 │ -│ США │ 330000000 │ -│ Колорадо │ 5700000 │ -│ Округ Боулдер │ 330000 │ -│ Боулдер │ 100000 │ -│ Китай │ 1500000000 │ -│ Сычуань │ 83000000 │ -│ Чэнду │ 20000000 │ -│ Америка │ 1000000000 │ -│ North Америка │ 600000000 │ -│ Евразия │ 4294967295 │ -│ Азия │ 4294967295 │ +│ World │ 4294967295 │ +│ USA │ 330000000 │ +│ Colorado │ 5700000 │ +│ Boulder County │ 330000 │ +│ Boulder │ 100000 │ +│ China │ 1500000000 │ +│ Sichuan │ 83000000 │ +│ Chengdu │ 20000000 │ +│ America │ 1000000000 │ +│ North America │ 600000000 │ +│ Eurasia │ 4294967295 │ +│ Asia │ 4294967295 │ └────────────────────────────────────────────┴────────────┘ ``` -### regionIn {#regionin} + +### regionIn Проверяет, принадлежит ли регион `lhs` региону `rhs`. Возвращает число типа UInt8, равное 1, если принадлежит, и 0 — если не принадлежит. @@ -453,25 +462,26 @@ regionIn(lhs, rhs\[, geobase\]) Запрос: ```sql -SELECT regionToName(n1.number::UInt32, 'ru') || (regionIn(n1.number::UInt32, n2.number::UInt32) ? ' входит в ' : ' не входит в ') || regionToName(n2.number::UInt32, 'ru') FROM numbers(1,2) AS n1 CROSS JOIN numbers(1,5) AS n2; +SELECT regionToName(n1.number::UInt32, 'en') || (regionIn(n1.number::UInt32, n2.number::UInt32) ? ' is in ' : ' is not in ') || regionToName(n2.number::UInt32, 'en') FROM numbers(1,2) AS n1 CROSS JOIN numbers(1,5) AS n2; ``` Результат: ```text -World содержится в World -World не содержится в USA -World не содержится в Colorado -World не содержится в Boulder County -World не содержится в Boulder -USA содержится в World -USA содержится в USA -USA не содержится в Colorado -USA не содержится в Boulder County -USA не содержится в Boulder +World is in World +World is not in USA +World is not in Colorado +World is not in Boulder County +World is not in Boulder +USA is in World +USA is in USA +USA is not in Colorado +USA is not in Boulder County +USA is not in Boulder ``` -### regionHierarchy {#regionhierarchy} + +### regionHierarchy Принимает число типа UInt32 — идентификатор региона из геобазы. Возвращает массив идентификаторов регионов, включающий переданный регион и всех его родительских регионов по цепочке. @@ -503,16 +513,16 @@ SELECT regionHierarchy(number::UInt32) AS arr, arrayMap(id -> regionToName(id, ' ```text ┌─arr────────────┬─arrayMap(lambda(tuple(id), regionToName(id, 'en')), regionHierarchy(CAST(number, 'UInt32')))─┐ │ [] │ [] │ -│ [1] │ ['Мир'] │ -│ [2,10,9,1] │ ['США','Северная Америка','Америка','Мир'] │ -│ [3,2,10,9,1] │ ['Колорадо','США','Северная Америка','Америка','Мир'] │ -│ [4,3,2,10,9,1] │ ['Округ Боулдер','Колорадо','США','Северная Америка','Америка','Мир'] │ +│ [1] │ ['World'] │ +│ [2,10,9,1] │ ['USA','North America','America','World'] │ +│ [3,2,10,9,1] │ ['Colorado','USA','North America','America','World'] │ +│ [4,3,2,10,9,1] │ ['Boulder County','Colorado','USA','North America','America','World'] │ └────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────┘ ``` {/* - Внутреннее содержимое тегов ниже заменяется в процессе сборки фреймворка документации - документами, сгенерированными из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. + Содержимое тегов ниже при сборке фреймворка документации заменяется документацией, + сгенерированной из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md index 043cc15be09..9ef30980f76 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md @@ -9,10 +9,10 @@ doc_type: 'reference' # Функции для работы со словарями \{#functions-for-working-with-dictionaries\} :::note -Для словарей, создаваемых с помощью [DDL‑запросов](../../sql-reference/statements/create/dictionary.md), параметр `dict_name` должен быть полностью указан в формате `.`. В противном случае используется текущая база данных. +Для словарей, создаваемых с помощью [DDL‑запросов](../statements/create/dictionary/index.md), параметр `dict_name` должен быть полностью указан в формате `.`. В противном случае используется текущая база данных. ::: -Информацию о подключении и настройке словарей см. в разделе [Словари](../../sql-reference/dictionaries/index.md). +Информацию о подключении и настройке словарей см. в разделе [Словари](../statements/create/dictionary/index.md). ## Примеры словарей \{#example-dictionary\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md index 94af4b183b3..b4a6cf14ddc 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md @@ -1093,6 +1093,40 @@ SELECT JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b', 4) = 0; ``` +## JSONKey \{#JSONKey\} + +Введена в: v20.1 + +Возвращает ключ поля JSON-объекта по его индексу (нумерация с единицы). Если JSON передаётся в виде строки, он сначала разбирается. Второй аргумент — это JSON-путь для перехода во вложенные объекты. Функция возвращает имя ключа в указанной позиции. + +**Синтаксис** + +```sql +JSONKey(json[, indices_or_keys, ...]) +``` + +**Аргументы** + +* `json` — JSON-строка для разбора. [`String`](/sql-reference/data-types/string) +* `indices_or_keys` — необязательный список индексов или ключей, определяющих путь к вложенному элементу. Каждый аргумент может быть либо строкой (доступ по ключу), либо целым числом (доступ по индексу, начиная с 1). [`String`](/sql-reference/data-types/string) или [`Int*`](/sql-reference/data-types/int-uint) + +**Возвращаемое значение** + +Возвращает имя ключа на указанной позиции в JSON-объекте. [`String`](/sql-reference/data-types/string) + +**Примеры** + +**Пример использования** + +```sql title=Query +SELECT JSONKey('{"a": "hello", "b": [-100, 200.0, 300]}', 1); +``` + +```response title=Response +a +``` + + ## JSONLength \{#JSONLength\} Добавлена в версии: v20.1 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md index eb4599182f5..427235f6d1c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md @@ -9,7 +9,7 @@ doc_type: 'reference' # Математические функции \{#mathematical-functions\} {/* - Внутреннее содержимое приведённых ниже тегов при сборке фреймворка документации + При сборке фреймворка документации внутреннее содержимое расположенных ниже тегов заменяется документацией, сгенерированной из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } @@ -18,7 +18,7 @@ doc_type: 'reference' ## acos \{#acos\} -Впервые появилась в версии: v1.1 +Впервые появилась в версии v1.1 Возвращает арккосинус аргумента. @@ -30,11 +30,11 @@ acos(x) **Аргументы** -* `x` — значение, для которого вычисляется арккосинус. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — Значение, для которого вычисляется арккосинус. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает арккосинус числа `x` в виде [`Float*`](/sql-reference/data-types/float) +Возвращает арккосинус от x типа [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -62,7 +62,7 @@ acosh(x) **Аргументы** -* `x` — значение гиперболического косинуса угла. Значения из интервала: `1 ≤ x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — гиперболический косинус угла. Значения из интервала: `1 ≤ x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -82,7 +82,7 @@ SELECT acosh(1) ## asin \{#asin\} -Впервые появилась в версии v1.1 +Добавлена в: v1.1 Вычисляет арксинус переданного аргумента. Для аргументов в диапазоне `[-1, 1]` возвращает значение в диапазоне `[-pi() / 2, pi() / 2]`. @@ -95,11 +95,11 @@ asin(x) **Аргументы** -* `x` — аргумент, для которого вычисляется арксинус. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) +* `x` — аргумент, для которого нужно вычислить арксинус. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float), или [`Decimal`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает арксинус аргумента `x` в формате [`Float64`](/sql-reference/data-types/float) +Возвращает значение арксинуса аргумента `x` типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -135,7 +135,7 @@ nan nan nan nan ## asinh \{#asinh\} -Впервые добавлена в версии: v20.12 +Добавлено в версии: v20.12 Возвращает обратный гиперболический синус. @@ -147,15 +147,15 @@ asinh(x) **Аргументы** -* `x` — гиперболический синус угла. Значения из диапазона: `-∞ < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — значение гиперболического синуса угла. Значения из интервала: `-∞ < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает угол в радианах. Значения из диапазона: `-∞ < asinh(x) < +∞`. [`Float64`](/sql-reference/data-types/float) +Возвращает угол в радианах. Значения из интервала: `-∞ < asinh(x) < +∞`. [`Float64`](/sql-reference/data-types/float) **Примеры** -**Базовое использование** +**Базовый пример** ```sql title=Query SELECT asinh(0) @@ -167,9 +167,9 @@ SELECT asinh(0) ## atan \{#atan\} -Появился в версии v1.1 +Впервые появилась в версии v1.1 -Возвращает арктангенс аргумента. +Возвращает арктангенс от аргумента. **Синтаксис** @@ -179,11 +179,11 @@ atan(x) **Аргументы** -* `x` — значение, для которого нужно вычислить арктангенс. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — значение, для которого вычисляется арктангенс. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает арктангенс числа `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает арктангенс от `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -199,9 +199,9 @@ SELECT atan(1); ## atan2 \{#atan2\} -Появилась в версии: v20.12 +Добавлено в: v20.12 -Возвращает значение функции atan2 — угол в евклидовой плоскости в радианах между положительным направлением оси x и лучом, проходящим через точку `(x, y) ≠ (0, 0)`. +Возвращает atan2 — угол на евклидовой плоскости, заданный в радианах, между положительной осью X и лучом к точке `(x, y) ≠ (0, 0)`. **Синтаксис** @@ -211,12 +211,12 @@ atan2(y, x) **Аргументы** -* `y` — координата y точки, через которую проходит луч. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) -* `x` — координата x точки, через которую проходит луч. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `y` — y-координата точки, через которую проходит луч. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — x-координата точки, через которую проходит луч. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает угол `θ`, такой что `-π < θ ≤ π`, в радианах, типа [`Float64`](/sql-reference/data-types/float) +Возвращает угол `θ`, удовлетворяющий условию `-π < θ ≤ π`, в радианах типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -232,7 +232,7 @@ SELECT atan2(1, 1) ## atanh \{#atanh\} -Появилась в версии v20.12 +Добавлена в версии: v20.12 Возвращает обратный гиперболический тангенс. @@ -244,11 +244,11 @@ atanh(x) **Аргументы** -* `x` — гиперболический тангенс аргумента. Значения из диапазона: -1 < x < 1. `(U)Int*`, `Float*` или `Decimal*`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — значение гиперболического тангенса угла. Значения из интервала: -1 < x < 1. `(U)Int*`, `Float*` или `Decimal*`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает угол в радианах. Значения из диапазона: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) +Возвращает угол в радианах. Значения из интервала: -∞ < atanh(x) < +∞ [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -264,7 +264,7 @@ SELECT atanh(0) ## cbrt \{#cbrt\} -Добавлена в версии v1.1 +Добавлено в версии: v1.1 Возвращает кубический корень аргумента. @@ -276,11 +276,11 @@ cbrt(x) **Аргументы** -* `x` — Значение, для которого нужно найти кубический корень. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — значение, кубический корень которого нужно найти. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает кубический корень от `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает кубический корень `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -296,7 +296,7 @@ SELECT cbrt(8); ## cos \{#cos\} -Введена в версии v1.1 +Добавлено в версии: v1.1 Возвращает косинус аргумента. @@ -312,7 +312,7 @@ cos(x) **Возвращаемое значение** -Возвращает косинус `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает гиперболический косинус `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -328,7 +328,7 @@ SELECT cos(0); ## cosh \{#cosh\} -Добавлена в: v20.12 +Введена в версии: v20.12 Возвращает гиперболический косинус аргумента. @@ -340,15 +340,15 @@ cosh(x) **Аргументы** -* `x` — угол в радианах. Значения из интервала: `-∞ < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — угол в радианах. Значения на интервале: `-∞ < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает значения из интервала: `1 ≤ cosh(x) < +∞` [`Float64`](/sql-reference/data-types/float) +Возвращает значение из интервала: `1 ≤ cosh(x) < +∞` [`Float64`](/sql-reference/data-types/float) **Примеры** -**Базовый пример** +**Базовое использование** ```sql title=Query SELECT cosh(0) @@ -360,7 +360,7 @@ SELECT cosh(0) ## degrees \{#degrees\} -Добавлена в версии: v22.2 +Добавлена в версии v22.2 Преобразует радианы в градусы. @@ -394,7 +394,7 @@ SELECT degrees(3.141592653589793) Введена в версии v1.1 -Возвращает постоянную Эйлера e. +Возвращает константу Эйлера (e). **Синтаксис** @@ -408,7 +408,7 @@ e() **Возвращаемое значение** -Возвращает константу Эйлера типа [`Float64`](/sql-reference/data-types/float) +Возвращает постоянную Эйлера [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -424,9 +424,9 @@ SELECT e(); ## erf \{#erf\} -Введена в версии: v1.1 +Введена в: v1.1 -Если `x` неотрицательно, то `erf(x/(σ√2))` — это вероятность того, что случайная величина, имеющая нормальное распределение со стандартным отклонением `σ`, примет значение, которое отклоняется от математического ожидания более чем на `x`. +Если `x` неотрицательно, то `erf(x/(σ√2))` — это вероятность того, что случайная величина, имеющая нормальное распределение со стандартным отклонением `σ`, примет значение, отличающееся от математического ожидания более чем на `x`. **Синтаксис** @@ -436,7 +436,7 @@ erf(x) **Аргументы** -* `x` — Значение, для которого вычисляется значение функции ошибок. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — Значение, для которого вычисляется функция ошибок. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -458,9 +458,9 @@ SELECT erf(3 / sqrt(2)) ## erfc \{#erfc\} -Впервые появилась в версии v1.1 +Введена в версии: v1.1 -Возвращает значение, близкое к `1 - erf(x)`, без потери точности даже для больших значений `x`. +Возвращает число, близкое к `1-erf(x)`, без потери точности для больших значений `x`. **Синтаксис** @@ -470,7 +470,7 @@ erfc(x) **Аргументы** -* `x` — значение, для которого вычисляется дополнительная функция ошибок. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — Значение, для которого нужно найти значение функции ошибок. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -490,9 +490,9 @@ SELECT erfc(0); ## exp \{#exp\} -Добавлено в: v1.1 +Добавлена в: v1.1 -Возвращает `e`, возведённое в степень `x`, где `x` — переданный функции аргумент. +Возвращает число e в степени `x`, где `x` — аргумент функции. **Синтаксис** @@ -502,11 +502,11 @@ exp(x) **Аргументы** -* `x` — показатель степени, тип [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — показатель степени. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает `e^x` типа [`Float*`](/sql-reference/data-types/float) +Возвращает значение `e^x` типа [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -524,9 +524,9 @@ SELECT round(exp(-1), 4) ## exp10 \{#exp10\} -Появилась в версии v1.1 +Впервые представлена в: v1.1 -Возвращает 10, возведённое в степень, заданную аргументом. +Возвращает 10 в степени указанного аргумента. **Синтаксис** @@ -540,7 +540,7 @@ exp10(x) **Возвращаемое значение** -Возвращает 10^x типа [`Float*`](/sql-reference/data-types/float) +Возвращает значение 10^x типа [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -556,9 +556,9 @@ SELECT exp10(2); ## exp2 \{#exp2\} -Появилось в версии: v1.1 +Появилась в версии: v1.1 -Возвращает 2 в степени указанного аргумента. +Возвращает 2 в степени, заданной аргументом. **Синтаксис** @@ -568,11 +568,11 @@ exp2(x) **Аргументы** -* `x` — показатель степени. Тип [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — показатель степени. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает число 2^x типа [`Float*`](/sql-reference/data-types/float) +Возвращает 2^x как значение типа [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -588,11 +588,11 @@ SELECT exp2(3); ## factorial \{#factorial\} -Введена в версии v22.11 +Добавлена в версии: v22.11 -Вычисляет факториал целочисленного значения. +Вычисляет факториал целого числа. Факториал 0 равен 1. Аналогично, функция `factorial()` возвращает `1` для любого отрицательного значения. -Максимальное положительное значение входного аргумента — `20`; значение `21` или больше вызовет исключение. +Максимальное положительное значение входного аргумента — `20`, значение `21` или больше приведёт к исключению. **Синтаксис** @@ -602,11 +602,11 @@ factorial(n) **Аргументы** -* `n` — целочисленное значение, факториал которого нужно вычислить. Максимальное значение — 20. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `n` — целочисленное значение, для которого нужно вычислить факториал. Максимальное значение — 20. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает факториал входного значения в виде UInt64. Возвращает 1, если на вход подано 0 или отрицательное значение. [`UInt64`](/sql-reference/data-types/int-uint) +Возвращает факториал аргумента типа UInt64. Возвращает 1 для аргумента 0 или любого отрицательного значения. [`UInt64`](/sql-reference/data-types/int-uint) **Примеры** @@ -622,10 +622,10 @@ factorial(10) ## hypot \{#hypot\} -Добавлена в: v20.12 +Появилась в: v20.12 Возвращает длину гипотенузы прямоугольного треугольника. -Функция `hypot` предотвращает проблемы, возникающие при возведении в квадрат очень больших или очень малых чисел. +Функция `hypot` позволяет избежать проблем, возникающих при возведении в квадрат очень больших или очень малых чисел. **Синтаксис** @@ -656,7 +656,7 @@ SELECT hypot(1, 1) ## intExp10 \{#intExp10\} -Добавлена в версии: v1.1 +Добавлена в версии v1.1 Аналог функции [exp10](#exp10), но возвращает число типа `UInt64`. @@ -668,11 +668,11 @@ intExp10(x) **Аргументы** -* `x` — показатель степени. [`Int*`](/sql-reference/data-types/int-uint), [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `x` — показатель степени. [`Int*`](/sql-reference/data-types/int-uint) или [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) **Возвращаемое значение** -Возвращает 10^x в виде значения типа [`UInt64`](/sql-reference/data-types/int-uint). +Возвращает 10^x как значение типа [`UInt64`](/sql-reference/data-types/int-uint). **Примеры** @@ -688,9 +688,9 @@ SELECT intExp10(2); ## intExp2 \{#intExp2\} -Добавлена в версии v1.1 +Впервые появилась в версии v1.1 -Как [exp2](#exp2), но возвращает число типа `UInt64`. +Аналог [exp2](#exp2), но возвращает число типа `UInt64`. **Синтаксис** @@ -720,7 +720,7 @@ SELECT intExp2(3); ## lgamma \{#lgamma\} -Введена в версии v1.1 +Появилась в версии: v1.1 Возвращает логарифм гамма-функции. @@ -732,7 +732,7 @@ lgamma(x) **Аргументы** -* `x` — число, для которого вычисляется логарифм гамма-функции. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — число, для которого нужно вычислить логарифм гамма-функции. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -752,7 +752,7 @@ SELECT lgamma(5); ## log \{#log\} -Впервые появилась в версии v1.1 +Впервые добавлена в: v1.1 Возвращает натуральный логарифм аргумента. @@ -766,11 +766,11 @@ log(x) **Аргументы** -* `x` — число, для которого нужно вычислить натуральный логарифм. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — число, для которого вычисляется натуральный логарифм. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает натуральный логарифм `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает натуральный логарифм числа `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -786,7 +786,7 @@ SELECT log(10); ## log10 \{#log10\} -Впервые представлена в версии: v1.1 +Появилась в версии v1.1. Возвращает десятичный логарифм аргумента. @@ -798,7 +798,7 @@ log10(x) **Аргументы** -* `x` — число, для которого вычисляется десятичный логарифм. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — Число, для которого нужно вычислить десятичный логарифм. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -818,10 +818,10 @@ SELECT log10(100); ## log1p \{#log1p\} -Добавлена в версии: v20.12 +Введена в версии: v20.12 -Вычисляет log(1 + x). -Вычисление log1p(x) даёт более точный результат, чем log(1 + x), для малых значений `x`. +Вычисляет log(1+x). +Вычисление log1p(x) более точно, чем log(1+x), для малых значений `x`. **Синтаксис** @@ -831,11 +831,11 @@ log1p(x) **Аргументы** -* `x` — значения из интервала `-1 < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — значения из интервала: `-1 < x < +∞`. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает значения из интервала: -∞ < log1p(x) < +∞ [`Float64`](/sql-reference/data-types/float) +Возвращает значения из интервала: -∞ < log1p(x) < +∞ типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -851,7 +851,7 @@ SELECT log1p(0) ## log2 \{#log2\} -Введена в версии: v1.1 +Впервые появилась в v1.1 Возвращает двоичный логарифм аргумента. @@ -867,7 +867,7 @@ log2(x) **Возвращаемое значение** -Возвращает двоичный логарифм `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает двоичный логарифм числа `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -883,9 +883,9 @@ SELECT log2(8); ## pi \{#pi\} -Введена в версии v1.1 +Появилась в версии: v1.1 -Возвращает число π. +Возвращает число пи (π). **Синтаксис** @@ -915,9 +915,9 @@ SELECT pi(); ## pow \{#pow\} -Введена в версии: v1.1 +Добавлена в версии v1.1 -Возвращает x, возведённый в степень y. +Возвращает x в степени y. **Синтаксис** @@ -929,12 +929,12 @@ pow(x, y) **Аргументы** -* `x` — основание. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — основание степени. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) * `y` — показатель степени. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает x^y типа [`Float64`](/sql-reference/data-types/float) +Возвращает значение x^y типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -948,6 +948,48 @@ SELECT pow(2, 3); 8 ``` +## proportionsZTest \{#proportionsZTest\} + +Введена в: v22.3 + +Возвращает значение статистики Z-критерия для сравнения двух пропорций — статистического теста для сравнения долей в двух генеральных совокупностях x и y. +Функция поддерживает как объединённый (pooled), так и раздельный (unpooled) методы оценки стандартной ошибки. +В объединённом варианте две пропорции усредняются, и для оценки стандартной ошибки используется только одна пропорция. +В раздельном варианте две пропорции используются по отдельности. + +**Синтаксис** + +```sql +proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type) +``` + +**Аргументы** + +* `successes_x` — Количество успехов в совокупности x. [`UInt64`](/sql-reference/data-types/int-uint) +* `successes_y` — Количество успехов в совокупности y. [`UInt64`](/sql-reference/data-types/int-uint) +* `trials_x` — Количество испытаний в совокупности x. [`UInt64`](/sql-reference/data-types/int-uint) +* `trials_y` — Количество испытаний в совокупности y. [`UInt64`](/sql-reference/data-types/int-uint) +* `conf_level` — Уровень доверия для теста. [`Float64`](/sql-reference/data-types/float) +* `pool_type` — Выбор метода объединения для оценки стандартной ошибки. Может принимать значения 'unpooled' или 'pooled'. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает кортеж из значений: `z_stat` (Z-статистика), `p_val` (p-значение), `ci_low` (нижняя граница доверительного интервала), `ci_high` (верхняя граница доверительного интервала). [`Tuple(Float64, Float64, Float64, Float64)`](/sql-reference/data-types/tuple) + +**Примеры** + +**Пример использования** + +```sql title=Query +SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled'); +``` + +```response title=Response +┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐ +│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │ +└────────────────────────────────────────────────────────────────────────────────────┘ +``` + ## radians \{#radians\} Добавлена в версии: v22.2 @@ -962,11 +1004,11 @@ radians(x) **Аргументы** -* `x` — Входное значение в градусах. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — входное значение в градусах. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает значение в радианах [`Float64`](/sql-reference/data-types/float) +Возвращает значение в радианах типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -980,9 +1022,41 @@ SELECT radians(180) 3.141592653589793 ``` +## sigmoid \{#sigmoid\} + +Введена в версии v20.1 + +Вычисляет сигмоидную функцию: `1 / (1 + exp(-x))`. Сигмоидная функция отображает любое действительное число в диапазон (0, 1) и обычно используется в задачах машинного обучения. + +**Синтаксис** + +```sql +sigmoid(x) +``` + +**Аргументы** + +* `x` — входное значение. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) + +**Возвращаемое значение** + +Возвращает сигмоиду входного значения в интервале (0, 1). [`Float64`](/sql-reference/data-types/float) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT sigmoid(0) +``` + +```response title=Response +0.5 +``` + ## sign \{#sign\} -Добавлена в версии: v21.2 +Появилась в версии v21.2. Возвращает знак вещественного числа. @@ -998,7 +1072,7 @@ sign(x) **Возвращаемое значение** -Возвращает `-1` при `x < 0`, `0` при `x = 0`, `1` при `x > 0`. [`Int8`](/sql-reference/data-types/int-uint) +Возвращает `-1` для `x < 0`, `0` для `x = 0`, `1` для `x > 0`. [`Int8`](/sql-reference/data-types/int-uint) **Примеры** @@ -1012,7 +1086,7 @@ SELECT sign(0) 0 ``` -**Знак для положительных значений** +**Знак для положительных чисел** ```sql title=Query SELECT sign(1) @@ -1022,7 +1096,7 @@ SELECT sign(1) 1 ``` -**Знак отрицательных значений** +**Знак для отрицательных чисел** ```sql title=Query SELECT sign(-1) @@ -1034,7 +1108,7 @@ SELECT sign(-1) ## sin \{#sin\} -Появилась в версии: v +Введена в версии: v1.1 Возвращает синус аргумента. @@ -1046,15 +1120,15 @@ sin(x) **Аргументы** -* `x` — число, синус которого возвращается. [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — число, гиперболический синус которого будет возвращён. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает синус `x`. +Возвращает гиперболический синус от x. **Примеры** -**Простой пример** +**простой** ```sql title=Query SELECT sin(1.23) @@ -1066,7 +1140,7 @@ SELECT sin(1.23) ## sinh \{#sinh\} -Добавлено в: v20.12 +Добавлена в версии: v20.12 Возвращает гиперболический синус. @@ -1078,11 +1152,11 @@ sinh(x) **Аргументы** -* `x` — угол в радианах. Значения из интервала: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — угол в радианах. Допустимые значения: -∞ < x < +∞. Тип: [`(U)Int*`](/sql-reference/data-types/int-uint), [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает значение из интервала: -∞ < sinh(x) < +∞ [`Float64`](/sql-reference/data-types/float) +Возвращает значение из интервала -∞ < sinh(x) < +∞ типа [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -1098,7 +1172,7 @@ SELECT sinh(0) ## sqrt \{#sqrt\} -Введена в версии v1.1 +Появилась в версии: v1.1 Возвращает квадратный корень от аргумента. @@ -1110,7 +1184,7 @@ sqrt(x) **Аргументы** -* `x` — число, квадратный корень которого нужно найти. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — число, для которого требуется вычислить квадратный корень. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -1130,7 +1204,7 @@ SELECT sqrt(16); ## tan \{#tan\} -Появилась в версии: v1.1 +Добавлено в: v1.1 Возвращает тангенс аргумента. @@ -1146,7 +1220,7 @@ tan(x) **Возвращаемое значение** -Возвращает тангенс угла `x`. [`Float*`](/sql-reference/data-types/float) +Возвращает значение гиперболического тангенса `x`. [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -1162,7 +1236,7 @@ SELECT tan(0); ## tanh \{#tanh\} -Впервые появилась в версии: v20.1 +Добавлена в версии: v20.1 Возвращает гиперболический тангенс. @@ -1174,11 +1248,11 @@ tanh(x) **Аргументы** -* `x` — угол в радианах. Значение из интервала: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — угол в радианах. Значения из интервала: -∞ < x < +∞. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Возвращает значение из интервала: -1 < tanh(x) < 1 [`Float*`](/sql-reference/data-types/float) +Возвращает значения из интервала: -1 < tanh(x) < 1 [`Float*`](/sql-reference/data-types/float) **Примеры** @@ -1194,9 +1268,9 @@ SELECT tanh(0) ## tgamma \{#tgamma\} -Появилась в версии: v1.1 +Добавлено в версии: v1.1 -Возвращает гамма-функцию. +Возвращает значение гамма-функции. **Синтаксис** @@ -1206,7 +1280,7 @@ tgamma(x) **Аргументы** -* `x` — число, для которого нужно вычислить гамма-функцию. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — число, для которого вычисляется значение гамма-функции. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal*`](/sql-reference/data-types/decimal) **Возвращаемое значение** @@ -1226,10 +1300,10 @@ SELECT tgamma(5); ## widthBucket \{#widthBucket\} -Добавлена в: v23.3 +Впервые была добавлена в: v23.3 -Возвращает номер корзины гистограммы, в которую попадает параметр `operand`, при условии, что гистограмма состоит из `count` корзин одинаковой ширины, охватывающих диапазон от `low` до `high`. Возвращает 0, если `operand` меньше `low`, и `count`+1, если `operand` больше либо равен `high`. -Также существует регистронезависимый синоним `WIDTH_BUCKET` для обеспечения совместимости с другими системами управления базами данных. +Возвращает номер бакета, в который попадает параметр `operand` в гистограмме, состоящей из `count` бакетов одинаковой ширины, охватывающих диапазон от `low` до `high`. Возвращает 0, если `operand` меньше `low`, и `count`+1, если `operand` больше или равен `high`. +Также существует регистронезависимый псевдоним `WIDTH_BUCKET` для обеспечения совместимости с другими базами данных. **Синтаксис** @@ -1241,14 +1315,14 @@ widthBucket(operand, low, high, count) **Аргументы** -* `operand` — Значение, для которого нужно определить корзину. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `operand` — Значение, для которого нужно определить бакет. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) * `low` — Нижняя граница диапазона гистограммы. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) * `high` — Верхняя граница диапазона гистограммы. [`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) -* `count` — Количество корзин одинаковой ширины. Не может быть равен нулю. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +* `count` — Количество бакетов одинаковой ширины. Не может быть нулём. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает номер корзины в виде целого числа. Возвращает 0, если `operand` < `low`, возвращает `count` + 1, если `operand` >= `high`. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +Возвращает номер бакета в виде целого числа. Возвращает 0, если operand < low, и count + 1, если operand >= high. [`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **Примеры** diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index 66d11071b47..63827efe772 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -948,7 +948,7 @@ SELECT currentProfiles(); ## currentQueryID \{#currentQueryID\} -Начиная с версии: v +Начиная с версии: v25.2 Возвращает текущий идентификатор запроса. @@ -1700,7 +1700,7 @@ SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); ## formatQuery \{#formatQuery\} -Впервые появился в: v +Впервые появился в: v23.10 Возвращает отформатированную, при необходимости многострочную, версию указанного SQL‑запроса. Генерирует исключение в случае ошибки разбора. [example:multiline] @@ -1737,7 +1737,7 @@ WHERE (a > 3) AND (b < 3) ## formatQueryOrNull \{#formatQueryOrNull\} -Введено в: v +Введено в: v23.11 Возвращает отформатированный, возможно многострочный, вариант заданного SQL-запроса. В случае ошибки разбора возвращает NULL. [example:multiline] @@ -1774,7 +1774,7 @@ WHERE (a > 3) AND (b < 3) ## formatQuerySingleLine \{#formatQuerySingleLine\} -Появилась в версии: v +Появилась в версии: v23.10 Аналогична formatQuery(), но возвращаемая форматированная строка не содержит переводов строки. Генерирует исключение в случае ошибки разбора. [example:multiline] @@ -1807,7 +1807,7 @@ SELECT a, b FROM tab WHERE (a > 3) AND (b < 3) ## formatQuerySingleLineOrNull \{#formatQuerySingleLineOrNull\} -Появилась в версии: v +Появилась в версии: v23.11 Аналогична formatQuery(), но возвращаемая отформатированная строка не содержит переводов строки. Возвращает NULL в случае ошибки парсинга. [example:multiline] @@ -2023,6 +2023,37 @@ SELECT └────────────┴─────────────────────────────────────────────────────────────────┘ ``` +## fuzzQuery \{#fuzzQuery\} + +Впервые появилась в: v26.2 + +Разбирает заданную строку запроса и применяет к ней случайные мутации AST (fuzzing). Возвращает «зафаззенный» запрос в виде строки. Недетерминирована: каждый вызов может давать различный результат. Требует `allow_fuzz_query_functions = 1`. + +**Синтаксис** + +```sql +fuzzQuery(query) +``` + +**Аргументы** + +* `query` — SQL-запрос, который будет подвергнут фаззингу. [String](../../sql-reference/data-types/string.md) + +**Возвращаемое значение** + +Строка запроса после фаззинга [`String`](/sql-reference/data-types/string) + +**Примеры** + +**простой пример** + +```sql title=Query +SET allow_fuzz_query_functions = 1; SELECT fuzzQuery('SELECT 1'); +``` + +```response title=Response +``` + ## generateRandomStructure \{#generateRandomStructure\} Добавлена в версии: v23.5 @@ -2248,7 +2279,7 @@ SELECT getMacro('test'); ## getMaxTableNameLengthForDatabase \{#getMaxTableNameLengthForDatabase\} -Впервые представлена в версии: v +Впервые представлена в версии: v25.1 Возвращает максимальную длину имени таблицы в указанной базе данных. @@ -2528,7 +2559,7 @@ SELECT getSizeOfEnumType(CAST('a' AS Enum8('a' = 1, 'b' = 2))) AS x; ## getSubcolumn \{#getSubcolumn\} -Добавлена в: v +Добавлена в: v23.3 Принимает выражение или идентификатор и константную строку с именем подстолбца. @@ -3629,7 +3660,7 @@ SELECT number, neighbor(number, 2, 999) FROM system.numbers LIMIT 10; ## nested \{#nested\} -Появилась в версии: v +Появилась в версии: v23.2 Эта функция используется внутри движка ClickHouse и не предназначена для прямого использования. @@ -4724,7 +4755,7 @@ SELECT number, sleepEachRow(0.5) FROM system.numbers LIMIT 5; ## structureToCapnProtoSchema \{#structureToCapnProtoSchema\} -Появилась в версии: v +Появилась в версии: v23.8 Функция преобразует структуру таблицы ClickHouse в схему формата CapnProto diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md index 6c23ed518db..4397743c7a4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md @@ -508,9 +508,9 @@ SELECT splitByWhitespace(' 1! a, b. '); Доступные токенайзеры: * `splitByNonAlpha` разбивает строки по неалфавитно-цифровым ASCII-символам (см. также функцию [splitByNonAlpha](/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha)). -* `splitByString(S)` разбивает строки по определённым пользовательским строкам-разделителям `S` (см. также функцию [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString)). Разделители можно задать с помощью необязательного параметра, например, `tokenizer = splitByString([', ', '; ', '\n', '\\'])`. Обратите внимание, что каждая строка может состоять из нескольких символов (`', '` в примере). Список разделителей по умолчанию, если он не задан явно (например, `tokenizer = splitByString`), — это один пробел `[' ']`. -* `ngrams(N)` разбивает строки на одинаковые по размеру `N`-граммы (см. также функцию [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams)). Длину n-граммы можно задать с помощью необязательного целочисленного параметра от 1 до 8, например, `tokenizer = ngrams(3)`. Размер n-граммы по умолчанию, если он не задан явно (например, `tokenizer = ngrams`), равен 3. -* `sparseGrams(min_length, max_length, min_cutoff_length)` разбивает строки на n-граммы переменной длины как минимум из `min_length` и не более чем из `max_length` (включительно) символов (см. также функцию [sparseGrams](/sql-reference/functions/string-functions#sparseGrams)). Если не указано явно, значения `min_length` и `max_length` по умолчанию равны 3 и 100. Если передан параметр `min_cutoff_length`, возвращаются только n-граммы с длиной не меньше `min_cutoff_length`. По сравнению с `ngrams(N)` токенайзер `sparseGrams` создаёт n-граммы переменной длины, что позволяет более гибко представлять исходный текст. Например, `tokenizer = sparseGrams(3, 5, 4)` внутренне формирует 3-, 4-, 5-граммы из входной строки, но возвращаются только 4- и 5-граммы. +* `splitByString(S)` разбивает строки по определённым пользовательским строкам-разделителям `S` (см. также функцию [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString)). Разделители можно задать с помощью необязательного параметра, например, `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`. Обратите внимание, что каждая строка может состоять из нескольких символов (`', '` в примере). Список разделителей по умолчанию, если он не задан явно, — это один пробел `[' ']`. +* `ngrams(N)` разбивает строки на одинаковые по размеру `N`-граммы (см. также функцию [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams)). Длину n-граммы можно задать с помощью необязательного целочисленного параметра от 1 до 8, например, `tokens(value, 'ngrams', 3)`. Размер n-граммы по умолчанию, если он не задан явно, равен 3. +* `sparseGrams(min_length, max_length, min_cutoff_length)` разбивает строки на n-граммы переменной длины как минимум из `min_length` и не более чем из `max_length` (включительно) символов (см. также функцию [sparseGrams](/sql-reference/functions/string-functions#sparseGrams)). Если не указано явно, значения `min_length` и `max_length` по умолчанию равны 3 и 100. Если передан параметр `min_cutoff_length`, возвращаются только n-граммы с длиной не меньше `min_cutoff_length`. По сравнению с `ngrams(N)` токенайзер `sparseGrams` создаёт n-граммы переменной длины, что позволяет более гибко представлять исходный текст. Например, `tokens(value, 'sparseGrams', 3, 5, 4)` внутренне формирует 3-, 4-, 5-граммы из входной строки, но возвращаются только 4- и 5-граммы. * `array` не выполняет токенизацию, то есть каждое значение в строке (элемент массива) является токеном (см. также функцию [array](/sql-reference/functions/array-functions.md/#array)). В случае токенайзера `splitByString`, если токены не образуют [префиксный код](https://en.wikipedia.org/wiki/Prefix_code), вам, вероятно, нужно, чтобы при сопоставлении более длинные разделители имели приоритет. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 1bcfd23bb48..774994fd7dc 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -939,7 +939,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitive \{#hasTokenCaseInsensitive\} -Добавлена в версии: v +Добавлена в версии: v20.1 Выполняет регистронезависимый поиск значения `needle` в `haystack` с использованием индекса tokenbf_v1. @@ -958,7 +958,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitiveOrNull \{#hasTokenCaseInsensitiveOrNull\} -Введена в версии: v +Введена в версии: v23.1 Выполняет поиск `needle` в `haystack` без учета регистра с использованием индекса tokenbf_v1. Возвращает null, если `needle` задано некорректно. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md index 77578cc53bc..5467ef65750 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md @@ -800,4 +800,54 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht └────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘ ``` +## timeSeriesThrowDuplicateSeriesIf \{#timeSeriesThrowDuplicateSeriesIf\} + +Добавлена в версии v26.2. + +Проверяет `condition` и, если оно истинно, генерирует исключение со следующим сообщением: +`Multiple series have the same tags , duplicate series in the same result set are not allowed`. +Если `condition` ложно, функция возвращает `0`. +Эта функция аналогична [throwIf()](/sql-reference/functions/other-functions#throwIf), +но использует другой код ошибки и по‑другому форматирует сообщение об ошибке. + +**Синтаксис** + +```sql +timeSeriesThrowDuplicateSeriesIf(condition, group) +``` + +**Аргументы** + +* `condition` — Условие для проверки, обычно задаётся с помощью функции [count()](/sql-reference/aggregate-functions/reference/count#count), тип — [`UInt8`](/sql-reference/data-types/int-uint) +* `group` — Группа тегов, тип — [`UInt64`](/sql-reference/data-types/int-uint) + +**Возвращаемое значение** + +Возвращает значение `0`. Тип — [`UInt8`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Пример** + +```sql title=Query +CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory; + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- OK + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- Throws exception "Multiple series have the same tags {'__name__': 'up'}" +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md index 5d646f11be5..91b46820e08 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md @@ -10,30 +10,32 @@ keywords: ['временное окно'] import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + # Функции временных окон \{#time-window-functions\} -Функции временных окон возвращают нижнюю границу соответствующего окна (включительно) и верхнюю границу (исключительно). +Функции временных окон возвращают нижнюю включительную и верхнюю невключительную границы соответствующего окна. Ниже перечислены функции для работы с [WindowView](/sql-reference/statements/create/view#window-view): {/* - Внутреннее содержимое расположенных ниже тегов при сборке фреймворка документации - заменяется на документы, сгенерированные на основе system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. + Содержимое тегов ниже заменяется при сборке фреймворка документации + документацией, сгенерированной на основе system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } + ## hop \{#hop\} -Введена в: v21.12 +Впервые представлена в версии: v21.12 -Скользящее временное окно имеет фиксированную длительность (`window_interval`) и сдвигается на заданный интервал (`hop_interval`). Если `hop_interval` меньше `window_interval`, скользящие окна перекрываются. Таким образом, записи могут попадать в несколько окон. +Скользящее временное окно имеет фиксированную длительность (`window_interval`) и сдвигается на заданный интервал (`hop_interval`). Если `hop_interval` меньше `window_interval`, скользящие окна перекрываются. Таким образом, записи могут быть отнесены к нескольким окнам. -Поскольку одна запись может попадать в несколько скользящих окон, функция возвращает только границу первого окна при использовании функции hop без WINDOW VIEW. +Поскольку одна запись может быть отнесена к нескольким hop-окнам, при использовании функции hop без WINDOW VIEW функция возвращает только границу первого окна. **Синтаксис** @@ -43,18 +45,18 @@ hop(time_attr, hop_interval, window_interval[, timezone]) **Аргументы** -* `time_attr` — дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — положительный интервал шага окна. [`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — положительный интервал окна. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) +* `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) +* `hop_interval` — Положительный интервал сдвига окна (hop interval). [`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — Положительный интервал окна. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает нижнюю границу (включительно) и верхнюю границу (не включая) соответствующего скользящего (hopping) окна. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +Возвращает включающую нижнюю и исключающую верхнюю границу соответствующего скользящего окна (hopping window). [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **Примеры** -**Скользящее (hopping) окно** +**Скользящее окно (hopping window)** ```sql title=Query SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -64,13 +66,14 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) ('2024-07-03 00:00:00','2024-07-05 00:00:00') ``` + ## hopEnd \{#hopEnd\} -Добавлена в версии: v22.1 +Появилась в версии: v22.1 -Возвращает верхнюю исключающую границу соответствующего скользящего окна. +Возвращает верхнюю границу соответствующего скачущего окна (не включительно). -Поскольку одна запись может быть назначена нескольким hop-окнам, функция возвращает границу только первого окна, если функция hop используется без `WINDOW VIEW`. +Поскольку одна запись может быть отнесена к нескольким окнам hop, функция возвращает только границу первого окна, когда функция hop используется без `WINDOW VIEW`. **Синтаксис** @@ -80,14 +83,14 @@ hopEnd(time_attr, hop_interval, window_interval[, timezone]) **Аргументы** -* `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — Положительный интервал шага (hop). [`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — Положительный интервал окна (window). [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) +* `time_attr` — дата и время. [`DateTime`](/sql-reference/data-types/datetime) +* `hop_interval` — положительный интервал сдвига окна (hop interval). [`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — положительный интервал окна (window interval). [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает верхнюю границу (исключая её) соответствующего hopping-окна. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает верхнюю (исключающую) границу соответствующего hopping-окна. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -101,13 +104,14 @@ SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-05 00:00:00 ``` + ## hopStart \{#hopStart\} -Впервые появилась в: v22.1 +Введена в версии v22.1 -Возвращает включающую нижнюю границу соответствующего скользящего окна. +Возвращает включительную нижнюю границу соответствующего скользящего окна. -Поскольку одна запись может относиться к нескольким скользящим окнам, при использовании функции hop без `WINDOW VIEW` возвращается граница только первого окна. +Поскольку одна запись может быть отнесена к нескольким hop-окнам, функция возвращает границу только первого окна, когда функция hop используется без `WINDOW VIEW`. **Синтаксис** @@ -118,17 +122,17 @@ hopStart(time_attr, hop_interval, window_interval[, timezone]) **Аргументы** * `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — Положительный интервал сдвига окна. [`Interval`](/sql-reference/data-types/int-uint) +* `hop_interval` — Положительный интервал сдвига (hop). [`Interval`](/sql-reference/data-types/int-uint) * `window_interval` — Положительный интервал окна. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) +* `timezone` — Необязательный. Название часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает включительную нижнюю границу соответствующего окна сдвига (hopping-окна). [`DateTime`](/sql-reference/data-types/datetime) +Возвращает включительную нижнюю границу соответствующего hopping-окна. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** -**Начало окна сдвига (hopping-окна)** +**Начало hopping-окна** ```sql title=Query SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -138,11 +142,12 @@ SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-03 00:00:00 ``` + ## tumble \{#tumble\} -Добавлено в: v21.12 +Впервые представлена в: v21.12 -Функция `tumble` разбивает записи на неперекрывающиеся, последовательные временные окна фиксированной продолжительности (`interval`). +Временное окно с дискретным шагом (tumbling) распределяет записи по непересекающимся непрерывным окнам фиксированной длительности (`interval`). **Синтаксис** @@ -153,16 +158,16 @@ tumble(time_attr, interval[, timezone]) **Аргументы** * `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — Интервал окна, тип Interval. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) +* `interval` — Интервал окна. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — Необязательный параметр. Имя часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает нижнюю границу (включительно) и верхнюю границу (не включительно) соответствующего tumbling-окна. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +Возвращает нижнюю границу (включительно) и верхнюю границу (исключительно) соответствующего окна типа tumbling. [`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **Примеры** -**Tumbling-окно** +**Окно типа tumbling** ```sql title=Query SELECT tumble(now(), toIntervalDay('1')) @@ -172,11 +177,12 @@ SELECT tumble(now(), toIntervalDay('1')) ('2024-07-04 00:00:00','2024-07-05 00:00:00') ``` + ## tumbleEnd \{#tumbleEnd\} -Добавлена в версии: v22.1 +Впервые появилось в версии v22.1 -Возвращает невключительную верхнюю границу соответствующего tumbling-окна. +Возвращает невключаемую верхнюю границу соответствующего окна фиксированного размера (tumbling window). **Синтаксис** @@ -187,16 +193,16 @@ tumbleEnd(time_attr, interval[, timezone]) **Аргументы** * `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — Интервал окна с типом `Interval`. [`Interval`](/sql-reference/data-types/int-uint) +* `interval` — Интервал окна типа Interval. [`Interval`](/sql-reference/data-types/int-uint) * `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает верхнюю границу (не включительно) соответствующего окна типа tumbling. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает строгую верхнюю границу соответствующего tumbling-окна. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** -**Конец окна типа tumbling** +**Окончание tumbling-окна** ```sql title=Query SELECT tumbleEnd(now(), toIntervalDay('1')) @@ -206,11 +212,12 @@ SELECT tumbleEnd(now(), toIntervalDay('1')) 2024-07-05 00:00:00 ``` + ## tumbleStart \{#tumbleStart\} -Появилась в версии v22.1 +Добавлена в версии v22.1 -Возвращает включающую нижнюю границу соответствующего фиксированного окна. +Возвращает нижнюю (включительную) границу соответствующего tumbling-окна. **Синтаксис** @@ -221,16 +228,16 @@ tumbleStart(time_attr, interval[, timezone]) **Аргументы** * `time_attr` — Дата и время. [`DateTime`](/sql-reference/data-types/datetime) -* `interval` — Интервал временного окна в типе `Interval`. [`Interval`](/sql-reference/data-types/int-uint) -* `timezone` — Необязательный параметр. Имя часового пояса. [`String`](/sql-reference/data-types/string) +* `interval` — Интервал (размер) окна в типе Interval. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — Необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает включающую нижнюю границу соответствующего фиксированного окна. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает нижнюю границу (включительно) соответствующего tumbling-окна. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** -**Начало фиксированного окна** +**Начало tumbling-окна** ```sql title=Query SELECT tumbleStart(now(), toIntervalDay('1')) @@ -240,8 +247,44 @@ SELECT tumbleStart(now(), toIntervalDay('1')) 2024-07-04 00:00:00 ``` + +## windowID \{#windowID\} + +Добавлено в: v22.1 + +Возвращает идентификатор соответствующего дискретного (tumbling) или скачкообразного (hopping) окна. +Эта функция может использоваться только с `WINDOW VIEW`. + +**Синтаксис** + +```sql +windowID(time_attr, interval[, timezone]) +``` + +**Аргументы** + +* `time_attr` — дата и время. [`DateTime`](/sql-reference/data-types/datetime) +* `interval` — интервал окна типа Interval. [`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — необязательный параметр. Название часового пояса. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает идентификатор соответствующего окна. [`UInt32`](/sql-reference/data-types/int-uint) + +**Примеры** + +**Идентификатор окна** + +```sql title=Query +SELECT windowID(now(), toIntervalDay('1')) +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } + ## Связанные материалы \{#related-content\} -- [Руководства по сценариям использования временных рядов](/use-cases/time-series) +- [Руководства по сценариям использования временных рядов](/use-cases/time-series) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md index 99c20b3b2cf..256869c19ee 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md @@ -18,6 +18,43 @@ doc_type: 'reference' {/*AUTOGENERATED_START*/} +## dotProduct \{#dotProduct\} + +Добавлено в: v21.11 + +Вычисляет [скалярное произведение](https://en.wikipedia.org/wiki/Dot_product) двух векторов одинаковой длины (кортежей или массивов). +Возвращает сумму произведений соответствующих элементов. + +**Синтаксис** + +```sql +dotProduct(vector1, vector2) +``` + +**Псевдонимы**: `scalarProduct` + +**Аргументы** + +* `vector1` — Первый вектор. [`Array(T)`](/sql-reference/data-types/array) или [`Tuple(T)`](/sql-reference/data-types/tuple) +* `vector2` — Второй вектор. Должен быть того же размера, что и первый вектор. [`Array(T)`](/sql-reference/data-types/array) или [`Tuple(T)`](/sql-reference/data-types/tuple) + +**Возвращаемое значение** + +Возвращает скалярное произведение двух векторов. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT dotProduct((1, 2), (3, 4)) +``` + +```response title=Response +11 +``` + + ## flattenTuple \{#flattenTuple\} Добавлена в версии v22.6 @@ -58,7 +95,7 @@ SELECT flattenTuple(t) FROM tab; ## tuple \{#tuple\} -Впервые представлена в: v +Впервые представлена в: v1.1 Возвращает кортеж, группируя входные аргументы. @@ -90,6 +127,7 @@ SELECT tuple(1, 2) (1,2) ``` + ## tupleConcat \{#tupleConcat\} Появилось в версии: v23.8 @@ -685,7 +723,7 @@ SELECT tupleMultiplyByNumber((1, 2), -2.1) ## tupleNames \{#tupleNames\} -Добавлена в: v +Добавлена в: v24.8 Преобразует кортеж в массив имён столбцов. Для кортежа вида `Tuple(a T, b T, ...)` возвращает массив строк, представляющих именованные столбцы кортежа. Если элементы кортежа не имеют явных имён, в качестве имён столбцов используются их индексы. @@ -712,6 +750,7 @@ SELECT tupleNames(tuple(1 as a, 2 as b)) ['a','b'] ``` + ## tupleNegate \{#tupleNegate\} Введена в версии v21.11 @@ -903,4 +942,4 @@ SELECT untuple((* EXCEPT (v2, v3),)) FROM kv; ## Функции расстояния \{#distance-functions\} -Все поддерживаемые функции описаны в [документации по функциям расстояния](../../sql-reference/functions/distance-functions.md). +Все поддерживаемые функции описаны в [документации по функциям расстояния](../../sql-reference/functions/distance-functions.md). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index db4b94a379c..71b1c16972c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -16,7 +16,7 @@ doc_type: 'reference' ## extractKeyValuePairs \{#extractKeyValuePairs\} -Введено в: v +Введено в: v23.4 Извлекает пары ключ-значение из произвольной строки. Строка не обязана строго соответствовать формату пар ключ-значение; @@ -60,14 +60,14 @@ doc_type: 'reference' └─────────────────────────────────────────────────────────────────────────┘ ``` -**Одинарная кавычка как символ обрамления** +**Одинарная кавычка как символ кавычек** ```sql arthur :) select extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv SELECT extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv - Идентификатор запроса: 0e22bf6b-9844-414a-99dc-32bf647abd5e + Query id: 0e22bf6b-9844-414a-99dc-32bf647abd5e ┌─kv───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ {'name':'neymar','age':'31','team':'psg','nationality':'brazil','last_key':'last_value'} │ @@ -173,7 +173,7 @@ unexpected_quoting_character_strategy=promote ## extractKeyValuePairsWithEscaping \{#extractKeyValuePairsWithEscaping\} -Введена в: v +Введена в: v23.4 Та же функция, что и `extractKeyValuePairs`, но с поддержкой экранирования. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md index 050d4f0e5cc..6739d28ea8c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md @@ -112,8 +112,8 @@ LIMIT 10 См. также функцию [`toUnixTimestamp`](/sql-reference/functions/date-time-functions#toUnixTimestamp). {/* - Содержимое тегов ниже заменяется в момент сборки фреймворка документации - документами, сгенерированными из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. + Содержимое тегов ниже при сборке фреймворка документации + заменяется документацией, сгенерированной из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } @@ -122,7 +122,7 @@ LIMIT 10 ## CAST \{#CAST\} -Введена в версии: v1.1 +Впервые представлена в версии: v1.1 Преобразует значение в указанный тип данных. В отличие от функции reinterpret, CAST пытается получить то же значение в целевом типе. @@ -143,11 +143,11 @@ or x::T **Возвращаемое значение** -Возвращает преобразованное значение с целевым типом данных. [`Any`](/sql-reference/data-types) +Возвращает значение, приведённое к целевому типу данных. [`Any`](/sql-reference/data-types) **Примеры** -**Базовое использование** +**Простое использование** ```sql title=Query SELECT CAST(42, 'String') @@ -159,7 +159,7 @@ SELECT CAST(42, 'String') └────────────────────┘ ``` -**Использование синтаксиса `AS`** +**Использование синтаксиса AS** ```sql title=Query SELECT CAST('2025-01-01' AS Date) @@ -184,13 +184,46 @@ SELECT '123'::UInt32 ``` +## DATE \{#DATE\} + +Добавлено в: v21.2 + +Преобразует аргумент в тип данных Date. Это псевдоним функции `toDate` для совместимости с MySQL. Работает так же, как `toDate`. + +**Синтаксис** + +```sql +DATE(expr) +``` + +**Аргументы** + +* `expr` — Значение, которое нужно преобразовать. [`String`](/sql-reference/data-types/string) или [`UInt32`](/sql-reference/data-types/int-uint) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) + +**Возвращаемое значение** + +Возвращает значение типа Date. [`Date`](/sql-reference/data-types/date) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT DATE('2023-01-01') +``` + +```response title=Response +2023-01-01 +``` + + ## accurateCast \{#accurateCast\} -Впервые появилась в: v1.1 +Добавлено в версии: v1.1 -Преобразует значение в указанный тип данных. В отличие от [`CAST`](#CAST), `accurateCast` выполняет более строгую проверку типов и генерирует исключение, если преобразование приведёт к потере точности данных или если оно невозможно. +Преобразует значение в указанный тип данных. В отличие от [`CAST`](#CAST), `accurateCast` выполняет более строгую проверку типов и генерирует исключение, если преобразование приведёт к потере точности данных или если преобразование невозможно. -Эта функция безопаснее обычного `CAST`, так как предотвращает потерю точности и некорректные преобразования. +Эта функция безопаснее обычного `CAST`, поскольку предотвращает потерю точности и недопустимые преобразования. **Синтаксис** @@ -200,12 +233,12 @@ accurateCast(x, T) **Аргументы** -* `x` — Значение для преобразования. [`Any`](/sql-reference/data-types) -* `T` — Имя целевого типа данных. [`String`](/sql-reference/data-types/string) +* `x` — значение для преобразования. [`Any`](/sql-reference/data-types) +* `T` — имя целевого типа данных. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение, преобразованное к целевому типу данных. [`Any`](/sql-reference/data-types) +Возвращает значение, приведённое к целевому типу данных. [`Any`](/sql-reference/data-types) **Примеры** @@ -236,13 +269,13 @@ SELECT accurateCast('123.45', 'Float64') ## accurateCastOrDefault \{#accurateCastOrDefault\} -Добавлена в: v21.1 +Введена в версии: v21.1 Преобразует значение в указанный тип данных. -Аналог функции [`accurateCast`](#accurateCast), но возвращает значение по умолчанию вместо генерации исключения, если преобразование не может быть выполнено с требуемой точностью. +Аналогично [`accurateCast`](#accurateCast), но возвращает значение по умолчанию вместо выбрасывания исключения, если преобразование не может быть выполнено точно. -Если значение по умолчанию передано вторым аргументом, оно должно иметь целевой тип. -Если значение по умолчанию не указано, используется значение по умолчанию целевого типа. +Если значение по умолчанию передано вторым аргументом, оно должно быть целевого типа. +Если значение по умолчанию не передано, используется значение по умолчанию целевого типа. **Синтаксис** @@ -252,13 +285,13 @@ accurateCastOrDefault(x, T[, default_value]) **Аргументы** -* `x` — Значение для преобразования. [`Any`](/sql-reference/data-types) +* `x` — Значение, которое нужно преобразовать. [`Any`](/sql-reference/data-types) * `T` — Имя целевого типа данных. [`const String`](/sql-reference/data-types/string) -* `default_value` — Необязательный параметр. Значение по умолчанию, которое возвращается при неудачном преобразовании. [`Any`](/sql-reference/data-types) +* `default_value` — Необязательный параметр. Значение по умолчанию, которое возвращается при неудачной попытке преобразования. [`Any`](/sql-reference/data-types) **Возвращаемое значение** -Возвращает преобразованное значение целевого типа данных или значение по умолчанию, если преобразование невозможно. [`Any`](/sql-reference/data-types) +Возвращает значение целевого типа данных или значение по умолчанию, если преобразование невозможно. [`Any`](/sql-reference/data-types) **Примеры** @@ -274,7 +307,7 @@ SELECT accurateCastOrDefault(42, 'String') └─────────────────────────────────────┘ ``` -**Ошибка преобразования с явным значением по умолчанию** +**Сбой преобразования с явным значением по умолчанию** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) @@ -286,7 +319,7 @@ SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) └─────────────────────────────────────────────┘ ``` -**Сбой преобразования с неявным значением по умолчанию** +**Ошибка преобразования с неявным значением по умолчанию** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32') @@ -301,10 +334,10 @@ SELECT accurateCastOrDefault('abc', 'UInt32') ## accurateCastOrNull \{#accurateCastOrNull\} -Добавлена в: v1.1 +Впервые представлена в: v1.1 Преобразует значение в указанный тип данных. -Аналогично [`accurateCast`](#accurateCast), но возвращает `NULL` вместо выбрасывания исключения, если преобразование не может быть выполнено точно. +Аналог [`accurateCast`](#accurateCast), но возвращает `NULL` вместо генерации исключения, если преобразование не может быть выполнено точно. Эта функция сочетает безопасность [`accurateCast`](#accurateCast) с корректной обработкой ошибок. @@ -316,7 +349,7 @@ accurateCastOrNull(x, T) **Аргументы** -* `x` — Значение для преобразования. [`Any`](/sql-reference/data-types) +* `x` — Значение, которое нужно преобразовать. [`Any`](/sql-reference/data-types) * `T` — Имя целевого типа данных. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -337,7 +370,7 @@ SELECT accurateCastOrNull(42, 'String') └──────────────────────────────────┘ ``` -**При неудачном преобразовании возвращается NULL** +**При ошибке преобразования возвращается NULL** ```sql title=Query SELECT accurateCastOrNull('abc', 'UInt32') @@ -352,12 +385,12 @@ SELECT accurateCastOrNull('abc', 'UInt32') ## formatRow \{#formatRow\} -Добавлена в: v20.7 +Введена в версии: v20.7 Преобразует произвольные выражения в строку в соответствии с заданным форматом. :::note -Если формат содержит префикс или суффикс, он будет добавляться к каждой строке. +Если формат содержит суффикс или префикс, он будет добавляться к каждой строке. В этой функции поддерживаются только построчные форматы. ::: @@ -369,12 +402,12 @@ formatRow(format, x, y, ...) **Аргументы** -* `format` — текстовый формат. Например, CSV, TSV. [`String`](/sql-reference/data-types/string) +* `format` — текстовый формат, например CSV, TSV. [`String`](/sql-reference/data-types/string) * `x, y, ...` — выражения. [`Any`](/sql-reference/data-types) **Возвращаемое значение** -Отформатированная строка (для текстовых форматов обычно оканчивается символом новой строки). [`String`](/sql-reference/data-types/string) +Отформатированная строка. Для текстовых форматов обычно заканчивается символом новой строки. [`String`](/sql-reference/data-types/string) **Примеры** @@ -396,7 +429,7 @@ FROM numbers(3) └──────────────────────────────────┘ ``` -**С пользовательским форматом** +**С настраиваемым форматом** ```sql title=Query SELECT formatRow('CustomSeparated', number, 'good') @@ -421,11 +454,11 @@ SETTINGS format_custom_result_before_delimiter='\n', format_custom_resul ## formatRowNoNewline \{#formatRowNoNewline\} -Добавлена в версии: v20.7 +Добавлена в: v20.7 -То же, что и [`formatRow`](#formatRow), но удаляет символ новой строки в конце каждой строки. +То же, что и [`formatRow`](#formatRow), но удаляет символ перевода строки в конце каждой строки. -Преобразует произвольные выражения в строку в соответствии с заданным форматом, но удаляет все конечные символы новой строки из результата. +Преобразует произвольные выражения в строку с использованием заданного формата, но удаляет любые завершающие символы перевода строки из результата. **Синтаксис** @@ -440,7 +473,7 @@ formatRowNoNewline(format, x, y, ...) **Возвращаемое значение** -Возвращает форматированную строку без символов новой строки. [`String`](/sql-reference/data-types/string) +Возвращает форматированную строку с удалёнными переводами строк. [`String`](/sql-reference/data-types/string) **Примеры** @@ -462,11 +495,11 @@ FROM numbers(3) ## fromUnixTimestamp64Micro \{#fromUnixTimestamp64Micro\} -Добавлена в: v20.5 +Появилась в версии: v20.5 -Преобразует Unix‑метку времени в микросекундах в значение `DateTime64` с микросекундной точностью. +Преобразует Unix-метку времени в микросекундах в значение типа `DateTime64` с точностью до микросекунд. -Входное значение интерпретируется как Unix‑метка времени с микросекундной точностью (количество микросекунд, прошедших с 1970-01-01 00:00:00 UTC). +Входное значение рассматривается как Unix-метка времени с точностью до микросекунд (количество микросекунд, прошедших с 1970-01-01 00:00:00 UTC). **Синтаксис** @@ -476,12 +509,12 @@ fromUnixTimestamp64Micro(value[, timezone]) **Аргументы** -* `value` — метка времени Unix в микросекундах. [`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — необязательный параметр. Часовой пояс для возвращаемого значения. [`String`](/sql-reference/data-types/string) +* `value` — Unix-метка времени в микросекундах. [`Int64`](/sql-reference/data-types/int-uint) +* `timezone` — Необязательный параметр. Часовой пояс для возвращаемого значения. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа `DateTime64` с точностью до микросекунд. [`DateTime64(6)`](/sql-reference/data-types/datetime64) +Возвращает значение `DateTime64` с точностью до микросекунд. [`DateTime64(6)`](/sql-reference/data-types/datetime64) **Примеры** @@ -500,11 +533,11 @@ SELECT fromUnixTimestamp64Micro(1640995200123456) ## fromUnixTimestamp64Milli \{#fromUnixTimestamp64Milli\} -Появилась в версии v20.5 +Впервые появилась в: v20.5 -Преобразует Unix-временную метку, заданную в миллисекундах, в значение типа `DateTime64` с миллисекундной точностью. +Преобразует Unix-метку времени в миллисекундах в значение `DateTime64` с миллисекундной точностью. -Входное значение рассматривается как Unix-временная метка с миллисекундной точностью (число миллисекунд, прошедших с 1970-01-01 00:00:00 UTC). +Входное значение интерпретируется как Unix-метка времени с миллисекундной точностью (количество миллисекунд, прошедших с 1970-01-01 00:00:00 UTC). **Синтаксис** @@ -514,12 +547,12 @@ fromUnixTimestamp64Milli(value[, timezone]) **Аргументы** -* `value` — метка времени Unix в миллисекундах. [`Int64`](/sql-reference/data-types/int-uint) +* `value` — отметка времени Unix в миллисекундах. [`Int64`](/sql-reference/data-types/int-uint) * `timezone` — необязательный параметр. Часовой пояс для возвращаемого значения. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Значение типа `DateTime64` с точностью до миллисекунд. [`DateTime64(3)`](/sql-reference/data-types/datetime64) +Значение `DateTime64` с точностью до миллисекунд. [`DateTime64(3)`](/sql-reference/data-types/datetime64) **Примеры** @@ -538,14 +571,14 @@ SELECT fromUnixTimestamp64Milli(1640995200123) ## fromUnixTimestamp64Nano \{#fromUnixTimestamp64Nano\} -Введена в: v20.5 +Добавлена в версии: v20.5 -Преобразует Unix-метку времени в наносекундах в значение [`DateTime64`](/sql-reference/data-types/datetime64) с точностью до наносекунд. +Преобразует Unix‑временную метку в наносекундах в значение [`DateTime64`](/sql-reference/data-types/datetime64) с точностью до наносекунды. -Входное значение интерпретируется как Unix-метка времени с точностью до наносекунд (количество наносекунд, прошедших с 1970-01-01 00:00:00 UTC). +Входное значение интерпретируется как Unix‑временная метка с точностью до наносекунды (количество наносекунд, прошедших с 1970-01-01 00:00:00 UTC). :::note -Обратите внимание, что входное значение интерпретируется как метка времени в UTC, а не с учетом часового пояса, содержащегося во входном значении. +Обратите внимание, что входное значение интерпретируется как метка времени в UTC, а не с учётом временной зоны, указанной во входном значении. ::: **Синтаксис** @@ -556,7 +589,7 @@ fromUnixTimestamp64Nano(value[, timezone]) **Аргументы** -* `value` — метка времени Unix в наносекундах. [`Int64`](/sql-reference/data-types/int-uint) +* `value` — Unix-метка времени в наносекундах. [`Int64`](/sql-reference/data-types/int-uint) * `timezone` — необязательный параметр. Часовой пояс для возвращаемого значения. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -582,9 +615,9 @@ SELECT fromUnixTimestamp64Nano(1640995200123456789) Добавлена в версии: v24.12 -Преобразует Unix-метку времени, заданную в секундах, в значение `DateTime64` с секундной точностью. +Преобразует Unix‑метку времени в секундах в значение `DateTime64` с точностью до секунды. -Входное значение интерпретируется как Unix-метка времени с секундной точностью (число секунд, прошедших с 1970-01-01 00:00:00 UTC). +Входное значение интерпретируется как Unix‑метка времени с точностью до секунды (количество секунд, прошедших с 1970-01-01 00:00:00 UTC). **Синтаксис** @@ -594,12 +627,12 @@ fromUnixTimestamp64Second(value[, timezone]) **Аргументы** -* `value` — метка времени Unix в секундах. [`Int64`](/sql-reference/data-types/int-uint) +* `value` — Unix-таймстамп в секундах. [`Int64`](/sql-reference/data-types/int-uint) * `timezone` — Необязательный параметр. Часовой пояс для возвращаемого значения. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа `DateTime64` с точностью до секунды. [`DateTime64(0)`](/sql-reference/data-types/datetime64) +Возвращает значение `DateTime64` с точностью до секунды. [`DateTime64(0)`](/sql-reference/data-types/datetime64) **Примеры** @@ -618,11 +651,11 @@ SELECT fromUnixTimestamp64Second(1640995200) ## parseDateTime \{#parseDateTime\} -Добавлена в версии v23.3 +Появилась в версии: v23.3 -Разбирает строку даты и времени в соответствии со строкой формата даты MySQL. +Разбирает строку с датой и временем в соответствии со строкой формата даты MySQL. -Эта функция является обратной к [`formatDateTime`](/sql-reference/functions/date-time-functions). +Эта функция является обратной для [`formatDateTime`](/sql-reference/functions/date-time-functions). Она разбирает аргумент типа String, используя строку формата. Возвращает значение типа DateTime. **Синтаксис** @@ -636,12 +669,12 @@ parseDateTime(time_string, format[, timezone]) **Аргументы** * `time_string` — Строка, которую нужно преобразовать в DateTime. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата, задающая способ разбора значения `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime, полученное из входной строки в соответствии со строкой формата в стиле MySQL. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает значение DateTime, полученное разбором входной строки в соответствии со строкой формата в стиле MySQL. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -660,11 +693,11 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## parseDateTime32BestEffort \{#parseDateTime32BestEffort\} -Добавлено в: v20.9 +Появилась в версии: v20.9 Преобразует строковое представление даты и времени в тип данных [`DateTime`](/sql-reference/data-types/datetime). -Функция разбирает форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), форматы ClickHouse, а также некоторые другие форматы даты и времени. +Функция разбирает форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), формат ClickHouse и некоторые другие форматы даты и времени. **Синтаксис** @@ -675,11 +708,11 @@ parseDateTime32BestEffort(time_string[, time_zone]) **Аргументы** * `time_string` — строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — необязательный аргумент. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) +* `time_zone` — необязательный параметр. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение `time_string` в виде `DateTime`. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает `time_string` в виде значения типа `DateTime`. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -725,9 +758,9 @@ AS parseDateTime32BestEffort ## parseDateTime32BestEffortOrNull \{#parseDateTime32BestEffortOrNull\} -Введена в версии v20.9 +Добавлена в: v20.9 -Аналог функции [`parseDateTime32BestEffort`](#parseDateTime32BestEffort), за исключением того, что возвращает `NULL`, когда встречает формат даты, который невозможно обработать. +Аналогична [`parseDateTime32BestEffort`](#parseDateTime32BestEffort), за исключением того, что возвращает `NULL`, если встречает формат даты, который не удаётся обработать. **Синтаксис** @@ -737,12 +770,12 @@ parseDateTime32BestEffortOrNull(time_string[, time_zone]) **Аргументы** -* `time_string` — Строка с датой и временем для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `time_zone` — необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает объект `DateTime`, полученный из строки, или `NULL`, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает объект `DateTime`, полученный разбором строки, или `NULL`, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -763,9 +796,9 @@ SELECT ## parseDateTime32BestEffortOrZero \{#parseDateTime32BestEffortOrZero\} -Введено в: v20.9 +Добавлена в версии: v20.9 -Аналог функции [`parseDateTime32BestEffort`](#parseDateTime32BestEffort), за исключением того, что при столкновении с форматом даты, который не может быть обработан, возвращает нулевую дату или нулевые дату и время. +Аналог функции [`parseDateTime32BestEffort`](#parseDateTime32BestEffort), за исключением того, что при встрече нераспознаваемого формата даты возвращает нулевую дату или нулевое значение даты-времени. **Синтаксис** @@ -780,7 +813,7 @@ parseDateTime32BestEffortOrZero(time_string[, time_zone]) **Возвращаемое значение** -Возвращает объект `DateTime`, полученный при разборе строки, или нулевую дату (`1970-01-01 00:00:00`), если разбор завершился неудачно. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает объект `DateTime`, полученный при разборе строки, или нулевую дату (`1970-01-01 00:00:00`), если разбор завершается неудачей. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -801,12 +834,12 @@ SELECT ## parseDateTime64 \{#parseDateTime64\} -Добавлена в: v24.11 +Введена в версии v24.11 -Разбирает строку даты и времени с субсекундной точностью в соответствии со строкой формата даты MySQL. +Разбирает строку даты и времени с подсекундной точностью в соответствии с форматом даты MySQL. -Эта функция является обратной к [`formatDateTime`](/sql-reference/functions/date-time-functions) для DateTime64. -Она разбирает аргумент типа String с использованием строки формата. Возвращает тип DateTime64, который может представлять даты в диапазоне от 1900 до 2299 годов с субсекундной точностью. +Эта функция является инверсией функции [`formatDateTime`](/sql-reference/functions/date-time-functions) для DateTime64. +Она разбирает аргумент типа String, используя строку формата. Возвращает тип DateTime64, который может представлять даты с 1900 по 2299 год с подсекундной точностью. **Синтаксис** @@ -817,12 +850,12 @@ parseDateTime64(time_string, format[, timezone]) **Аргументы** * `time_string` — Строка, которую нужно преобразовать в DateTime64. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата, определяющая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) +* `format` — Форматная строка, определяющая, как следует разбирать `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime64, полученное разбором входной строки в соответствии со строкой формата в стиле MySQL. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает значение типа DateTime64, полученное путём разбора входной строки в соответствии с форматной строкой в стиле MySQL. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -841,9 +874,9 @@ SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTime64BestEffort \{#parseDateTime64BestEffort\} -Впервые появилась в: v20.1 +Добавлено в: v20.1 -То же, что и функция [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), но дополнительно разбирает миллисекунды и микросекунды и возвращает тип данных [`DateTime64`](../../sql-reference/data-types/datetime64.md). +Аналог функции [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), но дополнительно разбирает миллисекунды и микросекунды и возвращает тип данных [`DateTime64`](../../sql-reference/data-types/datetime64.md). **Синтаксис** @@ -854,7 +887,7 @@ parseDateTime64BestEffort(time_string[, precision[, time_zone]]) **Аргументы** * `time_string` — Строка с датой или датой и временем для преобразования. [`String`](/sql-reference/data-types/string) -* `precision` — Необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. По умолчанию — `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `precision` — Необязательный параметр. Требуемая точность результата: `3` для миллисекунд, `6` для микросекунд. По умолчанию — `3`. [`UInt8`](/sql-reference/data-types/int-uint) * `time_zone` — Необязательный параметр. Часовой пояс. Функция разбирает `time_string` в соответствии с этим часовым поясом. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -888,9 +921,9 @@ FORMAT PrettyCompactMonoBlock ## parseDateTime64BestEffortOrNull \{#parseDateTime64BestEffortOrNull\} -Начиная с версии: v20.1 +Добавлена в версии v20.1 -Аналогична [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), но при встрече с форматом даты, который не может быть обработан, возвращает `NULL`. +То же, что и [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), но возвращает `NULL`, если встречает формат даты, который не удаётся обработать. **Синтаксис** @@ -900,13 +933,13 @@ parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]]) **Аргументы** -* `time_string` — Строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `precision` — Необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. Значение по умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — Необязательный параметр. Часовой пояс. Функция разбирает `time_string` в соответствии с этим часовым поясом. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, содержащая дату или дату со временем для преобразования. [`String`](/sql-reference/data-types/string) +* `precision` — Необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. По умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — Необязательный параметр. Часовой пояс. Функция интерпретирует `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md), или `NULL`, если входная строка не может быть разобрана. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) +Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md), или `NULL`, если входное значение не удаётся разобрать. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -926,9 +959,9 @@ SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid, ## parseDateTime64BestEffortOrZero \{#parseDateTime64BestEffortOrZero\} -Добавлена в версии: v20.1 +Введена в: v20.1 -То же, что и [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при встрече формата даты, который не удаётся обработать, возвращает нулевую дату или нулевое значение даты и времени. +Аналог функции [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при обнаружении формата даты, который не может быть обработан, возвращает нулевую дату или нулевое значение даты-времени. **Синтаксис** @@ -938,13 +971,13 @@ parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]]) **Аргументы** -* `time_string` — строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `precision` — необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. По умолчанию — `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — необязательный параметр. Часовой пояс. Функция разбирает `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `precision` — Необязательный аргумент. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. Значение по умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — Необязательный аргумент. Часовой пояс. Функция разбирает `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение `time_string`, преобразованное в [`DateTime64`](../../sql-reference/data-types/datetime64.md), или нулевую дату/дату-время (`1970-01-01 00:00:00.000`), если входная строка не может быть разобрана. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md), или нулевую дату/дату-время (`1970-01-01 00:00:00.000`), если входное значение не удаётся разобрать. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -964,9 +997,9 @@ SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid, ## parseDateTime64BestEffortUS \{#parseDateTime64BestEffortUS\} -Добавлена в: v22.8 +Добавлена в версии: v22.8 -Аналог [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что в случае неоднозначности эта функция предпочитает американский формат даты (`MM/DD/YYYY` и т. д.). +Аналогична [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при неоднозначности эта функция предпочитает американский формат даты (`MM/DD/YYYY` и т. д.). **Синтаксис** @@ -976,13 +1009,13 @@ parseDateTime64BestEffortUS(time_string [, precision [, time_zone]]) **Аргументы** -* `time_string` — Строка, содержащая дату или дату со временем для преобразования. [`String`](/sql-reference/data-types/string) -* `precision` — Необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. Значение по умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — Необязательный параметр. Часовой пояс. Функция разбирает `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) +* `time_string` — строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `precision` — необязательный параметр. Требуемая точность: `3` — для миллисекунд, `6` — для микросекунд. По умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — необязательный параметр. Часовой пояс. Функция интерпретирует `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md) с приоритетом американского формата даты в неоднозначных случаях. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md), используя американский формат даты по умолчанию в неоднозначных случаях. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -1002,9 +1035,9 @@ SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format, ## parseDateTime64BestEffortUSOrNull \{#parseDateTime64BestEffortUSOrNull\} -Добавлена в: v22.8 +Введена в версии: v22.8 -То же, что и [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при неоднозначности эта функция предпочитает американский формат даты (`MM/DD/YYYY` и т. д.) и возвращает `NULL`, если встречает формат даты, который не удаётся обработать. +Аналогична функции [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при неоднозначности эта функция отдаёт предпочтение американскому формату дат (`MM/DD/YYYY` и т. д.) и возвращает `NULL`, если встречает формат даты, который не может быть обработан. **Синтаксис** @@ -1014,13 +1047,13 @@ parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]]) **Аргументы** -* `time_string` — строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `precision` — необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. Значение по умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — необязательный параметр. Часовой пояс. Функция разбирает `time_string` в соответствии с указанным часовым поясом. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `precision` — Необязательный параметр. Требуемая точность. `3` для миллисекунд, `6` для микросекунд. По умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — Необязательный параметр. Часовой пояс. Функция разбирает `time_string` с учетом этого часового пояса. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md) с использованием формата даты и времени, принятого в США, или `NULL`, если входное значение не удаётся разобрать. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) +Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md) с использованием американского формата даты и времени, или `NULL`, если входное значение не удается разобрать. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -1040,9 +1073,9 @@ SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us, ## parseDateTime64BestEffortUSOrZero \{#parseDateTime64BestEffortUSOrZero\} -Добавлена в: v22.8 +Введено в версии: v22.8 -Аналогична функции [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при неоднозначности предпочитает американский формат даты (`MM/DD/YYYY` и т. д.) и возвращает нулевую дату или нулевое дата-время при обнаружении формата даты, который невозможно обработать. +Аналог функции [`parseDateTime64BestEffort`](#parseDateTime64BestEffort), за исключением того, что при неоднозначной интерпретации эта функция предпочитает формат даты, принятый в США (`MM/DD/YYYY` и т. д.), и возвращает нулевую дату или нулевое значение даты-времени, когда встречает формат даты, который не удаётся обработать. **Синтаксис** @@ -1054,11 +1087,11 @@ parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) * `time_string` — Строка, содержащая дату или дату и время для преобразования. [`String`](/sql-reference/data-types/string) * `precision` — Необязательный параметр. Требуемая точность: `3` для миллисекунд, `6` для микросекунд. Значение по умолчанию: `3`. [`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым функция разбирает `time_string`. [`String`](/sql-reference/data-types/string) +* `time_zone` — Необязательный параметр. Часовой пояс. Функция парсит `time_string` в соответствии с этим часовым поясом. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md) с приоритетом американского формата дат, или нулевую дату/время (`1970-01-01 00:00:00.000`), если входное значение не удаётся разобрать. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает `time_string`, преобразованную в [`DateTime64`](../../sql-reference/data-types/datetime64.md) с использованием формата США, или нулевое значение даты/даты-времени (`1970-01-01 00:00:00.000`), если не удаётся разобрать входную строку. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -1078,14 +1111,14 @@ SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us, ## parseDateTime64InJodaSyntax \{#parseDateTime64InJodaSyntax\} -Добавлено в версии: v24.10 +Добавлено в: v24.10 -Разбирает строку даты и времени с точностью до долей секунды в соответствии со строкой формата Joda. +Разбирает строку даты и времени с субсекундной точностью в соответствии со строкой формата даты в стиле Joda. Эта функция является обратной функцией к [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) для DateTime64. -Она разбирает аргумент типа String, используя форматную строку в стиле Joda. Возвращает значение типа DateTime64, которое может представлять даты с 1900 по 2299 год с точностью до долей секунды. +Она парсит аргумент типа String, используя форматную строку в стиле Joda. Возвращает значение типа DateTime64, которое может представлять даты с 1900 по 2299 год с субсекундной точностью. -Обратитесь к [документации Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) для описания шаблонов формата. +См. [документацию Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) для описания шаблонов форматов. **Синтаксис** @@ -1095,13 +1128,13 @@ parseDateTime64InJodaSyntax(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которая будет разобрана в `DateTime64`. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата в синтаксисе Joda, задающая, как разбирать time_string. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, подлежащая преобразованию в DateTime64. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата в синтаксисе Joda, определяющая, как интерпретировать `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа `DateTime64`, разобранное из входной строки в соответствии со строкой формата в стиле Joda. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает значение типа DateTime64, полученное из входной строки в соответствии со строкой формата в стиле Joda. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -1120,9 +1153,9 @@ SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm: ## parseDateTime64InJodaSyntaxOrNull \{#parseDateTime64InJodaSyntaxOrNull\} -Добавлена в: v24.10 +Добавлено в версии: v24.10 -Аналог функции [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax), но возвращает `NULL`, если формат даты не удаётся разобрать. +То же, что и [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax), но возвращает `NULL`, если не удаётся разобрать дату в заданном формате. **Синтаксис** @@ -1132,13 +1165,13 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которую нужно преобразовать в DateTime64. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которая будет разобрана в DateTime64. [`String`](/sql-reference/data-types/string) * `format` — Строка формата в синтаксисе Joda, определяющая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает DateTime64, полученный из входной строки, или NULL, если преобразование не удалось. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +Возвращает значение DateTime64, полученное из входной строки, или NULL, если разбор не удался. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **Примеры** @@ -1157,9 +1190,9 @@ SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64InJodaSyntaxOrZero \{#parseDateTime64InJodaSyntaxOrZero\} -Впервые появилась в версии: v24.10 +Введена в версии v24.10 -Аналог функции [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax), но при непарсируемом формате даты возвращает нулевую дату. +Аналог функции [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax), но возвращает нулевую дату, когда встречает формат даты, который не удаётся разобрать. **Синтаксис** @@ -1169,13 +1202,13 @@ parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которую нужно разобрать в DateTime64. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата в синтаксисе Joda, определяющая, как следует разбирать `time_string`. [`String`](/sql-reference/data-types/string) -* `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которую нужно преобразовать в DateTime64. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата в синтаксисе Joda, определяющая, как разбирать `time_string`. [`String`](/sql-reference/data-types/string) +* `timezone` — Необязательный аргумент. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает DateTime64, полученный из входной строки, или нулевое значение DateTime64, если разбор не удался. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает DateTime64, полученный из входной строки, или нулевой DateTime64, если разбор не удался. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -1194,9 +1227,9 @@ SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64OrNull \{#parseDateTime64OrNull\} -Появилась в версии v24.11 +Добавлена в: v24.11 -Аналог функции [`parseDateTime64`](#parseDateTime64), но возвращает `NULL`, если встречает нераспознаваемый формат даты. +Аналог функции [`parseDateTime64`](#parseDateTime64), но возвращает `NULL`, когда встречает дату в нераспознаваемом формате. **Синтаксис** @@ -1206,13 +1239,13 @@ parseDateTime64OrNull(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка для преобразования в DateTime64. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата, определяющая, как разбирать `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которую нужно разобрать в DateTime64. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение DateTime64, полученное из входной строки, или NULL, если разбор не удался. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +Возвращает DateTime64, полученный при разборе входной строки, или NULL, если разбор не удался. [`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **Примеры** @@ -1231,9 +1264,9 @@ SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTime64OrZero \{#parseDateTime64OrZero\} -Добавлена в версии: v24.11 +Введена в версии v24.11 -То же, что и [`parseDateTime64`](#parseDateTime64), но возвращает нулевую дату при обнаружении некорректного формата даты, который не удаётся разобрать. +Аналог функции [`parseDateTime64`](#parseDateTime64), но возвращает нулевую дату, если встречает неподдающийся разбору формат даты. **Синтаксис** @@ -1243,13 +1276,13 @@ parseDateTime64OrZero(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которая будет преобразована в DateTime64. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которая будет преобразована в значение типа DateTime64. [`String`](/sql-reference/data-types/string) * `format` — Строка формата, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает DateTime64, полученное при разборе входной строки, или нулевое значение DateTime64, если разбор завершился неудачей. [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает значение типа DateTime64, полученное из входной строки, или нулевое значение типа DateTime64, если разбор не удался. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -1268,21 +1301,21 @@ SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTimeBestEffort \{#parseDateTimeBestEffort\} -Введена в: v1.1 +Впервые представлено в: v1.1 Преобразует дату и время в строковом представлении в тип данных DateTime. Функция разбирает форматы [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html), [RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) Date and Time Specification, форматы ClickHouse и некоторые другие форматы даты и времени. Поддерживаемые нестандартные форматы: -* Строка, содержащая 9..10-значную Unix-метку времени. +* Строка, содержащая 9..10-значный UNIX timestamp. * Строка с компонентами даты и времени: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` и т. д. * Строка с датой без компонента времени: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` и т. д. -* Строка с днем и временем: `DD`, `DD hh`, `DD hh:mm`. В этом случае значение `MM` принимается равным `01`. +* Строка с днём и временем: `DD`, `DD hh`, `DD hh:mm`. В этом случае для `MM` подставляется значение `01`. * Строка, включающая дату и время вместе с информацией о смещении часового пояса: `YYYY-MM-DD hh:mm:ss ±h:mm` и т. д. * Метка времени в формате syslog: `Mmm dd hh:mm:ss`. Например, `Jun 9 14:20:32`. -Для всех форматов с разделителями функция разбирает названия месяцев, заданные полностью или первыми тремя буквами названия месяца. +Для всех форматов с разделителем функция разбирает названия месяцев, указанные полностью или в виде первых трёх букв названия месяца. Если год не указан, считается, что он равен текущему году. **Синтаксис** @@ -1293,8 +1326,8 @@ parseDateTimeBestEffort(time_string[, time_zone]) **Аргументы** -* `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный аргумент. Часовой пояс, согласно которому парсится `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `time_zone` — необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -1314,7 +1347,7 @@ SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort └─────────────────────────┘ ``` -**С указанием часового пояса** +**С учетом часового пояса** ```sql title=Query SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort @@ -1326,7 +1359,7 @@ SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') └─────────────────────────┘ ``` -**Метка времени Unix** +**Unix-время** ```sql title=Query SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort @@ -1341,21 +1374,21 @@ SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort ## parseDateTimeBestEffortOrNull \{#parseDateTimeBestEffortOrNull\} -Введена в: v1.1 +Впервые появилась в: v1.1 То же, что и [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), за исключением того, что функция возвращает `NULL`, когда встречает формат даты, который не может быть обработан. -Функция разбирает форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), форматы ClickHouse и некоторые другие форматы даты и времени. +Функция разбирает [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), форматы дат и времени ClickHouse, а также некоторые другие форматы. Поддерживаемые нестандартные форматы: -* Строка, содержащая 9–10-значный UNIX timestamp. +* Строка, содержащая 9..10-значный Unix timestamp. * Строка с компонентами даты и времени: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` и т. д. -* Строка с датой, но без компонента времени: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` и т. д. +* Строка с датой без компонента времени: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` и т. д. * Строка с днём и временем: `DD`, `DD hh`, `DD hh:mm`. В этом случае вместо `MM` подставляется `01`. * Строка, включающая дату и время вместе с информацией о смещении часового пояса: `YYYY-MM-DD hh:mm:ss ±h:mm` и т. д. * Временная метка syslog: `Mmm dd hh:mm:ss`. Например, `Jun 9 14:20:32`. -Для всех форматов с разделителем функция разбирает названия месяцев, записанные полностью или в виде первых трёх букв. +Для всех форматов с разделителем функция разбирает названия месяцев как по полному написанию, так и по первым трём буквам. Если год не указан, считается, что он равен текущему году. **Синтаксис** @@ -1366,8 +1399,8 @@ parseDateTimeBestEffortOrNull(time_string[, time_zone]) **Аргументы** -* `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `time_zone` — необязательный параметр. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -1391,21 +1424,21 @@ SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid, ## parseDateTimeBestEffortOrZero \{#parseDateTimeBestEffortOrZero\} -Введена в версии v1.1 +Введена в: v1.1 -То же, что и [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), за исключением того, что при встрече с форматом даты, который не удаётся обработать, функция возвращает нулевую дату или нулевое время. +Аналог функции [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), за исключением того, что она возвращает нулевую дату или нулевое значение дата-время, когда встречает формат даты, который не может быть обработан. Функция разбирает форматы [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), форматы ClickHouse и некоторые другие форматы даты и времени. Поддерживаемые нестандартные форматы: -* Строка, содержащая 9..10-значный Unix timestamp. +* Строка, содержащая 9..10-значную UNIX-временную метку. * Строка с компонентами даты и времени: `YYYYMMDDhhmmss`, `DD/MM/YYYY hh:mm:ss`, `DD-MM-YY hh:mm`, `YYYY-MM-DD hh:mm:ss` и т. д. * Строка с датой, но без компонента времени: `YYYY`, `YYYYMM`, `YYYY*MM`, `DD/MM/YYYY`, `DD-MM-YY` и т. д. -* Строка с днём и временем: `DD`, `DD hh`, `DD hh:mm`. В этом случае `MM` подставляется как `01`. -* Строка, включающая дату и время вместе с информацией о смещении часового пояса: `YYYY-MM-DD hh:mm:ss ±h:mm` и т. д. -* Метка времени в формате syslog: `Mmm dd hh:mm:ss`. Например, `Jun 9 14:20:32`. +* Строка с днём и временем: `DD`, `DD hh`, `DD hh:mm`. В этом случае для `MM` подставляется значение `01`. +* Строка, которая включает дату и время вместе с информацией о смещении часового пояса: `YYYY-MM-DD hh:mm:ss ±h:mm` и т. д. +* Временная метка в формате syslog: `Mmm dd hh:mm:ss`. Например, `Jun 9 14:20:32`. -Для всех форматов с разделителем функция разбирает названия месяцев, указанные полностью либо первыми тремя буквами названия месяца. +Для всех форматов с разделителями функция разбирает названия месяцев, указанные полностью или первыми тремя буквами названия месяца. Если год не указан, считается, что он равен текущему году. **Синтаксис** @@ -1417,11 +1450,11 @@ parseDateTimeBestEffortOrZero(time_string[, time_zone]) **Аргументы** * `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) +* `time_zone` — Необязательный аргумент. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string` как `DateTime` или нулевую дату/дату-время (`1970-01-01` или `1970-01-01 00:00:00`), если входное значение не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает `time_string` как `DateTime` или нулевую дату/дату-время (`1970-01-01` или `1970-01-01 00:00:00`), если значение не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1441,11 +1474,11 @@ SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid, ## parseDateTimeBestEffortUS \{#parseDateTimeBestEffortUS\} -Добавлено в: v1.1 +Введена в: v1.1 -Эта функция ведёт себя так же, как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для ISO-форматов дат, например `YYYY-MM-DD hh:mm:ss`, а также для других форматов, в которых компоненты месяца и дня могут быть однозначно определены, например `YYYYMMDDhhmmss`, `YYYY-MM`, `DD hh` или `YYYY-MM-DD hh:mm:ss ±h:mm`. -Если компоненты месяца и дня не могут быть однозначно определены, например `MM/DD/YYYY`, `MM-DD-YYYY` или `MM-DD-YY`, функция предпочитает американский формат даты вместо `DD/MM/YYYY`, `DD-MM-YYYY` или `DD-MM-YY`. -В качестве исключения из предыдущего правила, если значение месяца больше 12 и меньше либо равно 31, функция переходит к поведению [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), например `15/08/2020` разбирается как `2020-08-15`. +Эта функция ведет себя так же, как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для ISO-форматов дат, например `YYYY-MM-DD hh:mm:ss`, а также других форматов дат, где компоненты месяца и дня могут быть однозначно извлечены, например `YYYYMMDDhhmmss`, `YYYY-MM`, `DD hh` или `YYYY-MM-DD hh:mm:ss ±h:mm`. +Если компоненты месяца и дня не могут быть однозначно извлечены, например `MM/DD/YYYY`, `MM-DD-YYYY` или `MM-DD-YY`, функция отдает предпочтение формату даты США вместо `DD/MM/YYYY`, `DD-MM-YYYY` или `DD-MM-YY`. +В качестве исключения из предыдущего утверждения, если месяц больше 12 и меньше либо равен 31, эта функция переходит к поведению [`parseDateTimeBestEffort`](#parseDateTimeBestEffort), например `15/08/2020` разбирается как `2020-08-15`. **Синтаксис** @@ -1455,12 +1488,12 @@ parseDateTimeBestEffortUS(time_string[, time_zone]) **Аргументы** -* `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) +* `time_zone` — необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string` как `DateTime` с использованием формата даты, принятого в США, в неоднозначных случаях. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает `time_string` как `DateTime`, отдавая предпочтение американскому формату даты в неоднозначных случаях. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1480,11 +1513,11 @@ SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format, ## parseDateTimeBestEffortUSOrNull \{#parseDateTimeBestEffortUSOrNull\} -Появилась в версии: v1.1 +Впервые представлена в версии v1.1 Аналог функции [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS), за исключением того, что она возвращает `NULL`, когда встречает формат даты, который не может быть обработан. -Эта функция ведет себя как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для ISO-форматов дат, но в неоднозначных случаях предпочитает американский формат даты и возвращает `NULL` при ошибках разбора. +Эта функция ведёт себя как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для ISO-форматов дат, но в неоднозначных случаях предпочитает американский формат дат, возвращая `NULL` при ошибках разбора. **Синтаксис** @@ -1495,11 +1528,11 @@ parseDateTimeBestEffortUSOrNull(time_string[, time_zone]) **Аргументы** * `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым парсится `time_string`. [`String`](/sql-reference/data-types/string) +* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым интерпретируется `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string` как DateTime с использованием американского формата даты и времени или `NULL`, если входную строку не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) или [`NULL`](/sql-reference/syntax#null) +Возвращает `time_string` как DateTime с приоритетом американских форматов дат или `NULL`, если входное значение не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -1519,11 +1552,11 @@ SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us, ## parseDateTimeBestEffortUSOrZero \{#parseDateTimeBestEffortUSOrZero\} -Впервые появилась в версии v1.1 +Добавлено в версии: v1.1 -Аналог функции [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS), за исключением того, что она возвращает нулевую дату (`1970-01-01`) или нулевую дату со временем (`1970-01-01 00:00:00`), если формат даты не удаётся обработать. +Аналог функции [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS), но возвращает нулевую дату (`1970-01-01`) или нулевую дату со временем (`1970-01-01 00:00:00`), если встречает формат даты, который не может быть обработан. -Эта функция ведет себя как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для ISO-форматов дат, но в неоднозначных случаях отдает предпочтение американскому формату дат и возвращает нулевое значение при ошибках разбора. +Эта функция ведет себя так же, как [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) для форматов дат ISO, но в неоднозначных случаях предпочитает американский формат даты и возвращает нулевое значение при ошибках парсинга. **Синтаксис** @@ -1534,11 +1567,11 @@ parseDateTimeBestEffortUSOrZero(time_string[, time_zone]) **Аргументы** * `time_string` — Строка, содержащая дату и время для преобразования. [`String`](/sql-reference/data-types/string) -* `time_zone` — Необязательный параметр. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) +* `time_zone` — Необязательный. Часовой пояс, в соответствии с которым разбирается `time_string`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает `time_string` как `DateTime` с использованием формата, принятого в США, или нулевую дату/дату-время (`1970-01-01` или `1970-01-01 00:00:00`), если входную строку не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает `time_string` как `DateTime`, используя формат даты и времени, принятый в США, или нулевую дату/дату-время (`1970-01-01` или `1970-01-01 00:00:00`), если входное значение не удаётся разобрать. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1558,14 +1591,14 @@ SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us, ## parseDateTimeInJodaSyntax \{#parseDateTimeInJodaSyntax\} -Впервые представлена в версии v23.3 +Появилась в версии v23.3 -Разбирает строку с датой и временем в соответствии со строкой формата даты и времени Joda. +Разбирает строку с датой и временем в соответствии со строкой формата даты Joda. Эта функция является обратной к [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax). -Она разбирает аргумент типа String, используя строку формата в стиле Joda. Возвращает значение типа DateTime. +Она разбирает строковый аргумент, используя строку формата в стиле Joda. Возвращает тип DateTime. -Обратитесь к [документации Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) для получения информации о шаблонах форматов. +Обратитесь к [документации Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) для ознакомления с шаблонами форматов. **Синтаксис** @@ -1575,13 +1608,13 @@ parseDateTimeInJodaSyntax(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которую нужно разобрать в DateTime. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка для преобразования в DateTime. [`String`](/sql-reference/data-types/string) * `format` — Строка формата в синтаксисе Joda, определяющая, как разбирать `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime, полученное разбором входной строки в соответствии со строкой формата в стиле Joda. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает значение типа DateTime, полученное из входной строки в соответствии со строкой формата в стиле Joda. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1600,9 +1633,9 @@ SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss') ## parseDateTimeInJodaSyntaxOrNull \{#parseDateTimeInJodaSyntaxOrNull\} -Добавлено в: v23.3 +Введена в: v23.3 -Аналогично [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax), но возвращает `NULL`, когда встречает неподдающийся разбору формат даты. +Аналог функции [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax), но возвращает `NULL` при непарсируемом формате даты. **Синтаксис** @@ -1612,13 +1645,13 @@ parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка, которую нужно преобразовать в DateTime. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата в синтаксисе Joda, определяющая, как разбирать `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которая будет преобразована в DateTime. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата в синтаксисе Joda, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный аргумент. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение DateTime, полученное из входной строки, или NULL, если разбор не удался. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) +Возвращает DateTime, полученный из входной строки, или NULL, если разбор завершается неудачно. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) **Примеры** @@ -1637,7 +1670,7 @@ SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: ## parseDateTimeInJodaSyntaxOrZero \{#parseDateTimeInJodaSyntaxOrZero\} -Введена в версии v23.3 +Добавлена в: v23.3 Аналог функции [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax), но возвращает нулевую дату, если встречает неподдающийся разбору формат даты. @@ -1649,13 +1682,13 @@ parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка для разбора в значение типа DateTime. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка для разбора в DateTime. [`String`](/sql-reference/data-types/string) * `format` — Строка формата в синтаксисе Joda, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение DateTime, разобранное из входной строки, или нулевое значение DateTime, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает DateTime, полученный из входной строки, или нулевой DateTime, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1676,7 +1709,7 @@ SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: Добавлено в: v23.3 -То же, что и [`parseDateTime`](#parseDateTime), но возвращает `NULL`, когда не удаётся разобрать дату из-за неподходящего формата. +Аналог [`parseDateTime`](#parseDateTime), но возвращает `NULL`, когда встречает некорректный формат даты. **Синтаксис** @@ -1688,13 +1721,13 @@ parseDateTimeOrNull(time_string, format[, timezone]) **Аргументы** -* `time_string` — строка, которая будет преобразована в DateTime. [`String`](/sql-reference/data-types/string) -* `format` — строка формата, определяющая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) -* `timezone` — необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка для разбора в DateTime. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата, определяющая, как следует разбирать `time_string`. [`String`](/sql-reference/data-types/string) +* `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает DateTime, полученный из входной строки, или NULL, если разбор не удался. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) +Возвращает DateTime, полученный разбором входной строки, или NULL, если разбор не удался. [`Nullable(DateTime)`](/sql-reference/data-types/nullable) **Примеры** @@ -1713,9 +1746,9 @@ SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## parseDateTimeOrZero \{#parseDateTimeOrZero\} -Введена в версии v23.3 +Впервые появилась в версии v23.3 -Аналог функции [`parseDateTime`](#parseDateTime), но возвращает нулевую дату, если встречает нераспознаваемый формат даты. +Аналог функции [`parseDateTime`](#parseDateTime), но возвращает нулевую дату, если встречает дату в формате, который невозможно разобрать. **Синтаксис** @@ -1725,13 +1758,13 @@ parseDateTimeOrZero(time_string, format[, timezone]) **Аргументы** -* `time_string` — Строка для разбора в значение DateTime. [`String`](/sql-reference/data-types/string) -* `format` — Строка формата, определяющая, как интерпретировать `time_string`. [`String`](/sql-reference/data-types/string) +* `time_string` — Строка, которая будет преобразована в DateTime. [`String`](/sql-reference/data-types/string) +* `format` — Строка формата, задающая способ разбора `time_string`. [`String`](/sql-reference/data-types/string) * `timezone` — Необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение DateTime, полученное из входной строки, или нулевой DateTime, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает DateTime, полученный из входной строки, или нулевое значение DateTime, если разбор не удался. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -1750,9 +1783,9 @@ SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## reinterpret \{#reinterpret\} -Появилась в версии: v1.1 +Добавлено в версии v1.1 -Использует ту же последовательность байт в памяти для переданного значения `x` и интерпретирует её как значение целевого типа. +Использует ту же исходную последовательность байт в памяти для заданного значения `x` и переинтерпретирует её как значение целевого типа. **Синтаксис** @@ -1762,8 +1795,8 @@ reinterpret(x, type) **Аргументы** -* `x` — Любой тип. [`Any`](/sql-reference/data-types) -* `type` — Целевой тип. Если это массив, то тип элементов массива должен быть типом фиксированной длины. [`String`](/sql-reference/data-types/string) +* `x` — Произвольный тип. [`Any`](/sql-reference/data-types) +* `type` — Целевой тип. Если это массив, тип элементов массива должен иметь фиксированную длину. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -1800,9 +1833,9 @@ SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS str ## reinterpretAsDate \{#reinterpretAsDate\} -Впервые появилась в: v1.1 +Введена в версии: v1.1 -Интерпретирует входное значение как значение типа Date (при условии порядка байтов little endian), представляющее количество дней, прошедших с начала эпохи Unix 1970-01-01. +Переинтерпретирует входное значение как значение типа Date (предполагается порядок байт little endian), представляющее собой количество дней с начала Unix-эпохи 1970-01-01. **Синтаксис** @@ -1812,7 +1845,7 @@ reinterpretAsDate(x) **Аргументы** -* `x` — Количество дней с начала эпохи Unix. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — количество дней, прошедших с начала эпохи Unix. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** @@ -1835,9 +1868,9 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A') ## reinterpretAsDateTime \{#reinterpretAsDateTime\} -Добавлено в: v1.1 +Введена в версии: v1.1 -Переинтерпретирует входное значение как значение DateTime (при условии порядка байтов little endian), которое представляет собой количество дней, прошедших с начала эпохи Unix — 1970-01-01. +Интерпретирует входное значение как значение типа DateTime (предполагая порядок байт little endian), которое представляет собой количество дней, прошедших с начала эпохи Unix (1970-01-01). **Синтаксис** @@ -1847,7 +1880,7 @@ reinterpretAsDateTime(x) **Аргументы** -* `x` — Число секунд с начала эпохи Unix. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — число секунд с начала эпохи Unix. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** @@ -1870,10 +1903,10 @@ SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A') ## reinterpretAsFixedString \{#reinterpretAsFixedString\} -Впервые появилась в: v1.1 +Впервые появилась в версии v1.1 -Рассматривает входное значение как строку фиксированной длины (предполагается порядок байт little-endian). -Нулевые байты в конце игнорируются, например, для значения UInt32 255 функция возвращает строку с одним символом. +Интерпретирует входное значение как строку фиксированной длины (при условии порядка байтов little endian). +Нулевые байты в конце игнорируются, например, для значения UInt32 255 функция возвращает строку из одного символа. **Синтаксис** @@ -1883,11 +1916,11 @@ reinterpretAsFixedString(x) **Аргументы** -* `x` — Значение для переинтерпретации как строки. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) +* `x` — Значение для переинтерпретации в строку. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) **Возвращаемое значение** -Строка фиксированной длины, содержащая байты, представляющие `x`. [`FixedString`](/sql-reference/data-types/fixedstring) +Фиксированная строка, содержащая байты, соответствующие `x`. [`FixedString`](/sql-reference/data-types/fixedstring) **Примеры** @@ -1908,10 +1941,10 @@ SELECT ## reinterpretAsFloat32 \{#reinterpretAsFloat32\} -Введена в версии v1.1 +Была добавлена в версии: v1.1 Интерпретирует входное значение как значение типа Float32. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение исходного типа, результат является неопределённым. +В отличие от [`CAST`](#CAST), функция не пытается сохранять исходное значение — если целевой тип не может представить значение исходного типа, результат является неопределённым. **Синтаксис** @@ -1944,9 +1977,9 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x) ## reinterpretAsFloat64 \{#reinterpretAsFloat64\} -Появилась в версии v1.1 +Впервые представлена в версии: v1.1 -Интерпретирует входное значение как значение типа Float64. +Переинтерпретирует входное значение как значение типа Float64. В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. **Синтаксис** @@ -1957,11 +1990,11 @@ reinterpretAsFloat64(x) **Аргументы** -* `x` — значение, которое нужно интерпретировать как Float64. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, интерпретируемое как Float64. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, интерпретированное как [`Float64`](/sql-reference/data-types/float). +Возвращает значение `x` после переинтерпретации. [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -1980,10 +2013,10 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) ## reinterpretAsInt128 \{#reinterpretAsInt128\} -Введена в версии v1.1 +Введена в версии: v1.1 Интерпретирует входное значение как значение типа Int128. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если в целевом типе невозможно представить входное значение, результат не определён. **Синтаксис** @@ -1993,11 +2026,11 @@ reinterpretAsInt128(x) **Аргументы** -* `x` — значение, которое нужно интерпретировать как Int128. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение для интерпретации как Int128. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x` после переинтерпретации. [`Int128`](/sql-reference/data-types/int-uint) +Возвращает значение `x`, интерпретированное как [`Int128`](/sql-reference/data-types/int-uint). **Примеры** @@ -2020,10 +2053,10 @@ SELECT ## reinterpretAsInt16 \{#reinterpretAsInt16\} -Добавлена в: v1.1 +Введена в версии: v1.1 Интерпретирует входное значение как значение типа Int16. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не определён. **Синтаксис** @@ -2033,11 +2066,11 @@ reinterpretAsInt16(x) **Аргументы** -* `x` — Значение для интерпретации как Int16. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, которое нужно переинтерпретировать как тип данных Int16. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, интерпретированное как [`Int16`](/sql-reference/data-types/int-uint). +Возвращает значение `x`, переинтерпретированное как [`Int16`](/sql-reference/data-types/int-uint). **Примеры** @@ -2060,10 +2093,10 @@ SELECT ## reinterpretAsInt256 \{#reinterpretAsInt256\} -Добавлено в версию: v1.1 +Впервые добавлена в версии: v1.1 -Интерпретирует входное значение как значение типа Int256. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +Переинтерпретирует входное значение как значение типа Int256. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не определён. **Синтаксис** @@ -2077,7 +2110,7 @@ reinterpretAsInt256(x) **Возвращаемое значение** -Возвращает значение `x` в виде [`Int256`](/sql-reference/data-types/int-uint). +Возвращает значение `x`, интерпретированное как [`Int256`](/sql-reference/data-types/int-uint). **Примеры** @@ -2100,7 +2133,7 @@ SELECT ## reinterpretAsInt32 \{#reinterpretAsInt32\} -Впервые добавлена в версии v1.1. +Введена в версии: v1.1 Интерпретирует входное значение как значение типа Int32. В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение исходного типа, результат не определён. @@ -2113,7 +2146,7 @@ reinterpretAsInt32(x) **Аргументы** -* `x` — значение для переинтерпретации в Int32. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, которое нужно переинтерпретировать как Int32. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** @@ -2140,10 +2173,10 @@ SELECT ## reinterpretAsInt64 \{#reinterpretAsInt64\} -Добавлена в: v1.1 +Введена в версии: v1.1 -Интерпретирует входное значение как значение типа Int64. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +Переинтерпретирует входное значение как значение типа Int64. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не определён. **Синтаксис** @@ -2153,11 +2186,11 @@ reinterpretAsInt64(x) **Аргументы** -* `x` — Значение, которое необходимо переинтерпретировать как Int64. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Значение, которое следует трактовать как Int64. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, переинтерпретированное как [`Int64`](/sql-reference/data-types/int-uint). +Возвращает значение `x`, интерпретированное как тип [`Int64`](/sql-reference/data-types/int-uint). **Примеры** @@ -2180,10 +2213,10 @@ SELECT ## reinterpretAsInt8 \{#reinterpretAsInt8\} -Появилась в версии: v1.1 +Введена в версии v1.1 Интерпретирует входное значение как значение типа Int8. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат неопределён. **Синтаксис** @@ -2193,7 +2226,7 @@ reinterpretAsInt8(x) **Аргументы** -* `x` — Значение, которое нужно переинтерпретировать как Int8. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Значение для переинтерпретации в Int8. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** @@ -2220,10 +2253,10 @@ SELECT ## reinterpretAsString \{#reinterpretAsString\} -Введена в версии: v1.1 +Введена в: v1.1 -Интерпретирует входное значение как строку (при предположении порядка байт little-endian). -Нулевые байты в конце игнорируются, например, для значения UInt32 255 функция возвращает строку из одного символа. +Переинтерпретирует входное значение как строку (предполагается порядок байт little-endian). +Нулевые байты в конце игнорируются, например, для значения UInt32, равного 255, функция возвращает строку с одним символом. **Синтаксис** @@ -2233,11 +2266,11 @@ reinterpretAsString(x) **Аргументы** -* `x` — значение, которое переинтерпретируется как строка. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) +* `x` — значение, которое нужно переинтерпретировать в строку. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) **Возвращаемое значение** -Строка, содержащая байтовое представление `x`. [`String`](/sql-reference/data-types/string) +Строка, содержащая байты, представляющие значение `x`. [`String`](/sql-reference/data-types/string) **Примеры** @@ -2258,10 +2291,10 @@ SELECT ## reinterpretAsUInt128 \{#reinterpretAsUInt128\} -Добавлена в версии: v1.1 +Введено в: v1.1 Интерпретирует входное значение как значение типа UInt128. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат является неопределённым. **Синтаксис** @@ -2271,11 +2304,11 @@ reinterpretAsUInt128(x) **Аргументы** -* `x` — значение для интерпретации как UInt128. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Значение для переинтерпретации как UInt128. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, интерпретированное как [`UInt128`](/sql-reference/data-types/int-uint). +Возвращает значение `x`, переинтерпретированное как [`UInt128`](/sql-reference/data-types/int-uint). **Примеры** @@ -2298,10 +2331,10 @@ SELECT ## reinterpretAsUInt16 \{#reinterpretAsUInt16\} -Введена в версии: v1.1 +Добавлена в: v1.1 -Интерпретирует входное значение как значение типа UInt16. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение: если целевой тип не может представить входное значение, результат не определён. +Переинтерпретирует входное значение как значение типа UInt16. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. **Синтаксис** @@ -2311,11 +2344,11 @@ reinterpretAsUInt16(x) **Аргументы** -* `x` — значение, которое нужно переинтерпретировать как [`UInt16`](/sql-reference/data-types/int-uint). [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — Значение, которое нужно переинтерпретировать как UInt16. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, переинтерпретированное как [`UInt16`](/sql-reference/data-types/int-uint). +Возвращает значение `x` после переинтерпретации. [`UInt16`](/sql-reference/data-types/int-uint) **Примеры** @@ -2338,10 +2371,10 @@ SELECT ## reinterpretAsUInt256 \{#reinterpretAsUInt256\} -Добавлено в: v1.1 +Добавлена в версии: v1.1 -Переинтерпретирует входное значение как значение типа UInt256. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +Интерпретирует входное значение как значение типа UInt256. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определен. **Синтаксис** @@ -2351,11 +2384,11 @@ reinterpretAsUInt256(x) **Аргументы** -* `x` — Значение, которое нужно переинтерпретировать как UInt256. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, которое нужно переинтерпретировать как UInt256. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x` после переинтерпретации. [`UInt256`](/sql-reference/data-types/int-uint) +Возвращает переинтерпретированное значение `x` типа [`UInt256`](/sql-reference/data-types/int-uint). **Примеры** @@ -2378,9 +2411,9 @@ SELECT ## reinterpretAsUInt32 \{#reinterpretAsUInt32\} -Добавлена в версии: v1.1 +Введена в: v1.1 -Интерпретирует входное значение как значение типа `UInt32`. +Интерпретирует входное значение как значение типа UInt32. В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. **Синтаксис** @@ -2391,11 +2424,11 @@ reinterpretAsUInt32(x) **Аргументы** -* `x` — Значение, которое нужно интерпретировать как UInt32. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, которое нужно переинтерпретировать как UInt32. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, интерпретированное как [`UInt32`](/sql-reference/data-types/int-uint). +Возвращает значение `x` после переинтерпретации. [`UInt32`](/sql-reference/data-types/int-uint) **Примеры** @@ -2418,10 +2451,10 @@ SELECT ## reinterpretAsUInt64 \{#reinterpretAsUInt64\} -Впервые появилась в: v1.1 +Введена в версии: v1.1 Интерпретирует входное значение как значение типа UInt64. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. **Синтаксис** @@ -2431,11 +2464,11 @@ reinterpretAsUInt64(x) **Аргументы** -* `x` — значение, которое нужно переинтерпретировать как UInt64. [`Int*`](/sql-reference/data-types/int-uint) или [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, интерпретируемое как UInt64. [`Int*`](/sql-reference/data-types/int-uint) или [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение `x`, переинтерпретированное как [`UInt64`](/sql-reference/data-types/int-uint). +Возвращает значение `x`, интерпретированное как [`UInt64`](/sql-reference/data-types/int-uint). **Примеры** @@ -2458,10 +2491,10 @@ SELECT ## reinterpretAsUInt8 \{#reinterpretAsUInt8\} -Впервые появился в версии v1.1 +Введена в версии: v1.1 Переинтерпретирует входное значение как значение типа UInt8. -В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не определён. +В отличие от [`CAST`](#CAST), функция не пытается сохранить исходное значение — если целевой тип не может представить значения входного типа, результат является неопределённым. **Синтаксис** @@ -2471,11 +2504,11 @@ reinterpretAsUInt8(x) **Аргументы** -* `x` — значение, которое необходимо переинтерпретировать как UInt8. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — значение, которое нужно переинтерпретировать как значение типа UInt8. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`UUID`](/sql-reference/data-types/uuid) или [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает переинтерпретированное значение `x`. [`UInt8`](/sql-reference/data-types/int-uint) +Возвращает `x`, переинтерпретированное как [`UInt8`](/sql-reference/data-types/int-uint). **Примеры** @@ -2498,9 +2531,9 @@ SELECT ## reinterpretAsUUID \{#reinterpretAsUUID\} -Появилась в версии: v1.1 +Введена в версии: v1.1 -Принимает строку из 16 байт и возвращает UUID, интерпретируя каждую 8-байтную половину в порядке байт little-endian. Если длина строки недостаточна, функция работает так, как если бы строка была дополнена в конце необходимым количеством нулевых байт. Если строка длиннее 16 байт, лишние байты в конце игнорируются. +Принимает строку из 16 байт и возвращает UUID, интерпретируя каждую 8-байтную половину в порядке байтов little-endian. Если строка короче, функция работает так, как будто строка дополнена в конец необходимым количеством нулевых байтов. Если строка длиннее 16 байт, лишние байты в конце игнорируются. **Синтаксис** @@ -2533,10 +2566,10 @@ SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f'))) ## toBFloat16 \{#toBFloat16\} -Появилась в версии v1.1 +Добавлена в версии v1.1 -Преобразует переданное значение в значение типа BFloat16. -Выбрасывает исключение в случае ошибки. +Преобразует входное значение в значение типа BFloat16. +Выбрасывает исключение при ошибке. См. также: @@ -2555,7 +2588,7 @@ toBFloat16(expr) **Возвращаемое значение** -Возвращает 16-битное значение в формате brain-float. [`BFloat16`](/sql-reference/data-types/float) +Возвращает 16-битное значение формата brain floating point. [`BFloat16`](/sql-reference/data-types/float) **Примеры** @@ -2578,9 +2611,9 @@ toBFloat16('42.7'): 42.5 ## toBFloat16OrNull \{#toBFloat16OrNull\} -Появилась в версии: v1.1 +Введена в версии v1.1 -Преобразует строковое входное значение в значение типа BFloat16. +Преобразует входное значение типа String в значение типа BFloat16. Если строка не представляет собой число с плавающей запятой, функция возвращает NULL. Поддерживаемые аргументы: @@ -2613,7 +2646,7 @@ toBFloat16OrNull(x) **Возвращаемое значение** -Возвращает 16-битное значение формата bfloat16, иначе `NULL`. [`BFloat16`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) +Возвращает 16-битное значение формата BFloat16, иначе `NULL`. [`BFloat16`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -2634,10 +2667,10 @@ SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments ## toBFloat16OrZero \{#toBFloat16OrZero\} -Введена в версии v1.1 +Добавлена в: v1.1 Преобразует входное значение типа String в значение типа BFloat16. -Если строка не представляет число с плавающей точкой, функция возвращает ноль. +Если строка не представляет собой число с плавающей запятой, функция возвращает ноль. Поддерживаемые аргументы: @@ -2645,7 +2678,7 @@ SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления двоичных и шестнадцатеричных значений. +* Строковые представления двоичных и шестнадцатеричных чисел. * Числовые значения. :::note @@ -2669,7 +2702,7 @@ toBFloat16OrZero(x) **Возвращаемое значение** -Возвращает 16-битное значение в формате brain floating point (bfloat16), в противном случае `0`. [`BFloat16`](/sql-reference/data-types/float) +Возвращает 16-битное значение типа brain floating point, иначе `0`. [`BFloat16`](/sql-reference/data-types/float) **Примеры** @@ -2690,7 +2723,7 @@ SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments ## toBool \{#toBool\} -Добавлено в: v22.2 +Введена в версии v22.2. Преобразует входное значение в значение типа Bool. @@ -2706,7 +2739,7 @@ toBool(expr) **Возвращаемое значение** -Возвращает `true` или `false` на основании результата вычисления аргумента. [`Bool`](/sql-reference/data-types/boolean) +Возвращает `true` или `false` на основе результата вычисления аргумента. [`Bool`](/sql-reference/data-types/boolean) **Примеры** @@ -2748,15 +2781,15 @@ toDate(x) **Аргументы** -* `x` — Входное значение, подлежащее преобразованию. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime`](/sql-reference/data-types/datetime) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `x` — входное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime`](/sql-reference/data-types/datetime) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) **Возвращаемое значение** -Возвращает преобразованное входное значение. [`Date`](/sql-reference/data-types/date) +Возвращает преобразованное значение. [`Date`](/sql-reference/data-types/date) **Примеры** -**Преобразование из String в Date** +**Преобразование значения типа String в Date** ```sql title=Query SELECT toDate('2025-04-15') @@ -2766,7 +2799,7 @@ SELECT toDate('2025-04-15') 2025-04-15 ``` -**Преобразование типа DateTime в Date** +**Преобразование из DateTime в Date** ```sql title=Query SELECT toDate(toDateTime('2025-04-15 10:30:00')) @@ -2776,7 +2809,7 @@ SELECT toDate(toDateTime('2025-04-15 10:30:00')) 2025-04-15 ``` -**Преобразование целого числа в тип Date** +**Преобразование целого числа в дату (Date)** ```sql title=Query SELECT toDate(20297) @@ -2789,11 +2822,11 @@ SELECT toDate(20297) ## toDate32 \{#toDate32\} -Впервые представлена в: v21.9 +Введена в версии: v21.9 -Преобразует аргумент в тип данных [Date32](../data-types/date32.md). -Если значение выходит за допустимый диапазон, `toDate32` возвращает граничные значения, поддерживаемые [Date32](../data-types/date32.md). -Если аргумент имеет тип [`Date`](../data-types/date.md), учитываются его границы. +Преобразует аргумент к типу данных [Date32](../data-types/date32.md). +Если значение выходит за пределы допустимого диапазона, `toDate32` возвращает граничные значения, поддерживаемые [Date32](../data-types/date32.md). +Если аргумент имеет тип [`Date`](../data-types/date.md), его границы также учитываются. **Синтаксис** @@ -2803,7 +2836,7 @@ toDate32(expr) **Аргументы** -* `expr` — значение для преобразования. [`String`](/sql-reference/data-types/string) или [`UInt32`](/sql-reference/data-types/int-uint) или [`Date`](/sql-reference/data-types/date) +* `expr` — значение, которое нужно преобразовать. [`String`](/sql-reference/data-types/string) или [`UInt32`](/sql-reference/data-types/int-uint) или [`Date`](/sql-reference/data-types/date) **Возвращаемое значение** @@ -2811,7 +2844,7 @@ toDate32(expr) **Примеры** -**В допустимом диапазоне** +**В пределах допустимого диапазона** ```sql title=Query SELECT toDate32('2025-01-01') AS value, toTypeName(value) @@ -2825,7 +2858,7 @@ value: 2025-01-01 toTypeName(value): Date32 ``` -**Вне диапазона** +**За пределами диапазона** ```sql title=Query SELECT toDate32('1899-01-01') AS value, toTypeName(value) @@ -2842,9 +2875,9 @@ toTypeName(value): Date32 ## toDate32OrDefault \{#toDate32OrDefault\} -Добавлено в: v21.11 +Введена в: v21.11 -Преобразует аргумент в тип данных [Date32](../data-types/date32.md). Если значение выходит за пределы диапазона, `toDate32OrDefault` возвращает нижнюю границу диапазона, поддерживаемого [Date32](../data-types/date32.md). Если аргумент имеет тип [Date](../data-types/date.md), учитываются его границы. Возвращает значение по умолчанию, если получен некорректный аргумент. +Преобразует аргумент к типу данных [Date32](../data-types/date32.md). Если значение выходит за допустимый диапазон, `toDate32OrDefault` возвращает нижнюю границу диапазона, поддерживаемого [Date32](../data-types/date32.md). Если аргумент имеет тип [Date](../data-types/date.md), дополнительно учитываются его границы диапазона. Возвращает значение по умолчанию, если получен некорректный аргумент. **Синтаксис** @@ -2855,11 +2888,11 @@ toDate32OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, которое возвращается при неудачном разборе. [`Date32`](/sql-reference/data-types/date32) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разбор не удался. [`Date32`](/sql-reference/data-types/date32) **Возвращаемое значение** -Значение типа Date32 при успешном разборе, иначе — значение по умолчанию, если оно передано, или 1900-01-01, если нет. [`Date32`](/sql-reference/data-types/date32) +Значение типа Date32 при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно передано, или 1900-01-01, если нет. [`Date32`](/sql-reference/data-types/date32) **Примеры** @@ -2873,7 +2906,7 @@ SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01')) 1930-01-01 ``` -**Не удалось преобразовать** +**Ошибка преобразования** ```sql title=Query SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) @@ -2886,10 +2919,10 @@ SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) ## toDate32OrNull \{#toDate32OrNull\} -Добавлена в версии v21.9 +Введена в: v21.9 -Преобразует входное значение в значение типа Date32, но возвращает `NULL`, если получен некорректный аргумент. -Аналогична [`toDate32`](#toDate32), но возвращает `NULL`, если получен некорректный аргумент. +Преобразует входное значение в тип Date32, но возвращает `NULL`, если передан недопустимый аргумент. +Аналогична [`toDate32`](#toDate32), но возвращает `NULL`, если передан недопустимый аргумент. **Синтаксис** @@ -2903,7 +2936,7 @@ toDate32OrNull(x) **Возвращаемое значение** -Возвращает значение типа Date32 в случае успеха, иначе `NULL`. [`Date32`](/sql-reference/data-types/date32) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа `Date32` при успешном выполнении, иначе `NULL`. [`Date32`](/sql-reference/data-types/date32) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -2922,10 +2955,10 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') ## toDate32OrZero \{#toDate32OrZero\} -Введена в версии v21.9. +Добавлена в версии: v21.9 -Преобразует входное значение к типу [Date32](../data-types/date32.md), но возвращает нижнюю границу диапазона [Date32](../data-types/date32.md), если получен некорректный аргумент. -Действует так же, как функция [toDate32](#toDate32), но при некорректном аргументе возвращает нижнюю границу диапазона [Date32](../data-types/date32.md). +Преобразует входное значение в значение типа [Date32](../data-types/date32.md), но возвращает нижнюю границу [Date32](../data-types/date32.md), если получен некорректный аргумент. +Аналогично [toDate32](#toDate32), но возвращает нижнюю границу [Date32](../data-types/date32.md), если получен некорректный аргумент. См. также: @@ -2945,7 +2978,7 @@ toDate32OrZero(x) **Возвращаемое значение** -Возвращает значение типа Date32 при успешном преобразовании, в противном случае — нижнюю границу Date32 (`1900-01-01`). [`Date32`](/sql-reference/data-types/date32) +Возвращает значение типа Date32 в случае успешного преобразования, в противном случае — нижнюю границу типа Date32 (`1900-01-01`). [`Date32`](/sql-reference/data-types/date32) **Примеры** @@ -2964,9 +2997,9 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') ## toDateOrDefault \{#toDateOrDefault\} -Впервые появилась в версии: v21.11 +Введена в версии: v21.11 -Аналог функции [toDate](#toDate), но в случае неудачи возвращает значение по умолчанию — либо второй аргумент (если он указан), либо нижнюю границу типа [Date](../data-types/date.md). +Аналог функции [toDate](#toDate), но при неуспешном преобразовании возвращает значение по умолчанию — либо второй аргумент (если указан), либо нижнюю границу диапазона типа [Date](../data-types/date.md). **Синтаксис** @@ -2977,11 +3010,11 @@ toDateOrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если разбор не удался. [`Date`](/sql-reference/data-types/date) +* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается при неудачной попытке разбора. [`Date`](/sql-reference/data-types/date) **Возвращаемое значение** -Значение типа Date при успешном разборе, иначе возвращается значение по умолчанию, если оно задано, или 1970-01-01, если нет. [`Date`](/sql-reference/data-types/date) +Значение типа Date при успешном преобразовании, в противном случае — значение по умолчанию, если оно указано, или 1970-01-01, если не указано. [`Date`](/sql-reference/data-types/date) **Примеры** @@ -3008,10 +3041,10 @@ SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) ## toDateOrNull \{#toDateOrNull\} -Добавлена в версии: v1.1 +Добавлено в версии: v1.1 -Преобразует входное значение в значение типа `Date`, но возвращает `NULL`, если получен некорректный аргумент. -Аналог функции [`toDate`](#toDate), но возвращает `NULL`, если получен некорректный аргумент. +Преобразует входное значение в значение типа `Date`, но возвращает `NULL`, если получен недопустимый аргумент. +То же, что и [`toDate`](#toDate), но возвращает `NULL`, если получен недопустимый аргумент. **Синтаксис** @@ -3021,11 +3054,11 @@ toDateOrNull(x) **Аргументы** -* `x` — строковое представление даты. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление даты. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа Date при успешном преобразовании, в противном случае — `NULL`. [`Date`](/sql-reference/data-types/date) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Date, если преобразование прошло успешно, в противном случае — `NULL`. [`Date`](/sql-reference/data-types/date) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -3044,10 +3077,10 @@ SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid') ## toDateOrZero \{#toDateOrZero\} -Добавлена в: v1.1 +Введена в: v1.1 -Преобразует входное значение к типу [`Date`](../data-types/date.md), но возвращает нижнюю границу диапазона типа [`Date`](../data-types/date.md), если передан некорректный аргумент. -Аналог функции [toDate](#toDate), но возвращает нижнюю границу диапазона типа [`Date`](../data-types/date.md), если передан некорректный аргумент. +Преобразует входное значение в значение типа [`Date`](../data-types/date.md), но возвращает нижнюю границу [`Date`](../data-types/date.md), если получен некорректный аргумент. +То же самое, что и [toDate](#toDate), но возвращает нижнюю границу [`Date`](../data-types/date.md), если получен некорректный аргумент. См. также: @@ -3063,11 +3096,11 @@ toDateOrZero(x) **Аргументы** -* `x` — строковое представление даты. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление даты. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа Date при успешном преобразовании, иначе — нижнюю границу диапазона типа Date (`1970-01-01`). [`Date`](/sql-reference/data-types/date) +Возвращает значение типа Date при успешном преобразовании, в противном случае — нижнюю границу типа Date (`1970-01-01`). [`Date`](/sql-reference/data-types/date) **Примеры** @@ -3086,14 +3119,14 @@ SELECT toDateOrZero('2025-12-30'), toDateOrZero('') ## toDateTime \{#toDateTime\} -Добавлено в: v1.1 +Введён в версии: v1.1 Преобразует входное значение к типу [DateTime](../data-types/datetime.md). :::note -Если `expr` — число, оно интерпретируется как количество секунд с начала эпохи Unix (как Unix timestamp). -Если `expr` — [String](../data-types/string.md), оно может быть интерпретировано как Unix timestamp или как строковое представление даты / даты со временем. -Поэтому разбор коротких строковых представлений чисел (до 4 цифр) явно отключён из-за неоднозначности: например, строка `'1999'` может означать как год (неполное строковое представление Date / DateTime), так и Unix timestamp. Более длинные числовые строки разрешены. +Если `expr` — число, оно интерпретируется как количество секунд с начала эпохи Unix (как отметка времени Unix). +Если `expr` — [String](../data-types/string.md), оно может быть интерпретировано как отметка времени Unix или как строковое представление даты / даты и времени. +Таким образом, разбор коротких строковых представлений чисел (до 4 цифр) явно отключён из-за неоднозначности: например, строка `'1999'` может быть как годом (неполным строковым представлением Date / DateTime), так и отметкой времени Unix. Более длинные числовые строки разрешены. ::: **Синтаксис** @@ -3130,11 +3163,11 @@ toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00 ## toDateTime32 \{#toDateTime32\} -Впервые представлена в: v20.9 +Введена в: v20.9 -Преобразует входное значение к типу `DateTime`. -Поддерживает преобразование из типов `String`, `FixedString`, `Date`, `Date32`, `DateTime` или числовых типов (`(U)Int*`, `Float*`, `Decimal`). -DateTime32 обеспечивает расширенный диапазон по сравнению с `DateTime`, поддерживая даты от `1900-01-01` до `2299-12-31`. +Преобразует входное значение в тип `DateTime`. +Поддерживает преобразование из `String`, `FixedString`, `Date`, `Date32`, `DateTime` или числовых типов (`(U)Int*`, `Float*`, `Decimal`). +`DateTime32` обеспечивает расширенный диапазон по сравнению с `DateTime`, поддерживая даты от `1900-01-01` до `2299-12-31`. **Синтаксис** @@ -3144,16 +3177,16 @@ toDateTime32(x[, timezone]) **Аргументы** -* `x` — Входное значение, которое нужно преобразовать. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`DateTime64`](/sql-reference/data-types/datetime64) +* `x` — Входное значение, которое требуется преобразовать. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`UInt*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) или [`DateTime64`](/sql-reference/data-types/datetime64) * `timezone` — Необязательный параметр. Часовой пояс для возвращаемого значения `DateTime`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает преобразованное входное значение. [`DateTime`](/sql-reference/data-types/datetime) +Возвращает преобразованное значение. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** -**Значение лежит в допустимом диапазоне** +**Значение находится в допустимом диапазоне** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3182,7 +3215,7 @@ SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────┘ ``` -**С часовым поясом** +**С указанием часового пояса** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); @@ -3197,9 +3230,9 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN ## toDateTime64 \{#toDateTime64\} -Функция впервые появилась в версии v20.1. +Добавлено в версии: v20.1 -Преобразует входное значение в значение типа [`DateTime64`](../data-types/datetime64.md). +Преобразует переданное значение в значение типа [`DateTime64`](../data-types/datetime64.md). **Синтаксис** @@ -3210,8 +3243,8 @@ toDateTime64(expr, scale[, timezone]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `scale` — размер тика (точность): 10^(-scale) секунды. [`UInt8`](/sql-reference/data-types/int-uint) -* `timezone` — необязательный. Часовой пояс для указанного объекта `DateTime64`. [`String`](/sql-reference/data-types/string) +* `scale` — шаг тика (точность): 10^(-scale) секунд. [`UInt8`](/sql-reference/data-types/int-uint) +* `timezone` — необязательный параметр. Часовой пояс для указанного объекта `DateTime64`. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -3219,7 +3252,7 @@ toDateTime64(expr, scale[, timezone]) **Примеры** -**Значение в допустимом диапазоне** +**Значение находится в допустимом диапазоне** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3231,7 +3264,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**Как десятичное число с точностью** +**В десятичное число с заданной точностью** ```sql title=Query SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value); @@ -3260,11 +3293,11 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN ## toDateTime64OrDefault \{#toDateTime64OrDefault\} -Впервые была введена в версии v21.11 +Введена в версии: v21.11 -Как и [toDateTime64](#toDateTime64), эта функция преобразует входное значение к типу [DateTime64](../data-types/datetime64.md), -но возвращает либо значение по умолчанию типа [DateTime64](../data-types/datetime64.md), -либо переданное значение по умолчанию, если передан некорректный аргумент. +Как и [toDateTime64](#toDateTime64), эта функция преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md), +но возвращает либо значение по умолчанию для [DateTime64](../data-types/datetime64.md), +либо указанное значение по умолчанию, если передан некорректный аргумент. **Синтаксис** @@ -3277,11 +3310,11 @@ toDateTime64OrDefault(expr, scale[, timezone, default]) * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) * `scale` — размер тика (точность): 10^-precision секунды. [`UInt8`](/sql-reference/data-types/int-uint) * `timezone` — необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) -* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разбор выполнить не удалось. [`DateTime64`](/sql-reference/data-types/datetime64) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при неудачной попытке разбора. [`DateTime64`](/sql-reference/data-types/datetime64) **Возвращаемое значение** -Значение типа DateTime64 при успешном разборе, в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01 00:00:00.000, если нет. [`DateTime64`](/sql-reference/data-types/datetime64) +Значение типа DateTime64 при успешном преобразовании; в противном случае возвращает значение по умолчанию, если оно указано, или 1970-01-01 00:00:00.000, если нет. [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -3308,10 +3341,10 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2 ## toDateTime64OrNull \{#toDateTime64OrNull\} -Введена в версии: v20.1 +Появилась в версии: v20.1 -Преобразует входное значение в значение типа `DateTime64`, но возвращает `NULL`, если получен неверный аргумент. -Аналогична функции `toDateTime64`, но возвращает `NULL`, если получен неверный аргумент. +Преобразует входное значение в значение типа `DateTime64`, но возвращает `NULL`, если получен некорректный аргумент. +Аналогична функции `toDateTime64`, но возвращает `NULL`, если получен некорректный аргумент. **Синтаксис** @@ -3321,11 +3354,11 @@ toDateTime64OrNull(x) **Аргументы** -* `x` — Строковое представление даты со временем и долями секунды. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление даты и времени с точностью до долей секунды. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime64 при успешном преобразовании, иначе `NULL`. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа DateTime64 при успешном преобразовании, иначе — `NULL`. [`DateTime64`](/sql-reference/data-types/datetime64) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -3344,10 +3377,10 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali ## toDateTime64OrZero \{#toDateTime64OrZero\} -Впервые появилась в версии v20.1 +Введена в: v20.1 -Преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md), но возвращает нижнюю границу значений типа [DateTime64](../data-types/datetime64.md), если получен некорректный аргумент. -Аналогична функции [toDateTime64](#toDateTime64), но возвращает нижнюю границу значений типа [DateTime64](../data-types/datetime64.md), если получен некорректный аргумент. +Преобразует входное значение в значение типа [DateTime64](../data-types/datetime64.md), но возвращает нижнюю границу диапазона значений [DateTime64](../data-types/datetime64.md), если получен некорректный аргумент. +Аналогична [toDateTime64](#toDateTime64), но возвращает нижнюю границу диапазона значений [DateTime64](../data-types/datetime64.md), если получен некорректный аргумент. См. также: @@ -3363,11 +3396,11 @@ toDateTime64OrZero(x) **Аргументы** -* `x` — строковое представление даты и времени с субсекундной точностью. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление даты со временем и субсекундной точностью. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime64 при успешном преобразовании, в противном случае — нижнюю границу типа DateTime64 (`1970-01-01 00:00:00.000`). [`DateTime64`](/sql-reference/data-types/datetime64) +Возвращает значение типа DateTime64 в случае успешного преобразования, в противном случае — нижнюю границу типа DateTime64 (`1970-01-01 00:00:00.000`). [`DateTime64`](/sql-reference/data-types/datetime64) **Примеры** @@ -3386,9 +3419,9 @@ SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invali ## toDateTimeOrDefault \{#toDateTimeOrDefault\} -Появилась в версии: v21.11 +Добавлена в: v21.11 -Аналог функции [toDateTime](#toDateTime), но в случае неуспешного преобразования возвращает значение по умолчанию — либо третий аргумент (если он указан), либо нижнюю границу типа [DateTime](../data-types/datetime.md). +Аналогична [toDateTime](#toDateTime), но при неуспешном преобразовании возвращает значение по умолчанию: либо третий аргумент (если он указан), либо нижнюю границу [DateTime](../data-types/datetime.md). **Синтаксис** @@ -3399,12 +3432,12 @@ toDateTimeOrDefault(expr[, timezone, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `timezone` — необязательный параметр. Часовой пояс. [`String`](/sql-reference/data-types/string) -* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разбор завершился неудачно. [`DateTime`](/sql-reference/data-types/datetime) +* `timezone` — необязательный аргумент. Часовой пояс. [`String`](/sql-reference/data-types/string) +* `default` — необязательный аргумент. Значение по умолчанию, возвращаемое при неуспешном разборе. [`DateTime`](/sql-reference/data-types/datetime) **Возвращаемое значение** -Значение типа DateTime при успешном разборе, в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01 00:00:00, если нет. [`DateTime`](/sql-reference/data-types/datetime) +Значение типа DateTime при успешном разборе; в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01 00:00:00, если нет. [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -3431,10 +3464,10 @@ SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')')) ## toDateTimeOrNull \{#toDateTimeOrNull\} -Функция введена в версии: v1.1 +Добавлена в версии: v1.1 Преобразует входное значение в значение типа `DateTime`, но возвращает `NULL`, если получен некорректный аргумент. -То же, что и [`toDateTime`](#toDateTime), но возвращает `NULL`, если получен некорректный аргумент. +Аналогична [`toDateTime`](#toDateTime), но возвращает `NULL`, если получен некорректный аргумент. **Синтаксис** @@ -3448,7 +3481,7 @@ toDateTimeOrNull(x) **Возвращаемое значение** -Возвращает значение типа `DateTime` при успешном выполнении, иначе `NULL`. [`DateTime`](/sql-reference/data-types/datetime) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа `DateTime` в случае успеха, иначе `NULL`. [`DateTime`](/sql-reference/data-types/datetime) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -3467,10 +3500,10 @@ SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') ## toDateTimeOrZero \{#toDateTimeOrZero\} -Введена в версии v1.1. +Появилась в версии: v1.1 -Преобразует входное значение в тип [DateTime](../data-types/datetime.md), но возвращает нижнюю границу значений типа [DateTime](../data-types/datetime.md), если получен некорректный аргумент. -То же, что и [toDateTime](#toDateTime), но возвращает нижнюю границу значений типа [DateTime](../data-types/datetime.md), если получен некорректный аргумент. +Преобразует входное значение к типу [DateTime](../data-types/datetime.md), но возвращает нижнюю границу [DateTime](../data-types/datetime.md), если получен некорректный аргумент. +То же, что и [toDateTime](#toDateTime), но возвращает нижнюю границу [DateTime](../data-types/datetime.md), если получен некорректный аргумент. **Синтаксис** @@ -3480,11 +3513,11 @@ toDateTimeOrZero(x) **Аргументы** -* `x` — Строковое представление даты и времени. [`String`](/sql-reference/data-types/string) +* `x` — строковое представление даты и времени. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа DateTime при успешном преобразовании, в противном случае — нижнюю границу типа DateTime (`1970-01-01 00:00:00`). [`DateTime`](/sql-reference/data-types/datetime) +Возвращает значение типа DateTime при успешном выполнении, в противном случае — нижнюю границу DateTime (`1970-01-01 00:00:00`). [`DateTime`](/sql-reference/data-types/datetime) **Примеры** @@ -3503,10 +3536,10 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') ## toDecimal128 \{#toDecimal128\} -Добавлена в: v18.12 +Добавлено в: v18.12 Преобразует входное значение в значение типа [`Decimal(38, S)`](../data-types/decimal.md) с масштабом `S`. -В случае ошибки генерирует исключение. +В случае ошибки выбрасывает исключение. Поддерживаемые аргументы: @@ -3516,18 +3549,18 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') Неподдерживаемые аргументы: * Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). -* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toDecimal128('0xc0fe', 1);`. +* Строковые представления двоичных и шестнадцатеричных значений, например: `SELECT toDecimal128('0xc0fe', 1);`. :::note -Может произойти переполнение, если значение `expr` выходит за пределы `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`. -Лишние цифры в дробной части отбрасываются (не округляются). -Лишние цифры в целой части приводят к исключению. +Переполнение может произойти, если значение `expr` выходит за пределы `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`. +Избыточные цифры в дробной части отбрасываются (не округляются). +Избыточные цифры в целой части приводят к исключению. ::: :::warning -Преобразования отбрасывают дополнительные цифры и могут работать неожиданным образом при использовании входных значений типов Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой. +При преобразованиях лишние цифры отбрасываются, и результат может быть неожиданным при работе со входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой. Например: `toDecimal128(1.15, 2)` равно `1.14`, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99. -Вы можете использовать строковый аргумент, чтобы операции выполнялись над целочисленным типом: `toDecimal128('1.15', 2) = 1.15` +Вы можете использовать входной параметр типа String, чтобы операции выполнялись над базовым целочисленным типом: `toDecimal128('1.15', 2) = 1.15` ::: **Синтаксис** @@ -3539,7 +3572,7 @@ toDecimal128(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 38, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 38, определяющий, сколько цифр может содержать дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** @@ -3571,7 +3604,7 @@ type_c: Decimal(38, 3) ## toDecimal128OrDefault \{#toDecimal128OrDefault\} -Впервые представлена в: v21.11 +Впервые появилась в версии: v21.11 Подобно функции [`toDecimal128`](#toDecimal128), эта функция преобразует входное значение в значение типа [Decimal(38, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. @@ -3583,13 +3616,13 @@ toDecimal128OrDefault(expr, S[, default]) **Аргументы** -* `expr` — Строковое представление числа. [`String`](/sql-reference/data-types/string) -* `S` — Параметр масштаба от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — Необязательный параметр. Значение по умолчанию, которое возвращается, если преобразование к типу Decimal128(S) не удалось. [`Decimal128(S)`](/sql-reference/data-types/decimal) +* `expr` — строковое представление числа. [`String`](/sql-reference/data-types/string) +* `S` — параметр масштаба от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если преобразование к типу Decimal128(S) завершилось неудачно. [`Decimal128(S)`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Значение типа Decimal(38, S) при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно передано, или 0, если не передано. [`Decimal128(S)`](/sql-reference/data-types/decimal) +Значение типа Decimal(38, S) при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно задано, или 0, если нет. [`Decimal128(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -3616,19 +3649,19 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) ## toDecimal128OrNull \{#toDecimal128OrNull\} -Появилась в версии: v20.1 +Введена в версии: v20.1 -Преобразует входное значение в значение типа [`Decimal(38, S)`](../data-types/decimal.md), но возвращает `NULL` в случае ошибки. -Аналогична [`toDecimal128`](#toDecimal128), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа [`Decimal(38, S)`](../data-types/decimal.md), но в случае ошибки возвращает `NULL`. +Аналог [`toDecimal128`](#toDecimal128), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. -* Значения или строковые представления типов Float*. +* Значения или строковые представления типа (U)Int*. +* Значения или строковые представления типа Float*. Неподдерживаемые аргументы (возвращают `NULL`): -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учёта регистра). +* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). * Строковые представления двоичных и шестнадцатеричных значений. * Значения, выходящие за пределы диапазона `Decimal128`: `(-1*10^(38 - S), 1*10^(38 - S))`. @@ -3647,11 +3680,11 @@ toDecimal128OrNull(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба в диапазоне от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 38, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение Decimal(38, S) при успешном выполнении, иначе `NULL`. [`Decimal128(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Decimal(38, S) при успешном выполнении, в противном случае — `NULL`. [`Decimal128(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -3670,23 +3703,23 @@ SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) ## toDecimal128OrZero \{#toDecimal128OrZero\} -Введена в: v20.1 +Введена в версии: v20.1 -Преобразует входное значение в значение типа [Decimal(38, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`. -Аналог функции [`toDecimal128`](#toDecimal128), но возвращает `0` вместо выбрасывания исключения при ошибках преобразования. +Преобразует входное значение в значение типа [Decimal(38, S)](../data-types/decimal.md), но возвращает `0` в случае ошибки. +Аналог [`toDecimal128`](#toDecimal128), но возвращает `0` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. -* Значения или строковые представления типов Float*. +* Значения или строковые представления типа (U)Int*. +* Значения или строковые представления типа Float*. -Неподдерживаемые аргументы (функция возвращает `0`): +Неподдерживаемые аргументы (возвращают `0`): * Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). -* Строковые представления двоичных и шестнадцатеричных значений. +* Строковые представления двоичных и шестнадцатеричных чисел. :::note -Если входное значение выходит за границы `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`, функция возвращает `0`. +Если входное значение выходит за пределы `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`, функция возвращает `0`. ::: **Синтаксис** @@ -3698,11 +3731,11 @@ toDecimal128OrZero(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба в диапазоне от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение Decimal(38, S) в случае успеха, иначе `0`. [`Decimal128(S)`](/sql-reference/data-types/decimal) +Возвращает значение типа Decimal(38, S) при успешном выполнении, в противном случае — `0`. [`Decimal128(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -3721,9 +3754,9 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) ## toDecimal256 \{#toDecimal256\} -Введена в версии v20.8 +Введена в: v20.8 -Преобразует входное значение в значение типа [`Decimal(76, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки генерирует исключение. +Преобразует входное значение в значение типа [`Decimal(76, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки выбрасывает исключение. Поддерживаемые аргументы: @@ -3732,19 +3765,19 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) Неподдерживаемые аргументы: -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). -* Строковые представления двоичных и шестнадцатеричных значений, например, `SELECT toDecimal256('0xc0fe', 1);`. +* Значения или строковые представления значений типа Float* `NaN` и `Inf` (регистронезависимо). +* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toDecimal256('0xc0fe', 1);`. :::note -Может произойти переполнение, если значение `expr` выходит за пределы `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`. -Лишние цифры в дробной части отбрасываются (не округляются). -Лишние цифры в целой части приведут к исключению. +Переполнение может произойти, если значение `expr` выходит за пределы `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`. +Лишние цифры в дробной части отбрасываются (без округления). +Лишние цифры в целой части приводят к исключению. ::: :::warning -При преобразовании лишние цифры отбрасываются, и функция может работать неожиданным образом при использовании аргументов Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой. -Например, `toDecimal256(1.15, 2)` равно `1.14`, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99. -Вы можете использовать строковый аргумент, чтобы операции выполнялись над целочисленным типом: `toDecimal256('1.15', 2) = 1.15` +При преобразованиях лишние цифры отбрасываются, и поведение может быть неожиданным при работе с входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой. +Например: `toDecimal256(1.15, 2)` равно `1.14`, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99. +Вы можете использовать строковый ввод, чтобы операции выполнялись над целочисленным типом: `toDecimal256('1.15', 2) = 1.15` ::: **Синтаксис** @@ -3756,7 +3789,7 @@ toDecimal256(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 76, определяющий, сколько цифр может содержать дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 76, определяющий, сколько цифр может быть в дробной части числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** @@ -3788,9 +3821,9 @@ type_c: Decimal(76, 3) ## toDecimal256OrDefault \{#toDecimal256OrDefault\} -Добавлена в версии: v21.11 +Введена в версии: v21.11 -Аналогично функции [`toDecimal256`](#toDecimal256), эта функция преобразует входное значение в значение типа [Decimal(76, S)](../data-types/decimal.md), но возвращает значение по умолчанию в случае ошибки. +Аналогично функции [`toDecimal256`](#toDecimal256), эта функция преобразует входное значение в значение типа [Decimal(76, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. **Синтаксис** @@ -3800,13 +3833,13 @@ toDecimal256OrDefault(expr, S[, default]) **Аргументы** -* `expr` — Строковое представление числа. [`String`](/sql-reference/data-types/string) -* `S` — Параметр масштаба от 0 до 76, определяющий количество знаков дробной части числа. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — Необязательный параметр. Значение по умолчанию, возвращаемое, если преобразование в тип Decimal256(S) не удалось. [`Decimal256(S)`](/sql-reference/data-types/decimal) +* `expr` — строковое представление числа. [`String`](/sql-reference/data-types/string) +* `S` — параметр масштаба от 0 до 76, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если преобразование к типу Decimal256(S) не удалось. [`Decimal256(S)`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Значение типа Decimal(76, S) при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно передано, или 0, если не передано. [`Decimal256(S)`](/sql-reference/data-types/decimal) +Значение типа Decimal(76, S) при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно задано, или 0, если нет. [`Decimal256(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -3820,7 +3853,7 @@ SELECT toDecimal256OrDefault(toString(1/42), 76) 0.023809523809523808 ``` -**Сбой преобразования** +**Ошибка преобразования** ```sql title=Query SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) @@ -3833,21 +3866,21 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) ## toDecimal256OrNull \{#toDecimal256OrNull\} -Введена в: v20.8 +Введена в версии v20.8 -Преобразует входное значение в значение типа [`Decimal(76, S)`](../data-types/decimal.md), но в случае ошибки возвращает `NULL`. -Аналог [`toDecimal256`](#toDecimal256), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа [`Decimal(76, S)`](../data-types/decimal.md), но возвращает `NULL` в случае ошибки. +Аналог функции [`toDecimal256`](#toDecimal256), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: * Значения или строковые представления типов (U)Int*. * Значения или строковые представления типов Float*. -Неподдерживаемые аргументы (для них возвращается `NULL`): +Неподдерживаемые аргументы (возвращают `NULL`): * Значения или строковые представления значений Float* `NaN` и `Inf` (без учёта регистра). * Строковые представления двоичных и шестнадцатеричных значений. -* Значения, выходящие за пределы диапазона `Decimal256`: `(-1 * 10^(76 - S), 1 * 10^(76 - S))`. +* Значения, выходящие за границы `Decimal256`: `(-1 * 10^(76 - S), 1 * 10^(76 - S))`. См. также: @@ -3863,12 +3896,12 @@ toDecimal256OrNull(expr, S) **Аргументы** -* `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 76, определяющий, сколько знаков может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — выражение, возвращающее число или строковое представление числового значения. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — параметр масштаба от 0 до 76, определяющий, сколько цифр может содержать дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение Decimal(76, S), если преобразование прошло успешно, иначе `NULL`. [`Decimal256(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение Decimal(76, S), если операция завершилась успешно, в противном случае возвращает `NULL`. [`Decimal256(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -3887,23 +3920,23 @@ SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2) ## toDecimal256OrZero \{#toDecimal256OrZero\} -Введена в: v20.8 +Введена в версии v20.8 -Преобразует входное значение в значение типа [Decimal(76, S)](../data-types/decimal.md), но возвращает `0` в случае ошибки. -Аналог функции [`toDecimal256`](#toDecimal256), но возвращает `0` вместо выбрасывания исключения при ошибках преобразования. +Преобразует входное значение к типу [Decimal(76, S)](../data-types/decimal.md), но возвращает `0` в случае ошибки. +Аналог [`toDecimal256`](#toDecimal256), но возвращает `0` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. -* Значения или строковые представления типов Float*. +* Значения или строковые представления типа (U)Int*. +* Значения или строковые представления типа Float*. Неподдерживаемые аргументы (возвращают `0`): -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). -* Строковые представления двоичных и шестнадцатеричных чисел. +* Значения или строковые представления значений Float* `NaN` и `Inf` (без учёта регистра). +* Строковые представления двоичных и шестнадцатеричных значений. :::note -Если входное значение превышает границы `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`, функция возвращает `0`. +Если входное значение выходит за границы `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`, функция возвращает `0`. ::: См. также: @@ -3921,11 +3954,11 @@ toDecimal256OrZero(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 76, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 76, определяющий, сколько знаков после запятой может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Decimal(76, S) в случае успеха, иначе `0`. [`Decimal256(S)`](/sql-reference/data-types/decimal) +Возвращает значение Decimal(76, S) в случае успеха, иначе `0`. [`Decimal256(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -3944,30 +3977,30 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) ## toDecimal32 \{#toDecimal32\} -Введена в версии v18.12 +Введена в: v18.12 Преобразует входное значение в значение типа [`Decimal(9, S)`](../data-types/decimal.md) с масштабом `S`. В случае ошибки генерирует исключение. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. +* Значения или строковые представления целочисленных типов (U)Int*. * Значения или строковые представления типов Float*. Неподдерживаемые аргументы: * Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). -* Строковые представления двоичных и шестнадцатеричных значений, например, `SELECT toDecimal32('0xc0fe', 1);`. +* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toDecimal32('0xc0fe', 1);`. :::note Может произойти переполнение, если значение `expr` выходит за пределы `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`. Лишние цифры в дробной части отбрасываются (не округляются). -Лишние цифры в целой части приведут к исключению. +Лишние цифры в целой части приводят к исключению. ::: :::warning -При преобразовании лишние цифры отбрасываются, и при работе со входными значениями Float32/Float64 результат может оказаться неожиданным, так как операции выполняются с использованием инструкций с плавающей запятой. +При преобразовании лишние цифры отбрасываются, и поведение может оказаться неожиданным при работе со значениями Float32/Float64 на входе, так как операции выполняются с использованием инструкций с плавающей запятой. Например: `toDecimal32(1.15, 2)` равно `1.14`, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99. -Вы можете использовать входное значение типа String, чтобы операции выполнялись с использованием целочисленного базового типа: `toDecimal32('1.15', 2) = 1.15` +Вы можете использовать строковое значение на входе, чтобы операции выполнялись над целочисленным типом: `toDecimal32('1.15', 2) = 1.15` ::: **Синтаксис** @@ -3979,7 +4012,7 @@ toDecimal32(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба в диапазоне от 0 до 9, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 9, определяющий количество цифр в дробной части числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** @@ -4011,9 +4044,9 @@ type_c: Decimal(9, 3) ## toDecimal32OrDefault \{#toDecimal32OrDefault\} -Введена в версии: v21.11 +Появилась в версии: v21.11 -Подобно функции [`toDecimal32`](#toDecimal32), эта функция преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. +Аналогично функции [`toDecimal32`](#toDecimal32), эта функция преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. **Синтаксис** @@ -4025,11 +4058,11 @@ toDecimal32OrDefault(expr, S[, default]) * `expr` — строковое представление числа. [`String`](/sql-reference/data-types/string) * `S` — параметр масштаба от 0 до 9, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — необязательный параметр. Значение по умолчанию, возвращаемое в случае неудачного преобразования к типу Decimal32(S). [`Decimal32(S)`](/sql-reference/data-types/decimal) +* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если преобразование к типу Decimal32(S) не удалось. [`Decimal32(S)`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Значение типа Decimal(9, S) при успешном преобразовании, в противном случае — переданное значение по умолчанию, либо 0, если оно не указано. [`Decimal32(S)`](/sql-reference/data-types/decimal) +Значение типа Decimal(9, S) при успешном преобразовании, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. [`Decimal32(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -4056,21 +4089,21 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) ## toDecimal32OrNull \{#toDecimal32OrNull\} -Добавлено в версии: v20.1 +Функция появилась в: v20.1 -Преобразует входное значение в значение типа [`Decimal(9, S)`](../data-types/decimal.md), но возвращает `NULL` в случае ошибки. -Аналог функции [`toDecimal32`](#toDecimal32), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа [`Decimal(9, S)`](../data-types/decimal.md), но в случае ошибки возвращает `NULL`. +Аналог функции [`toDecimal32`](#toDecimal32), но вместо генерации исключения при ошибках преобразования возвращает `NULL`. Поддерживаемые аргументы: * Значения или строковые представления типов (U)Int*. * Значения или строковые представления типов Float*. -Неподдерживаемые аргументы (возвращают `NULL`): +Неподдерживаемые аргументы (возвращается `NULL`): -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учёта регистра). +* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра символов). * Строковые представления двоичных и шестнадцатеричных значений. -* Значения, выходящие за пределы диапазона `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`. +* Значения, выходящие за допустимые пределы `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`. См. также: @@ -4087,7 +4120,7 @@ toDecimal32OrNull(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 9, определяющий количество знаков в дробной части числа (после запятой). [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 9, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** @@ -4110,23 +4143,23 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) ## toDecimal32OrZero \{#toDecimal32OrZero\} -Появилась в версии: v20.1 +Появилась в версии v20.1 -Преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но возвращает `0` в случае ошибки. -Аналог функции [`toDecimal32`](#toDecimal32), но возвращает `0` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа [Decimal(9, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`. +Аналог [`toDecimal32`](#toDecimal32), но возвращает `0` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. -* Значения или строковые представления типов Float*. +* Значения или строковые представления типа (U)Int*. +* Значения или строковые представления типа Float*. Неподдерживаемые аргументы (возвращают `0`): -* Значения или строковые представления значений Float* `NaN` и `Inf` (регистр не имеет значения). +* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). * Строковые представления двоичных и шестнадцатеричных значений. :::note -Если входное значение выходит за пределы диапазона типа `Decimal32`: `(-1*10^(9 - S), 1*10^(9 - S))`, функция возвращает `0`. +Если входное значение выходит за пределы диапазона `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`, функция возвращает `0`. ::: **Синтаксис** @@ -4138,11 +4171,11 @@ toDecimal32OrZero(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 9, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 9, задающий, сколько цифр может содержать дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение Decimal(9, S) при успешном выполнении, иначе `0`. [`Decimal32(S)`](/sql-reference/data-types/decimal) +Возвращает значение Decimal(9, S) при успешном выполнении, в противном случае — `0`. [`Decimal32(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -4161,31 +4194,31 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) ## toDecimal64 \{#toDecimal64\} -Введена в версии: v18.12 +Добавлена в версии v18.12 Преобразует входное значение в значение типа [`Decimal(18, S)`](../data-types/decimal.md) с масштабом `S`. -В случае ошибки генерируется исключение. +В случае ошибки выбрасывает исключение. Поддерживаемые аргументы: -* Значения или строковые представления типа (U)Int*. -* Значения или строковые представления типа Float*. +* Значения или строковые представления типов (U)Int*. +* Значения или строковые представления типов Float*. Неподдерживаемые аргументы: -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). +* Значения или строковые представления значений Float* `NaN` и `Inf` (регистр не учитывается). * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toDecimal64('0xc0fe', 1);`. :::note Может произойти переполнение, если значение `expr` выходит за пределы `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`. -Избыточные цифры в дробной части отбрасываются (не округляются). +Избыточные цифры в дробной части отбрасываются (без округления). Избыточные цифры в целой части приведут к исключению. ::: :::warning -При преобразованиях лишние цифры отбрасываются, и поведение может оказаться неожиданным при работе со входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой. -Например, `toDecimal64(1.15, 2)` дает результат `1.14`, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99. -Вы можете использовать строковый аргумент, чтобы операции выполнялись с использованием целочисленного типа: `toDecimal64('1.15', 2) = 1.15` +При преобразованиях лишние цифры отбрасываются, и возможна неожиданная работа со значениями типов Float32/Float64, поскольку операции выполняются с использованием инструкций с плавающей запятой. +Например: `toDecimal64(1.15, 2)` равно `1.14`, потому что 1.15 * 100 в формате с плавающей запятой даёт 114.99. +Вы можете использовать строковый аргумент, чтобы операции выполнялись над целочисленным типом: `toDecimal64('1.15', 2) = 1.15` ::: **Синтаксис** @@ -4201,7 +4234,7 @@ toDecimal64(expr, S) **Возвращаемое значение** -Возвращает значение типа Decimal. [`Decimal(18, S)`](/sql-reference/data-types/decimal) +Возвращает десятичное значение. [`Decimal(18, S)`](/sql-reference/data-types/decimal) **Примеры** @@ -4229,9 +4262,9 @@ type_c: Decimal(18, 3) ## toDecimal64OrDefault \{#toDecimal64OrDefault\} -Впервые появилось в: v21.11 +Добавлена в версии v21.11 -Аналогично [`toDecimal64`](#toDecimal64), эта функция преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. +Подобно функции [`toDecimal64`](#toDecimal64), эта функция преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но в случае ошибки возвращает значение по умолчанию. **Синтаксис** @@ -4242,12 +4275,12 @@ toDecimal64OrDefault(expr, S[, default]) **Аргументы** * `expr` — Строковое представление числа. [`String`](/sql-reference/data-types/string) -* `S` — Параметр масштаба от 0 до 18, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) -* `default` — Необязательный параметр. Значение по умолчанию, которое возвращается, если преобразование к типу Decimal64(S) не удалось. [`Decimal64(S)`](/sql-reference/data-types/decimal) +* `S` — Параметр масштаба от 0 до 18, определяющий количество знаков в дробной части числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — Необязательный параметр. Значение по умолчанию, возвращаемое при неудачном разборе строки в тип Decimal64(S). [`Decimal64(S)`](/sql-reference/data-types/decimal) **Возвращаемое значение** -Значение типа Decimal(18, S) при успешном преобразовании, иначе возвращается значение по умолчанию, если оно было передано, или 0, если нет. [`Decimal64(S)`](/sql-reference/data-types/decimal) +Значение типа Decimal(18, S) при успешном преобразовании, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. [`Decimal64(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -4274,21 +4307,21 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) ## toDecimal64OrNull \{#toDecimal64OrNull\} -Введена в: v20.1 +Введена в версии: v20.1 -Преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но возвращает `NULL` в случае ошибки. -Аналог функции [`toDecimal64`](#toDecimal64), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но в случае ошибки возвращает `NULL`. +Аналогична функции [`toDecimal64`](#toDecimal64), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: * Значения или строковые представления типов (U)Int*. * Значения или строковые представления типов Float*. -Неподдерживаемые аргументы (возвращается `NULL`): +Неподдерживаемые аргументы (возвращают `NULL`): -* Значения или строковые представления значений Float* `NaN` и `Inf` (без учета регистра). +* Значения или строковые представления значений Float* `NaN` и `Inf` (без учёта регистра). * Строковые представления двоичных и шестнадцатеричных значений. -* Значения, выходящие за диапазон `Decimal64`: `(-1*10^(18 - S), 1*10^(18 - S))`. +* Значения, выходящие за пределы `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`. См. также: @@ -4305,11 +4338,11 @@ toDecimal64OrNull(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 18, задающий количество знаков в дробной части числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 18, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Decimal(18, S) в случае успешного выполнения, в противном случае — `NULL`. [`Decimal64(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение Decimal(18, S) при успешном выполнении, иначе `NULL`. [`Decimal64(S)`](/sql-reference/data-types/decimal) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -4328,15 +4361,15 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) ## toDecimal64OrZero \{#toDecimal64OrZero\} -Появилась в версии: v20.1 +Добавлена в: v20.1 -Преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но в случае ошибки возвращает `0`. -Аналог функции [`toDecimal64`](#toDecimal64), но вместо генерации исключения при ошибках преобразования возвращает `0`. +Преобразует входное значение в значение типа [Decimal(18, S)](../data-types/decimal.md), но возвращает `0` в случае ошибки. +Аналог [`toDecimal64`](#toDecimal64), но возвращает `0` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. -* Значения или строковые представления типов Float*. +* Значения или строковые представления типа (U)Int*. +* Значения или строковые представления типа Float*. Неподдерживаемые аргументы (возвращают `0`): @@ -4344,7 +4377,7 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) * Строковые представления двоичных и шестнадцатеричных значений. :::note -Если входное значение выходит за пределы диапазона `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`, функция возвращает `0`. +Если входное значение выходит за границы `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`, функция возвращает `0`. ::: См. также: @@ -4362,11 +4395,11 @@ toDecimal64OrZero(expr, S) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — параметр масштаба от 0 до 18, задающий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) +* `S` — параметр масштаба от 0 до 18, определяющий, сколько цифр может иметь дробная часть числа. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Decimal(18, S) при успешном выполнении, в противном случае — `0`. [`Decimal64(S)`](/sql-reference/data-types/decimal) +Возвращает значение Decimal(18, S) при успешном выполнении, иначе — `0`. [`Decimal64(S)`](/sql-reference/data-types/decimal) **Примеры** @@ -4385,12 +4418,12 @@ SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2) ## toDecimalString \{#toDecimalString\} -Добавлено в v23.3 +Введена в версии v23.3 Преобразует числовое значение в String с указанным количеством знаков после запятой. -Функция округляет входное значение до указанного количества знаков после запятой. Если во входном значении меньше дробных -знаков, чем запрошено, результат дополняется нулями, чтобы получить ровно указанное количество дробных знаков. +Функция округляет входное значение до заданного количества знаков после запятой. Если входное значение содержит меньше +дробных знаков, чем запрошено, результат дополняется нулями, чтобы получить ровно указанное количество дробных знаков. **Синтаксис** @@ -4400,12 +4433,12 @@ toDecimalString(number, scale) **Аргументы** -* `number` — числовое значение, которое требуется преобразовать в строку. Может иметь любой числовой тип (Int, UInt, Float, Decimal): [`Int8`](/sql-reference/data-types/int-uint), [`Int16`](/sql-reference/data-types/int-uint), [`Int32`](/sql-reference/data-types/int-uint), [`Int64`](/sql-reference/data-types/int-uint), [`UInt8`](/sql-reference/data-types/int-uint), [`UInt16`](/sql-reference/data-types/int-uint), [`UInt32`](/sql-reference/data-types/int-uint), [`UInt64`](/sql-reference/data-types/int-uint), [`Float32`](/sql-reference/data-types/float), [`Float64`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) -* `scale` — количество знаков после запятой, отображаемых в дробной части. При необходимости результат будет округлён. [`UInt8`](/sql-reference/data-types/int-uint) +* `number` — Числовое значение, которое нужно преобразовать в строку. Может быть любого числового типа (Int, UInt, Float, Decimal). [`Int8`](/sql-reference/data-types/int-uint) или [`Int16`](/sql-reference/data-types/int-uint) или [`Int32`](/sql-reference/data-types/int-uint) или [`Int64`](/sql-reference/data-types/int-uint) или [`UInt8`](/sql-reference/data-types/int-uint) или [`UInt16`](/sql-reference/data-types/int-uint) или [`UInt32`](/sql-reference/data-types/int-uint) или [`UInt64`](/sql-reference/data-types/int-uint) или [`Float32`](/sql-reference/data-types/float) или [`Float64`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) +* `scale` — Количество знаков после запятой. При необходимости результат будет округлён. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает строковое представление числа с точно указанным количеством знаков в дробной части. [`String`](/sql-reference/data-types/string) +Возвращает строковое представление числа с ровно указанным количеством знаков после запятой. [`String`](/sql-reference/data-types/string) **Примеры** @@ -4421,7 +4454,7 @@ SELECT toDecimalString(2.1456, 2) └────────────────────────────┘ ``` -**Дополнение нулями** +**Заполнение нулями** ```sql title=Query SELECT toDecimalString(5, 3) @@ -4449,12 +4482,12 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, ## toFixedString \{#toFixedString\} -Впервые представлена в: v1.1 +Добавлено в версию v1.1 -Преобразует аргумент [`String`](/sql-reference/data-types/string) в тип [`FixedString(N)`](/sql-reference/data-types/fixedstring) (строка фиксированной длины N). +Преобразует аргумент типа [`String`](/sql-reference/data-types/string) в тип [`FixedString(N)`](/sql-reference/data-types/fixedstring) (строка фиксированной длины N). -Если строка содержит меньше байт, чем N, она дополняется справа нулевыми байтами. -Если строка содержит больше байт, чем N, генерируется исключение. +Если строка содержит меньше байт, чем N, она дополняется нулевыми байтами справа. +Если строка содержит больше байт, чем N, выбрасывается исключение. **Синтаксис** @@ -4464,8 +4497,8 @@ toFixedString(s, N) **Аргументы** -* `s` — Строка, которую нужно преобразовать. [`String`](/sql-reference/data-types/string) -* `N` — Длина результирующей строки FixedString. [`const UInt*`](/sql-reference/data-types/int-uint) +* `s` — строка, которую нужно преобразовать. [`String`](/sql-reference/data-types/string) +* `N` — длина результирующего FixedString. [`const UInt*`](/sql-reference/data-types/int-uint) **Возвращаемое значение** @@ -4488,17 +4521,17 @@ SELECT toFixedString('foo', 8) AS s; ## toFloat32 \{#toFloat32\} -Добавлена в версии: v1.1 +Появилась в версии: v1.1 Преобразует входное значение в значение типа [Float32](/sql-reference/data-types/float). -Выбрасывает исключение в случае ошибки. +Генерирует исключение в случае ошибки. Поддерживаемые аргументы: * Значения типа (U)Int*. * Строковые представления (U)Int8/16/32/128/256. * Значения типа Float*, включая `NaN` и `Inf`. -* Строковые представления Float*, включая `NaN` и `Inf` (без учета регистра букв). +* Строковые представления Float*, включая `NaN` и `Inf` (без учета регистра). Неподдерживаемые аргументы: @@ -4547,10 +4580,10 @@ toFloat32('NaN'): nan ## toFloat32OrDefault \{#toFloat32OrDefault\} -Добавлена в: v21.11 +Добавлена в версии: v21.11 Подобно функции [`toFloat32`](#toFloat32), эта функция преобразует входное значение в значение типа [Float32](../data-types/float.md), но в случае ошибки возвращает значение по умолчанию. -Если аргумент `default` не передан, то в случае ошибки возвращается `0`. +Если значение `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -4561,11 +4594,11 @@ toFloat32OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, возвращаемое при неудачном преобразовании. [`Float32`](/sql-reference/data-types/float) +* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если разбор не удался. [`Float32`](/sql-reference/data-types/float) **Возвращаемое значение** -Возвращает значение типа Float32 при успешном преобразовании, иначе возвращает значение по умолчанию, если оно передано, или 0, если не передано. [`Float32`](/sql-reference/data-types/float) +Возвращает значение типа [`Float32`](/sql-reference/data-types/float) при успешном разборе, в противном случае — значение по умолчанию, если оно передано, или 0, если не передано. **Примеры** @@ -4592,17 +4625,17 @@ SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) ## toFloat32OrNull \{#toFloat32OrNull\} -Добавлена в версии: v1.1 +Введена в версии v1.1 -Преобразует входное значение в значение типа [Float32](../data-types/float.md), но возвращает `NULL` в случае ошибки. +Преобразует входное значение в значение типа [Float32](../data-types/float.md), но в случае ошибки возвращает `NULL`. Аналог [`toFloat32`](#toFloat32), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: -* Значения типа (U)Int*. -* Строковые представления (U)Int8/16/32/128/256. -* Значения типа Float*, включая `NaN` и `Inf`. -* Строковые представления Float*, включая `NaN` и `Inf` (без учета регистра букв). +* Значения типов (U)Int*. +* Строковые представления типов (U)Int8/16/32/128/256. +* Значения типов Float*, включая `NaN` и `Inf`. +* Строковые представления типов Float*, включая `NaN` и `Inf` (без учета регистра). Неподдерживаемые аргументы (возвращают `NULL`): @@ -4627,7 +4660,7 @@ toFloat32OrNull(x) **Возвращаемое значение** -Возвращает 32-битное значение Float при успешном преобразовании, в противном случае `NULL`. [`Float32`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) +Возвращает 32-битное значение с плавающей запятой при успешном выполнении, иначе `NULL`. [`Float32`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -4652,10 +4685,10 @@ toFloat32OrNull('abc'): \N ## toFloat32OrZero \{#toFloat32OrZero\} -Введена в версии v1.1 +Добавлена в версии: v1.1 -Преобразует входное значение в значение типа [Float32](../data-types/float.md), но в случае ошибки возвращает `0`. -Аналогично [`toFloat32`](#toFloat32), но при ошибках преобразования возвращает `0` вместо генерации исключения. +Преобразует входное значение в значение типа [Float32](../data-types/float.md), но возвращает `0` в случае ошибки. +Аналог функции [`toFloat32`](#toFloat32), но возвращает `0` вместо генерации исключения при ошибках преобразования. См. также: @@ -4675,7 +4708,7 @@ toFloat32OrZero(x) **Возвращаемое значение** -Возвращает 32-битное значение с плавающей запятой при успешном выполнении, в противном случае — `0`. [`Float32`](/sql-reference/data-types/float) +Возвращает 32-битное число с плавающей запятой, иначе — `0`. [`Float32`](/sql-reference/data-types/float) **Примеры** @@ -4701,14 +4734,14 @@ toFloat32OrZero('abc'): 0 Введена в версии v1.1 Преобразует входное значение в значение типа [`Float64`](../data-types/float.md). -При ошибке вызывает исключение. +Выбрасывает исключение в случае ошибки. Поддерживаемые аргументы: -* Значения типа (U)Int*. +* Значения типов (U)Int*. * Строковые представления (U)Int8/16/32/128/256. -* Значения типа Float*, включая `NaN` и `Inf`. -* Строковые представления типа Float*, включая `NaN` и `Inf` (без учета регистра). +* Значения типов Float*, включая `NaN` и `Inf`. +* Строковые представления типов Float*, включая `NaN` и `Inf` (регистр не имеет значения). Неподдерживаемые аргументы: @@ -4757,10 +4790,10 @@ toFloat64('NaN'): nan ## toFloat64OrDefault \{#toFloat64OrDefault\} -Добавлена в версии: v21.11 +Добавлено в: v21.11 -Подобно функции [`toFloat64`](#toFloat64), эта функция преобразует входное значение в значение типа [Float64](../data-types/float.md), но в случае ошибки возвращает значение по умолчанию. -Если аргумент `default` не указан, то в случае ошибки возвращается `0`. +Аналогично [`toFloat64`](#toFloat64), эта функция преобразует входное значение в значение типа [Float64](../data-types/float.md), но в случае ошибки возвращает значение по умолчанию. +Если значение параметра `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -4771,11 +4804,11 @@ toFloat64OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разбор выполнить не удалось. [`Float64`](/sql-reference/data-types/float) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при неудачном разборе. [`Float64`](/sql-reference/data-types/float) **Возвращаемое значение** -Возвращает значение типа Float64 при успешном разборе, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`Float64`](/sql-reference/data-types/float) +Возвращает значение типа Float64 при успешном разборе, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если не передано. [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -4802,21 +4835,21 @@ SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) ## toFloat64OrNull \{#toFloat64OrNull\} -Впервые введена в: v1.1 +Введена в версии: v1.1 -Преобразует входное значение в значение типа [Float64](../data-types/float.md), но возвращает `NULL` в случае ошибки. -Аналог [`toFloat64`](#toFloat64), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение к типу [Float64](../data-types/float.md), но возвращает `NULL` в случае ошибки. +Аналог [`toFloat64`](#toFloat64), но возвращает `NULL` вместо выбрасывания исключения при ошибках преобразования. Поддерживаемые аргументы: * Значения типа (U)Int*. * Строковые представления (U)Int8/16/32/128/256. * Значения типа Float*, включая `NaN` и `Inf`. -* Строковые представления типа Float*, включая `NaN` и `Inf` (без учета регистра). +* Строковые представления значений типа Float*, включая `NaN` и `Inf` (без учета регистра). Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления двоичных и шестнадцатеричных значений, например, `SELECT toFloat64OrNull('0xc0fe');`. +* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toFloat64OrNull('0xc0fe');`. * Неверные строковые форматы. См. также: @@ -4837,7 +4870,7 @@ toFloat64OrNull(x) **Возвращаемое значение** -Возвращает 64-битное число с плавающей запятой при успешном выполнении, в противном случае — `NULL`. [`Float64`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) +Возвращает 64-битное значение с плавающей запятой при успешном выполнении, в противном случае — `NULL`. [`Float64`](/sql-reference/data-types/float) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -4862,10 +4895,10 @@ toFloat64OrNull('abc'): \N ## toFloat64OrZero \{#toFloat64OrZero\} -Добавлено в: v1.1 +Добавлена в версии v1.1 -Преобразует входное значение в значение типа [Float64](../data-types/float.md), но возвращает `0` в случае ошибки. -Аналог [`toFloat64`](#toFloat64), но возвращает `0` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение к типу [Float64](../data-types/float.md), но при ошибке возвращает `0`. +Аналог функции [`toFloat64`](#toFloat64), но возвращает `0` вместо генерации исключения при ошибках преобразования. См. также: @@ -4885,7 +4918,7 @@ toFloat64OrZero(x) **Возвращаемое значение** -Возвращает 64-битное значение с плавающей запятой при успешном выполнении, в противном случае — `0`. [`Float64`](/sql-reference/data-types/float) +Возвращает 64-битовое число с плавающей запятой при успешном выполнении, в противном случае `0`. [`Float64`](/sql-reference/data-types/float) **Примеры** @@ -4908,11 +4941,11 @@ toFloat64OrZero('abc'): 0 ## toInt128 \{#toInt128\} -Добавлена в: v1.1 +Введена в версии: v1.1 Преобразует входное значение в значение типа [Int128](/sql-reference/data-types/int-uint). -Выбрасывает исключение в случае ошибки. -Функция использует округление к нулю, то есть отбрасывает дробную часть числа. +Генерирует исключение в случае ошибки. +Функция использует округление к нулю, то есть отбрасывает дробную часть чисел. Поддерживаемые аргументы: @@ -4921,11 +4954,11 @@ toFloat64OrZero('abc'): 0 Неподдерживаемые аргументы: -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типа Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt128('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона Int128, происходит переполнение результата (в большую или меньшую сторону). +Если входное значение не может быть представлено в пределах диапазона Int128, результат переполняется или выходит за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -4947,7 +4980,7 @@ toInt128(expr) **Возвращаемое значение** -Возвращает 128-битное целочисленное значение. [`Int128`](/sql-reference/data-types/int-uint) +Возвращает 128-битное целое число. [`Int128`](/sql-reference/data-types/int-uint) **Примеры** @@ -4972,10 +5005,10 @@ toInt128('-128'): -128 ## toInt128OrDefault \{#toInt128OrDefault\} -Введена в: v21.11 +Введена в версии: v21.11 -Аналогично функции [`toInt128`](#toInt128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, то в случае ошибки возвращается `0`. +Подобно функции [`toInt128`](#toInt128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если значение `default` не передано, в случае ошибки возвращается `0`. **Синтаксис** @@ -4990,7 +5023,7 @@ toInt128OrDefault(expr[, default]) **Возвращаемое значение** -Возвращает значение типа Int128 при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если не передано. [`Int128`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int128 при успешном разборе; в противном случае возвращает значение по умолчанию, если оно было передано, или 0, если нет. [`Int128`](/sql-reference/data-types/int-uint) **Примеры** @@ -5017,21 +5050,21 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) ## toInt128OrNull \{#toInt128OrNull\} -Введена в: v20.8 +Добавлено в v20.8 -Подобно функции [`toInt128`](#toInt128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Как и [`toInt128`](#toInt128), эта функция преобразует входное значение в значение типа [Int128](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`. Поддерживаемые аргументы: -* Строковые представления целочисленных типов (U)Int*. +* Строковые представления типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt128OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int128](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу диапазона (underflow) результата. +Если входное значение не может быть представлено в пределах диапазона [Int128](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -5053,7 +5086,7 @@ toInt128OrNull(x) **Возвращаемое значение** -Возвращает значение типа Int128, или `NULL` в случае неудачного преобразования. [`Int128`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Int128, иначе `NULL`, если преобразование не удалось. [`Int128`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -5076,10 +5109,10 @@ toInt128OrNull('abc'): \N ## toInt128OrZero \{#toInt128OrZero\} -Введена в версии v20.8. +Представлена в: v20.8 -Преобразует входное значение в тип [Int128](/sql-reference/data-types/int-uint), но в случае ошибки возвращает `0`. -Аналогично функции [`toInt128`](#toInt128), но возвращает `0` вместо выброса исключения. +Преобразует входное значение к типу [Int128](/sql-reference/data-types/int-uint), но возвращает `0` в случае ошибки. +Аналог [`toInt128`](#toInt128), но возвращает `0` вместо выброса исключения. См. также: @@ -5095,7 +5128,7 @@ toInt128OrZero(x) **Аргументы** -* `x` — входное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`Float*`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) +* `x` — входное значение, которое нужно преобразовать. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`Float*`](/sql-reference/data-types/float) или [`Decimal`](/sql-reference/data-types/decimal) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Date`](/sql-reference/data-types/date) или [`DateTime`](/sql-reference/data-types/datetime) **Возвращаемое значение** @@ -5113,7 +5146,7 @@ SELECT toInt128OrZero('123') 123 ``` -**При неудачном преобразовании возвращается ноль** +**При ошибке преобразования возвращается ноль** ```sql title=Query SELECT toInt128OrZero('abc') @@ -5126,14 +5159,14 @@ SELECT toInt128OrZero('abc') ## toInt16 \{#toInt16\} -Введена в версии v1.1. +Введена в версии: v1.1 Преобразует входное значение в значение типа [`Int16`](../data-types/int-uint.md). -Выбрасывает исключение при ошибке. +Вызывает исключение в случае ошибки. Поддерживаемые аргументы: -* Значения или строковые представления значений типа (U)Int*. +* Значения или строковые представления типа (U)Int*. * Значения типа Float*. Неподдерживаемые аргументы: @@ -5142,13 +5175,13 @@ SELECT toInt128OrZero('abc') * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt16('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу допустимого диапазона. +Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. Например: `SELECT toInt16(32768) == -32768;`. ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть числа. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. ::: См. также: @@ -5194,9 +5227,9 @@ toInt16('-16'): -16 ## toInt16OrDefault \{#toInt16OrDefault\} -Появилась в версии: v21.11 +Добавлена в: v21.11 -Как и [`toInt16`](#toInt16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Как и функция [`toInt16`](#toInt16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. Если значение `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -5208,11 +5241,11 @@ toInt16OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при неудачном разборе. [`Int16`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается при неудачной попытке преобразования. [`Int16`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Int16 при успешном разборе, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`Int16`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int16 при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`Int16`](/sql-reference/data-types/int-uint) **Примеры** @@ -5226,7 +5259,7 @@ SELECT toInt16OrDefault('-16', CAST('-1', 'Int16')) -16 ``` -**Ошибка преобразования** +**Неудачное преобразование** ```sql title=Query SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) @@ -5239,21 +5272,21 @@ SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) ## toInt16OrNull \{#toInt16OrNull\} -Добавлена в: v1.1 +Введена в версии: v1.1 -Как и [`toInt16`](#toInt16), эта функция преобразует входное значение к типу [Int16](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`. +Подобно функции [`toInt16`](#toInt16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`. Поддерживаемые аргументы: -* Строковые представления (U)Int*. +* Строковые представления значений типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. -* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt16OrNull('0xc0fe');`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления двоичных и шестнадцатеричных значений, например: `SELECT toInt16OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу (underflow). Это не считается ошибкой. ::: @@ -5275,7 +5308,7 @@ toInt16OrNull(x) **Возвращаемое значение** -Возвращает значение типа `Int16`; если преобразование не удалось, возвращает `NULL`. [`Int16`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа `Int16`, в противном случае — `NULL`, если преобразование не удалось. [`Int16`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -5298,21 +5331,21 @@ toInt16OrNull('abc'): \N ## toInt16OrZero \{#toInt16OrZero\} -Добавлена в: v1.1 +Впервые представлена в: v1.1 Как и [`toInt16`](#toInt16), эта функция преобразует входное значение в значение типа [Int16](../data-types/int-uint.md), но в случае ошибки возвращает `0`. Поддерживаемые аргументы: -* Строковые представления целочисленных типов (U)Int*. +* Строковые представления целых типов (U)Int*. -Неподдерживаемые аргументы (функция возвращает `0`): +Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt16OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу. +Если входное значение не может быть представлено в пределах диапазона [Int16](../data-types/int-uint.md), происходит переполнение или потеря значимости результата. Это не считается ошибкой. ::: @@ -5334,7 +5367,7 @@ toInt16OrZero(x) **Возвращаемое значение** -Возвращает значение типа `Int16`; в случае неуспешного преобразования — `0`. [`Int16`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int16, а в случае неуспешного преобразования — `0`. [`Int16`](/sql-reference/data-types/int-uint) **Примеры** @@ -5357,10 +5390,10 @@ toInt16OrZero('abc'): 0 ## toInt256 \{#toInt256\} -Введена в v1.1 +Введена в версии: v1.1 Преобразует входное значение в значение типа [Int256](/sql-reference/data-types/int-uint). -Выбрасывает исключение в случае ошибки. +Вызывает исключение в случае ошибки. Функция использует округление к нулю, то есть отбрасывает дробную часть числа. Поддерживаемые аргументы: @@ -5374,7 +5407,7 @@ toInt16OrZero('abc'): 0 * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt256('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона значений Int256, происходит переполнение или выход за нижнюю границу. +Если входное значение не может быть представлено в пределах диапазона Int256, происходит переполнение результата сверху или снизу. Это не считается ошибкой. ::: @@ -5392,11 +5425,11 @@ toInt256(expr) **Аргументы** -* `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — выражение, результатом которого является число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) **Возвращаемое значение** -Возвращает 256-битное целое значение. [`Int256`](/sql-reference/data-types/int-uint) +Возвращает целое число с разрядностью 256 бит. [`Int256`](/sql-reference/data-types/int-uint) **Примеры** @@ -5421,10 +5454,10 @@ toInt256('-256'): -256 ## toInt256OrDefault \{#toInt256OrDefault\} -Добавлена в версии: v21.11 +Введена в версии v21.11 -Аналогично [`toInt256`](#toInt256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, в случае ошибки возвращается `0`. +Аналогично [`toInt256`](#toInt256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но возвращает значение по умолчанию в случае ошибки. +Если параметр `default` не указан, то в случае ошибки возвращается `0`. **Синтаксис** @@ -5434,12 +5467,12 @@ toInt256OrDefault(expr[, default]) **Аргументы** -* `expr` — Выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — Необязательный аргумент. Значение по умолчанию, возвращаемое при неуспешном преобразовании. [`Int256`](/sql-reference/data-types/int-uint) +* `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое в случае неуспешного парсинга. [`Int256`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Int256 при успешном преобразовании, иначе возвращает значение по умолчанию, если оно указано, или 0, если нет. [`Int256`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int256 в случае успешного преобразования; в противном случае возвращает значение по умолчанию, если оно задано, или 0, если нет. [`Int256`](/sql-reference/data-types/int-uint) **Примеры** @@ -5466,21 +5499,21 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) ## toInt256OrNull \{#toInt256OrNull\} -Добавлена в версии: v20.8 +Добавлена в: v20.8 Как и [`toInt256`](#toInt256), эта функция преобразует входное значение в значение типа [Int256](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления (U)Int*. +* Строковые представления целочисленных типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений типа Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например, `SELECT toInt256OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int256](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона (overflow/underflow). +Если входное значение не может быть представлено в пределах диапазона [Int256](../data-types/int-uint.md), происходит переполнение или выход результата за пределы допустимого диапазона. Это не считается ошибкой. ::: @@ -5502,7 +5535,7 @@ toInt256OrNull(x) **Возвращаемое значение** -Возвращает значение типа Int256 или `NULL`, если преобразование не удалось. [`Int256`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Int256, в противном случае `NULL`, если преобразование не удалось. [`Int256`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -5525,10 +5558,10 @@ toInt256OrNull('abc'): \N ## toInt256OrZero \{#toInt256OrZero\} -Введена в версии: v20.8 +Добавлена в: v20.8 -Преобразует входное значение в тип [Int256](/sql-reference/data-types/int-uint), но возвращает `0` в случае ошибки. -Аналогична [`toInt256`](#toInt256), но возвращает `0` вместо генерации исключения. +Преобразует входное значение к типу [Int256](/sql-reference/data-types/int-uint), но возвращает `0` в случае ошибки. +Аналог функции [`toInt256`](#toInt256), но возвращает `0` вместо выброса исключения. См. также: @@ -5548,7 +5581,7 @@ toInt256OrZero(x) **Возвращаемое значение** -Возвращает преобразованное входное значение, в противном случае — `0`, если преобразование не удалось. [`Int256`](/sql-reference/data-types/int-uint) +Возвращает преобразованное входное значение, в противном случае `0`, если преобразование невозможно. [`Int256`](/sql-reference/data-types/int-uint) **Примеры** @@ -5562,7 +5595,7 @@ SELECT toInt256OrZero('123') 123 ``` -**Если преобразование не удалось, возвращается ноль** +**При ошибке преобразования возвращается ноль** ```sql title=Query SELECT toInt256OrZero('abc') @@ -5575,7 +5608,7 @@ SELECT toInt256OrZero('abc') ## toInt32 \{#toInt32\} -Введена в версии: v1.1 +Появилась в версии: v1.1 Преобразует входное значение в значение типа [`Int32`](../data-types/int-uint.md). Выбрасывает исключение в случае ошибки. @@ -5583,21 +5616,21 @@ SELECT toInt256OrZero('abc') Поддерживаемые аргументы: * Значения или строковые представления типов (U)Int*. -* Значения типов Float*. +* Значения типа Float*. Неподдерживаемые аргументы: -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt32('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах допустимого диапазона [Int32](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу типа. +Если входное значение не может быть представлено в пределах диапазона типа [Int32](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: `SELECT toInt32(2147483648) == -2147483648;` ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть числа. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. ::: См. также: @@ -5618,7 +5651,7 @@ toInt32(expr) **Возвращаемое значение** -Возвращает 32-битное целое число типа [`Int32`](/sql-reference/data-types/int-uint). +Возвращает 32-битное целочисленное значение. [`Int32`](/sql-reference/data-types/int-uint) **Примеры** @@ -5643,10 +5676,10 @@ toInt32('-32'): -32 ## toInt32OrDefault \{#toInt32OrDefault\} -Добавлена в: v21.11 +Введена в: v21.11 -Как и [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если аргумент `default` не передан, то в случае ошибки возвращается `0`. +Подобно [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если значение `default` не передано, в случае ошибки возвращается `0`. **Синтаксис** @@ -5657,11 +5690,11 @@ toInt32OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разбор завершился неудачно. [`Int32`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при неудачном преобразовании. [`Int32`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Int32 при успешном разборе, иначе возвращает значение по умолчанию, если оно передано, или 0, если нет. [`Int32`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int32 при успешном преобразовании, иначе — значение по умолчанию, если оно задано, или 0, если нет. [`Int32`](/sql-reference/data-types/int-uint) **Примеры** @@ -5690,19 +5723,19 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) Добавлено в: v1.1 -Аналогично [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Аналогично функции [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления значений типов (U)Int*. +* Строковые представления (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt32OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int32](../data-types/int-uint.md), происходит переполнение или выход результата за границы типа. +Если входное значение не может быть представлено в пределах диапазона [Int32](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -5724,7 +5757,7 @@ toInt32OrNull(x) **Возвращаемое значение** -Возвращает значение типа Int32, а если преобразование не удалось — `NULL`. [`Int32`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Int32, в противном случае `NULL`, если преобразование не удалось. [`Int32`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -5747,9 +5780,9 @@ toInt32OrNull('abc'): \N ## toInt32OrZero \{#toInt32OrZero\} -Введена в: v1.1 +Введена в версии: v1.1 -Подобно [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает `0`. +Подобно функции [`toInt32`](#toInt32), эта функция преобразует входное значение в значение типа [Int32](../data-types/int-uint.md), но в случае ошибки возвращает `0`. Поддерживаемые аргументы: @@ -5761,7 +5794,7 @@ toInt32OrNull('abc'): \N * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt32OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int32](../data-types/int-uint.md), происходит переполнение или потеря значимости (underflow) результата. +Если входное значение не может быть представлено в пределах типа [Int32](../data-types/int-uint.md), происходит переполнение или потеря значимости результата. Это не считается ошибкой. ::: @@ -5783,7 +5816,7 @@ toInt32OrZero(x) **Возвращаемое значение** -Возвращает значение типа Int32, в противном случае `0`, если преобразование не удалось. [`Int32`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int32 или `0` в случае неуспешного преобразования. [`Int32`](/sql-reference/data-types/int-uint) **Примеры** @@ -5806,10 +5839,10 @@ toInt32OrZero('abc'): 0 ## toInt64 \{#toInt64\} -Введена в: v1.1 +Добавлена в: v1.1 Преобразует входное значение в значение типа [`Int64`](../data-types/int-uint.md). -Вызывает исключение в случае ошибки. +Выбрасывает исключение в случае ошибки. Поддерживаемые аргументы: @@ -5818,17 +5851,17 @@ toInt32OrZero('abc'): 0 Неподдерживаемые аргументы: -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt64('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int64](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу результата. +Если входное значение не может быть представлено в диапазоне [Int64](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу. Это не считается ошибкой. Например: `SELECT toInt64(9223372036854775808) == -9223372036854775808;` ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть числа. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. ::: См. также: @@ -5845,11 +5878,11 @@ toInt64(expr) **Аргументы** -* `expr` — выражение, возвращающее число или строковое представление числа. Поддерживаются: значения или строковые представления типа (U)Int*, значения типов Float*. Не поддерживаются: строковые представления значений типов Float*, включая NaN и Inf, строковые представления двоичных и шестнадцатеричных значений. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — выражение, возвращающее число или строковое представление числа. Поддерживаются: значения или строковые представления типа (U)Int*, значения типа Float*. Не поддерживаются: строковые представления значений типа Float* (включая NaN и Inf), строковые представления двоичных и шестнадцатеричных чисел. [`Expression`](/sql-reference/data-types/special-data-types/expression) **Возвращаемое значение** -Возвращает 64-битное целочисленное значение. [`Int64`](/sql-reference/data-types/int-uint) +Возвращает 64-битное целое число. [`Int64`](/sql-reference/data-types/int-uint) **Примеры** @@ -5874,10 +5907,10 @@ toInt64('-64'): -64 ## toInt64OrDefault \{#toInt64OrDefault\} -Добавлена в версии: v21.11 +Введена в: v21.11 -Подобно функции [`toInt64`](#toInt64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, то в случае ошибки возвращается `0`. +Аналогично функции [`toInt64`](#toInt64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если параметр `default` не задан, то в случае ошибки возвращается `0`. **Синтаксис** @@ -5888,11 +5921,11 @@ toInt64OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при ошибке разбора. [`Int64`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается при неуспешном разборе. [`Int64`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Int64 при успешном выполнении, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. [`Int64`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int64 при успешном преобразовании, иначе возвращает значение по умолчанию, если оно задано, или 0, если нет. [`Int64`](/sql-reference/data-types/int-uint) **Примеры** @@ -5906,7 +5939,7 @@ SELECT toInt64OrDefault('-64', CAST('-1', 'Int64')) -64 ``` -**Неуспешное преобразование** +**Ошибка преобразования** ```sql title=Query SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) @@ -5919,17 +5952,17 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) ## toInt64OrNull \{#toInt64OrNull\} -Введена в версии v1.1 +Введена в версии: v1.1 -Подобно [`toInt64`](#toInt64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Подобно функции [`toInt64`](#toInt64), эта функция преобразует входное значение в значение типа [Int64](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления целых чисел типов (U)Int*. +* Строковые представления (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления чисел с плавающей запятой типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt64OrNull('0xc0fe');`. :::note @@ -5955,7 +5988,7 @@ toInt64OrNull(x) **Возвращаемое значение** -Возвращает значение типа Int64, в противном случае `NULL`, если преобразование не удалось. [`Int64`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Int64 или `NULL`, если преобразование не удалось. [`Int64`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -5978,10 +6011,10 @@ toInt64OrNull('abc'): \N ## toInt64OrZero \{#toInt64OrZero\} -Впервые представлена в: v1.1 +Добавлена в версии: v1.1 -Преобразует входное значение к типу [Int64](/sql-reference/data-types/int-uint), но в случае ошибки возвращает `0`. -Аналог функции [`toInt64`](#toInt64), но возвращает `0` вместо выбрасывания исключения. +Преобразует входное значение в тип [Int64](/sql-reference/data-types/int-uint), но в случае ошибки возвращает `0`. +Аналог [`toInt64`](#toInt64), но возвращает `0` вместо выбрасывания исключения. См. также: @@ -6001,7 +6034,7 @@ toInt64OrZero(x) **Возвращаемое значение** -Возвращает преобразованное входное значение, в противном случае — `0`, если преобразование не удалось. [`Int64`](/sql-reference/data-types/int-uint) +Возвращает преобразованное входное значение, либо `0`, если преобразование не удалось. [`Int64`](/sql-reference/data-types/int-uint) **Примеры** @@ -6015,7 +6048,7 @@ SELECT toInt64OrZero('123') 123 ``` -**При ошибке преобразования возвращается 0** +**При неуспешном преобразовании возвращается ноль** ```sql title=Query SELECT toInt64OrZero('abc') @@ -6028,10 +6061,10 @@ SELECT toInt64OrZero('abc') ## toInt8 \{#toInt8\} -Введена в: v1.1 +Появилась в версии: v1.1 Преобразует входное значение в значение типа [`Int8`](../data-types/int-uint.md). -Генерирует исключение в случае ошибки. +Выбрасывает исключение в случае ошибки. Поддерживаемые аргументы: @@ -6040,17 +6073,17 @@ SELECT toInt64OrZero('abc') Неподдерживаемые аргументы: -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типа Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt8('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение результата или выход за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение или понижение (underflow) результата. Это не считается ошибкой. Например: `SELECT toInt8(128) == -128;`. ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть усекает дробные разряды числа. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. ::: См. также: @@ -6067,11 +6100,11 @@ toInt8(expr) **Аргументы** -* `expr` — выражение, возвращающее числовое значение или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) **Возвращаемое значение** -Возвращает 8-битное целое число. [`Int8`](/sql-reference/data-types/int-uint) +Возвращает значение 8-битного целого числа. [`Int8`](/sql-reference/data-types/int-uint) **Примеры** @@ -6096,10 +6129,10 @@ toInt8('-8'): -8 ## toInt8OrDefault \{#toInt8OrDefault\} -Добавлена в: v21.11 +Добавлена в версии: v21.11 -Аналогично [`toInt8`](#toInt8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если параметр `default` не передан, то в случае ошибки возвращается `0`. +Подобно функции [`toInt8`](#toInt8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если значение `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -6110,11 +6143,11 @@ toInt8OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, возвращаемое при неуспешном преобразовании. [`Int8`](/sql-reference/data-types/int-uint) +* `default` — необязательный аргумент. Значение по умолчанию, возвращаемое при неудачном разборе. [`Int8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа Int8 при успешном преобразовании, иначе возвращает значение по умолчанию, если оно передано, или 0, если нет. [`Int8`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int8 при успешном преобразовании, в противном случае — значение по умолчанию, если оно задано, или 0, если нет. [`Int8`](/sql-reference/data-types/int-uint) **Примеры** @@ -6141,7 +6174,7 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) ## toInt8OrNull \{#toInt8OrNull\} -Появилась в версии: v1.1 +Добавлено в: v1.1 Подобно функции [`toInt8`](#toInt8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. @@ -6155,7 +6188,7 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt8OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона. +Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой. ::: @@ -6177,7 +6210,7 @@ toInt8OrNull(x) **Возвращаемое значение** -Возвращает значение типа Int8; в случае неуспешного преобразования — `NULL`. [`Int8`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Int8, а при неудачном преобразовании — `NULL`. [`Int8`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -6200,9 +6233,9 @@ toInt8OrNull('abc'): \N ## toInt8OrZero \{#toInt8OrZero\} -Добавлена в версии: v1.1 +Введена в: v1.1 -Как и [`toInt8`](#toInt8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но возвращает `0` в случае ошибки. +Аналогично [`toInt8`](#toInt8), эта функция преобразует входное значение в значение типа [Int8](../data-types/int-uint.md), но в случае ошибки возвращает `0`. Поддерживаемые аргументы: @@ -6210,11 +6243,11 @@ toInt8OrNull('abc'): \N Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. -* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toInt8OrZero('0xc0fe');`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления двоичных и шестнадцатеричных значений, например: `SELECT toInt8OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение (overflow) или выход результата за нижнюю границу диапазона (underflow). +Если входное значение не может быть представлено в пределах диапазона [Int8](../data-types/int-uint.md), происходит переполнение или выход результата за допустимые границы. Это не считается ошибкой. ::: @@ -6236,7 +6269,7 @@ toInt8OrZero(x) **Возвращаемое значение** -Возвращает значение типа `Int8`, в противном случае `0`, если преобразование не удалось. [`Int8`](/sql-reference/data-types/int-uint) +Возвращает значение типа Int8, в противном случае — `0`, если преобразование не удалось. [`Int8`](/sql-reference/data-types/int-uint) **Примеры** @@ -6259,15 +6292,15 @@ toInt8OrZero('abc'): 0 ## toInterval \{#toInterval\} -Добавлено в версии: v25.4 +Введена в: v25.4 -Создает значение типа Interval из числового значения и строкового обозначения единицы измерения. +Создаёт значение типа Interval из числового значения и строки с единицей измерения. -Эта функция предоставляет унифицированный способ создания интервалов различных типов (seconds, minutes, hours, days, weeks, months, quarters, years) -с помощью одной функции — за счет указания единицы измерения в виде строкового аргумента. Строка с единицей измерения нечувствительна к регистру. +Эта функция предоставляет унифицированный способ создания интервалов разных типов (секунды, минуты, часы, дни, недели, месяцы, кварталы, годы) +в рамках одной функции за счёт указания единицы измерения в виде строкового аргумента. Строка с единицей измерения нечувствительна к регистру. Это эквивалентно вызову специализированных функций, таких как `toIntervalSecond`, `toIntervalMinute`, `toIntervalDay` и т. д., -но позволяет задавать единицу измерения динамически в виде строкового параметра. +но позволяет указывать единицу измерения динамически в виде строкового параметра. **Синтаксис** @@ -6277,7 +6310,7 @@ toInterval(value, unit) **Аргументы** -* `value` — числовое значение, представляющее количество единиц. Может иметь любой числовой тип: [`Int8`](/sql-reference/data-types/int-uint), [`Int16`](/sql-reference/data-types/int-uint), [`Int32`](/sql-reference/data-types/int-uint), [`Int64`](/sql-reference/data-types/int-uint), [`UInt8`](/sql-reference/data-types/int-uint), [`UInt16`](/sql-reference/data-types/int-uint), [`UInt32`](/sql-reference/data-types/int-uint), [`UInt64`](/sql-reference/data-types/int-uint), [`Float32`](/sql-reference/data-types/float) или [`Float64`](/sql-reference/data-types/float). +* `value` — числовое значение, задающее количество единиц. Может иметь любой числовой тип: [`Int8`](/sql-reference/data-types/int-uint), [`Int16`](/sql-reference/data-types/int-uint), [`Int32`](/sql-reference/data-types/int-uint), [`Int64`](/sql-reference/data-types/int-uint), [`UInt8`](/sql-reference/data-types/int-uint), [`UInt16`](/sql-reference/data-types/int-uint), [`UInt32`](/sql-reference/data-types/int-uint), [`UInt64`](/sql-reference/data-types/int-uint), [`Float32`](/sql-reference/data-types/float) или [`Float64`](/sql-reference/data-types/float). * `unit` — единица времени. Должна быть строкой-константой. Допустимые значения: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -6286,7 +6319,7 @@ toInterval(value, unit) **Примеры** -**Создание интервалов с различными единицами измерения** +**Создание интервалов с различными единицами времени** ```sql title=Query SELECT @@ -6301,7 +6334,7 @@ SELECT └─────────┴──────┴────────┘ ``` -**Используйте интервалы при выполнении операций с датами** +**Использование интервалов в арифметике дат** ```sql title=Query SELECT @@ -6338,7 +6371,7 @@ FROM numbers(5) Добавлена в версии: v1.1 -Возвращает интервал в `n` дней типа данных [`IntervalDay`](../data-types/special-data-types/interval.md). +Возвращает интервал длиной `n` дней типа данных [`IntervalDay`](../data-types/special-data-types/interval.md). **Синтаксис** @@ -6348,11 +6381,11 @@ toIntervalDay(n) **Аргументы** -* `n` — количество дней. Целые числа, их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) +* `n` — количество дней. Целые числа или их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает интервал продолжительностью `n` дней. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал длительностью `n` дней. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6374,9 +6407,9 @@ SELECT date + interval_to_days AS result ## toIntervalHour \{#toIntervalHour\} -Добавлена в версии: v1.1 +Введена в версии: v1.1 -Возвращает интервал продолжительностью `n` часов с типом данных [`IntervalHour`](../data-types/special-data-types/interval.md). +Возвращает интервал продолжительностью `n` часов типа данных [`IntervalHour`](../data-types/special-data-types/interval.md). **Синтаксис** @@ -6390,7 +6423,7 @@ toIntervalHour(n) **Возвращаемое значение** -Возвращает интервал длительностью `n` часов. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал продолжительностью `n` часов. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6412,9 +6445,9 @@ SELECT date + interval_to_hours AS result ## toIntervalMicrosecond \{#toIntervalMicrosecond\} -Впервые появилась в версии v22.6. +Появилась в версии: v22.6 -Возвращает интервал в `n` микросекунд типа данных [`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал продолжительностью `n` микросекунд типа данных [`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6428,7 +6461,7 @@ toIntervalMicrosecond(n) **Возвращаемое значение** -Возвращает интервал длительностью `n` микросекунд. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал в `n` микросекунд. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6450,9 +6483,9 @@ SELECT date + interval_to_microseconds AS result ## toIntervalMillisecond \{#toIntervalMillisecond\} -Появилась в версии: v22.6 +Введена в: v22.6 -Возвращает интервал длительностью `n` миллисекунд типа данных [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал `n` миллисекунд типа данных [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6466,7 +6499,7 @@ toIntervalMillisecond(n) **Возвращаемое значение** -Возвращает интервал в `n` миллисекунд. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал величиной `n` миллисекунд. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6488,9 +6521,9 @@ SELECT date + interval_to_milliseconds AS result ## toIntervalMinute \{#toIntervalMinute\} -Появилась в версии: v1.1 +Функция впервые появилась в: v1.1 -Возвращает интервал длительностью `n` минут типа данных [`IntervalMinute`](../data-types/special-data-types/interval.md). +Возвращает интервал продолжительностью `n` минут типа данных [`IntervalMinute`](../data-types/special-data-types/interval.md). **Синтаксис** @@ -6500,7 +6533,7 @@ toIntervalMinute(n) **Аргументы** -* `n` — количество минут. Целые числа, их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) +* `n` — количество минут. Целые числа или их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -6526,9 +6559,9 @@ SELECT date + interval_to_minutes AS result ## toIntervalMonth \{#toIntervalMonth\} -Добавлена в версии: v1.1 +Введена в версии: v1.1 -Возвращает интервал из `n` месяцев типа данных [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал длиной `n` месяцев типа данных [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6566,7 +6599,7 @@ SELECT date + interval_to_month AS result Появилась в версии: v22.6 -Возвращает интервал продолжительностью `n` наносекунд типа данных [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал в `n` наносекунд типа данных [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6576,11 +6609,11 @@ toIntervalNanosecond(n) **Аргументы** -* `n` — количество наносекунд. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) +* `n` — число наносекунд. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает интервал из `n` наносекунд. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал продолжительностью `n` наносекунд. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6602,9 +6635,9 @@ SELECT date + interval_to_nanoseconds AS result ## toIntervalQuarter \{#toIntervalQuarter\} -Добавлена в версии: v1.1 +Появилось в версии: v1.1 -Возвращает интервал в `n` кварталов типа данных [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал длиной `n` кварталов типа данных [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6614,11 +6647,11 @@ toIntervalQuarter(n) **Аргументы** -* `n` — количество кварталов. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) +* `n` — Количество кварталов. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает интервал длительностью `n` кварталов. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал на `n` кварталов. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6640,9 +6673,9 @@ SELECT date + interval_to_quarter AS result ## toIntervalSecond \{#toIntervalSecond\} -Введена в: v1.1 +Введена в версии: v1.1 -Возвращает интервал длительностью `n` секунд с типом данных [`IntervalSecond`](../data-types/special-data-types/interval.md). +Возвращает интервал продолжительностью `n` секунд типа данных [`IntervalSecond`](../data-types/special-data-types/interval.md). **Синтаксис** @@ -6652,11 +6685,11 @@ toIntervalSecond(n) **Аргументы** -* `n` — Количество секунд. Целые числа или их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) +* `n` — количество секунд. Целые числа или их строковые представления, а также числа с плавающей запятой. [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) или [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает интервал продолжительностью `n` секунд. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал длительностью `n` секунд. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6678,9 +6711,9 @@ SELECT date + interval_to_seconds AS result ## toIntervalWeek \{#toIntervalWeek\} -Введена в: v1.1 +Добавлено в: v1.1 -Возвращает интервал из `n` недель типа данных [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md). +Возвращает интервал длительностью `n` недель типа данных [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md). **Синтаксис** @@ -6694,7 +6727,7 @@ toIntervalWeek(n) **Возвращаемое значение** -Возвращает интервал длительностью `n` недель. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал продолжительностью `n` недель. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6732,7 +6765,7 @@ toIntervalYear(n) **Возвращаемое значение** -Возвращает интервал продолжительностью `n` лет. [`Interval`](/sql-reference/data-types/int-uint) +Возвращает интервал длительностью `n` лет. [`Interval`](/sql-reference/data-types/int-uint) **Примеры** @@ -6754,9 +6787,9 @@ SELECT date + interval_to_year AS result ## toLowCardinality \{#toLowCardinality\} -Добавлена в версии: v18.12 +Введена в: v18.12 -Преобразует входной аргумент в вариант типа данных [LowCardinality](../data-types/lowcardinality.md) для того же базового типа. +Преобразует входной аргумент в вариант типа данных [LowCardinality](../data-types/lowcardinality.md) с тем же типом данных. :::tip Чтобы преобразовать тип данных `LowCardinality` в обычный тип данных, используйте функцию [CAST](#CAST). @@ -6771,11 +6804,11 @@ toLowCardinality(expr) **Аргументы** -* `expr` — выражение, результатом которого является один из поддерживаемых типов данных: [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `expr` — выражение, результатом которого будет один из поддерживаемых типов данных: [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring), [`Date`](/sql-reference/data-types/date), [`DateTime`](/sql-reference/data-types/datetime), [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float). **Возвращаемое значение** -Возвращает исходное значение, преобразованное в тип данных `LowCardinality`. [`LowCardinality`](/sql-reference/data-types/lowcardinality) +Возвращает исходное значение, преобразованное к типу данных `LowCardinality`. [`LowCardinality`](/sql-reference/data-types/lowcardinality) **Примеры** @@ -6794,7 +6827,7 @@ SELECT toLowCardinality('1') ## toString \{#toString\} -Впервые появилась в версии: v1.1 +Добавлено в: v1.1 Преобразует значения в их строковое представление. Для аргументов типа DateTime функция может принимать второй аргумент типа String, содержащий имя часового пояса. @@ -6808,7 +6841,7 @@ toString(value[, timezone]) **Аргументы** * `value` — Значение, которое нужно преобразовать в строку. [`Any`](/sql-reference/data-types) -* `timezone` — Необязательный параметр. Имя часового пояса для преобразования `DateTime`. [`String`](/sql-reference/data-types/string) +* `timezone` — Необязательный аргумент. Название часового пояса для преобразования DateTime. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** @@ -6841,12 +6874,12 @@ LIMIT 10 ## toStringCutToZero \{#toStringCutToZero\} -Добавлена в версии v1.1 +Добавлено в: v1.1 -Принимает аргумент типа [String](/sql-reference/data-types/string) или [FixedString](/sql-reference/data-types/fixedstring) и возвращает строку типа String, содержащую копию исходной строки, усечённую при первом нулевом байте. +Принимает аргумент типа [String](/sql-reference/data-types/string) или [FixedString](/sql-reference/data-types/fixedstring) и возвращает строку типа String, содержащую копию исходной строки, обрезанную при первом нулевом байте. -Нулевые байты (\0) рассматриваются как терминаторы строки. -Эта функция полезна при обработке строк в стиле C или бинарных данных, где нулевые байты обозначают конец значимого содержимого. +Нулевые байты (\0) считаются терминаторами строки. +Эта функция полезна для обработки строк в стиле C или бинарных данных, где нулевые байты обозначают конец значимого содержимого. **Синтаксис** @@ -6856,11 +6889,11 @@ toStringCutToZero(s) **Аргументы** -* `s` — строка типа String или FixedString для обработки. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) +* `s` — обрабатываемое значение типа String или FixedString. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) **Возвращаемое значение** -Возвращает значение типа String, содержащее символы до первого нулевого байта. [`String`](/sql-reference/data-types/string) +Возвращает строку типа String, содержащую символы до первого нулевого байта. [`String`](/sql-reference/data-types/string) **Примеры** @@ -6881,9 +6914,9 @@ SELECT ## toTime \{#toTime\} -Введена в версии v1.1 +Добавлено в версии: v1.1 -Преобразует входное значение к типу [Time](/sql-reference/data-types/time). +Преобразует входное значение в тип [Time](/sql-reference/data-types/time). Поддерживает преобразование из типов String, FixedString, DateTime или числовых типов, представляющих количество секунд с полуночи. **Синтаксис** @@ -6894,7 +6927,7 @@ toTime(x) **Аргументы** -* `x` — Исходное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime`](/sql-reference/data-types/datetime) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `x` — входное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime`](/sql-reference/data-types/datetime) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) **Возвращаемое значение** @@ -6902,7 +6935,7 @@ toTime(x) **Примеры** -**Преобразование типа String в Time** +**Преобразование String в Time** ```sql title=Query SELECT toTime('14:30:25') @@ -6912,7 +6945,7 @@ SELECT toTime('14:30:25') 14:30:25 ``` -**Преобразование `DateTime` в `Time`** +**Преобразование из DateTime в Time** ```sql title=Query SELECT toTime(toDateTime('2025-04-15 14:30:25')) @@ -6922,7 +6955,7 @@ SELECT toTime(toDateTime('2025-04-15 14:30:25')) 14:30:25 ``` -**Преобразование целого числа в тип Time** +**Преобразование целого числа в значение времени** ```sql title=Query SELECT toTime(52225) @@ -6935,10 +6968,10 @@ SELECT toTime(52225) ## toTime64 \{#toTime64\} -Добавлено в: v25.6 +Добавлена в версии: v25.6 -Преобразует входное значение к типу [Time64](/sql-reference/data-types/time64). -Поддерживает преобразование из типов String, FixedString, DateTime64 или числовых типов, представляющих количество микросекунд, прошедших с начала суток. +Преобразует входное значение в тип [Time64](/sql-reference/data-types/time64). +Поддерживает преобразование из типов String, FixedString, DateTime64 или числовых типов, представляющих количество микросекунд с полуночи. Обеспечивает микросекундную точность значений времени. **Синтаксис** @@ -6949,7 +6982,7 @@ toTime64(x) **Аргументы** -* `x` — входное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime64`](/sql-reference/data-types/datetime64) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) +* `x` — Входное значение для преобразования. [`String`](/sql-reference/data-types/string) или [`FixedString`](/sql-reference/data-types/fixedstring) или [`DateTime64`](/sql-reference/data-types/datetime64) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) **Возвращаемое значение** @@ -6967,7 +7000,7 @@ SELECT toTime64('14:30:25.123456') 14:30:25.123456 ``` -**Преобразование типа DateTime64 в Time64** +**Преобразование из DateTime64 в Time64** ```sql title=Query SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6)) @@ -6977,7 +7010,7 @@ SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6)) 14:30:25.123456 ``` -**Преобразование целого числа в тип Time64** +**Преобразование целых чисел в Time64** ```sql title=Query SELECT toTime64(52225123456) @@ -6990,10 +7023,10 @@ SELECT toTime64(52225123456) ## toTime64OrNull \{#toTime64OrNull\} -Добавлена в: v25.6 +Появилось в версии: v25.6 -Преобразует входное значение в значение типа `Time64`, но возвращает `NULL` в случае ошибки. -Аналогична [`toTime64`](#toTime64), но возвращает `NULL` вместо генерации исключения при ошибке преобразования. +Преобразует входное значение в значение типа `Time64`, но при ошибке возвращает `NULL`. +Аналог функции [`toTime64`](#toTime64), но возвращает `NULL` вместо выброса исключения при ошибках преобразования. См. также: @@ -7008,11 +7041,11 @@ toTime64OrNull(x) **Аргументы** -* `x` — строковое представление времени с точностью до долей секунды. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление времени с точностью до долей секунды. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа Time64 в случае успешного преобразования, иначе `NULL`. [`Time64`](/sql-reference/data-types/time64) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа Time64 при успешном преобразовании, в противном случае — `NULL`. [`Time64`](/sql-reference/data-types/time64) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -7031,10 +7064,10 @@ SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid') ## toTime64OrZero \{#toTime64OrZero\} -Добавлена в: v25.6 +Введено в: v25.6 -Преобразует входное значение в значение типа Time64, но в случае ошибки возвращает `00:00:00.000`. -Аналогична функции [`toTime64`](#toTime64), но возвращает `00:00:00.000` вместо выброса исключения при ошибках преобразования. +Преобразует входное значение в значение типа Time64, но возвращает `00:00:00.000` в случае ошибки. +Аналог функции [`toTime64`](#toTime64), но возвращает `00:00:00.000` вместо генерации исключения при ошибках преобразования. **Синтаксис** @@ -7044,11 +7077,11 @@ toTime64OrZero(x) **Аргументы** -* `x` — строковое представление времени с точностью до долей секунды. [`String`](/sql-reference/data-types/string) +* `x` — Строковое представление времени с точностью до долей секунды. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает значение типа Time64 при успешном преобразовании, в противном случае — `00:00:00.000`. [`Time64`](/sql-reference/data-types/time64) +Возвращает значение типа Time64 при успешном выполнении, в противном случае — `00:00:00.000`. [`Time64`](/sql-reference/data-types/time64) **Примеры** @@ -7069,8 +7102,8 @@ SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid') Введена в версии v1.1 -Преобразует входное значение в значение типа Time, но возвращает `NULL` в случае ошибки. -Аналог функции [`toTime`](#toTime), но возвращает `NULL` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в значение типа Time, но в случае ошибки возвращает `NULL`. +Аналог функции [`toTime`](#toTime), но возвращает `NULL` вместо выбрасывания исключения при ошибке преобразования. См. также: @@ -7089,7 +7122,7 @@ toTimeOrNull(x) **Возвращаемое значение** -Возвращает значение типа Time при успешном преобразовании, в противном случае — `NULL`. [`Time`](/sql-reference/data-types/time) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа [`Time`](/sql-reference/data-types/time) при успешном преобразовании, в противном случае — [`NULL`](/sql-reference/syntax#null). **Примеры** @@ -7110,8 +7143,8 @@ SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid') Добавлена в: v1.1 -Преобразует входное значение в значение типа Time, но в случае ошибки возвращает `00:00:00`. -Работает как toTime, но возвращает `00:00:00` вместо генерации исключения при ошибках преобразования. +Преобразует входное значение в тип Time, но в случае ошибки возвращает `00:00:00`. +Аналогична функции toTime, но вместо генерации исключения при ошибках преобразования возвращает `00:00:00`. **Синтаксис** @@ -7125,7 +7158,7 @@ toTimeOrZero(x) **Возвращаемое значение** -Возвращает значение типа `Time` при успешном преобразовании, в противном случае — `00:00:00`. [`Time`](/sql-reference/data-types/time) +Возвращает значение типа Time в случае успешного выполнения, иначе `00:00:00`. [`Time`](/sql-reference/data-types/time) **Примеры** @@ -7144,11 +7177,11 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') ## toUInt128 \{#toUInt128\} -Впервые представлена в: v1.1 +Введена в версии v1.1 Преобразует входное значение в значение типа [`UInt128`](/sql-reference/functions/type-conversion-functions#toUInt128). -Генерирует исключение в случае ошибки. -Функция использует округление к нулю, то есть отбрасывает дробную часть числа. +Выбрасывает исключение в случае ошибки. +Функция использует округление в сторону нуля, то есть обрезает дробную часть чисел. Поддерживаемые аргументы: @@ -7161,7 +7194,7 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt128('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона UInt128, происходит переполнение или выход за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона UInt128, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой. ::: @@ -7179,11 +7212,11 @@ toUInt128(expr) **Аргументы** -* `expr` — выражение, возвращающее число или строковое представление числа. [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — выражение, возвращающее число или строковое представление числового значения. [`Expression`](/sql-reference/data-types/special-data-types/expression) **Возвращаемое значение** -Возвращает 128-битное беззнаковое целое число. [`UInt128`](/sql-reference/data-types/int-uint) +Возвращает 128-битное целое число без знака. [`UInt128`](/sql-reference/data-types/int-uint) **Примеры** @@ -7208,10 +7241,10 @@ toUInt128('128'): 128 ## toUInt128OrDefault \{#toUInt128OrDefault\} -Введена в версии: v21.11 +Введена в версии v21.11 -Как и [`toUInt128`](#toUInt128), эта функция преобразует входное значение в значение типа [`UInt128`](../data-types/int-uint.md), но при ошибке возвращает значение по умолчанию. -Если значение `default` не передано, в случае ошибки возвращается `0`. +Подобно функции [`toUInt128`](#toUInt128), эта функция преобразует входное значение в значение типа [`UInt128`](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если аргумент `default` не передан, то в случае ошибки возвращается `0`. **Синтаксис** @@ -7222,11 +7255,11 @@ toUInt128OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается при неудачной попытке парсинга. [`UInt128`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при неудачном разборе. [`UInt128`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа UInt128 при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно задано, или 0, если нет. [`UInt128`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt128 при успешном разборе, в противном случае возвращает значение по умолчанию, если оно задано, или 0, если нет. [`UInt128`](/sql-reference/data-types/int-uint) **Примеры** @@ -7240,7 +7273,7 @@ SELECT toUInt128OrDefault('128', CAST('0', 'UInt128')) 128 ``` -**Ошибка преобразования** +**Неуспешное преобразование** ```sql title=Query SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) @@ -7253,13 +7286,13 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) ## toUInt128OrNull \{#toUInt128OrNull\} -Добавлено в: v21.6 +Добавлена в: v21.6 Как и [`toUInt128`](#toUInt128), эта функция преобразует входное значение в значение типа [`UInt128`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления целых чисел типов (U)Int*. +* Строковые представления типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): @@ -7289,7 +7322,7 @@ toUInt128OrNull(x) **Возвращаемое значение** -Возвращает значение типа UInt128, а при неуспешном преобразовании — `NULL`. [`UInt128`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа UInt128, иначе — `NULL`, если преобразование не удалось. [`UInt128`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -7312,21 +7345,21 @@ toUInt128OrNull('abc'): \N ## toUInt128OrZero \{#toUInt128OrZero\} -Введена в версии v1.1 +Введена в версии: v1.1 -Как и [`toUInt128`](#toUInt128), эта функция преобразует входное значение к типу [`UInt128`](../data-types/int-uint.md), но возвращает `0` в случае ошибки преобразования. +Аналогично функции [`toUInt128`](#toUInt128), эта функция преобразует входное значение в значение типа [`UInt128`](../data-types/int-uint.md), но в случае ошибки возвращает `0`. Поддерживаемые аргументы: -* Строковые представления (U)Int*. +* Строковые представления типов (U)Int*. Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений типа Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt128OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt128`](../data-types/int-uint.md), происходит переполнение или потеря значимости результата. +Если входное значение не может быть представлено в диапазоне значений типа [`UInt128`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу допустимого диапазона. Это не считается ошибкой. ::: @@ -7348,7 +7381,7 @@ toUInt128OrZero(x) **Возвращаемое значение** -Возвращает значение типа UInt128, в противном случае `0`, если преобразование не удалось. [`UInt128`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt128 или `0` в случае, если преобразование не удалось. [`UInt128`](/sql-reference/data-types/int-uint) **Примеры** @@ -7371,10 +7404,10 @@ toUInt128OrZero('abc'): 0 ## toUInt16 \{#toUInt16\} -Добавлена в: v1.1 +Добавлено в: v1.1 Преобразует входное значение в значение типа [`UInt16`](../data-types/int-uint.md). -Выбрасывает исключение в случае ошибки. +Вызывает исключение в случае ошибки. Поддерживаемые аргументы: @@ -7387,13 +7420,13 @@ toUInt128OrZero('abc'): 0 * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt16('0xc0fe');`. :::note -Если входное значение не может быть представлено в диапазоне [`UInt16`](../data-types/int-uint.md), происходит переполнение или выход результата за допустимые границы типа (overflow/underflow). +Если входное значение не может быть представлено в пределах диапазона значений [`UInt16`](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу результата. Это не считается ошибкой. Например: `SELECT toUInt16(65536) == 0;`. ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть числа. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробные разряды чисел. ::: См. также: @@ -7439,10 +7472,10 @@ toUInt16('16'): 16 ## toUInt16OrDefault \{#toUInt16OrDefault\} -Добавлено в: v21.11 +Введена в: v21.11 -Как и [`toUInt16`](#toUInt16), эта функция преобразует входное значение в значение типа [UInt16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, то в случае ошибки возвращается `0`. +Аналогично [`toUInt16`](#toUInt16), эта функция преобразует входное значение в тип [UInt16](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если значение `default` не передано, в случае ошибки возвращается `0`. **Синтаксис** @@ -7453,11 +7486,11 @@ toUInt16OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, возвращаемое при ошибке разбора. [`UInt16`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, возвращаемое, если преобразование не удалось. [`UInt16`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа UInt16 при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно задано, или 0, если нет. [`UInt16`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt16 при успешном преобразовании, в противном случае — значение по умолчанию, если оно указано, или 0, если нет. [`UInt16`](/sql-reference/data-types/int-uint) **Примеры** @@ -7471,7 +7504,7 @@ SELECT toUInt16OrDefault('16', CAST('0', 'UInt16')) 16 ``` -**Сбой преобразования** +**Ошибка преобразования** ```sql title=Query SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) @@ -7484,13 +7517,13 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) ## toUInt16OrNull \{#toUInt16OrNull\} -Добавлена в версии: v1.1 +Введена в версии: v1.1 -Как и функция [`toUInt16`](#toUInt16), эта функция преобразует входное значение в значение типа [`UInt16`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Подобно [`toUInt16`](#toUInt16), эта функция преобразует входное значение в значение типа [`UInt16`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления значений (U)Int8/16/32/128/256. +* Строковые представления (U)Int8/16/32/128/256. Неподдерживаемые аргументы (возвращают `NULL`): @@ -7498,7 +7531,7 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt16OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона типа [`UInt16`](../data-types/int-uint.md), происходит переполнение результата или выход за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt16`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона (underflow). Это не считается ошибкой. ::: @@ -7520,7 +7553,7 @@ toUInt16OrNull(x) **Возвращаемое значение** -Возвращает значение типа `UInt16`; в случае неуспешного преобразования — `NULL`. [`UInt16`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа `UInt16` или `NULL` при неудачном преобразовании. [`UInt16`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -7543,7 +7576,7 @@ toUInt16OrNull('abc'): \N ## toUInt16OrZero \{#toUInt16OrZero\} -Добавлено в версии: v1.1 +Появилась в версии: v1.1 Подобно функции [`toUInt16`](#toUInt16), эта функция преобразует входное значение в значение типа [`UInt16`](../data-types/int-uint.md), но возвращает `0` в случае ошибки. @@ -7553,11 +7586,11 @@ toUInt16OrNull('abc'): \N Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов с плавающей запятой (Float*), включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt16OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt16`](../data-types/int-uint.md), происходит переполнение или выход результата за границы диапазона. +Если входное значение не может быть представлено в пределах диапазона типа [`UInt16`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -7579,7 +7612,7 @@ toUInt16OrZero(x) **Возвращаемое значение** -Возвращает значение типа UInt16, или `0` в случае неудачного преобразования. [`UInt16`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt16, в противном случае — `0`, если преобразование не удалось. [`UInt16`](/sql-reference/data-types/int-uint) **Примеры** @@ -7602,24 +7635,24 @@ toUInt16OrZero('abc'): 0 ## toUInt256 \{#toUInt256\} -Появилась в версии: v1.1 +Введена в версии: v1.1 Преобразует входное значение в значение типа UInt256. -Выбрасывает исключение в случае ошибки. -Функция использует округление к нулю, то есть отбрасывает дробную часть чисел. +Вызывает исключение в случае ошибки. +Функция использует округление к нулю, то есть отбрасывает дробные разряды чисел. Поддерживаемые аргументы: -* Значения или строковые представления типа (U)Int*. -* Значения типа Float*. +* Значения или строковые представления типов (U)Int*. +* Значения типов Float*. Неподдерживаемые аргументы: -* Строковые представления значений типа Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt256('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона UInt256, происходит переполнение сверху или снизу результата. +Если входное значение не может быть представлено в пределах диапазона UInt256, результат переполняется или выходит за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -7666,10 +7699,10 @@ toUInt256('256'): 256 ## toUInt256OrDefault \{#toUInt256OrDefault\} -Добавлена в: v21.11 +Добавлено в: v21.11 -Аналогично [`toUInt256`](#toUInt256), эта функция преобразует входное значение в значение типа [UInt256](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, то в случае ошибки возвращается `0`. +Подобно функции [`toUInt256`](#toUInt256), эта функция преобразует входное значение в тип [UInt256](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если аргумент `default` не передан, то в случае ошибки возвращается `0`. **Синтаксис** @@ -7680,11 +7713,11 @@ toUInt256OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если разбор выполнить не удалось. [`UInt256`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается при неуспешном разборе. [`UInt256`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа UInt256 при успешном разборе, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`UInt256`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt256 при успешном преобразовании, иначе возвращает значение по умолчанию, если оно задано, или 0, если нет. [`UInt256`](/sql-reference/data-types/int-uint) **Примеры** @@ -7711,21 +7744,21 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) ## toUInt256OrNull \{#toUInt256OrNull\} -Введена в: v20.8 +Добавлена в версии: v20.8 -Аналогично [`toUInt256`](#toUInt256), эта функция преобразует входное значение в значение типа [`UInt256`](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`. +Как и [`toUInt256`](#toUInt256), эта функция преобразует входное значение в значение типа [`UInt256`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления целых типов (U)Int*. +* Строковые представления целочисленных типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt256OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt256`](../data-types/int-uint.md), происходит переполнение или потеря значимости результата. +Если входное значение не может быть представлено в пределах диапазона значений [`UInt256`](../data-types/int-uint.md), происходит переполнение или занижение результата. Это не считается ошибкой. ::: @@ -7747,7 +7780,7 @@ toUInt256OrNull(x) **Возвращаемое значение** -Возвращает значение типа UInt256, либо `NULL`, если преобразование не удалось. [`UInt256`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа UInt256 или `NULL` при неуспешном преобразовании. [`UInt256`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -7770,9 +7803,9 @@ toUInt256OrNull('abc'): \N ## toUInt256OrZero \{#toUInt256OrZero\} -Впервые появилась в: v20.8 +Появилась в версии: v20.8 -Подобно функции [`toUInt256`](#toUInt256), эта функция преобразует входное значение в значение типа [`UInt256`](../data-types/int-uint.md), но в случае ошибки возвращает `0`. +Как и [`toUInt256`](#toUInt256), эта функция преобразует входное значение в значение типа [`UInt256`](../data-types/int-uint.md), но в случае ошибки возвращает `0`. Поддерживаемые аргументы: @@ -7781,10 +7814,10 @@ toUInt256OrNull('abc'): \N Неподдерживаемые аргументы (возвращают `0`): * Строковые представления значений Float*, включая `NaN` и `Inf`. -* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt256OrZero('0xc0fe');`. +* Строковые представления двоичных и шестнадцатеричных значений, например, `SELECT toUInt256OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона типа [`UInt256`](../data-types/int-uint.md), происходит переполнение или выход результата за границы диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt256`](../data-types/int-uint.md), происходит переполнение или занижение результата. Это не считается ошибкой. ::: @@ -7806,7 +7839,7 @@ toUInt256OrZero(x) **Возвращаемое значение** -Возвращает значение типа UInt256, в противном случае `0`, если преобразование не удалось. [`UInt256`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt256, или `0` в случае неуспешного преобразования. [`UInt256`](/sql-reference/data-types/int-uint) **Примеры** @@ -7829,9 +7862,9 @@ toUInt256OrZero('abc'): 0 ## toUInt32 \{#toUInt32\} -Введена в: v1.1 +Добавлено в версии: v1.1 -Преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md). +Преобразует входное значение к типу [`UInt32`](../data-types/int-uint.md). Выбрасывает исключение в случае ошибки. Поддерживаемые аргументы: @@ -7841,17 +7874,17 @@ toUInt256OrZero('abc'): 0 Неподдерживаемые аргументы: -* Строковые представления значений типа Float*, включая `NaN` и `Inf`. +* Строковые представления значений Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt32('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt32`](../data-types/int-uint.md), результат выходит за пределы диапазона (переполнение / «отрицательное» переполнение). +Если входное значение не может быть представлено в пределах диапазона типа [`UInt32`](../data-types/int-uint.md), результат выходит за верхнюю или нижнюю границу диапазона. Это не считается ошибкой. Например: `SELECT toUInt32(4294967296) == 0;` ::: :::note -Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. +Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть числа. ::: См. также: @@ -7872,7 +7905,7 @@ toUInt32(expr) **Возвращаемое значение** -Возвращает 32-битное целое без знака. [`UInt32`](/sql-reference/data-types/int-uint) +Возвращает значение 32-битного беззнакового целого числа. [`UInt32`](/sql-reference/data-types/int-uint) **Примеры** @@ -7897,10 +7930,10 @@ toUInt32('32'): 32 ## toUInt32OrDefault \{#toUInt32OrDefault\} -Впервые представлена в: v21.11 +Добавлена в версии: v21.11 -Подобно [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [UInt32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если значение `default` не передано, то в случае ошибки возвращается `0`. +Как и [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [UInt32](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. +Если значение `default` не передано, в случае ошибки возвращается `0`. **Синтаксис** @@ -7911,11 +7944,11 @@ toUInt32OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если преобразование не удалось. [`UInt32`](/sql-reference/data-types/int-uint) +* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается при неуспешном разборе. [`UInt32`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа `UInt32` при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`UInt32`](/sql-reference/data-types/int-uint) +Возвращает значение типа `UInt32` при успешном преобразовании, в противном случае — значение по умолчанию, если оно передано, или `0`, если нет. [`UInt32`](/sql-reference/data-types/int-uint) **Примеры** @@ -7929,7 +7962,7 @@ SELECT toUInt32OrDefault('32', CAST('0', 'UInt32')) 32 ``` -**Сбой преобразования** +**Неуспешное преобразование** ```sql title=Query SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) @@ -7942,21 +7975,21 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) ## toUInt32OrNull \{#toUInt32OrNull\} -Введена в: v1.1 +Введена в версии: v1.1 -Подобно функции [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Как и [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: * Строковые представления (U)Int8/16/32/128/256. -Неподдерживаемые аргументы (возвращают `NULL`): +Неподдерживаемые аргументы (функция возвращает `NULL`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt32OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt32`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt32`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -7978,7 +8011,7 @@ toUInt32OrNull(x) **Возвращаемое значение** -Возвращает значение типа `UInt32`, а при неудачном преобразовании — `NULL`. [`UInt32`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа `UInt32`, при неуспешном преобразовании — `NULL`. [`UInt32`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -8001,21 +8034,21 @@ toUInt32OrNull('abc'): \N ## toUInt32OrZero \{#toUInt32OrZero\} -Добавлена в: v1.1 +Введена в версии v1.1 -Подобно функции [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md), но возвращает `0` в случае ошибки. +Аналогично [`toUInt32`](#toUInt32), эта функция преобразует входное значение в значение типа [`UInt32`](../data-types/int-uint.md), но возвращает `0` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления чисел типов (U)Int8/16/32/128/256. +* Строковые представления (U)Int8/16/32/128/256. Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления значений типа Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt32OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона типа [`UInt32`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу. +Если входное значение не может быть представлено в пределах диапазона [`UInt32`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой. ::: @@ -8037,7 +8070,7 @@ toUInt32OrZero(x) **Возвращаемое значение** -Возвращает значение типа UInt32, или `0`, если преобразование не удалось. [`UInt32`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt32, в противном случае `0`, если преобразование не удалось. [`UInt32`](/sql-reference/data-types/int-uint) **Примеры** @@ -8060,23 +8093,23 @@ toUInt32OrZero('abc'): 0 ## toUInt64 \{#toUInt64\} -Впервые представлена в: v1.1 +Добавлено в: v1.1 Преобразует входное значение в значение типа [`UInt64`](../data-types/int-uint.md). -Выбрасывает исключение в случае ошибки. +Вызывает исключение в случае ошибки. Поддерживаемые аргументы: -* Значения или строковые представления типов (U)Int*. +* Значения или строковые представления типа (U)Int*. * Значения типа Float*. Неподдерживаемые типы: -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типа Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt64('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или выход за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или, наоборот, выход за нижнюю границу диапазона. Это не считается ошибкой. Например: `SELECT toUInt64(18446744073709551616) == 0;` ::: @@ -8085,7 +8118,7 @@ toUInt32OrZero('abc'): 0 Функция использует [округление к нулю](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero), то есть отбрасывает дробную часть чисел. ::: -См. также: +Смотрите также: * [`toUInt64OrZero`](#toUInt64OrZero). * [`toUInt64OrNull`](#toUInt64OrNull). @@ -8103,7 +8136,7 @@ toUInt64(expr) **Возвращаемое значение** -Возвращает беззнаковое 64-битное целое число. [`UInt64`](/sql-reference/data-types/int-uint) +Возвращает значение 64-битного целого числа без знака. [`UInt64`](/sql-reference/data-types/int-uint) **Примеры** @@ -8130,8 +8163,8 @@ toUInt64('64'): 64 Появилась в версии: v21.11 -Аналогично функции [`toUInt64`](#toUInt64), эта функция преобразует входное значение в значение типа [UInt64](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если параметр `default` не передан, то в случае ошибки возвращается `0`. +Как и [`toUInt64`](#toUInt64), эта функция преобразует входное значение в значение типа [UInt64](../data-types/int-uint.md), но при ошибке возвращает значение по умолчанию. +Если значение `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -8142,11 +8175,11 @@ toUInt64OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается при ошибке преобразования. [`UInt64`](/sql-reference/data-types/int-uint) +* `default` — необязательный аргумент. Значение по умолчанию, которое возвращается, если парсинг не удался. [`UInt64`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа UInt64 в случае успеха, иначе возвращает значение по умолчанию, если оно указано, или 0, если нет. [`UInt64`](/sql-reference/data-types/int-uint) +При успешном преобразовании возвращает значение типа UInt64, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`UInt64`](/sql-reference/data-types/int-uint) **Примеры** @@ -8173,25 +8206,25 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) ## toUInt64OrNull \{#toUInt64OrNull\} -Введена в версии: v1.1 +Введена в: v1.1 -Как и [`toUInt64`](#toUInt64), эта функция преобразует входное значение в значение типа [`UInt64`](../data-types/int-uint.md), но в случае ошибки возвращает `NULL`. +Как и [`toUInt64`](#toUInt64), эта функция преобразует входное значение в значение типа [`UInt64`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления (U)Int*. +* Строковые представления целочисленных типов (U)Int*. Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt64OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона (underflow). Это не считается ошибкой. ::: -Смотрите также: +См. также: * [`toUInt64`](#toUInt64). * [`toUInt64OrZero`](#toUInt64OrZero). @@ -8209,7 +8242,7 @@ toUInt64OrNull(x) **Возвращаемое значение** -Возвращает значение типа UInt64, в противном случае `NULL`, если преобразование не удалось. [`UInt64`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа UInt64, в противном случае — `NULL`, если преобразование не удалось. [`UInt64`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -8232,21 +8265,21 @@ toUInt64OrNull('abc'): \N ## toUInt64OrZero \{#toUInt64OrZero\} -Введена в версии: v1.1 +Введена в версии v1.1 Как и [`toUInt64`](#toUInt64), эта функция преобразует входное значение в значение типа [`UInt64`](../data-types/int-uint.md), но возвращает `0` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления (U)Int*. +* Строковые представления типов (U)Int*. Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типа Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt64OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt64`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой. ::: @@ -8268,7 +8301,7 @@ toUInt64OrZero(x) **Возвращаемое значение** -Возвращает значение типа UInt64, в противном случае — `0`, если преобразование не удалось. [`UInt64`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt64, в противном случае `0`, если преобразование не удалось. [`UInt64`](/sql-reference/data-types/int-uint) **Примеры** @@ -8291,23 +8324,23 @@ toUInt64OrZero('abc'): 0 ## toUInt8 \{#toUInt8\} -Введена в версии: v1.1 +Появилась в версии: v1.1 Преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md). В случае ошибки выбрасывает исключение. Поддерживаемые аргументы: -* Значения или строковые представления типа (U)Int*. -* Значения типа Float*. +* Значения или строковые представления типов (U)Int*. +* Значения типов Float*. Неподдерживаемые аргументы: -* Строковые представления значений Float*, включая `NaN` и `Inf`. +* Строковые представления значений типов Float*, включая `NaN` и `Inf`. * Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt8('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [UInt8](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [UInt8](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой. Например: `SELECT toUInt8(256) == 0;`. ::: @@ -8359,10 +8392,10 @@ toUInt8('8'): 8 ## toUInt8OrDefault \{#toUInt8OrDefault\} -Впервые появилась в версии v21.11 +Добавлено в: v21.11 -Подобно функции [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [UInt8](../data-types/int-uint.md), но в случае ошибки возвращает значение по умолчанию. -Если параметр `default` не задан, то в случае ошибки возвращается `0`. +Подобно [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [UInt8](../data-types/int-uint.md), но возвращает значение по умолчанию в случае ошибки. +Если значение `default` не передано, то в случае ошибки возвращается `0`. **Синтаксис** @@ -8373,11 +8406,11 @@ toUInt8OrDefault(expr[, default]) **Аргументы** * `expr` — выражение, возвращающее число или строковое представление числа. [`String`](/sql-reference/data-types/string) или [`(U)Int*`](/sql-reference/data-types/int-uint) или [`Float*`](/sql-reference/data-types/float) -* `default` — необязательный параметр. Значение по умолчанию, возвращаемое, если преобразование не удалось. [`UInt8`](/sql-reference/data-types/int-uint) +* `default` — необязательный параметр. Значение по умолчанию, которое возвращается, если разобрать значение не удалось. [`UInt8`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает значение типа UInt8 при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. [`UInt8`](/sql-reference/data-types/int-uint) +Возвращает значение типа `UInt8` при успешном преобразовании, в противном случае возвращает значение по умолчанию, если оно передано, или `0`, если нет. [`UInt8`](/sql-reference/data-types/int-uint) **Примеры** @@ -8404,9 +8437,9 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) ## toUInt8OrNull \{#toUInt8OrNull\} -Введена в: v1.1 +Введена в версии v1.1 -Подобно функции [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. +Как и [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md), но возвращает `NULL` в случае ошибки. Поддерживаемые аргументы: @@ -8414,11 +8447,11 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) Неподдерживаемые аргументы (возвращают `NULL`): -* Строковые представления значений типов Float*, включая `NaN` и `Inf`. -* Строковые представления двоичных и шестнадцатеричных значений, например: `SELECT toUInt8OrNull('0xc0fe');`. +* Строковые представления обычных чисел с плавающей точкой (Float*), включая `NaN` и `Inf`. +* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt8OrNull('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt8`](../data-types/int-uint.md), происходит переполнение или, наоборот, занижение (underflow) результата. +Если входное значение не может быть представлено в пределах типа [`UInt8`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой. ::: @@ -8440,7 +8473,7 @@ toUInt8OrNull(x) **Возвращаемое значение** -Возвращает значение типа UInt8, а в случае неудачного преобразования — `NULL`. [`UInt8`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) +Возвращает значение типа UInt8, в противном случае при неудачном преобразовании — `NULL`. [`UInt8`](/sql-reference/data-types/int-uint) или [`NULL`](/sql-reference/syntax#null) **Примеры** @@ -8463,21 +8496,21 @@ toUInt8OrNull('abc'): \N ## toUInt8OrZero \{#toUInt8OrZero\} -Появилась в: v1.1 +Введена в: v1.1 -Как и [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md), но в случае ошибки возвращает `0`. +Как и [`toUInt8`](#toUInt8), эта функция преобразует входное значение в значение типа [`UInt8`](../data-types/int-uint.md), но возвращает `0` в случае ошибки. Поддерживаемые аргументы: -* Строковые представления значений типов (U)Int8/16/32/128/256. +* Строковые представления целочисленных значений типов (U)Int8/16/32/128/256. Неподдерживаемые аргументы (возвращают `0`): -* Строковые представления обычных вещественных значений типов Float*, включая `NaN` и `Inf`. -* Строковые представления двоичных и шестнадцатеричных значений, например `SELECT toUInt8OrZero('0xc0fe');`. +* Строковые представления обычных значений типов Float*, включая `NaN` и `Inf`. +* Строковые представления двоичных и шестнадцатеричных значений, например: `SELECT toUInt8OrZero('0xc0fe');`. :::note -Если входное значение не может быть представлено в пределах диапазона [`UInt8`](../data-types/int-uint.md), происходит переполнение или выход результата за нижнюю границу диапазона. +Если входное значение не может быть представлено в пределах диапазона [`UInt8`](../data-types/int-uint.md), происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой. ::: @@ -8499,7 +8532,7 @@ toUInt8OrZero(x) **Возвращаемое значение** -Возвращает значение типа `UInt8`, в противном случае `0`, если преобразование завершилось неудачей. [`UInt8`](/sql-reference/data-types/int-uint) +Возвращает значение типа UInt8, в противном случае — `0`, если преобразование выполнить не удалось. [`UInt8`](/sql-reference/data-types/int-uint) **Примеры** @@ -8522,7 +8555,7 @@ toUInt8OrZero('abc'): 0 ## toUUID \{#toUUID\} -Появилась в версии: v1.1 +Введено в версии: v1.1 Преобразует значение типа String в значение типа UUID. @@ -8538,7 +8571,7 @@ toUUID(string) **Возвращаемое значение** -Возвращает UUID по строковому представлению UUID. [`UUID`](/sql-reference/data-types/uuid) +Возвращает UUID на основе его строкового представления. [`UUID`](/sql-reference/data-types/uuid) **Примеры** @@ -8557,10 +8590,10 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid ## toUUIDOrZero \{#toUUIDOrZero\} -Введена в версии: v20.12 +Добавлена в версии: v20.12 Преобразует входное значение в значение типа [UUID](../data-types/uuid.md), но в случае ошибки возвращает нулевой UUID. -Аналог [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID), но возвращает нулевой UUID (`00000000-0000-0000-0000-000000000000`) вместо выбрасывания исключения при ошибках преобразования. +Аналогична [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID), но возвращает нулевой UUID (`00000000-0000-0000-0000-000000000000`) вместо генерации исключения при ошибках преобразования. Поддерживаемые аргументы: @@ -8569,8 +8602,8 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid Неподдерживаемые аргументы (возвращают нулевой UUID): -* Некорректные строковые значения. -* Типы, отличные от строковых. +* Неверные строковые форматы. +* Типы, отличные от строк. **Синтаксис** @@ -8584,7 +8617,7 @@ toUUIDOrZero(x) **Возвращаемое значение** -Возвращает значение UUID при успешном выполнении, в противном случае — нулевой UUID (`00000000-0000-0000-0000-000000000000`). [`UUID`](/sql-reference/data-types/uuid) +Возвращает значение UUID в случае успеха, иначе — нулевой UUID (`00000000-0000-0000-0000-000000000000`). [`UUID`](/sql-reference/data-types/uuid) **Примеры** @@ -8607,11 +8640,11 @@ SELECT Введена в версии: v20.5 -Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/data-types/int-uint) с фиксированной точностью до микросекунды. -Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его исходной точности. +Преобразует значение типа [`DateTime64`](/sql-reference/data-types/datetime64) в значение типа [`Int64`](/sql-reference/data-types/int-uint) с фиксированной точностью до микросекунд. +Входное значение масштабируется в большую или меньшую сторону в зависимости от его точности. :::note -Выходное значение задаётся относительно UTC, а не часового пояса входного значения. +Результирующее значение задаётся относительно UTC, а не относительно часового пояса входного значения. ::: **Синтаксис** @@ -8622,11 +8655,11 @@ toUnixTimestamp64Micro(value) **Аргументы** -* `value` — значение DateTime64 с любой точностью. [`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — значение типа DateTime64 с любой точностью. [`DateTime64`](/sql-reference/data-types/datetime64) **Возвращаемое значение** -Возвращает Unix timestamp в микросекундах. [`Int64`](/sql-reference/data-types/int-uint) +Возвращает Unix‑метку времени в микросекундах. [`Int64`](/sql-reference/data-types/int-uint) **Примеры** @@ -8646,13 +8679,13 @@ SELECT toUnixTimestamp64Micro(dt64); ## toUnixTimestamp64Milli \{#toUnixTimestamp64Milli\} -Функция введена в: v20.5 +Добавлена в версии: v20.5 -Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/data-types/int-uint) с фиксированной точностью в миллисекундах. -Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его исходной точности. +Преобразует значение типа [`DateTime64`](/sql-reference/data-types/datetime64) в значение типа [`Int64`](/sql-reference/data-types/int-uint) с фиксированной точностью до миллисекунд. +Входное значение соответствующим образом масштабируется (увеличивается или уменьшается) в зависимости от его точности. :::note -Выходное значение отсчитывается относительно UTC, а не относительно часового пояса входного значения. +Возвращаемое значение отсчитывается относительно UTC, а не относительно часового пояса входного значения. ::: **Синтаксис** @@ -8687,13 +8720,13 @@ SELECT toUnixTimestamp64Milli(dt64); ## toUnixTimestamp64Nano \{#toUnixTimestamp64Nano\} -Введена в: v20.5 +Впервые представлена в версии v20.5 -Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) с фиксированной точностью до наносекунд. -Входное значение соответствующим образом масштабируется (увеличивается или уменьшается) в зависимости от его точности. +Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) с фиксированной наносекундной точностью. +Входное значение масштабируется вверх или вниз в зависимости от его точности. :::note -Выходное значение рассчитывается относительно UTC, а не часового пояса исходного значения. +Выходное значение задаётся относительно UTC, а не относительно часового пояса исходного значения. ::: **Синтаксис** @@ -8708,7 +8741,7 @@ toUnixTimestamp64Nano(value) **Возвращаемое значение** -Возвращает временную метку Unix в наносекундах. [`Int64`](/sql-reference/data-types/int-uint) +Возвращает метку времени Unix в наносекундах. [`Int64`](/sql-reference/data-types/int-uint) **Примеры** @@ -8728,13 +8761,13 @@ SELECT toUnixTimestamp64Nano(dt64); ## toUnixTimestamp64Second \{#toUnixTimestamp64Second\} -Функция введена в: v24.12 +Добавлено в: v24.12 -Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/data-types/int-uint) с фиксированной точностью до секунды. -Входное значение соответствующим образом масштабируется вверх или вниз в зависимости от его точности. +Преобразует [`DateTime64`](/sql-reference/data-types/datetime64) в значение [`Int64`](/sql-reference/data-types/int-uint) с фиксированной секундной точностью. +Входное значение масштабируется вверх или вниз в зависимости от его точности. :::note -Выходное значение определяется относительно UTC, а не часового пояса исходного значения. +Выходное значение задаётся относительно UTC, а не относительно часового пояса входного значения. ::: **Синтаксис** @@ -8745,7 +8778,7 @@ toUnixTimestamp64Second(value) **Аргументы** -* `value` — значение типа DateTime64 с любой точностью. [`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — значение DateTime64 с любой точностью. [`DateTime64`](/sql-reference/data-types/datetime64) **Возвращаемое значение** diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md index 7f3822b6ce9..05b1a9ef29c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md @@ -6,17 +6,17 @@ title: 'Функции для работы с URL-адресами' doc_type: 'reference' --- -# Функции для работы с URL \{#functions-for-working-with-urls\} +# Функции для работы с URL-адресами \{#functions-for-working-with-urls\} ## Обзор \{#overview\} :::note Функции, упомянутые в этом разделе, оптимизированы для максимальной производительности и в большинстве случаев не следуют стандарту RFC-3986. -Функции, которые реализуют RFC-3986, имеют суффикс `RFC` в имени функции и, как правило, работают медленнее. +Функции, реализующие RFC-3986, имеют суффикс `RFC` в имени функции и, как правило, работают медленнее. ::: -Как правило, вы можете использовать варианты функций без `RFC` при работе с публично зарегистрированными доменами, которые не содержат ни пользовательской части, ни символа `@`. -В таблице ниже указано, какие символы в URL могут (`✔`) или не могут (`✗`) быть разобраны соответствующими вариантами с `RFC` и без `RFC`: +Как правило, можно использовать варианты функций без суффикса `RFC` при работе с публично зарегистрированными доменами, которые не содержат пользовательских данных и символов `@`. +В таблице ниже показано, какие символы в URL могут (`✔`) или не могут (`✗`) быть разобраны соответствующими вариантами `RFC` и non-`RFC`: | Symbol | non-`RFC` | `RFC` | | | ----------- | --------- | ----- | - | @@ -37,30 +37,94 @@ doc_type: 'reference' | = | ✗ | ✔* | | | & | ✗ | ✔* | | -Символы, помеченные `*`, являются субразделителями в RFC 3986 и допускаются в пользовательской информации, следующей за символом `@`. +Символы, помеченные `*`, являются субделимитерами в RFC 3986 и допускаются для пользовательской информации, следующей за символом `@`. Существует два типа функций для работы с URL: -* Функции, которые извлекают части URL. Если соответствующая часть отсутствует в URL, возвращается пустая строка. -* Функции, которые удаляют часть URL. Если в URL нет ничего подобного, URL остаётся без изменений. +* Функции, извлекающие части URL. Если соответствующая часть отсутствует в URL, возвращается пустая строка. +* Функции, удаляющие часть URL. Если соответствующая часть в URL отсутствует, URL остаётся неизменным. :::note -Приведённые ниже функции сгенерированы из системной таблицы `system.functions`. +Приведённые ниже функции генерируются из системной таблицы `system.functions`. ::: {/* - Внутреннее содержимое расположенных ниже тегов при сборке фреймворка документации + При сборке фреймворка документации содержимое приведённых ниже тегов заменяется документацией, сгенерированной из system.functions. Пожалуйста, не изменяйте и не удаляйте эти теги. См.: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } +## URLHierarchy \{#URLHierarchy\} + +Добавлено в: v1.1 + +Возвращает массив, содержащий URL, усечённый в конце по символам `/`, `?` и `#` в пути и строке запроса. Последовательные символы-разделители считаются за один. Результат включает протокол и хост в качестве первого элемента, а последующие элементы — всё более длинные пути, образующие иерархию. + +**Синтаксис** + +```sql +URLHierarchy(url) +``` + +**Аргументы** + +* `url` — URL для обработки. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает массив URL всё большей длины, образующих иерархию. [`Array(String)`](/sql-reference/data-types/array) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT URLHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1'] +``` + +## URLPathHierarchy \{#URLPathHierarchy\} + +Добавлена в: v1.1 + +Возвращает массив, содержащий компонент пути URL-адреса, усечённый по символам `/`, `?` и `#` в конце. В отличие от `URLHierarchy`, результат не включает протокол и хост — он начинается с пути. Идущие подряд разделители считаются одним. + +**Синтаксис** + +```sql +URLPathHierarchy(url) +``` + +**Аргументы** + +* `url` — URL для обработки. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает массив всё более длинных компонентов пути URL-адреса, формирующих иерархию. [`Array(String)`](/sql-reference/data-types/array) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT URLPathHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['/a/','/a/b','/a/b?c=1'] +``` + ## cutFragment \{#cutFragment\} -Добавлено в версии v1.1 +Добавлена в версии: v1.1 -Удаляет идентификатор фрагмента, включая символ `#` (решётку), из URL. +Удаляет идентификатор фрагмента, включая знак решётки (#), из URL-адреса. **Синтаксис** @@ -92,9 +156,9 @@ SELECT cutFragment('http://example.com/path?query=value#fragment123'); ## cutQueryString \{#cutQueryString\} -Впервые представлена в версии v1.1 +Введена в: v1.1 -Удаляет строку запроса, включая знак вопроса, из URL-адреса. +Удаляет строку запроса, включая вопросительный знак, из URL-адреса. **Синтаксис** @@ -108,7 +172,7 @@ cutQueryString(url) **Возвращаемое значение** -Возвращает URL без строки запроса. [`String`](/sql-reference/data-types/string) +Возвращает URL без строки параметров запроса. [`String`](/sql-reference/data-types/string) **Примеры** @@ -126,9 +190,9 @@ SELECT cutQueryString('http://example.com/path?query=value¶m=123#fragment'); ## cutQueryStringAndFragment \{#cutQueryStringAndFragment\} -Появилось в версии: v1.1 +Появилась в версии v1.1 -Удаляет строку запроса и идентификатор фрагмента, включая вопросительный знак и символ решётки, из URL-адреса. +Удаляет строку запроса и идентификатор фрагмента, включая вопросительный знак и символ решётки, из URL. **Синтаксис** @@ -138,11 +202,11 @@ cutQueryStringAndFragment(url) **Аргументы** -* `url` — URL. [`String`](/sql-reference/data-types/string) +* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает URL без строки запроса и идентификатора фрагмента. [`String`](/sql-reference/data-types/string) +Возвращает URL-адрес с удалёнными строкой запроса и идентификатором фрагмента. [`String`](/sql-reference/data-types/string) **Примеры** @@ -160,9 +224,9 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# ## cutToFirstSignificantSubdomain \{#cutToFirstSignificantSubdomain\} -Добавлено в: v1.1 +Добавлена в: v1.1 -Возвращает часть доменного имени, которая включает поддомены верхнего уровня до [первого значимого поддомена](/sql-reference/functions/url-functions#firstSignificantSubdomain). +Возвращает часть доменного имени, включающую домен верхнего уровня и субдомены вплоть до [первого значимого субдомена](/sql-reference/functions/url-functions#firstSignificantSubdomain). **Синтаксис** @@ -172,11 +236,11 @@ cutToFirstSignificantSubdomain(url) **Аргументы** -* `url` — URL или строка с доменным именем для обработки. [`String`](/sql-reference/data-types/string) +* `url` — URL или строка домена для обработки. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает часть домена, которая включает поддомены верхнего уровня вплоть до первого значимого поддомена, если это возможно, в противном случае возвращает пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает часть домена, которая включает верхние поддомены до первого значимого поддомена, если это возможно, иначе возвращает пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -197,9 +261,9 @@ SELECT ## cutToFirstSignificantSubdomainCustom \{#cutToFirstSignificantSubdomainCustom\} -Добавлено в: v21.1 +Впервые появилась в: v21.1 -Возвращает часть домена, которая включает домены верхнего уровня и субдомены до первого значимого субдомена. Принимает имя пользовательского списка [TLD](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains). Эта функция может быть полезна, если вам нужен обновлённый список TLD или если у вас есть собственный список. +Возвращает часть доменного имени, включающую домены верхнего уровня вплоть до первого значимого поддомена. Принимает имя пользовательского списка [TLD](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains). Эта функция может быть полезна, если вам нужен обновлённый список TLD или у вас есть собственный список. **Пример конфигурации** @@ -208,28 +272,28 @@ SELECT public_suffix_list.dat - + ``` **Синтаксис** ```sql -cutToFirstSignificantSubdomainCustom(url, имя_списка_доменных_зон) +cutToFirstSignificantSubdomainCustom(url, tld_list_name) ``` **Аргументы** -* `url` — URL или доменное имя в виде строки для обработки. [`String`](/sql-reference/data-types/string) +* `url` — URL или строка с доменным именем для обработки. [`String`](/sql-reference/data-types/string) * `tld_list_name` — имя пользовательского списка TLD, настроенного в ClickHouse. [`const String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает часть доменного имени, которая включает поддомены верхнего уровня до первого значимого поддомена. [`String`](/sql-reference/data-types/string) +Возвращает часть доменного имени, которая включает верхнеуровневые поддомены вплоть до первого значимого поддомена. [`String`](/sql-reference/data-types/string) **Примеры** -**Использование пользовательского списка TLD для нестандартных доменов** +**Использование пользовательского списка TLD для нестандартных доменных имён** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list') @@ -241,11 +305,11 @@ foo.there-is-no-such-domain ## cutToFirstSignificantSubdomainCustomRFC \{#cutToFirstSignificantSubdomainCustomRFC\} -Появилась в версии v22.10 +Добавлена в версии: v22.10 -Возвращает часть домена, которая включает поддомены верхнего уровня вплоть до первого значимого поддомена. -Принимает имя пользовательского списка [TLD](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains). -Эта функция может быть полезна, если вам нужен обновлённый список TLD или если у вас есть собственный список. +Возвращает часть домена, включающую домены верхнего уровня до первого значимого поддомена. +Принимает наименование пользовательского списка доменов верхнего уровня (TLD): [TLD list](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains). +Эта функция может быть полезна, если вам нужен свежий список TLD или если у вас есть собственный список. Аналогична [cutToFirstSignificantSubdomainCustom](#cutToFirstSignificantSubdomainCustom), но соответствует RFC 3986. **Пример конфигурации** @@ -255,7 +319,7 @@ foo.there-is-no-such-domain public_suffix_list.dat - + ``` @@ -267,12 +331,12 @@ cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name) **Аргументы** -* `url` — строка URL или доменного имени для обработки в соответствии с RFC 3986. +* `url` — URL или строка домена для обработки в соответствии с RFC 3986. * `tld_list_name` — имя пользовательского списка TLD, настроенного в ClickHouse. **Возвращаемое значение** -Возвращает часть домена, которая включает верхние поддомены вплоть до первого значимого поддомена. [`String`](/sql-reference/data-types/string) +Возвращает часть доменного имени, которая включает поддомены верхнего уровня до первого значимого поддомена. [`String`](/sql-reference/data-types/string) **Примеры** @@ -290,13 +354,13 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); ## cutToFirstSignificantSubdomainCustomWithWWW \{#cutToFirstSignificantSubdomainCustomWithWWW\} -Добавлена в версии v21.1 +Появилась в версии: v21.1 -Возвращает часть домена, которая включает поддомены верхнего уровня вплоть до первого значимого поддомена, не удаляя `www`. Принимает имя пользовательского списка TLD. Это может быть полезно, если вам нужен актуальный список TLD или у вас есть собственный список. +Возвращает часть доменного имени, включающую домены верхнего уровня до первого значимого поддомена, при этом префикс 'www' не удаляется. Принимает имя пользовательского списка TLD. Может быть полезно, если вам нужен актуальный список TLD или у вас есть собственный список. **Пример конфигурации** -```yaml +````yaml @@ -305,20 +369,19 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); -**Синтаксис** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name) -``` +```` **Аргументы** -* `url` — URL или строка домена для обработки. -* `tld_list_name` — имя пользовательского списка TLD, настроенного в ClickHouse. +* `url` — URL или строка с доменом для обработки. - `tld_list_name` — имя пользовательского списка TLD, настроенного в ClickHouse. **Возвращаемое значение** -Часть домена, которая включает поддомены верхнего уровня до первого значимого поддомена, при этом `www` не удаляется. [`String`](/sql-reference/data-types/string) +Часть доменного имени, включающая поддомены верхнего уровня вплоть до первого значимого поддомена, без удаления 'www'. [`String`](/sql-reference/data-types/string) **Примеры** @@ -334,44 +397,43 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_lis └──────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainCustomWithWWWRFC {#cutToFirstSignificantSubdomainCustomWithWWWRFC} +## cutToFirstSignificantSubdomainCustomWithWWWRFC \{#cutToFirstSignificantSubdomainRFC\} -Появилась в версии v22.10 +Добавлена в версии: v22.10 -Возвращает часть доменного имени, включающую поддомены верхних уровней до первого значимого поддомена, при этом `www` не удаляется. +Возвращает часть домена, которая включает верхнеуровневые субдомены до первого значимого субдомена, не удаляя `www`. Принимает имя пользовательского списка TLD. -Может быть полезна, если вам нужен обновлённый список TLD или у вас есть собственный список. -Аналогична [cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Это может быть полезно, если вам нужен обновлённый список TLD или у вас есть собственный список. +Похожа на [cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Пример конфигурации** -```xml +````xml public_suffix_list.dat - + -**Синтаксис** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name) -``` +```` **Аргументы** -* `url` — строка URL или доменного имени для обработки в соответствии с RFC 3986. -* `tld_list_name` — имя пользовательского списка TLD, настроенного в ClickHouse. +* `url` — URL или строка доменного имени для обработки в соответствии с RFC 3986. - `tld_list_name` — имя пользовательского списка доменов верхнего уровня (TLD), настроенного в ClickHouse. **Возвращаемое значение** -Возвращает часть доменного имени, которая включает домены верхнего уровня и субдомены вплоть до первого значимого субдомена, без удаления `www`. [`String`](/sql-reference/data-types/string) +Возвращает часть имени домена, которая включает домены верхнего уровня и поддомены вплоть до первого значимого поддомена, при этом `www` не удаляется. [`String`](/sql-reference/data-types/string) **Примеры** -**Разбор RFC 3986 с сохранением www и пользовательским списком TLD** +**Разбор по RFC 3986 с сохранением www и пользовательским списком TLD** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list') @@ -381,11 +443,11 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.exa www.example.custom ``` -## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainRFC\} +## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainWithWWW\} -Впервые представлена в: v22.10 +Добавлена в: v22.10 -Возвращает часть доменного имени, которая включает старшие поддомены вплоть до ["первого значимого поддомена"](/sql-reference/functions/url-functions#firstSignificantSubdomain). Аналогична [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Возвращает часть доменного имени, которая включает поддомены верхнего уровня до [«первого значимого поддомена»](/sql-reference/functions/url-functions#firstSignificantSubdomain). Аналогична [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -395,11 +457,11 @@ cutToFirstSignificantSubdomainRFC(url) **Аргументы** -* `url` — URL или строка с доменным именем для обработки в соответствии с RFC 3986. [`String`](/sql-reference/data-types/string) +* `url` — URL или строка с доменом для обработки в соответствии с RFC 3986. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает часть доменного имени, которая включает домены верхнего уровня вплоть до первого значимого поддомена, если это возможно, в противном случае возвращает пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает часть домена, которая включает поддомены верхнего уровня до первого значимого поддомена, если это возможно, в противном случае возвращает пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -417,13 +479,13 @@ SELECT └─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWW\} +## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWWRFC\} -Введена в: v20.12 +Добавлена в версии: v20.12 -Возвращает часть домена, которая включает субдомены верхнего уровня вплоть до «первого значимого субдомена», не удаляя префикс '[www](http://www).'. +Возвращает часть доменного имени, включающую домен верхнего уровня и поддомены до «первого значимого поддомена», при этом префикс 'www.' не удаляется. -Аналогична [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain), но сохраняет префикс '[www](http://www).', если он присутствует. +Аналогично [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain), но сохраняет префикс 'www.', если он присутствует. **Синтаксис** @@ -437,7 +499,7 @@ cutToFirstSignificantSubdomainWithWWW(url) **Возвращаемое значение** -Возвращает часть домена, которая включает поддомены верхнего уровня до первого значимого поддомена (включая www), если возможно, иначе возвращает пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает часть домена, которая включает поддомены верхнего уровня вплоть до первого значимого поддомена (включая www), если это возможно, в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -456,11 +518,11 @@ SELECT └──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWWRFC \{#cutToFirstSignificantSubdomainWithWWWRFC\} +## cutToFirstSignificantSubdomainWithWWWRFC \{#cutURLParameter\} -Добавлено в версии: v22.10 +Появилась в: v22.10 -Возвращает часть доменного имени, включающую поддомены верхнего уровня вплоть до «первого значимого поддомена», без удаления `www`. Аналогично [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Возвращает часть доменного имени, включающую поддомены верхнего уровня вплоть до «первого значимого поддомена», без удаления `www`. Аналогична [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -470,11 +532,11 @@ cutToFirstSignificantSubdomainWithWWWRFC(url) **Аргументы** -* `url` — URL или строка с доменным именем для обработки в соответствии с RFC 3986. +* `url` — строка с URL-адресом или доменным именем для обработки в соответствии с RFC 3986. **Возвращаемое значение** -Возвращает часть доменного имени, включающую все старшие поддомены вплоть до первого значимого поддомена (с `www`, если он есть); в противном случае возвращает пустую строку типа [`String`](/sql-reference/data-types/string). +Возвращает часть домена, которая включает верхние поддомены до первого значимого поддомена (с «www», если возможно), в противном случае возвращает пустую строку [`String`](/sql-reference/data-types/string). **Примеры** @@ -492,12 +554,12 @@ SELECT └───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## cutURLParameter \{#cutURLParameter\} +## cutURLParameter \{#cutWWW\} -Введена в версии: v1.1 +Впервые появилась в версии: v1.1 Удаляет параметр `name` из URL, если он присутствует. -Эта функция не кодирует и не декодирует символы в именах параметров, например `Client ID` и `Client%20ID` рассматриваются как разные имена параметров. +Эта функция не кодирует и не декодирует символы в именах параметров, например, `Client ID` и `Client%20ID` рассматриваются как разные имена параметров. **Синтаксис** @@ -512,7 +574,7 @@ cutURLParameter(url, name) **Возвращаемое значение** -URL, из которого удалён параметр URL с именем `name`. [`String`](/sql-reference/data-types/string) +URL, из которого удалён параметр `name`. [`String`](/sql-reference/data-types/string) **Примеры** @@ -520,8 +582,8 @@ URL, из которого удалён параметр URL с именем `na ```sql title=Query SELECT - cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', 'a') AS url_без_a, - cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', ['c', 'e']) AS url_без_c_и_e; + cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', 'a') AS url_without_a, + cutURLParameter('http://bigmir.net/?a=b&c=d&e=f#g', ['c', 'e']) AS url_without_c_and_e; ``` ```response title=Response @@ -530,11 +592,11 @@ SELECT └──────────────────────────────┴──────────────────────────┘ ``` -## cutWWW \{#cutWWW\} +## cutWWW \{#decodeURLComponent\} -Добавлена в версии: v1.1 +Добавлен в версии v1.1 -Удаляет начальный `www.`, если он присутствует, из доменного имени URL-адреса. +Удаляет начальное `www.` из доменного имени URL-адреса, если оно присутствует. **Синтаксис** @@ -548,7 +610,7 @@ cutWWW(url) **Возвращаемое значение** -Возвращает URL, в домене которого удалён начальный префикс `www.`. [`String`](/sql-reference/data-types/string) +Возвращает URL с удалённым начальным `www.` в домене. [`String`](/sql-reference/data-types/string) **Примеры** @@ -564,11 +626,11 @@ SELECT cutWWW('http://www.example.com/path?query=value#fragment'); └────────────────────────────────────────────────────────────┘ ``` -## decodeURLComponent \{#decodeURLComponent\} +## decodeURLComponent \{#decodeURLFormComponent\} -Появилась в версии: v1.1 +Добавлено в версии v1.1 -Принимает URL-кодированную строку на вход и декодирует её обратно в исходный, человекочитаемый вид. +Принимает URL-кодированную строку на вход и декодирует её в исходное, человекочитаемое представление. **Синтаксис** @@ -598,11 +660,11 @@ SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS Decod └────────────────────────────────────────┘ ``` -## decodeURLFormComponent \{#decodeURLFormComponent\} +## decodeURLFormComponent \{#domain\} -Добавлено в версии: v1.1 +Впервые добавлена в v1.1 -Декодирует строки в URL-кодировке с использованием правил кодирования веб-форм ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html)), при которых знаки `+` преобразуются в пробелы, а символы в percent-кодировке декодируются. +Декодирует URL-кодированные строки по правилам кодирования веб-форм ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html)), при которых знаки `+` преобразуются в пробелы, а процент-кодированные символы декодируются. **Синтаксис** @@ -612,11 +674,11 @@ decodeURLFormComponent(url) **Аргументы** -* `url` — URL. [`String`](/sql-reference/data-types/string) +* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает декодированный URL. [`String`](/sql-reference/data-types/string) +Возвращает декодированный URL-адрес. [`String`](/sql-reference/data-types/string) **Примеры** @@ -632,9 +694,9 @@ SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') A └───────────────────────────────────────────┘ ``` -## domain \{#domain\} +## domain \{#domainRFC\} -Появилась в версии v1.1 +Добавлена в версии v1.1 Извлекает имя хоста из URL-адреса. @@ -668,12 +730,12 @@ SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────┘ ``` -## domainRFC \{#domainRFC\} +## domainRFC \{#domainWithoutWWW\} -Добавлена в версии: v22.10 +Введена в версии v22.10 Извлекает имя хоста из URL. -Аналогична [`domain`](#domain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Аналогична функции [`domain`](#domain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -687,7 +749,7 @@ domainRFC(url) **Возвращаемое значение** -Возвращает имя хоста, если входная строка может быть разобрана как URL, в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает имя хоста, если входную строку удаётся интерпретировать как URL, в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -705,11 +767,11 @@ SELECT └───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘ ``` -## domainWithoutWWW \{#domainWithoutWWW\} +## domainWithoutWWW \{#domainWithoutWWWRFC\} -Введена в версии: v1.1 +Появилась в версии: v1.1 -Возвращает домен из URL без ведущего `www.`, если он присутствует. +Возвращает домен URL-адреса без ведущего `www.`, если он присутствует. **Синтаксис** @@ -719,11 +781,11 @@ domainWithoutWWW(url) **Аргументы** -* `url` — URL. [`String`](/sql-reference/data-types/string) +* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает имя домена, если входная строка может быть интерпретирована как URL (без начального `www.`), в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает имя домена, если входная строка может быть интерпретирована как URL-адрес (без ведущего `www.`), в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -739,11 +801,11 @@ SELECT domainWithoutWWW('http://paul@www.example.com:80/'); └─────────────────────────────────────────────────────┘ ``` -## domainWithoutWWWRFC \{#domainWithoutWWWRFC\} +## domainWithoutWWWRFC \{#encodeURLComponent\} Добавлена в: v1.1 -Возвращает домен без начального `www.`, если он присутствует. Аналогична [`domainWithoutWWW`](#domainWithoutWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Возвращает домен без начального `www.`, если оно присутствует. Аналогична [`domainWithoutWWW`](#domainWithoutWWW), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -753,11 +815,11 @@ domainWithoutWWWRFC(url) **Аргументы** -* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) +* `url` — URL. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает доменное имя, если входная строка может быть интерпретирована как URL-адрес (без ведущего `www.`), в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает имя домена, если входную строку можно интерпретировать как URL (без начального `www.`), в противном случае — пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -775,11 +837,11 @@ SELECT └─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## encodeURLComponent \{#encodeURLComponent\} +## encodeURLComponent \{#encodeURLFormComponent\} -Появилась в: v22.3 +Введена в версии: v22.3 -Принимает обычную строку и преобразует её в URL-кодированный (процентное кодирование) формат, в котором специальные символы заменяются их процентно закодированными эквивалентами. +Принимает обычную строку и преобразует её в URL-кодированный формат (percent-encoding), в котором специальные символы заменяются их процентно-кодированными эквивалентами. **Синтаксис** @@ -809,11 +871,11 @@ SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedUR └──────────────────────────────────────────────────────────┘ ``` -## encodeURLFormComponent \{#encodeURLFormComponent\} +## encodeURLFormComponent \{#extractURLParameter\} -Добавлена в версии: v22.3 +Добавлена в: v22.3 -Кодирует строки по правилам кодирования веб-форм ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html)), при которых пробелы преобразуются в символ «+», а специальные символы представляются в виде percent-encoding. +Кодирует строки по правилам кодирования данных HTML-форм ([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html)), при которых пробелы заменяются на символ «+», а специальные символы кодируются с использованием процентного кодирования. **Синтаксис** @@ -823,11 +885,11 @@ encodeURLFormComponent(url) **Аргументы** -* `url` — URL. [`String`](/sql-reference/data-types/string) +* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает закодированный URL. [`String`](/sql-reference/data-types/string) +Возвращает закодированный URL-адрес. [`String`](/sql-reference/data-types/string) **Примеры** @@ -843,13 +905,13 @@ SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS En └───────────────────────────────────────────────────────────┘ ``` -## extractURLParameter \{#extractURLParameter\} +## extractURLParameter \{#extractURLParameterNames\} -Появилась в версии: v1.1 +Введена в версии: v1.1 -Возвращает значение параметра `name` в URL, если он присутствует, в противном случае возвращается пустая строка. -Если в URL несколько параметров с таким именем, возвращается первое вхождение. -Функция предполагает, что URL в аргументе `url` закодирован тем же способом, что и значение аргумента `name`. +Возвращает значение параметра `name` в URL, если он присутствует; в противном случае возвращается пустая строка. +Если существует несколько параметров с этим именем, возвращается первое вхождение. +Функция предполагает, что значение параметра в аргументе `url` закодировано тем же способом, что и аргумент `name`. **Синтаксис** @@ -880,11 +942,11 @@ SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'p └──────────────────────────┘ ``` -## extractURLParameterNames \{#extractURLParameterNames\} +## extractURLParameterNames \{#extractURLParameters\} -Добавлено в: v1.1 +Появилась в версии: v1.1 -Возвращает массив строк с именами параметров URL. +Возвращает массив строк, содержащий имена параметров URL. Значения не декодируются. **Синтаксис** @@ -899,7 +961,7 @@ extractURLParameterNames(url) **Возвращаемое значение** -Возвращает массив строк с именами параметров URL. [`Array(String)`](/sql-reference/data-types/array) +Возвращает массив строк — имён параметров URL. [`Array(String)`](/sql-reference/data-types/array) **Примеры** @@ -915,11 +977,11 @@ SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2 └──────────────────────────┘ ``` -## extractURLParameters \{#extractURLParameters\} +## extractURLParameters \{#firstSignificantSubdomain\} -Добавлена в версии v1.1 +Появилась в версии: v1.1 -Возвращает массив строк `name=value`, соответствующих параметрам URL-адреса. +Возвращает массив строк вида `name=value`, соответствующих URL-параметрам. Значения не декодируются. **Синтаксис** @@ -934,7 +996,7 @@ extractURLParameters(url) **Возвращаемое значение** -Возвращает массив строк вида `name=value`, соответствующих параметрам URL. [`Array(String)`](/sql-reference/data-types/array) +Возвращает массив строк формата `name=value`, соответствующих параметрам URL. [`Array(String)`](/sql-reference/data-types/array) **Примеры** @@ -950,18 +1012,18 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); └───────────────────────────────────┘ ``` -## firstSignificantSubdomain \{#firstSignificantSubdomain\} +## firstSignificantSubdomain \{#firstSignificantSubdomainCustom\} -Добавлена в версии: v +Появилась в версии: v1.1 Возвращает «первый значимый поддомен». -Первым значимым поддоменом считается домен второго уровня, если он равен 'com', 'net', 'org' или 'co'. +Первым значимым поддоменом является домен второго уровня, если это 'com', 'net', 'org' или 'co'. В противном случае это домен третьего уровня. -Например, firstSignificantSubdomain('[https://news.clickhouse.com/](https://news.clickhouse.com/)') = 'clickhouse', firstSignificantSubdomain('[https://news.clickhouse.com.tr/](https://news.clickhouse.com.tr/)') = 'clickhouse'. +Например, firstSignificantSubdomain('https://news.clickhouse.com/') = 'clickhouse', firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'. -Список «незначимых» доменов второго уровня и другие детали реализации могут измениться в будущем. +Список «незначительных» доменов второго уровня и другие детали реализации могут измениться в будущем. **Синтаксис** @@ -970,7 +1032,7 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); **Аргументы** -* Нет. +* Отсутствуют. **Возвращаемое значение** @@ -985,9 +1047,75 @@ SELECT firstSignificantSubdomain('https://news.clickhouse.com/') ```response title=Response ``` -## firstSignificantSubdomainRFC \{#firstSignificantSubdomainRFC\} +## firstSignificantSubdomainCustom \{#firstSignificantSubdomainCustomRFC\} + +Введена в версии v21.1 + +Возвращает первый значимый поддомен URL на основе пользовательского списка TLD (Top-Level Domain). Имя пользовательского списка TLD соответствует конфигурации, которая определяет, какие суффиксы доменов следует считать доменами верхнего уровня. Это полезно для нестандартных иерархий доменов верхнего уровня. Функция использует упрощённый алгоритм разбора URL, который предполагает, что протокол и всё следующее за ним уже удалены. + +**Синтаксис** + +```sql +firstSignificantSubdomainCustom(url, tld_list_name) +``` + +**Аргументы** + +* `url` — URL-адрес, из которого нужно извлечь поддомен. [`String`](/sql-reference/data-types/string) +* `tld_list_name` — имя настраиваемого списка TLD из конфигурации. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает первый значимый поддомен. [`String`](/sql-reference/data-types/string) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainCustomRFC \{#firstSignificantSubdomainRFC\} -Появилась в версии: v +Добавлена в версии v22.10 + +Похожа на `firstSignificantSubdomainCustom`, но использует разбор URL в соответствии с RFC 3986 вместо упрощённого алгоритма. + +**Синтаксис** + +```sql +firstSignificantSubdomainCustomRFC(url, tld_list_name) +``` + +**Аргументы** + +* `url` — URL-адрес, из которого извлекается поддомен. [`String`](/sql-reference/data-types/string) +* `tld_list_name` — имя пользовательского списка TLD из конфигурации. [`String`](/sql-reference/data-types/string) + +**Возвращаемое значение** + +Возвращает первый значимый поддомен. [`String`](/sql-reference/data-types/string) + +**Примеры** + +**Базовое использование** + +```sql title=Query +SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainRFC \{#fragment\} + +Введена в версии: v22.10 Возвращает «первый значимый поддомен» в соответствии с RFC 1034. @@ -1004,9 +1132,9 @@ SELECT firstSignificantSubdomain('https://news.clickhouse.com/') **Примеры** -## fragment \{#fragment\} +## fragment \{#netloc\} -Добавлена в версии: v1.1 +Добавлено в версии v1.1 Возвращает идентификатор фрагмента без начального символа `#`. @@ -1038,9 +1166,9 @@ SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1 └───────────────────────────────┘ ``` -## netloc \{#netloc\} +## netloc \{#path\} -Введена в версии v20.5 +Добавлено в: v20.5 Извлекает сетевую часть (`username:password@host:port`) из URL. @@ -1056,7 +1184,7 @@ netloc(url) **Возвращаемое значение** -Возвращает `username:password@host:port` из переданного URL. [`String`](/sql-reference/data-types/string) +Возвращает `username:password@host:port` из указанного URL. [`String`](/sql-reference/data-types/string) **Примеры** @@ -1072,11 +1200,11 @@ SELECT netloc('http://paul@www.example.com:80/'); └──────────────────────────┘ ``` -## path \{#path\} +## path \{#pathFull\} -Добавлено в: v1.1 +Введено в версии: v1.1 -Возвращает путь из URL-адреса без строки запроса. +Возвращает путь URL-адреса без строки запроса. **Синтаксис** @@ -1106,9 +1234,9 @@ SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/? └──────────────────────────────────────────────────────────────────────────────────────┘ ``` -## pathFull \{#pathFull\} +## pathFull \{#port\} -Добавлено в версии: v1.1 +Добавлена в версии: v1.1 То же, что и [`path`](#path), но включает строку запроса и фрагмент URL-адреса. @@ -1140,11 +1268,11 @@ SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functio └──────────────────────────────────────────────────────────────────┘ ``` -## port \{#port\} +## port \{#portRFC\} -Добавлена в версии: v20.5 +Введена в версии: v20.5 -Возвращает порт URL-адреса или `default_port`, если URL не содержит указания порта или не может быть разобран. +Возвращает порт URL-адреса или `default_port`, если в URL-адресе порт не указан или URL-адрес не удаётся разобрать. **Синтаксис** @@ -1155,11 +1283,11 @@ port(url[, default_port]) **Аргументы** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `default_port` — Необязательный параметр. Номер порта по умолчанию, который будет возвращён. Если не задан, по умолчанию `0`. [`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — Необязательный параметр. Номер порта по умолчанию, который будет возвращён. По умолчанию `0`. [`UInt16`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает порт из URL или порт по умолчанию, если в URL порт не указан или в случае ошибки валидации. [`UInt16`](/sql-reference/data-types/int-uint) +Возвращает порт URL или порт по умолчанию, если порт не указан в URL либо в случае ошибки валидации. [`UInt16`](/sql-reference/data-types/int-uint) **Примеры** @@ -1175,12 +1303,12 @@ SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/do └──────────────────────────────────────────┴──────────────────────────────────────────┘ ``` -## portRFC \{#portRFC\} +## portRFC \{#protocol\} -Добавлена в версии: v22.10 +Введена в версии v22.10 -Возвращает порт или `default_port`, если URL не содержит порт или его невозможно разобрать. -Аналогична функции [`port`](#port), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Возвращает порт или `default_port`, если URL не содержит порта или не может быть разобран. +Аналогична [`port`](#port), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -1191,11 +1319,11 @@ portRFC(url[, default_port]) **Аргументы** * `url` — URL. [`String`](/sql-reference/data-types/string) -* `default_port` — необязательный параметр. Номер порта по умолчанию, который будет возвращён. По умолчанию `0`. [`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — необязательный параметр. Номер порта, возвращаемый по умолчанию. По умолчанию — `0`. [`UInt16`](/sql-reference/data-types/int-uint) **Возвращаемое значение** -Возвращает порт или порт по умолчанию, если в URL не указан порт или при ошибке валидации. [`UInt16`](/sql-reference/data-types/int-uint) +Возвращает порт или порт по умолчанию, если в URL не указан порт или в случае ошибки валидации. [`UInt16`](/sql-reference/data-types/int-uint) **Примеры** @@ -1211,13 +1339,13 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass └──────────────────────────┴──────────────────────────┘ ``` -## protocol \{#protocol\} +## protocol \{#queryString\} -Добавлена в версии: v1.1 +Добавлено в версии: v1.1 -Извлекает протокол из URL-адреса. +Извлекает протокол из URL. -Примеры типичных возвращаемых значений: http, https, ftp, mailto, tel, magnet. +Примеры типичных значений, возвращаемых функцией: http, https, ftp, mailto, tel, magnet. **Синтаксис** @@ -1247,11 +1375,11 @@ SELECT protocol('https://clickhouse.com/'); └─────────────────────────────────────┘ ``` -## queryString \{#queryString\} +## queryString \{#queryStringAndFragment\} -Добавлена в версии: v1.1 +Добавлено в: v1.1 -Возвращает строку запроса в URL без начального вопросительного знака, символа `#` и всего, что следует после `#`. +Возвращает строку запроса URL без начального знака вопроса, `#` и всего, что следует после `#`. **Синтаксис** @@ -1261,11 +1389,11 @@ queryString(url) **Аргументы** -* `url` — URL. [`String`](/sql-reference/data-types/string) +* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает строку запроса из URL без начального знака вопроса и фрагмента. [`String`](/sql-reference/data-types/string) +Возвращает строку запроса из URL-адреса без начального знака вопроса и фрагмента. [`String`](/sql-reference/data-types/string) **Примеры** @@ -1281,11 +1409,11 @@ SELECT queryString('https://clickhouse.com/docs?query=value¶m=123#section'); └──────────────────────────┘ ``` -## queryStringAndFragment \{#queryStringAndFragment\} +## queryStringAndFragment \{#topLevelDomain\} -Впервые представлена в: v1.1 +Добавлена в версии: v1.1 -Возвращает строку запроса и идентификатор фрагмента URL-адреса. +Возвращает строку запроса и идентификатор фрагмента URL. **Синтаксис** @@ -1315,14 +1443,14 @@ SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value¶m=123 └───────────────────────────────┘ ``` -## topLevelDomain \{#topLevelDomain\} +## topLevelDomain \{#topLevelDomainRFC\} -Добавлено в версии: v1.1 +Добавлена в: v1.1 -Извлекает домен верхнего уровня из URL. +Извлекает домен верхнего уровня из URL-адреса. :::note -URL можно указывать с протоколом или без него. +URL-адрес может быть указан с протоколом или без него. Например: ```text @@ -1341,11 +1469,11 @@ topLevelDomain(url) **Аргументы** -* `url` — URL-адрес. [`String`](/sql-reference/data-types/string) +* `url` — URL. [`String`](/sql-reference/data-types/string) **Возвращаемое значение** -Возвращает доменное имя, если входную строку можно интерпретировать как URL-адрес. В противном случае — пустую строку. [`String`](/sql-reference/data-types/string) +Возвращает доменное имя, если входная строка может быть интерпретирована как URL. В противном случае — пустую строку. [`String`](/sql-reference/data-types/string) **Примеры** @@ -1361,12 +1489,12 @@ SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────────────────┘ ``` -## topLevelDomainRFC \{#topLevelDomainRFC\} +## topLevelDomainRFC -Добавлена в версии: v22.10 +Введена в: v22.10 Извлекает домен верхнего уровня из URL-адреса. -Аналогична [`topLevelDomain`](#topLevelDomain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Аналогична функции [`topLevelDomain`](#topLevelDomain), но соответствует [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Синтаксис** @@ -1380,7 +1508,7 @@ topLevelDomainRFC(url) **Возвращаемое значение** -Доменное имя, если входная строка может быть интерпретирована как URL-адрес. В противном случае — пустая строка. [`String`](/sql-reference/data-types/string) +Имя домена, если входная строка может быть интерпретирована как URL-адрес. В противном случае — пустая строка. [`String`](/sql-reference/data-types/string) **Примеры** diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md index ed9fd911411..d81ff72b121 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md @@ -12,7 +12,7 @@ doc_type: 'reference' Создает новую базу данных. ```sql -CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [COMMENT 'Comment'] +CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment'] ``` @@ -61,3 +61,36 @@ SELECT name, comment FROM system.databases WHERE name = 'db_comment'; │ db_comment │ The temporary database │ └────────────┴────────────────────────┘ ``` + + +### SETTINGS \{#settings\} + +#### lazy_load_tables \{#lazy-load-tables\} + +При включении таблицы не загружаются полностью при запуске базы данных. Вместо этого для каждой таблицы создаётся лёгкий прокси, а реальный движок таблицы материализуется при первом обращении к ней. Это сокращает время запуска и потребление памяти для баз данных с большим количеством таблиц, из которых активно запрашивается только часть. + +```sql +CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1; +``` + +Применяется к движкам баз данных, которые хранят метаданные таблиц на диске (например, `Atomic`, `Ordinary`). VIEW, materialized views, словари и таблицы, основанные на табличных функциях, всегда загружаются немедленно, независимо от этого SETTING. + +**Когда использовать:** Этот SETTING полезен для баз данных с большим числом таблиц (сотни или тысячи), из которых фактически используется только подмножество. Он сокращает время запуска сервера и потребление памяти, откладывая создание объектов движка таблиц, сканирование частей и инициализацию фоновых потоков до первого обращения. + +**Влияние на `system.tables`:** + +* До обращения к таблице `system.tables` показывает ее движок как `TableProxy`. После первого обращения отображается реальное имя движка (например, `MergeTree`). +* Столбцы вроде `total_rows` и `total_bytes` возвращают `NULL` для незагруженных таблиц, поскольку реальное хранилище еще не создано. + +**Взаимодействие с DDL-операциями:** + +* `SELECT`, `INSERT`, `ALTER`, `DROP` прозрачно инициируют загрузку реального движка таблицы при первом использовании. +* `RENAME TABLE` работает без инициирования загрузки. +* После того как таблица загружена, она остается загруженной на протяжении всего времени жизни серверного процесса. + +**Ограничения:** + +* Инструменты мониторинга, которые полагаются на метаданные `system.tables` (например, `total_rows`, `engine`), могут видеть неполную информацию для незагруженных таблиц. +* Первый запрос к незагруженной таблице имеет единовременные накладные расходы на загрузку (разбор сохраненного выражения `CREATE TABLE` и инициализацию движка). + +Значение по умолчанию: `0` (отключено). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md deleted file mode 100644 index 2cb7b9b7e26..00000000000 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -description: 'Документация по словарю' -sidebar_label: 'DICTIONARY' -sidebar_position: 38 -slug: /sql-reference/statements/create/dictionary -title: 'CREATE DICTIONARY' -doc_type: 'reference' ---- - -Создает новый [словарь](../../../sql-reference/dictionaries/index.md) с указанными [структурой](../../../sql-reference/dictionaries/index.md#dictionary-key-and-fields), [источником](../../../sql-reference/dictionaries/index.md#dictionary-sources), [схемой размещения](/sql-reference/dictionaries#storing-dictionaries-in-memory) и [временем жизни](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime). - -## Синтаксис \{#syntax\} - -```sql -CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] -( - key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID], - key2 type2 [DEFAULT|EXPRESSION expr2], - attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], - attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] -) -PRIMARY KEY key1, key2 -SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) -LAYOUT(LAYOUT_NAME([param_name param_value])) -LIFETIME({MIN min_val MAX max_val | max_val}) -SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) -COMMENT 'Comment' -``` - -Структура словаря включает атрибуты. Атрибуты словаря задаются так же, как столбцы таблицы. Единственным обязательным свойством атрибута является его тип, все остальные свойства могут иметь значения по умолчанию. - -Конструкция `ON CLUSTER` позволяет создавать словарь на кластере, см. [Distributed DDL](../../../sql-reference/distributed-ddl.md). - -В зависимости от [layout](/sql-reference/dictionaries#storing-dictionaries-in-memory) словаря один или несколько атрибутов могут использоваться в качестве ключей словаря. - -## ИСТОЧНИК \{#source\} - -Источником словаря может быть: - -* таблица в текущем сервисе ClickHouse -* таблица в удалённом сервисе ClickHouse -* файл, доступный по HTTP(S) -* другая база данных - -### Создайте словарь из таблицы в текущем сервисе ClickHouse \{#create-a-dictionary-from-a-table-in-the-current-clickhouse-service\} - -Входная таблица `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -Создание справочника: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -Выведите словарь: - -```sql -SHOW CREATE DICTIONARY id_value_dictionary; -``` - -```response -CREATE DICTIONARY default.id_value_dictionary -( - `id` UInt64, - `value` String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LIFETIME(MIN 0 MAX 1000) -LAYOUT(FLAT()) -``` - -:::note -При использовании SQL-консоли в [ClickHouse Cloud](https://clickhouse.com) при создании словаря необходимо указать пользователя (`default` или любого другого пользователя с ролью `default_role`) и пароль. -::: - -```sql -CREATE USER IF NOT EXISTS clickhouse_admin -IDENTIFIED WITH sha256_password BY 'passworD43$x'; - -GRANT default_role TO clickhouse_admin; - -CREATE DATABASE foo_db; - -CREATE TABLE foo_db.source_table ( - id UInt64, - value String -) ENGINE = MergeTree -PRIMARY KEY id; - -CREATE DICTIONARY foo_db.id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table' USER 'clickhouse_admin' PASSWORD 'passworD43$x' DB 'foo_db' )) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000); -``` - -### Создание словаря из таблицы в удалённом сервисе ClickHouse \{#create-a-dictionary-from-a-table-in-a-remote-clickhouse-service\} - -Входная таблица (в удалённом сервисе ClickHouse) `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -Создание словаря: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(HOST 'HOSTNAME' PORT 9000 USER 'default' PASSWORD 'PASSWORD' TABLE 'source_table' DB 'default')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -### Создать словарь из файла, доступного по HTTP(S) \{#create-a-dictionary-from-a-file-available-by-https\} - -```sql -CREATE DICTIONARY default.taxi_zone_dictionary -( - `LocationID` UInt16 DEFAULT 0, - `Borough` String, - `Zone` String, - `service_zone` String -) -PRIMARY KEY LocationID -SOURCE(HTTP(URL 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv' FORMAT 'CSVWithNames')) -LIFETIME(MIN 0 MAX 0) -LAYOUT(HASHED()) -``` - -### Создание словаря на основе другой базы данных \{#create-a-dictionary-from-another-database\} - -Подробности см. в разделе [Источники словарей](/sql-reference/dictionaries#dbms). - -**См. также** - -* Дополнительные сведения см. в разделе [Словари](../../../sql-reference/dictionaries/index.md). -* [system.dictionaries](../../../operations/system-tables/dictionaries.md) — эта таблица содержит информацию о [словахрях](../../../sql-reference/dictionaries/index.md). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md similarity index 100% rename from i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md rename to i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md new file mode 100644 index 00000000000..c165efcf63d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md @@ -0,0 +1,179 @@ +--- +description: 'Конфигурация ключа и атрибутов словаря' +sidebar_label: 'Атрибуты' +sidebar_position: 2 +slug: /sql-reference/statements/create/dictionary/attributes +title: 'Атрибуты словаря' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + + + +Секция `structure` описывает ключ словаря и поля, доступные для запросов. + +Описание в формате XML: + +```xml + + + + Id + + + + + + + ... + + + +``` + +Атрибуты задаются в элементах: + +* `` — ключевой столбец +* `` — столбец данных: атрибутов может быть несколько. + +DDL-запрос: + +```sql +CREATE DICTIONARY dict_name ( + Id UInt64, + -- attributes +) +PRIMARY KEY Id +... +``` + +Атрибуты описываются в теле запроса: + +* `PRIMARY KEY` — ключевой столбец +* `AttrName AttrType` — столбец данных. Атрибутов может быть несколько. + + +## Ключ \{#key\} + +ClickHouse поддерживает следующие типы ключей: + +- Числовой ключ. `UInt64`. Задаётся в теге `` или с помощью ключевого слова `PRIMARY KEY`. +- Составной ключ. Набор значений разных типов. Задаётся в теге `` или с помощью ключевого слова `PRIMARY KEY`. + +XML-структура может содержать либо ``, либо ``. DDL-запрос должен содержать ровно один `PRIMARY KEY`. + +:::note +Нельзя описывать ключ как атрибут. +::: + +### Числовой ключ \{#numeric-key\} + +Тип: `UInt64`. + +Пример конфигурации: + +```xml + + Id + +``` + +Поля конфигурации: + +* `name` – имя столбца, содержащего ключи. + +Для DDL-запроса: + +```sql +CREATE DICTIONARY ( + Id UInt64, + ... +) +PRIMARY KEY Id +... +``` + +* `PRIMARY KEY` – Имя столбца, содержащего ключи. + + +### Составной ключ \{#composite-key\} + +Ключ может быть `tuple` из полей любых типов. [layout](./layouts/) в этом случае должен быть `complex_key_hashed` или `complex_key_cache`. + +:::tip +Составной ключ может состоять из одного элемента. Например, это позволяет использовать строку в качестве ключа. +::: + +Структура ключа задаётся в элементе ``. Поля ключа указываются в том же формате, что и [атрибуты](#dictionary-key-and-fields) словаря. Пример: + +```xml + + + + field1 + String + + + field2 + UInt32 + + ... + +... +``` + +или + +```sql +CREATE DICTIONARY ( + field1 String, + field2 UInt32 + ... +) +PRIMARY KEY field1, field2 +... +``` + +В запросе к функции `dictGet*` в качестве ключа передается кортеж. Пример: `dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))`. + + +## Атрибуты \{#attributes\} + +Пример конфигурации: + +```xml + + ... + + Name + ClickHouseDataType + + rand64() + true + true + true + + +``` + +или + +```sql +CREATE DICTIONARY somename ( + Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID +) +``` + +Параметры конфигурации: + + +| Tag | Description | Required | +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `name` | Имя столбца. | Yes | +| `type` | Тип данных ClickHouse: [UInt8](../../../data-types/int-uint.md), [UInt16](../../../data-types/int-uint.md), [UInt32](../../../data-types/int-uint.md), [UInt64](../../../data-types/int-uint.md), [Int8](../../../data-types/int-uint.md), [Int16](../../../data-types/int-uint.md), [Int32](../../../data-types/int-uint.md), [Int64](../../../data-types/int-uint.md), [Float32](../../../data-types/float.md), [Float64](../../../data-types/float.md), [UUID](../../../data-types/uuid.md), [Decimal32](../../../data-types/decimal.md), [Decimal64](../../../data-types/decimal.md), [Decimal128](../../../data-types/decimal.md), [Decimal256](../../../data-types/decimal.md),[Date](../../../data-types/date.md), [Date32](../../../data-types/date32.md), [DateTime](../../../data-types/datetime.md), [DateTime64](../../../data-types/datetime64.md), [String](../../../data-types/string.md), [Array](../../../data-types/array.md).
    ClickHouse пытается привести значение из словаря к указанному типу данных. Например, для MySQL поле в исходной таблице MySQL может иметь тип `TEXT`, `VARCHAR` или `BLOB`, но в ClickHouse оно может быть загружено как `String`.
    [Nullable](../../../data-types/nullable.md) в настоящее время поддерживается для словарей [Flat](./layouts/flat), [Hashed](./layouts/hashed), [ComplexKeyHashed](./layouts/hashed#complex_key_hashed), [Direct](./layouts/direct), [ComplexKeyDirect](./layouts/direct#complex_key_direct), [RangeHashed](./layouts/range-hashed), Polygon, [Cache](./layouts/cache), [ComplexKeyCache](./layouts/cache#complex_key_cache), [SSDCache](./layouts/ssd-cache), [SSDComplexKeyCache](./layouts/ssd-cache#complex_key_ssd_cache). В словарях [IPTrie](./layouts/ip-trie) типы `Nullable` не поддерживаются. | Yes | +| `null_value` | Значение по умолчанию для несуществующего элемента.
    В примере это пустая строка. Значение [NULL](../../../syntax.md#null) может использоваться только для типов `Nullable` (см. предыдущую строку с описанием типов). | Yes | +| `expression` | [Выражение](../../../syntax.md#expressions), которое ClickHouse выполняет над значением.
    Выражением может быть имя столбца в удалённой SQL базе данных. Таким образом, вы можете использовать его для создания псевдонима для удалённого столбца.

    Значение по умолчанию: выражение отсутствует. | No | +| `hierarchical` | Если `true`, атрибут содержит значение родительского ключа для текущего ключа. См. [Иерархические словари](./layouts/hierarchical).

    Значение по умолчанию: `false`. | No | +| `injective` | Флаг, который показывает, является ли отображение `id -> attribute` [инъективным](https://en.wikipedia.org/wiki/Injective_function).
    Если `true`, ClickHouse может автоматически размещать запросы к инъективным словарям сразу после предложения `GROUP BY`. Обычно это значительно уменьшает количество таких запросов.

    Значение по умолчанию: `false`. | No | +| `is_object_id` | Флаг, который показывает, выполняется ли запрос для документа MongoDB по `ObjectID`.

    Значение по умолчанию: `false`. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md new file mode 100644 index 00000000000..b2c79bc17f2 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md @@ -0,0 +1,57 @@ +--- +description: 'Встроенные словари геобазы в ClickHouse' +sidebar_label: 'Встроенные словари' +sidebar_position: 6 +slug: /sql-reference/statements/create/dictionary/embedded +title: 'Встроенные словари (геобаза)' +doc_type: 'reference' +--- + +import SelfManaged from '@site/i18n/ru/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; + + + +ClickHouse содержит встроенный механизм для работы с геобазой. + +Это позволяет вам: + +* Использовать ID региона, чтобы получить его имя на нужном языке. +* Использовать ID региона, чтобы получить ID города, области, федерального округа, страны или континента. +* Проверять, входит ли регион в другой регион. +* Получать цепочку родительских регионов. + +Все функции поддерживают «транслокальность» — возможность одновременно использовать разные представления принадлежности регионов. Для получения дополнительной информации см. раздел «Функции для работы со словарями веб-аналитики». + +Внутренние словари по умолчанию отключены. +Чтобы включить их, раскомментируйте параметры `path_to_regions_hierarchy_file` и `path_to_regions_names_files` в конфигурационном файле сервера. + +Геобаза загружается из текстовых файлов. + +Поместите файлы `regions_hierarchy*.txt` в директорию `path_to_regions_hierarchy_file`. Этот конфигурационный параметр должен содержать путь к файлу `regions_hierarchy.txt` (иерархия регионов по умолчанию), а остальные файлы (`regions_hierarchy_ua.txt`) должны находиться в той же директории. + +Поместите файлы `regions_names_*.txt` в директорию `path_to_regions_names_files`. + +Вы также можете создать эти файлы самостоятельно. Формат файлов следующий: + +`regions_hierarchy*.txt`: TabSeparated (без заголовка), столбцы: + +* ID региона (`UInt32`) +* ID родительского региона (`UInt32`) +* тип региона (`UInt8`): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - регион, 6 - город; другие типы не имеют значений +* население (`UInt32`) — необязательный столбец + +`regions_names_*.txt`: TabSeparated (без заголовка), столбцы: + +* ID региона (`UInt32`) +* имя региона (`String`) — не может содержать символы табуляции или переводы строк, даже в экранированном виде. + +Для хранения в RAM используется плоский массив. По этой причине ID не должны превышать миллион. + +Словари могут обновляться без перезапуска сервера. Однако набор доступных словарей не обновляется. +Для обновлений проверяется время модификации файлов. Если файл изменился, словарь обновляется. +Интервал проверки изменений настраивается параметром `builtin_dictionaries_reload_interval`. +Обновление словарей (за исключением загрузки при первом использовании) не блокирует запросы. Во время обновлений запросы используют старые версии словарей. Если при обновлении возникает ошибка, она записывается в лог сервера, а запросы продолжают использовать старую версию словарей. + +Рекомендуется периодически обновлять словари с геобазой. Во время обновления генерируйте новые файлы и записывайте их в отдельное место. Когда всё будет готово, переименуйте их в файлы, используемые сервером. + +Существуют также функции для работы с идентификаторами ОС и поисковыми движками, но их не следует использовать. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md new file mode 100644 index 00000000000..a217f4b7189 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md @@ -0,0 +1,74 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/cache +title: 'структура словаря cache' +sidebar_label: 'cache' +sidebar_position: 6 +description: 'Хранение словаря в кэше фиксированного размера в оперативной памяти.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Тип размещения словаря `cached` хранит словарь в кэше с фиксированным количеством ячеек. +Эти ячейки содержат часто используемые элементы. + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md). + +При обращении к словарю сначала выполняется поиск в кэше. Для каждого блока данных все ключи, которые не найдены в кэше или устарели, запрашиваются из источника с помощью `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`. Полученные данные затем записываются в кэш. + +Если ключи не найдены в словаре, создается задача обновления кэша и добавляется в очередь обновления. Свойства очереди обновления можно контролировать с помощью настроек `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds`, `max_threads_for_updates`. + +Для кэшированных словарей может быть задан срок действия [lifetime](../lifetime.md#refreshing-dictionary-data-using-lifetime) данных в кэше. Если с момента загрузки данных в ячейку прошло больше времени, чем `lifetime`, значение ячейки не используется, и ключ считается просроченным. Ключ запрашивается повторно при следующем обращении. Это поведение можно настроить с помощью параметра `allow_read_expired_keys`. + +Это наименее эффективный из всех способов хранения словарей. Скорость работы кэша сильно зависит от корректных настроек и сценария использования. Словарь типа cache показывает хорошие результаты только при достаточно высоком уровне попаданий в кэш (рекомендуется 99% и выше). Вы можете просмотреть среднее значение hit rate в таблице [system.dictionaries](../../../../operations/system-tables/dictionaries.md). + +Если настройка `allow_read_expired_keys` установлена в 1 (по умолчанию 0), словарь может поддерживать асинхронные обновления. Если клиент запрашивает ключи, и все они находятся в кэше, но некоторые из них просрочены, словарь вернет клиенту просроченные ключи и асинхронно запросит их из источника. + +Чтобы улучшить производительность кэша, используйте подзапрос с `LIMIT` и выносите вызов функции со словарем во внешний запрос. + +Поддерживаются все типы источников. + +Пример настроек: + + + + ```sql + LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) + ``` + + + + ```xml + + + + 1000000000 + + 0 + + 100000 + + 10 + + 60000 + + 4 + + + ``` + + + +
    + +Задайте достаточно большой размер кэша. Для выбора количества ячеек необходимо провести эксперименты: + +1. Установите некоторое значение. +2. Запускайте запросы, пока кэш полностью не заполнится. +3. Оцените потребление памяти с помощью таблицы `system.dictionaries`. +4. Увеличивайте или уменьшайте количество ячеек, пока не будет достигнут требуемый объем потребляемой памяти. + +:::note +Не рекомендуется использовать ClickHouse в качестве источника для этого типа размещения. Поиск в словаре требует случайных точечных чтений, что не соответствует шаблону доступа, под который ClickHouse оптимизирован. +::: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md new file mode 100644 index 00000000000..02f938fc47a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md @@ -0,0 +1,47 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/direct +title: 'раскладка словаря direct' +sidebar_label: 'direct' +sidebar_position: 9 +description: 'Раскладка словаря, которая обращается к источнику данных напрямую, без кэширования.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## direct \{#direct\} + +Словарь не хранится в памяти и при обработке запроса напрямую обращается к источнику. + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md). + +Поддерживаются все типы [источников](../sources/#dictionary-sources), за исключением локальных файлов. + +Пример конфигурации: + + + + +```sql +LAYOUT(DIRECT()) +``` + + + + +```xml + + + +``` + + + + +
    + +## complex_key_direct \{#complex_key_direct\} + +Этот тип хранилища предназначен для использования с составными [ключами](../keys-and-fields.md#dictionary-key-and-fields). Аналогичен типу `direct`. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md new file mode 100644 index 00000000000..a04b08715ef --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md @@ -0,0 +1,48 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/flat +title: 'плоское размещение словаря' +sidebar_label: 'плоский' +sidebar_position: 2 +description: 'Хранение словаря в памяти в виде плоских массивов.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +При использовании макета `flat` словарь полностью хранится в памяти в виде плоских массивов. +Объем используемой памяти пропорционален размеру наибольшего ключа (по занимаемому месту). + +:::tip +Этот тип макета обеспечивает наилучшую производительность среди всех доступных методов хранения словаря. +::: + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md), а значение ограничено `max_array_size` (по умолчанию — 500 000). +Если при создании словаря обнаруживается ключ большего размера, ClickHouse генерирует исключение и не создает словарь. +Начальный размер плоских массивов словаря контролируется настройкой `initial_array_size` (по умолчанию — 1024). + +Поддерживаются все типы источников. +При обновлении словаря данные (из файла или из таблицы) читаются целиком. + +Пример конфигурации: + + + + ```sql + LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) + ``` + + + + ```xml + + + 50000 + 5000000 + + + ``` + + + +
    diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md new file mode 100644 index 00000000000..2ec426d1fc4 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md @@ -0,0 +1,71 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed-array +title: 'типы размещения словаря hashed_array' +sidebar_label: 'hashed_array' +sidebar_position: 4 +description: 'Хранение словаря в памяти с использованием хеш-таблицы и массивов атрибутов.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed_array \{#hashed_array\} + +Словарь полностью хранится в памяти. Каждый атрибут хранится в массиве. Атрибут-ключ хранится в виде хеш-таблицы, где значением является индекс в массиве атрибутов. Словарь может содержать любое количество элементов с любыми идентификаторами. На практике количество ключей может достигать десятков миллионов. + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md). + +Поддерживаются все типы источников. При обновлении данные (из файла или из таблицы) считываются целиком. + +Пример конфигурации: + + + + +```sql +LAYOUT(HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + + +``` + + + + +
    + +## complex_key_hashed_array \{#complex_key_hashed_array\} + +Этот тип хранилища предназначен для использования с составными [ключами](../keys-and-fields.md#dictionary-key-and-fields). Аналогичен [hashed_array](#hashed_array). + +Пример конфигурации: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md new file mode 100644 index 00000000000..d818d6086c3 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md @@ -0,0 +1,186 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed +title: 'типы размещения словаря hashed' +sidebar_label: 'hashed' +sidebar_position: 3 +description: 'Хранение словаря в памяти с помощью хеш-таблиц: hashed, sparse_hashed, complex_key_hashed, complex_key_sparse_hashed' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed \{#hashed\} + +Словарь полностью хранится в памяти в виде хеш-таблицы. Словарь может содержать произвольное количество элементов с любыми идентификаторами. На практике количество ключей может достигать десятков миллионов. + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md). + +Поддерживаются все типы источников. При обновлении данные (из файла или таблицы) считываются целиком. + +Пример конфигурации: + + + + +```sql +LAYOUT(HASHED()) +``` + + + + +```xml + + + +``` + + + + +
    + +Пример конфигурации с настройками: + + + + +```sql +LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + 10 + + + 10000 + + + 0.5 + + +``` + + + + +
    + +## sparse_hashed \{#sparse_hashed\} + +Аналогичен `hashed`, но использует меньше памяти ценой большего расхода CPU. + +Ключ словаря имеет тип [UInt64](../../../data-types/int-uint.md). + +Пример конфигурации: + + + + +```sql +LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +Для этого типа словаря также можно использовать параметр `shards`; для `sparse_hashed` это даже важнее, чем для `hashed`, поскольку `sparse_hashed` работает медленнее. + +## complex_key_hashed \{#complex_key_hashed\} + +Этот тип хранилища используется для составных [ключей](../keys-and-fields.md#dictionary-key-and-fields). По своей работе аналогичен `hashed`. + +Пример конфигурации: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +## complex_key_sparse_hashed \{#complex_key_sparse_hashed\} + +Этот тип хранилища предназначен для использования с составными [ключами](../keys-and-fields.md#dictionary-key-and-fields). Аналогичен [sparse_hashed](#sparse_hashed). + +Пример конфигурации: + + + + +```sql +LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md new file mode 100644 index 00000000000..3dda38661c4 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md @@ -0,0 +1,94 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hierarchical +title: 'Иерархические словари' +sidebar_label: 'Иерархический' +sidebar_position: 10 +description: 'Настройка иерархических словарей с отношениями ключей типа родитель-потомок.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Иерархические словари \{#hierarchical-dictionaries\} + +ClickHouse поддерживает иерархические словари с [числовым ключом](../keys-and-fields.md#numeric-key). + +Рассмотрим следующую иерархическую структуру: + +```text +0 (Common parent) +│ +├── 1 (Russia) +│ │ +│ └── 2 (Moscow) +│ │ +│ └── 3 (Center) +│ +└── 4 (Great Britain) + │ + └── 5 (London) +``` + +Эту иерархию можно представить в виде следующей таблицы словаря. + +| region_id | parent_region | region_name | +| ------------- | ----------------- | --------------- | +| 1 | 0 | Russia | +| 2 | 1 | Moscow | +| 3 | 2 | Center | +| 4 | 0 | Great Britain | +| 5 | 4 | London | + +Эта таблица содержит столбец `parent_region`, в котором хранится ключ ближайшего родителя соответствующего элемента. + +ClickHouse поддерживает иерархическое свойство для атрибутов внешних словарей. Это свойство позволяет настроить иерархический словарь, аналогичный описанному выше. + +Функция [dictGetHierarchy](../../../functions/ext-dict-functions.md#dictGetHierarchy) позволяет получить цепочку родительских элементов. + +Для нашего примера структура словаря может быть следующей: + + + + ```sql + CREATE DICTIONARY regions_dict + ( + region_id UInt64, + parent_region UInt64 DEFAULT 0 HIERARCHICAL, + region_name String DEFAULT '' + ) + PRIMARY KEY region_id + SOURCE(...) + LAYOUT(HASHED()) + LIFETIME(3600); + ``` + + + + ```xml + + + + region_id + + + + parent_region + UInt64 + 0 + true + + + + region_name + String + + + + + + ``` + + + +
    diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md new file mode 100644 index 00000000000..c990e463460 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md @@ -0,0 +1,126 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ip-trie +title: 'Тип размещения словаря ip_trie' +sidebar_label: 'ip_trie' +sidebar_position: 10 +description: 'Храните словарь в виде префиксного дерева (trie) для быстрого поиска по префиксам IP-адресов.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Словарь `ip_trie` предназначен для поиска IP-адресов по сетевому префиксу. +Он хранит IP-диапазоны в CIDR-нотации и позволяет быстро определить, к какому префиксу (например, подсети или диапазону ASN) относится заданный IP-адрес, что делает его идеальным для поисковых операций на основе IP, таких как геолокация или классификация сети. + + + +## Использование словаря дерева регулярных выражений с источником YAMLRegExpTree \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} + + + +Словари дерева регулярных выражений определяются в открытой версии ClickHouse с использованием источника [`YAMLRegExpTree`](../sources/yamlregexptree.md), которому передаётся путь к YAML-файлу с деревом регулярных выражений. + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +... +``` + +Источник словаря [`YAMLRegExpTree`](../sources/yamlregexptree.md) представляет собой структуру дерева регулярных выражений. Например: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +Эта конфигурация состоит из списка узлов дерева регулярных выражений. Каждый узел имеет следующую структуру: + +* **regexp**: регулярное выражение узла. +* **attributes**: список пользовательских атрибутов словаря. В этом примере есть два атрибута: `name` и `version`. Первый узел задаёт оба атрибута. Второй узел задаёт только атрибут `name`. Атрибут `version` задаётся дочерними узлами второго узла. + * Значение атрибута может содержать **обратные ссылки**, ссылающиеся на группы захвата сопоставленного регулярного выражения. В примере значение атрибута `version` в первом узле состоит из обратной ссылки `\1` на группу захвата `(\d+[\.\d]*)` в регулярном выражении. Номера обратных ссылок находятся в диапазоне от 1 до 9 и записываются как `$1` или `\1` (для числа 1). Во время выполнения запроса обратная ссылка заменяется сопоставленной группой захвата. +* **child nodes**: список дочерних узлов узла дерева regexp, каждый из которых имеет свои собственные атрибуты и (потенциально) дочерние узлы. Сопоставление строки выполняется в порядке обхода в глубину. Если строка соответствует узлу regexp, словарь проверяет, соответствует ли она также дочерним узлам этого узла. Если это так, назначаются атрибуты самого глубокого совпавшего узла. Атрибуты дочернего узла переопределяют одноимённые атрибуты родительских узлов. Имя дочерних узлов в YAML-файлах может быть произвольным, например `versions` в приведённом выше примере. + +Словари на основе дерева регулярных выражений допускают доступ только с использованием функций `dictGet`, `dictGetOrDefault` и `dictGetAll`. Например: + +```sql title="Query" +SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); +``` + +```text title="Response" +┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ +│ ('Android','12') │ +└─────────────────────────────────────────────────────────────────┘ +``` + +В этом случае мы сначала сопоставляем регулярное выражение `\d+/tclwebkit(?:\d+[\.\d]*)` со вторым узлом на верхнем уровне. +Затем словарь продолжает просматривать дочерние узлы и обнаруживает, что строка также соответствует `3[12]/tclwebkit`. +В результате значение атрибута `name` равно `Android` (определено на первом уровне), а значение атрибута `version` равно `12` (определено в дочернем узле). + +С помощью сложного конфигурационного файла YAML вы можете использовать словари в виде дерева регулярных выражений в качестве парсера строки user agent. +ClickHouse поддерживает [uap-core](https://github.com/ua-parser/uap-core), и вы можете увидеть, как его использовать, в функциональном тесте [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) + + +### Сбор значений атрибутов \{#collecting-attribute-values\} + +Иногда бывает полезно возвращать значения из нескольких регулярных выражений, которые сработали, а не только значение листового узла. В таких случаях можно использовать специализированную функцию [`dictGetAll`](../../../functions/ext-dict-functions.md#dictGetAll). Если узел имеет значение атрибута типа `T`, `dictGetAll` вернёт `Array(T)`, содержащий ноль или более значений. + +По умолчанию количество совпадений, возвращаемых для каждого ключа, не ограничено. Ограничение можно передать в качестве необязательного четвертого аргумента функции `dictGetAll`. Массив заполняется в *топологическом порядке*, что означает, что дочерние узлы идут перед родительскими, а одноуровневые (соседние) узлы следуют порядку в исходном описании. + +Пример: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + tag String, + topological_index Int64, + captured Nullable(String), + parent String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0) +``` + +```yaml +# /var/lib/clickhouse/user_files/regexp_tree.yaml +- regexp: 'clickhouse\.com' + tag: 'ClickHouse' + topological_index: 1 + paths: + - regexp: 'clickhouse\.com/docs(.*)' + tag: 'ClickHouse Documentation' + topological_index: 0 + captured: '\1' + parent: 'ClickHouse' + +- regexp: '/docs(/|$)' + tag: 'Documentation' + topological_index: 2 + +- regexp: 'github.com' + tag: 'GitHub' + topological_index: 3 + captured: 'NULL' +``` + +```sql +CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; +INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); +SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; +``` + +Результат: + +```text +┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ +│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ +│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ +│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ +└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ +``` + + +### Режимы сопоставления \{#matching-modes\} + +Поведение сопоставления по шаблону можно изменить с помощью определённых настроек словаря: + +- `regexp_dict_flag_case_insensitive`: использовать регистронезависимое сопоставление (по умолчанию `false`). Можно переопределить для отдельных выражений с помощью `(?i)` и `(?-i)`. +- `regexp_dict_flag_dotall`: разрешить символу '.' сопоставлять также символы перевода строки (по умолчанию `false`). + +## Использование словаря дерева регулярных выражений в ClickHouse Cloud \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} + +Источник [`YAMLRegExpTree`](../sources/yamlregexptree.md) работает в ClickHouse Open Source, но не в ClickHouse Cloud. +Чтобы использовать словари дерева регулярных выражений в ClickHouse Cloud, сначала локально в ClickHouse Open Source создайте такой словарь из YAML-файла, после чего выгрузите его в CSV-файл с помощью табличной функции `dictionary` и предложения [INTO OUTFILE](../../select/into-outfile.md). + +```sql +SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') +``` + +Содержимое CSV‑файла: + +```text +1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" +2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" +3,2,"33/tclwebkit","['version']","['13']" +4,2,"3[12]/tclwebkit","['version']","['12']" +5,2,"3[12]/tclwebkit","['version']","['11']" +6,2,"3[12]/tclwebkit","['version']","['10']" +``` + +Структура дамп-файла: + +* `id UInt64`: идентификатор узла RegexpTree. +* `parent_id UInt64`: идентификатор родительского узла. +* `regexp String`: строка с регулярным выражением. +* `keys Array(String)`: имена пользовательских атрибутов. +* `values Array(String)`: значения пользовательских атрибутов. + +Чтобы создать словарь в ClickHouse Cloud, сначала создайте таблицу `regexp_dictionary_source_table` со следующей структурой: + +```sql +CREATE TABLE regexp_dictionary_source_table +( + id UInt64, + parent_id UInt64, + regexp String, + keys Array(String), + values Array(String) +) ENGINE=Memory; +``` + +Затем обновите локальный CSV‑файл с помощью + +```bash +clickhouse client \ + --host MY_HOST \ + --secure \ + --password MY_PASSWORD \ + --query " + INSERT INTO regexp_dictionary_source_table + SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') + FORMAT CSV" < regexp_dict.csv +``` + +Вы можете ознакомиться с разделом [Insert Local Files](/integrations/data-ingestion/insert-local-files) для получения более подробной информации. После инициализации исходной таблицы мы можем создать RegexpTree на основе этой таблицы: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +PRIMARY KEY(regexp) +SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) +LIFETIME(0) +LAYOUT(regexp_tree); +``` diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md new file mode 100644 index 00000000000..2708b3e60f0 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md @@ -0,0 +1,55 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ssd-cache +title: 'Типы размещения словаря ssd_cache' +sidebar_label: 'ssd_cache' +sidebar_position: 8 +description: 'Хранение данных словаря на SSD с индексом в памяти: типы ssd_cache и complex_key_ssd_cache' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## ssd_cache \{#ssd_cache\} + +Аналогичен `cache`, но хранит данные на SSD, а индекс — в RAM. Все настройки словаря типа cache, связанные с очередью обновления, также могут применяться к словарям SSD cache. + +Тип ключа словаря — [UInt64](../../../data-types/int-uint.md). + + + + +```sql +LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 + PATH '/var/lib/clickhouse/user_files/test_dict')) +``` + + + + +```xml + + + + 4096 + + 16777216 + + 131072 + + 1048576 + + /var/lib/clickhouse/user_files/test_dict + + +``` + + + + +
    + +## complex_key_ssd_cache \{#complex_key_ssd_cache\} + +Этот тип хранилища предназначен для использования с составными [ключами](../keys-and-fields.md#dictionary-key-and-fields). Аналогично типу `ssd_cache`. \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md new file mode 100644 index 00000000000..980b5604938 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md @@ -0,0 +1,144 @@ +--- +description: 'Настройка LIFETIME словаря для автоматического обновления' +sidebar_label: 'LIFETIME' +sidebar_position: 5 +slug: /sql-reference/statements/create/dictionary/lifetime +title: 'Обновление данных словаря с помощью LIFETIME' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + +ClickHouse периодически обновляет словари на основе тега `LIFETIME` (задается в секундах). +`LIFETIME` — это интервал обновления для полностью загруженных словарей и интервал инвалидации для кешируемых словарей. + +Во время обновления старая версия словаря по-прежнему может использоваться в запросах. +Обновления словарей не блокируют запросы, за исключением момента их первой загрузки. +Если во время обновления происходит ошибка, она записывается в журнал сервера, а запросы продолжают использовать старую версию словаря. +Если обновление словаря прошло успешно, старая версия словаря [атомарно](/concepts/glossary#atomicity) заменяется новой. + +Пример настроек: + + + +```xml + + ... + 300 + ... + +``` + +или + +```sql +CREATE DICTIONARY (...) +... +LIFETIME(300) +... +``` + +Установка `0` (`LIFETIME(0)`) предотвращает обновление словарей. + +Вы можете задать интервал времени для обновлений, и ClickHouse выберет равномерно случайный момент времени в пределах этого диапазона. Это необходимо для распределения нагрузки на источник словаря при обновлениях на большом количестве серверов. + +Пример настроек: + +```xml + + ... + + 300 + 360 + + ... + +``` + +или + +```sql +LIFETIME(MIN 300 MAX 360) +``` + +Если `0` и `0`, ClickHouse не перезагружает словарь по тайм-ауту. +В этом случае ClickHouse может перезагрузить словарь раньше, если был изменён файл конфигурации словаря или была выполнена команда `SYSTEM RELOAD DICTIONARY`. + +При обновлении словарей сервер ClickHouse применяет разную логику в зависимости от типа [источника](./sources/): + +* Для текстового файла сервер проверяет время модификации. Если время отличается от ранее записанного времени, словарь обновляется. +* Словари из других источников по умолчанию обновляются каждый раз. + +Для других источников (ODBC, PostgreSQL, ClickHouse и т. д.) вы можете настроить запрос, который будет обновлять словари только в том случае, если они действительно изменились, а не каждый раз. Для этого выполните следующие шаги: + +* Таблица словаря должна иметь поле, которое всегда изменяется при обновлении исходных данных. +* В настройках источника должен быть указан запрос, который получает это изменяющееся поле. Сервер ClickHouse интерпретирует результат запроса как строку, и если эта строка изменилась относительно своего предыдущего состояния, словарь обновляется. Укажите запрос в поле `` в настройках для [источника](./sources/). + +Пример настроек: + +```xml + + ... + + ... + SELECT update_time FROM dictionary_source where id = 1 + + ... + +``` + +или + +```sql +... +SOURCE(ODBC(... invalidate_query 'SELECT update_time FROM dictionary_source where id = 1')) +... +``` + +Для словарей `Cache`, `ComplexKeyCache`, `SSDCache` и `SSDComplexKeyCache` поддерживаются как синхронные, так и асинхронные обновления. + +Также для словарей `Flat`, `Hashed`, `HashedArray`, `ComplexKeyHashed` можно запрашивать только те данные, которые были изменены после предыдущего обновления. Если `update_field` указан в конфигурации источника словаря, к запросу данных будет добавлено значение времени предыдущего обновления в секундах. В зависимости от типа источника (Executable, HTTP, MySQL, PostgreSQL, ClickHouse или ODBC) к `update_field` будет применяться различная логика перед запросом данных из внешнего источника. + + +* Если источником является HTTP, то `update_field` будет добавлен как параметр запроса, значение которого — время последнего обновления. +* Если источником является Executable, то `update_field` будет добавлен как аргумент исполняемого скрипта, значение которого — время последнего обновления. +* Если источником является ClickHouse, MySQL, PostgreSQL, ODBC, будет добавлена дополнительная часть `WHERE`, где `update_field` сравнивается с временем последнего обновления с использованием оператора `>=`. + * По умолчанию это условие `WHERE` применяется на верхнем уровне SQL-запроса. В качестве альтернативы условие может быть задано в любом другом выражении `WHERE` внутри запроса с использованием ключевого слова `{condition}`. Пример: + ```sql + ... + SOURCE(CLICKHOUSE(... + update_field 'added_time' + QUERY ' + SELECT my_arr.1 AS x, my_arr.2 AS y, creation_time + FROM ( + SELECT arrayZip(x_arr, y_arr) AS my_arr, creation_time + FROM dictionary_source + WHERE {condition} + )' + )) + ... + ``` + +Если параметр `update_field` задан, можно задать дополнительный параметр `update_lag`. Значение параметра `update_lag` вычитается из времени предыдущего обновления до запроса обновлённых данных. + +Пример настроек: + +```xml + + ... + + ... + added_time + 15 + + ... + +``` + +или + +```sql +... +SOURCE(CLICKHOUSE(... update_field 'added_time' update_lag 15)) +... +``` diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md new file mode 100644 index 00000000000..0e3a85146df --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md @@ -0,0 +1,102 @@ +--- +description: 'Документация по созданию и настройке словарей' +sidebar_label: 'Обзор' +sidebar_position: 1 +slug: /sql-reference/statements/create/dictionary +title: 'CREATE DICTIONARY' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import CloudSupportedBadge from '@theme/badges/CloudSupportedBadge'; + + +# CREATE DICTIONARY \{#create-dictionary\} + +Словарь — это отображение вида (`key -> attributes`), удобное для различных типов справочников. +ClickHouse поддерживает специальные функции работы со словарями, которые можно использовать в запросах. Использовать словари через функции проще и эффективнее, чем выполнять `JOIN` со справочными таблицами. + +Словари можно создавать двумя способами: + +- [С помощью DDL-запроса](#creating-a-dictionary-with-a-ddl-query) (рекомендуется) +- [С помощью файла конфигурации](#creating-a-dictionary-with-a-configuration-file) + +## Создание словаря с помощью DDL-запроса \{#creating-a-dictionary-with-a-ddl-query\} + + + +Словари можно создавать с помощью DDL-запросов. +Этот метод является рекомендуемым, поскольку для словарей, созданных с помощью DDL: + +- В конфигурационные файлы сервера не добавляются дополнительные записи. +- Словари могут использоваться как полноценные сущности, такие как таблицы или представления. +- Данные можно читать напрямую, используя привычный синтаксис `SELECT`, а не табличные функции словаря. Обратите внимание, что при прямом доступе к словарю через оператор `SELECT` кэшируемый словарь вернет только данные из кэша, тогда как для некэшируемого словаря будут возвращены все данные, которые он хранит. +- Словари можно легко переименовывать. + +### Синтаксис \{#syntax\} + +```sql +CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] +( + key1 type1 [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID], + key2 type2 [DEFAULT | EXPRESSION expr2], + attr1 type2 [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], + attr2 type2 [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] +) +PRIMARY KEY key1, key2 +SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) +LAYOUT(LAYOUT_NAME([param_name param_value])) +LIFETIME({MIN min_val MAX max_val | max_val}) +SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) +COMMENT 'Comment' +``` + +| Clause | Description | +| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [Attributes](./attributes.md) | Атрибуты словаря задаются аналогично столбцам таблицы. Единственным обязательным свойством является тип, все остальные свойства могут иметь значения по умолчанию. | +| PRIMARY KEY | Определяет ключевой(ые) столбец(ы) для обращений к словарю. В зависимости от схемы размещения один или несколько атрибутов могут быть указаны как ключи. | +| [`SOURCE`](./sources/overview.md) | Определяет источник данных для словаря (например, таблица ClickHouse, HTTP, PostgreSQL). | +| [`LAYOUT`](./layouts/overview.md) | Определяет, как словарь хранится в памяти (например, `FLAT`, `HASHED`, `CACHE`). | +| [`LIFETIME`](./lifetime.md) | Задает интервал обновления словаря. | +| [`ON CLUSTER`](../../../distributed-ddl.md) | Создает словарь в кластере. Необязательный параметр. | +| `SETTINGS` | Дополнительные настройки словаря. Необязательный параметр. | +| `COMMENT` | Добавляет текстовый комментарий к словарю. Необязательный параметр. | + + +## Создание словаря с помощью конфигурационного файла \{#creating-a-dictionary-with-a-configuration-file\} + + + +:::note +Создание словаря с помощью конфигурационного файла не поддерживается в ClickHouse Cloud. Пожалуйста, используйте DDL (см. выше) и создайте словарь от имени пользователя `default`. +::: + +Конфигурационный файл словаря имеет следующий формат: + +```xml + + An optional element with any content. Ignored by the ClickHouse server. + + + /etc/metrika.xml + + + + + + + + +``` + +Вы можете настроить любое количество словарей в одном файле. + + +## Связанные материалы \{#related-content\} + +- [Layouts](/sql-reference/statements/create/dictionary/layouts) — Хранение словарей в памяти +- [Sources](/sql-reference/statements/create/dictionary/sources) — Подключение к источникам данных +- [Lifetime](./lifetime.md) — Настройка автоматического обновления +- [Attributes](./attributes.md) — Настройка ключей и атрибутов +- [Embedded Dictionaries](./embedded.md) — Встроенные словари геобазы +- [system.dictionaries](../../../../operations/system-tables/dictionaries.md) — Системная таблица с информацией о словарях \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md new file mode 100644 index 00000000000..1e178ca052a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/cassandra +title: 'Источник словаря Cassandra' +sidebar_position: 11 +sidebar_label: 'Cassandra' +description: 'Настройка Cassandra в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(CASSANDRA( + host 'localhost' + port 9042 + user 'username' + password 'qwerty123' + keyspace 'database_name' + column_family 'table_name' + allow_filtering 1 + partition_key_prefix 1 + consistency 'One' + where '"SomeColumn" = 42' + max_threads 8 + query 'SELECT id, value_1, value_2 FROM database_name.table_name' + )) + ``` + + + + ```xml + + + localhost + 9042 + username + qwerty123 + database_name + table_name + 1 + 1 + One + "SomeColumn" = 42 + 8 + SELECT id, value_1, value_2 FROM database_name.table_name + + + ``` + + + +Поля настроек: + +| Setting | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Хост Cassandra или список хостов, разделённых запятыми. | +| `port` | Порт на серверах Cassandra. Если не указан, используется порт по умолчанию `9042`. | +| `user` | Имя пользователя Cassandra. | +| `password` | Пароль пользователя Cassandra. | +| `keyspace` | Имя keyspace (базы данных). | +| `column_family` | Имя column family (таблицы). | +| `allow_filtering` | Флаг, разрешающий или запрещающий потенциально дорогостоящие условия по столбцам ключа кластеризации. Значение по умолчанию — `1`. | +| `partition_key_prefix` | Количество столбцов ключа партиции в первичном ключе таблицы Cassandra. Обязателен для словарей с составным ключом. Порядок ключевых столбцов в определении словаря должен совпадать с порядком в Cassandra. Значение по умолчанию — `1` (первый ключевой столбец — ключ партиции, остальные — ключ кластеризации). | +| `consistency` | Уровень консистентности. Возможные значения: `One`, `Two`, `Three`, `All`, `EachQuorum`, `Quorum`, `LocalQuorum`, `LocalOne`, `Serial`, `LocalSerial`. Значение по умолчанию — `One`. | +| `where` | Необязательные критерии отбора. | +| `max_threads` | Максимальное количество потоков для загрузки данных из нескольких партиций в словарях с составным ключом. | +| `query` | Пользовательский запрос. Необязательный параметр. | + +:::note +Поля `column_family` или `where` не могут использоваться вместе с полем `query`. При этом одно из полей `column_family` или `query` должно быть объявлено. +::: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md new file mode 100644 index 00000000000..542a7ecac9c --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md @@ -0,0 +1,70 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/clickhouse +title: 'Источник словаря ClickHouse' +sidebar_position: 8 +sidebar_label: 'ClickHouse' +description: 'Настройка таблицы ClickHouse как источника словаря.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(CLICKHOUSE( + host 'example01-01-1' + port 9000 + user 'default' + password '' + db 'default' + table 'ids' + where 'id=10' + secure 1 + query 'SELECT id, value_1, value_2 FROM default.ids' + )); + ``` + + + + ```xml + + + example01-01-1 + 9000 + default + + default +
    ids
    + id=10 + 1 + SELECT id, value_1, value_2 FROM default.ids + + + ``` + + + +
    + +Поля настроек: + +| Setting | Description | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Хост ClickHouse. Если это локальный хост, запрос обрабатывается без какой-либо сетевой активности. Для повышения отказоустойчивости вы можете создать таблицу [Distributed](/engines/table-engines/special/distributed) и указать её в дальнейшей конфигурации. | +| `port` | Порт на сервере ClickHouse. | +| `user` | Имя пользователя ClickHouse. | +| `password` | Пароль пользователя ClickHouse. | +| `db` | Имя базы данных. | +| `table` | Имя таблицы. | +| `where` | Критерий выборки. Необязательный параметр. | +| `invalidate_query` | Запрос для проверки состояния словаря. Необязательный параметр. Подробнее см. раздел [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime). | +| `secure` | Использовать SSL для подключения. | +| `query` | Пользовательский запрос. Необязательный параметр. | + +:::note +Поля `table` и `where` не могут использоваться совместно с полем `query`. При этом одно из полей `table` или `query` должно быть объявлено. +::: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md new file mode 100644 index 00000000000..43262da7d65 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md @@ -0,0 +1,54 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-file +title: 'Источник словаря Executable File' +sidebar_position: 3 +sidebar_label: 'Executable File' +description: 'Использование исполняемого файла в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Работа с исполняемыми файлами зависит от того, [как словарь хранится в памяти](../layouts/). Если словарь хранится с использованием `cache` и `complex_key_cache`, ClickHouse запрашивает необходимые ключи, отправляя запрос в STDIN исполняемого файла. В противном случае ClickHouse запускает исполняемый файл и рассматривает его вывод как данные словаря. + +Пример настроек: + + + + ```sql + SOURCE(EXECUTABLE( + command 'cat /opt/dictionaries/os.tsv' + format 'TabSeparated' + implicit_key false + )) + ``` + + + + ```xml + + + cat /opt/dictionaries/os.tsv + TabSeparated + false + + + ``` + + + +Поля настроек: + +| Setting | Description | +| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | Абсолютный путь к исполняемому файлу или имя файла (если каталог, где расположена команда, находится в `PATH`). | +| `format` | Формат файла. Поддерживаются все форматы, описанные в [Formats](/sql-reference/formats). | +| `command_termination_timeout` | Исполняемый скрипт должен содержать основной цикл чтения-записи. После уничтожения словаря конвейер (pipe) закрывается, и у исполняемого файла будет `command_termination_timeout` секунд на завершение работы, прежде чем ClickHouse отправит сигнал SIGTERM дочернему процессу. Задаётся в секундах. Значение по умолчанию — `10`. Необязательный параметр. | +| `command_read_timeout` | Таймаут чтения данных из stdout команды в миллисекундах. Значение по умолчанию — `10000`. Необязательный параметр. | +| `command_write_timeout` | Таймаут записи данных в stdin команды в миллисекундах. Значение по умолчанию — `10000`. Необязательный параметр. | +| `implicit_key` | Исполняемый источник может возвращать только значения, а соответствие запрошенным ключам определяется неявно по порядку строк в результате. Значение по умолчанию — `false`. | +| `execute_direct` | Если `execute_direct` = `1`, то `command` будет искаться в каталоге user_scripts, заданном параметром [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path). Дополнительные аргументы скрипта можно указать, используя пробел как разделитель. Пример: `script_name arg1 arg2`. Если `execute_direct` = `0`, `command` передаётся как аргумент для `bin/sh -c`. Значение по умолчанию — `0`. Необязательный параметр. | +| `send_chunk_header` | Определяет, нужно ли отправлять количество строк перед отправкой фрагмента данных на обработку. Значение по умолчанию — `false`. Необязательный параметр. | + +Этот источник словаря может быть настроен только через XML-конфигурацию. Создание словарей с исполняемым источником через DDL отключено; в противном случае пользователь БД смог бы выполнять произвольные бинарные файлы на узле ClickHouse. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md new file mode 100644 index 00000000000..94d3f48c5a5 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md @@ -0,0 +1,72 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-pool +title: 'Источник словаря Executable Pool' +sidebar_position: 4 +sidebar_label: 'Executable Pool' +description: 'Настройка пула исполняемых программ как источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пул исполняемых процессов позволяет загружать данные из пула процессов. +Этот источник не работает с макетами словаря, которым необходимо загружать все данные из источника. + +Пул исполняемых процессов работает, если словарь [хранится](../layouts/#ways-to-store-dictionaries-in-memory) с использованием одного из следующих макетов: + +* `cache` +* `complex_key_cache` +* `ssd_cache` +* `complex_key_ssd_cache` +* `direct` +* `complex_key_direct` + +Пул исполняемых процессов создаёт пул процессов с указанной командой и поддерживает их работу до их завершения. Программа должна читать данные из STDIN, пока они доступны, и выводить результат в STDOUT. Она может ожидать следующий блок данных в STDIN. ClickHouse не будет закрывать STDIN после обработки блока данных, а при необходимости передаст по каналу очередной фрагмент данных. Исполняемый скрипт должен быть готов к такому способу обработки данных — он должен опрашивать STDIN и оперативно сбрасывать данные в STDOUT. + +Пример настроек: + + + + ```sql + SOURCE(EXECUTABLE_POOL( + command 'while read key; do printf "$key\tData for key $key\n"; done' + format 'TabSeparated' + pool_size 10 + max_command_execution_time 10 + implicit_key false + )) + ``` + + + + ```xml + + + while read key; do printf "$key\tData for key $key\n"; done + TabSeparated + 10 + 10 + false + + + ``` + + + +Поля настроек: + +| Setting | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | Абсолютный путь к исполняемому файлу или имя файла (если каталог программы добавлен в `PATH`). | +| `format` | Формат. Поддерживаются все форматы, описанные в [Formats](/sql-reference/formats). | +| `pool_size` | Размер пула. Если для `pool_size` указано значение 0, то размер пула не ограничен. Значение по умолчанию — `16`. | +| `command_termination_timeout` | Исполняемый скрипт должен содержать основной цикл чтения-записи. После уничтожения словаря канал закрывается, и у исполняемого файла будет `command_termination_timeout` секунд на завершение работы, прежде чем ClickHouse отправит процессу-потомку сигнал SIGTERM. Задаётся в секундах. Значение по умолчанию — `10`. Необязательный параметр. | +| `max_command_execution_time` | Максимальное время выполнения команды исполняемого скрипта для обработки блока данных. Задаётся в секундах. Значение по умолчанию — `10`. Необязательный параметр. | +| `command_read_timeout` | Таймаут чтения данных из stdout команды в миллисекундах. Значение по умолчанию — `10000`. Необязательный параметр. | +| `command_write_timeout` | Таймаут записи данных в stdin команды в миллисекундах. Значение по умолчанию — `10000`. Необязательный параметр. | +| `implicit_key` | Исполняемый файл источника может возвращать только значения, а соответствие запрошенным ключам определяется неявно по порядку строк в результате. Значение по умолчанию — `false`. Необязательный параметр. | +| `execute_direct` | Если `execute_direct` = `1`, то `command` будет искаться внутри папки user_scripts, заданной параметром [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path). Дополнительные аргументы скрипта можно указать, используя в качестве разделителя пробел. Пример: `script_name arg1 arg2`. Если `execute_direct` = `0`, `command` передаётся как аргумент для `bin/sh -c`. Значение по умолчанию — `1`. Необязательный параметр. | +| `send_chunk_header` | Управляет тем, нужно ли отправлять количество строк перед отправкой фрагмента данных в процесс. Значение по умолчанию — `false`. Необязательный параметр. | + +Этот источник словаря может быть настроен только через XML-конфигурацию. Создание словарей с исполняемым источником через DDL отключено, иначе пользователь БД смог бы выполнять произвольные исполняемые файлы на узле ClickHouse. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md new file mode 100644 index 00000000000..8617b77ff44 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md @@ -0,0 +1,69 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/http +title: 'Источник словаря HTTP(S)' +sidebar_position: 5 +sidebar_label: 'HTTP(S)' +description: 'Настройка HTTP- или HTTPS-эндпоинта в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Работа с HTTP(S)-сервером зависит от того, [как словарь хранится в памяти](../layouts/). Если словарь хранится с использованием `cache` и `complex_key_cache`, ClickHouse запрашивает необходимые ключи, отправляя запрос методом `POST`. + +Пример настроек: + + + + ```sql + SOURCE(HTTP( + url 'http://[::1]/os.tsv' + format 'TabSeparated' + credentials(user 'user' password 'password') + headers(header(name 'API-KEY' value 'key')) + )) + ``` + + + + ```xml + + + http://[::1]/os.tsv + TabSeparated + + user + password + + +
    + API-KEY + key +
    +
    +
    + + ``` +
    +
    + +
    + +Для того чтобы ClickHouse мог получить доступ к HTTPS-ресурсу, необходимо [настроить OpenSSL](/operations/server-configuration-parameters/settings#openssl) в конфигурации сервера. + +Поля настроек: + +| Setting | Description | +| ------------- | ------------------------------------------------------------------------------------------ | +| `url` | Исходный URL. | +| `format` | Формат файла. Поддерживаются все форматы, описанные в [Formats](/sql-reference/formats). | +| `credentials` | Базовая HTTP-аутентификация. Необязательный параметр. | +| `user` | Имя пользователя, необходимое для аутентификации. | +| `password` | Пароль, необходимый для аутентификации. | +| `headers` | Все пользовательские HTTP-заголовки, используемые в HTTP-запросе. Необязательный параметр. | +| `header` | Отдельная запись HTTP-заголовка. | +| `name` | Имя идентификатора, используемое для заголовка, отправляемого в запросе. | +| `value` | Значение, установленное для конкретного имени идентификатора. | + +При создании словаря с помощью DDL-команды (`CREATE DICTIONARY ...`) удалённые хосты для HTTP-словарей проверяются на соответствие содержимому секции `remote_url_allow_hosts` в конфигурации, чтобы предотвратить доступ пользователей базы данных к произвольным HTTP-серверам. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md new file mode 100644 index 00000000000..745019b2ade --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md @@ -0,0 +1,49 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/local-file +title: 'Источник словаря из локального файла' +sidebar_position: 2 +sidebar_label: 'Локальный файл' +description: 'Настройка локального файла как источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Локальный файловый источник загружает данные словаря из файла в локальной файловой системе. Это полезно для небольших статических таблиц соответствия, которые могут храниться как плоские файлы в форматах, таких как TSV, CSV или любом другом [поддерживаемом формате](/sql-reference/formats). + +Пример настроек: + + + + ```sql + SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) + ``` + + + + ```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + + ``` + + + +
    + +Поля настроек: + +| Setting | Description | +| -------- | ------------------------------------------------------------------------------------------------ | +| `path` | Абсолютный путь к файлу. | +| `format` | Формат файла. Поддерживаются все форматы, описанные в разделе [Formats](/sql-reference/formats). | + +Когда словарь с источником `FILE` создаётся с помощью DDL-команды (`CREATE DICTIONARY ...`), исходный файл должен находиться в каталоге `user_files`, чтобы предотвратить доступ пользователей БД к произвольным файлам на сервере ClickHouse. + +**См. также** + +* [Функция `dictionary`](/sql-reference/table-functions/dictionary) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md new file mode 100644 index 00000000000..88cf89f9e7a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md @@ -0,0 +1,82 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mongodb +title: 'Источник словаря MongoDB' +sidebar_position: 9 +sidebar_label: 'MongoDB' +description: 'Настройка MongoDB в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(MONGODB( + host 'localhost' + port 27017 + user '' + password '' + db 'test' + collection 'dictionary_source' + options 'ssl=true' + )) + ``` + + Или с использованием URI: + + ```sql + SOURCE(MONGODB( + uri 'mongodb://localhost:27017/clickhouse' + collection 'dictionary_source' + )) + ``` + + + + ```xml + + + localhost + 27017 + + + test + dictionary_source + ssl=true + + + ``` + + Или с использованием URI: + + ```xml + + + mongodb://localhost:27017/test?ssl=true + dictionary_source + + + ``` + + + +
    + +Поля настроек: + +| Setting | Description | +| ------------ | ----------------------------------------------------------------------------- | +| `host` | Хост MongoDB. | +| `port` | Порт сервера MongoDB. | +| `user` | Имя пользователя MongoDB. | +| `password` | Пароль пользователя MongoDB. | +| `db` | Имя базы данных. | +| `collection` | Имя коллекции. | +| `options` | Параметры строки подключения MongoDB. Необязательный параметр. | +| `uri` | URI для установления подключения (альтернатива отдельным полям host/port/db). | + +[Подробнее о движке](/engines/table-engines/integrations/mongodb) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md new file mode 100644 index 00000000000..a7242e2c40c --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md @@ -0,0 +1,132 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mysql +title: 'Источник словаря MySQL' +sidebar_position: 7 +sidebar_label: 'MySQL' +description: 'Настройка MySQL в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(MYSQL( + port 3306 + user 'clickhouse' + password 'qwerty' + replica(host 'example01-1' priority 1) + replica(host 'example01-2' priority 1) + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + 3306 + clickhouse + qwerty + + example01-1 + 1 + + + example01-2 + 1 + + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +Поля настроек: + +| Setting | Description | +| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `port` | Порт на сервере MySQL. Вы можете указать его для всех реплик или для каждой реплики отдельно (внутри ``). | +| `user` | Имя пользователя MySQL. Вы можете указать его для всех реплик или для каждой реплики отдельно (внутри ``). | +| `password` | Пароль пользователя MySQL. Вы можете указать его для всех реплик или для каждой реплики отдельно (внутри ``). | +| `replica` | Секция конфигураций реплик. Может быть несколько таких секций. | +| `replica/host` | Хост MySQL. | +| `replica/priority` | Приоритет реплики. При попытке установить подключение ClickHouse перебирает реплики в порядке приоритета. Чем меньше число, тем выше приоритет. | +| `db` | Имя базы данных. | +| `table` | Имя таблицы. | +| `where` | Критерий выбора. Синтаксис условий такой же, как для секции `WHERE` в MySQL, например, `id > 10 AND id < 20`. Необязательный параметр. | +| `invalidate_query` | Запрос для проверки статуса словаря. Необязательный параметр. Подробности см. в разделе [Обновление данных словаря с помощью LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime). | +| `fail_on_connection_loss` | Управляет поведением сервера при потере соединения. Если `true`, исключение выбрасывается немедленно, если соединение между клиентом и сервером было потеряно. Если `false`, сервер ClickHouse пытается выполнить запрос три раза, прежде чем выбросить исключение. Обратите внимание, что повторные попытки приводят к увеличению времени ответа. Значение по умолчанию: `false`. | +| `query` | Пользовательский запрос. Необязательный параметр. | + +:::note +Поля `table` или `where` нельзя использовать совместно с полем `query`. При этом одно из полей `table` или `query` должно быть объявлено. +::: + +:::note +Явного параметра `secure` не существует. При установке SSL-подключения использование защищённого соединения обязательно. +::: + +К серверу MySQL можно подключиться на локальном хосте через сокеты. Для этого задайте `host` и `socket`. + +Пример настроек: + + + + + +```sql +SOURCE(MYSQL( + host 'localhost' + socket '/path/to/socket/file.sock' + user 'clickhouse' + password 'qwerty' + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' +)) +``` + + + + +```xml + + + localhost + /path/to/socket/file.sock + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + +``` + +
    +
    \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md new file mode 100644 index 00000000000..3d3973ac56b --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md @@ -0,0 +1,24 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/null +title: 'Источник словаря Null' +sidebar_position: 14 +sidebar_label: 'Null' +description: 'Настройка источника словаря Null (пустого) в ClickHouse для тестирования.' +doc_type: 'reference' +--- + +Специальный источник, который можно использовать для создания пустых (фиктивных) словарей. +Такие словари могут быть полезны при тестировании или в конфигурациях с раздельными узлами данных и запросов, использующих distributed таблицы. + +```sql +CREATE DICTIONARY null_dict ( + id UInt64, + val UInt8, + default_val UInt8 DEFAULT 123, + nullable_val Nullable(UInt8) +) +PRIMARY KEY id +SOURCE(NULL()) +LAYOUT(FLAT()) +LIFETIME(0); +``` diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md new file mode 100644 index 00000000000..59cef62d2d3 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md @@ -0,0 +1,289 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/odbc +title: 'Источник словаря ODBC' +sidebar_position: 6 +sidebar_label: 'ODBC' +description: 'Настройка подключения по ODBC как источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Вы можете использовать этот метод для подключения любой базы данных, для которой существует ODBC‑драйвер. + +Пример настроек: + + + + ```sql + SOURCE(ODBC( + db 'DatabaseName' + table 'SchemaName.TableName' + connection_string 'DSN=some_parameters' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + DatabaseName + ShemaName.TableName
    + DSN=some_parameters + SQL_QUERY + SELECT id, value_1, value_2 FROM ShemaName.TableName +
    + + ``` +
    +
    + +
    + +Поля настроек: + +| Setting | Description | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `db` | Имя базы данных. Опустите это поле, если имя базы данных задано в параметрах ``. | +| `table` | Имя таблицы и схемы, если указана. | +| `connection_string` | Строка подключения. | +| `invalidate_query` | Запрос для проверки статуса словаря. Необязательный параметр. Подробнее см. раздел [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime). | +| `background_reconnect` | Фоновое переподключение к реплике при сбое соединения. Необязательный параметр. | +| `query` | Произвольный запрос. Необязательный параметр. | + +:::note +Поля `table` и `query` не могут использоваться одновременно. При этом одно из полей `table` или `query` должно быть объявлено. +::: + +ClickHouse получает символы кавычек от ODBC‑драйвера и заключает все настройки в кавычки в запросах к драйверу, поэтому необходимо указывать имя таблицы с учетом регистра, используемого в базе данных. + +Если у вас возникают проблемы с кодировками при использовании Oracle, см. соответствующий пункт [FAQ](/knowledgebase/oracle-odbc). + +### Известная уязвимость функциональности словаря ODBC \{#known-vulnerability-of-the-odbc-dictionary-functionality\} + +:::note +При подключении к базе данных через драйвер ODBC параметр соединения `Servername` может быть подменён. В этом случае значения `USERNAME` и `PASSWORD` из `odbc.ini` отправляются на удалённый сервер и могут быть скомпрометированы. +::: + +**Пример небезопасного использования** + +Настроим unixODBC для PostgreSQL. Содержимое `/etc/odbc.ini`: + +```text +[gregtest] +Driver = /usr/lib/psqlodbca.so +Servername = localhost +PORT = 5432 +DATABASE = test_db +#OPTION = 3 +USERNAME = test +PASSWORD = test +``` + +Если затем вы выполните, например, такой запрос + +```sql +SELECT * FROM odbc('DSN=gregtest;Servername=some-server.com', 'test_db'); +``` + +ODBC-драйвер будет отправлять значения `USERNAME` и `PASSWORD` из `odbc.ini` на `some-server.com`. + +### Пример подключения к PostgreSQL \{#example-of-connecting-postgresql\} + +Ubuntu. + +Установка unixODBC и драйвера ODBC для PostgreSQL: + +```bash +$ sudo apt-get install -y unixodbc odbcinst odbc-postgresql +``` + +Настройка `/etc/odbc.ini` (или `~/.odbc.ini`, если вы вошли в систему под пользователем, от имени которого запускается ClickHouse): + +```text + [DEFAULT] + Driver = myconnection + + [myconnection] + Description = PostgreSQL connection to my_db + Driver = PostgreSQL Unicode + Database = my_db + Servername = 127.0.0.1 + UserName = username + Password = password + Port = 5432 + Protocol = 9.3 + ReadOnly = No + RowVersioning = No + ShowSystemTables = No + ConnSettings = +``` + +Конфигурация словаря в ClickHouse: + + + + ```sql + CREATE DICTIONARY table_name ( + id UInt64, + some_column UInt64 DEFAULT 0 + ) + PRIMARY KEY id + SOURCE(ODBC(connection_string 'DSN=myconnection' table 'postgresql_table')) + LAYOUT(HASHED()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + table_name + + + + + DSN=myconnection + postgresql_table
    +
    + + + 300 + 360 + + + + + + + id + + + some_column + UInt64 + 0 + + +
    +
    + ``` +
    +
    + +
    + +Вам может потребоваться отредактировать `odbc.ini`, чтобы указать полный путь к библиотеке драйвера `DRIVER=/usr/local/lib/psqlodbcw.so`. + +### Пример подключения MS SQL Server \{#example-of-connecting-ms-sql-server\} + +ОС Ubuntu. + +Установка ODBC-драйвера для подключения к MS SQL Server: + +```bash +$ sudo apt-get install tdsodbc freetds-bin sqsh +``` + +Настройка драйвера: + +```bash + $ cat /etc/freetds/freetds.conf + ... + + [MSSQL] + host = 192.168.56.101 + port = 1433 + tds version = 7.0 + client charset = UTF-8 + + # test TDS connection + $ sqsh -S MSSQL -D database -U user -P password + + + $ cat /etc/odbcinst.ini + + [FreeTDS] + Description = FreeTDS + Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so + Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so + FileUsage = 1 + UsageCount = 5 + + $ cat /etc/odbc.ini + # $ cat ~/.odbc.ini # if you signed in under a user that runs ClickHouse + + [MSSQL] + Description = FreeTDS + Driver = FreeTDS + Servername = MSSQL + Database = test + UID = test + PWD = test + Port = 1433 + + + # (optional) test ODBC connection (to use isql-tool install the [unixodbc](https://packages.debian.org/sid/unixodbc)-package) + $ isql -v MSSQL "user" "password" +``` + +Примечания: + +* чтобы определить самую раннюю версию TDS, поддерживаемую конкретной версией SQL Server, обратитесь к документации по продукту или см. [MS-TDS Product Behavior](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/135d0ebe-5c4c-4a94-99bf-1811eccb9f4a) + +Настройка словаря в ClickHouse: + + + + ```sql + CREATE DICTIONARY test ( + k UInt64, + s String DEFAULT '' + ) + PRIMARY KEY k + SOURCE(ODBC(table 'dict' connection_string 'DSN=MSSQL;UID=test;PWD=test')) + LAYOUT(FLAT()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + test + + + dict
    + DSN=MSSQL;UID=test;PWD=test +
    + + + + 300 + 360 + + + + + + + + + k + + + s + String + + + +
    +
    + ``` +
    +
    diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md new file mode 100644 index 00000000000..f4016e2c880 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md @@ -0,0 +1,106 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources +title: 'Источники словарей' +sidebar_position: 1 +sidebar_label: 'Обзор' +doc_type: 'reference' +description: 'Конфигурация типов источников словарей' +--- + +import CloudDetails from '@site/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## Синтаксис \{#dictionary-sources\} + + + +Словарь может быть подключён к ClickHouse из самых разных источников. +Источник задаётся в секции `source` файла конфигурации и с помощью предложения `SOURCE` в операторе DDL. + + + + +```sql +CREATE DICTIONARY dict_name (...) +... +SOURCE(SOURCE_TYPE(param1 val1 ... paramN valN)) -- Конфигурация источника +... +``` + + + + +```xml + + + ... + + + + + + ... + + ... + +``` + + + + +
    + +## Поддерживаемые источники словарей \{#supported-dictionary-sources\} + +Доступны следующие типы источников (`SOURCE_TYPE`/`source_type`): + +- [Локальный файл](./local-file.md) +- [Исполняемый файл](./executable-file.md) +- [Пул исполняемых файлов](./executable-pool.md) +- [HTTP(S)](./http.md) +- СУБД + - [ODBC](./odbc.md) + - [MySQL](./mysql.md) + - [ClickHouse](./clickhouse.md) + - [MongoDB](./mongodb.md) + - [Redis](./redis.md) + - [Cassandra](./cassandra.md) + - [PostgreSQL](./postgresql.md) + - [YTsaurus](./ytsaurus.md) +- [YAMLRegExpTree](./yamlregexptree.md) +- [Null](./null.md) + +Для типов источников [Локальный файл](./local-file.md), [Исполняемый файл](./executable-file.md), [HTTP(s)](./http.md), [ClickHouse](./clickhouse.md) +доступны дополнительные (необязательные) параметры: + + + + +```sql +SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) +--highlight-next-line +SETTINGS(format_csv_allow_single_quotes = 0) +``` + + + + +```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + +#highlight-next-line + 0 + + +``` + + + \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md new file mode 100644 index 00000000000..6672fc773d4 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/postgresql +title: 'Источник словаря PostgreSQL' +sidebar_position: 12 +sidebar_label: 'PostgreSQL' +description: 'Настройка PostgreSQL как источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(POSTGRESQL( + port 5432 + host 'postgresql-hostname' + user 'postgres_user' + password 'postgres_password' + db 'db_name' + table 'table_name' + replica(host 'example01-1' port 5432 priority 1) + replica(host 'example01-2' port 5432 priority 2) + where 'id=10' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + postgresql-hostname + 5432 + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +Поля настроек: + +| Setting | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Хост на сервере PostgreSQL. Можно задать один хост для всех реплик или указать его для каждой реплики отдельно (внутри ``). | +| `port` | Порт на сервере PostgreSQL. Можно задать один порт для всех реплик или указать его для каждой реплики отдельно (внутри ``). | +| `user` | Имя пользователя PostgreSQL. Можно задать одного пользователя для всех реплик или указать его для каждой реплики отдельно (внутри ``). | +| `password` | Пароль пользователя PostgreSQL. Можно задать один пароль для всех реплик или указать его для каждой реплики отдельно (внутри ``). | +| `replica` | Секция настроек реплик. Секций может быть несколько. | +| `replica/host` | Хост PostgreSQL. | +| `replica/port` | Порт PostgreSQL. | +| `replica/priority` | Приоритет реплики. При попытке подключения ClickHouse обходит реплики в порядке приоритета. Чем меньше число, тем выше приоритет. | +| `db` | Имя базы данных. | +| `table` | Имя таблицы. | +| `where` | Условие выбора данных. Синтаксис условий такой же, как для предложения `WHERE` в PostgreSQL. Например, `id > 10 AND id < 20`. Необязательный параметр. | +| `invalidate_query` | Запрос для проверки состояния словаря. Необязательный параметр. Подробнее см. раздел [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime). | +| `background_reconnect` | Переподключение к реплике в фоновом режиме при сбое соединения. Необязательный параметр. | +| `query` | Произвольный запрос. Необязательный параметр. | + +:::note +Поля `table` или `where` нельзя использовать вместе с полем `query`. При этом одно из полей `table` или `query` должно быть указано. +::: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md new file mode 100644 index 00000000000..ad8e67b792f --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md @@ -0,0 +1,50 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/redis +title: 'Источник словаря Redis' +sidebar_position: 10 +sidebar_label: 'Redis' +description: 'Настройка Redis в качестве источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Пример настроек: + + + + ```sql + SOURCE(REDIS( + host 'localhost' + port 6379 + storage_type 'simple' + db_index 0 + )) + ``` + + + + ```xml + + + localhost + 6379 + simple + 0 + + + ``` + + + +
    + +Поля настроек: + +| Setting | Description | +| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `host` | Хост Redis. | +| `port` | Порт сервера Redis. | +| `storage_type` | Структура внутреннего хранилища Redis, используемая для работы с ключами. `simple` предназначен для простых источников и хешированных источников с одним ключом, `hash_map` — для хешированных источников с двумя ключами. Диапазонные источники и кэш-источники со сложным ключом не поддерживаются. Значение по умолчанию — `simple`. Необязательный параметр. | +| `db_index` | Числовой индекс логической базы данных Redis. Значение по умолчанию — `0`. Необязательный параметр. | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md new file mode 100644 index 00000000000..79359ed6e70 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md @@ -0,0 +1,79 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/yamlregexptree +title: 'Источник словаря YAMLRegExpTree' +sidebar_position: 15 +sidebar_label: 'YAMLRegExpTree' +description: 'Настройка YAML-файла в качестве источника для словарей на основе дерева регулярных выражений.' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + + + +Источник `YAMLRegExpTree` загружает дерево регулярных выражений из YAML-файла на локальной файловой системе. +Он предназначен исключительно для использования с макетом словаря [`regexp_tree`](../layouts/regexp-tree.md) +и предоставляет иерархические сопоставления регулярных выражений с атрибутами для поиска по шаблонам, например для разбора заголовка User-Agent. + +:::note +Источник `YAMLRegExpTree` доступен только в ClickHouse Open Source. +Для ClickHouse Cloud экспортируйте словарь в CSV и загрузите его через [источник таблицы ClickHouse](./clickhouse.md). +Подробнее см. раздел [Using regexp_tree dictionaries in ClickHouse Cloud](../layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud). +::: + + +## Конфигурация \{#configuration\} + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0); +``` + +Поля параметров: + +| Настройка | Описание | +| --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `PATH` | Абсолютный путь к YAML-файлу, содержащему дерево регулярных выражений. При создании через DDL файл должен находиться в каталоге `user_files`. | + + +## Структура YAML-файла \{#yaml-file-structure\} + +YAML-файл содержит список узлов дерева регулярных выражений. Каждый узел может иметь атрибуты и дочерние узлы, образуя иерархию: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +Каждый узел имеет следующую структуру: + +* **`regexp`**: Регулярное выражение, соответствующее этому узлу. +* **attributes**: Определяемые пользователем атрибуты словаря (например, `name`, `version`). Значения атрибутов могут содержать **обратные ссылки** на группы захвата в регулярном выражении, записанные как `\1` или `$1` (числа 1–9). Эти значения заменяются соответствующей группой захвата во время выполнения запроса. +* **child nodes**: Список дочерних узлов, каждый со своими атрибутами и, при необходимости, с дополнительными потомками. Имя списка дочерних узлов произвольное (например, `versions` выше). Сопоставление строк выполняется в порядке обхода в глубину: если строка соответствует узлу, его дочерние узлы также проверяются. Атрибуты самого глубокого соответствующего узла имеют приоритет и переопределяют одноимённые атрибуты родительских узлов. + + +## Связанные страницы \{#related-pages\} + +- [regexp_tree dictionary layout](../layouts/regexp-tree.md) — конфигурация размещения, примеры запросов и режимы сопоставления +- [dictGet](/sql-reference/functions/ext-dict-functions#dictGet), [dictGetAll](/sql-reference/functions/ext-dict-functions#dictGetAll) — функции для выполнения запросов к словарям regexp_tree \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md new file mode 100644 index 00000000000..99e0a3a49ab --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md @@ -0,0 +1,60 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/ytsaurus +title: 'Источник словаря YTsaurus' +sidebar_position: 13 +sidebar_label: 'YTsaurus' +description: 'Настройка YTsaurus как источника словаря в ClickHouse.' +doc_type: 'reference' +--- + +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + +:::info +Это экспериментальная функция, которая в будущих версиях может измениться с нарушением обратной совместимости. +Включите использование источника словаря YTsaurus +с помощью настройки [`allow_experimental_ytsaurus_dictionary_source`](/operations/settings/settings#allow_experimental_ytsaurus_dictionary_source). +::: + +Пример настроек: + + + + ```sql + SOURCE(YTSAURUS( + http_proxy_urls 'http://localhost:8000' + cypress_path '//tmp/test' + oauth_token 'password' + )) + ``` + + + + ```xml + + + http://localhost:8000 + //tmp/test + password + 1 + + + ``` + + + +
    + +Поля настройки: + +| Setting | Description | +| ----------------- | ----------------------------------- | +| `http_proxy_urls` | URL HTTP‑прокси‑сервера YTsaurus. | +| `cypress_path` | Путь в Cypress к источнику таблицы. | +| `oauth_token` | OAuth‑токен. | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md index 38961b7a9ca..a7fe3a93467 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md @@ -73,10 +73,10 @@ Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table defa ``` :::note -В ClickHouse Cloud пользователям следует использовать ключевое слово `PERMANENTLY`, например: `DETACH TABLE PERMANENTLY`. Если его не использовать, таблицы будут снова подключены при перезапуске кластера, например во время обновления. +В ClickHouse Cloud пользователям следует использовать ключевое слово `PERMANENTLY`, например: `DETACH TABLE <table> PERMANENTLY`. Если его не использовать, таблицы будут снова подключены при перезапуске кластера, например во время обновления. ::: **См. также** * [Материализованное представление](/sql-reference/statements/create/view#materialized-view) -* [Словари](../../sql-reference/dictionaries/index.md) +* [Словари](./create/dictionary/index.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md index 8cb5a5103bd..3e1dbaab916 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md @@ -104,4 +104,4 @@ EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster] **См. также** -* [Справочники](../../sql-reference/dictionaries/index.md) +* [Справочники](./create/dictionary/index.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md index 5c89d2c11b0..d5405161da8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md @@ -19,6 +19,10 @@ doc_type: 'reference' OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL | FORCE] [DEDUPLICATE [BY expression]] ``` +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + Запрос `OPTIMIZE` поддерживается для семейства [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) (включая [materialized views](/sql-reference/statements/create/view#materialized-view)) и движка [Buffer](../../engines/table-engines/special/buffer.md). Другие табличные движки `OPTIMIZE` не поддерживают. Когда `OPTIMIZE` используется с семейством табличных движков [ReplicatedMergeTree](../../engines/table-engines/mergetree-family/replication.md), ClickHouse создает задачу на выполнение слияния и ожидает её завершения на всех репликах (если настройка [alter_sync](/operations/settings/settings#alter_sync) установлена в значение `2`) или на текущей реплике (если настройка [alter_sync](/operations/settings/settings#alter_sync) установлена в значение `1`). @@ -34,6 +38,55 @@ OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION I Если `alter_sync` установлен в значение `2`, и некоторые реплики неактивны дольше времени, заданного настройкой `replication_wait_for_inactive_replica_timeout`, генерируется исключение `UNFINISHED`. ::: +## DRY RUN \{#dry-run\} + +Предложение `DRY RUN` имитирует слияние указанных частей без фиксации результата. Слитая часть записывается во временное место на диске, проходит проверку и затем удаляется. Исходные части и данные таблицы остаются неизменными. + +Это полезно для: + +* Тестирования корректности слияния между разными версиями ClickHouse. +* Детерминированного воспроизведения ошибок, связанных со слияниями. +* Измерения производительности слияния. + +`DRY RUN` поддерживается только для таблиц семейства [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md). Требуется ключевое слово `PARTS` со списком имён частей. Все указанные части должны существовать, быть активными и принадлежать одной и той же партиции. + +`DRY RUN` несовместим с `FINAL` и `PARTITION`. Его можно комбинировать с `DEDUPLICATE` (с необязательным указанием столбцов) и `CLEANUP` (для таблиц `ReplacingMergeTree`). + +**Синтаксис** + +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + +По умолчанию результирующая часть после слияния проверяется аналогично запросу [`CHECK TABLE`](/sql-reference/statements/check-table). Это поведение контролируется настройкой [optimize_dry_run_check_part](/operations/settings/settings#optimize_dry_run_check_part) (включена по умолчанию). При её отключении валидация не выполняется, что может быть полезно для бенчмаркинга самой операции слияния. + +**Пример** + +```sql +CREATE TABLE dry_run_example (key UInt64, value String) ENGINE = MergeTree ORDER BY key; + +INSERT INTO dry_run_example VALUES (1, 'a'), (2, 'b'); +INSERT INTO dry_run_example VALUES (1, 'c'), (4, 'd'); + +-- Simulate merging using two parts +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0'; + +-- Simulate merging with deduplication +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0' DEDUPLICATE; + +-- Parts and data remain unchanged after DRY RUN +SELECT name, rows FROM system.parts +WHERE database = currentDatabase() AND table = 'dry_run_example' AND active +ORDER BY name; +``` + +```response +┌─name────────┬─rows─┐ +│ all_1_1_0 │ 2 │ +│ all_2_2_0 │ 2 │ +└─────────────┴──────┘ +``` + ## Выражение BY \{#by-expression\} Если вы хотите выполнять дедупликацию по произвольному набору столбцов, а не по всем, вы можете явно указать список столбцов или использовать любую комбинацию выражений [`*`](../../sql-reference/statements/select/index.md#asterisk), [`COLUMNS`](/sql-reference/statements/select#select-clause) или [`EXCEPT`](/sql-reference/statements/select/except-modifier). Явно заданный или неявно развёрнутый список столбцов должен включать все столбцы, указанные в выражении упорядочивания строк (как первичного, так и сортировочного ключей), а также в выражении партиционирования (ключ партиционирования). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md index cd00fab3ad0..c3a946fcc81 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md @@ -65,4 +65,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **См. также** -* [Справочники](../../sql-reference/dictionaries/index.md) +* [Справочники](./create/dictionary/index.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md index 006306b7463..b56575425e4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md @@ -488,7 +488,7 @@ SELECT a, b, toTypeName(a), toTypeName(b) FROM t_1 FULL JOIN t_2 USING (a, b); В некоторых случаях эффективнее использовать [IN](../../../sql-reference/operators/in.md) вместо `JOIN`. -Если вам нужен `JOIN` для соединения с таблицами измерений (это относительно небольшие таблицы, содержащие свойства измерений, такие как имена рекламных кампаний), `JOIN` может быть не очень удобен из-за того, что правая таблица повторно читается для каждого запроса. Для таких случаев существует функциональность «словарей» (dictionaries), которую следует использовать вместо `JOIN`. Подробности см. в разделе [Dictionaries](../../../sql-reference/dictionaries/index.md). +Если вам нужен `JOIN` для соединения с таблицами измерений (это относительно небольшие таблицы, содержащие свойства измерений, такие как имена рекламных кампаний), `JOIN` может быть не очень удобен из-за того, что правая таблица повторно читается для каждого запроса. Для таких случаев существует функциональность «словарей» (dictionaries), которую следует использовать вместо `JOIN`. Подробности см. в разделе [Dictionaries](../../create/dictionary/index.md). ### Ограничения по памяти \{#memory-limitations\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md index ff078695233..a45c6506810 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md @@ -247,7 +247,7 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%' ## SHOW DICTIONARIES \{#show-dictionaries\} -Оператор `SHOW DICTIONARIES` отображает список [словарей](../../sql-reference/dictionaries/index.md). +Оператор `SHOW DICTIONARIES` отображает список [словарей](./create/dictionary/index.md). ### Синтаксис \{#syntax-4\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index aa9fe2df862..7ccc2bb6059 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -13,7 +13,7 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; ## SYSTEM RELOAD EMBEDDED DICTIONARIES \{#reload-embedded-dictionaries\} -Перезагружает все [внутренние словари](../../sql-reference/dictionaries/index.md). +Перезагружает все [внутренние словари](./create/dictionary/index.md). По умолчанию внутренние словари отключены. Всегда возвращает `Ok.` независимо от результата обновления внутреннего словаря. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md index 31af501e756..3d3858825f2 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md @@ -10,7 +10,7 @@ doc_type: 'reference' # Табличная функция dictionary \{#dictionary-table-function\} -Отображает данные словаря [dictionary](../../sql-reference/dictionaries/index.md) в виде таблицы ClickHouse. Работает так же, как движок [Dictionary](../../engines/table-engines/special/dictionary.md). +Отображает данные словаря [dictionary](../statements/create/dictionary/index.md) в виде таблицы ClickHouse. Работает так же, как движок [Dictionary](../../engines/table-engines/special/dictionary.md). ## Синтаксис \{#syntax\} @@ -18,6 +18,7 @@ doc_type: 'reference' dictionary('dict') ``` + ## Аргументы \{#arguments\} - `dict` — Имя словаря. [String](../../sql-reference/data-types/string.md). @@ -59,6 +60,7 @@ SELECT * FROM dictionary('new_dictionary'); └────┴───────┘ ``` + ## См. также \{#related\} -- [Движок Dictionary](/engines/table-engines/special/dictionary) +- [Движок Dictionary](/engines/table-engines/special/dictionary) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md index f324565650e..d913de5b00e 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md @@ -431,7 +431,7 @@ y: 993 ### Эволюция схемы \{#iceberg-writes-schema-evolution\} -ClickHouse позволяет добавлять, удалять или изменять столбцы с простыми типами данных (не `tuple`, не `array`, не `map`). +ClickHouse позволяет добавлять, удалять, изменять или переименовывать столбцы с простыми типами данных (не `tuple`, не `array`, не `map`). ### Пример \{#example-iceberg-writes-evolution\} @@ -490,8 +490,30 @@ Row 1: ────── x: Ivanov y: 993 + +ALTER TABLE iceberg_writes_example RENAME COLUMN y TO value; +SHOW CREATE TABLE iceberg_writes_example; + + ┌─statement─────────────────────────────────────────────────┐ +1. │ CREATE TABLE default.iceberg_writes_example ↴│ + │↳( ↴│ + │↳ `x` Nullable(String), ↴│ + │↳ `value` Nullable(Int64) ↴│ + │↳) ↴│ + │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │ + └───────────────────────────────────────────────────────────┘ + +SELECT * +FROM iceberg_writes_example +FORMAT VERTICAL; + +Row 1: +────── +x: Ivanov +value: 993 ``` + ### Компакция \{#iceberg-writes-compaction\} ClickHouse поддерживает компакцию таблиц Iceberg. В настоящее время он может объединять файлы позиционных удалений (position delete files) с файлами данных с одновременным обновлением метаданных. Идентификаторы и метки времени предыдущих снимков (snapshot IDs and timestamps) остаются неизменными, поэтому функция time-travel по‑прежнему может использоваться с теми же значениями. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md index 3c5be2806fd..3cf93bf2f34 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md @@ -129,4 +129,4 @@ SELECT * FROM mongodb( ## См. также \{#related\} - [Движок таблицы `MongoDB`](engines/table-engines/integrations/mongodb.md) -- [Использование MongoDB в качестве источника словаря](sql-reference/dictionaries/index.md#mongodb) \ No newline at end of file +- [Использование MongoDB в качестве источника словаря](../statements/create/dictionary/sources.md#mongodb) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md index 45c453dc481..8765a8e02e3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md @@ -18,6 +18,7 @@ doc_type: 'reference' mysql({host:port, database, table, user, password[, replace_query, on_duplicate_clause] | named_collection[, option=value [,..]]}) ``` + ## Аргументы \{#arguments\} | Аргумент | Описание | @@ -48,6 +49,7 @@ SELECT name FROM mysql(`mysql{1|2|3}:3306`, 'mysql_database', 'mysql_table', 'us SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database', 'mysql_table', 'user', 'password'); ``` + ## Возвращаемое значение \{#returned_value\} Объект таблицы с теми же столбцами, что и исходная таблица MySQL. @@ -143,11 +145,12 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password') WHERE id > (SELECT max(id) FROM mysql_copy); ``` + ## См. также \{#related\} - [Движок таблицы MySQL](../../engines/table-engines/integrations/mysql.md) -- [Использование MySQL в качестве источника словаря](/sql-reference/dictionaries#mysql) +- [Использование MySQL в качестве источника словаря](/sql-reference/statements/create/dictionary/sources#mysql) - [mysql_datatypes_support_level](operations/settings/settings.md#mysql_datatypes_support_level) - [mysql_map_fixed_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_fixed_string_to_text_in_show_columns) - [mysql_map_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_string_to_text_in_show_columns) -- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) +- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md index 2a16229270e..8839b79b2ca 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md @@ -19,6 +19,7 @@ odbc(datasource, external_table) odbc(named_collection) ``` + ## Аргументы \{#arguments\} | Аргумент | Описание | @@ -110,7 +111,8 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test') └────────┴──────────────┴───────┴────────────────┘ ``` + ## См. также \{#see-also\} -- [Словари ODBC](/sql-reference/dictionaries#dbms) -- [Табличный движок ODBC](/engines/table-engines/integrations/odbc). +- [Словари ODBC](/sql-reference/statements/create/dictionary/sources#dbms) +- [Табличный движок ODBC](/engines/table-engines/integrations/odbc). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md index c3a6cf1d913..b07a09be5ed 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md @@ -17,6 +17,7 @@ doc_type: 'reference' postgresql({host:port, database, table, user, password[, schema, [, on_conflict]] | named_collection[, option=value [,..]]}) ``` + ## Аргументы \{#arguments\} | Аргумент | Описание | @@ -67,7 +68,8 @@ SELECT name FROM postgresql(`postgres{1|2|3}:5432`, 'postgres_database', 'postgr SELECT name FROM postgresql(`postgres1:5431|postgres2:5432`, 'postgres_database', 'postgres_table', 'user', 'password'); ``` -Поддерживаются приоритеты реплик для источника словаря PostgreSQL. Чем больше число в отображении, тем ниже приоритет. Наивысший приоритет — `0`. +Поддерживаются приоритеты реплик для источника словаря PostgreSQL. Чем больше значение в отображении (map), тем ниже приоритет. Наивысший приоритет — `0`. + ## Примеры \{#examples\} @@ -94,7 +96,7 @@ postgresql> SELECT * FROM test; (1 row) ``` -Выбор данных из ClickHouse с использованием простых аргументов: +Выбор данных из ClickHouse с использованием позиционных аргументов: ```sql SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'password') WHERE str IN ('test'); @@ -132,7 +134,7 @@ SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'p └────────┴──────────────┴───────┴──────┴────────────────┘ ``` -Использование нестандартной схемы: +Использование схемы, отличной от схемы по умолчанию: ```text postgres=# CREATE SCHEMA "nice.schema"; @@ -147,11 +149,12 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) ENGINE PostgreSQL('localhost:5432', 'clickhouse', 'nice.table', 'postgrsql_user', 'password', 'nice.schema'); ``` + ## Связанные материалы \{#related\} - [Движок таблиц PostgreSQL](../../engines/table-engines/integrations/postgresql.md) -- [Использование PostgreSQL как источника словаря](/sql-reference/dictionaries#postgresql) +- [Использование PostgreSQL как источника словаря](/sql-reference/statements/create/dictionary/sources#postgresql) ### Репликация или миграция данных Postgres с помощью PeerDB \{#replicating-or-migrating-postgres-data-with-with-peerdb\} -> В дополнение к табличным функциям вы всегда можете использовать [PeerDB](https://docs.peerdb.io/introduction) от ClickHouse для настройки непрерывного конвейера передачи данных из Postgres в ClickHouse. PeerDB — это специализированный инструмент, разработанный для репликации данных из Postgres в ClickHouse с использованием фиксации изменений данных (CDC). +> В дополнение к табличным функциям вы всегда можете использовать [PeerDB](https://docs.peerdb.io/introduction) от ClickHouse для настройки непрерывного конвейера передачи данных из Postgres в ClickHouse. PeerDB — это специализированный инструмент, разработанный для репликации данных из Postgres в ClickHouse с использованием фиксации изменений данных (CDC). \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md index 0144d8468f1..12bbe7aca66 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md @@ -17,6 +17,7 @@ doc_type: 'reference' redis(host:port, key, structure[, db_index[, password[, pool_size]]]) ``` + ## Аргументы \{#arguments\} | Argument | Description | @@ -59,7 +60,8 @@ INSERT INTO TABLE FUNCTION redis( 'key String, v1 String, v2 UInt32') values ('1', '1', 1); ``` + ## См. также \{#related\} - [Табличный движок `Redis`](/engines/table-engines/integrations/redis.md) -- [Использование Redis в качестве источника словаря](/sql-reference/dictionaries/index.md#redis) +- [Использование Redis в качестве источника словаря](/sql-reference/statements/create/dictionary/sources#redis) \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md index 7f09dc0b1e4..d6e3ab68567 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md @@ -50,9 +50,13 @@ ClickHouse поддерживает стандартную грамматику ```text aggregate_function (column_name) OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column] - [ROWS or RANGE expression_to_bound_rows_withing_the_group]] | [window_name]) + [ROWS or RANGE expression_to_bound_rows_within_the_group]] | [window_name]) FROM table_name -WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]]) +WINDOW window_name as ([ + [PARTITION BY grouping_column] + [ORDER BY sorting_column] + [ROWS or RANGE expression_to_bound_rows_within_the_group] +]) ``` * `PARTITION BY` - задает, как разбить результирующий набор на группы. @@ -90,6 +94,7 @@ WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column] * [`lagInFrame(x)`](./lagInFrame.md) - Возвращает значение, вычисленное для строки, которая находится на заданное количество строк раньше текущей строки в упорядоченном фрейме. * [`leadInFrame(x)`](./leadInFrame.md) - Возвращает значение, вычисленное для строки, которая находится на заданное количество строк позже текущей строки в упорядоченном фрейме. + ## Примеры \{#examples\} Рассмотрим несколько примеров использования оконных функций. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md index f3c85babac7..24848faa927 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/tutorial.md @@ -156,7 +156,7 @@ doc_type: 'guide' Выполните несколько запросов для анализа данных. Изучите следующие примеры или попробуйте свой собственный SQL-запрос. - * Вычислите средний размер чаевых: + * Рассчитайте среднюю сумму чаевых: ```sql SELECT round(avg(tip_amount), 2) FROM trips @@ -188,7 +188,7 @@ doc_type: 'guide' Ожидаемый результат

    - Значения `passenger_count` принимают значения от 0 до 9: + Поле `passenger_count` принимает значения от 0 до 9: ```response ┌─passenger_count─┬─average_total_amount─┐ @@ -238,7 +238,7 @@ doc_type: 'guide'

    - * Вычислите продолжительность каждой поездки в минутах, затем сгруппируйте результаты по продолжительности поездки: + * Вычислите продолжительность каждой поездки в минутах, затем сгруппируйте результаты по длительности поездки: ```sql SELECT @@ -327,7 +327,7 @@ doc_type: 'guide'

    - 7. Извлечь записи о поездках до аэропортов Ла‑Гуардия или JFK: + 7. Извлеките записи о поездках в аэропорты Ла‑Гуардия или JFK: ```sql SELECT @@ -369,7 +369,7 @@ doc_type: 'guide' ## Создайте словарь - Словарь — это хранящееся в памяти отображение пар ключ-значение. Подробности см. в разделе [Словари](/sql-reference/dictionaries/index.md) + Словарь — это хранящееся в памяти отображение пар ключ-значение. Подробности см. в разделе [Словари](/sql-reference/statements/create/dictionary) Создайте словарь, связанный с таблицей в вашем сервисе ClickHouse. Таблица и словарь основаны на CSV-файле, который содержит строку для каждого района Нью-Йорка. @@ -403,7 +403,7 @@ doc_type: 'guide' ``` :::note - Установка `LIFETIME` в 0 отключает автоматические обновления, чтобы избежать ненужного трафика к нашему S3 бакету. В других случаях вы можете настроить это по‑другому. Подробности см. в разделе [Обновление данных словаря с помощью LIFETIME](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime). + Установка `LIFETIME` в 0 отключает автоматические обновления, чтобы избежать ненужного трафика к нашему S3 бакету. В других случаях вы можете настроить это по‑другому. Подробности см. в разделе [Обновление данных словаря с помощью LIFETIME](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime). ::: 3. Убедитесь, что всё работает. Следующий запрос должен вернуть 265 строк — по одной для каждого района: @@ -411,7 +411,7 @@ doc_type: 'guide' SELECT * FROM taxi_zone_dictionary ``` - 4. Используйте функцию `dictGet` ([или ее варианты](./sql-reference/functions/ext-dict-functions.md)), чтобы извлечь значение из словаря. Вы передаете имя словаря, требуемое значение и ключ (в нашем примере это столбец `LocationID` словаря `taxi_zone_dictionary`). + 4. Используйте функцию `dictGet` ([или её варианты](./sql-reference/functions/ext-dict-functions.md)), чтобы извлечь значение из словаря. Вы передаёте имя словаря, значение, которое нужно получить, и ключ (в нашем примере это столбец `LocationID` словаря `taxi_zone_dictionary`). Например, следующий запрос возвращает `Borough`, для которого `LocationID` равен 132, что соответствует аэропорту JFK): @@ -429,12 +429,12 @@ doc_type: 'guide' 1 rows in set. Elapsed: 0.004 sec. ``` - 5. Используйте функцию `dictHas`, чтобы проверить, присутствует ли ключ в словаре. Например, следующий запрос возвращает `1` (в ClickHouse это означает «true»): + 5. Используйте функцию `dictHas`, чтобы проверить, присутствует ли ключ в словаре. Например, следующий запрос возвращает `1` (что соответствует значению «true» в ClickHouse): ```sql SELECT dictHas('taxi_zone_dictionary', 132) ``` - 6. Следующий запрос вернёт 0, потому что 4567 не является значением поля `LocationID` в словаре: + 6. Следующий запрос вернёт 0, потому что 4567 не является значением `LocationID` в словаре: ```sql SELECT dictHas('taxi_zone_dictionary', 4567) ``` @@ -484,7 +484,7 @@ doc_type: 'guide' ORDER BY total DESC ``` - Ответ идентичен ответу на запрос `dictGet`: + Ответ идентичен результату запроса `dictGet`: ```response ┌─total─┬─Borough───────┐ @@ -514,7 +514,7 @@ doc_type: 'guide' LIMIT 1000 ``` :::note - Как правило, в ClickHouse мы избегаем частого использования `SELECT *`. Следует извлекать только те столбцы, которые вам действительно нужны. + Как правило, в ClickHouse мы стараемся не использовать `SELECT *`. Рекомендуется извлекать только те столбцы, которые вам действительно нужны. ::: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md index df8f2b398d3..409d01bd826 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md @@ -588,7 +588,7 @@ LIMIT 5 ## Использование словарей \{#using-dictionaries\} -[Словари](/sql-reference/dictionaries) — это [ключевая возможность](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) ClickHouse, обеспечивающая хранимое в памяти представление данных в формате [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) из различных внутренних и внешних [источников](/sql-reference/dictionaries#dictionary-sources), оптимизированное для сверхнизкой задержки при выполнении запросов поиска. +[Словари](/sql-reference/statements/create/dictionary) — это [ключевая возможность](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) ClickHouse, обеспечивающая хранимое в памяти представление данных в формате [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) из различных внутренних и внешних [источников](/sql-reference/statements/create/dictionary/sources#dictionary-sources), оптимизированное для сверхнизкой задержки при выполнении запросов поиска. @@ -726,7 +726,7 @@ SELECT FROM geoip_url ``` -Чтобы выполнять низкозадержечные IP‑поиски в ClickHouse, мы будем использовать словари для хранения сопоставления ключей с атрибутами наших Geo IP‑данных в памяти. ClickHouse предоставляет структуру словаря `ip_trie` [структура словаря](/sql-reference/dictionaries#ip_trie) для сопоставления наших сетевых префиксов (CIDR‑блоков) с координатами и кодами стран. Следующий запрос определяет словарь, используя эту структуру и приведённую выше таблицу в качестве источника. +Чтобы выполнять низкозадержечные IP‑поиски в ClickHouse, мы будем использовать словари для хранения сопоставления ключей с атрибутами наших Geo IP‑данных в памяти. ClickHouse предоставляет структуру словаря `ip_trie` [структура словаря](/sql-reference/statements/create/dictionary/layouts/ip-trie) для сопоставления наших сетевых префиксов (CIDR‑блоков) с координатами и кодами стран. Следующий запрос определяет словарь, используя эту структуру и приведённую выше таблицу в качестве источника. ```sql CREATE DICTIONARY ip_trie ( @@ -838,10 +838,10 @@ ORDER BY (ServiceName, Timestamp) Разбор [строк User-Agent](https://en.wikipedia.org/wiki/User_agent) — это классическая задача на регулярные выражения и типичное требование для наборов данных на основе логов и трассировок. ClickHouse обеспечивает эффективный разбор строк User-Agent с использованием Regular Expression Tree Dictionaries. -Словари на основе дерева регулярных выражений определяются в ClickHouse open-source с использованием типа источника словаря YAMLRegExpTree, который указывает путь к YAML-файлу, содержащему дерево регулярных выражений. Если вы хотите использовать собственный словарь регулярных выражений, подробности о требуемой структуре можно найти [здесь](/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source). Далее мы сосредоточимся на разборе User-Agent с использованием [uap-core](https://github.com/ua-parser/uap-core) и загрузим наш словарь в поддерживаемом формате CSV. Этот подход совместим как с OSS, так и с ClickHouse Cloud. +Словари на основе дерева регулярных выражений определяются в ClickHouse open-source с использованием типа источника словаря YAMLRegExpTree, который указывает путь к YAML-файлу, содержащему дерево регулярных выражений. Если вы хотите использовать собственный словарь регулярных выражений, подробности о требуемой структуре можно найти [здесь](/sql-reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source). Далее мы сосредоточимся на разборе User-Agent с использованием [uap-core](https://github.com/ua-parser/uap-core) и загрузим наш словарь в поддерживаемом формате CSV. Этот подход совместим как с OSS, так и с ClickHouse Cloud. :::note -В примерах ниже мы используем снимки актуальных регулярных выражений uap-core для разбора User-Agent по состоянию на июнь 2024 года. Актуальный файл, который периодически обновляется, можно найти [здесь](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml). Вы можете выполнить шаги, описанные [здесь](/sql-reference/dictionaries#collecting-attribute-values), чтобы загрузить данные в CSV-файл, используемый ниже. +В примерах ниже мы используем снимки актуальных регулярных выражений uap-core для разбора User-Agent по состоянию на июнь 2024 года. Актуальный файл, который периодически обновляется, можно найти [здесь](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml). Вы можете выполнить шаги, описанные [здесь](/sql-reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values), чтобы загрузить данные в CSV-файл, используемый ниже. ::: Создайте следующие таблицы движка Memory. Они будут хранить наши регулярные выражения для разбора устройств, браузеров и операционных систем. @@ -875,7 +875,7 @@ CREATE TABLE regexp_device ) ENGINE=Memory; ``` -Эти таблицы можно заполнить данными из следующих публично доступных CSV‑файлов с помощью табличной функции URL: +Эти таблицы можно заполнить данными из следующих публично размещённых CSV‑файлов с помощью табличной функции url: ```sql INSERT INTO regexp_os SELECT * FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/user_agent_regex/regexp_os.csv', 'CSV', 'id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') @@ -1031,7 +1031,7 @@ Os: ('Other','0','0','0') - [Расширенные темы по словарям](/dictionary#advanced-dictionary-topics) - [«Использование словарей для ускорения запросов»](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [Словари](/sql-reference/dictionaries) +- [Словари](/sql-reference/statements/create/dictionary) ## Ускорение запросов \{#accelerating-queries\} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md index 3479706b659..a5843c63b87 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md @@ -1,6 +1,6 @@ --- slug: /use-cases/observability/clickstack/alerts -title: 'Поиск с ClickStack' +title: 'Оповещения с ClickStack' sidebar_label: 'Оповещения' pagination_prev: null pagination_next: null @@ -24,15 +24,13 @@ import remove_chart_alert from '@site/static/images/use-cases/observability/remo import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +ClickStack включает встроенную поддержку оповещений, позволяя командам в реальном времени обнаруживать и оперативно реагировать на проблемы в логах, метриках и трейсах. -## Оповещения в ClickStack \{#alerting-in-clickstack\} - -ClickStack включает встроенную поддержку оповещений, позволяя командам в реальном времени выявлять проблемы в логах, метриках и трейсах и оперативно на них реагировать. - -Оповещения могут создаваться напрямую в интерфейсе HyperDX и интегрироваться с популярными системами уведомлений, такими как Slack и PagerDuty. +Оповещения могут создаваться непосредственно в интерфейсе HyperDX и интегрироваться с популярными системами уведомлений, такими как Slack и PagerDuty. Механизм оповещений бесшовно работает со всеми вашими данными в ClickStack, помогая отслеживать состояние системы, выявлять регрессии производительности и мониторить ключевые бизнес-события. + ## Типы оповещений \{#types-of-alerts\} ClickStack поддерживает два взаимодополняющих способа создания оповещений: **оповещения по поиску (Search alerts)** и **оповещения по графикам дашборда (Dashboard chart alerts)**. После создания оповещение привязывается либо к поисковому запросу, либо к графику. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md index 50cf5a70be8..c58ff43fe79 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md @@ -14,4 +14,5 @@ keywords: ['Примеры наборов данных ClickStack', 'Демон |---------|-------------| | [Sample Data](sample-data.md) | Загрузите демонстрационный набор данных, содержащий логи, трейсы и метрики из нашего демонстрационного окружения | | [Local Data](local-data.md) | Соберите метрики и логи локальной системы и отправьте их в ClickStack для анализа | -| [Remote Demo Data](remote-demo-data.md) | Подключитесь к нашему удалённому демонстрационному кластеру и проанализируйте проблему | \ No newline at end of file +| [Remote Demo Data](remote-demo-data.md) | Подключитесь к нашему удалённому демонстрационному кластеру и проанализируйте проблему | +| [Session Replay Demo](session-replay.md) | Настройте инструментацию демонстрационного веб-приложения для реплея сессий и просматривайте свои взаимодействия в ClickStack | \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md new file mode 100644 index 00000000000..3e33206ba7e --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md @@ -0,0 +1,179 @@ +--- +slug: /use-cases/observability/clickstack/example-datasets/session-replay-demo +title: 'Демонстрация воспроизведения сессий' +sidebar_position: 4 +pagination_prev: null +pagination_next: null +description: 'Интерактивное демонстрационное приложение, показывающее, как настроить инструментирование веб-приложения для воспроизведения сессий в ClickStack' +doc_type: 'guide' +keywords: ['clickstack', 'воспроизведение сессий', 'браузерный SDK', 'демо', 'обсервабилити', 'инструментирование'] +--- + +import Image from '@theme/IdealImage'; +import api_key from '@site/static/images/clickstack/api-key.png'; +import demo_app from '@site/static/images/clickstack/session-replay/demo-app.png'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; + +:::note[Если кратко] +В этом руководстве описывается процесс инструментирования веб-приложения для записи и воспроизведения сессий с помощью ClickStack Browser SDK. В отличие от других демонстрационных наборов данных, которые загружают заранее сгенерированные данные, это демо предоставляет интерактивное приложение, в котором вы генерируете данные сессий своими действиями. + +Ориентировочное время: 10–15 минут +::: + + +## Обзор \{#overview\} + +[Демонстрационное приложение для session replay](https://github.com/ClickHouse/clickstack-session-replay-demo) — это просмотрщик документации, написанный на чистом JavaScript. Оно демонстрирует, насколько минимальным может быть инструментирование session replay: один тег со скриптом и один вызов инициализации автоматически фиксируют все действия пользователя. + +Репозиторий содержит две ветки: + +- **`main`** — полностью инструментированная и готовая к немедленному использованию +- **`pre-instrumented`** — чистая версия без инструментирования, с комментариями в коде, указывающими, где его добавить + +В этом руководстве сначала используется ветка `main`, чтобы увидеть session replay в действии, а затем подробно рассматривается код инструментирования, чтобы вы могли применить тот же подход в своём приложении. + +Для ознакомления с тем, что такое session replay и как он интегрируется в ClickStack, см. страницу функции [Session Replay](/use-cases/observability/clickstack/session-replay). + +## Предварительные требования \{#prerequisites\} + +- Установлены Docker и Docker Compose +- Порты 3000, 4317, 4318 и 8080 должны быть свободны + +## Запуск демо \{#running-the-demo\} + + + +### Клонирование репозитория \{#clone-repository\} + +```shell +git clone https://github.com/ClickHouse/clickstack-session-replay-demo +cd clickstack-session-replay-demo +``` + +### Запуск ClickStack \{#start-clickstack\} + +```shell +docker-compose up -d clickstack +``` + +### Получение вашего ключа API \{#get-api-key\} + +1. Откройте HyperDX по адресу [http://localhost:8080](http://localhost:8080) +2. Создайте аккаунт или войдите, если он уже есть +3. Перейдите в **Team Settings → API Keys** +4. Скопируйте ваш **ключ API для приёма данных API key** + + + +5. Установите его как переменную окружения: + +```shell +export CLICKSTACK_API_KEY='your-api-key-here' +``` + +### Запуск демонстрационного приложения \{#start-demo-app\} + +```shell +docker-compose --profile demo up demo-app +``` + +:::note +Убедитесь, что вы выполняете эту команду в том же терминале, в котором экспортировали переменную `CLICKSTACK_API_KEY`. +::: + +Откройте [http://localhost:3000](http://localhost:3000) в браузере и взаимодействуйте с приложением: ищите темы, фильтруйте по категориям, просматривайте примеры кода и добавляйте элементы в закладки. + + + +Все взаимодействия автоматически записываются ClickStack Browser SDK. + +### Просмотр воспроизведения вашей сессии \{#view-session-replay\} + +Вернитесь в HyperDX по адресу [http://localhost:8080](http://localhost:8080) и перейдите в раздел **Client Sessions** в левой боковой панели. + + + +Вы должны увидеть свою сессию с указанием её продолжительности и количества событий. Нажмите кнопку ▶️, чтобы воспроизвести её. + + + +Переключайтесь между режимами **Highlighted** и **All Events**, чтобы настроить уровень детализации на временной шкале. + + + +## Инструментирование \{#instrumentation\} + +Демонстрационное приложение показывает, как мало кода требуется для включения воспроизведения сессий (session replay). Достаточно всего двух изменений в приложении: + +**1. Подключите SDK (`app/public/index.html`):** + +```html + +``` + +**2. Инициализируйте ClickStack (`app/public/js/app.js`):** + +```javascript +window.HyperDX.init({ + url: 'http://localhost:4318', + apiKey: window.CLICKSTACK_API_KEY, + service: 'clickhouse-session-replay-demo', + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + +Остальной код — это стандартный прикладной код. SDK автоматически собирает все взаимодействия пользователя, логи консоли, сетевые запросы и ошибки — дополнительная инструментация не требуется. + + +### Попробуйте сами \{#try-it-yourself\} + +Чтобы инструментировать приложение с нуля, переключитесь на ветку `pre-instrumented`: + +```shell +git checkout pre-instrumented +``` + +Эта ветка содержит то же приложение, но без какого-либо инструментирования ClickStack. Комментарии в коде в `app/public/index.html` и `app/public/js/app.js` указывают, куда именно нужно добавить два приведённых выше фрагмента кода. После добавления перезапустите демонстрационное приложение, и ваши взаимодействия начнут отображаться в ClickStack. + + +## Устранение неполадок \{#troubleshooting\} + +### Сеансы не отображаются в HyperDX \{#sessions-not-appearing\} + +1. Проверьте консоль браузера на наличие ошибок +2. Убедитесь, что ClickStack запущён: `docker-compose ps` +3. Убедитесь, что установлен API-ключ: `echo $CLICKSTACK_API_KEY` +4. Измените временной диапазон в представлении Client Sessions (попробуйте **Last 15 minutes**) +5. Выполните принудительное обновление страницы в браузере: `Cmd+Shift+R` (Mac) или `Ctrl+Shift+R` (Windows/Linux) + +### Ошибки 401 Unauthorized \{#401-errors\} + +API-ключ указан некорректно. Убедитесь, что вы: + +1. Экспортировали его в терминале: `export CLICKSTACK_API_KEY='your-key'` +2. Запустили демо-приложение в **том же терминале**, где вы его экспортировали +3. Получили ключ в интерфейсе HyperDX (а не использовали случайно сгенерированную строку) + +## Очистка \{#cleanup\} + +Остановите сервисы: + +```bash +docker-compose down +``` + +Удалить все данные: + +```bash +docker-compose down -v +``` + + +## Подробнее \{#learn-more\} + +- [Session Replay](/use-cases/observability/clickstack/session-replay) — обзор функции, варианты SDK и настройки конфиденциальности +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — полный перечень возможностей SDK и расширенные настройки +- [ClickStack Getting Started](/use-cases/observability/clickstack/getting-started) — разверните ClickStack и выполните приём ваших первых данных +- [All Sample Datasets](/use-cases/observability/clickstack/sample-datasets) — другие примерные наборы данных и руководства \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md new file mode 100644 index 00000000000..2d6032f235c --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md @@ -0,0 +1,150 @@ +--- +slug: /use-cases/observability/clickstack/session-replay +title: "Воспроизведение сессий" +sidebar_label: "Воспроизведение сессий" +sidebar_position: 5 +pagination_prev: null +pagination_next: null +description: "Записывайте и воспроизводите пользовательские сессии в ClickStack, чтобы отлаживать проблемы фронтенда, понимать поведение пользователей и коррелировать активность браузера с логами и трейсами на бэкенде." +doc_type: 'guide' +keywords: ['clickstack', 'воспроизведение сессий', 'браузерный SDK', 'обсервабилити фронтенда', 'пользовательские сессии', 'отладка'] +--- + +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; +import trace_to_replay from '@site/static/images/clickstack/session-replay/trace-to-replay.png'; +import clickpy_trace from '@site/static/images/clickstack/session-replay/clickpy-trace.gif'; + +Воспроизведение сессий в ClickStack захватывает и воссоздаёт взаимодействия пользователей с вашим веб-приложением, позволяя визуально воспроизвести в точности то, что пользователь видел и делал во время своей сессии. Вместо видеозаписи SDK фиксирует изменения DOM, движения мыши, клики, прокрутку, ввод с клавиатуры, логи консоли, сетевые запросы (XHR, Fetch, WebSocket) и исключения JavaScript, а затем воссоздаёт этот пользовательский опыт в браузере. + +Поскольку воспроизведения сессий хранятся в ClickHouse вместе с логами, трейcами и метриками, вы можете за несколько кликов перейти от просмотра пользовательского опыта к анализу бэкенд-трейсов и запросов к базе данных, которые за ним стоят. Это делает воспроизведение сессий полезным для отладки проблем в продакшене, понимания поведения пользователей, выявления точек трения в UX и визуального подтверждения инцидентов, о которых сообщают в поддержку. + + +## Инструментирование вашего приложения \{#instrumentation\} + +ClickStack полностью совместим с OpenTelemetry, поэтому вы можете отправлять браузерную телеметрию (трейсы, исключения) с помощью стандартного JavaScript SDK OpenTelemetry или любого из [языковых SDK ClickStack](/use-cases/observability/clickstack/sdks). Однако **для session replay требуется ClickStack Browser SDK** (`@hyperdx/browser`), который расширяет OpenTelemetry SDK возможностями записи сессий, захвата консоли и сетевых запросов. Если вам нужны только трейсы без session replay, любой совместимый с OTel браузерный SDK будет работать с ClickStack. + +Примеры ниже используют ClickStack Browser SDK. Добавление session replay в ваше приложение включает всего три шага: установка пакета, инициализация SDK, после чего все действия пользователя автоматически записываются — дополнительные изменения в коде не требуются. + +:::tip +Инициализируйте SDK в месте, которое гарантированно загружается при старте вашего приложения. Например, в приложении Next.js это может быть корневой `layout.js`. Это обеспечивает немедленный запуск записи сессий и захват полного пользовательского опыта. +::: + + + + +```shell +npm install @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // не указывайте для Managed ClickStack + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +```shell +yarn add @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // не указывайте для Managed ClickStack + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +Для приложений, не использующих бандлер, подключите SDK напрямую через тег script. Это создаст глобальную переменную `HyperDX`, которую можно использовать так же, как пакет NPM. + +```html + + +``` + + + + +:::note +Опция `tracePropagationTargets` ключевая для связывания session replay с бэкенд-трейсами — укажите здесь домен вашего API, чтобы включить полноценный распределённый трейсинг от фронтенда до бэкенда. Полный список опций SDK, включая настройки конфиденциальности, кастомные действия, React error boundaries и source maps, приведён в [справочнике по Browser SDK](/use-cases/observability/clickstack/sdks/browser). +::: + +Browser SDK также поддерживает [маскирование инпутов и текста](/use-cases/observability/clickstack/sdks/browser#options) для приложений с повышенными требованиями к конфиденциальности, а также [привязку информации о пользователе](/use-cases/observability/clickstack/sdks/browser#attach-user-information-or-metadata), чтобы вы могли искать и фильтровать сессии по пользователю в интерфейсе ClickStack. + +## Просмотр реплеев сессий \{#viewing-replays\} + +Перейдите в раздел **Client Sessions** на левой боковой панели в интерфейсе ClickStack (HyperDX). В этом представлении перечислены все записанные браузерные сессии с указанием их длительности и количества событий. + + + +Нажмите кнопку воспроизведения у любой сессии, чтобы просмотреть её реплей. В представлении реплея реконструированный пользовательский опыт отображается справа, а таймлайн браузерных событий — сетевых запросов, логов консоли и ошибок — слева. + + + +Переключайтесь между режимами **Highlighted** и **All Events**, чтобы настроить уровень детализации, отображаемый на таймлайне. Ошибки помечаются красным цветом, а при клике на любое событие реплей переходит к соответствующему моменту сессии. + +### От сессии к трейсу \{#session-to-trace\} + +Когда вы выбираете сетевой запрос или ошибку на таймлайне сессии, вы можете перейти на вкладку **Trace**, чтобы отследить этот запрос через ваши backend-сервисы — просматривая связанные логи, спаны и запросы к базе данных, которые были вызваны этим действием пользователя. + +Это работает, так как конфигурация `tracePropagationTargets` связывает спаны браузера со спанами сервера через заголовок `traceparent`, формируя единый распределённый трейc от клика пользователя до самой базы данных. Подробный пошаговый разбор этого на практике, включая инструментирование как frontend-, так и backend-частей, см. в статье [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-nextjs-opentelemetry-clickstack). + +Переход от воспроизведения сессии к backend-трейсам в ClickStack + +### От трассы к сессии \{#trace-to-session\} + +Корреляция работает и в обратном направлении. При просмотре трассы в представлении **Search** щёлкните на неё, чтобы открыть подробную информацию о трассе, затем выберите вкладку **Session Replay**, чтобы увидеть, что именно видел и делал пользователь в момент формирования этой трассы. Это особенно полезно при расследовании ошибок или медленных запросов — вы можете начать с проблемы на стороне бэкенда и сразу увидеть, как происходящее выглядело для пользователя. + + + +## Как хранятся данные сессии \{#data-storage\} + +Данные для воспроизведения сессий хранятся в отдельной таблице [`hyperdx_sessions`](/use-cases/observability/clickstack/ingesting-data/schemas#sessions) в ClickHouse, отдельно от логов и трейсов. Каждое событие сессии — это строка с полем `Body`, содержащим полезную нагрузку события, и отображением `LogAttributes`, в котором хранятся метаданные события. Столбцы `Body` и `LogAttributes` вместе содержат детали реальных событий сессии, которые используются для восстановления воспроизведения. + +Полную информацию о схеме таблицы см. в разделе [Таблицы и схемы, используемые ClickStack](/use-cases/observability/clickstack/ingesting-data/schemas). + +## Попробуйте на практике \{#try-it-out\} + +Есть два способа увидеть session replay в действии: + +- **Живой пример** — перейдите на [clickpy.clickhouse.com](https://clickpy.clickhouse.com), повзаимодействуйте с приложением, затем посмотрите запись своей сессии на [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com) в источнике **ClickPy Sessions**. Подробности об инструментации ClickPy см. в записи в блоге [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-your-app-with-otel-clickstack). +- **Локальный демонстрационный пример** — [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) пошагово показывает, как проинструментировать демонстрационное приложение, включая локальный запуск ClickStack и просмотр записей сессий. + +## Узнать больше \{#learn-more\} + +- [Демонстрация Session Replay](/use-cases/observability/clickstack/example-datasets/session-replay-demo) — интерактивное локальное демо‑приложение с пошаговыми инструкциями +- [Справочник по Browser SDK](/use-cases/observability/clickstack/sdks/browser) — все варианты конфигурации SDK, source maps, пользовательские действия и расширенные настройки +- [Поиск](/use-cases/observability/clickstack/search) — синтаксис поиска для фильтрации сессий и событий +- [Дашборды](/use-cases/observability/clickstack/dashboards) — создание визуализаций и дашбордов на основе данных сессий и трассировок +- [Оповещения](/use-cases/observability/clickstack/alerts) — настройка оповещений по ошибкам, задержкам и другим сигналам +- [Архитектура ClickStack](/use-cases/observability/clickstack/architecture) — как ClickHouse, HyperDX и OTel collector интегрируются друг с другом \ No newline at end of file diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/roadmap.md b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/roadmap.md index 3ce12473045..2e90e211547 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/roadmap.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/whats-new/roadmap.md @@ -7,22 +7,19 @@ doc_type: 'landing-page' keywords: ['дорожная карта', 'будущие возможности', 'планы разработки', 'предстоящие релизы', 'направление развития продукта'] --- - - ## Текущая дорожная карта \{#current-roadmap\} Текущая дорожная карта доступна для открытого обсуждения: -- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - - +- [2026](https://github.com/ClickHouse/ClickHouse/issues/93288) ## Предыдущие дорожные карты \{#previous-roadmaps\} +- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - [2024](https://github.com/ClickHouse/ClickHouse/issues/58392) - [2023](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2022](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2021](https://github.com/ClickHouse/ClickHouse/issues/17623) - [2020](https://github.com/ClickHouse/ClickHouse/blob/be29057de1835f6f4a17e03a422b45b81efe6833/docs/ru/whats-new/extended-roadmap.md) - [2019](https://github.com/ClickHouse/ClickHouse/issues/4785) -- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) +- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md index 6d01ecb9b0e..c8895e1a2ea 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/about-us/beta-and-experimental-features.md @@ -68,7 +68,6 @@ doc_type: 'reference' | [allow_statistics_optimize](/operations/settings/settings#allow_statistics_optimize) | `1` | | [use_statistics](/operations/settings/settings#use_statistics) | `1` | | [use_statistics_cache](/operations/settings/settings#use_statistics_cache) | `1` | -| [enable_full_text_index](/operations/settings/settings#enable_full_text_index) | `1` | | [allow_experimental_delta_kernel_rs](/operations/settings/settings#allow_experimental_delta_kernel_rs) | `1` | | [allow_insert_into_iceberg](/operations/settings/settings#allow_insert_into_iceberg) | `0` | | [enable_join_runtime_filters](/operations/settings/settings#enable_join_runtime_filters) | `1` | @@ -94,6 +93,9 @@ doc_type: 'reference' | [remote_fs_zero_copy_zookeeper_path](/operations/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | | [remove_rolled_back_parts_immediately](/operations/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | | [shared_merge_tree_virtual_parts_discovery_batch](/operations/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [ast_fuzzer_runs](/operations/settings/settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/operations/settings/settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/operations/settings/settings#allow_fuzz_query_functions) | `0` | | [allow_experimental_kafka_offsets_storage_in_keeper](/operations/settings/settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | | [allow_experimental_delta_lake_writes](/operations/settings/settings#allow_experimental_delta_lake_writes) | `0` | | [automatic_parallel_replicas_mode](/operations/settings/settings#automatic_parallel_replicas_mode) | `0` | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md index 39c2f7773d1..9c6902ffdd4 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/guides/infrastructure/01_deployment_options/byoc/01_overview.md @@ -27,7 +27,7 @@ BYOC 专为大规模部署设计,并要求客户签署具有使用承诺的合 * AWS(GA) * GCP(Private Preview)。如果您感兴趣,请在[此处](https://clickhouse.com/cloud/bring-your-own-cloud)加入候补名单。 -* Azure(Roadmap)。如果您感兴趣,请在[此处](https://clickhouse.com/cloud/bring-your-own-cloud)加入候补名单。 +* Azure(Private Preview)。如果您感兴趣,请在[此处](https://clickhouse.com/cloud/bring-your-own-cloud)加入候补名单。 **支持的云区域:** 在我们的[支持的区域](https://clickhouse.com/docs/cloud/reference/supported-regions)文档中列出的所有**公共区域**均可用于 BYOC 部署。目前不支持私有区域。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md index da0c3f392ce..2c58a73ceed 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md @@ -84,7 +84,7 @@ ClickHouse 为 [MySQL](/engines/table-engines/integrations/mysql/)、[PostgreSQL -## 示例 1:使用 Integration 表引擎从 MySQL 迁移到 ClickHouse Cloud \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} +## 示例:使用 Integration 表引擎从 MySQL 迁移到 ClickHouse Cloud \{#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine\} 我们将使用 [integration 表引擎](/engines/table-engines/integrations/mysql/)(由 [mysql 表函数](/sql-reference/table-functions/mysql/) 动态创建)从源 MySQL 数据库读取数据,并使用 [remoteSecure 表函数](/sql-reference/table-functions/remote/) 将数据写入您在 ClickHouse Cloud 服务中的目标表。 @@ -121,19 +121,4 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');" :::note 在 `clickhouse-local` 主机本地不会存储任何数据。相反,数据会从源 MySQL 表中读取,然后立即写入 ClickHouse Cloud 服务上的目标表。 -::: - -## 示例 2:使用 JDBC Bridge 将 MySQL 迁移到 ClickHouse Cloud \{#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge\} - -我们将使用 [JDBC 集成表引擎](/engines/table-engines/integrations/jdbc.md)(由 [jdbc 表函数](/sql-reference/table-functions/jdbc.md) 动态创建),配合 [ClickHouse JDBC Bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) 和 MySQL JDBC 驱动,从源 MySQL 数据库中读取数据,并使用 [remoteSecure 表函数](/sql-reference/table-functions/remote.md) -将数据写入 ClickHouse Cloud 服务中的目标表。 - - - -### 在目标 ClickHouse Cloud 服务中: \{#on-the-destination-clickhouse-cloud-service-1\} - -#### 创建目标数据库: \{#create-the-destination-database-1\} - -```sql - CREATE DATABASE db - ``` +::: \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md index 286d80eb6a9..fb376bcc182 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md @@ -43,6 +43,10 @@ import crash_reports_collection from '@site/static/images/cloud/reference/crash- ::: +## 2026 年 2 月 20 日 \{#february-20-2026\} + +- **ClickPipes:** 处于非活动状态的反向私有终端节点现在会在经过指定的宽限期后自动删除。这样可以确保未使用或配置错误的终端节点不会在后端系统中被无限期保留。更多详情请参阅自动清理[文档](/integrations/clickpipes/aws-privatelink#automatic-cleanup)。 + ## 2026 年 2 月 13 日 \{#february-13-2026\} - [BigQuery Connector](/integrations/clickpipes/bigquery/overview) 现已进入私有预览阶段。阅读这篇[博客文章](https://clickhouse.com/blog/bigquery-clickpipe-private-preview)了解更多详情,并加入[候补名单](https://clickhouse.com/cloud/clickpipes/bigquery-connector)以申请访问权限。 @@ -1584,7 +1588,7 @@ ClickHouse Cloud 现已达到生产级就绪状态,具备 SOC2 Type II 合规 ### 常规更改 \{#general-changes-5\} -- 新增对基于本地 ClickHouse 表和 HTTP 源的 [dictionaries](/sql-reference/dictionaries/index.md) 的支持 +- 新增对基于本地 ClickHouse 表和 HTTP 源的 [dictionaries](/sql-reference/statements/create/dictionary) 的支持 - 引入了对孟买 [region](/cloud/reference/supported-regions) 的支持 ### 控制台更改 \{#console-changes-30\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/dictionary/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/dictionary/index.md index 567ff94ecdd..c82d7167e94 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/dictionary/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/dictionary/index.md @@ -3,16 +3,17 @@ slug: /dictionary title: '字典' keywords: ['dictionary', 'dictionaries'] description: '字典以键值对形式表示数据,以支持快速查找。' -doc_type: 'reference' +doc_type: 'guide' --- import dictionaryUseCases from '@site/static/images/dictionary/dictionary-use-cases.png'; import dictionaryLeftAnyJoin from '@site/static/images/dictionary/dictionary-left-any-join.png'; import Image from '@theme/IdealImage'; + # 字典 \{#dictionary\} -ClickHouse 中的字典以内存中的 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 形式表示来自各种[内部和外部数据源](/sql-reference/dictionaries#dictionary-sources)的数据,并针对超低延迟的查找查询进行了优化。 +ClickHouse 中的字典以内存中的 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 形式表示来自各种[内部和外部数据源](/sql-reference/statements/create/dictionary/sources#dictionary-sources)的数据,并针对超低延迟的查找查询进行了优化。 字典可用于: @@ -87,7 +88,7 @@ Controversial_ratio: 0 #### 应用字典 \{#applying-a-dictionary\} -为了演示这些概念,我们为投票数据使用一个字典。由于字典通常存放在内存中([ssd_cache](/sql-reference/dictionaries#ssd_cache) 是一个例外),你应当注意数据的大小。先确认一下我们的 `votes` 表的大小: +为了演示这些概念,我们为投票数据使用一个字典。由于字典通常存放在内存中([ssd_cache](/sql-reference/statements/create/dictionary/layouts/ssd-cache) 是一个例外),你应当注意数据的大小。先确认一下我们的 `votes` 表的大小: ```sql SELECT table, @@ -105,7 +106,7 @@ GROUP BY table 数据将在我们的字典中以未压缩形式存储,因此如果要将所有列(实际上我们不会这样做)都存入字典,至少需要 4GB 内存。字典会在集群中进行复制,因此这部分内存需要 *按节点* 预留。 -> 在下面的示例中,我们字典的数据来源于一个 ClickHouse 表。虽然这是字典最常见的数据源,但还支持[多种数据源](/sql-reference/dictionaries#dictionary-sources),包括文件、HTTP 以及包括 [Postgres](/sql-reference/dictionaries#postgresql) 在内的各类数据库。正如我们将展示的那样,字典可以自动刷新,为小型且经常变更的数据集提供了一种理想方式,使其可用于直接进行 join 操作。 +> 在下面的示例中,我们字典的数据来源于一个 ClickHouse 表。虽然这是字典最常见的数据源,但还支持[多种数据源](/sql-reference/statements/create/dictionary/sources#dictionary-sources),包括文件、HTTP 以及包括 [Postgres](/sql-reference/statements/create/dictionary/sources/postgresql) 在内的各类数据库。正如我们将展示的那样,字典可以自动刷新,为小型且经常变更的数据集提供了一种理想方式,使其可用于直接进行 join 操作。 我们的字典需要一个用于执行查找的主键。这在概念上与事务型数据库中的主键相同,并且必须唯一。上面的查询需要在 join 键 `PostId` 上执行查找。字典应相应地填充为来自 `votes` 表的每个 `PostId` 的赞成票和反对票总数。下面是获取该字典数据的查询: @@ -117,7 +118,7 @@ FROM votes GROUP BY PostId ``` -要创建该字典,我们需要使用以下 DDL——注意其中使用了上面的查询: +要创建该字典,需要使用以下 DDL——注意其中使用了上面的查询: ```sql CREATE DICTIONARY votes_dict @@ -319,20 +320,20 @@ Peak memory usage: 666.82 MiB. ### 选择字典 `LAYOUT` \{#choosing-the-dictionary-layout\} -`LAYOUT` 子句控制字典的内部数据结构。有多种可用选项,其文档见[此处](/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory)。关于如何选择合适布局的一些建议见[这里](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)。 +`LAYOUT` 子句控制字典的内部数据结构。有多种可用选项,其文档见[此处](/sql-reference/statements/create/dictionary/layouts#ways-to-store-dictionaries-in-memory)。关于如何选择合适布局的一些建议见[这里](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout)。 ### 刷新字典 \{#refreshing-dictionaries\} 我们为字典指定了 `LIFETIME MIN 600 MAX 900`。`LIFETIME` 用于控制字典的更新间隔,上述取值会使字典在 600 到 900 秒之间的随机时间间隔内周期性地重新加载。这个随机间隔是必要的,以便在大量服务器进行更新时分散对字典数据源的负载。在更新过程中,旧版本的字典仍然可以被查询,只有初始加载时才会阻塞查询。注意,将 `LIFETIME(0)` 进行设置会禁止字典更新。 可以使用 `SYSTEM RELOAD DICTIONARY` 命令强制重新加载字典。 -对于 ClickHouse 和 Postgres 等数据库数据源,你可以设置一个查询,仅在字典数据确实发生变化时才更新字典(由该查询的响应来决定),而不是按固定周期更新。更多详细信息请参见[此处](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)。 +对于 ClickHouse 和 Postgres 等数据库数据源,你可以设置一个查询,仅在字典数据确实发生变化时才更新字典(由该查询的响应来决定),而不是按固定周期更新。更多详细信息请参见[此处](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)。 ### 其他字典类型 \{#other-dictionary-types\} -ClickHouse 还支持[层次结构字典](/sql-reference/dictionaries#hierarchical-dictionaries)、[多边形字典](/sql-reference/dictionaries#polygon-dictionaries)和[正则表达式字典](/sql-reference/dictionaries#regexp-tree-dictionary)。 +ClickHouse 还支持[层次结构字典](/sql-reference/statements/create/dictionary/layouts/hierarchical)、[多边形字典](/sql-reference/statements/create/dictionary/layouts/polygon)和[正则表达式字典](/sql-reference/statements/create/dictionary/layouts/regexp-tree)。 ### 延伸阅读 \{#more-reading\} - [使用字典加速查询](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [字典的高级配置](/sql-reference/dictionaries) \ No newline at end of file +- [字典的高级配置](/sql-reference/statements/create/dictionary) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md index cd8cd5ed100..975e734f65e 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/iceberg.md @@ -37,6 +37,7 @@ CREATE TABLE iceberg_table_local ENGINE = IcebergLocal(path_to_table, [,format] [,compression_method]) ``` + ## 引擎参数 \{#engine-arguments\} 参数说明与引擎 `S3`、`AzureBlobStorage`、`HDFS` 和 `File` 中参数的说明相同。\ @@ -69,12 +70,15 @@ CREATE TABLE iceberg_table ENGINE=IcebergS3(iceberg_conf, filename = 'test_table ``` + ## 别名 \{#aliases\} 表引擎 `Iceberg` 现在是 `IcebergS3` 的别名。 ## 模式演进 \{#schema-evolution\} -目前,借助 ClickHouse (CH),可以读取随着时间推移发生模式变更的 Iceberg 表。当前支持读取曾经增加或删除列、以及列顺序发生变化的表。也可以将原本要求非空的列修改为允许为 NULL 的列。此外,还支持对简单类型进行允许的类型转换,即:   + +ClickHouse 支持读取其模式随时间演进的 Iceberg 表。当前支持读取曾经增加或删除列、以及列顺序发生变化的表。也可以将原本要求非空的列修改为允许为 NULL 的列。此外,还支持对简单类型进行允许的类型转换,即:   + * int -> long * float -> double * decimal(P, S) -> decimal(P', S),其中 P' > P。 @@ -93,26 +97,29 @@ ClickHouse 支持 Iceberg 表的时间旅行功能,允许您在指定的时间 ## 处理包含已删除行的表 \{#deleted-rows\} -目前,仅支持带有 [position deletes](https://iceberg.apache.org/spec/#position-delete-files) 的 Iceberg 表。 +ClickHouse 支持读取使用以下删除方法的 Iceberg 表: -以下删除方式**不受支持**: +- [Position deletes](https://iceberg.apache.org/spec/#position-delete-files) +- [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files)(自 25.8 版本起支持) -* [Equality deletes](https://iceberg.apache.org/spec/#equality-delete-files)(等值删除) -* [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors)(在 v3 中引入的删除向量) +以下删除方法**不支持**: + +- [Deletion vectors](https://iceberg.apache.org/spec/#deletion-vectors)(在 v3 中引入) ### 基本用法 \{#basic-usage\} ```sql SELECT * FROM example_table ORDER BY 1 SETTINGS iceberg_timestamp_ms = 1714636800000 - ``` +``` ```sql SELECT * FROM example_table ORDER BY 1 SETTINGS iceberg_snapshot_id = 3547395809148285433 - ``` +``` + +注意:在同一条查询语句中不能同时指定 `iceberg_timestamp_ms` 和 `iceberg_snapshot_id` 参数。 -注意:你不能在同一个查询中同时指定 `iceberg_timestamp_ms` 和 `iceberg_snapshot_id` 参数。 ### 重要注意事项 \{#important-considerations\} @@ -186,9 +193,10 @@ ClickHouse 支持 Iceberg 表的时间旅行功能,允许您在指定的时间 * 在 ts1 和 ts2:只显示原来的两列 * 在 ts3:显示全部三列,且第一行的 price 为 NULL + #### 场景 2:历史表结构与当前表结构的差异 \{#scenario-2\} -在当前时刻执行的时间旅行查询,可能会显示与当前表不同的表结构: +在当前时刻执行的时间旅行查询可能会显示与当前表不同的表结构: ```sql -- Create a table @@ -228,6 +236,7 @@ ClickHouse 支持 Iceberg 表的时间旅行功能,允许您在指定的时间 这是因为 `ALTER TABLE` 不会创建新的快照;对于当前表,Spark 会从最新的元数据文件中读取 `schema_id` 的值,而不是从快照中读取。 + #### 场景 3:历史与当前表结构差异 \{#scenario-3\} 第二点是在进行时间旅行时,你无法获取表在尚未写入任何数据之前的状态: @@ -249,6 +258,7 @@ ClickHouse 支持 Iceberg 表的时间旅行功能,允许您在指定的时间 在 ClickHouse 中,其行为与 Spark 保持一致。你可以在概念上将 Spark 的 Select 查询替换为 ClickHouse 的 Select 查询,它们的工作方式是相同的。 + ## 元数据文件解析 \{#metadata-file-resolution\} 在 ClickHouse 中使用 `Iceberg` 表引擎时,系统需要定位描述 Iceberg 表结构的正确 metadata.json 文件。下面是该解析过程的具体流程: @@ -283,7 +293,7 @@ ClickHouse 支持 Iceberg 表的时间旅行功能,允许您在指定的时间 **注意**:上述所有设置都是引擎级别设置,必须在创建表时进行指定,如下所示: -```sql +```sql CREATE TABLE example_table ENGINE = Iceberg( 's3://bucket/path/to/iceberg_table' ) SETTINGS iceberg_metadata_table_uuid = '6f6f6407-c6a5-465f-a808-ea8900e35a38'; @@ -291,6 +301,7 @@ CREATE TABLE example_table ENGINE = Iceberg( **注意**:虽然 Iceberg Catalog 通常负责元数据解析,但 ClickHouse 中的 `Iceberg` 表引擎会直接将存储在 S3 中的文件解析为 Iceberg 表,这也是为什么理解这些解析规则很重要。 + ## 数据缓存 \{#data-cache\} `Iceberg` 表引擎和表函数支持与 `S3`、`AzureBlobStorage`、`HDFS` 存储类似的数据缓存功能。请参阅[此处](../../../engines/table-engines/integrations/s3.md#data-cache)。 @@ -301,4 +312,4 @@ CREATE TABLE example_table ENGINE = Iceberg( ## 另请参阅 \{#see-also\} -- [iceberg 表函数](/sql-reference/table-functions/iceberg.md) +- [iceberg 表函数](/sql-reference/table-functions/iceberg.md) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md index d90ef342a6e..b6f41148da8 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/mysql.md @@ -62,6 +62,7 @@ SETTINGS CREATE TABLE test_replicas (id UInt32, name String, age UInt32, money UInt32) ENGINE = MySQL(`mysql{2|3|4}:3306`, 'clickhouse', 'test_replicas', 'root', 'clickhouse'); ``` + ## 使用示例 \{#usage-example\} 在 MySQL 中创建表: @@ -87,7 +88,7 @@ mysql> select * from test; 1 row in set (0,00 sec) ``` -使用常规参数在 ClickHouse 中创建表: +使用普通参数在 ClickHouse 中创建表: ```sql CREATE TABLE mysql_table @@ -127,6 +128,7 @@ SELECT * FROM mysql_table └────────────────┴────────┘ ``` + ## 设置 \{#mysql-settings\} 默认设置的效率不高,因为它们甚至不会复用连接。可以通过这些设置来提升服务器每秒可执行的查询数量。 @@ -196,4 +198,4 @@ SELECT * FROM mysql_table ## 另请参阅 \{#see-also\} - [MySQL 表函数](../../../sql-reference/table-functions/mysql.md) -- [将 MySQL 用作字典源](/sql-reference/dictionaries#mysql) +- [将 MySQL 用作字典源](/sql-reference/statements/create/dictionary/sources#mysql) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md index 2e7e6848b84..7d6acef7c75 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/odbc.md @@ -141,5 +141,5 @@ SELECT * FROM odbc_t ## 另请参阅 \{#see-also\} -- [ODBC 字典](/sql-reference/dictionaries#mysql) +- [ODBC 字典](/sql-reference/statements/create/dictionary/sources#mysql) - [ODBC 表函数](../../../sql-reference/table-functions/odbc.md) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md index 4624150f4eb..b1cd517a0dd 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/integrations/postgresql.md @@ -229,7 +229,7 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) **另请参阅** * [`postgresql` 表函数](../../../sql-reference/table-functions/postgresql.md) -* [将 PostgreSQL 用作字典源](/sql-reference/dictionaries#mysql) +* [将 PostgreSQL 用作字典源](/sql-reference/statements/create/dictionary/sources#mysql) ## 相关内容 \{#related-content\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md index b9bc3d2cbb3..07a7b99e911 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/mergetree.md @@ -283,6 +283,56 @@ SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%' 按月分区的分区键可以使查询仅读取包含目标日期范围的数据块。在这种情况下,一个数据块可能包含多个日期的数据(最多可覆盖整个月)。在一个数据块内,数据按主键排序,而主键的首列不一定是日期。正因为如此,如果查询中只包含日期条件而未指定主键前缀,就会为获取某个单一日期而读取比实际需要更多的数据。 +### 在主键中对确定性表达式使用索引 \{#use-of-index-for-deterministic-expressions-in-primary-keys\} + +主键中不仅可以包含列名,还可以包含表达式。此类表达式不限于简单的函数链:只要是确定性的,它们可以是任意表达式树(例如嵌套函数和复合表达式)。 + +如果一个表达式对于相同的输入值总是返回相同的结果,则该表达式是**确定性的(deterministic)**(例如:`length()`, `toDate()`, `lower()`, `left()`, `cityHash64()`, `toUUID()`;不同于 `now()` 或 `rand()`)。如果主键包含确定性表达式,ClickHouse 可以将这些表达式应用于查询中的常量值,并使用结果在主键索引上构建条件。这样就可以对 `=`, `IN` 和 `has` 等谓词跳过扫描部分数据。 + +一个常见的用例是使主键保持紧凑(例如存储哈希值而不是很长的 `String`),同时仍然允许对原始列上的谓词使用索引。 + +确定性(但非单射)的主键示例: + +```sql +ENGINE = MergeTree() +ORDER BY length(user_id) +``` + +可以利用索引的示例谓词: + +```sql +SELECT * FROM table WHERE user_id = 'alice'; +SELECT * FROM table WHERE user_id IN ('alice', 'bob'); +SELECT * FROM table WHERE has(['alice', 'bob'], user_id); +``` + +在这些情况下,ClickHouse 会先计算一次 `length('alice')`(以及其他常量),然后使用这些长度值来收窄主键索引中的范围。由于字符串的长度**不是单射的(not injective)**,不同的 `user_id` 字符串可能具有相同的长度,因此索引可能会多读取一些 granule(误报)。查询结果仍然是正确的,因为在读取之后,仍然会应用原始谓词(`user_id = ...`、`IN` 等)。 + +如果这个确定性表达式同时也是**单射的(injective)**(对于所使用的参数类型,不同输入不可能产生相同输出),那么 ClickHouse 还可以高效地将索引用于其否定形式:`!=`、`NOT IN` 和 `NOT has(...)`。例如,`reverse(p)` 和 `hex(p)` 对于 `String` 是单射的。 + +一个单射主键的示例: + +```sql +ENGINE = MergeTree() +ORDER BY hex(p) +``` + +也支持更复杂的单射表达式,例如: + +```sql +ENGINE = MergeTree() +ORDER BY reverse(tuple(reverse(p), hex(p))) +``` + +可以利用索引的谓词示例: + +```sql +SELECT * FROM table WHERE p != 'abc'; +SELECT * FROM table WHERE p NOT IN ('abc', '12345'); +SELECT * FROM table WHERE NOT has(['abc', '12345'], p); +``` + + ### 对部分单调主键使用索引 \{#use-of-index-for-partially-monotonic-primary-keys\} 以一个例子说明:考虑一个月中的日期。在一个月的范围内,它们构成一个[单调序列](https://en.wikipedia.org/wiki/Monotonic_function),但在更长时间范围内就不是单调的了。这就是一个部分单调序列。如果用户使用部分单调的主键创建表,ClickHouse 仍会照常创建稀疏索引。当用户从这类表中查询数据时,ClickHouse 会分析查询条件。如果用户希望获取索引中两个标记之间的数据,并且这两个索引标记都落在同一个月内,那么在这种特定情况下 ClickHouse 可以使用索引,因为它可以计算查询参数与索引标记之间的距离。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md index 22f32691e19..e4c60befab5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/mergetree-family/textindexes.md @@ -7,13 +7,8 @@ title: '使用文本索引的全文搜索' doc_type: 'reference' --- -import BetaBadge from '@theme/badges/BetaBadge'; - - # 使用文本索引进行全文搜索 \{#full-text-search-with-text-indexes\} - - 文本索引(也称为[倒排索引](https://en.wikipedia.org/wiki/Inverted_index))可以对文本数据进行快速全文搜索。 文本索引存储从词元到包含该词元的行号的映射关系。 词元由称为分词(tokenization)的过程生成。 @@ -81,13 +76,7 @@ If query SELECT value FROM system.settings WHERE name = 'compatibility'; ``` -返回值 - -```text -25.4 -``` - -或者如果设置为任何小于 26.2 的值,则需要再配置三个额外的设置才能使用文本索引: +如果返回值小于 `26.2`(例如 `25.4`),则需要额外配置三个设置项才能使用文本索引: ```sql SET enable_full_text_index = true; @@ -125,7 +114,7 @@ ENGINE = MergeTree ORDER BY key ``` -或者,可以为现有表添加一个文本索引: +或者,要为现有表添加一个文本索引: ```sql ALTER TABLE table @@ -147,7 +136,7 @@ ALTER TABLE table ``` -如果你向已有表添加一个索引,我们建议为该表中已有的分区片段物化该索引(否则,在这些尚未建立索引的分区片段上进行搜索时,将会退回到较慢的穷举扫描)。 +如果你向已有表添加一个索引,我们建议为表中现有的分区片段物化此索引(否则,在这些尚未建立索引的分区片段上进行搜索时,将会回退到较慢的穷举扫描方式)。 ```sql ALTER TABLE table MATERIALIZE INDEX text_idx SETTINGS mutations_sync = 2; diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md index 26e48cb099d..82dee8fb1ae 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/engines/table-engines/special/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # Dictionary 表引擎 \{#dictionary-table-engine\} -`Dictionary` 引擎将 [dictionary](../../../sql-reference/dictionaries/index.md) 数据显示为 ClickHouse 表。 +`Dictionary` 引擎将 [dictionary](../../../sql-reference/statements/create/dictionary/index.md) 数据显示为 ClickHouse 表。 ## 示例 \{#example\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md b/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md index 7c4fcb32e79..1fd01b2f96f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/getting-started/example-datasets/cell-towers.md @@ -168,7 +168,8 @@ SELECT mcc, count() FROM cell_towers GROUP BY mcc ORDER BY count() DESC LIMIT 10 根据上述查询以及 [MCC 列表](https://en.wikipedia.org/wiki/Mobile_country_code),基站数量最多的国家包括:美国、德国和俄罗斯。 -您可以考虑在 ClickHouse 中创建一个 [Dictionary](../../sql-reference/dictionaries/index.md) 来对这些值进行解码。 +您可以考虑在 ClickHouse 中创建一个 [Dictionary](../../sql-reference/statements/create/dictionary/index.md) 来对这些值进行解码。 + ## 使用场景:集成地理数据 \{#use-case\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md index ea1767f63f3..79a6b593c5c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/index.md @@ -30,12 +30,12 @@ dbt 可以通过一个由 ClickHouse 官方支持的适配器与 ClickHouse 集 {/*AUTOGENERATED_START*/ } -| Page | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------- | -| [Features and Configurations](/integrations/dbt/features-and-configurations) | 可用功能与通用配置概述 | -| [Materializations](/integrations/dbt/materializations) | 可用的 materialization 类型及其配置 | -| [Guides](/integrations/dbt/guides) | 将 dbt 与 ClickHouse 结合使用的指南 | -| [Materialized Views](/integrations/dbt/materialization-materialized-view) | 关于 materialized_view materialization 的专门文档 | +| Page | Description | +| --------------------------------------------------------------------------------------------- | ---------------------------------------------- | +| [Features and Configurations](/integrations/dbt/features-and-configurations) | 可用功能与通用配置概述 | +| [Materializations](/integrations/dbt/materializations) | 可用的 materialization 类型及其配置 | +| [Guides](/integrations/dbt/guides) | 将 dbt 与 ClickHouse 结合使用的指南 | +| [Materialization: materialized_view](/integrations/dbt/materialization-materialized-view) | 关于 materialized_view materialization 的专门文档 | {/*AUTOGENERATED_END*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md index 004075584d2..15f44472ad9 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md @@ -3,8 +3,8 @@ sidebar_label: '物化: materialized_view' slug: /integrations/dbt/materialization-materialized-view sidebar_position: 4 description: '关于 materialized_view 物化方式的专用文档' -keywords: ['ClickHouse', 'dbt', 'materialized view', '可刷新', '外部目标表', '补齐'] -title: 'Materialized Views' +keywords: ['ClickHouse', 'dbt', 'materialized_view', '可刷新', 'Materialized Views', '补齐'] +title: '物化: materialized_view' doc_type: 'guide' --- @@ -292,13 +292,62 @@ GROUP BY event_date, event_type 1. 更新 `materialization_target_table()` 调用 2. 运行 `dbt run --full-refresh -s your_mv_model` -### 隐式目标与显式目标方法的行为对比\{#explicit-target-behavior\} +### 常见问题排查 \{#explicit-target-troubleshooting\} -| Operation | 隐式目标 | 显式目标 | -| --- | --- | --- | -| First dbt run | 创建所有资源 | 创建所有资源 | -| Next dbt run | **无法单独管理资源,所有操作将一并执行:**

    **target table**:
    通过 `on_schema_change` 设置来管理变更。默认为 `ignore`,因此新列不会被处理。

    **MVs**:全部通过 `alter table modify query` 操作进行更新 | **可以按资源单独应用变更:

    target table**:
    自动检测它们是否为由 dbt 定义的 MVs 对应的 target tables。若是,则列结构的演进默认由 `mv_on_schema_change` 设置(值为 `fail`)来管理,因此如果列发生变化将会失败。我们将此默认值设置为一层保护机制。

    **MVs**:其 SQL 会通过 `alter table modify query` 操作进行更新。 | -| dbt run --full-refresh | **无法单独管理资源,所有操作将一并执行:

    target table**:
    target table 会被重新创建为空表。可通过 `catchup` 配置,使用所有 MVs 的 SQL 一起进行回填。`catchup` 默认为 `True`。

    **MVs**:全部被重新创建。 | **变更将按资源单独应用:

    target table:**将按常规方式重新创建。

    **MVs**:先 drop 再重新创建。`catchup` 可用于初始回填。`catchup` 默认为 `True`。

    **注意:在此过程中,在 MVs 重新创建之前,target table 将为空或仅部分加载。为避免这种情况,请查看下一节关于如何迭代 target table 的内容。**| +#### 在执行 `run` 期间或之后目标表为空 \{#target-table-empty\} + +出现这种情况可能有以下几种原因: + +- materialized view 可能被配置为 `catchup=False`,或者目标表被配置为 `repopulate_from_mvs_on_full_refresh=False`,因此在创建 materialized view 或重建目标表时不会执行回填。这是预期行为,因此如果希望使用 materialized view 的 SQL 重新插入数据,请确保在 materialized view 中设置 `catchup=True`(默认值),或者在目标表中设置 `repopulate_from_mvs_on_full_refresh=True`。注意不要同时启用这两个设置,以避免产生重复数据。更多详情请查看[配置部分](#explicit-target-configuration)。 +- 当执行 `dbt run --full-refresh` 时,如果 materialized view 使用默认的 `catchup=True`,目标表会被重建,这些 materialized view 会依次重新插入数据。为避免这种情况,请查看[对显式目标执行 Full refresh](#explicit-target-full-refresh)。 + +#### 在目标表中执行 `dbt run --full-refresh` 且设置 `repopulate_from_mvs_on_full_refresh=True` 时,会使用旧版本 materialized view 的逻辑,而不是项目中当前的 SQL 定义 \{#full-refresh-with-repopulate-from-mvs-on-full-refresh\} + +`repopulate_from_mvs_on_full_refresh=True` 会使用 ClickHouse 中已存在的 materialized view SQL 定义。要确保使用新的 materialized view 定义,请先对每个 materialized view 执行一次 `dbt run`,然后再对目标表执行 `dbt run --full-refresh`。 + +#### 在执行一次 run 之后出现重复数据 \{#duplicate-data\} + +可能原因: + +- materialized view 上设置了 `catchup=True`,并且目标表上设置了 `repopulate_from_mvs_on_full_refresh=True`:根据你希望执行的操作,仅保留其中一个。有关更多细节,请查看[配置章节](#explicit-target-configuration)。 +- 目标表未使用 `WHERE 0` 定义:目标表应在创建时为空,但如果未包含 `WHERE 0`,内部查询可能会插入数据。请确保包含该子句。 + +#### 在执行 `dbt run --full-refresh` 后进行活跃摄取时的数据丢失 \{#data-loss-active-ingestion\} + +在执行 `dbt run --full-refresh` 之后,源表中的部分行在目标表中缺失。 +ClickHouse materialized view 的作用类似于 insert 触发器——它们只会在自身存在期间捕获数据。在完整刷新过程中,会有一个短暂的时间窗口,MV 会被删除并重新创建(“盲窗口”)。在此窗口期间插入到源表中的任何行都不会被捕获。有关更多详情,请参见[活跃摄取期间的行为](#behavior-during-active-ingestion)一节。 + +### 调试方法 \{#debugging-techniques\} + +#### 检查 ClickHouse 中当前 MV 的写入目标 \{#check-mv-target\} + +查询 `system.tables`,以查看 materialized view 当前写入到哪里: + +```sql +SELECT + name as mv_name, + replaceRegexpOne( + create_table_query, + '.*TO\\s+`?([^`\\s(]+)`?\\.`?([^`\\s(]+)`?.*', + '\\1.\\2' + ) AS target_table +FROM system.tables +WHERE database = 'your_schema' + AND engine = 'MaterializedView' +``` + + +#### 检查 dbt 是否将某个表识别为 materialized view 目标 \{#check-dbt-recognition\} + +在执行 dbt run 时,留意如下日志条目: + +>Table `` is used as a target by a dbt-managed materialized view. Defaulting mv_on_schema_change to "fail" to prevent data loss. + +如果出现这条消息,说明 dbt 已检测到该表被至少一个由 dbt 管理的 materialized view 作为目标使用。如果你预期会看到这条消息但实际没有,请确认以下事项: + +- materialized view 模型是否正确地定义了 `{{ materialization_target_table(ref('your_target')) }}` +- materialized view 模型在其配置中是否包含 `materialized='materialized_view'` +- materialized view 和其目标表是否都已经至少运行过一次 ### 从隐式目标迁移到显式目标 \{#migration-implicit-to-explicit\} @@ -367,23 +416,34 @@ select a, b, c from {{ source('raw', 'table_2') }} **3. 按需根据[显式目标](#explicit-target)部分中的说明进行迭代。** -## 活跃摄取期间的行为 \{#behavior-during-active-ingestion\} +## 隐式目标与显式目标方法的行为对比\{#behavior-comparison\} + +### 它们的一般行为方式 \{#general-behavior\} + +| Operation | 隐式 target | 显式 target | +| --- | --- | --- | +| First dbt run | 创建所有资源 | 创建所有资源 | +| Next dbt run | **资源无法单独管理,所有变更一次性执行:**

    **target table**:
    使用 `on_schema_change` 设置来管理变更。默认值为 `ignore`,因此新列不会被处理。

    **Materialized views**:全部通过 `alter table modify query` 操作进行更新 | **变更可以单独应用:

    target table**:
    自动检测其是否为由 dbt 定义的 materialized views 的 target table。如果是,则列演进默认通过 `mv_on_schema_change` 设置为 `fail` 来管理,因此在列发生变更时会报错。我们将此默认值作为一层保护机制。

    **Materialized views**:其 SQL 会通过 `alter table modify query` 操作进行更新。 | +| dbt run --full-refresh | **资源无法单独管理,所有变更一次性执行:

    target table**:
    target table 会被重新创建为空表。可以通过 `catchup` 配置,使用所有 materialized views 的 SQL 一次性进行回填。`catchup` 的默认值为 `True`。

    **Materialized views**:全部会被重新创建。 | **变更将被单独应用:

    target table:** 将按常规方式被重新创建。

    **Materialized views**:先 drop 再重新创建。`catchup` 可用于初始回填。`catchup` 的默认值为 `True`。

    **注意:在此过程中,在 materialized views 重新创建完成之前,target table 将为空或仅部分加载。为避免这种情况,请查看下一节关于如何迭代 target table 的内容。**| + +### 活跃摄取期间的行为 \{#behavior-during-active-ingestion\} -由于 ClickHouse 的 materialized view 充当**插入触发器(insert trigger)**,它们只会在自身存在期间捕获数据。如果在某个时间窗口内(例如在执行 `--full-refresh` 期间)一个 materialized view 被删除并重新创建,那么在该窗口中插入到源表的任何行都**不会**被该 MV 处理。这种情况被称为 MV 处于“盲区”(blind)状态。 +在迭代你的模型时,需要了解不同操作如何与正在插入的数据交互: -另外,**追赶(catch-up)**过程(无论是通过 MV 的 `catchup`,还是通过目标表的 `repopulate_from_mvs_on_full_refresh`)都会使用 MV 的 SQL 运行一条 `INSERT INTO ... SELECT`。如果此时源表上也在发生插入操作,则追赶查询可能会包含那些 MV 已经处理过的行(或将在 MV 创建后立即处理的行),从而可能在目标表中造成**重复数据**。在目标表上使用例如 `ReplacingMergeTree` 这样的去重引擎可以降低此风险。 +- 由于 ClickHouse 的 materialized view 充当**插入触发器(insert trigger)**,它们只会在自身存在期间捕获数据。如果在某个时间窗口内(例如在执行 `--full-refresh` 期间)一个 materialized view 被删除并重新创建,那么在该窗口中插入到源表的任何行都**不会**被该 materialized view 处理。这种情况被称为该 materialized view 处于“盲区”(blind)状态。 +- 各种不同的 `catchup` 过程都基于使用 materialized view 的 SQL 执行的 `INSERT INTO ... SELECT` 操作,并且独立于 materialized view 的工作方式。一旦 `INSERT` 开始执行,新的数据将不会被该 `INSERT` 捕获,但会被已附加的 materialized view 捕获。 下表总结了在源表上存在持续插入时,各类操作的安全性。 -### 隐式目标操作 \{#ingestion-implicit-target\} +#### 隐式目标操作 \{#ingestion-implicit-target\} | Operation | Internal process | Safety while inserts are happening | |-----------|------------------|------------------------------------| -| First `dbt run` | 1. 创建目标表
    2. 插入数据(如果 `catchup=True`)
    3. 创建物化视图(MV) | ⚠️ **在步骤 1 到 3 之间,MV 处于“盲区”。** 在此时间窗口内插入到源表的任何行都不会被捕获。 | -| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 安全。MV 会以原子方式更新。 | -| `dbt run --full-refresh` | 1. 创建备份表
    2. 插入数据(如果 `catchup=True`)
    3. 删除 MV
    4. 交换表
    5. 重新创建 MV | ⚠️ **在重新创建期间,MV 处于“盲区”。** 在步骤 3 到 5 之间插入到源表的数据不会出现在新的目标表中。 | +| First `dbt run` | 1. 创建目标表
    2. 插入数据(如果 `catchup=True`)
    3. 创建 materialized view | ⚠️ **在步骤 1 到 3 之间,materialized view 处于“盲区”。** 在此时间窗口内插入到源表的任何行都不会被捕获。 | +| Subsequent `dbt run` | `ALTER TABLE ... MODIFY QUERY` | ✅ 安全。materialized view 会以原子方式更新。 | +| `dbt run --full-refresh` | 1. 创建备份表
    2. 插入数据(如果 `catchup=True`)
    3. 删除 materialized view
    4. 交换表
    5. 重新创建 materialized view | ⚠️ **在重新创建期间,materialized view 处于“盲区”。** 在步骤 3 到 5 之间插入到源表的数据不会出现在新的目标表中。 | -### 显式目标操作 \{#ingestion-explicit-target\} +#### 显式目标操作 \{#ingestion-explicit-target\} **materialized view 模型:** diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md index 2f74688dac2..c8c83e71b85 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-sources/cassandra.md @@ -9,4 +9,4 @@ doc_type: 'reference' # Cassandra 集成 \{#cassandra-integration\} -可以通过字典与 Cassandra 集成。更多详情请参阅[此处](/sql-reference/dictionaries#cassandra)。 \ No newline at end of file +可以通过字典与 Cassandra 集成。更多详情请参阅[此处](/sql-reference/statements/create/dictionary/sources/cassandra)。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md index ff93e415588..b5ba8f6c728 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/csharp.md @@ -42,9 +42,6 @@ import connection_details_csharp from '@site/static/images/_snippets/connection- `ClickHouse.Driver` 支持以下 .NET 版本: -* .NET Framework 4.6.2 -* .NET Framework 4.8 -* .NET Standard 2.1 * .NET 6.0 * .NET 8.0 * .NET 9.0 @@ -355,8 +352,8 @@ using ClickHouse.Driver; using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("id", 1L); -parameters.Add("name", "Alice"); +parameters.AddParameter("id", 1L); +parameters.AddParameter("name", "Alice"); await client.ExecuteNonQueryAsync( "INSERT INTO default.my_table (id, name) VALUES ({id:Int64}, {name:String})", @@ -413,7 +410,7 @@ var options = new InsertOptions using ClickHouse.Driver.ADO.Parameters; var parameters = new ClickHouseParameterCollection(); -parameters.Add("max_id", 100L); +parameters.AddParameter("max_id", 100L); var reader = await client.ExecuteReaderAsync( "SELECT * FROM default.my_table WHERE id < {max_id:Int64}", @@ -683,7 +680,7 @@ while (reader.Read()) 3. **在 SQL 类型提示中指定时区。** 当向非 UTC 的列传递带有 `Unspecified` DateTime 值的参数时,在 SQL 中包含时区信息: ```csharp var parameters = new ClickHouseParameterCollection(); - parameters.Add("dt", myDateTime); + parameters.AddParameter("dt", myDateTime); await client.ExecuteNonQueryAsync( "INSERT INTO table (dt) VALUES ({dt:DateTime('Europe/Amsterdam')})", diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx index 41cc5cf0e09..5591deaf564 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/client/client.mdx @@ -34,8 +34,8 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra ## 设置 \{#setup\} * Maven Central(项目页面):https://mvnrepository.com/artifact/com.clickhouse/client-v2 - * 每夜构建版本(仓库链接):https://central.sonatype.com/repository/maven-snapshots/ - * 旧版 Nightly 构建仓库(仓库链接):https://s01.oss.sonatype.org/content/repositories/snapshots/ + * Nightly 构建版本(仓库链接):https://central.sonatype.com/repository/maven-snapshots/ + * 旧版每夜构建仓库(仓库链接):https://s01.oss.sonatype.org/content/repositories/snapshots/
    @@ -107,7 +107,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra .build(); ``` - 通过 SSL 客户端证书进行身份验证需要设置用户名、启用 SSL 身份验证、设置客户端证书和客户端密钥,方法是分别调用 `setUsername(String)`、`useSSLAuthentication(boolean)`、`setClientCertificate(String)` 和 `setClientKey(String)`: + 通过 SSL 客户端证书进行身份验证需要设置用户名、启用 SSL 身份验证、设置客户端证书和客户端密钥,方法是分别调用 `setUsername(String)`、`useSSLAuthentication(boolean)`、`setClientCertificate(String)` 和 `setClientKey(String)`: ```java showLineNumbers Client client = new Client.Builder() @@ -122,10 +122,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 请使用诸如 [openssl](https://docs.openssl.org/master/man1/openssl/) 之类的工具来验证证书和密钥: - * 检查私钥完整性:`openssl rsa -in [key-file.key] -check -noout` - * 检查客户端证书中的 CN 是否与相应的 USER 匹配: + * 检查密钥完整性:`openssl rsa -in [key-file.key] -check -noout` + * 检查客户端证书中的 CN 是否与对应的 USER 一致: * 从用户证书中获取 CN - `openssl x509 -noout -subject -in [user.cert]` - * 确认数据库中已设置相同的值:`select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'`(查询会输出 `auth_params` 字段,其内容类似 ` {"common_names":["some_user"]}`) + * 确认在数据库中已设置相同的值:`select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'`(查询结果中的 `auth_params` 字段内容类似于 ` {"common_names":["some_user"]}`) ::: @@ -155,9 +155,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra | Method | Arguments | Description | Default | Key | | ---------------------------------------------------- | ------------------------------------- | --------------------------------------------- | --------- | --------------------- | - | `setUsername(String username)` | `username` - 用于认证的用户名 | 为将通过后续配置选择的认证方式设置用户名 | `default` | `user` | - | `setPassword(String password)` | `password` - 机密值 | 为密码认证设置机密值,并实际选择密码认证作为认证方式 | - | `password` | - | `setAccessToken(String accessToken)` | `accessToken` - 访问令牌字符串 | 设置访问令牌,以通过相应的认证方式进行身份验证 | - | `access_token` | + | `setUsername(String username)` | `username` - 用于身份验证的用户名 | 为将在后续配置中选定的身份验证方式设置用户名 | `default` | `user` | + | `setPassword(String password)` | `password` - 机密值 | 为密码认证设置机密值,并实际将密码认证设为所使用的身份验证方式 | - | `password` | + | `setAccessToken(String accessToken)` | `accessToken` - 访问令牌字符串 | 设置访问令牌,以通过对应的认证方式进行身份验证 | - | `access_token` | | `useSSLAuthentication(boolean useSSLAuthentication)` | `useSSLAuthentication` - 启用 SSL 认证的标志 | 将 SSL 客户端证书设置为一种认证方式。 | - | `ssl_authentication` | | `useHTTPBasicAuth(boolean useBasicAuth)` | `useBasicAuth` - 启用/禁用的标志 | 设置在用户密码认证中是否应使用基本 HTTP 认证。可解决包含特殊字符的密码所导致的问题。 | `true` | `http_use_basic_auth` | | `useBearerTokenAuth(String bearerToken)` | `bearerToken` - 编码后的 Bearer 令牌 | 指定是否使用 Bearer 认证以及要使用的令牌。令牌将按原样发送。 | - | `bearer_token` | @@ -175,13 +175,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ------------------------------------ | -------------------- | ------------------------------------------------------------------- | ------- | -------------------- | - | `setSocketRcvbuf(long size)` | `size` - 以字节为单位的大小 | 设置 TCP socket 接收缓冲区。该缓冲区位于 JVM 内存之外(堆外内存)。 | `8196` | `socket_rcvbuf` | - | `setSocketSndbuf(long size)` | `size` - 以字节为单位的大小 | 设置 TCP socket 发送缓冲区。该缓冲区位于 JVM 内存之外(堆外内存)。 | `8196` | `socket_sndbuf` | - | `setSocketKeepAlive(boolean value)` | `value` - 启用/禁用的标志 | 为每个 TCP socket 设置 `SO_KEEPALIVE` 选项。TCP Keep Alive 启用用于检查连接是否存活的机制。 | - | `socket_keepalive` | - | `setSocketTcpNodelay(boolean value)` | `value` - 启用/禁用的标志 | 为每个 TCP socket 设置 `SO_NODELAY` 选项。该 TCP 选项会使 socket 尽可能立即发送数据。 | - | `socket_tcp_nodelay` | - | `setSocketLinger(int secondsToWait)` | `secondsToWait` - 秒数 | 为客户端创建的每个 TCP socket 设置延迟关闭时间(linger time)。 | - | `socket_linger` | + | Method | Arguments | Description | Default | Key | + | ------------------------------------ | -------------------- | -------------------------------------------------------------------- | ------- | -------------------- | + | `setSocketRcvbuf(long size)` | `size` - 以字节为单位的大小 | 设置 TCP socket 接收缓冲区。该缓冲区位于 JVM 内存之外(堆外内存)。 | `8196` | `socket_rcvbuf` | + | `setSocketSndbuf(long size)` | `size` - 以字节为单位的大小 | 设置 TCP socket 发送缓冲区。该缓冲区位于 JVM 内存之外(堆外内存)。 | `8196` | `socket_sndbuf` | + | `setSocketKeepAlive(boolean value)` | `value` - 启用/禁用的标志 | 为每个 TCP socket 设置 `SO_KEEPALIVE` 选项。启用 TCP Keep-Alive 机制,用于检查连接是否存活。 | - | `socket_keepalive` | + | `setSocketTcpNodelay(boolean value)` | `value` - 启用/禁用的标志 | 为每个 TCP socket 设置 `SO_NODELAY` 选项。该 TCP 选项会使 socket 尽可能立即发送数据。 | - | `socket_tcp_nodelay` | + | `setSocketLinger(int secondsToWait)` | `secondsToWait` - 秒数 | 设置由客户端创建的每个 TCP socket 的延迟关闭时间(linger time)。 | - | `socket_linger` | @@ -208,13 +208,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | 方法 | 参数 | 描述 | 默认值 | 键 | - | ------------------------------------------------- | -------------------------------------------------------- | -------------------- | --- | ---------------------------------------- | - | `addProxy(ProxyType type, String host, int port)` | `type` - 代理类型
    `host` - 代理主机名或 IP
    `port` - 代理端口 | 设置用于与服务器通信的代理。 | - | `proxy_type`, `proxy_host`, `proxy_port` | - | `setProxyCredentials(String user, String pass)` | `user` - 代理用户名
    `pass` - 密码 | 设置用于通过代理进行身份验证的用户凭据。 | - | `proxy_user`, `proxy_password` | + | 方法 | 参数 | 描述 | 默认值 | 键 | + | ------------------------------------------------- | -------------------------------------------------------- | -------------- | --- | ---------------------------------------- | + | `addProxy(ProxyType type, String host, int port)` | `type` - 代理类型
    `host` - 代理主机名或 IP
    `port` - 代理端口 | 设置代理,用于与服务器通信。 | - | `proxy_type`, `proxy_host`, `proxy_port` | + | `setProxyCredentials(String user, String pass)` | `user` - 代理用户名
    `pass` - 密码 | 设置用于代理认证的用户凭据。 | - | `proxy_user`, `proxy_password` |
    - + | Method | Arguments | Description | Default | Key | | ------------------------------------------- | -------------------------------------- | ------------------------------ | ------- | ------ | | `setHttpCookiesEnabled(boolean enabled)` | `enabled` - 用于启用/禁用的标志位 | 设置是否应记住 HTTP cookie 并将其发送回服务器。 | - | - | @@ -224,10 +224,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra - | Method | Arguments | Description | Default | Key | - | ----------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- | ------- | ------ | - | `serverSetting(String name, String value)` | `name` - 设置名称
    `value` - 设置值 | 设置随每个查询一起发送到服务器的设置。单次操作的设置可以覆盖它。[设置列表](/operations/settings/query-level) | `none` | `none` | - | `serverSetting(String name, Collection values)` | `name` - 设置名称
    `values` - 设置值 | 设置随每个查询一起发送到服务器的、包含多个值的设置,例如 [roles](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` | + | 方法 | 参数 | 描述 | 默认值 | 键 | + | ----------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- | ------ | ------ | + | `serverSetting(String name, String value)` | `name` - 设置名称
    `value` - 设置值 | 设置随每个查询一起发送到服务器的设置。单次操作的设置可以覆盖它。[设置列表](/operations/settings/query-level) | `none` | `none` | + | `serverSetting(String name, Collection values)` | `name` - 设置名称
    `values` - 设置值 | 设置随每个查询一起发送到服务器的、包含多个值的设置,例如 [roles](/interfaces/http#setting-role-with-query-parameters) | `none` | `none` |
    @@ -256,6 +256,44 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra
    + ### 客户端标识 \{#client-identification\} + + 查询日志中有两个字段用于标识发起请求的应用程序:`client_name` 和 `http_user_agent`。原生 TCP 协议使用 `client_name` 来标识应用程序,HTTP 协议使用 `http_user_agent` 来标识应用程序。Client builder 提供了 `setClientName` 方法,可为两种协议设置正确的值。 + `http_user_agent` 字段按照 `User-Agent` 请求头的通用格式进行设置:`application-name[/version] [(operating-system; architecture; ...)]`。 + 该组值会在每一层(应用程序、客户端库、HTTP 客户端库)中重复出现。通过 `setClientName` 方法设置的内容在列表中排在最前面。 + + 例如: + + ```java showLineNumbers + client.setClientName("my-app-01/1.0"); + ``` + + 将产生以下 `http_user_agent` 值: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + 应用程序可以设置自定义 HTTP 请求头 `User-Agent` 来标识自身。但 `clickhouse-java-v2/0.9.6-SNAPSHOT` 部分将被追加到该请求头的末尾。 + + ### 操作标识 \{#operation-identification\} + + 查询日志还有另外两个字段 `query_id` 和 `log_comment`,可用于标识某个操作并向查询日志中添加附加信息。 + + `query_id` 是操作的唯一标识符。应用程序可通过调用 `QuerySettings` 类的 `setQueryId` 方法来设置该标识符。 + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.setQueryId("some-query-id"); + ``` + + `log_comment` 是可以添加到查询日志中的注释。应用程序可以通过调用 `QuerySettings` 类的 `logComment` 方法来设置该注释。 + + ```java showLineNumbers + QuerySettings querySettings = new QuerySettings(); + querySettings.logComment("some-comment"); + ``` + ### 服务器设置 \{#server-settings\} 服务器端设置可以在客户端创建时在客户端级别配置一次(参见 `Builder` 的 `serverSetting` 方法),也可以在操作级别进行配置(参见操作设置类的 `serverSetting`)。 @@ -285,7 +323,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra ### 自定义 HTTP 请求头 \{#custom-http-header\} - 可以为所有操作(客户端级别)或单个操作(操作级别)设置自定义 HTTP 头。 + 可以为所有操作(客户端级别)或单个操作(操作级别)设置自定义 HTTP 头。 ```java showLineNumbers @@ -295,7 +333,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra ``` - 当通过 `setOption` 方法设置选项时(无论是 `Client.Builder` 还是操作设置类),自定义请求头名称应以 `http_header_` 为前缀。此时,可以使用 `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` 方法。 + 当通过 `setOption` 方法设置选项时(无论是 `Client.Builder` 还是操作设置类),自定义请求头名称应以 `http_header_` 为前缀。此时,可以使用 `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` 方法。 ## 常用术语定义 \{#common-definitions\} @@ -303,9 +341,9 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra [支持的格式](/interfaces/formats) 的枚举类型,包含 ClickHouse 支持的所有格式。 - * `raw` - 需要由用户自行对原始数据进行转码 - * `full` - 客户端可自行完成数据转码,并接受原始数据流 - * `-` - 表示 ClickHouse 不支持针对该格式执行此操作 + * `raw` - 由用户负责对原始数据进行转码 + * `full` - 客户端可以自行对数据进行转码,并接收原始数据流 + * `-` - ClickHouse 不支持对此格式执行该操作 此客户端版本支持: @@ -478,15 +516,15 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **配置方法** - | 方法 | 描述 | - | ----------------------------------------------- | ----------------------------------------------------- | - | `setQueryId(String queryId)` | 设置要分配给该操作的查询 ID。默认值:`null`。 | - | `setDeduplicationToken(String token)` | 设置去重令牌。该令牌将发送到服务器,并可用于标识此查询。默认值:`null`。 | - | `setInputStreamCopyBufferSize(int size)` | 拷贝缓冲区大小。在写入操作期间,该缓冲区用于将用户提供的输入流中的数据复制到输出流。默认值:`8196`。 | - | `serverSetting(String name, String value)` | 为单次操作设置单个服务器端配置项。 | - | `serverSetting(String name, Collection values)` | 为某个操作设置可包含多个值的单个服务器配置项。集合中的元素应为 `String` 值。 | - | `setDBRoles(Collection dbRoles)` | 设置在执行操作前要启用的数据库角色。集合中的元素应为 `String` 值。 | - | `setOption(String option, Object value)` | 以原始格式设置配置选项。这不是服务器端设置。 | + | 方法 | 描述 | + | ----------------------------------------------- | --------------------------------------------------- | + | `setQueryId(String queryId)` | 设置将要分配给该操作的查询 ID。默认值:`null`。 | + | `setDeduplicationToken(String token)` | 设置去重令牌。该令牌将发送到服务器,并可用于标识该查询。默认值:`null`。 | + | `setInputStreamCopyBufferSize(int size)` | 复制缓冲区大小。写入操作时,该缓冲区用于将用户提供的输入流中的数据复制到输出流。默认值:`8196`。 | + | `serverSetting(String name, String value)` | 为单次操作设置单个服务器端配置项。 | + | `serverSetting(String name, Collection values)` | 为某个操作设置可包含多个值的单个服务器配置项。集合中的元素应为 `String` 值。 | + | `setDBRoles(Collection dbRoles)` | 设置在执行操作前要应用的数据库角色。集合中的元素应为 `String` 值。 | + | `setOption(String option, Object value)` | 以原始格式设置配置选项。这不是服务器端设置。 | ### InsertResponse \{#insertresponse\} @@ -496,10 +534,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 应尽快关闭此对象以释放连接,因为在完全读取完前一个响应的所有数据之前,该连接无法被重用。 ::: - | 方法 | 说明 | - | ------------------------------- | ------------------------------------------- | - | `OperationMetrics getMetrics()` | 返回一个包含该操作各项指标的对象。 | - | `String getQueryId()` | 返回为该操作分配的查询 ID,该 ID 由应用程序(通过操作设置)指定或由服务器生成。 | + | 方法 | 说明 | + | ------------------------------- | -------------------------------------------- | + | `OperationMetrics getMetrics()` | 返回一个包含该操作各项指标的对象。 | + | `String getQueryId()` | 返回分配给该操作的查询 ID,该 ID 由应用程序(通过操作设置)指定,或由服务器生成。 | ## 查询 API \{#query-api\} @@ -572,7 +610,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **返回值** - `QueryResponse` 类型的 Future——包含结果数据集以及诸如服务器端指标之类的附加信息。使用完数据集后应关闭 Response 对象。 + `QueryResponse` 类型的 Future - 结果数据集及服务器端指标等附加信息。使用完数据集后应关闭 Response 对象。 **示例** @@ -644,39 +682,39 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **配置方法** - | 方法 | 说明 | - | ------------------------------------------------- | --------------------------------------------------------------------------------------------------- | - | `setQueryId(String queryId)` | 为该操作设置要分配的查询 ID。 | - | `setFormat(ClickHouseFormat format)` | 设置响应格式。完整列表请参见 `RowBinaryWithNamesAndTypes`。 | - | `setMaxExecutionTime(Integer maxExecutionTime)` | 在服务器端设置该操作的最大执行时间。不会影响读取超时设置。 | - | `waitEndOfQuery(Boolean waitEndOfQuery)` | 请求服务器在发送响应前等待查询完成。 | - | `setUseServerTimeZone(Boolean useServerTimeZone)` | 将使用服务器时区(参见客户端配置)来解析操作结果中的日期/时间类型。默认值为 `false`。 | - | `setUseTimeZone(String timeZone)` | 请求服务器在时间转换时使用 `timeZone`。参见 [session_timezone](/operations/settings/settings#session_timezone)。 | - | `serverSetting(String name, String value)` | 为单次操作设置单个服务器配置项。 | - | `serverSetting(String name, Collection values)` | 为某个操作设置包含多个值的单个服务器配置项。集合中的元素必须是 `String` 类型的值。 | - | `setDBRoles(Collection dbRoles)` | 设置在执行操作前要应用的数据库角色。集合中的元素应为 `String` 值。 | - | `setOption(String option, Object value)` | 以原始格式设置配置选项。这不是服务器级设置。 | + | 方法 | 说明 | + | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | + | `setQueryId(String queryId)` | 设置要分配给该操作的查询 ID。 | + | `setFormat(ClickHouseFormat format)` | 设置响应数据格式。完整列表请参见 `RowBinaryWithNamesAndTypes`。 | + | `setMaxExecutionTime(Integer maxExecutionTime)` | 在服务器端设置该操作的最大执行时间。不会影响读取超时设置。 | + | `waitEndOfQuery(Boolean waitEndOfQuery)` | 请求服务器在发送响应前等待查询完成。 | + | `setUseServerTimeZone(Boolean useServerTimeZone)` | 服务端时区(参见客户端配置)将用于解析操作结果中的日期/时间类型。默认值为 `false`。 | + | `setUseTimeZone(String timeZone)` | 请求服务器在进行时间转换时使用 `timeZone`。参见 [session_timezone](/operations/settings/settings#session_timezone)。 | + | `serverSetting(String name, String value)` | 为单次操作设置单个服务器端设置。 | + | `serverSetting(String name, Collection values)` | 为某个操作设置包含多个值的单个服务器配置项。集合中的元素应为 `String` 类型的值。 | + | `setDBRoles(Collection dbRoles)` | 设置在执行操作前要启用的数据库角色。集合中的元素应为 `String` 值。 | + | `setOption(String option, Object value)` | 以原始格式设置配置选项。这不是服务器端设置。 | ### QueryResponse \{#queryresponse\} 用于保存查询执行结果的响应对象。仅当客户端从服务器收到响应时才可用。 :::note - 应尽快关闭此对象以释放连接,因为在完全读取完上一个响应的所有数据之前,连接无法被重用。 + 应尽快关闭此对象以释放连接,因为在完全读取完前一个响应的所有数据之前,该连接无法被重用。 ::: - | 方法 | 说明 | - | ------------------------------- | ------------------------------------------- | - | `ClickHouseFormat getFormat()` | 返回响应数据的编码格式。 | - | `InputStream getInputStream()` | 返回按指定格式编码的未压缩数据字节流。 | - | `OperationMetrics getMetrics()` | 返回一个包含该操作各项指标的对象。 | - | `String getQueryId()` | 返回为该操作分配的查询 ID,该 ID 由应用程序(通过操作设置)指定或由服务器生成。 | - | `TimeZone getTimeZone()` | 返回用于解析响应中 Date/DateTime 类型的时区。 | + | 方法 | 说明 | + | ------------------------------- | -------------------------------------------- | + | `ClickHouseFormat getFormat()` | 返回响应数据所使用的编码格式。 | + | `InputStream getInputStream()` | 返回以指定格式编码的未压缩数据字节流。 | + | `OperationMetrics getMetrics()` | 返回一个包含该操作各项指标的对象。 | + | `String getQueryId()` | 返回为该操作分配的查询 ID,该 ID 由应用程序(通过操作设置)指定,或由服务器生成。 | + | `TimeZone getTimeZone()` | 返回在解析响应中的 Date/DateTime 类型时应使用的时区。 | ### 示例 \{#examples\} - * 示例代码可在该[代码仓库](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2)中找到 - * 参考 Spring Service 的[实现示例](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) + * 示例代码可在[代码仓库](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2)中获取 + * 参考 Spring Service 的[实现](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) ## 通用 API \{#common-api\} @@ -705,7 +743,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 从 SQL 语句中获取 schema 信息。 - **方法签名** + **签名** ```java TableSchema getTableSchemaFromQuery(String sql) @@ -717,7 +755,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **返回值** - 返回一个与 `sql` 表达式匹配列的 `TableSchema` 对象。 + 返回一个列与 `sql` 表达式匹配的 `TableSchema` 对象。 ### TableSchema \{#tableschema\} @@ -726,7 +764,7 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 为 Java 类编译一个序列化/反序列化层,以便在基于 `schema` 进行数据读写时使用。该方法将为 getter/setter 方法对及其对应的列创建序列化器和反序列化器。 列的匹配是通过从方法名中提取列名来完成的。例如,`getFirstName` 将对应列 `first_name` 或 `firstname`。 - **方法签名** + **签名** ```java void register(Class clazz, TableSchema schema) @@ -748,17 +786,18 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 完整示例代码存放在代码仓库的 'example` [文件夹](https://github.com/ClickHouse/clickhouse-java/tree/main/examples) 中: - * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - 主要示例集。 - * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - 演示如何在 Spring Boot 应用中使用客户端的示例。 - * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - 示例,演示如何在 Ktor(Kotlin)应用中使用该客户端。 + * [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - 主要示例代码集。 + * [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - 展示如何在 Spring Boot 应用中使用该客户端的示例。 + * [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - 示例,用于展示如何在 Ktor(Kotlin)应用程序中使用该客户端。 ## 读取数据 \{#reading-data\} 读取数据的常用方式有两种: - * `query()` 方法会返回底层的 `QueryResponse` 对象,该对象包含承载数据的 `InputStream`。通常与 `ClickHouseBinaryFormatReader` 组合使用以进行流式读取,但也可以配合任何其他自定义 reader 实现使用。`QueryResponse` 还提供对结果集元数据和指标的访问能力。 - * `queryAll()` 方法并使用 `GenericRecord` 以便按行方便访问数据。在这种情况下,整个结果集会被一次性加载到内存中。 - * `queryRecords()` 方法返回 `com.clickhouse.client.api.query.Records` —— 一个用于迭代 `GenericRecord` 对象的迭代器。该方法采用流式处理方式(不会将全部数据加载到内存中),并利用 `GenericRecord` 来访问数据。 + * `query()` 方法会返回底层的 `QueryResponse` 对象,该对象包含携带数据的 `InputStream`。通常与 `ClickHouseBinaryFormatReader` 组合使用以进行流式读取,但也可以配合任何其他自定义读取器实现使用。`QueryResponse` 还提供对结果集元数据和指标的访问能力。 + * `queryAll()` 方法结合 `GenericRecord` 使用,可方便地按行访问数据。在这种情况下,整个结果集会被加载到内存中。 + * `queryRecords()` 方法返回 `com.clickhouse.client.api.query.Records` —— 一种用于遍历 `GenericRecord` 对象的迭代器。该方法采用流式处理方式 + (不会将数据加载到内存中),并使用 `GenericRecord` 来访问数据。 **注意:** 流式方法需要快速读取,否则可能导致服务器写入超时,因为数据是直接从网络流中读取的。 @@ -766,10 +805,10 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`ClickHouseBinaryFormatReader` 方法** - * `getList(...)` - 将任意 `Array(...)` 读取为 `List`。适合作为类型灵活读取的默认选项。支持嵌套数组。 - * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 最适用于由与基本类型兼容的值构成的一维数组。 - * `getStringArray(...)` - 用于 `Array(String)`(以及以名称形式表示的枚举值)。 - * `getObjectArray(...)` - 适用于任意 `Array(...)` 元素类型(包括嵌套数组)的通用选项。用于读取包含 Nullable 值以及嵌套数组的数组。 + * `getList(...)` - 将任意 `Array(...)` 读取为 `List`。适合作为灵活类型读取的默认方式。支持嵌套数组。 + * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 最适用于由与 Java 原始类型兼容的值组成的一维数组。 + * `getStringArray(...)` - 用于 `Array(String)`(以及以名称表示的枚举值)。 + * `getObjectArray(...)` - 适用于任意 `Array(...)` 元素类型(包括嵌套数组)的通用方法。用于读取包含 Nullable 值或嵌套数组的数组。 所有方法都提供基于索引和基于名称的重载。索引从 1 开始计数。基于索引的重载会直接访问对应的列。 基于名称的方法每次调用都需要执行一次索引查找。 @@ -791,13 +830,13 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra **`GenericRecord` 方法** - * `getList(...)` - 将任意 `Array(...)` 解析为 `List`。适合作为灵活类型读取的默认选项,支持嵌套数组。 + * `getList(...)` - 将任意 `Array(...)` 读取为 `List`。适合作为进行灵活类型读取时的默认选择。支持嵌套数组。 * `getByteArray(...)`, `getShortArray(...)`, `getIntArray(...)`, `getLongArray(...)`, `getFloatArray(...)`, `getDoubleArray(...)`, `getBooleanArray(...)` - 最适用于由与原始类型兼容的值组成的一维数组。 - * `getStringArray(...)` - 用于 `Array(String)`(以及以名称表示的枚举类型值)。 - * `getObjectArray(...)` - 针对任意 `Array(...)` 元素类型(包括嵌套数组)的通用选项。用于读取包含 Nullable 值以及嵌套数组的数组。 + * `getStringArray(...)` - 用于 `Array(String)`(以及以名称表示的枚举值)。 + * `getObjectArray(...)` - 适用于任意 `Array(...)` 元素类型(包括嵌套数组)的通用选项。可用于读取包含 Nullable 值及嵌套数组的数组。 - 对于所有方法,都提供基于索引和基于名称的重载。索引从 1 开始。基于索引的重载直接访问列。 - 基于名称的方法每次都需要进行索引查找。 + 所有方法都提供基于索引和基于名称的重载。索引从 1 开始计数。基于索引的重载会直接访问对应的列。 + 基于名称的方法每次调用都需要执行一次索引查找。 ````java try (QueryResponse response = client.query("SELECT * FROM my_table").get()) { @@ -1101,14 +1140,14 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra } ``` - * 只需调用一个方法,无需单独创建请求对象。 - * 请求体数据流会在所有数据复制完成后自动关闭。 - * 现已提供新的低级 API:`com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`。`com.clickhouse.client.api.DataStreamWriter` 专为实现自定义数据写入逻辑而设计,例如从队列中读取数据。 + * 只需要调用一个方法,无需另外创建请求对象。 + * 当所有数据复制完成后,请求体数据流会自动关闭。 + * 现已提供新的底层 API:`com.clickhouse.client.api.Client#insert(java.lang.String, java.util.List, com.clickhouse.client.api.DataStreamWriter, com.clickhouse.data.ClickHouseFormat, com.clickhouse.client.api.insert.InsertSettings)`。`com.clickhouse.client.api.DataStreamWriter` 用于实现自定义数据写入逻辑,例如用于从队列读取数据。 ### 读取数据 - * 默认情况下,数据以 `RowBinaryWithNamesAndTypes` 格式读取。当需要进行数据绑定时,目前仅支持该格式。 - * 可以使用 `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` 方法将数据读取为一组记录。该方法会将数据读入内存并释放连接,无需额外处理。`GenericRecord` 提供对数据的访问能力,并实现了一些类型转换。 + * 默认情况下,数据以 `RowBinaryWithNamesAndTypes` 格式读取。在需要进行数据绑定时,目前仅支持该格式。 + * 可以使用 `List com.clickhouse.client.api.Client#queryAll(java.lang.String)` 方法将数据读取为一组记录。该方法会将数据读取到内存并自动释放连接,无需额外处理。`GenericRecord` 提供对数据的访问能力,并实现了一些类型转换。 ```java Collection records = client.queryAll("SELECT * FROM table"); @@ -1301,8 +1340,8 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 另外,您也可以通过以下几种方式禁用压缩。 - 1. 在连接 URL 中将 `compress` 设置为 `0` 即可禁用压缩:`http://localhost:8123/default?compress=0` - 2. 在客户端配置中禁用: + 1. 通过在连接 URL 中将 `compress` 设置为 `0` 来禁用压缩:`http://localhost:8123/default?compress=0` + 2. 通过客户端配置禁用: ```java showLineNumbers ClickHouseClient client = ClickHouseClient.builder() @@ -1397,40 +1436,40 @@ import WideTableWrapper from '@site/src/components/WideTableWrapper/WideTableWra 以下选项用于自动发现相关配置: - | 属性 | 默认值 | 描述 | - | ------------------------------- | ------- | ----------------------------------------------------------- | - | auto_discovery | `false` | 客户端是否应从 system 表以及/或 clickhouse-keeper/zookeeper 中自动发现更多节点。 | - | node_discovery_interval | `0` | 以毫秒为单位的节点发现间隔,值为零或负数表示仅进行一次发现。 | - | node_discovery_limit | `100` | 单次可发现的最大节点数;设置为零或负值表示不限制。 | + | 属性 | 默认值 | 描述 | + | ------------------------------- | ------- | ------------------------------------------------------------- | + | auto_discovery | `false` | 客户端是否应从 system 系统表以及/或 clickhouse-keeper/zookeeper 中自动发现更多节点。 | + | node_discovery_interval | `0` | 节点发现的时间间隔(毫秒),值为 0 或负数表示仅执行一次发现。 | + | node_discovery_limit | `100` | 单次可发现的最大节点数;设置为 0 或负值表示不限制。 | ### 负载均衡 Java 客户端根据负载均衡策略选择 ClickHouse 节点来发送请求。通常,负载均衡策略负责以下事项: 1. 从托管的节点列表中获取一个节点。 - 2. 管理节点的状态。 - 3. (可选)调度一个用于节点发现的后台进程(如果已启用自动发现),并执行健康检查。 + 2. 管理节点状态。 + 3. (可选)为节点发现(在启用自动发现的情况下)安排后台进程,并执行健康检查。 以下是配置负载均衡的选项列表: - | 属性 | 默认值 | 描述 | - | ----------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | load_balancing_policy | `""` | 负载均衡策略可以是以下之一:
  • `firstAlive` - 请求将被发送到受管节点列表中第一个健康节点
  • `random` - 请求将被发送到受管节点列表中随机选取的一个节点
  • `roundRobin` - 请求将按照轮询方式依次发送到受管节点列表中的每个节点
  • 实现 `ClickHouseLoadBalancingPolicy` 的全限定类名 - 自定义负载均衡策略
  • 如果未指定该策略,请求将被发送到受管节点列表中的第一个节点 | - | load_balancing_tags | `""` | 用于筛选节点的负载均衡标签。只有具有指定标签的节点才会接收请求。 | - | health_check_interval | `0` | 健康检查的时间间隔(毫秒)。值为 0 或负数表示只执行一次检查。 | - | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | 健康检查方法。可以是以下之一:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - 通过 `select 1` 查询进行检查
  • `ClickHouseHealthCheckMethod.PING` - 协议特定的检查,通常更快
  • | - | node_check_interval | `0` | 以毫秒为单位的节点检查间隔,负数将被视为 0。仅当自上次检查以来已过去指定的时间时,才会检查节点状态。
    `health_check_interval` 和 `node_check_interval` 的区别在于,`health_check_interval` 选项会调度一个后台任务,对节点列表(全部节点或故障节点)执行状态检查,而 `node_check_interval` 则指定针对某个特定节点,自上次检查以来在再次检查前至少需要经过的时间间隔。 | - | check_all_nodes | `false` | 是否对所有节点执行健康检查,还是仅对故障节点执行检查。 | + | 属性 | 默认值 | 描述 | + | ----------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | + | load_balancing_policy | `""` | 负载均衡策略可以是以下之一:
  • `firstAlive` - 请求将被发送到受管节点列表中第一个健康节点
  • `random` - 请求将被发送到受管节点列表中随机选取的一个节点
  • `roundRobin` - 请求将按照轮询方式依次发送到受管节点列表中的每个节点
  • 实现 `ClickHouseLoadBalancingPolicy` 的完整限定类名 - 自定义负载均衡策略
  • 如果未指定该策略,请求将被发送到受管节点列表中的第一个节点 | + | load_balancing_tags | `""` | 用于筛选节点的负载均衡标签。只有具有指定标签的节点才会接收请求。 | + | health_check_interval | `0` | 健康检查的时间间隔(毫秒)。值为 0 或负数表示只执行一次检查。 | + | health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | 健康检查方法。可以是以下之一:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - 通过 `select 1` 查询进行检查
  • `ClickHouseHealthCheckMethod.PING` - 基于协议的检查,通常更快
  • | + | node_check_interval | `0` | 以毫秒为单位的节点检查间隔,负数将被视为 0。仅当自上次检查以来已过去指定的时间时,才会检查该节点的状态。
    `health_check_interval` 和 `node_check_interval` 的区别在于,`health_check_interval` 选项会调度一个后台任务,对节点列表(全部节点或故障节点)执行状态检查,而 `node_check_interval` 则指定针对某个特定节点,自上次检查以来在再次检查前至少需要经过的时间间隔。 | + | check_all_nodes | `false` | 是否对所有节点执行健康检查,还是仅对故障节点执行检查。 | ### 故障转移和重试 Java 客户端提供一些配置选项,用于配置故障转移和失败查询的重试行为: - | 参数 | 默认值 | 说明 | - | ---------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- | - | failover | `0` | 针对单个请求允许执行故障转移的最大次数。值为 0 或负数表示不进行故障转移。发生故障转移时,客户端会根据负载均衡策略将失败的请求发送到其他节点,以从故障中恢复。 | - | retry | `0` | 单个请求允许重试的最大次数。为零或负值时表示不进行重试。重试时,请求会发送到同一节点,并且仅当 ClickHouse 服务器返回 `NETWORK_ERROR` 错误码时才会执行重试。 | - | repeat_on_session_lock | `true` | 当会话被锁定时,是否重复执行直到会话超时(超时时间由 `session_timeout` 或 `connect_timeout` 决定)。如果 ClickHouse 服务器返回 `SESSION_IS_LOCKED` 错误码,则会重试该失败请求。 | + | 参数 | 默认值 | 说明 | + | ---------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- | + | failover | `0` | 针对单个请求允许执行故障转移的最大次数。值为 0 或负数表示不进行故障转移。发生故障转移时,客户端会根据负载均衡策略将失败的请求发送到其他节点,以从故障中恢复。 | + | retry | `0` | 单个请求允许重试的最大次数。为零或负值时表示不进行重试。发生重试时,请求会发送到同一节点,并且仅在 ClickHouse 服务器返回 `NETWORK_ERROR` 错误码时才会进行重试 | + | repeat_on_session_lock | `true` | 当会话被锁定时,是否重复执行直到会话超时(超时时间由 `session_timeout` 或 `connect_timeout` 决定)。如果 ClickHouse 服务器返回 `SESSION_IS_LOCKED` 错误码,则会对该失败请求进行重试 | ### 添加自定义 HTTP 请求头 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx index a40814d1b2d..20b41afd1f8 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/language-clients/java/jdbc/jdbc.mdx @@ -70,9 +70,9 @@ import TabItem from '@theme/TabItem'; 如果您在应用程序中使用 JDBC 驱动程序,且该应用程序需要将 jar 添加到 classpath,则需要从以下地址下载 jar 文件: * 从 [Maven Central](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc) 下载并将其添加到 classpath 中 - * 从版本 `0.9.4` 开始,提供了构建产物 https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all - * 使用限定符 `all` 以获取包含所有已打包(shaded)依赖的 JAR。 - * 或从官方仓库[此处](https://github.com/ClickHouse/clickhouse-java/releases)获取 + * 从版本 `0.9.4` 开始,新增了构件 https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc-all + * 使用限定符 `all` 以获取包含所有打包(shaded)依赖的 jar。 + * 或从官方仓库[此处](https://github.com/ClickHouse/clickhouse-java/releases)下载 ## 配置 \{#configuration\} @@ -94,10 +94,10 @@ import TabItem from '@theme/TabItem'; 关于 URL 语法,有以下几点需要注意: - * URL 中**只能**包含一个 endpoint - * 当使用的协议不是默认的 HTTP 协议时,应显式指定协议 + * URL 中 **只能** 指定一个 endpoint + * 当所用协议不是默认的 HTTP 时,应显式指定协议 * 如果端口不是默认的 '8123',则必须显式指定。 - * 驱动程序不会根据端口来推断协议,你需要显式指定协议 + * 驱动程序不会根据端口推断协议,因此必须显式指定协议 * 如果已指定协议,则无需设置 `ssl` 参数。 ### 连接属性 \{#connection-properties\} @@ -109,14 +109,14 @@ import TabItem from '@theme/TabItem'; | 属性 | 默认值 | 描述 | | ----------------------------------- | -------- | ---------------------------------------------------------------------------------- | | `disable_frameworks_detection` | `true` | 禁用基于 User-Agent 的框架识别 | - | `jdbc_ignore_unsupported_values` | `false` | 在不影响驱动工作的情况下抑制 `SQLFeatureNotSupportedException` 异常 | + | `jdbc_ignore_unsupported_values` | `false` | 在不影响驱动正常工作的情况下抑制抛出 `SQLFeatureNotSupportedException` 异常 | | `clickhouse.jdbc.v1` | `false` | 使用旧版 JDBC 实现,而不是新版实现 | | `default_query_settings` | `null` | 允许在执行查询时传递默认查询设置 | - | `jdbc_resultset_auto_close` | `true` | 在关闭 `Statement` 时自动关闭 `ResultSet` | + | `jdbc_resultset_auto_close` | `true` | 当 `Statement` 关闭时自动关闭 `ResultSet` | | `beta.row_binary_for_simple_insert` | `false` | 使用基于 `RowBinary` writer 的 `PreparedStatement` 实现,仅适用于 `INSERT INTO ... VALUES` 查询。 | | `jdbc_resultset_auto_close` | `true` | `Statement` 关闭时自动关闭 `ResultSet` | - | `jdbc_use_max_result_rows` | `false` | 启用后,将使用服务器端属性 `max_result_rows` 来限制查询返回的行数。启用该选项时,会覆盖用户设置的溢出模式。详细信息请参见 JavaDoc。 | - | `jdbc_sql_parser` | `JAVACC` | 配置要使用的 SQL 解析器类型。可选值为:`ANTLR4`、`ANTLR4_PARAMS_PARSER`、`JAVACC`。 | + | `jdbc_use_max_result_rows` | `false` | 启用后,将使用服务器属性 `max_result_rows` 来限制查询返回的行数。启用该选项时,会覆盖用户配置的溢出模式。详细信息请参见 JavaDoc。 | + | `jdbc_sql_parser` | `JAVACC` | 配置要使用的 SQL 解析器。可选值为:`ANTLR4`、`ANTLR4_PARAMS_PARSER`、`JAVACC`。 | :::note 服务器设置 @@ -155,6 +155,39 @@ import TabItem from '@theme/TabItem'; 注意:无需对 JDBC URL 或属性进行 URL 编码,系统将自动进行编码。 + ### 客户端标识 \{#client-identification\} + + 有两种方式可以标识发起请求的应用程序:通过连接属性设置 `com.clickhouse.client.api.ClientConfigProperties#CLIENT_NAME`,或使用 `java.sql.Connection#setClientInfo(String name, String value)` 方法。 + + ```java showLineNumbers + Properties properties = new Properties(); + properties.setProperty(ClientConfigProperties.CLIENT_NAME.getKey(), "my-app-01"); + Connection conn = Driver.connect("jdbc:ch:http://localhost:8123/", properties); + ``` + + ```java showLineNumbers + conn.setClientInfo(com.clickhouse.jdbc.ClientInfoProperties.APPLICATION_NAME.getKey(), "my-app-01"); + ``` + + 两种方式都会在查询日志中生成以下 `http_user_agent` 值: + + ``` + my-app-01/1.0 clickhouse-java-v2/0.9.6-SNAPSHOT (Linux; jvm:17.0.17) Apache-HttpClient/5.4.4 + ``` + + ### 操作标识 \{#operation-identification\} + + JDBC 驱动程序会为每个操作生成 `query_id`(目前该信息包含在服务器异常中)。 + + 要为某个操作设置 `log_comment`,请使用 `com.clickhouse.jdbc.StatementImpl#getLocalSettings` 方法。这需要先将 `Statement` 或 `PreparedStatement` 强制转换为 `com.clickhouse.jdbc.StatementImpl`。 + + ```java showLineNumbers + StatementImpl stmt = (StatementImpl) conn.createStatement(); + stmt.getLocalSettings().logComment("some-comment"); + ``` + + **注意:** 此方法适用于语句的单线程使用场景,因为 `localSettings` 在线程间是共享的。 + ## 支持的数据类型 \{#supported-data-types\} JDBC 驱动支持与底层 [Java 客户端](/integrations/java#supported-data-types)相同的数据格式。 @@ -168,7 +201,7 @@ import TabItem from '@theme/TabItem'; 有几种方法可以更改映射: - * `ResultSet#getObject(columnIndex, class)` - 该方法会尝试将值转换为指定的 `class` 类型。此类转换存在一定限制。详细情况请参阅各节说明。 + * `ResultSet#getObject(columnIndex, class)` - 该方法会尝试将该值转换为指定的 `class` 类型。此类转换存在一定限制。详细情况请参阅各节说明。 **数值类型** @@ -194,13 +227,13 @@ import TabItem from '@theme/TabItem'; | Decimal256 | DECIMAL | java.math.BigDecimal | | Bool | BOOLEAN | java.lang.Boolean | - * 数值类型之间可以相互转换。因此,可以将 `Int8` 作为 `Float64` 获取,反之亦然。: + * 数值类型之间可以相互转换。因此,可以将 `Int8` 读取为 `Float64`,反之亦然: * `rs.getObject(1, Float64.class)` 将返回 `Int8` 列的 `Float64` 值。 * `rs.getLong(1)` 将返回 `Int8` 列的 `Long` 值。 * 如果值在 `Byte` 的取值范围内,`rs.getByte(1)` 可以返回 `Int16` 列的 `Byte` 值。 - * 由于存在数据损坏风险,不建议将更宽类型转换为更窄类型。 - * `Bool` 类型也可以作为数值使用。 - * 所有数值类型都可以读取为 `java.lang.String`。 + * 由于存在数据损坏风险,不建议进行从更宽类型到更窄类型的转换,以免产生数据损坏。 + * `Bool` 类型也可以当作数值类型使用。 + * 所有数值类型都可以作为 `java.lang.String` 读取。 **字符串类型** @@ -209,8 +242,8 @@ import TabItem from '@theme/TabItem'; | String | VARCHAR | java.lang.String | | FixedString | VARCHAR | java.lang.String | - * `String` 只能被读取为 `java.lang.String` 或 `byte[]` 类型。 - * `FixedString` 在读取时会保持原样,并在末尾用零字节补齐到该列的长度。(例如,将 `'John'` 存储为 `FixedString(10)` 时,读取结果为 `'John\0\0\0\0\0\0\0\0\0'`。) + * `String` 只能以 `java.lang.String` 或 `byte[]` 的形式读取。 + * `FixedString` 读取时按原样返回,并在末尾用零字节补齐至该列的长度。(例如,将 `'John'` 定义为 `FixedString(10)` 时,读取结果为 `'John\0\0\0\0\0\0\0\0\0'`。) **枚举类型** @@ -220,9 +253,9 @@ import TabItem from '@theme/TabItem'; | Enum16 | OTHER | java.lang.String | * `Enum8` 和 `Enum16` 默认映射为 `java.lang.String`。 - * 枚举值可以通过相应的数值型 getter 方法,或使用 `getObject(columnIndex, Integer.class)` 方法,以数值形式读取。 - * `Enum16` 在内部映射为 short,而 `Enum8` 映射为 byte。应避免将 `Enum16` 按 byte 读取,否则有导致数据损坏的风险。 - * 可以在 `PreparedStatement` 中将枚举值设置为字符串值或数值。 + * 枚举值可以通过相应的数值型 getter 方法或使用 `getObject(columnIndex, Integer.class)` 方法读取为数值。 + * `Enum16` 在内部映射为 short 类型,而 `Enum8` 映射为 byte 类型。应避免将 `Enum16` 以 byte 形式读取,否则存在数据损坏风险。 + * 可以在 `PreparedStatement` 中以字符串或数值形式设置枚举值。 **日期/时间类型** @@ -235,13 +268,13 @@ import TabItem from '@theme/TabItem'; | Time | TIME | java.sql.Time | | Time64 | TIME | java.sql.Time | - * 日期/时间类型会映射为 `java.sql` 类型,以便更好地兼容 JDBC。但仍然可以通过调用 `ResultSet#getObject(columnIndex, Class)`,并将相应的类作为第二个参数来获取 `java.time.LocalDate`、`java.time.LocalDateTime`、`java.time.LocalTime`。 - * `rs.getObject(1, java.time.LocalDate.class)` 将返回 `Date` 列中对应的 `java.time.LocalDate` 值。 - * `rs.getObject(1, java.time.LocalDateTime.class)` 将返回 `DateTime` 列中对应的 `java.time.LocalDateTime` 值。 - * `rs.getObject(1, java.time.LocalTime.class)` 将返回 `Time` 列中对应的 `java.time.LocalTime` 值。 - * `Date`、`Date32`、`Time`、`Time64` 不受服务器的时区影响。 - * `DateTime`、`DateTime64` 受服务器时区或会话时区影响。 - * `DateTime` 和 `DateTime64` 可以通过 `getObject(colIndex, ZonedDateTime.class)` 以 `ZonedDateTime` 的形式获取。 + * 日期/时间类型会映射为 `java.sql` 类型,以便与 JDBC 有更好的兼容性。不过,仍然可以通过调用 `ResultSet#getObject(columnIndex, Class)`,并将相应的类作为第二个参数传入,来获取 `java.time.LocalDate`、`java.time.LocalDateTime`、`java.time.LocalTime`。 + * `rs.getObject(1, java.time.LocalDate.class)` 将返回 `Date` 列的 `java.time.LocalDate` 值。 + * `rs.getObject(1, java.time.LocalDateTime.class)` 将返回 `DateTime` 列的 `java.time.LocalDateTime` 值。 + * `rs.getObject(1, java.time.LocalTime.class)` 将返回 `Time` 列的 `java.time.LocalTime` 值。 + * `Date`, `Date32`, `Time`, `Time64` 不会受到服务器时区的影响。 + * `DateTime`、`DateTime64` 会受到服务器时区或会话时区的影响。 + * `DateTime` 和 `DateTime64` 可以通过 `getObject(colIndex, ZonedDateTime.class)` 获取为 `ZonedDateTime` 对象。 **嵌套类型** @@ -252,13 +285,13 @@ import TabItem from '@theme/TabItem'; | Map | JAVA_OBJECT | java.util.Map | | Nested | ARRAY | java.sql.Array | - * `Array` 默认会映射为 `java.sql.Array`,以保证与 JDBC 的兼容性。这也能提供关于返回的数组值的更多信息,有助于进行类型推断。 - * `Array` 实现了 `getResultSet()` 方法,以返回内容与原始数组相同的 `java.sql.ResultSet` 对象。 - * 集合类型不应被读取为 `java.lang.String`,因为这样无法正确表示数据(例如:数组中的字符串值不会被加引号)。 - * `Map` 映射为 `JAVA_OBJECT`,因为其值只能通过 `getObject(columnIndex, Class)` 方法读取。 + * `Array` 默认会映射为 `java.sql.Array`,以保证与 JDBC 的兼容性。这样也能提供更多关于返回数组值的信息,有助于进行类型推断。 + * `Array` 实现了 `getResultSet()` 方法,以返回一个内容与原始数组相同的 `java.sql.ResultSet`。 + * 集合类型不应被读取为 `java.lang.String`,因为那并不是一种有效的数据表示方式(例如:数组中的字符串值不会被加上引号)。 + * `Map` 映射为 `JAVA_OBJECT`,因为其中的值只能通过 `getObject(columnIndex, Class)` 方法读取。 * `Map` 不是 `java.sql.Struct`,因为它没有具名列。 - * `Tuple` 映射为 `Object[]`,因为它可以包含不同类型的元素,使用 `List` 作为映射类型是不合法的。 - * `Tuple` 可以通过 `getObject(columnIndex, Array.class)` 方法读取为 `Array` 类型。在这种情况下,`Array#baseTypeName` 将返回该 `Tuple` 列的定义。 + * `Tuple` 映射为 `Object[]`,因为它可以包含不同类型的元素,使用 `List` 进行映射是无效的。 + * `Tuple` 可以通过 `getObject(columnIndex, Array.class)` 方法被读取为 `Array` 类型。在这种情况下,`Array#baseTypeName` 会返回 `Tuple` 列的定义。 **写入数组** @@ -267,8 +300,8 @@ import TabItem from '@theme/TabItem'; 该方法接受两个参数: - * `typeName` - 数组元素的类型名称。例如 `Array(Int32)` -> `"Int32"`。 - * `elements` - 数组中的实际元素。例如 `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}`。 + * `typeName` - 数组元素类型的名称。例如 `Array(Int32)` -> `"Int32"`。 + * `elements` - 数组的实际元素。例如 `[[1, 2, 3], [4, 5, 6]]` -> `new Integer[][] {{1, 2, 3}, {4, 5, 6}}`。 Tuple 可以表示为 `Object[]` 或 `java.sql.Struct`(请参阅下文中关于如何写入 Tuple 的说明)。 @@ -406,8 +439,8 @@ import TabItem from '@theme/TabItem'; 该方法接受两个参数: - * `typeName` - 嵌套元素类型的名称。例如 `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`。 - * `elements` - 实际的嵌套元素本身。例如 `[1, 'test']` -> `new Object[] {1, 'test'}`。 + * `typeName` - 嵌套元素的类型名称。例如 `Nested(Tuple(Int32, String))` -> `"Nested(Tuple(Int32, String))"`。 + * `elements` - 实际的嵌套元素。例如 `[1, 'test']` -> `new Object[] {1, 'test'}`。 **示例** @@ -460,8 +493,8 @@ import TabItem from '@theme/TabItem'; **Nullable 和 LowCardinality 类型** - * `Nullable` 和 `LowCardinality` 是用于封装其他类型的特殊类型。 - * `Nullable` 会影响 `ResultSetMetaData` 中类型名称的返回方式 + * `Nullable` 和 `LowCardinality` 是包装其他类型的特殊类型。 + * `Nullable` 会影响 `ResultSetMetaData` 返回的类型名称 **特殊类型** @@ -474,10 +507,10 @@ import TabItem from '@theme/TabItem'; | AggregateFunction | OTHER | (二进制表示) | | SimpleAggregateFunction | (封装类型) | (封装类) | - * `UUID` 不是 JDBC 标准类型,但它是 JDK 的一部分。默认情况下,通过 `getObject()` 方法会返回一个 `java.util.UUID` 实例。 - * 可以使用 `getObject(columnIndex, String.class)` 方法以 `String` 形式对 `UUID` 进行读写。 + * `UUID` 不是 JDBC 标准类型,但它是 JDK 的一部分。默认情况下,调用 `getObject()` 方法会返回一个 `java.util.UUID` 实例。 + * 可以使用 `getObject(columnIndex, String.class)` 方法,以 `String` 形式读取和写入 `UUID`。 * `IPv4` 和 `IPv6` 不是 JDBC 标准类型,但它们是 JDK 的一部分。默认情况下,调用 `getObject()` 方法时会返回 `java.net.Inet4Address` 和 `java.net.Inet6Address` 实例。 - * 通过 `getObject(columnIndex, String.class)` 方法,`IPv4` 和 `IPv6` 可以以 `String` 形式进行读写。 + * 通过 `getObject(columnIndex, String.class)` 方法,可以将 `IPv4` 和 `IPv6` 作为 `String` 进行读写。 ### 处理日期、时间和时区 \{#handling-dates-times-and-timezones\} @@ -603,7 +636,7 @@ import TabItem from '@theme/TabItem'; 在 Linux 上,仅配置等效设置可能无法解决问题。由于 Linux 处理套接字 keep-alive 设置的方式不同,需要执行额外的步骤。请按照以下步骤操作: - 1. 在 `/etc/sysctl.conf` 或其他相关配置文件中调整以下 Linux 内核参数: + 1. 在 `/etc/sysctl.conf` 或其他相关的配置文件中调整以下 Linux 内核参数: * `net.inet.tcp.keepidle`: 60000 * `net.inet.tcp.keepintvl`: 45000 @@ -612,7 +645,7 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60(可以考虑将该值从默认值 300 秒适当调低) + * `net.ipv4.tcp_keepalive_time`: 60(可考虑将该值从默认的 300 秒降低) 2. 修改内核参数后,运行以下命令以使更改生效: @@ -633,28 +666,28 @@ import TabItem from '@theme/TabItem'; | 功能 | V1(旧版) | V2(新版) | | ------------------------------- | ------ | --------------- | | 事务支持 | 部分支持 | 不支持 | - | 响应中列重命名 | 部分支持 | 不支持 | + | 响应中的列重命名 | 部分支持 | 不支持 | | 多语句 SQL | 不支持 | 不允许 | | 命名参数 | 支持 | 不支持(JDBC 规范未定义) | | 使用 `PreparedStatement` 进行流式数据传输 | 支持 | 不支持 | - * JDBC V2 采用了更轻量的实现,因此移除了部分功能。 - * JDBC V2 不支持流式数据传输,因为该特性既不是 JDBC 规范的一部分,也不是 Java 标准的一部分。 - * JDBC V2 需要显式配置,不提供任何故障转移相关的默认设置。 + * JDBC V2 为了更加轻量化而实现,因此移除了一些功能。 + * JDBC V2 不支持流式数据传输,因为该功能既不在 JDBC 规范中定义,也未在 Java 中定义。 + * JDBC V2 需要显式配置,不提供任何故障转移默认配置。 * 协议应在 URL 中显式指定,不进行基于端口号的隐式协议推断。 ### 配置更改 \{#configuration-changes\} 仅有两个枚举: - * `com.clickhouse.jdbc.DriverProperties` - 驱动程序自身的配置属性。 - * `com.clickhouse.client.api.ClientConfigProperties` - 客户端的配置属性。关于客户端配置变更,详见 [Java Client 文档](/integrations/language-clients/java/client/client.mdx#migration_from_v1_config)。 + * `com.clickhouse.jdbc.DriverProperties` - 驱动程序特有的配置属性。 + * `com.clickhouse.client.api.ClientConfigProperties` - 客户端配置属性。客户端配置变更详见 [Java Client 文档](/integrations/language-clients/java/client/client.mdx#migration_from_v1_config)。 连接属性按以下方式解析: - * URL 首先会被解析以提取属性,这些属性会覆盖所有其他属性。 - * 驱动属性不会被传递给客户端。 - * 端点信息(主机、端口、协议)从 URL 中解析而来。 + * 会首先从 URL 中解析出属性,这些属性将覆盖所有其他属性。 + * 驱动程序属性不会传递给客户端。 + * 端点(主机、端口、协议)从 URL 中解析得到。 示例: @@ -676,7 +709,7 @@ import TabItem from '@theme/TabItem'; **数值类型** - | ClickHouse 类型 | 是否与 V1 兼容 | JDBC 类型(V2) | Java 类(V2) | JDBC 类型(V1) | Java 类(V1) | + | ClickHouse 类型 | 与 V1 的兼容性 | JDBC 类型(V2) | Java 类(V2) | JDBC 类型(V1) | Java 类(V1) | | ------------- | --------- | ----------- | -------------------- | ----------- | ----------------------------------------- | | Int8 | ✅ | TINYINT | java.lang.Byte | TINYINT | java.lang.Byte | | Int16 | ✅ | SMALLINT | java.lang.Short | SMALLINT | java.lang.Short | @@ -698,7 +731,7 @@ import TabItem from '@theme/TabItem'; | Decimal256 | ✅ | DECIMAL | java.math.BigDecimal | DECIMAL | java.math.BigDecimal | | Bool | ✅ | BOOLEAN | java.lang.Boolean | BOOLEAN | java.lang.Boolean | - * 主要区别在于,现在会将无符号类型映射为 Java 类型,以提高可移植性。 + * 最大的区别在于,将无符号类型映射为 Java 类型,以提高可移植性。 **字符串类型** @@ -708,22 +741,22 @@ import TabItem from '@theme/TabItem'; | FixedString | ✅ | VARCHAR | java.lang.String | VARCHAR | java.lang.String | * `FixedString` 在两个版本中均按原样读取。例如,对于 `'John'`,`FixedString(10)` 会被读取为 `'John\0\0\0\0\0\0\0\0\0'`。 - * 当使用 `PreparedStatement#setBytes` 时,会先将该值转换为 `unhex('')`,然后按 `String` 类型读取。 + * 当使用 `PreparedStatement#setBytes` 时,会被转换为 `unhex('')`,然后作为 `String` 类型读取。 * 字符串以 UTF-8 编码存储。 **日期/时间类型** - | ClickHouse 类型 | 是否与 V1 兼容 | JDBC 类型(V2) | Java 类(V2) | JDBC 类型(V1) | Java 类(V1) | + | ClickHouse 类型 | 是否与 V1 兼容 | JDBC 类型(V2) | Java 类(V2) | JDBC 类型(V1) | Java 类(V1) | | ------------- | --------- | ----------- | ------------------ | ----------- | ------------------------ | | Date | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | | Date32 | ❌ | DATE | java.sql.Date | DATE | java.time.LocalDate | | DateTime | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | | DateTime64 | ❌ | TIMESTAMP | java.sql.Timestamp | TIMESTAMP | java.time.OffsetDateTime | | Time | ✅ | TIME | java.sql.Time | 新类型/不支持 | 新类型/不支持 | - | Time64 | ✅ | TIME | java.sql.Time | 新类型/不支持 | 新类型 / 不支持 | + | Time64 | ✅ | TIME | java.sql.Time | 新类型/未支持 | 新类型 / 未支持 | - * `Time` 和 `Time64` 仅在 V2 中作为新增类型得到支持。 - * `DateTime` 和 `DateTime64` 被映射为 `java.sql.Timestamp`,以实现更好的 JDBC 兼容性。 + * `Time` 和 `Time64` 仅作为新类型在 V2 中受支持。 + * `DateTime` 和 `DateTime64` 映射到 `java.sql.Timestamp` 类型,以提高与 JDBC 的兼容性。 **枚举类型** @@ -742,15 +775,15 @@ import TabItem from '@theme/TabItem'; | Map | ❌ | JAVA_OBJECT | java.util.Map | STRUCT | java.util.Map | | Nested | ❌ | ARRAY | java.sql.Array | STRUCT | java.sql.Struct | - * 在 V2 中,`Array` 默认映射为 `java.sql.Array`,以便与 JDBC 保持兼容。这也能提供更多关于返回数组值的信息,有利于进行类型推断。 - * 在 V2 中,`Array` 实现了 `getResultSet()` 方法,以返回一个内容与原始数组相同的 `java.sql.ResultSet` 对象。 + * 在 V2 中,`Array` 默认映射为 `java.sql.Array`,以便与 JDBC 保持兼容。这样做也能提供更多关于返回数组值的信息,有助于进行类型推断。 + * 在 V2 中,`Array` 实现了 `getResultSet()` 方法,用于返回一个内容与原始数组相同的 `java.sql.ResultSet`。 * V1 对 `Map` 使用 `STRUCT`,但始终返回 `java.util.Map` 对象。V2 通过将 `Map` 映射为 `JAVA_OBJECT` 解决了这一问题。 - * V1 将 `Tuple` 映射为 `STRUCT`,但始终返回 `List` 对象。V2 将 `Tuple` 映射为 `OTHER`,并默认返回 `Object[]` 数组。 - * V2 引入了 `com.clickhouse.data.Tuple#Tuple` 用于写入 Tuple 值。它简化了判断某个值是 Tuple 还是数组的过程。 - * `PreparedStatement#setBytes` 和 `ResultSet#getBytes` 不能与集合类型一起使用。这些方法是专为处理二进制字符串而设计的。 - * 通常会使用 `java.sql.Array` 来写入和读取 Array 类型。JDBC 驱动对这一点提供了完整支持。 - * 在 V2 中,`Nested` 被映射为 `Array`,并将其表示为元组数组。 - * V2 对 `java.sql.Struct` 提供了部分支持,由于它与 Array 类型非常相似,本身不支持键值对。`Struct` 可用于写入 `Tuple` 类型的值。 + * V1 将 `Tuple` 映射为 `STRUCT`,但始终返回 `List<Object>`。V2 将 `Tuple` 映射为 `OTHER`,并默认返回 `Object[]`。 + * V2 引入了 `com.clickhouse.data.Tuple#Tuple` 用于写入 Tuple。这样可以更容易判断某个值是 Tuple 还是数组。 + * `PreparedStatement#setBytes` 和 `ResultSet#getBytes` 不能用于集合类型。这些方法是专为处理二进制字符串而设计的。 + * 通常使用 `java.sql.Array` 来写入和读取 Array 类型。JDBC 驱动对此提供了完整支持。 + * 在 V2 中,`Nested` 被映射为 `Array`,并将其呈现为由元组组成的数组。 + * V2 对 `java.sql.Struct` 提供了部分支持,因为它与 Array 类型非常相似,而且不支持键值对。`Struct` 可用于写入 `Tuple` 类型的值。 **地理类型** @@ -763,7 +796,7 @@ import TabItem from '@theme/TabItem'; **Nullable 和 LowCardinality 类型** - * `Nullable` 和 `LowCardinality` 是包装其他类型的特殊类型。 + * `Nullable` 和 `LowCardinality` 是用于封装其他类型的特殊类型。 * 在 V2 中,这些类型没有变化。 **特殊类型** @@ -776,20 +809,20 @@ import TabItem from '@theme/TabItem'; | UUID | ✅ | OTHER | java.util.UUID | VARCHAR | java.util.UUID | | IPv4 | ✅ | OTHER | java.net.Inet4Address | VARCHAR | java.net.Inet4Address | | IPv6 | ✅ | OTHER | java.net.Inet6Address | VARCHAR | java.net.Inet6Address | - | Dynamic | ❌ | OTHER | java.lang.Object | 不支持 | 不支持 | - | Variant | ❌ | OTHER | java.lang.Object | 不支持 | 不支持 | + | Dynamic | ❌ | OTHER | java.Object | 不支持 | 不支持 | + | Variant | ❌ | OTHER | java.Object | 不支持 | 不支持 | - * V1 使用 `VARCHAR` 作为 `UUID` 的 JDBC 类型,但始终返回 `java.util.UUID` 对象。V2 通过将 `UUID` 映射为 `OTHER`,并同样返回 `java.util.UUID` 对象来修复此问题。 - * V1 对 `IPv4` 和 `IPv6` 使用 `VARCHAR` 类型,但始终返回 `java.net.Inet4Address` 和 `java.net.Inet6Address` 对象。V2 通过将 `IPv4` 和 `IPv6` 映射为 JDBC 类型 `OTHER`,并返回 `java.net.Inet4Address` 和 `java.net.Inet6Address` 对象以此修复该问题。 + * V1 使用 `VARCHAR` 作为 `UUID` 的 JDBC 类型,但始终返回 `java.util.UUID` 对象。V2 通过将 `UUID` 映射为 `OTHER`,并仍然返回 `java.util.UUID` 对象来修复此问题。 + * V1 对 `IPv4` 和 `IPv6` 使用 `VARCHAR` 类型,但始终返回 `java.net.Inet4Address` 和 `java.net.Inet6Address` 对象。V2 通过将 `IPv4` 和 `IPv6` 映射为 JDBC 类型 `OTHER`,并返回 `java.net.Inet4Address` 和 `java.net.Inet6Address` 对象来修复此问题。 * `Dynamic` 和 `Variant` 是 V2 中新增的类型,在 V1 中不支持。 - * `JSON` 基于 `Dynamic` 类型,因此仅在 V2 中受支持。 + * `JSON` 基于 `Dynamic` 类型,因此仅在 V2 中提供支持。 * 可以通过 `getBytes(columnIndex)` 方法将 IPv4 和 IPv6 的值读取为 `byte[]`。不过,建议针对这些类型使用专门的类。 * V2 不支持以数值形式读取 IP 地址,因为在 InetAddress 类中完成该转换的实现更为合理。 ### 数据库元数据变更 \{#database-metadata-changes\} - * V2 仅使用 `Schema` 一词来表示数据库。`Catalog` 一词保留供将来使用。 - * V2 会在 `DatabaseMetaData.supportsTransactions()` 和 `DatabaseMetaData.supportsSavepoints()` 中返回 `false`。这一行为将在后续版本的开发中进行调整。 + * V2 仅使用 `Schema` 这一术语来表示数据库,将 `Catalog` 术语保留作今后使用。 + * V2 会在 `DatabaseMetaData.supportsTransactions()` 和 `DatabaseMetaData.supportsSavepoints()` 中返回 `false`。这一行为将在后续版本中进行调整。 @@ -881,12 +914,12 @@ import TabItem from '@theme/TabItem'; | 属性 | 默认值 | 说明 | | -------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `continueBatchOnError` | `false` | 是否在发生错误时继续执行后续批处理操作 | + | `continueBatchOnError` | `false` | 出错后是否继续执行后续批处理 | | `createDatabaseIfNotExist` | `false` | 当目标数据库不存在时是否自动创建 | | `custom_http_headers` | | 以逗号分隔的自定义 HTTP 请求头,例如:`User-Agent=client1,X-Gateway-Id=123` | - | `custom_http_params` | | 用逗号分隔的自定义 HTTP 查询参数,例如:`extremes=0,max_result_rows=100` | - | `nullAsDefault` | `0` | `0` - 按原样处理 null 值,在向非 Nullable 列插入 null 时抛出异常;`1` - 按原样处理 null 值,并在插入时禁用 null 检查;`2` - 将 null 替换为相应数据类型的默认值(对查询和插入均生效) | - | `jdbcCompliance` | `true` | 是否支持标准的同步 UPDATE/DELETE 操作以及伪事务 | + | `custom_http_params` | | 以逗号分隔的自定义 HTTP 查询参数,例如:`extremes=0,max_result_rows=100` | + | `nullAsDefault` | `0` | `0` - 按原样处理 null 值,在向非 Nullable 列插入 null 时抛出异常;`1` - 按原样处理 null 值,并在插入时禁用 null 检查机制;`2` - 将 null 替换为相应数据类型的默认值(对查询和插入均生效) | + | `jdbcCompliance` | `true` | 是否启用对标准同步 UPDATE/DELETE 操作和伪事务的支持 | | `typeMappings` | | 自定义 ClickHouse 数据类型与 Java 类之间的映射关系,该配置会同时影响 [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) 和 [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-) 的返回结果。例如:`UInt128=java.lang.String,UInt256=java.lang.String` | | `wrapperObject` | `false` | [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) 是否应在处理 Array / Tuple 时返回 java.sql.Array / java.sql.Struct。 | @@ -899,8 +932,8 @@ import TabItem from '@theme/TabItem'; :::note * AggregatedFunction - :warning: 不支持通过 `SELECT * FROM table ...` 查询 - * Decimal - 在 21.9+ 中使用 `SET output_format_decimal_trailing_zeros=1` 以保持一致性 - * Enum - 既可以按字符串也可以按整数处理 + * Decimal - 在 21.9 及更高版本中使用 `SET output_format_decimal_trailing_zeros=1` 以保持一致性 + * Enum - 既可以作为字符串,也可以作为整数来处理 * UInt64 - 在 client-v1 中映射为 `long` 类型 ::: @@ -966,7 +999,7 @@ import TabItem from '@theme/TabItem'; } ``` - * [input 表函数文档](/sql-reference/table-functions/input/),并在可能的情况下优先使用该函数 + * [input 表函数文档](/sql-reference/table-functions/input/),尽可能使用该函数 ### 使用占位符插入数据 \{#insert-with-placeholders\} @@ -1076,16 +1109,16 @@ import TabItem from '@theme/TabItem'; ## SSL 属性 \{#ssl-properties\} - | 名称 | 默认值 | 可选值 | 说明 | - | -------------------- | ------ | ------------ | --------------------------------------- | - | `ssl` | false | true, false | 是否为此连接启用 SSL/TLS | - | `sslmode` | strict | strict, none | 是否校验 SSL/TLS 证书 | - | `sslrootcert` | | | SSL/TLS 根证书文件路径 | - | `sslcert` | | | SSL/TLS 证书文件路径 | - | `sslkey` | | | PKCS#8 格式的 RSA 私钥 | - | `key_store_type` | | JKS, PKCS12 | 指定 `KeyStore`/`TrustStore` 文件的类型或格式 | - | `trust_store` | | | `TrustStore` 文件的路径 | - | `key_store_password` | | | 用于访问 `KeyStore` 配置中指定的 `KeyStore` 文件的密码 | + | 名称 | 默认值 | 可选值 | 说明 | + | -------------------- | ------ | ------------ | -------------------------------------- | + | `ssl` | false | true, false | 是否为该连接启用 SSL/TLS 加密 | + | `sslmode` | strict | strict, none | 是否验证 SSL/TLS 证书 | + | `sslrootcert` | | | SSL/TLS 根证书的文件路径 | + | `sslcert` | | | SSL/TLS 证书的文件路径 | + | `sslkey` | | | PKCS#8 格式的 RSA 私钥 | + | `key_store_type` | | JKS, PKCS12 | 指定 `KeyStore`/`TrustStore` 文件的类型或格式 | + | `trust_store` | | | `TrustStore` 文件路径 | + | `key_store_password` | | | 用于访问 `KeyStore` 配置中指定 `KeyStore` 文件的密码 | 这些属性可确保您的 Java 应用程序通过加密连接与 ClickHouse 服务器进行通信,从而提高数据传输过程中的安全性。 @@ -1129,7 +1162,7 @@ import TabItem from '@theme/TabItem'; ### Linux \{#v07-linux\} - 在 Linux 上,仅配置等效设置可能无法解决问题。由于 Linux 处理套接字 keep-alive 设置的方式不同,需要执行额外的步骤。请按照以下步骤操作: + 在 Linux 上,仅配置等效设置可能无法解决问题。由于 Linux 处理套接字 keep-alive 设置的方式不同,需要执行额外的步骤。请按照以下步骤操作: 1. 在 `/etc/sysctl.conf` 或其他相关配置文件中调整以下 Linux 内核参数: @@ -1140,9 +1173,9 @@ import TabItem from '@theme/TabItem'; * `net.inet.tcp.always_keepalive`: 1 * `net.ipv4.tcp_keepalive_intvl`: 75 * `net.ipv4.tcp_keepalive_probes`: 9 - * `net.ipv4.tcp_keepalive_time`: 60(可以考虑将该值从默认的 300 秒下调) + * `net.ipv4.tcp_keepalive_time`: 60(可以考虑将该值从默认的 300 秒降低) - 2. 修改内核参数后,运行以下命令以使更改生效: + 2. 修改内核参数后,通过运行以下命令应用更改: ```shell sudo sysctl -p diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/misc/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/misc/index.md index d0a2ac3dd05..8f6a8f7f122 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/misc/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/misc/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/misc -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['可视化界面', 'GUI', '代理', '第三方集成'] title: '工具' description: '“工具”部分的概览页' doc_type: 'landing-page' diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md index a20717cc661..6496749b981 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/introduction.md @@ -32,12 +32,10 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous ## 测试用例:TPC-H \{#test-case-tpc-h\} 此表对比了在缩放因子为 1 时,[TPC-H] 查询在常规 PostgreSQL -表与通过 pg_clickhouse 连接到 ClickHouse 的表之间的性能;✔︎ 表示完全下推,而短横线(-)表示在 1 分钟后取消该查询。 +表与通过 pg\_clickhouse 连接到 ClickHouse 的表之间的性能;✔︎ 表示完全下推,而短横线(-)表示在 1 分钟后取消该查询。 所有测试均在配备 36 GB 内存的 MacBook Pro M4 Max 上运行。 -{/* cd dev/tpch && make ch && make pg && make run */ } - -| 查询 | PostgreSQL | pg_clickhouse | 下推 | +| 查询 | PostgreSQL | pg\_clickhouse | 下推 | | ------: | ---------: | ----------------: | :-: | | [查询 1] | 4693 ms | 268 ms | ✔︎ | | [查询 2] | 458 ms | 3446 ms | | @@ -49,7 +47,7 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous | [查询 8] | 342 ms | 156 ms | ✔︎ | | [查询 9] | 3094 ms | 298 ms | ✔︎ | | [查询 10] | 581 ms | 197 ms | ✔︎ | -| [查询 11] | 212 ms | 24 ms | ✔︎ | +| [查询 11] | 212 ms | 24 ms | | | [查询 12] | 1116 ms | 84 ms | ✔︎ | | [查询 13] | 958 ms | 1368 ms | | | [查询 14] | 181 ms | 73 ms | ✔︎ | @@ -62,7 +60,6 @@ docker exec -it pg_clickhouse psql -U postgres -c 'CREATE EXTENSION pg_clickhous | [查询 21] | 1349 ms | 4434 ms | | | [查询 22] | 258 ms | 1415 ms | | - ### 从源代码编译 \{#compile-from-source\} #### 通用 Unix \{#general-unix\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md index 5ae814a8b78..92e8f6ffb3a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/reference.md @@ -334,7 +334,7 @@ DROP FOREIGN TABLE uact CASCADE; ## DML SQL 参考 \{#dml-sql-reference\} -下面的 SQL [DML] 表达式可能会使用 pg_clickhouse。示例基于由 [make-logs.sql] 创建的这些 ClickHouse 表: +下面的 SQL [DML] 表达式可能会使用 pg_clickhouse。示例基于这些 ClickHouse 表: ```sql CREATE TABLE logs ( @@ -543,6 +543,14 @@ try=# EXECUTE avg_durations_between_dates('2025-12-09', '2025-12-13'); (5 rows) ``` +:::warning +在 25.8 之前的 ClickHouse 版本中,参数化执行会导致 [http driver](#create-server) +无法正确转换 DateTime 的时区;该[底层缺陷][underlying bug] 已在 25.8 中[修复][fixed]。 +请注意,有时即使不使用 `PREPARE`,PostgreSQL 也会使用参数化查询计划。 +对于任何需要精确时区转换但又无法升级到 25.8 或更高版本的查询,请改用 +[binary driver](#create-server)。 +::: + pg_clickhouse 像往常一样执行聚合下推,如在 [EXPLAIN](#explain) 的详细输出中所示: ```pgsql @@ -635,7 +643,7 @@ LOAD SET pg_clickhouse.session_settings = 'join_use_nulls 1, final 1'; ``` -默认值为 `join_use_nulls 1`。将其设为空字符串以退回到 ClickHouse 服务器端的设置。 +默认值为 `join_use_nulls 1`。将其设为空字符串以回退到 ClickHouse 服务器的设置。 ```sql SET pg_clickhouse.session_settings = ''; @@ -674,7 +682,13 @@ SET pg_clickhouse.session_settings TO $$ $$; ``` -pg_clickhouse 不会验证这些设置,而是在每次查询时将它们传递给 ClickHouse。因此,它支持该 ClickHouse 版本的所有设置。 +在某些情况下,如果某些设置会干扰 pg_clickhouse 本身的运行,这些设置将被忽略。这些设置包括: + +* `date_time_output_format`:http 驱动程序要求其为 "iso" +* `format_tsv_null_representation`:http 驱动程序要求使用默认值 +* `output_format_tsv_crlf_end_of_line`:http 驱动程序要求使用默认值 + +除此之外,pg_clickhouse 不会验证这些设置,而是在每次查询时将它们传递给 ClickHouse。因此,它支持该 ClickHouse 版本的所有设置。 请注意,必须先加载 pg_clickhouse,然后才能设置 `pg_clickhouse.session_settings`;可以使用 [shared library preloading],或者 @@ -733,18 +747,16 @@ shared_preload_libraries = pg_clickhouse 对于每个会话而言,这有助于节省内存并降低加载开销,但在更新该库时需要重启集群。 -## 函数与运算符参考 \{#function-and-operator-reference\} - -### 数据类型 \{#data-types\} +## 数据类型 \{#data-types\} -pg_clickhouse 将以下 ClickHouse 数据类型映射到 PostgreSQL 数据类型: +pg_clickhouse 将以下 ClickHouse 数据类型映射到 PostgreSQL 数据类型。[IMPORT FOREIGN SCHEMA](#import-foreign-schema) 在导入列时使用 PostgreSQL 列中的第一个数据类型;其他类型可以在 [CREATE FOREIGN TABLE](#create-foreign-table) 语句中使用: | ClickHouse | PostgreSQL | 说明 | -| -----------|------------------|--------------------------------------| +|------------|------------------|--------------------------------------| | Bool | boolean | | | Date | date | | | Date32 | date | | -| DateTime | timestamp | | +| DateTime | timestamptz | | | Decimal | numeric | | | Float32 | real | | | Float64 | double precision | | @@ -755,13 +767,129 @@ pg_clickhouse 将以下 ClickHouse 数据类型映射到 PostgreSQL 数据类型 | Int64 | bigint | | | Int8 | smallint | | | JSON | jsonb | 仅适用于 HTTP engine | -| String | text | | +| String | text, bytea | | | UInt16 | integer | | | UInt32 | bigint | | | UInt64 | bigint | 当值大于 BIGINT 最大值时会报错 | | UInt8 | smallint | | | UUID | uuid | | +后续部分将提供更多说明和详细信息。 + +### BYTEA \{#bytea\} + +ClickHouse 不提供与 PostgreSQL [BYTEA] 类型等效的类型,但允许将任意字节存储在 [String] 类型中。通常,ClickHouse 字符串应映射到 PostgreSQL 的 [TEXT] 类型,但在处理二进制数据时,应将其映射到 [BYTEA]。示例: + +```sql +-- Create clickHouse table with String columns. +SELECT clickhouse_raw_query($$ + CREATE TABLE bytes ( + c1 Int8, c2 String, c3 String + ) ENGINE = MergeTree ORDER BY (c1); +$$); + +-- Create foreign table with BYTEA columns. +CREATE FOREIGN TABLE bytes ( + c1 int, + c2 BYTEA, + c3 BYTEA +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Insert binary data into the foreign table. +INSERT INTO bytes +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the results. +SELECT * FROM bytes; +``` + +最终的 `SELECT` 查询将输出: + +```pgsql + c1 | c2 | c3 +----+------------------------------------------------------------+------------------------------------ + 1 | \x1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | \xae3b28cde02542f81acce8783245430d + 2 | \x5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | \x23e7c6cacb8383f878ad093b0027d72b + 3 | \x53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | \x7e969132fc656148b97b6a2ee8bc83c1 + 4 | \x4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | \x8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +请注意,如果 ClickHouse 列中存在任何空字节(nul bytes),使用 [TEXT] 列的外部表将无法输出正确的值: + +```sql +-- Create foreign table with TEXT columns. +CREATE FOREIGN TABLE texts ( + c1 int, + c2 TEXT, + c3 TEXT +) SERVER ch_srv OPTIONS( table_name 'bytes' ); + +-- Encode binary data as hex. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +将输出: + +```pgsql + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b + 3 | 53ac2c1fa83c8f64603fe9568d883331 | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +请注意,第二行和第三行包含截断的值。这是因为 PostgreSQL 依赖以 nul 结尾的字符串,且不支持在字符串中包含 nul 字符。 + +尝试将二进制值插入 [TEXT] 列将会成功并按预期工作: + +```sql +-- Insert via text columns: +TRUNCATE texts; +INSERT INTO texts +SELECT n, sha224(bytea('val'||n)), decode(md5('int'||n), 'hex') + FROM generate_series(1, 4) n; + +-- View the data. +SELECT c1, encode(c2::bytea, 'hex'), encode(c3::bytea, 'hex') FROM texts ORDER BY c1; +``` + +文本列将正确显示: + +```pgdsql + + c1 | encode | encode +----+----------------------------------------------------------+---------------------------------- + 1 | 1bf7f0cc821d31178616a55a8e0c52677735397cdde6f4153a9fd3d7 | ae3b28cde02542f81acce8783245430d + 2 | 5f6e9e12cd8592712e638016f4b1a2e73230ee40db498c0f0b1dc841 | 23e7c6cacb8383f878ad093b0027d72b + 3 | 53ac2c1fa83c8f64603fe9568d883331007d6281de330a4b5e728f9e | 7e969132fc656148b97b6a2ee8bc83c1 + 4 | 4e3c2e4cb7542a45173a8dac939ddc4bc75202e342ebc769b0f5da2f | 8ef30f44c65480d12b650ab6b2b04245 +(4 rows) +``` + +但是如果将它们读取为 [BYTEA],则不会: + +```pgsql +# SELECT * FROM bytes; + c1 | c2 | c3 +----+------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------ + 1 | \x5c783162663766306363383231643331313738363136613535613865306335323637373733353339376364646536663431353361396664336437 | \x5c786165336232386364653032353432663831616363653837383332343534333064 + 2 | \x5c783566366539653132636438353932373132653633383031366634623161326537333233306565343064623439386330663062316463383431 | \x5c783233653763366361636238333833663837386164303933623030323764373262 + 3 | \x5c783533616332633166613833633866363436303366653935363864383833333331303037643632383164653333306134623565373238663965 | \x5c783765393639313332666336353631343862393762366132656538626338336331 + 4 | \x5c783465336332653463623735343261343531373361386461633933396464633462633735323032653334326562633736396230663564613266 | \x5c783865663330663434633635343830643132623635306162366232623034323435 +(4 rows) +``` + +:::tip +原则上,只将 [TEXT] 列用于编码字符串,将 [BYTEA] 列用于二进制数据,且不要在两者之间混用。 +::: + + +## 函数与运算符参考 \{#function-and-operator-reference\} + ### 函数 \{#functions\} 这些函数为对 ClickHouse 数据库进行查询提供接口。 @@ -839,6 +967,7 @@ SELECT clickhouse_raw_query( * `btrim`: [trimBoth](https://clickhouse.com/docs/sql-reference/functions/string-functions#trimboth) * `strpos`: [position](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#position) * `regexp_like`: [match](https://clickhouse.com/docs/sql-reference/functions/string-search-functions#match) +* `md5`: [MD5](https://clickhouse.com/docs/sql-reference/functions/hash-functions#MD5) ### 自定义函数 \{#custom-functions\} @@ -995,9 +1124,25 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL 文档:使用美元符号引用的字符串常量" [library preloading]: https://www.postgresql.org/docs/18/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD + "PostgreSQL 文档:共享库预加载" -"PostgreSQL 文档:共享库预加载 - [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES +[PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "PostgreSQL 文档:PREPARE 注意事项" - [query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse - "ClickHouse 文档:ClickHouse 中预处理语句的替代方案" \ No newline at end of file + +[query parameters]: https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse + "ClickHouse 文档:ClickHouse 中预处理语句的替代方案" + +[underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 + "ClickHouse/ClickHouse#85847 某些 multipart 表单中的查询不会读取设置" + +[fixed]: https://github.com/ClickHouse/ClickHouse/pull/85570 + "ClickHouse/ClickHouse#85570 修复使用 multipart 的 HTTP" + +[BYTEA]: https://www.postgresql.org/docs/current/datatype-binary.html + "PostgreSQL 文档:二进制数据类型" + +[String]: https://clickhouse.com/docs/sql-reference/data-types/string + "ClickHouse 文档:String" + +[TEXT]: https://www.postgresql.org/docs/current/datatype-character.html + "PostgreSQL 文档:字符类型" \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md index a13d119c11e..f60a6c75645 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/data-integration/pg_clickhouse/tutorial.md @@ -224,54 +224,54 @@ taxi=# \det+ taxi.* ```pgsql taxi=# \d taxi.trips - Foreign table "taxi.trips" - Column | Type | Collation | Nullable | Default | FDW options ------------------------+-----------------------------+-----------+----------+---------+------------- - trip_id | bigint | | not null | | - vendor_id | text | | not null | | - pickup_date | date | | not null | | - pickup_datetime | timestamp without time zone | | not null | | - dropoff_date | date | | not null | | - dropoff_datetime | timestamp without time zone | | not null | | - store_and_fwd_flag | smallint | | not null | | - rate_code_id | smallint | | not null | | - pickup_longitude | double precision | | not null | | - pickup_latitude | double precision | | not null | | - dropoff_longitude | double precision | | not null | | - dropoff_latitude | double precision | | not null | | - passenger_count | smallint | | not null | | - trip_distance | double precision | | not null | | - fare_amount | numeric(10,2) | | not null | | - extra | numeric(10,2) | | not null | | - mta_tax | numeric(10,2) | | not null | | - tip_amount | numeric(10,2) | | not null | | - tolls_amount | numeric(10,2) | | not null | | - ehail_fee | numeric(10,2) | | not null | | - improvement_surcharge | numeric(10,2) | | not null | | - total_amount | numeric(10,2) | | not null | | - payment_type | text | | not null | | - trip_type | smallint | | not null | | - pickup | character varying(25) | | not null | | - dropoff | character varying(25) | | not null | | - cab_type | text | | not null | | - pickup_nyct2010_gid | smallint | | not null | | - pickup_ctlabel | real | | not null | | - pickup_borocode | smallint | | not null | | - pickup_ct2010 | text | | not null | | - pickup_boroct2010 | text | | not null | | - pickup_cdeligibil | text | | not null | | - pickup_ntacode | character varying(4) | | not null | | - pickup_ntaname | text | | not null | | - pickup_puma | integer | | not null | | - dropoff_nyct2010_gid | smallint | | not null | | - dropoff_ctlabel | real | | not null | | - dropoff_borocode | smallint | | not null | | - dropoff_ct2010 | text | | not null | | - dropoff_boroct2010 | text | | not null | | - dropoff_cdeligibil | text | | not null | | - dropoff_ntacode | character varying(4) | | not null | | - dropoff_ntaname | text | | not null | | - dropoff_puma | integer | | not null | | + Foreign table "taxi.trips" + Column | Type | Collation | Nullable | Default | FDW options +-----------------------+--------------------------+-----------+----------+---------+------------- + trip_id | bigint | | not null | | + vendor_id | text | | not null | | + pickup_date | date | | not null | | + pickup_datetime | timestamp with time zone | | not null | | + dropoff_date | date | | not null | | + dropoff_datetime | timestamp with time zone | | not null | | + store_and_fwd_flag | smallint | | not null | | + rate_code_id | smallint | | not null | | + pickup_longitude | double precision | | not null | | + pickup_latitude | double precision | | not null | | + dropoff_longitude | double precision | | not null | | + dropoff_latitude | double precision | | not null | | + passenger_count | smallint | | not null | | + trip_distance | double precision | | not null | | + fare_amount | numeric(10,2) | | not null | | + extra | numeric(10,2) | | not null | | + mta_tax | numeric(10,2) | | not null | | + tip_amount | numeric(10,2) | | not null | | + tolls_amount | numeric(10,2) | | not null | | + ehail_fee | numeric(10,2) | | not null | | + improvement_surcharge | numeric(10,2) | | not null | | + total_amount | numeric(10,2) | | not null | | + payment_type | text | | not null | | + trip_type | smallint | | not null | | + pickup | character varying(25) | | not null | | + dropoff | character varying(25) | | not null | | + cab_type | text | | not null | | + pickup_nyct2010_gid | smallint | | not null | | + pickup_ctlabel | real | | not null | | + pickup_borocode | smallint | | not null | | + pickup_ct2010 | text | | not null | | + pickup_boroct2010 | text | | not null | | + pickup_cdeligibil | text | | not null | | + pickup_ntacode | character varying(4) | | not null | | + pickup_ntaname | text | | not null | | + pickup_puma | integer | | not null | | + dropoff_nyct2010_gid | smallint | | not null | | + dropoff_ctlabel | real | | not null | | + dropoff_borocode | smallint | | not null | | + dropoff_ct2010 | text | | not null | | + dropoff_boroct2010 | text | | not null | | + dropoff_cdeligibil | text | | not null | | + dropoff_ntacode | character varying(4) | | not null | | + dropoff_ntaname | text | | not null | | + dropoff_puma | integer | | not null | | Server: taxi_srv FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') ``` @@ -372,7 +372,8 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 30.978 ms ``` -* 计算每次行程的时长(分钟),然后按行程时长对结果进行分组: +* 计算每次行程的时长(分钟),然后按 + 行程时长对结果进行分组: ```pgsql taxi=# SELECT @@ -398,7 +399,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 45.477 ms ``` -* 按一天中的各个小时,显示各街区的上车次数: +* 按一天中的小时统计各街区的上车次数: ```pgsql taxi=# SELECT @@ -422,9 +423,11 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') Time: 36.895 ms ``` -* 查询前往拉瓜迪亚或 JFK 机场的行程: +* 将显示时区设置为纽约,并查询前往拉瓜迪亚或 JFK 机场的行程: ```pgsql + taxi=# SET timezone = 'America/New_York'; + SET taxi=# SELECT pickup_datetime, dropoff_datetime, @@ -442,13 +445,13 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') WHERE dropoff_nyct2010_gid IN (132, 138) ORDER BY pickup_datetime LIMIT 5; - pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour - ---------------------+---------------------+--------------+---------------------+----------------------+--------------+------+-----+------ - 2015-07-01 00:04:14 | 2015-07-01 00:15:29 | 13.30 | -34 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:09:42 | 2015-07-01 00:12:55 | 6.80 | 50 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:23:04 | 2015-07-01 00:24:39 | 4.80 | -125 | 132 | JFK | 2015 | 1 | 0 - 2015-07-01 00:27:51 | 2015-07-01 00:39:02 | 14.72 | -101 | 138 | LGA | 2015 | 1 | 0 - 2015-07-01 00:32:03 | 2015-07-01 00:55:39 | 39.34 | 48 | 138 | LGA | 2015 | 1 | 0 + pickup_datetime | dropoff_datetime | total_amount | pickup_nyct2010_gid | dropoff_nyct2010_gid | airport_code | year | day | hour + ------------------------+------------------------+--------------+---------------------+----------------------+--------------+------+-----+------ + 2015-06-30 20:04:14-04 | 2015-06-30 20:15:29-04 | 13.30 | -34 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:09:42-04 | 2015-06-30 20:12:55-04 | 6.80 | 50 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:23:04-04 | 2015-06-30 20:24:39-04 | 4.80 | -125 | 132 | JFK | 2015 | 30 | 20 + 2015-06-30 20:27:51-04 | 2015-06-30 20:39:02-04 | 14.72 | -101 | 138 | LGA | 2015 | 30 | 20 + 2015-06-30 20:32:03-04 | 2015-06-30 20:55:39-04 | 39.34 | 48 | 138 | LGA | 2015 | 30 | 20 (5 rows) Time: 17.450 ms @@ -493,7 +496,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') :::note 将 `LIFETIME` 设置为 0 会禁用自动更新,以避免对我们的 S3 存储桶产生不必要的流量。在其他情况下,你可能会进行不同的配置。有关详细信息,请参阅 [Refreshing dictionary data using - LIFETIME](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)。 + LIFETIME](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)。 ::: 2. 现在将其导入: @@ -627,7 +630,7 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') [EXPLAIN]: https://www.postgresql.org/docs/current/sql-explain.html "SQL 命令:EXPLAIN" -[dictionary]: /sql-reference/dictionaries/index.md +[dictionary]: /sql-reference/statements/create/dictionary [PGXN]: https://pgxn.org/dist/pg_clickhouse "PGXN 上的 pg_clickhouse" @@ -640,5 +643,5 @@ FDW options: (database 'taxi', table_name 'trips', engine 'MergeTree') [Postgres image]: https://hub.docker.com/_/postgres "Docker Hub 上的 Postgres OCI 镜像" -[Refreshing dictionary data using LIFETIME]: /sql-reference/dictionaries/index.md#refreshing-dictionary-data-using-lifetime +[Refreshing dictionary data using LIFETIME]: /sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime "ClickHouse 文档:使用 LIFETIME 刷新字典数据" \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/index.md index d0be3b0e4aa..929f6b2b1e1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/integrations/tools/index.md @@ -1,6 +1,6 @@ --- slug: /integrations/tools -keywords: ['Retool', 'Easypanel', 'Splunk'] +keywords: ['ClickHouse integrations', 'SQL clients', 'data integrations', 'tools', 'third-party'] title: '工具' description: '工具部分的概览页' doc_type: 'landing-page' @@ -12,4 +12,4 @@ doc_type: 'landing-page' |-----------|---------------------------------------------------------------------------------------------------------------------------------| | [SQL Client](/integrations/sql-clients) | 如何将 ClickHouse 与各种常见的数据库管理、分析和可视化工具集成 | | [Data Integrations](/integrations/tools/data-integrations) | ClickHouse 的数据集成方案 | -| [Misc](/integrations/audit-splunk) | ClickHouse 的其他工具 | \ No newline at end of file +| [Misc](/integrations/misc) | ClickHouse 的其他工具 | \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/caches.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/caches.md index d4763cda39c..5a0c7565a35 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/caches.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/caches.md @@ -27,10 +27,10 @@ doc_type: 'reference' * [向量相似度索引](../engines/table-engines/mergetree-family/annindexes.md)缓存。 * [文本索引](../engines/table-engines/mergetree-family/textindexes.md#caching)缓存。 * [Avro 格式](/interfaces/formats/Avro) Schema 缓存。 -* [字典](../sql-reference/dictionaries/index.md)数据缓存。 +* [字典](../sql-reference/statements/create/dictionary/index.md)数据缓存。 * Schema 推断缓存。 * 基于 S3、Azure、本地以及其他磁盘的[文件系统缓存](storing-data.md)。 -* [用户态页缓存](/operations/userspace-page-cache)。 +* [用户态页缓存](/operations/userspace-page-cache) * [查询缓存](query-cache.md)。 * [查询条件缓存](query-condition-cache.md)。 * 格式 Schema 缓存。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md index cabf94bb8b1..0b180152eb0 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/optimizing-performance/sampling-query-profiler.md @@ -52,7 +52,7 @@ SETTINGS allow_introspection_functions = 1 * 使用 `addressToLine`、`addressToLineWithInlines`、`addressToSymbol` 和 `demangle` 等[内省函数](../../sql-reference/functions/introspection.md),以获取 ClickHouse 代码中的函数名及其位置。要获取某条查询的分析信息,需要对 `trace_log` 表中的数据进行聚合。可以按单个函数或整条堆栈跟踪进行聚合。 -如果需要可视化 `trace_log` 信息,可尝试使用 [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) 和 [speedscope](https://github.com/laplab/clickhouse-speedscope)。 +如果需要可视化 `trace_log` 信息,可尝试使用 [flamegraph](/interfaces/third-party/gui#clickhouse-flamegraph) 和 [speedscope](https://www.speedscope.app)。 ## 示例 \{#example\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md index 078b5a2aef2..1a29f347a9a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/_server_settings_outside_source.md @@ -375,7 +375,7 @@ ClickHouse 每隔 x 秒重新加载一次内置字典。这样就可以在不重 ``` -## dictionaries_config \{#dictionaries_config\} +## dictionaries_config \{#dictionaries_config\} 字典配置文件的路径。 @@ -386,7 +386,7 @@ ClickHouse 每隔 x 秒重新加载一次内置字典。这样就可以在不重 另请参阅: -* "[Dictionaries](../../sql-reference/dictionaries/index.md)"。 +* "[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)"。 **示例** @@ -1901,12 +1901,14 @@ curl 127.0.0.1:9363/metrics | `select_from_system_db_requires_grant` | 设置 `SELECT * FROM system.
    ` 是否需要任何授权,以及是否可由任意用户执行。如果设置为 true,则该查询需要 `GRANT SELECT ON system.
    `,与非 system 表相同。例外情况:少数几个 system 表(`tables`、`columns`、`databases`,以及一些常量表,如 `one`、`contributors`)仍然对所有人可访问;并且如果授予了某个 `SHOW` 权限(例如 `SHOW USERS`),则相应的 system 表(即 `system.users`)将可访问。 | `true` | | `settings_constraints_replace_previous` | 设置配置文件中针对某个设置的约束,是否会覆盖该设置上先前的约束(在其他配置文件中定义),包括那些未被新约束显式设置的字段。它还会启用 `changeable_in_readonly` 约束类型。 | `true` | | `table_engines_require_grant` | 设置在使用特定表引擎创建表时是否需要授权。 | `false` | +| `throw_on_unmatched_row_policies` | 设置当从某个具有行策略的表中读取数据时,如果没有任何行策略适用于当前用户,是否应抛出异常。 | `false` | | `users_without_row_policies_can_read_rows` | 设置没有宽松行策略的用户是否仍然可以通过 `SELECT` 查询读取行。例如,如果有两个用户 A 和 B,并且只为 A 定义了行策略,那么当此设置为 true 时,用户 B 将看到所有行;当此设置为 false 时,用户 B 将看不到任何行。 | `true` | 示例: ```xml + true true true true diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md index b495492108e..14ffc9a3a71 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/server-configuration-parameters/settings.md @@ -40,12 +40,14 @@ import SettingsInfoBlock from '@theme/SettingsInfoBlock/SettingsInfoBlock'; | `select_from_system_db_requires_grant` | 设置 `SELECT * FROM system.
    ` 是否需要任何权限,还是可以由任意用户执行。如果设置为 `true`,则该查询需要 `GRANT SELECT ON system.
    `,与非 system 表相同。例外情况:部分 system 表(`tables`、`columns`、`databases`,以及一些常量表,如 `one`、`contributors`)仍对所有人可访问;并且如果授予了某个 `SHOW` 权限(例如 `SHOW USERS`),则相应的 system 表(即 `system.users`)将可访问。 | `true` | | `settings_constraints_replace_previous` | 设置在某个 SETTINGS PROFILE 中针对某个设置定义的约束,是否会覆盖该设置上先前的约束(这些先前约束定义在其他 profile 中),包括新约束未显式设置的字段。该选项还会启用 `changeable_in_readonly` 约束类型。 | `true` | | `table_engines_require_grant` | 设置在使用特定表引擎创建表时,是否需要相应权限。 | `false` | +| `throw_on_unmatched_row_policies` | 设置在读取表时,如果该表存在 ROW POLICY,但其中没有任何一条适用于当前用户,是否应抛出异常。 | `false` | | `users_without_row_policies_can_read_rows` | 设置没有宽松 ROW POLICY 的用户是否仍然可以通过 `SELECT` 查询读取行。例如,如果有两个用户 A 和 B,并且只为 A 定义了 ROW POLICY,那么当此设置为 `true` 时,用户 B 将能看到所有行;当此设置为 `false` 时,用户 B 将看不到任何行。 | `true` | Example: ```xml + true true true true @@ -924,7 +926,7 @@ ZooKeeper 中的副本名称。 另请参阅: -* "[Dictionaries](../../sql-reference/dictionaries/index.md)"。 +* "[Dictionaries](../../sql-reference/statements/create/dictionary/index.md)"。 **示例** @@ -4956,6 +4958,10 @@ ClickHouse 会对服务器上的所有表使用该设置。可以在任何时间 ``` +## users_to_ignore_early_memory_limit_check \{#users_to_ignore_early_memory_limit_check\} + +在早期内存限制检查时要忽略的用户的逗号分隔列表。如果用户不在此列表中,当总内存使用量超过限制时,其查询将被拒绝。 + ## validate_tcp_client_information \{#validate_tcp_client_information\} 确定在接收到查询数据包时,是否启用客户端信息验证。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md index dad8a9bb801..36b953a8aaf 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings-formats.md @@ -466,6 +466,18 @@ TSV 格式中 NULL 的自定义表示形式 在对 CapnProto 格式进行模式推断时,跳过具有不受支持类型的列 +## input_format_connection_handling \{#input_format_connection_handling\} + + + + + +启用此选项后,如果连接意外关闭,缓冲区中剩余的任何数据将被解析和处理,而不是视为错误。 + +:::note +启用此选项会禁用并行解析,并且无法进行去重。 +::: + ## input_format_csv_allow_cr_end_of_line \{#input_format_csv_allow_cr_end_of_line\} @@ -971,6 +983,18 @@ DESC format(JSONEachRow, '{"obj" : {"a" : 42, "b" : "Hello"}}, {"obj" : {"a" : 4 限制在解析输入格式数据时生成的数据块大小(以字节为单位)。当在 ClickHouse 端构建数据块时,适用于基于行的输入格式。 0 表示在字节数上不设上限。 +## input_format_max_block_wait_ms \{#input_format_max_block_wait_ms\} + + + + + +限制在基于行的输入格式解析过程中,在输出一个数据块之前所等待的最大时间(毫秒)。0 表示不限制。 + +:::note +此选项仅在启用 `input_format_connection_handling` 时有效。设置该值还会禁用并行解析,并使无法进行去重。 +::: + ## input_format_max_bytes_to_read_for_schema_inference \{#input_format_max_bytes_to_read_for_schema_inference\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md index 5e55cd5b146..bf85c29d01c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/settings/settings.md @@ -604,6 +604,16 @@ File/S3 引擎/表函数在归档文件具有正确扩展名时,会将包含 ` 用于集成 YTsaurus 的实验性表引擎。 +## allow_fuzz_query_functions \{#allow_fuzz_query_functions\} + + + + + + + +启用 `fuzzQuery` 函数,对查询字符串应用随机 AST 变异。 + ## allow_general_join_planning \{#allow_general_join_planning\} @@ -631,9 +641,11 @@ File/S3 引擎/表函数在归档文件具有正确扩展名时,会将包含 ` +**别名**: `allow_experimental_insert_into_iceberg` + - + 允许执行向 Iceberg 插入数据的 `insert` 查询。 @@ -1068,9 +1080,9 @@ Cloud 默认值:`1`。 ## apply_row_policy_after_final \{#apply_row_policy_after_final\} - + - + 启用时,会在对 *MergeTree 表执行 FINAL 处理之后再应用 ROW POLICY 和 PREWHERE(尤其适用于 ReplacingMergeTree)。 禁用时,会在 FINAL 之前应用 ROW POLICY,这在策略过滤掉本应在 ReplacingMergeTree 或类似引擎中用于去重的行时,可能导致结果不同。 @@ -1118,6 +1130,32 @@ Cloud 默认值:`1`。 - 'path' — 使用 FlightDescriptor::Path(默认值,适用于大多数 Arrow Flight 服务器) - 'command' — 使用带有 SELECT 查询的 FlightDescriptor::Command(Dremio 必需) +## ast_fuzzer_any_query \{#ast_fuzzer_any_query\} + + + + + + + +当为 false(默认)时,服务端 AST fuzzer(由 `ast_fuzzer_runs` 控制)只会对只读查询(SELECT、EXPLAIN、SHOW、DESCRIBE、EXISTS)进行模糊测试。为 true 时,包括 DDL 和 INSERT 在内的所有查询类型都会进行模糊测试。 + +## ast_fuzzer_runs \{#ast_fuzzer_runs\} + + + + + + + +启用服务端 AST fuzzer,它会在每个正常查询之后运行随机化的查询,并丢弃其结果。 + +- 0:禁用(默认)。 +- 介于 0 和 1 之间的值(不包含 0 和 1):运行单个模糊查询的概率。 +- 大于或等于 1 的值:每个正常查询要运行的模糊查询数量。 + +Fuzzer 会从所有会话中的所有查询累积 AST 片段,随着时间推移生成越来越有趣的变异。执行失败的模糊查询会被静默丢弃;其结果永远不会返回给客户端。 + ## asterisk_include_alias_columns \{#asterisk_include_alias_columns\} @@ -3345,8 +3383,6 @@ FORMAT PrettyCompactMonoBlock ## enable_full_text_index \{#enable_full_text_index\} - - **别名**: `allow_experimental_full_text_index` @@ -5336,6 +5372,30 @@ SELECT * FROM x_dist ORDER BY number ASC; 采样数据也可以通过配置 `jemalloc_collect_global_profile_samples_in_trace_log` 或通过查询设置 `jemalloc_collect_profile_samples_in_trace_log` 存储到 `system.trace_log` 中。 参见 [Allocation Profiling](/operations/allocation-profiling)。 +## jemalloc_profile_text_collapsed_use_count \{#jemalloc_profile_text_collapsed_use_count\} + + + + + +当 jemalloc 堆分析使用 `collapsed` 输出格式时,按分配次数而不是字节进行聚合。为 false(默认)时,每个调用栈按存活字节数加权;为 true 时,则按存活分配次数加权。 + +## jemalloc_profile_text_output_format \{#jemalloc_profile_text_output_format\} + + + + + +system.jemalloc_profile_text 表中 jemalloc 堆分析(heap profile)的输出格式。可能的取值为:'raw'(原始 profile)、'symbolized'(带符号信息的 jeprof 格式)、或 'collapsed'(FlameGraph 格式)。 + +## jemalloc_profile_text_symbolize_with_inline \{#jemalloc_profile_text_symbolize_with_inline\} + + + + + +在对 jemalloc 堆分析进行符号化时,是否包含内联帧。启用时,将包含内联帧,这可能会显著降低符号化过程的速度;禁用时,则会跳过内联帧。仅影响 `symbolized` 和 `collapsed` 两种输出格式。 + ## join_algorithm \{#join_algorithm\} @@ -8184,6 +8244,14 @@ SELECT * FROM test LIMIT 10 OFFSET 100; 目前该设置依赖于 `optimize_skip_unused_shards`(原因在于:未来某个时候它可能会默认启用,而它只有在数据通过 Distributed 表插入、即数据按照 sharding_key 分布的情况下才能正确工作)。 ::: +## optimize_dry_run_check_part \{#optimize_dry_run_check_part\} + + + + + +启用后,`OPTIMIZE ... DRY RUN` 会使用 `checkDataPart` 验证合并生成的 part。如果检查失败,将抛出异常。 + ## optimize_empty_string_comparisons \{#optimize_empty_string_comparisons\} @@ -11099,14 +11167,6 @@ SELECT * FROM system.events WHERE event='QueryMemoryLimitExceeded'; 用于决定是否使用由倒排文本索引构建的提示时,过滤器的最大选择性。 -## text_index_use_bloom_filter \{#text_index_use_bloom_filter\} - - - - - -用于测试时,启用或禁用在文本索引中使用布隆过滤器。 - ## throw_if_no_data_to_insert \{#throw_if_no_data_to_insert\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md index 7c9a34332a2..2f85b54f4d8 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/dictionaries.md @@ -1,6 +1,6 @@ --- description: '包含字典相关信息的系统表' -keywords: ['系统表', '字典'] +keywords: ['system table', 'dictionaries'] slug: /operations/system-tables/dictionaries title: 'system.dictionaries' doc_type: 'reference' @@ -10,54 +10,59 @@ import SystemTableCloud from '@site/i18n/zh/docusaurus-plugin-content-docs/curre -包含有关 [dictionaries](../../sql-reference/dictionaries/index.md) 的信息。 +包含有关 [字典](../../sql-reference/statements/create/dictionary/index.md) 的信息。 列: {/*AUTOGENERATED_START*/ } -* `database` ([String](../../sql-reference/data-types/)) — 包含由 DDL 查询创建的字典的数据库名称。对于其他字典为空字符串。 + +* `database` ([String](../../sql-reference/data-types/)) — 通过 DDL 查询创建该字典所在数据库的名称。对于其他字典,为空字符串。 * `name` ([String](../../sql-reference/data-types/)) — 字典名称。 * `uuid` ([UUID](../../sql-reference/data-types/)) — 字典的 UUID。 * `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](../../sql-reference/data-types/)) — 字典状态。可能的取值: * **NOT_LOADED** — 字典未被加载,因为尚未使用 * **LOADED** — 字典已成功加载 - * **FAILED** — 由于错误无法加载字典 - * **LOADING** — 字典当前正在加载 - * **LOADED_AND_RELOADING** — 字典已成功加载,且当前正在重新加载(常见原因包括:执行 `SYSTEM RELOAD DICTIONARY` 查询、超时、字典配置发生变更) - * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — 以及当前正在重新加载(常见原因:执行 `SYSTEM RELOAD DICTIONARY` 查询 + * **FAILED** — 由于错误导致无法加载字典 + * **LOADING** — 字典正在加载 + * **LOADED_AND_RELOADING** — 字典已成功加载 + * **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — 并且正在重新加载(常见原因:SYSTEM RELOAD DICTIONARY 查询 * **timeout** — 超时 * **dictionary config has changed)** — 字典配置已更改) - * **FAILED_AND_RELOADING** — 由于错误无法加载字典,当前正在加载。 + * **FAILED_AND_RELOADING** — 由于错误导致无法加载字典,目前正在重新加载。 * `origin` ([String](../../sql-reference/data-types/)) — 描述该字典的配置文件路径。 -* `type` ([String](../../sql-reference/data-types/)) — 字典的内存分配类型。关于在内存中存储字典。 +* `type` ([String](../../sql-reference/data-types/)) — 字典分配的类型。将字典存储在内存中。 * `key.names` ([Array(String)](../../sql-reference/data-types/)) — 字典提供的键名称数组。 -* `key.types` ([Array(String)](../../sql-reference/data-types/)) — 字典提供的对应键类型数组。 +* `key.types` ([Array(String)](../../sql-reference/data-types/)) — 与字典提供的键名称对应的键类型数组。 * `attribute.names` ([Array(String)](../../sql-reference/data-types/)) — 字典提供的属性名称数组。 -* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — 字典提供的对应属性类型数组。 -* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 为字典分配的 RAM 大小。 -* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 为层次索引分配的 RAM 大小。 +* `attribute.types` ([Array(String)](../../sql-reference/data-types/)) — 与字典提供的属性名称对应的属性类型数组。 +* `bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 为该字典分配的 RAM 数量。 +* `hierarchical_index_bytes_allocated` ([UInt64](../../sql-reference/data-types/)) — 为分层索引分配的 RAM 数量。 * `query_count` ([UInt64](../../sql-reference/data-types/)) — 自字典加载或上次成功重新加载以来的查询次数。 -* `hit_rate` ([Float64](../../sql-reference/data-types/)) — 对于缓存字典,命中缓存的使用占比。 -* `found_rate` ([Float64](../../sql-reference/data-types/)) — 找到值的使用占比。 -* `element_count` ([UInt64](../../sql-reference/data-types/)) — 字典中存储的元素数量。 -* `load_factor` ([Float64](../../sql-reference/data-types/)) — 字典的填充百分比(对于哈希字典,为哈希表的填充百分比)。 +* `hit_rate` ([Float64](../../sql-reference/data-types/)) — 对于缓存字典,使用中命中缓存的百分比。 +* `found_rate` ([Float64](../../sql-reference/data-types/)) — 使用中成功找到值的百分比。 +* `element_count` ([UInt64](../../sql-reference/data-types/)) — 字典中存储的条目数量。 +* `load_factor` ([Float64](../../sql-reference/data-types/)) — 字典的填充百分比(对于哈希字典,即哈希表的填充百分比)。 * `source` ([String](../../sql-reference/data-types/)) — 描述字典数据源的文本。 -* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — 字典在内存中的最小生存时间,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 `invalidate_query`,则仅在其已更改的情况下)。单位为秒。 -* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — 字典在内存中的最大生存时间,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 `invalidate_query`,则仅在其已更改的情况下)。单位为秒。 +* `lifetime_min` ([UInt64](../../sql-reference/data-types/)) — 字典在内存中的最小生命周期,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 `invalidate_query`,则仅在其发生变化时)。单位为秒。 +* `lifetime_max` ([UInt64](../../sql-reference/data-types/)) — 字典在内存中的最大生命周期,超过该时间后 ClickHouse 会尝试重新加载字典(如果设置了 `invalidate_query`,则仅在其发生变化时)。单位为秒。 * `loading_start_time` ([DateTime](../../sql-reference/data-types/)) — 加载字典的开始时间。 -* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — 加载或更新字典的结束时间。用于监控字典源的一些问题并排查原因。 -* `error_count` ([UInt64](../../sql-reference/data-types/)) — 自上次成功加载以来的错误次数。用于监控字典源的一些问题并排查原因。 +* `last_successful_update_time` ([DateTime](../../sql-reference/data-types/)) — 加载或更新字典的结束时间。用于监控字典数据源相关问题并排查原因。 +* `error_count` ([UInt64](../../sql-reference/data-types/)) — 自上次成功加载以来的错误次数。用于监控字典数据源相关问题并排查原因。 +* **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — 并且正在重新加载(常见原因:SYSTEM RELOAD DICTIONARY 查询 +* **timeout** — 超时 +* **dictionary config has changed)** — 字典配置已更改) * `loading_duration` ([Float32](../../sql-reference/data-types/)) — 字典加载的持续时间。 -* `last_exception` ([String](../../sql-reference/data-types/)) — 在创建或重新加载字典时发生的错误信息文本,如果无法创建字典则会记录该错误。 +* `last_exception` ([String](../../sql-reference/data-types/)) — 在创建或重新加载字典时,如果无法创建字典,所发生错误的信息文本。 * `comment` ([String](../../sql-reference/data-types/)) — 字典的注释文本。 -{/*自动生成_结束*/ } +{/*AUTOGENERATED_END*/ } **示例** 配置字典: + ```sql CREATE DICTIONARY dictionary_with_comment ( @@ -71,7 +76,7 @@ LIFETIME(MIN 0 MAX 1000) COMMENT 'The temporary dictionary'; ``` -请确保字典已加载。 +确保字典已加载。 ```sql SELECT * FROM system.dictionaries LIMIT 1 FORMAT Vertical; diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/events.md b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/events.md index dc8f284c076..c122dc00f31 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/events.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/operations/system-tables/events.md @@ -1,5 +1,5 @@ --- -description: '记录系统中已发生事件数量信息的系统表。' +description: '包含有关系统中已发生事件数量信息的系统表。' keywords: ['系统表', '事件'] slug: /operations/system-tables/events title: 'system.events' @@ -7,10 +7,12 @@ doc_type: 'reference' --- import SystemTableCloud from '@site/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_system_table_cloud.md'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; -包含系统中已发生事件数量的信息。例如,在该表中,你可以查看自 ClickHouse 服务器启动以来处理了多少条 `SELECT` 查询。 +包含系统中发生的事件数量等信息。例如,在该表中,你可以查看自 ClickHouse 服务器启动以来已处理的 `SELECT` 查询数量。 列: @@ -22,7 +24,401 @@ import SystemTableCloud from '@site/i18n/zh/docusaurus-plugin-content-docs/curre {/*AUTOGENERATED_END*/ } -可以在源文件 [src/Common/ProfileEvents.cpp](https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/ProfileEvents.cpp) 中找到所有支持的事件。 + + + + 以下事件在 ClickHouse OSS 中可用: + + {/*AUTOGENERATED_START id='oss_events'*/ } + + | 事件 | 描述 | + | -------------------------------------------- | ------------------------------------------------------------------------------------------------ | + | `查询` | 要解析并可能执行的查询数量。不包括解析失败的查询,或因 AST 大小限制、QUOTA 限制或并发查询数量限制而被拒绝的查询。可能包含由 ClickHouse 自身发起的内部查询。不统计子查询。 | + | `SelectQuery` | 与 `Query` 相同,但只针对 SELECT 类型的查询。 | + | `InitialQuery` | 与 `Query` 相同,但仅统计初始查询(参见 `is_initial_query`)。 | + | `InitialSelectQuery` | 与 `InitialQuery` 相同,但仅适用于 SELECT 查询。 | + | `QueriesWithSubqueries` | 统计查询及其所有子查询的数量 | + | `SelectQueriesWithSubqueries` | 统计 SELECT 查询及其所有子查询的数量 | + | `FileOpen` | 已打开文件的数量。 | + | `Seek` | 调用 `lseek` 函数的次数。 | + | `ReadBufferFromFileDescriptorRead` | 对文件描述符执行读取(read/pread)的次数。不包括 sockets。 | + | `ReadBufferFromFileDescriptorReadBytes` | 从文件描述符读取的字节数。如果文件是压缩的,则显示的是压缩数据的大小。 | + | `WriteBufferFromFileDescriptorWrite` | 对文件描述符执行写入(write/pwrite)的次数。不包括 sockets。 | + | `WriteBufferFromFileDescriptorWriteBytes` | 写入到文件描述符的字节数。如果文件是压缩的,则显示的是压缩数据的大小。 | + | `FileSync` | 对文件调用 F_FULLFSYNC/fsync/fdatasync 函数的次数。 | + | `FileSyncElapsedMicroseconds` | 等待文件 F_FULLFSYNC/fsync/fdatasync 系统调用所耗费的总时间。 | + | `IOBufferAllocs` | I/O 缓冲区(用于 ReadBuffer/WriteBuffer)的分配次数。 | + | `IOBufferAllocBytes` | 为 I/O 缓冲区(用于 ReadBuffer/WriteBuffer)分配的总字节数。 | + | `DiskReadElapsedMicroseconds` | 等待 read 系统调用所耗费的总时间。这包括从 page cache 的读取。 | + | `DiskWriteElapsedMicroseconds` | 等待 write 系统调用所耗费的总时间。这包括向 page cache 的写入。 | + | `NetworkReceiveElapsedMicroseconds` | 等待接收网络数据或从网络接收数据所耗费的总时间。仅包含与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkSendElapsedMicroseconds` | 等待向网络发送数据或向网络发送数据所耗费的总时间。仅包含与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkReceiveBytes` | 从网络接收的总字节数。仅包含与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkSendBytes` | 向网络发送的总字节数。仅包含与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `GlobalThreadPoolExpansions` | 记录向全局线程池添加新线程的总次数。该指标反映为满足更高处理需求而对全局线程池进行扩容的频率。 | + | `GlobalThreadPoolThreadCreationMicroseconds` | 等待新线程启动所花费的累计时间。 | + | `GlobalThreadPoolLockWaitMicroseconds` | 线程在全局线程池中等待锁所花费的累计时间。 | + | `GlobalThreadPoolJobs` | 推送到全局线程池的任务总次数。 | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | 从任务在全局线程池中被调度到被工作线程取走执行之间经过的时间。该指标有助于发现任务处理中的延迟,反映线程池对新任务的响应能力。 | + | `LocalThreadPoolExpansions` | 记录从全局线程池借用线程以扩展本地线程池的总次数。 | + | `LocalThreadPoolShrinks` | 记录从本地线程池将线程归还到全局线程池的总次数。 | + | `LocalThreadPoolThreadCreationMicroseconds` | 本地线程池等待从全局线程池借用线程所花费的累计时间。 | + | `LocalThreadPoolJobs` | 推送到本地线程池的任务总次数。 | + | `LocalThreadPoolBusyMicroseconds` | 线程执行实际工作所花费的累计时间。 | + | `LocalThreadPoolJobWaitTimeMicroseconds` | 从任务在本地线程池中被调度到被工作线程取走执行之间经过的时间。该指标有助于发现任务处理中的延迟,反映线程池对新任务的响应能力。 | + | `QueryPlanOptimizeMicroseconds` | 执行查询计划优化所花费的总时间(微秒)。 | + | `ContextLock` | Context 锁被获取或尝试获取的次数。这是一个全局锁。 | + | `RWLockAcquiredReadLocks` | 获取读锁的次数(在重量级 RWLock 中)。 | + | `QueryProfilerSignalOverruns` | 由于超限而放弃处理查询分析器信号的次数,加上由于超限而被 OS 丢弃、未投递的信号次数。 | + | `QueryProfilerRuns` | QueryProfiler 运行的总次数。 | + | `MainConfigLoads` | 主配置被重新加载的总次数。 | + | `ServerStartupMilliseconds` | 从服务器启动到开始监听套接字之间经过的时间(毫秒)。 | + | `AsyncLoaderWaitMicroseconds` | 查询在等待异步加载器任务时所花费的累计时间。 | + | `LogTrace` | 日志级别为 Trace 的日志消息数量。 | + | `LogDebug` | 日志级别为 Debug 的日志消息数量。 | + | `LogInfo` | 日志级别为 Info 的日志消息数量。 | + | `LogWarning` | 日志级别为 Warning 的日志消息数量。 | + | `LoggerElapsedNanoseconds` | 日志记录的累计耗时 | + | `InterfaceNativeSendBytes` | 通过本地网络接口发送的字节数 | + | `InterfaceNativeReceiveBytes` | 通过本地网络接口接收的字节数 | + | `MemoryWorkerRun` | MemoryWorker 在后台执行的次数 | + | `MemoryWorkerRunElapsedMicroseconds` | MemoryWorker 用于后台任务的累计运行时间 | + | `AsyncLoggingFileLogTotalMessages` | 发送到文件日志异步队列的消息数量(包括已接受和已丢弃的消息) | + | `AsyncLoggingErrorFileLogTotalMessages` | 发送到错误文件日志异步队列的消息数量(包括已接受和已丢弃的消息) | + | `AsyncLoggingTextLogTotalMessages` | 发送到 text_log 异步队列的消息数量(包括已接受和已丢弃的消息) | + + {/*AUTOGENERGED_END*/ } + + + + 以下事件在 ClickHouse Cloud 中可用: + + {/*AUTOGENERATED_START id='cloud_events'*/ } + + | 事件 | 描述 | + | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | + | `查询` | 需要解释并可能执行的查询总数。不包括解析失败的查询,或由于 AST 大小限制、QUOTA 限制或并发查询数量限制而被拒绝的查询。可能包括由 ClickHouse 自身发起的内部查询。不统计子查询。 | + | `SelectQuery` | 与 `Query` 相同,但只针对 SELECT 类型的查询。 | + | `InitialQuery` | 与 `Query` 相同,但仅统计初始查询(参见 `is_initial_query`)。 | + | `QueriesWithSubqueries` | 统计查询总数(包括其所有子查询) | + | `SelectQueriesWithSubqueries` | 统计 SELECT 查询总数(包括其所有子查询) | + | `SelectQueriesWithPrimaryKeyUsage` | 统计使用主键来评估 WHERE 条件的 SELECT 查询数量 | + | `QueryTimeMicroseconds` | 所有查询的累计执行时间。 | + | `SelectQueryTimeMicroseconds` | 所有 SELECT 查询的累计执行时间。 | + | `OtherQueryTimeMicroseconds` | 所有非 SELECT、非 INSERT 查询的累计执行时间。 | + | `FileOpen` | 打开的文件数量。 | + | `Seek` | 调用 `lseek` 函数的次数。 | + | `ReadBufferFromFileDescriptorRead` | 从文件描述符执行读取(read/pread)的次数。不包括套接字。 | + | `ReadBufferFromFileDescriptorReadBytes` | 从文件描述符读取的字节数。如果文件是压缩的,这里统计的是压缩数据大小。 | + | `WriteBufferFromFileDescriptorWrite` | 向文件描述符执行写入(write/pwrite)的次数。不包括套接字。 | + | `WriteBufferFromFileDescriptorWriteBytes` | 写入到文件描述符的字节数。如果文件是压缩的,这里统计的是压缩数据大小。 | + | `ReadCompressedBytes` | 从压缩来源(文件、网络)读取的字节数(解压缩前的字节数)。 | + | `CompressedReadBufferBlocks` | 从压缩来源(文件、网络)读取的压缩块数量(各数据块相互独立压缩)。 | + | `CompressedReadBufferBytes` | 从压缩来源(文件、网络)读取的未压缩字节数(解压缩后的字节数)。 | + | `OpenedFileCacheHits` | 在已打开文件缓存中命中文件的次数,因此无需重新打开该文件。 | + | `OpenedFileCacheMisses` | 在已打开文件缓存中未命中文件的次数,因此必须重新打开该文件。 | + | `OpenedFileCacheMicroseconds` | 在 OpenedFileCache 方法中消耗的时间总量。 | + | `IOBufferAllocs` | I/O 缓冲区(用于 ReadBuffer/WriteBuffer)的分配次数。 | + | `IOBufferAllocBytes` | 为 I/O 缓冲区(用于 ReadBuffer/WriteBuffer)分配的字节数。 | + | `ArenaAllocChunks` | 为内存 Arena 分配的块数量(用于 GROUP BY 等操作) | + | `ArenaAllocBytes` | 为内存 Arena 分配的字节数(用于 GROUP BY 等操作) | + | `FunctionExecute` | SQL 普通函数的调用次数(SQL 函数按数据块级别调用,因此该数值等同于被处理的数据块数量)。 | + | `TableFunctionExecute` | 表函数的调用次数。 | + | `DefaultImplementationForNullsRows` | 在函数执行过程中,由处理 NULL 的默认实现所处理的行数。 | + | `DefaultImplementationForNullsRowsWithNulls` | 在函数执行过程中,由处理 NULL 的默认实现处理且包含 NULL 值的行数。 | + | `MarkCacheHits` | 在标记缓存中命中条目的次数,因此无需加载标记文件。 | + | `MarkCacheMisses` | 在标记缓存中未命中条目的次数,因此必须将标记文件加载到内存中,这是一个开销较大的操作,会增加查询延迟。 | + | `QueryConditionCacheHits` | 在查询条件缓存中命中条目的次数(可以跳过读取标记)。仅对带有 SETTING use_query_condition_cache = 1 的 SELECT 查询进行统计。 | + | `QueryConditionCacheMisses` | 在查询条件缓存中未命中条目的次数(无法跳过读取标记)。仅对带有 SETTING use_query_condition_cache = 1 的 SELECT 查询进行统计。 | + | `CreatedReadBufferOrdinary` | 在多种读取方式中进行选择时,为读取数据而创建常规读取缓冲区的次数。 | + | `DiskReadElapsedMicroseconds` | 等待执行 read 系统调用的总时间,包括从页缓存读取的时间。 | + | `DiskWriteElapsedMicroseconds` | 等待执行 write 系统调用的总时间,包括写入到页缓存的时间。 | + | `NetworkReceiveElapsedMicroseconds` | 等待从网络接收数据或实际从网络接收数据所花费的总时间。仅包括与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkSendElapsedMicroseconds` | 等待向网络发送数据或实际向网络发送数据所花费的总时间。仅包括与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkReceiveBytes` | 从网络接收的字节总数。仅包括与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `NetworkSendBytes` | 向网络发送的字节总数。仅包括与 ClickHouse 相关的网络交互,不包括第三方库。 | + | `GlobalThreadPoolExpansions` | 记录向全局线程池添加新线程的总次数。该指标反映为满足更高处理需求而对全局线程池进行扩容的频率。 | + | `GlobalThreadPoolThreadCreationMicroseconds` | 等待新线程启动所花费的累计时间。 | + | `GlobalThreadPoolLockWaitMicroseconds` | 线程在全局线程池中等待锁所花费的累计时间。 | + | `GlobalThreadPoolJobs` | 推送到全局线程池的任务总次数。 | + | `GlobalThreadPoolJobWaitTimeMicroseconds` | 从任务在全局线程池中被调度到被工作线程取走执行之间经过的时间。该指标有助于发现任务处理中的延迟,反映线程池对新任务的响应能力。 | + | `LocalThreadPoolExpansions` | 记录从全局线程池借出线程以扩展本地线程池的总次数。 | + | `LocalThreadPoolShrinks` | 记录从本地线程池将线程归还到全局线程池的总次数。 | + | `LocalThreadPoolThreadCreationMicroseconds` | 本地线程池为从全局线程池借用线程而等待所花费的累计时间。 | + | `LocalThreadPoolLockWaitMicroseconds` | 线程在本地线程池中等待锁所花费的累计时间。 | + | `LocalThreadPoolJobs` | 推送到本地线程池的任务总次数。 | + | `LocalThreadPoolBusyMicroseconds` | 线程执行实际工作所花费的累计时间。 | + | `LocalThreadPoolJobWaitTimeMicroseconds` | 从任务在本地线程池中被调度到被工作线程取走执行之间经过的时间。该指标有助于发现任务处理中的延迟,反映线程池对新任务的响应能力。 | + | `RemoteReadThrottlerBytes` | 通过 'max_remote_read_network_bandwidth_for_server' / 'max_remote_read_network_bandwidth' 限速器的累计字节数。 | + | `RemoteWriteThrottlerBytes` | 通过 'max_remote_write_network_bandwidth_for_server' / 'max_remote_write_network_bandwidth' 限速器的累计字节数。 | + | `InsertedRows` | INSERT 到所有表中的累计行数。 | + | `InsertedBytes` | 写入到所有表中的未压缩字节总数(指内存中存储的列数据)。 | + | `ZooKeeperInit` | 与 ZooKeeper 建立连接的次数。 | + | `ZooKeeperTransactions` | ZooKeeper 操作次数,包括读写操作以及多事务(multi-transaction)。 | + | `ZooKeeperList` | 向 ZooKeeper 发送的 "list"(getChildren)请求次数。 | + | `ZooKeeperCreate` | 向 ZooKeeper 发送的 "create" 请求次数。 | + | `ZooKeeperRemove` | 向 ZooKeeper 发送的 "remove" 请求次数。 | + | `ZooKeeperExists` | 向 ZooKeeper 发送的 "exists" 请求次数。 | + | `ZooKeeperGet` | 向 ZooKeeper 发送的 "get" 请求次数。 | + | `ZooKeeperSet` | 向 ZooKeeper 发送的 "set" 请求次数。 | + | `ZooKeeperMulti` | 向 ZooKeeper 发送的 "multi" 请求次数(复合事务)。 | + | `ZooKeeperMultiRead` | 向 ZooKeeper 发送的读类型 "multi" 请求次数(复合事务)。 | + | `ZooKeeperMultiWrite` | 向 ZooKeeper 发送的写类型 "multi" 请求次数(复合事务)。 | + | `ZooKeeperSync` | 向 ZooKeeper 发送的 "sync" 请求次数。这类请求几乎不需要或很少实际使用。 | + | `ZooKeeperClose` | 与 ZooKeeper 的连接被主动关闭的次数。 | + | `ZooKeeperWatchResponse` | 从 ZooKeeper 收到 watch 通知的次数。 | + | `ZooKeeperWaitMicroseconds` | 创建请求后等待 ZooKeeper 响应所花费的总时间(微秒,在所有发起请求的线程之间求和)。 | + | `ZooKeeperBytesSent` | 与 ZooKeeper 通信过程中通过网络发送的字节总数。 | + | `ZooKeeperBytesReceived` | 与 ZooKeeper 通信过程中通过网络接收的字节总数。 | + | `DistributedConnectionTries` | 分布式连接尝试的总次数。 | + | `DistributedConnectionUsable` | 成功连接到可用服务器(包含所需表,但可能是陈旧数据)的分布式连接总次数。 | + | `SuspendSendingQueryToShard` | 在启用 async_query_sending_for_remote 时,向分片发送查询被挂起的总次数。 | + | `CompileFunction` | 触发编译生成的 LLVM 代码(为复杂表达式创建融合函数)的次数。 | + | `CompileExpressionsMicroseconds` | 用于将表达式编译为 LLVM 代码所花费的总时间(微秒)。 | + | `CompileExpressionsBytes` | 参与表达式编译的字节总数。 | + | `QueryPlanOptimizeMicroseconds` | 执行查询计划优化所花费的总时间(微秒)。 | + | `SelectedParts` | 从 MergeTree 表中被选中读取的数据分区片段数量。 | + | `SelectedPartsTotal` | 在从 MergeTree 表中选择要读取的分区片段之前的分区片段总数。 | + | `SelectedRanges` | 从 MergeTree 表中被选中读取的所有分区片段中的(非相邻)范围数量。 | + | `SelectedMarks` | 从 MergeTree 表中被选中读取的标记(索引粒度)数量。 | + | `SelectedMarksTotal` | 在从 MergeTree 表中选择要读取的标记之前的标记(索引粒度)总数。 | + | `SelectedRows` | 通过 SELECT 从所有表中读取的行数。 | + | `SelectedBytes` | 通过 SELECT 从所有表中读取的字节数(未压缩;按列在内存中的存储形式计算)。 | + | `RowsReadByMainReader` | 在 PREWHERE 步骤之后,由主读取器从 MergeTree 表中读取的行数。 | + | `RowsReadByPrewhereReaders` | 由 prewhere 读取器从 MergeTree 表中读取的行数(总计)。 | + | `LoadedDataParts` | MergeTree 表在初始化期间加载的数据分区片段数量。 | + | `LoadedDataPartsMicroseconds` | MergeTree 表在初始化期间加载数据分区片段所用时间(微秒)。 | + | `FilteringMarksWithPrimaryKeyMicroseconds` | 按主键(PK)过滤分区片段所花费的时间。 | + | `WaitMarksLoadMicroseconds` | 加载标记所花费的时间。 | + | `BackgroundLoadingMarksTasks` | 用于加载标记的后台任务数量。 | + | `MarksTasksFromCache` | 由于标记已存在于缓存中而同步加载标记的次数。 | + | `LoadedMarksFiles` | 已加载的标记文件数量。 | + | `LoadedMarksCount` | 已加载的标记数量(跨所有列的总数)。 | + | `LoadedMarksMemoryBytes` | 已加载标记在内存表示所占的大小。 | + | `LoadedPrimaryIndexFiles` | 已加载的主索引文件数量。 | + | `LoadedPrimaryIndexRows` | 已加载的主键行数。 | + | `LoadedPrimaryIndexBytes` | 已加载的主键数据的字节数。 | + | `Merge` | 已启动的后台合并次数。 | + | `MergeSourceParts` | 计划参与合并的源分区片段数量。 | + | `MergedRows` | 为后台合并读取的行数。这是合并前的行数。 | + | `MergedColumns` | 在合并的水平阶段中被合并的列数。 | + | `MergedUncompressedBytes` | 为后台合并读取的未压缩字节数(按列在内存中的存储形式计算)。这是合并前的字节数。 | + | `MergeTotalMilliseconds` | 后台合并所花费的总时间。 | + | `MergeExecuteMilliseconds` | 执行后台合并所花费的总忙碌时间。 | + | `MergeHorizontalStageTotalMilliseconds` | 后台合并水平阶段所花费的总时间。 | + | `MergeHorizontalStageExecuteMilliseconds` | 执行后台合并水平阶段所花费的总忙碌时间。 | + | `MergeVerticalStageTotalMilliseconds` | 后台合并垂直阶段所花费的总时间。 | + | `MergeProjectionStageTotalMilliseconds` | 后台合并投影阶段所花费的总时间。 | + | `MergeProjectionStageExecuteMilliseconds` | 执行后台合并投影阶段所花费的总忙碌时间。 | + | `MergePrewarmStageTotalMilliseconds` | 后台合并预热阶段的总耗时 | + | `MergePrewarmStageExecuteMilliseconds` | 后台合并预热阶段实际执行所占用的总忙碌时间 | + | `MergeTreeDataWriterRows` | INSERT 到 MergeTree 表中的行数。 | + | `MergeTreeDataWriterUncompressedBytes` | INSERT 到 MergeTree 表中的未压缩字节数(指内存中存储的列数据)。 | + | `MergeTreeDataWriterCompressedBytes` | 为 INSERT 到 MergeTree 表的数据向文件系统写入的字节数。 | + | `MergeTreeDataWriterBlocks` | INSERT 到 MergeTree 表中的块数。每个块形成一个 0 级数据分区片段。 | + | `MergeTreeDataWriterBlocksAlreadySorted` | INSERT 到 MergeTree 表中且已经按顺序排列的块数。 | + | `MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` | MergeMutate 执行器在 executeStep() 中执行任务所花费的时间。 | + | `MergeMutateBackgroundExecutorTaskResetMicroseconds` | 为 MergeMutate 执行器重置任务所花费的时间。 | + | `CommonBackgroundExecutorTaskExecuteStepMicroseconds` | Common 执行器在 executeStep() 中执行任务所花费的时间。 | + | `CommonBackgroundExecutorTaskResetMicroseconds` | 为 Common 执行器重置任务所花费的时间。 | + | `MergeTreeDataWriterSortingBlocksMicroseconds` | 对块进行排序所花费的时间。 | + | `InsertedCompactParts` | 以 Compact 格式插入的分区片段数量。 | + | `MergedIntoCompactParts` | 合并为 Compact 格式的分区片段数量。 | + | `RegexpWithMultipleNeedlesCreated` | 已编译的多模式(multi-needle,VectorScan 库)正则表达式数量。 | + | `RegexpWithMultipleNeedlesGlobalCacheHit` | 从全局缓存中获取已编译多模式(multi-needle,VectorScan 库)正则表达式的次数。 | + | `RegexpWithMultipleNeedlesGlobalCacheMiss` | 从全局缓存中获取已编译多模式(multi-needle,VectorScan 库)正则表达式失败的次数。 | + | `ContextLock` | 对 Context 锁的获取或尝试获取的次数。该锁为全局锁。 | + | `ContextLockWaitMicroseconds` | 等待 Context 锁的时间(微秒)。 | + | `RWLockAcquiredReadLocks` | 获取读锁的次数(在重量级 RWLock 中)。 | + | `PartsLockHoldMicroseconds` | 在 MergeTree 表中持有分区片段锁所花费的总时间。 | + | `PartsLockWaitMicroseconds` | 在 MergeTree 表中等待分区片段锁所花费的总时间。 | + | `RealTimeMicroseconds` | 处理线程(查询及其他任务)中消耗的总墙钟时间(注意这是累加后的值)。 | + | `UserTimeMicroseconds` | 处理线程(查询及其他任务)在用户态执行 CPU 指令所花费的总时间。这包括由于访问主内存、缓存未命中、分支预测失败、超线程等导致 CPU 流水线暂停的时间。 | + | `SystemTimeMicroseconds` | 处理线程(查询及其他任务)在操作系统内核态执行 CPU 指令所花费的总时间。这是系统调用中消耗的时间,不包括在阻塞系统调用等待期间的时间。 | + | `MemoryAllocatorPurge` | 请求内存分配器执行清理(purge)的总次数。 | + | `MemoryAllocatorPurgeTimeMicroseconds` | 内存分配器执行清理所耗费的总时间 | + | `SoftPageFaults` | 查询执行线程中的软缺页次数。软缺页通常表示内存分配器缓存未命中,需要从操作系统获取新的内存映射,并随后分配一页物理内存。 | + | `OSCPUWaitMicroseconds` | 从操作系统视角来看,线程已准备好执行但在等待操作系统调度的总时间。 | + | `OSCPUVirtualTimeMicroseconds` | 从操作系统视角统计的 CPU 使用时间。不包括由于虚拟化导致的非自愿等待时间。 | + | `OSWriteBytes` | 写入磁盘或块设备的字节数。不包括仍处于页面缓存脏页中的数据,且可能不包括由操作系统异步写入的数据。 | + | `OSReadChars` | 从文件系统读取的字节数,包括页面缓存中的数据。 | + | `OSWriteChars` | 写入文件系统的字节数,包括页面缓存中的数据。 | + | `QueryProfilerRuns` | QueryProfiler 运行的次数。 | + | `S3ReadMicroseconds` | 对 S3 存储执行 GET 和 HEAD 请求所耗费的时间。 | + | `S3ReadRequestsCount` | 对 S3 存储执行的 GET 和 HEAD 请求次数。 | + | `S3ReadRequestsErrors` | 对 S3 存储执行 GET 和 HEAD 请求时发生的非限流错误次数。 | + | `S3ReadRequestAttempts` | 对 S3 存储执行 GET 和 HEAD 请求的尝试次数,包括初始尝试和所有重试次数,但不包括由 S3 重试策略在内部执行的重试。 | + | `S3WriteMicroseconds` | 对 S3 存储执行 POST、DELETE、PUT 和 PATCH 请求所耗费的时间。 | + | `S3WriteRequestsCount` | 对 S3 存储执行的 POST、DELETE、PUT 和 PATCH 请求次数。 | + | `S3WriteRequestAttempts` | 对 S3 存储执行 POST、DELETE、PUT 和 PATCH 请求的尝试次数,包括初始尝试和所有重试次数,但不包括由重试策略在内部执行的重试。 | + | `DiskS3ReadMicroseconds` | 对 DiskS3 存储执行 GET 和 HEAD 请求所耗费的时间。 | + | `DiskS3ReadRequestsCount` | 对 DiskS3 存储执行的 GET 和 HEAD 请求次数。 | + | `DiskS3ReadRequestsErrors` | 对 DiskS3 存储执行 GET 和 HEAD 请求时发生的非限流错误次数。 | + | `DiskS3ReadRequestAttempts` | 对 DiskS3 存储执行 GET 和 HEAD 请求的尝试次数,包括初始尝试和所有重试次数,但不包括由 S3 重试策略在内部执行的重试。 | + | `DiskS3WriteMicroseconds` | 对 DiskS3 存储执行 POST、DELETE、PUT 和 PATCH 请求所耗费的时间。 | + | `DiskS3WriteRequestsCount` | 对 DiskS3 存储执行的 POST、DELETE、PUT 和 PATCH 请求次数。 | + | `DiskS3WriteRequestAttempts` | 对 DiskS3 存储执行 POST、DELETE、PUT 和 PATCH 请求的尝试次数,包括首次尝试和所有重试,但不包括由重试策略在内部执行的重试。 | + | `S3DeleteObjects` | S3 API DeleteObject 调用次数。 | + | `S3ListObjects` | S3 API ListObjects 调用次数。 | + | `S3HeadObject` | S3 API HeadObject 调用次数。 | + | `S3PutObject` | S3 API PutObject 调用次数。 | + | `S3GetObject` | S3 API GetObject 调用次数。 | + | `DiskS3DeleteObjects` | DiskS3 API DeleteObject 调用次数。 | + | `DiskS3ListObjects` | DiskS3 API ListObjects 调用次数。 | + | `DiskS3HeadObject` | DiskS3 API HeadObject 调用次数。 | + | `DiskS3PutObject` | DiskS3 API PutObject 调用次数。 | + | `DiskS3GetObject` | DiskS3 API GetObject 调用次数。 | + | `DiskPlainRewritableS3DirectoryCreated` | 由 S3ObjectStorage 的 plain_rewritable 元数据存储创建的目录数量。 | + | `DiskPlainRewritableS3DirectoryRemoved` | 由 S3ObjectStorage 的 plain_rewritable 元数据存储删除的目录数量。 | + | `S3Clients` | 已创建的 S3 客户端数量。 | + | `ReadBufferFromS3Microseconds` | 从 S3 读取数据所用时间。 | + | `ReadBufferFromS3InitMicroseconds` | 初始化与 S3 的连接所用时间。 | + | `ReadBufferFromS3Bytes` | 从 S3 读取的字节数。 | + | `WriteBufferFromS3Microseconds` | 向 S3 写入数据所用时间。 | + | `WriteBufferFromS3Bytes` | 写入到 S3 的字节数。 | + | `CachedReadBufferReadFromCacheHits` | 从文件系统缓存读取时缓存命中的次数。 | + | `CachedReadBufferReadFromCacheMisses` | 从文件系统缓存读取时缓存未命中的次数。 | + | `CachedReadBufferReadFromSourceMicroseconds` | 从文件系统缓存的数据源(远程文件系统等)读取所用时间。 | + | `CachedReadBufferReadFromCacheMicroseconds` | 从文件系统缓存读取所用时间。 | + | `CachedReadBufferReadFromSourceBytes` | 从文件系统缓存的数据源(远程文件系统等)读取的字节数。 | + | `CachedReadBufferReadFromCacheBytes` | 从文件系统缓存读取的字节数。 | + | `CachedReadBufferCacheWriteBytes` | 从数据源(远程文件系统等)写入到文件系统缓存的字节数。 | + | `CachedReadBufferCacheWriteMicroseconds` | 将数据写入文件系统缓存所用时间。 | + | `CachedReadBufferCreateBufferMicroseconds` | 准备缓冲区所用时间。 | + | `CachedWriteBufferCacheWriteBytes` | 从数据源(远程文件系统等)写入到文件系统缓存的字节数。 | + | `CachedWriteBufferCacheWriteMicroseconds` | 将数据写入文件系统缓存所用时间。 | + | `FilesystemCacheLoadMetadataMicroseconds` | 加载文件系统缓存元数据所用时间。 | + | `FilesystemCacheCreatedKeyDirectories` | 创建的键目录数量。 | + | `FilesystemCacheBackgroundDownloadQueuePush` | 在文件系统缓存中为后台下载发送的文件分段数量。 | + | `FilesystemCacheLockKeyMicroseconds` | 锁定缓存键所用时间。 | + | `FilesystemCacheLockMetadataMicroseconds` | 锁定文件系统缓存元数据所用时间。 | + | `FilesystemCacheLockCacheMicroseconds` | 锁定文件系统缓存所用时间。 | + | `FilesystemCacheReserveMicroseconds` | 为文件系统缓存预留空间所用时间。 | + | `FilesystemCacheReserveAttempts` | 文件系统缓存空间预留尝试次数。 | + | `FilesystemCacheGetOrSetMicroseconds` | 文件系统缓存 getOrSet() 操作所用时间。 | + | `FilesystemCacheGetMicroseconds` | 文件系统缓存 get() 操作所用时间。 | + | `FileSegmentCompleteMicroseconds` | 在文件系统缓存中执行 FileSegment::complete() 的耗时 | + | `FileSegmentLockMicroseconds` | 锁定文件分段所耗费的时间 | + | `FileSegmentWriteMicroseconds` | 文件分段执行 write() 操作的耗时 | + | `FileSegmentUseMicroseconds` | 文件分段执行 use() 操作的耗时 | + | `FileSegmentHolderCompleteMicroseconds` | 文件分段持有者执行 complete() 操作的耗时 | + | `FileSegmentFailToIncreasePriority` | 由于缓存锁竞争严重而未能提升优先级的次数 | + | `FilesystemCacheHoldFileSegments` | 在文件系统缓存中被保留(hold)的文件分段数量 | + | `FilesystemCacheUnusedHoldFileSegments` | 在文件系统缓存中被保留但未被使用的文件分段数量(例如由于 seek 或 LIMIT n 等原因) | + | `RemoteFSSeeks` | 异步缓冲区的总 seek 次数 | + | `RemoteFSPrefetches` | 从远程文件系统进行异步读取时执行的预取次数 | + | `RemoteFSCancelledPrefetches` | 被取消的预取次数(由于 seek) | + | `RemoteFSUnusedPrefetches` | 在缓冲区销毁时仍处于挂起状态的预取操作数量 | + | `RemoteFSPrefetchedReads` | 从已预取缓冲区进行读取的次数 | + | `RemoteFSPrefetchedBytes` | 从已预取缓冲区读取的字节数 | + | `RemoteFSUnprefetchedReads` | 从未预取缓冲区进行读取的次数 | + | `RemoteFSUnprefetchedBytes` | 从未预取缓冲区读取的字节数 | + | `RemoteFSBuffers` | 为从远程文件系统进行异步读取而创建的缓冲区数量 | + | `WaitPrefetchTaskMicroseconds` | 等待预取读取器的耗时 | + | `ThreadpoolReaderTaskMicroseconds` | 在异步读取中获取数据所耗费的时间 | + | `ThreadpoolReaderReadBytes` | 在异步读取中由线程池任务读取的字节数 | + | `ThreadpoolReaderSubmit` | 在异步读取中提交给线程池任务的读取次数 | + | `ThreadpoolReaderSubmitReadSynchronously` | 未在线程池中调度任务而改为同步读取的次数 | + | `ThreadpoolReaderSubmitReadSynchronouslyBytes` | 以同步方式读取的字节数 | + | `ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` | 执行同步读取所耗费的时间 | + | `ThreadpoolReaderSubmitLookupInCacheMicroseconds` | 检查内容是否已缓存所耗费的时间 | + | `FileSegmentWaitReadBufferMicroseconds` | 按文件分段统计:等待内部读缓冲区的时间(包括等待缓存的时间) | + | `FileSegmentReadMicroseconds` | 按文件分段统计:从文件读取数据所耗费的时间 | + | `FileSegmentCacheWriteMicroseconds` | 按文件分段统计:将数据写入缓存所耗费的时间 | + | `FileSegmentUsedBytes` | 按文件分段统计:当前文件分段中实际被使用的字节数 | + | `ThreadPoolReaderPageCacheMiss` | ThreadPoolReader 中页缓存未命中且交由线程池处理的读取次数 | + | `ThreadPoolReaderPageCacheMissBytes` | ThreadPoolReader 中页缓存未命中且交由线程池处理时读取的字节数 | + | `ThreadPoolReaderPageCacheMissElapsedMicroseconds` | ThreadPoolReader 中异步任务在页缓存未命中时读取数据所耗费的时间 | + | `SynchronousReadWaitMicroseconds` | 在异步本地读取中等待同步读取完成所耗费的时间 | + | `AsynchronousRemoteReadWaitMicroseconds` | 等待异步远程读取完成所耗费的时间 | + | `SynchronousRemoteReadWaitMicroseconds` | 等待同步远程读取完成所耗费的时间 | + | `MainConfigLoads` | 主配置被重新加载的次数 | + | `MetadataFromKeeperCacheHit` | 对象存储元数据请求在无需向 Keeper 发起请求、直接由缓存命中并返回的次数 | + | `MetadataFromKeeperCacheMiss` | 对象存储元数据请求需要由 Keeper 处理并响应的次数 | + | `MetadataFromKeeperCacheUpdateMicroseconds` | 用于更新缓存的总耗时,包括等待 Keeper 响应的时间 | + | `MetadataFromKeeperUpdateCacheOneLevel` | 在目录树单层上执行缓存更新的次数 | + | `MetadataFromKeeperTransactionCommit` | 尝试提交元数据事务的次数 | + | `MetadataFromKeeperCleanupTransactionCommit` | 为清理已删除对象而尝试提交元数据事务的次数 | + | `MetadataFromKeeperOperations` | 向 Keeper 发起请求的次数 | + | `MetadataFromKeeperIndividualOperations` | 通过单个或批量请求在 Keeper 上读取或写入的路径数量 | + | `MetadataFromKeeperIndividualOperationsMicroseconds` | 在对 Keeper 发起单个或批量请求期间的总耗时 | + | `SharedMergeTreeMetadataCacheHintLoadedFromCache` | 在不访问 Keeper 的情况下,从缓存中命中元数据缓存提示的次数 | + | `ScalarSubqueriesCacheMiss` | 对标量子查询进行读取时缓存未命中且必须完全重新计算的次数 | + | `ServerStartupMilliseconds` | 从启动服务器到开始监听套接字的耗时(毫秒) | + | `MergerMutatorsGetPartsForMergeElapsedMicroseconds` | 为构建区间而获取数据分区片段快照的耗时 | + | `MergerMutatorPrepareRangesForMergeElapsedMicroseconds` | 根据合并谓词准备可合并的分区片段区间的耗时 | + | `MergerMutatorSelectPartsForMergeElapsedMicroseconds` | 从可合并区间中选择分区片段的耗时 | + | `MergerMutatorRangesForMergeCount` | 用于合并的候选区间数量 | + | `MergerMutatorPartsInRangesForMergeCount` | 用于合并的候选分区片段数量 | + | `MergerMutatorSelectRangePartsCount` | 被选中用于合并的区间中包含的分区片段数量 | + | `AsyncLoaderWaitMicroseconds` | 查询等待异步加载任务完成的总耗时 | + | `LogTrace` | Trace 级别日志消息数量 | + | `LogDebug` | Debug 级别日志消息数量 | + | `LogInfo` | Info 级别日志消息数量 | + | `LogWarning` | Warning 级别日志消息数量 | + | `LogError` | Error 级别日志消息数量 | + | `LoggerElapsedNanoseconds` | 日志记录的累计耗时 | + | `InterfaceHTTPSendBytes` | 通过 HTTP 接口发送的字节数 | + | `InterfaceHTTPReceiveBytes` | 通过 HTTP 接口接收的字节数 | + | `InterfaceNativeSendBytes` | 通过原生接口发送的字节数 | + | `InterfaceNativeReceiveBytes` | 通过原生接口接收的字节数 | + | `InterfacePrometheusSendBytes` | 通过 Prometheus 接口发送的字节数 | + | `InterfacePrometheusReceiveBytes` | 通过 Prometheus 接口接收的字节数 | + | `InterfaceInterserverSendBytes` | 通过互联服务器接口发送的字节数 | + | `InterfaceInterserverReceiveBytes` | 通过互联服务器接口接收的字节数 | + | `SharedMergeTreeVirtualPartsUpdates` | 虚拟分区片段更新次数 | + | `SharedMergeTreeVirtualPartsUpdatesByLeader` | 由主节点执行的虚拟分区片段更新次数 | + | `SharedMergeTreeVirtualPartsUpdateMicroseconds` | 虚拟分区片段更新耗时(微秒) | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` | 来自 ZooKeeper 的虚拟分区片段更新次数 | + | `SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` | 来自 ZooKeeper 的虚拟分区片段更新耗时(微秒) | + | `SharedMergeTreeVirtualPartsUpdatesPeerNotFound` | 来自对等节点的虚拟更新因未找到任何对等节点而失败的次数 | + | `SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` | 虚拟分区片段更新中主节点选举成功的次数 | + | `SharedMergeTreeMergeMutationAssignmentAttempt` | 合并或变更任务分配的尝试次数 | + | `SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` | 尝试分配合并或变更但因无可合并内容而失败的次数 | + | `SharedMergeTreePartsKillerRuns` | 分区片段清理器运行的次数 | + | `SharedMergeTreePartsKillerMicroseconds` | 分区片段清理器主线程的总耗时 | + | `SharedMergeTreeMergeSelectingTaskMicroseconds` | SMT 合并选择任务的耗时(微秒) | + | `SharedMergeTreeScheduleDataProcessingJob` | scheduleDataProcessingJob 被调用的次数 | + | `SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` | scheduleDataProcessingJob 被调用但无事可做的次数 | + | `SharedMergeTreeScheduleDataProcessingJobMicroseconds` | scheduleDataProcessingJob 的执行总耗时 | + | `SharedMergeTreeHandleBlockingPartsMicroseconds` | scheduleDataProcessingJob 中处理阻塞分区片段的耗时 | + | `SharedMergeTreeHandleFetchPartsMicroseconds` | scheduleDataProcessingJob 中处理已获取分区片段的耗时 | + | `SharedMergeTreeHandleOutdatedPartsMicroseconds` | scheduleDataProcessingJob 中处理过期分区片段的耗时 | + | `SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` | scheduleDataProcessingJob 中执行 tryUpdateDiskMetadataCacheForPart 的耗时 | + | `DiskConnectionsCreated` | 为磁盘创建的连接总数 | + | `DiskConnectionsReused` | 为磁盘复用的连接总数 | + | `DiskConnectionsReset` | 为磁盘重置的连接总数 | + | `DiskConnectionsPreserved` | 为磁盘保留的连接总数 | + | `DiskConnectionsExpired` | 为磁盘过期的连接总数 | + | `DiskConnectionsElapsedMicroseconds` | 为磁盘创建连接所花费的总时间 | + | `HTTPConnectionsCreated` | 创建的客户端 HTTP 连接总数 | + | `HTTPConnectionsReused` | 复用的客户端 HTTP 连接总数 | + | `HTTPConnectionsPreserved` | 保留的客户端 HTTP 连接总数 | + | `HTTPConnectionsElapsedMicroseconds` | 创建客户端 HTTP 连接所花费的总时间 | + | `HTTPServerConnectionsCreated` | 创建的服务端 HTTP 连接总数 | + | `HTTPServerConnectionsReused` | 复用的服务端 HTTP 连接总数 | + | `HTTPServerConnectionsPreserved` | 保留的服务端 HTTP 连接总数(连接保持存活成功) | + | `HTTPServerConnectionsExpired` | 过期的服务端 HTTP 连接总数 | + | `HTTPServerConnectionsReset` | 重置的服务端 HTTP 连接总数(服务端关闭连接) | + | `AddressesDiscovered` | HTTP 连接的 DNS 解析结果中新发现地址的总数 | + | `ReadWriteBufferFromHTTPRequestsSent` | 由 ReadWriteBufferFromHTTP 发送的 HTTP 请求总数 | + | `ReadWriteBufferFromHTTPBytes` | ReadWriteBufferFromHTTP 收发的有效载荷字节总大小(不包括 HTTP 头部) | + | `ConcurrencyControlSlotsGranted` | 在保证“每个查询 1 个线程”且 setting 'use_concurrency_control' = 0 的情况下,为查询授予的 CPU 插槽数量 | + | `ConcurrencyControlSlotsAcquiredNonCompeting` | 以非竞争方式获取到的 CPU 插槽总数 | + | `MemoryWorkerRun` | MemoryWorker 在后台执行的总次数 | + | `MemoryWorkerRunElapsedMicroseconds` | MemoryWorker 后台工作的总耗时 | + | `FilterTransformPassedRows` | 在查询中过滤后通过的行总数 | + | `FilterTransformPassedBytes` | 在查询中过滤后通过的字节总数 | + | `IndexBinarySearchAlgorithm` | 在索引标记上使用二分查找算法的次数 | + | `IndexGenericExclusionSearchAlgorithm` | 在索引标记上使用通用排除搜索算法的次数 | + | `AsyncLoggingConsoleTotalMessages` | 发送到控制台日志异步队列的消息总数(包括已接受和已丢弃的消息) | + | `AsyncLoggingFileLogTotalMessages` | 发送到文件日志异步队列的消息总数(包括已接受和已丢弃的消息) | + | `AsyncLoggingErrorFileLogTotalMessages` | 发送到错误文件日志异步队列的消息总数(包括已接受和已丢弃的消息) | + | `AsyncLoggingTextLogTotalMessages` | 发送到 text_log 异步队列的消息总数(包括已接受和已丢弃的消息) | + + {/*AUTOGENERATED_END*/ } + + **示例** @@ -44,5 +440,5 @@ SELECT * FROM system.events LIMIT 5 * [system.asynchronous_metrics](/operations/system-tables/asynchronous_metrics) — 包含周期性计算的指标。 * [system.metrics](/operations/system-tables/metrics) — 包含即时计算的指标。 -* [system.metric_log](/operations/system-tables/metric_log) — 包含来自 `system.metrics` 和 `system.events` 表的指标值历史记录。 +* [system.metric_log](/operations/system-tables/metric_log) — 包含 `system.metrics` 和 `system.events` 两个表中的指标值历史记录。 * [Monitoring](../../operations/monitoring.md) — ClickHouse 监控的基础概念。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md deleted file mode 100644 index 06e5e89b1d0..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/index.md +++ /dev/null @@ -1,2571 +0,0 @@ ---- -description: 'ClickHouse 中外部字典功能概述' -sidebar_label: '定义字典' -sidebar_position: 35 -slug: /sql-reference/dictionaries -title: '字典' -doc_type: 'reference' ---- - -import SelfManaged from '@site/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; -import CloudDetails from '@site/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md'; -import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; -import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; - - -# 字典 \{#dictionaries\} - -字典是一种映射(`key -> attributes`),便于用于各种类型的参考列表。 - -ClickHouse 支持在查询中使用用于操作字典的特殊函数。与对参考表执行 `JOIN` 相比,配合函数使用字典更简单且更高效。 - -ClickHouse 支持: - -- 具有[一组函数](../../sql-reference/functions/ext-dict-functions.md)的字典。 -- 具有特定[函数集](../../sql-reference/functions/embedded-dict-functions.md)的[嵌入式字典](#embedded-dictionaries)。 - -:::tip Tutorial -如果您刚开始在 ClickHouse 中使用字典,我们有一个涵盖该主题的教程。请查看[这里](tutorial.md)。 -::: - -您可以从各种数据源添加自己的字典。字典的数据源可以是 ClickHouse 表、本地文本或可执行文件、HTTP(s) 资源,或其他 DBMS。更多信息,参见“[Dictionary Sources](#dictionary-sources)”。 - -ClickHouse: - -- 将字典全部或部分存储在 RAM 中。 -- 周期性更新字典并动态加载缺失的值。换句话说,字典可以被动态加载。 -- 允许使用 xml 文件或 [DDL 查询](../../sql-reference/statements/create/dictionary.md)创建字典。 - -字典的配置可以位于一个或多个 xml 文件中。配置路径在 [dictionaries_config](../../operations/server-configuration-parameters/settings.md#dictionaries_config) 参数中指定。 - -根据 [dictionaries_lazy_load](../../operations/server-configuration-parameters/settings.md#dictionaries_lazy_load) 设置,字典可以在服务器启动时加载,或在首次使用时加载。 - -[dictionaries](/operations/system-tables/dictionaries) 系统表包含服务器上已配置字典的信息。对于每个字典,您可以在其中找到: - -- 字典的状态。 -- 配置参数。 -- 指标,例如为字典分配的 RAM 大小,或自字典成功加载以来的查询次数。 - - - -## 使用 DDL 查询创建字典 \{#creating-a-dictionary-with-a-ddl-query\} - -可以使用 [DDL 查询](../../sql-reference/statements/create/dictionary.md) 来创建字典,这是推荐的方法,因为通过 DDL 创建的字典具有以下优点: - -- 服务器配置文件中不会添加额外的记录。 -- 字典可以像表或视图一样,作为一等公民进行操作。 -- 可以直接读取数据,使用熟悉的 SELECT 语句,而不是字典表函数。请注意,当通过 SELECT 语句直接访问字典时,已缓存的字典只会返回缓存的数据,而未缓存的字典会返回其存储的全部数据。 -- 字典可以轻松重命名。 - -## 使用配置文件创建字典 \{#creating-a-dictionary-with-a-configuration-file\} - - - -:::note -使用配置文件创建字典不适用于 ClickHouse Cloud。请使用 DDL(见上文),并以 `default` 用户身份创建字典。 -::: - -字典配置文件具有以下格式: - -```xml - - 可选元素,可包含任意内容。ClickHouse 服务器将忽略此元素。 - - - /etc/metrika.xml - - - - - - - - -``` - -你可以在同一个文件中[配置](#configuring-a-dictionary)任意数量的字典。 - -:::note -你可以通过在 `SELECT` 查询中以字典形式描述一个小型字典来转换其值(参见 [transform](../../sql-reference/functions/other-functions.md) 函数)。该功能与字典机制本身无关。 -::: - -## 配置字典 \{#configuring-a-dictionary\} - - - -如果使用 XML 文件来配置字典,则字典配置具有如下结构: - -```xml - - dict_name - - - - - - - - - - - - - - - - - -``` - -其对应的 [DDL 查询](../../sql-reference/statements/create/dictionary.md) 语句结构如下: - -```sql -CREATE DICTIONARY dict_name -( - ... -- 属性 -) -PRIMARY KEY ... -- 复合主键或单主键配置 -SOURCE(...) -- 数据源配置 -LAYOUT(...) -- 内存布局配置 -LIFETIME(...) -- 字典在内存中的存活时间 -``` - -## 在内存中存储字典 \{#storing-dictionaries-in-memory\} - -有多种方式可以在内存中存储字典。 - -我们推荐使用 [flat](#flat)、[hashed](#hashed) 和 [complex_key_hashed](#complex_key_hashed) 类型,它们可以提供最佳的处理速度。 - -不推荐使用缓存类型,因为其性能可能较差,并且难以选取最优参数。更多内容请参见 [cache](#cache) 部分。 - -有几种方法可以提升字典性能: - -* 在 `GROUP BY` 之后调用用于处理字典的函数。 -* 将要提取的属性标记为单射。若不同键对应不同的属性值,则该属性称为单射。因此,当 `GROUP BY` 中使用按键获取属性值的函数时,该函数会自动从 `GROUP BY` 中提取出来单独执行。 - -ClickHouse 会针对与字典相关的错误抛出异常。例如: - -* 无法加载正在访问的字典。 -* 查询 `cached` 字典时出错。 - -可以在 [system.dictionaries](../../operations/system-tables/dictionaries.md) 表中查看字典列表及其状态。 - - - -配置如下所示: - -```xml - - - ... - - - - - - ... - - -``` - -对应的 [DDL 查询语句](../../sql-reference/statements/create/dictionary.md): - -```sql -CREATE DICTIONARY (...) -... -LAYOUT(LAYOUT_TYPE(param value)) -- 布局设置 -... -``` - -在布局名称中不含单词 `complex-key*` 的字典,其键类型为 [UInt64](../../sql-reference/data-types/int-uint.md);带有 `complex-key*` 的字典则使用复合键(复杂键,可由任意类型组成)。 - -在 XML 字典中,类型为 [UInt64](../../sql-reference/data-types/int-uint.md) 的键通过 `` 标签定义。 - -配置示例(名为 key_column 的列类型为 UInt64): - -```xml -... - - - key_column - -... -``` - -具有复合 `complex` 键的 XML 字典通过 `` 标签定义。 - -复合键的配置示例(键只有一个元素,该元素的类型为 [String](../../sql-reference/data-types/string.md)): - -```xml -... - - - - country_code - String - - -... -``` - -## 在内存中存储字典的方式 \{#ways-to-store-dictionaries-in-memory\} - -在内存中存储字典数据的不同方法,在 CPU 和 RAM 使用上各有权衡。字典相关[博客文章](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse)中 [Choosing a Layout](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse#choosing-a-layout) 段落给出的决策树,是选择使用哪种布局的良好起点。 - -- [flat](#flat) -- [hashed](#hashed) -- [sparse_hashed](#sparse_hashed) -- [complex_key_hashed](#complex_key_hashed) -- [complex_key_sparse_hashed](#complex_key_sparse_hashed) -- [hashed_array](#hashed_array) -- [complex_key_hashed_array](#complex_key_hashed_array) -- [range_hashed](#range_hashed) -- [complex_key_range_hashed](#complex_key_range_hashed) -- [cache](#cache) -- [complex_key_cache](#complex_key_cache) -- [ssd_cache](#ssd_cache) -- [complex_key_ssd_cache](#complex_key_ssd_cache) -- [direct](#direct) -- [complex_key_direct](#complex_key_direct) -- [ip_trie](#ip_trie) - -### flat \{#flat\} - -字典以扁平数组的形式完全存储在内存中。字典会使用多少内存?该数量与最大键值的大小(所占空间)成正比。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md),值的大小受 `max_array_size` 限制(默认值为 500,000)。如果在创建字典时发现更大的键值,ClickHouse 会抛出异常并且不会创建该字典。字典扁平数组的初始大小由 `initial_array_size` 设置控制(默认值为 1024)。 - -支持所有类型的源。在更新时,会将数据(无论来自文件还是表)完整读取一遍。 - -此方法在所有可用的字典存储方法中提供了最佳性能。 - -配置示例: - -```xml - - - 50000 - 5000000 - - -``` - -或 - -```sql -LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) -``` - -### hashed \{#hashed\} - -字典以哈希表的形式完全存储在内存中。字典可以包含任意数量、具有任意标识符的元素。实际使用中,键的数量可以达到数千万级。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -支持所有类型的数据源。在更新时,会整体读取数据(来自文件或表)。 - -配置示例: - -```xml - - - -``` - -或 - -```sql -LAYOUT(HASHED()) -``` - -配置示例: - -```xml - - - - 10 - - - 10000 - - - 0.5 - - -``` - -或 - -```sql -LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### sparse_hashed \{#sparse_hashed\} - -与 `hashed` 类似,但更节省内存,以更高的 CPU 使用率为代价。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -配置示例: - -```xml - - - - - - - -``` - -或 - -```sql -LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -对于此类字典也可以使用 `shards`,同理,这对 `sparse_hashed` 比对 `hashed` 更为重要,因为 `sparse_hashed` 更慢。 - -### complex_key_hashed \{#complex_key_hashed\} - -这种存储类型用于具有复合[键](#dictionary-key-and-fields)的场景,其工作方式类似于 `hashed`。 - -配置示例: - -```xml - - - - - - - -``` - -或 - -```sql -LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### complex_key_sparse_hashed \{#complex_key_sparse_hashed\} - -这种存储类型用于复合[键](#dictionary-key-and-fields)。与 [sparse_hashed](#sparse_hashed) 类似。 - -配置示例: - -```xml - - - - - - - -``` - -或者 - -```sql -LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) -``` - -### hashed_array \{#hashed_array\} - -字典完全存储在内存中。每个属性都存储在一个数组中。键属性以哈希表的形式存储,其中值是属性数组中的索引。字典可以包含任意数量、具有任意标识符的元素。在实际使用中,键的数量可以达到数千万级。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -支持所有类型的数据源。在更新时,会将数据(来自文件或表)整体读取到内存中。 - -配置示例: - -```xml - - - - -``` - -或 - -```sql -LAYOUT(HASHED_ARRAY([SHARDS 1])) -``` - -### complex_key_hashed_array \{#complex_key_hashed_array\} - -此类存储用于复合[键](#dictionary-key-and-fields),类似于[hashed_array](#hashed_array)。 - -配置示例: - -```xml - - - -``` - -或者 - -```sql -LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) -``` - -### range_hashed \{#range_hashed\} - -字典以哈希表的形式存储在内存中,包含一个有序的区间数组及其对应的值。 - -这种存储方式与 `hashed` 相同,除了键以外,还允许使用日期/时间(任意数值类型)区间。 - -示例:表中包含针对每个广告主的折扣,格式如下: - -```text -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 123 │ 2015-01-16 │ 2015-01-31 │ 0.25 │ -│ 123 │ 2015-01-01 │ 2015-01-15 │ 0.15 │ -│ 456 │ 2015-01-01 │ 2015-01-15 │ 0.05 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ -``` - -要基于日期范围进行采样,请在[结构](#dictionary-key-and-fields)中定义 `range_min` 和 `range_max` 元素。这些元素必须包含 `name` 和 `type`(如果未指定 `type`,将使用默认类型 Date)。`type` 可以是任意数值类型(Date / DateTime / UInt64 / Int32 / 其他)。 - -:::note -`range_min` 和 `range_max` 的值应在 `Int64` 类型的取值范围内。 -::: - -示例: - -```xml - - - - min - - - - - advertiser_id - - - discount_start_date - Date - - - discount_end_date - Date - - ... -``` - -或 - -```sql -CREATE DICTIONARY discounts_dict ( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Date, - amount Float64 -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'discounts')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(RANGE_HASHED(range_lookup_strategy 'max')) -RANGE(MIN discount_start_date MAX discount_end_date) -``` - -要使用这些字典,需要向 `dictGet` 函数额外传入一个参数,用于指定区间: - -```sql -dictGet('dict_name', 'attr_name', id, date) -``` - -查询示例: - -```sql -SELECT dictGet('discounts_dict', 'amount', 1, '2022-10-20'::Date); -``` - -此函数返回指定 `id` 在包含传入日期的日期范围内的值。 - -算法细节: - -* 如果未找到 `id` 或者为该 `id` 未找到范围,则返回该属性类型的默认值。 -* 如果存在重叠范围且 `range_lookup_strategy=min`,则返回一个匹配范围,其 `range_min` 最小;如果找到多个范围,则返回其中 `range_max` 最小的范围;如果仍然找到多个范围(多个范围具有相同的 `range_min` 和 `range_max`),则从中随机返回一个范围。 -* 如果存在重叠范围且 `range_lookup_strategy=max`,则返回一个匹配范围,其 `range_min` 最大;如果找到多个范围,则返回其中 `range_max` 最大的范围;如果仍然找到多个范围(多个范围具有相同的 `range_min` 和 `range_max`),则从中随机返回一个范围。 -* 如果 `range_max` 为 `NULL`,则该范围在上界为开区间。`NULL` 被视为可能的最大值。对于 `range_min`,可以使用 `1970-01-01` 或 `0` (-MAX_INT) 作为无下界的开区间值。 - -配置示例: - -```xml - - - ... - - - - - - - - Abcdef - - - StartTimeStamp - UInt64 - - - EndTimeStamp - UInt64 - - - XXXType - String - - - - - - -``` - -或 - -```sql -CREATE DICTIONARY somedict( - Abcdef UInt64, - StartTimeStamp UInt64, - EndTimeStamp UInt64, - XXXType String DEFAULT '' -) -PRIMARY KEY Abcdef -RANGE(MIN StartTimeStamp MAX EndTimeStamp) -``` - -包含重叠区间和开区间的配置示例: - -```sql -CREATE TABLE discounts -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -ENGINE = Memory; - -INSERT INTO discounts VALUES (1, '2015-01-01', Null, 0.1); -INSERT INTO discounts VALUES (1, '2015-01-15', Null, 0.2); -INSERT INTO discounts VALUES (2, '2015-01-01', '2015-01-15', 0.3); -INSERT INTO discounts VALUES (2, '2015-01-04', '2015-01-10', 0.4); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-15', 0.5); -INSERT INTO discounts VALUES (3, '1970-01-01', '2015-01-10', 0.6); - -SELECT * FROM discounts ORDER BY advertiser_id, discount_start_date; -┌─advertiser_id─┬─discount_start_date─┬─discount_end_date─┬─amount─┐ -│ 1 │ 2015-01-01 │ ᴺᵁᴸᴸ │ 0.1 │ -│ 1 │ 2015-01-15 │ ᴺᵁᴸᴸ │ 0.2 │ -│ 2 │ 2015-01-01 │ 2015-01-15 │ 0.3 │ -│ 2 │ 2015-01-04 │ 2015-01-10 │ 0.4 │ -│ 3 │ 1970-01-01 │ 2015-01-15 │ 0.5 │ -│ 3 │ 1970-01-01 │ 2015-01-10 │ 0.6 │ -└───────────────┴─────────────────────┴───────────────────┴────────┘ - --- RANGE_LOOKUP_STRATEGY 'max' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'max')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- 仅有一个范围匹配:2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.2 │ -- 两个范围匹配,range_min 2015-01-15 (0.2) 大于 2015-01-01 (0.1) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.4 │ -- 两个范围匹配,range_min 2015-01-04 (0.4) 大于 2015-01-01 (0.3) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.5 │ -- 两个范围匹配,range_min 相等,range_max 2015-01-15 (0.5) 大于 2015-01-10 (0.6) -└─────┘ - -DROP DICTIONARY discounts_dict; - --- RANGE_LOOKUP_STRATEGY 'min' - -CREATE DICTIONARY discounts_dict -( - advertiser_id UInt64, - discount_start_date Date, - discount_end_date Nullable(Date), - amount Float64 -) -PRIMARY KEY advertiser_id -SOURCE(CLICKHOUSE(TABLE discounts)) -LIFETIME(MIN 600 MAX 900) -LAYOUT(RANGE_HASHED(RANGE_LOOKUP_STRATEGY 'min')) -RANGE(MIN discount_start_date MAX discount_end_date); - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-14')) res; -┌─res─┐ -│ 0.1 │ -- 仅有一个范围匹配:2015-01-01 - Null -└─────┘ - -select dictGet('discounts_dict', 'amount', 1, toDate('2015-01-16')) res; -┌─res─┐ -│ 0.1 │ -- 两个范围匹配,range_min 2015-01-01 (0.1) 小于 2015-01-15 (0.2) -└─────┘ - -select dictGet('discounts_dict', 'amount', 2, toDate('2015-01-06')) res; -┌─res─┐ -│ 0.3 │ -- 两个范围匹配,range_min 2015-01-01 (0.3) 小于 2015-01-04 (0.4) -└─────┘ - -select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; -┌─res─┐ -│ 0.6 │ -- 两个范围匹配,range_min 相等,range_max 2015-01-10 (0.6) 小于 2015-01-15 (0.5) -└─────┘ -``` - -### complex_key_range_hashed \{#complex_key_range_hashed\} - -字典以哈希表的形式存储在内存中,包含一个有序的区间数组及其对应的值(参见 [range_hashed](#range_hashed))。这种存储类型适用于复合[键](#dictionary-key-and-fields)。 - -配置示例: - -```sql -CREATE DICTIONARY range_dictionary -( - CountryID UInt64, - CountryKey String, - StartDate Date, - EndDate Date, - Tax Float64 DEFAULT 0.2 -) -PRIMARY KEY CountryID, CountryKey -SOURCE(CLICKHOUSE(TABLE 'date_table')) -LIFETIME(MIN 1 MAX 1000) -LAYOUT(COMPLEX_KEY_RANGE_HASHED()) -RANGE(MIN StartDate MAX EndDate); -``` - -### cache \{#cache\} - -字典存储在一个具有固定数量单元格的缓存中。这些单元格中保存着经常使用的元素。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -在查找字典时,会先搜索缓存。对于每个数据块,所有在缓存中未找到或已过期的键都会通过 `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)` 向源请求。接收到的数据会写入缓存。 - -如果在字典中未找到某个键,则会创建更新缓存的任务并将其加入更新队列。可以通过 `max_update_queue_size`、`update_queue_push_timeout_milliseconds`、`query_wait_timeout_milliseconds`、`max_threads_for_updates` 这些设置来控制更新队列的属性。 - -对于 cache 字典,可以为缓存中的数据设置过期[生命周期](#refreshing-dictionary-data-using-lifetime)。如果自数据加载到某个单元格后经过的时间超过了 `lifetime`,则该单元格中的值将不再使用,对应键变为过期状态。下次需要使用该键时会重新从源请求。可以通过设置 `allow_read_expired_keys` 来配置此行为。 - -这是所有字典存储方式中效率最低的一种。缓存性能在很大程度上依赖于正确的配置和具体使用场景。只有当命中率足够高时(建议 99% 及以上),cache 类型字典的表现才会较好。可以在 [system.dictionaries](../../operations/system-tables/dictionaries.md) 表中查看平均命中率。 - -如果将设置 `allow_read_expired_keys` 设为 1(默认值为 0),则字典可以支持异步更新。如果客户端请求的所有键都在缓存中,但其中部分已过期,则字典会将这些过期键返回给客户端,并同时从源异步请求更新它们。 - -为提升缓存性能,请使用带有 `LIMIT` 的子查询,并在外部调用使用该字典的函数。 - -支持所有类型的源。 - -设置示例: - -```xml - - - - 1000000000 - - 0 - - 100000 - - 10 - - 60000 - - 4 - - -``` - -或 - -```sql -LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) -``` - -设置足够大的缓存容量。你需要通过试验来选择合适的单元格数量: - -1. 先设置一个数值。 -2. 运行查询,直到缓存被完全占满。 -3. 通过 `system.dictionaries` 表查看内存消耗情况。 -4. 根据需要增加或减少单元格数量,直到达到目标内存消耗。 - -:::note -不要使用 ClickHouse 作为数据源,因为它在处理包含随机读取的查询时比较慢。 -::: - -### complex_key_cache \{#complex_key_cache\} - -此种存储类型用于复合[键](#dictionary-key-and-fields),类似于 `cache`。 - -### ssd_cache \{#ssd_cache\} - -类似于 `cache`,但将数据存储在 SSD 上,并将索引存储在 RAM 中。所有与更新队列相关的缓存字典设置也同样适用于 SSD 缓存字典。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -```xml - - - - 4096 - - 16777216 - - 131072 - - 1048576 - - /var/lib/clickhouse/user_files/test_dict - - -``` - -或 - -```sql -LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 - PATH '/var/lib/clickhouse/user_files/test_dict')) -``` - -### complex_key_ssd_cache \{#complex_key_ssd_cache\} - -这种存储类型用于复合[键](#dictionary-key-and-fields),与 `ssd_cache` 类似。 - -### direct \{#direct\} - -字典本身不驻留在内存中,在处理请求时会直接访问数据源。 - -字典键的类型为 [UInt64](../../sql-reference/data-types/int-uint.md)。 - -除本地文件外,支持所有类型的[源](#dictionary-sources)。 - -配置示例: - -```xml - - - -``` - -或 - -```sql -LAYOUT(DIRECT()) -``` - -### complex_key_direct \{#complex_key_direct\} - -这种存储类型用于复合 [keys](#dictionary-key-and-fields),类似于 `direct`。 - -### ip_trie \{#ip_trie\} - -此字典专为通过网络前缀查找 IP 地址而设计。它以 CIDR 表示法存储 IP 范围,并可快速确定给定 IP 所属的前缀(例如子网或 ASN 段),非常适合用于基于 IP 的检索,如地理定位或网络分类。 - - - -### 在 ClickHouse 开源版中使用正则表达式树字典 \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} - -在 ClickHouse 开源版中,正则表达式树字典是通过 `YAMLRegExpTree` 源定义的,该源会接收一个指向包含正则表达式树的 YAML 文件的路径。 - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -... -``` - -字典源 `YAMLRegExpTree` 表示正则表达式树的结构。例如: - -```yaml -- regexp: 'Linux/(\d+[\.\d]*).+tlinux' - name: 'TencentOS' - version: '\1' - -- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' - name: 'Android' - versions: - - regexp: '33/tclwebkit' - version: '13' - - regexp: '3[12]/tclwebkit' - version: '12' - - regexp: '30/tclwebkit' - version: '11' - - regexp: '29/tclwebkit' - version: '10' -``` - -该配置由一组正则表达式树节点组成。每个节点具有以下结构: - -* **regexp**:该节点的正则表达式。 -* **attributes**:用户自定义字典属性的列表。在本示例中,有两个属性:`name` 和 `version`。第一个节点定义了这两个属性。第二个节点只定义属性 `name`。属性 `version` 由第二个节点的子节点提供。 - * 属性的值可以包含**反向引用**,用于引用匹配正则表达式的捕获组。在示例中,第一个节点中属性 `version` 的值由对正则表达式中捕获组 `(\d+[\.\d]*)` 的反向引用 `\1` 组成。反向引用编号范围为 1 到 9,写作 `$1` 或 `\1`(对于编号 1)。在查询执行期间,反向引用会被相应的匹配捕获组替换。 -* **child nodes**:正则表达式树节点的子节点列表,每个子节点都有其自身的属性以及(可能存在的)子节点。字符串匹配以深度优先方式进行。如果某个字符串匹配某个正则表达式节点,则字典会检查它是否也匹配该节点的子节点。如果是,则会使用最深层匹配节点的属性。子节点的属性会覆盖父节点中同名属性。在 YAML 文件中,子节点的名称可以是任意的,例如上述示例中的 `versions`。 - -正则表达式树字典仅允许通过函数 `dictGet`、`dictGetOrDefault` 和 `dictGetAll` 进行访问。 - -示例: - -```sql -SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); -``` - -结果: - -```text -┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ -│ ('Android','12') │ -└─────────────────────────────────────────────────────────────────┘ -``` - -在这个示例中,我们首先在顶层的第二个节点中匹配正则表达式 `\d+/tclwebkit(?:\d+[\.\d]*)`。随后,字典继续向下查找其子节点,并发现该字符串同样匹配 `3[12]/tclwebkit`。因此,属性 `name` 的值为 `Android`(在第一层中定义),属性 `version` 的值为 `12`(在子节点中定义)。 - -借助功能强大的 YAML 配置文件,我们可以将正则树字典用作 User-Agent 字符串解析器。我们支持 [uap-core](https://github.com/ua-parser/uap-core),并在功能测试用例 [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) 中演示了其用法。 - -#### 收集属性值 \{#collecting-attribute-values\} - -有时,与其只返回叶子节点的值,不如返回所有匹配成功的多个正则表达式的值更有用。在这种情况下,可以使用专门的 [`dictGetAll`](../../sql-reference/functions/ext-dict-functions.md#dictGetAll) 函数。如果某个节点具有类型为 `T` 的属性值,`dictGetAll` 将返回一个包含零个或多个值的 `Array(T)`。 - -默认情况下,每个键返回的匹配数量没有上限。可以将一个上限作为可选的第四个参数传递给 `dictGetAll`。数组按*拓扑顺序*填充,这意味着子节点先于父节点出现,兄弟节点则按照源中的顺序排列。 - -示例: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - tag String, - topological_index Int64, - captured Nullable(String), - parent String -) -PRIMARY KEY(regexp) -SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) -LAYOUT(regexp_tree) -LIFETIME(0) -``` - -```yaml -# /var/lib/clickhouse/user_files/regexp_tree.yaml {#varlibclickhouseuser_filesregexp_treeyaml} -- regexp: 'clickhouse\.com' - tag: 'ClickHouse' - topological_index: 1 - paths: - - regexp: 'clickhouse\.com/docs(.*)' - tag: 'ClickHouse 文档' - topological_index: 0 - captured: '\1' - parent: 'ClickHouse' - -- regexp: '/docs(/|$)' - tag: '文档' - topological_index: 2 - -- regexp: 'github.com' - tag: 'GitHub' - topological_index: 3 - captured: 'NULL' -``` - -```sql -CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; -INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); -SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; -``` - -结果: - -```text -┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ -│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ -│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ -│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ -└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ -``` - -#### 匹配模式 \{#matching-modes\} - -可以通过某些字典 SETTING 参数来修改模式匹配行为: - -- `regexp_dict_flag_case_insensitive`:使用大小写不敏感匹配(默认值为 `false`)。可以在单个表达式中使用 `(?i)` 和 `(?-i)` 覆盖此设置。 -- `regexp_dict_flag_dotall`:允许 `.` 匹配换行符(默认值为 `false`)。 - -### 在 ClickHouse Cloud 中使用正则表达式树字典 \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} - -上述使用的 `YAMLRegExpTree` 源在 ClickHouse 开源版本中可用,但在 ClickHouse Cloud 中不可用。要在 ClickHouse Cloud 中使用正则表达式树字典,首先需要在本地运行的 ClickHouse 开源版本中基于一个 YAML 文件创建正则表达式树字典,然后使用 `dictionary` 表函数配合 [INTO OUTFILE](../statements/select/into-outfile.md) 子句将该字典导出为 CSV 文件。 - -```sql -SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') -``` - -CSV 文件的内容如下: - -```text -1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" -2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" -3,2,"33/tclwebkit","['version']","['13']" -4,2,"3[12]/tclwebkit","['version']","['12']" -5,2,"3[12]/tclwebkit","['version']","['11']" -6,2,"3[12]/tclwebkit","['version']","['10']" -``` - -导出文件的 schema 如下所示: - -* `id UInt64`:RegexpTree 节点的 id。 -* `parent_id UInt64`:该节点父节点的 id。 -* `regexp String`:正则表达式字符串。 -* `keys Array(String)`:用户自定义属性的名称。 -* `values Array(String)`:用户自定义属性的值。 - -要在 ClickHouse Cloud 中创建字典,首先根据以下表结构创建一个名为 `regexp_dictionary_source_table` 的表: - -```sql -CREATE TABLE regexp_dictionary_source_table -( - id UInt64, - parent_id UInt64, - regexp String, - keys Array(String), - values Array(String) -) ENGINE=Memory; -``` - -然后按如下方式更新本地 CSV: - -```bash -clickhouse client \ - --host MY_HOST \ - --secure \ - --password MY_PASSWORD \ - --query " - INSERT INTO regexp_dictionary_source_table - SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') - FORMAT CSV" < regexp_dict.csv -``` - -你可以参阅 [Insert Local Files](/integrations/data-ingestion/insert-local-files) 以获取更多详细信息。完成源表初始化后,我们可以基于该源表创建一个 RegexpTree: - -```sql -CREATE DICTIONARY regexp_dict -( - regexp String, - name String, - version String -PRIMARY KEY(regexp) -SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) -LIFETIME(0) -LAYOUT(regexp_tree); -``` - -## 嵌入式字典 \{#embedded-dictionaries\} - - - -ClickHouse 包含一个用于处理地理基础库(geobase)的内置功能。 - -这使你可以: - -- 使用区域 ID 获取其在所需语言中的名称。 -- 使用区域 ID 获取其所属城市、地区、联邦区、国家或大洲的 ID。 -- 检查一个区域是否属于另一个区域。 -- 获取上级区域的链条。 - -所有函数都支持“跨地域性”(translocality),即能够同时使用不同的区域归属视角。有关更多信息,参见“用于处理网站分析字典的函数”一节。 - -在默认软件包中,内部字典是禁用的。 -要启用它们,请在服务器配置文件中取消注释 `path_to_regions_hierarchy_file` 和 `path_to_regions_names_files` 参数。 - -地理库从文本文件中加载。 - -将 `regions_hierarchy*.txt` 文件放入 `path_to_regions_hierarchy_file` 指定的目录中。该配置参数必须包含指向 `regions_hierarchy.txt` 文件(默认区域层级结构)的路径,其他文件(如 `regions_hierarchy_ua.txt`)必须位于同一目录中。 - -将 `regions_names_*.txt` 文件放在 `path_to_regions_names_files` 指定的目录中。 - -你也可以自行创建这些文件。文件格式如下: - -`regions_hierarchy*.txt`:TabSeparated(制表符分隔,无表头),列为: - -- 区域 ID(`UInt32`) -- 上级区域 ID(`UInt32`) -- 区域类型(`UInt8`):1 - 大洲,3 - 国家,4 - 联邦区,5 - 地区,6 - 城市;其他类型没有取值 -- 人口(`UInt32`)—— 可选列 - -`regions_names_*.txt`:TabSeparated(制表符分隔,无表头),列为: - -- 区域 ID(`UInt32`) -- 区域名称(`String`)—— 不能包含制表符或换行符,即使是转义的也不行。 - -在 RAM 中使用扁平数组进行存储。出于这个原因,ID 不应超过一百万。 - -字典可以在不重启服务器的情况下更新,但可用字典的集合不会发生变化。 -为实现更新,会检查文件的修改时间。如果文件发生更改,则更新字典。 -检查更改的时间间隔通过 `builtin_dictionaries_reload_interval` 参数进行配置。 -字典更新(首次使用时的加载除外)不会阻塞查询。在更新期间,查询会使用旧版本的字典。如果在更新期间出现错误,该错误会被写入服务器日志,查询将继续使用旧版本的字典。 - -建议定期使用最新的地理库来更新字典。在一次更新过程中,生成新文件并将其写入单独的位置。当一切准备就绪后,将它们重命名为服务器正在使用的文件名。 - -还提供了用于处理操作系统标识符和搜索引擎的函数,但不建议使用它们。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md index b01b2a1a094..6f4de6dabe5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/arithmetic-functions.md @@ -954,6 +954,39 @@ SELECT modulo(5, 2) 1 ``` +## moduloLegacy \{#moduloLegacy\} + +引入版本:v1.1 + +计算除法的余数。这是使用 C++ `%` 运算符的遗留取模实现,对于负参数可能返回负结果。此函数用于与旧的表分区逻辑保持向后兼容。对于常规行为,请使用 `modulo` 或 `positiveModulo`。 + +**语法** + +```sql +moduloLegacy(a, b) +``` + +**参数** + +* `a` — 被除数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `b` — 除数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) + +**返回值** + +返回除法余数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) + +**示例** + +**基本用法** + +```sql title=Query +SELECT moduloLegacy(10, 3) +``` + +```response title=Response +1 +``` + ## moduloOrNull \{#moduloOrNull\} 引入版本:v25.5 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md index cd49c4bc82a..01b93e093d6 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/array-functions.md @@ -4753,6 +4753,76 @@ SELECT indexOfAssumeSorted([1, 3, 3, 3, 4, 4, 5], 4) ``` +## kql_array_sort_asc \{#kql_array_sort_asc\} + +引入于:v23.10 + +按升序对一个或多个数组进行排序。第一个数组会被排序,后续数组会根据第一个数组的排序结果进行重排。Null 值会被放在末尾。此函数用于与 KQL(Kusto Query Language)保持兼容。 + +**语法** + +```sql +kql_array_sort_asc(array1[, array2, ..., nulls_last]) +``` + +**参数** + +* `array1` — 要排序的数组。[`Array(T)`](/sql-reference/data-types/array) +* `array2` — 可选。需要根据 `array1` 的排序结果一同重排的附加数组。[`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — 可选。布尔值,指示是否应将 null 放在最后。默认值为 true。[`UInt8`](/sql-reference/data-types/int-uint) + +**返回值** + +返回按升序排序后的数组组成的元组。[`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**示例** + +**基本用法** + +```sql title=Query +SELECT kql_array_sort_asc([3, 1, 2]) +``` + +```response title=Response +([1, 2, 3]) +``` + + +## kql_array_sort_desc \{#kql_array_sort_desc\} + +引入版本:v23.10 + +按降序对一个或多个数组进行排序。第一个数组会被排序,后续数组会根据第一个数组排序后的顺序进行重排。NULL 值会被放在末尾。这是一个用于兼容 KQL(Kusto Query Language)的函数。 + +**语法** + +```sql +kql_array_sort_desc(array1[, array2, ..., nulls_last]) +``` + +**参数** + +* `array1` — 要排序的数组。[`Array(T)`](/sql-reference/data-types/array) +* `array2` — 可选的额外数组,将根据 `array1` 的排序顺序进行重排。[`Array(T)`](/sql-reference/data-types/array) +* `nulls_last` — 可选布尔值,指示是否应将 `null` 排在最后,默认值为 `true`。[`UInt8`](/sql-reference/data-types/int-uint) + +**返回值** + +返回按降序排序的数组的元组。[`Tuple(Array, ...)`](/sql-reference/data-types/tuple) + +**示例** + +**基本用法** + +```sql title=Query +SELECT kql_array_sort_desc([3, 1, 2]) +``` + +```response title=Response +([3, 2, 1]) +``` + + ## length \{#length\} 自 v1.1 起引入 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md index fec009de4a0..3d692585ef1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/comparison-functions.md @@ -72,6 +72,267 @@ SELECT 1 = 1, 1 = 2; └──────────────┴──────────────┘ ``` +## globalIn \{#globalIn\} + +自 v1.1 起引入 + +与 `in` 相同,但在分布式查询中使用全局 Set 分发机制。该 Set 会被发送到所有远程服务器。 + +**语法** + +```sql +globalIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 一组值的 Set。 + +**返回值** + +如果 x 在 set 中则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalInIgnoreSet \{#globalInIgnoreSet\} + +引入版本:v1.1 + +与 `in` 相同,但在分布式查询中使用全局 Set 分发。该 Set 会被发送到所有远程服务器。 +这是 IgnoreSet 的变体,用于在不创建 Set 的情况下进行类型分析。 + +**语法** + +```sql +globalIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。- `set` — 值的 Set。 + +**返回值** + +如果 x 在 Set 中则返回 1,否则返回 0。 [`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotIn \{#globalNotIn\} + +引入版本:v1.1 + +与 `notIn` 相同,但在分布式查询中使用全局 Set 分发机制。该 Set 会被发送到所有远程服务器。 + +**语法** + +```sql +globalNotIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 +* `set` — Set 类型的值集合。 + +**返回值** + +如果 x 不在该 Set 中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotInIgnoreSet \{#globalNotInIgnoreSet\} + +引入版本:v1.1 + +与 `notIn` 相同,但在分布式查询中对 Set 使用全局分发机制。Set 会被发送到所有远程服务器。 +这是用于类型分析且无需创建 Set 的 IgnoreSet 变体。 + +**语法** + +```sql +globalNotIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的集合。 + +**返回值** + +如果 x 不在该集合中,返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## globalNotNullIn \{#globalNotNullIn\} + +引入版本:v1.1 + +与 `notNullIn` 相同,但在分布式查询中使用全局 Set 进行分发。该 Set 会被发送到所有远程服务器。 + +**语法** + +```sql +globalNotNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。- `set` — 值的集合。 + +**返回值** + +如果 x 不在该集合中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNotNullInIgnoreSet \{#globalNotNullInIgnoreSet\} + +引入版本:v1.1 + +与 `notNullIn` 相同,但在分布式查询中使用全局 Set 进行分发。该 Set 会被发送到所有远程服务器。 +这是 IgnoreSet 的变体,用于在不创建 Set 的情况下进行类型分析。 + +**语法** + +```sql +globalNotNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set。 + +**返回值** + +若 x 不在 Set 中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## globalNullIn \{#globalNullIn\} + +引入版本:v1.1 + +与 `nullIn` 相同,但在分布式查询中使用全局 Set 分发。该 Set 会被发送到所有远程服务器。 + +**语法** + +```sql +globalNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set。 + +**返回值** + +如果 x 在 Set 中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## globalNullInIgnoreSet \{#globalNullInIgnoreSet\} + +引入于:v1.1 + +与 `nullIn` 相同,但在分布式查询中采用全局 Set 分发策略。该 Set 会被发送到所有远程服务器。 +这是用于类型分析且无需实际创建 Set 的 IgnoreSet 变体。 + +**语法** + +```sql +globalNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。- `set` — 值的 Set。 + +**返回值** + +如果 x 在 Set 中则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + ## greater \{#greater\} 自 v1.1 起引入 @@ -143,6 +404,71 @@ SELECT 2 >= 1, 2 >= 2, 1 >= 2; └───────────────────────┴───────────────────────┴───────────────────────┘ ``` +## in \{#in\} + +引入版本:v1.1 + +检查左操作数是否属于右操作数的 Set。若属于则返回 1,否则返回 0。左操作数中的 NULL 值会被忽略(视为不在该 Set 中)。 + +**语法** + +```sql +in(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set 集合。 + +**返回值** + +如果 x 在集合中则返回 1,否则返回 0。 [`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## inIgnoreSet \{#inIgnoreSet\} + +引入于:v1.1 + +检查左操作数是否是右操作数 Set 的成员。如果是,则返回 1,否则返回 0。左操作数中的 NULL 值会被跳过(视为不在该 Set 中)。 +这是用于类型分析且无需创建 Set 的 IgnoreSet 变体。 + +**语法** + +```sql +in(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set(值的集合)。 + +**返回值** + +如果 x 在该集合中则返回 1,否则返回 0。 [`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 1 IN (1, 2, 3) +``` + +```response title=Response +1 +``` + ## isDistinctFrom \{#isDistinctFrom\} 引入版本:v25.11 @@ -339,4 +665,201 @@ SELECT 1 != 2, 1 != 1; └─────────────────┴─────────────────┘ ``` +## notIn \{#notIn\} + +引入版本:v1.1 + +检查左侧操作数是否 **不** 是右侧操作数 Set 的成员。如果不在该 Set 中则返回 1,否则返回 0。左侧操作数中的 NULL 值会被忽略。 + +**语法** + +```sql +notIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set 集合。 + +**返回值** + +如果 x 不在 Set 中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基础用法** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notInIgnoreSet \{#notInIgnoreSet\} + +引入版本:v1.1 + +检查左操作数是否 *不* 是右操作数 Set 的成员。如果不在该 Set 中则返回 1,否则返回 0。左操作数中的 NULL 值会被跳过。 +这是 IgnoreSet 的一种变体,用于在不创建 Set 的情况下进行类型分析。 + +**语法** + +```sql +notIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的集合。 + +**返回值** + +如果 x 不在该集合中,则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT 4 NOT IN (1, 2, 3) +``` + +```response title=Response +1 +``` + +## notNullIn \{#notNullIn\} + +引入版本:v1.1 + +检查左操作数是否 **不是** 右操作数 Set 的成员。与 `notIn` 不同,NULL 值不会被忽略:NULL 会与 Set 中的元素进行比较,且 NULL = NULL 的结果为 true。 + +**语法** + +```sql +notNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 +* `set` — 值的 Set 集合。 + +**返回值** + +如果 x 不在 Set 中,则返回 1;否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## notNullInIgnoreSet \{#notNullInIgnoreSet\} + +引入于:v1.1 + +检查左操作数是否 **不** 是右操作数集合的成员。与 `notIn` 不同,NULL 值不会被忽略:会将 NULL 与集合元素进行比较,且 NULL = NULL 的结果为 true。 +这是 IgnoreSet 的变体,用于在不创建 Set 的情况下进行类型分析。 + +**语法** + +```sql +notNullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 +* `set` — 值的 Set。 + +**返回值** + +如果 `x` 不在 `set` 中则返回 1,否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT notNullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +0 +``` + +## nullIn \{#nullIn\} + +自 v1.1 版本引入 + +检查左操作数是否是右操作数 Set 的成员。与 `in` 不同,NULL 值不会被跳过:会将 NULL 与 Set 中的元素进行比较,并且 NULL = NULL 的结果为 true。 + +**语法** + +```sql +nullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的 Set。 + +**返回值** + +如果 x 在 Set 中则返回 1,否则返回 0。 [`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + +## nullInIgnoreSet \{#nullInIgnoreSet\} + +引入版本:v1.1 + +检查左操作数是否是右操作数集合的成员。与 `in` 不同,NULL 值不会被跳过:NULL 会与集合元素进行比较,并且 NULL = NULL 的结果为 true。 +这是 IgnoreSet 的一个变体,用于在不创建集合的情况下进行类型分析。 + +**语法** + +```sql +nullIn(x, set) +``` + +**参数** + +* `x` — 要检查的值。 - `set` — 值的集合。 + +**返回值** + +如果 x 在集合中,则返回 1;否则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**基本用法** + +```sql title=Query +SELECT nullIn(NULL, tuple(1, NULL)) +``` + +```response title=Response +1 +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md index 3cf5eb13910..8fecc887acb 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/embedded-dict-functions.md @@ -14,7 +14,7 @@ doc_type: 'reference' 因此,本节中展示的示例在 [ClickHouse Fiddle](https://fiddle.clickhouse.com/) 中,以及在快速发布版本和生产环境中的部署中,默认都会抛出异常,除非事先完成相应配置。 ::: -关于如何创建参考列表的更多信息,请参见章节 ["Dictionaries"](../dictionaries#embedded-dictionaries)。 +关于如何创建参考列表的更多信息,请参见章节 ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries)。 ## 多个地理库(Geobase) \{#multiple-geobases\} @@ -39,7 +39,8 @@ regionToCountry(RegionID, '') – Uses the default dictionary: /opt/geo/regions_ regionToCountry(RegionID, 'ua') – Uses the dictionary for the 'ua' key: /opt/geo/regions_hierarchy_ua.txt ``` -### regionToName {#regiontoname} + +### regionToName 接受一个区域 ID 和 geobase,并返回一个字符串,该字符串为对应语言中该区域的名称。如果具有指定 ID 的区域不存在,则返回空字符串。 @@ -79,7 +80,8 @@ SELECT regionToName(number::UInt32,'en') FROM numbers(0,5); └────────────────────────────────────────────┘ ``` -### regionToCity {#regiontocity} + +### regionToCity 从 geobase 接收一个区域 ID。如果该区域本身是城市或隶属于某个城市,则返回相应城市的区域 ID;否则返回 0。 @@ -127,7 +129,8 @@ SELECT regionToName(number::UInt32, 'en'), regionToCity(number::UInt32) AS id, r └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────┘ ``` -### regionToArea {#regiontoarea} + +### regionToArea 将区域转换为地区(在 geobase 中为类型 5)。在其他方面,该函数与 ['regionToCity'](#regiontocity) 完全相同。 @@ -139,13 +142,13 @@ regionToArea(id [, geobase]) **参数** -* `id` — 来自 geobase 的区域 ID。[UInt32](../data-types/int-uint)。 +* `id` — geobase 中的区域 ID。[UInt32](../data-types/int-uint)。 * `geobase` — 字典键。参见 [Multiple Geobases](#multiple-geobases)。[String](../data-types/string)。可选。 **返回值** -* 如果存在,则为相应区域的区域 ID。[UInt32](../data-types/int-uint)。 -* 如果不存在,则为 0。 +* 对应联邦区的区域 ID(若存在)。[UInt32](../data-types/int-uint)。 +* 否则为 0。 **示例** @@ -162,24 +165,25 @@ LIMIT 15 ```text ┌─regionToName(regionToArea(toUInt32(number), \'ua\'))─┐ │ │ -│ 莫斯科及莫斯科州 │ -│ 圣彼得堡及列宁格勒州 │ -│ 别尔哥罗德州 │ -│ 伊万诺沃州 │ -│ 卡卢加州 │ -│ 科斯特罗马州 │ -│ 库尔斯克州 │ -│ 利佩茨克州 │ -│ 奥廖尔州 │ -│ 梁赞州 │ -│ 斯摩棱斯克州 │ -│ 坦波夫州 │ -│ 特维尔州 │ -│ 图拉州 │ +│ Moscow and Moscow region │ +│ St. Petersburg and Leningrad region │ +│ Belgorod region │ +│ Ivanovsk region │ +│ Kaluga region │ +│ Kostroma region │ +│ Kursk region │ +│ Lipetsk region │ +│ Orlov region │ +│ Ryazan region │ +│ Smolensk region │ +│ Tambov region │ +│ Tver region │ +│ Tula region │ └──────────────────────────────────────────────────────┘ ``` -### regionToDistrict {#regiontodistrict} + +### regionToDistrict 将区域转换为联邦区(在 geobase 中为类型 4)。在其他方面,该函数与 'regionToCity' 完全相同。 @@ -196,8 +200,8 @@ regionToDistrict(id [, geobase]) **返回值** -* 对应城市的区域 ID(若存在)。[UInt32](../data-types/int-uint)。 -* 否则为 0。 +* 如果存在,则为对应城市的区域 ID。[UInt32](../data-types/int-uint)。 +* 如果不存在,则为 0。 **示例** @@ -214,26 +218,27 @@ LIMIT 15 ```text ┌─regionToName(regionToDistrict(toUInt32(number), \'ua\'))─┐ │ │ -│ 中央联邦区 │ -│ 西北联邦区 │ -│ 南部联邦区 │ -│ 北高加索联邦区 │ -│ 伏尔加联邦区 │ -│ 乌拉尔联邦区 │ -│ 西伯利亚联邦区 │ -│ 远东联邦区 │ -│ 苏格兰 │ -│ 法罗群岛 │ -│ 佛兰德大区 │ -│ 布鲁塞尔首都大区 │ -│ 瓦隆大区 │ -│ 波斯尼亚和黑塞哥维那联邦 │ +│ Central federal district │ +│ Northwest federal district │ +│ South federal district │ +│ North Caucases federal district │ +│ Privolga federal district │ +│ Ural federal district │ +│ Siberian federal district │ +│ Far East federal district │ +│ Scotland │ +│ Faroe Islands │ +│ Flemish region │ +│ Brussels capital region │ +│ Wallonia │ +│ Federation of Bosnia and Herzegovina │ └──────────────────────────────────────────────────────────┘ ``` -### regionToCountry {#regiontocountry} -将区域转换为国家(geobase 中的类型 3)。在其他方面,该函数与 `regionToCity` 相同。 +### regionToCountry + +将区域转换为国家/地区(在 geobase 中类型为 3)。在其他方面,此函数与 `regionToCity` 完全相同。 **语法** @@ -243,12 +248,12 @@ regionToCountry(id [, geobase]) **参数** -* `id` — 来自地理库(geobase)的区域 ID。[UInt32](../data-types/int-uint)。 -* `geobase` — 字典键。参见 [多个地理库](#multiple-geobases)。[String](../data-types/string)。可选。 +* `id` — 来自 geobase 的地域 ID。[UInt32](../data-types/int-uint)。 +* `geobase` — 字典键。参见 [Multiple Geobases](#multiple-geobases)。[String](../data-types/string)。可选。 **返回值** -* 对应国家/地区的区域 ID(如果存在)。[UInt32](../data-types/int-uint)。 +* 对应国家/地区的地域 ID(如果存在)。[UInt32](../data-types/int-uint)。 * 如果不存在,则为 0。 **示例** @@ -279,7 +284,8 @@ SELECT regionToName(number::UInt32, 'en'), regionToCountry(number::UInt32) AS id └────────────────────────────────────────────┴────┴─────────────────────────────────────────────────────────────┘ ``` -### regionToContinent {#regiontocontinent} + +### regionToContinent 将区域转换为大洲(在 geobase 中类型为 1)。在其他方面,此函数与 `regionToCity` 完全相同。 @@ -291,12 +297,12 @@ regionToContinent(id [, geobase]) **参数** -* `id` — 来自 geobase 的地域 ID。[UInt32](../data-types/int-uint)。 -* `geobase` — 字典键。参见 [Multiple Geobases](#multiple-geobases)。[String](../data-types/string)。可选。 +* `id` — 来自地理库(geobase)的区域 ID。[UInt32](../data-types/int-uint)。 +* `geobase` — 字典键。参见 [多个地理库](#multiple-geobases)。[String](../data-types/string)。可选。 **返回值** -* 对应大洲的地域 ID(如果存在)。[UInt32](../data-types/int-uint)。 +* 对应大洲的区域 ID(如果存在)。[UInt32](../data-types/int-uint)。 * 如果不存在,则为 0。 **示例** @@ -312,22 +318,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToContinent(number::UInt32) AS ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ 世界 │ 0 │ │ -│ 美国 │ 10 │ North 美洲 │ -│ 科罗拉多州 │ 10 │ North 美洲 │ -│ 博尔德县 │ 10 │ North 美洲 │ -│ 博尔德 │ 10 │ North 美洲 │ -│ 中国 │ 12 │ 亚洲 │ -│ 四川省 │ 12 │ 亚洲 │ -│ 成都市 │ 12 │ 亚洲 │ -│ 美洲 │ 9 │ 美洲 │ -│ North 美洲 │ 10 │ North 美洲 │ -│ 欧亚大陆 │ 11 │ 欧亚大陆 │ -│ 亚洲 │ 12 │ 亚洲 │ +│ World │ 0 │ │ +│ USA │ 10 │ North America │ +│ Colorado │ 10 │ North America │ +│ Boulder County │ 10 │ North America │ +│ Boulder │ 10 │ North America │ +│ China │ 12 │ Asia │ +│ Sichuan │ 12 │ Asia │ +│ Chengdu │ 12 │ Asia │ +│ America │ 9 │ America │ +│ North America │ 10 │ North America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 12 │ Asia │ └────────────────────────────────────────────┴────┴───────────────────────────────────────────────────────────────┘ ``` -### regionToTopContinent {#regiontotopcontinent} + +### regionToTopContinent 查找指定区域在层级结构中的最上级洲。 @@ -360,24 +367,25 @@ SELECT regionToName(number::UInt32, 'en'), regionToTopContinent(number::UInt32) ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─id─┬─regionToName(regionToTopContinent(CAST(number, 'UInt32')), 'en')─┐ │ │ 0 │ │ -│ 世界 │ 0 │ │ -│ 美国 │ 9 │ 美洲 │ -│ 科罗拉多州 │ 9 │ 美洲 │ -│ 博尔德县 │ 9 │ 美洲 │ -│ 博尔德市 │ 9 │ 美洲 │ -│ 中国 │ 11 │ 欧亚大陆 │ -│ 四川省 │ 11 │ 欧亚大陆 │ -│ 成都市 │ 11 │ 欧亚大陆 │ -│ 美洲 │ 9 │ 美洲 │ -│ North 美洲 │ 9 │ 美洲 │ -│ 欧亚大陆 │ 11 │ 欧亚大陆 │ -│ 亚洲 │ 11 │ 欧亚大陆 │ +│ World │ 0 │ │ +│ USA │ 9 │ America │ +│ Colorado │ 9 │ America │ +│ Boulder County │ 9 │ America │ +│ Boulder │ 9 │ America │ +│ China │ 11 │ Eurasia │ +│ Sichuan │ 11 │ Eurasia │ +│ Chengdu │ 11 │ Eurasia │ +│ America │ 9 │ America │ +│ North America │ 9 │ America │ +│ Eurasia │ 11 │ Eurasia │ +│ Asia │ 11 │ Eurasia │ └────────────────────────────────────────────┴────┴──────────────────────────────────────────────────────────────────┘ ``` -### regionToPopulation {#regiontopopulation} -获取某个区域的人口数。人口数据可以记录在 `geobase` 文件中。参见 ["Dictionaries"](../dictionaries#embedded-dictionaries) 一节。若该区域未记录人口数,则返回 0。在 `geobase` 中,人口可能只记录在子区域,而未记录在父区域。 +### regionToPopulation + +获取某个区域的人口数。人口数据可以记录在 `geobase` 文件中。参见 ["Dictionaries"](../statements/create/dictionary/embedded#embedded-dictionaries) 一节。若该区域未记录人口数,则返回 0。在 `geobase` 中,人口可能只记录在子区域,而未记录在父区域。 **语法** @@ -408,22 +416,23 @@ SELECT regionToName(number::UInt32, 'en'), regionToPopulation(number::UInt32) AS ```text ┌─regionToName(CAST(number, 'UInt32'), 'en')─┬─population─┐ │ │ 0 │ -│ 世界 │ 4294967295 │ -│ 美国 │ 330000000 │ -│ 科罗拉多州 │ 5700000 │ -│ 博尔德县 │ 330000 │ -│ 博尔德市 │ 100000 │ -│ 中国 │ 1500000000 │ -│ 四川省 │ 83000000 │ -│ 成都市 │ 20000000 │ -│ 美洲 │ 1000000000 │ -│ 北美洲 │ 600000000 │ -│ 欧亚大陆 │ 4294967295 │ -│ 亚洲 │ 4294967295 │ +│ World │ 4294967295 │ +│ USA │ 330000000 │ +│ Colorado │ 5700000 │ +│ Boulder County │ 330000 │ +│ Boulder │ 100000 │ +│ China │ 1500000000 │ +│ Sichuan │ 83000000 │ +│ Chengdu │ 20000000 │ +│ America │ 1000000000 │ +│ North America │ 600000000 │ +│ Eurasia │ 4294967295 │ +│ Asia │ 4294967295 │ └────────────────────────────────────────────┴────────────┘ ``` -### regionIn {#regionin} + +### regionIn 检查 `lhs` 区域是否包含于 `rhs` 区域中。如果包含则返回 UInt8 类型的数值 1,否则返回 0。 @@ -459,21 +468,22 @@ SELECT regionToName(n1.number::UInt32, 'en') || (regionIn(n1.number::UInt32, n2. 结果: ```text -World 包含在 World 中 -World 不包含在 USA 中 -World 不包含在 Colorado 中 -World 不包含在 Boulder County 中 -World 不包含在 Boulder 中 -USA 包含在 World 中 -USA 包含在 USA 中 -USA 不包含在 Colorado 中 -USA 不包含在 Boulder County 中 -USA 不包含在 Boulder 中 +World is in World +World is not in USA +World is not in Colorado +World is not in Boulder County +World is not in Boulder +USA is in World +USA is in USA +USA is not in Colorado +USA is not in Boulder County +USA is not in Boulder ``` -### regionHierarchy {#regionhierarchy} -接受一个 UInt32 类型的数值——来自 geobase 的区域 ID。返回一个由该区域及其所有上级区域 ID 组成的数组。 +### regionHierarchy + +接受一个 UInt32 类型的数值——来自 geobase 的区域 ID。返回一个由传入的区域及其所有上级区域组成的数组。 **语法** @@ -503,17 +513,17 @@ SELECT regionHierarchy(number::UInt32) AS arr, arrayMap(id -> regionToName(id, ' ```text ┌─arr────────────┬─arrayMap(lambda(tuple(id), regionToName(id, 'en')), regionHierarchy(CAST(number, 'UInt32')))─┐ │ [] │ [] │ -│ [1] │ ['世界'] │ -│ [2,10,9,1] │ ['美国','北美','美洲','世界'] │ -│ [3,2,10,9,1] │ ['科罗拉多州','美国','北美','美洲','世界'] │ -│ [4,3,2,10,9,1] │ ['博尔德县','科罗拉多州','美国','北美','美洲','世界'] │ +│ [1] │ ['World'] │ +│ [2,10,9,1] │ ['USA','North America','America','World'] │ +│ [3,2,10,9,1] │ ['Colorado','USA','North America','America','World'] │ +│ [4,3,2,10,9,1] │ ['Boulder County','Colorado','USA','North America','America','World'] │ └────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────┘ ``` {/* - 下面标签的内部内容会在文档框架构建期间, - 被替换为由 system.functions 生成的文档。请不要修改或移除这些标签。 - 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 下方标签内的内容会在文档框架构建时, + 被替换为由 system.functions 生成的文档。请不要修改或移除这些标签。 + 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md index 0ca220ffc17..774bffa7752 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/ext-dict-functions.md @@ -9,10 +9,10 @@ doc_type: 'reference' # 用于处理字典的函数 \{#functions-for-working-with-dictionaries\} :::note -对于使用 [DDL 查询](../../sql-reference/statements/create/dictionary.md) 创建的字典,`dict_name` 参数必须完整写为 `.`。否则,将使用当前数据库。 +对于使用 [DDL 查询](../statements/create/dictionary/index.md) 创建的字典,`dict_name` 参数必须完整写为 `.`。否则,将使用当前数据库。 ::: -有关连接和配置字典的更多信息,请参阅 [Dictionaries](../../sql-reference/dictionaries/index.md)。 +有关连接和配置字典的更多信息,请参阅 [Dictionaries](../statements/create/dictionary/index.md)。 ## 示例字典 \{#example-dictionary\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md index a05bac1f21d..48e51b8a965 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/json-functions.md @@ -1093,6 +1093,40 @@ SELECT JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b', 4) = 0; ``` +## JSONKey \{#JSONKey\} + +引入版本:v20.1 + +按索引(从 1 开始计数)返回 JSON 对象字段的键名。如果 JSON 以字符串形式传入,函数会先对其进行解析。第二个参数是 JSON 路径,用于在嵌套对象中导航。该函数返回指定位置上的键名。 + +**语法** + +```sql +JSONKey(json[, indices_or_keys, ...]) +``` + +**参数** + +* `json` — 要解析的 JSON 字符串。[`String`](/sql-reference/data-types/string) +* `indices_or_keys` — 可选的索引或键列表,用于指定到嵌套元素的路径。每个参数可以是字符串(按键名访问)或整数(按从 1 开始的索引访问)。[`String`](/sql-reference/data-types/string) 或 [`Int*`](/sql-reference/data-types/int-uint) + +**返回值** + +返回 JSON 对象中指定位置的键名。[`String`](/sql-reference/data-types/string) + +**示例** + +**用法示例** + +```sql title=Query +SELECT JSONKey('{"a": "hello", "b": [-100, 200.0, 300]}', 1); +``` + +```response title=Response +a +``` + + ## JSONLength \{#JSONLength\} 自 v20.1 版本起引入 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md index ebf721e2e2c..5e193d9cc5a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/math-functions.md @@ -9,9 +9,9 @@ doc_type: 'reference' # 数学函数 \{#mathematical-functions\} {/* - 下方标签的内部内容会在文档框架构建期间,被 system.functions 生成的文档所替换。 - 请不要修改或删除这些标签。 - 请参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 下面标签内部的内容会在文档框架构建时被 + 根据 system.functions 生成的文档所替换。请不要修改或删除这些标签。 + 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } @@ -30,15 +30,15 @@ acos(x) **参数** -* `x` — 要计算其反余弦的值,其类型可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其反双曲余弦的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回 x 的反余弦,类型为 [`Float*`](/sql-reference/data-types/float) +返回 x 的反双曲余弦值,类型为 [`Float*`](/sql-reference/data-types/float) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT acos(0.5); @@ -52,7 +52,7 @@ SELECT acos(0.5); 自 v20.12 版本引入 -返回反双曲余弦值。 +返回反双曲余弦函数的值。 **语法** @@ -62,7 +62,7 @@ acosh(x) **参数** -* `x` — 角度的双曲余弦值。取值范围:`1 ≤ x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 某角的双曲余弦值。取值范围:`1 ≤ x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** @@ -82,10 +82,10 @@ SELECT acosh(1) ## asin \{#asin\} -自 v1.1 引入 +在 v1.1 中引入 计算给定参数的反正弦值。 -对于范围在 `[-1, 1]` 内的参数,返回值位于 `[-pi() / 2, pi() / 2]` 范围内。 +对于范围在 `[-1, 1]` 内的参数,返回值范围为 `[-pi() / 2, pi() / 2]`。 **语法** @@ -95,15 +95,15 @@ asin(x) **参数** -* `x` — 要求反正弦的参数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) +* `x` — 用于计算反双曲正弦的参数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) **返回值** -返回给定参数 `x` 的反正弦值 [`Float64`](/sql-reference/data-types/float) +返回给定参数 `x` 的反双曲正弦值 [`Float64`](/sql-reference/data-types/float) **示例** -**反函数** +**逆函数** ```sql title=Query SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1)) @@ -123,7 +123,7 @@ SELECT toTypeName(asin(1.0::Float32)) Float64 ``` -**NaN(非数字)** +**nan** ```sql title=Query SELECT asin(1.1), asin(-2), asin(inf), asin(nan) @@ -135,9 +135,9 @@ nan nan nan nan ## asinh \{#asinh\} -引入版本:v20.12 +自 v20.12 起可用 -返回反双曲正弦函数的值。 +返回反双曲正弦值。 **语法** @@ -147,11 +147,11 @@ asinh(x) **参数** -* `x` — 某一角度的双曲正弦值。取值范围:`-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 角度的双曲正弦值。取值范围:`-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回以弧度表示的角度。取值范围:`-∞ < asinh(x) < +∞`。[`Float64`](/sql-reference/data-types/float) +返回以弧度表示的角度值。取值范围:`-∞ < asinh(x) < +∞`。[`Float64`](/sql-reference/data-types/float) **示例** @@ -167,7 +167,7 @@ SELECT asinh(0) ## atan \{#atan\} -自 v1.1 起引入 +自 v1.1 引入 返回参数的反正切值。 @@ -179,15 +179,15 @@ atan(x) **参数** -* `x` — 要计算反正切的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其反正切的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回 `x` 的反正切。[`Float*`](/sql-reference/data-types/float) +返回 `x` 的反正切值。[`Float*`](/sql-reference/data-types/float) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT atan(1); @@ -199,9 +199,9 @@ SELECT atan(1); ## atan2 \{#atan2\} -引入于:v20.12 +引入版本:v20.12 -返回欧几里得平面中,从正 x 轴到指向点 `(x, y) ≠ (0, 0)` 的射线的夹角,结果以弧度表示。 +返回欧几里得平面中,从正 x 轴到指向点 `(x, y) ≠ (0, 0)` 的射线之间的角度,结果以弧度表示。 **语法** @@ -216,7 +216,7 @@ atan2(y, x) **返回值** -返回一个弧度制角度 `θ`,满足 `-π < θ ≤ π`,类型为 [`Float64`](/sql-reference/data-types/float) +返回弧度制角度 `θ`,满足 `-π < θ ≤ π`,类型为 [`Float64`](/sql-reference/data-types/float) **示例** @@ -244,15 +244,15 @@ atanh(x) **参数** -* `x` — 角度的双曲正切值。取值区间:-1 < x < 1。`(U)Int*`、`Float*` 或 `Decimal*` 类型。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 角度的双曲正切值。取值范围:-1 < x < 1。`(U)Int*`、`Float*` 或 `Decimal*` 类型。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回以弧度表示的角度值。取值区间:-∞ < atanh(x) < +∞。[`Float64`](/sql-reference/data-types/float) +返回以弧度表示的角度。取值范围:-∞ < atanh(x) < +∞,类型为 [`Float64`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT atanh(0) @@ -264,7 +264,7 @@ SELECT atanh(0) ## cbrt \{#cbrt\} -自 v1.1 引入 +自 v1.1 起引入 返回参数的立方根。 @@ -296,7 +296,7 @@ SELECT cbrt(8); ## cos \{#cos\} -自 v1.1 起引入 +自 v1.1 版本引入 返回参数的余弦值。 @@ -312,7 +312,7 @@ cos(x) **返回值** -返回 `x` 的余弦值。[`Float*`](/sql-reference/data-types/float) +返回 `x` 的双曲余弦值。[`Float*`](/sql-reference/data-types/float) **示例** @@ -328,7 +328,7 @@ SELECT cos(0); ## cosh \{#cosh\} -自 v20.12 版本引入 +自 v20.12 引入 返回参数的双曲余弦值。 @@ -340,15 +340,15 @@ cosh(x) **参数** -* `x` — 以弧度表示的角度。取值范围:`-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 弧度值。取值范围:`-∞ < x < +∞`。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回取值范围:`1 ≤ cosh(x) < +∞` [`Float64`](/sql-reference/data-types/float) +返回的值位于区间:`1 ≤ cosh(x) < +∞` [`Float64`](/sql-reference/data-types/float) **示例** -**基础用法** +**基本用法** ```sql title=Query SELECT cosh(0) @@ -360,9 +360,9 @@ SELECT cosh(0) ## degrees \{#degrees\} -引入版本:v22.2 +自 v22.2 引入 -将弧度值转换为角度(度)。 +将弧度转换为角度(度数)。 **语法** @@ -372,11 +372,11 @@ degrees(x) **参数** -* `x` — 以弧度为单位的输入。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 以弧度表示的输入值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回将 `x` 转换为角度(度)的值。[`Float64`](/sql-reference/data-types/float) +返回 `x` 对应的角度值(以度为单位)。[`Float64`](/sql-reference/data-types/float) **示例** @@ -394,7 +394,7 @@ SELECT degrees(3.141592653589793) 引入版本:v1.1 -返回自然常数 (e)。 +返回欧拉常数(e)。 **语法** @@ -408,11 +408,11 @@ e() **返回值** -返回欧拉常数,类型为 [`Float64`](/sql-reference/data-types/float)。 +以 [`Float64`](/sql-reference/data-types/float) 类型返回欧拉常数 **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT e(); @@ -424,9 +424,9 @@ SELECT e(); ## erf \{#erf\} -自 v1.1 起引入 +引入于:v1.1 -如果 `x` 为非负数,则 `erf(x/(σ√2))` 表示:具有标准差 `σ` 的正态分布随机变量,其取值与期望值相差超过 `x` 的概率。 +如果 `x` 是非负数,则 `erf(x/(σ√2))` 表示一个标准差为 `σ` 的正态分布随机变量,其取值与期望值之差的绝对值大于 `x` 的概率。 **语法** @@ -436,11 +436,11 @@ erf(x) **参数** -* `x` — 需要计算其误差函数值的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其误差函数值的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回误差函数的值 [`Float*`](/sql-reference/data-types/float) +返回误差函数值,类型为 [`Float*`](/sql-reference/data-types/float) **示例** @@ -458,9 +458,9 @@ SELECT erf(3 / sqrt(2)) ## erfc \{#erfc\} -在 v1.1 中引入 +引入版本:v1.1 -返回在 `x` 较大时仍能精确逼近 `1 - erf(x)` 的数值。 +返回与 `1-erf(x)` 接近的数值,并且在 `x` 较大时不会损失精度。 **语法** @@ -470,11 +470,11 @@ erfc(x) **参数** -* `x` — 要计算误差函数值的输入值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 用于计算误差函数的参数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回余误差函数值 [`Float*`](/sql-reference/data-types/float) +返回互补误差函数的值 [`Float*`](/sql-reference/data-types/float) **示例** @@ -490,9 +490,9 @@ SELECT erfc(0); ## exp \{#exp\} -引入于:v1.1 +自 v1.1 引入 -返回 `e` 的 `x` 次幂,其中 `x` 是传递给该函数的参数。 +返回 e 的 `x` 次幂,其中 `x` 是传递给该函数的参数。 **语法** @@ -506,7 +506,7 @@ exp(x) **返回值** -返回值为 `e^x`,类型为 [`Float*`](/sql-reference/data-types/float) +返回 `e^x`,类型为 [`Float*`](/sql-reference/data-types/float) **示例** @@ -556,9 +556,9 @@ SELECT exp10(2); ## exp2 \{#exp2\} -引入版本:v1.1 +引入于:v1.1 -返回以 2 为底、给定参数为指数的幂。 +返回 2 的给定参数次方。 **语法** @@ -588,11 +588,11 @@ SELECT exp2(3); ## factorial \{#factorial\} -自 v22.11 起引入 +引入版本:v22.11 -计算一个整数值的阶乘。 -0 的阶乘为 1。同样,`factorial()` 函数对任何负值也返回 `1`。 -输入参数的最大正值为 `20`,取值为 `21` 或更大时会抛出异常。 +计算整数的阶乘。 +0 的阶乘为 1。同样地,`factorial()` 函数对于任何负数参数都返回 `1`。 +输入参数的最大正值为 `20`,当参数值为 `21` 或更大时会抛出异常。 **语法** @@ -602,11 +602,11 @@ factorial(n) **参数** -* `n` — 需要计算阶乘的整数值。最大值为 20。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `n` — 要计算阶乘的整数。最大值为 20。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) **返回值** -返回输入值的阶乘,类型为 UInt64。当输入为 0 或任何负数时,返回 1。[`UInt64`](/sql-reference/data-types/int-uint) +返回输入值的阶乘,类型为 UInt64。对于输入为 0 或任意负值时,返回 1。[`UInt64`](/sql-reference/data-types/int-uint) **示例** @@ -622,10 +622,10 @@ factorial(10) ## hypot \{#hypot\} -引入版本:v20.12 +引入于:v20.12 返回直角三角形斜边的长度。 -hypot 函数可以避免在对非常大或非常小的数进行平方运算时出现的问题。 +`hypot` 可以避免在对非常大或非常小的数值进行平方运算时出现的问题。 **语法** @@ -640,7 +640,7 @@ hypot(x, y) **返回值** -返回直角三角形斜边的长度。[`Float64`](/sql-reference/data-types/float) +返回直角三角形的斜边长度。[`Float64`](/sql-reference/data-types/float) **示例** @@ -656,9 +656,9 @@ SELECT hypot(1, 1) ## intExp10 \{#intExp10\} -引入版本:v1.1 +引入于:v1.1 -类似于 [exp10](#exp10),但返回一个 `UInt64` 类型的数值。 +类似于 [exp10](#exp10),但返回 `UInt64` 类型的数值。 **语法** @@ -672,11 +672,11 @@ intExp10(x) **返回值** -返回 10^x。[`UInt64`](/sql-reference/data-types/int-uint) +返回 10^x 的值。[`UInt64`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT intExp10(2); @@ -688,9 +688,9 @@ SELECT intExp10(2); ## intExp2 \{#intExp2\} -引入自:v1.1 +自 v1.1 版本引入 -与 [exp2](#exp2) 类似,但返回一个 `UInt64` 类型的数值。 +与 [exp2](#exp2) 类似,但返回一个 `UInt64` 数值。 **语法** @@ -704,7 +704,7 @@ intExp2(x) **返回值** -返回 2 的 x 次方。[`UInt64`](/sql-reference/data-types/int-uint) +返回 2^x 的结果。[`UInt64`](/sql-reference/data-types/int-uint) **示例** @@ -720,7 +720,7 @@ SELECT intExp2(3); ## lgamma \{#lgamma\} -自 v1.1 版本引入 +自 v1.1 起提供 返回伽马函数的对数。 @@ -732,7 +732,7 @@ lgamma(x) **参数** -* `x` — 用于计算其伽马函数对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 需要计算其伽马函数对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** @@ -740,7 +740,7 @@ lgamma(x) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT lgamma(5); @@ -752,7 +752,7 @@ SELECT lgamma(5); ## log \{#log\} -自 v1.1 版本引入 +自 v1.1 版本起引入 返回参数的自然对数。 @@ -766,7 +766,7 @@ log(x) **参数** -* `x` — 要计算自然对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其自然对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** @@ -774,7 +774,7 @@ log(x) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT log(10); @@ -786,9 +786,9 @@ SELECT log(10); ## log10 \{#log10\} -自 v1.1 起可用。 +引入版本:v1.1 -返回参数的十进制对数。 +返回参数的以 10 为底的对数。 **语法** @@ -798,11 +798,11 @@ log10(x) **参数** -* `x` — 要计算其常用对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算十进制对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回 `x` 的常用对数。[`Float*`](/sql-reference/data-types/float) +返回 `x` 的十进制对数。[`Float*`](/sql-reference/data-types/float) **示例** @@ -818,10 +818,10 @@ SELECT log10(100); ## log1p \{#log1p\} -自 v20.12 引入 +自 v20.12 版本引入 -计算 log(1+x)。 -对于较小的 `x` 值,log1p(x) 比直接计算 log(1+x) 更精确。 +计算 log(1+x) 的值。 +对于较小的 `x` 值,log1p(x) 的计算比 log(1+x) 更精确。 **语法** @@ -835,11 +835,11 @@ log1p(x) **返回值** -返回值取自区间:-∞ < log1p(x) < +∞,类型为 [`Float64`](/sql-reference/data-types/float) +返回值的范围:-∞ < log1p(x) < +∞ [`Float64`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT log1p(0) @@ -853,7 +853,7 @@ SELECT log1p(0) 首次引入于:v1.1 -返回其参数的二进制对数。 +返回参数的以 2 为底的对数。 **语法** @@ -863,7 +863,7 @@ log2(x) **参数** -* `x` — 需要计算二进制对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算二进制对数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** @@ -871,7 +871,7 @@ log2(x) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT log2(8); @@ -883,9 +883,9 @@ SELECT log2(8); ## pi \{#pi\} -自 v1.1 起引入 +引入于:v1.1 -返回数学常数 π。 +返回圆周率 π。 **语法** @@ -899,11 +899,11 @@ pi() **返回值** -返回圆周率 π,类型为 [`Float64`](/sql-reference/data-types/float) +返回常数 π,类型为 [`Float64`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT pi(); @@ -915,7 +915,7 @@ SELECT pi(); ## pow \{#pow\} -自 v1.1 引入 +引入版本:v1.1 返回 x 的 y 次幂。 @@ -948,9 +948,51 @@ SELECT pow(2, 3); 8 ``` +## proportionsZTest \{#proportionsZTest\} + +引入版本:v22.3 + +返回双样本比例 Z 检验的检验统计量——一种用于比较两个总体 x 和 y 的比例的统计检验方法。 +该函数同时支持用于标准误估计的合并(pooled)和非合并(unpooled)两种方法。 +在合并版本中,会对两个比例取平均,并仅使用这一合并比例来估计标准误。 +在非合并版本中,会分别使用两个比例来估计标准误。 + +**语法** + +```sql +proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_type) +``` + +**参数** + +* `successes_x` — 总体 x 中的成功次数。[`UInt64`](/sql-reference/data-types/int-uint) +* `successes_y` — 总体 y 中的成功次数。[`UInt64`](/sql-reference/data-types/int-uint) +* `trials_x` — 总体 x 中的试验次数。[`UInt64`](/sql-reference/data-types/int-uint) +* `trials_y` — 总体 y 中的试验次数。[`UInt64`](/sql-reference/data-types/int-uint) +* `conf_level` — 检验的置信水平。[`Float64`](/sql-reference/data-types/float) +* `pool_type` — 用于标准误差估计的合并方式选择。可以是 'unpooled' 或 'pooled'。[`String`](/sql-reference/data-types/string) + +**返回值** + +返回一个包含以下内容的 tuple:`z_stat`(Z 统计量)、`p_val`(P 值)、`ci_low`(置信区间下限)、`ci_high`(置信区间上限)。[`Tuple(Float64, Float64, Float64, Float64)`](/sql-reference/data-types/tuple) + +**示例** + +**用法示例** + +```sql title=Query +SELECT proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled'); +``` + +```response title=Response +┌─proportionsZTest(10, 11, 100, 101, 0.95, 'unpooled')───────────────────────────────┐ +│ (-0.20656724435948853,0.8363478437079654,-0.09345975390115283,0.07563797172293502) │ +└────────────────────────────────────────────────────────────────────────────────────┘ +``` + ## radians \{#radians\} -引入版本:v22.2 +自 v22.2 起引入 将角度转换为弧度。 @@ -962,15 +1004,15 @@ radians(x) **参数** -* `x` — 以度为单位的输入。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 输入的角度值(单位:度)。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回以弧度为单位的值,类型为 [`Float64`](/sql-reference/data-types/float) +返回以弧度为单位的值 [`Float64`](/sql-reference/data-types/float) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT radians(180) @@ -980,11 +1022,43 @@ SELECT radians(180) 3.141592653589793 ``` +## sigmoid \{#sigmoid\} + +引入于:v20.1 + +计算 sigmoid 函数:`1 / (1 + exp(-x))`。sigmoid 函数将任意实数映射到区间 (0, 1),并广泛用于机器学习中。 + +**语法** + +```sql +sigmoid(x) +``` + +**参数** + +* `x` — 输入值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) + +**返回值** + +返回输入值的 sigmoid 函数值,范围为 (0, 1)。[`Float64`](/sql-reference/data-types/float) + +**示例** + +**基本用法** + +```sql title=Query +SELECT sigmoid(0) +``` + +```response title=Response +0.5 +``` + ## sign \{#sign\} -自 v21.2 版本引入。 +自 v21.2 起引入 -返回实数的符号。 +返回实数的符号值。 **语法** @@ -998,7 +1072,7 @@ sign(x) **返回值** -返回值类型为 [`Int8`](/sql-reference/data-types/int-uint):`x < 0` 返回 `-1`,`x = 0` 返回 `0`,`x > 0` 返回 `1`。 +当 `x < 0` 时返回 `-1`,当 `x = 0` 时返回 `0`,当 `x > 0` 时返回 `1`。返回类型为 [`Int8`](/sql-reference/data-types/int-uint) **示例** @@ -1012,7 +1086,7 @@ SELECT sign(0) 0 ``` -**正号** +**为正时的符号** ```sql title=Query SELECT sign(1) @@ -1034,7 +1108,7 @@ SELECT sign(-1) ## sin \{#sin\} -自版本 v 引入。 +在 v1.1 中引入 返回参数的正弦值。 @@ -1046,7 +1120,7 @@ sin(x) **参数** -* `x` — 要计算正弦值的数值。类型为 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其正弦值的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** @@ -1054,7 +1128,7 @@ sin(x) **示例** -**基本示例** +**简单示例** ```sql title=Query SELECT sin(1.23) @@ -1066,7 +1140,7 @@ SELECT sin(1.23) ## sinh \{#sinh\} -引入于:v20.12 +自 v20.12 起引入。 返回双曲正弦值。 @@ -1078,15 +1152,15 @@ sinh(x) **参数** -* `x` — 以弧度表示的角度。取值范围:-∞ < x < +∞。类型为 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 以弧度表示的角度。取值范围:-∞ < x < +∞。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回值取值范围:-∞ < sinh(x) < +∞,类型为 [`Float64`](/sql-reference/data-types/float) +返回值的取值范围:-∞ < sinh(x) < +∞ [`Float64`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT sinh(0) @@ -1098,7 +1172,7 @@ SELECT sinh(0) ## sqrt \{#sqrt\} -自 v1.1 起引入 +自 v1.1 引入 返回参数的平方根。 @@ -1130,7 +1204,7 @@ SELECT sqrt(16); ## tan \{#tan\} -自 v1.1 起引入 +自 v1.1 版本引入 返回参数的正切值。 @@ -1142,11 +1216,11 @@ tan(x) **参数** -* `x` — 弧度制角度。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 以弧度表示的角度。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回 `x` 的正切值。[`Float*`](/sql-reference/data-types/float) +返回 `x` 的双曲正切值。[`Float*`](/sql-reference/data-types/float) **示例** @@ -1162,9 +1236,9 @@ SELECT tan(0); ## tanh \{#tanh\} -首次引入于:v20.1 +自 v20.1 引入 -返回双曲正切函数值。 +返回双曲正切值。 **语法** @@ -1174,11 +1248,11 @@ tanh(x) **参数** -* `x` — 以弧度表示的角度。取值范围:-∞ < x < +∞。类型为 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal)。 +* `x` — 以弧度为单位的角度,取值范围:-∞ < x < +∞。类型为 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回值范围:-1 < tanh(x) < 1,类型为 [`Float*`](/sql-reference/data-types/float)。 +返回值范围:-1 < tanh(x) < 1,类型为 [`Float*`](/sql-reference/data-types/float) **示例** @@ -1194,9 +1268,9 @@ SELECT tanh(0) ## tgamma \{#tgamma\} -引入版本:v1.1 +自 v1.1 版本引入 -返回伽马函数值。 +返回 Gamma 函数。 **语法** @@ -1206,15 +1280,15 @@ tgamma(x) **参数** -* `x` — 要计算伽马函数的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) +* `x` — 要计算其伽马函数值的数值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal*`](/sql-reference/data-types/decimal) **返回值** -返回 `x` 的伽马函数值,类型为 [`Float*`](/sql-reference/data-types/float) +返回伽马函数的值 [`Float*`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT tgamma(5); @@ -1226,10 +1300,10 @@ SELECT tgamma(5); ## widthBucket \{#widthBucket\} -引入于:v23.3 +引入版本:v23.3 -在一个具有 `count` 个等宽桶、覆盖范围从 `low` 到 `high` 的直方图中,返回参数 `operand` 所落入的桶的编号。如果 `operand` 小于 `low`,则返回 0;如果 `operand` 大于或等于 `high`,则返回 `count`+1。 -同时还提供了一个不区分大小写的别名 `WIDTH_BUCKET`,用于与其他数据库保持兼容性。 +在直方图中返回参数 `operand` 所落入的桶编号。该直方图包含 `count` 个等宽桶,覆盖范围为 `low` 到 `high`。如果 `operand` 小于 `low`,则返回 0;如果 `operand` 大于等于 `high`,则返回 `count`+1。 +另有一个不区分大小写的别名 `WIDTH_BUCKET`,用于与其他数据库兼容。 **语法** @@ -1241,14 +1315,14 @@ widthBucket(operand, low, high, count) **参数** -* `operand` — 需要确定其所属桶的值。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) +* `operand` — 要确定其所属桶的值。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) * `low` — 直方图范围的下界。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) * `high` — 直方图范围的上界。[`(U)Int8/16/32/64`](/sql-reference/data-types/int-uint) * `count` — 等宽桶的数量。不能为零。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **返回值** -返回桶编号,类型为整数。若 `operand` < `low`,返回 0;若 `operand` >= `high`,返回 `count` + 1。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) +返回桶编号,类型为整数。若 `operand` < `low`,返回 0;若 `operand` >= `high`,返回 `count`+1。[`UInt8/16/32/64`](/sql-reference/data-types/int-uint) **示例** diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md index c21b45074e3..12a442d5731 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/other-functions.md @@ -945,7 +945,7 @@ SELECT currentProfiles(); ## currentQueryID \{#currentQueryID\} -引入版本:v +引入版本:v25.2 返回当前查询 ID。 @@ -1697,7 +1697,7 @@ SELECT flipCoordinates(readWkt('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))')); ## formatQuery \{#formatQuery\} -引入于:v +引入于:v23.10 返回给定 SQL 查询的格式化版本,可能为多行格式。解析出错时将抛出异常。 [example:multiline] @@ -1734,7 +1734,7 @@ WHERE (a > 3) AND (b < 3) ## formatQueryOrNull \{#formatQueryOrNull\} -引入于:v +引入于:v23.11 返回给定 SQL 查询的格式化结果,可能为多行。若解析出错,则返回 NULL。 [example:multiline] @@ -1771,7 +1771,7 @@ WHERE (a > 3) AND (b < 3) ## formatQuerySingleLine \{#formatQuerySingleLine\} -引入版本:v +引入版本:v23.10 类似于 formatQuery(),但返回的格式化字符串不包含换行符。解析出错时抛出异常。 [example:multiline] @@ -1804,7 +1804,7 @@ SELECT a, b FROM tab WHERE (a > 3) AND (b < 3) ## formatQuerySingleLineOrNull \{#formatQuerySingleLineOrNull\} -引入于:v +引入于:v23.11 与 formatQuery() 类似,但返回的格式化字符串不包含换行符。若解析出错,则返回 NULL。 [example:multiline] @@ -2020,6 +2020,37 @@ SELECT └────────────┴─────────────────────────────────────────────────────────────────┘ ``` +## fuzzQuery \{#fuzzQuery\} + +引入于:v26.2 + +解析给定的查询字符串,并对其应用随机的 AST 变异(fuzzing)。返回变异后的查询字符串。该函数是非确定性的:每次调用都可能产生不同结果。需要设置 `allow_fuzz_query_functions = 1`。 + +**语法** + +```sql +fuzzQuery(query) +``` + +**参数** + +* `query` — 要进行模糊测试的 SQL 查询。[String](../../sql-reference/data-types/string.md) + +**返回值** + +模糊后的查询字符串 [`String`](/sql-reference/data-types/string) + +**示例** + +**基本示例** + +```sql title=Query +SET allow_fuzz_query_functions = 1; SELECT fuzzQuery('SELECT 1'); +``` + +```response title=Response +``` + ## generateRandomStructure \{#generateRandomStructure\} 引入版本:v23.5 @@ -2245,7 +2276,7 @@ SELECT getMacro('test'); ## getMaxTableNameLengthForDatabase \{#getMaxTableNameLengthForDatabase\} -引入版本:v +引入版本:v25.1 返回指定数据库中表名的最大长度限制。 @@ -2525,7 +2556,7 @@ SELECT getSizeOfEnumType(CAST('a' AS Enum8('a' = 1, 'b' = 2))) AS x; ## getSubcolumn \{#getSubcolumn\} -自 v 版本引入。 +自 v23.3 版本引入。 接收一个表达式或标识符,以及一个包含子列名称的常量字符串作为参数。 @@ -3626,11 +3657,11 @@ SELECT number, neighbor(number, 2, 999) FROM system.numbers LIMIT 10; ## nested \{#nested\} -引入于:v +引入于:v23.2 这是 ClickHouse 引擎内部使用的 FUNCTION,不应被直接使用。 -从多个数组中返回由 `Tuple` 组成的数组。 +从多个数组中构造并返回由 `Tuple` 组成的数组。 第一个参数必须是 `String` 类型的常量数组,用于指定结果 `Tuple` 中各元素的名称。 其他参数必须是大小相同的数组。 @@ -4721,7 +4752,7 @@ SELECT number, sleepEachRow(0.5) FROM system.numbers LIMIT 5; ## structureToCapnProtoSchema \{#structureToCapnProtoSchema\} -引入版本:v +引入版本:v23.8 用于将 ClickHouse 表结构转换为 CapnProto 格式 schema 的函数 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md index 48ebbe95d58..0db16e54e4c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/splitting-merging-functions.md @@ -508,9 +508,9 @@ SELECT splitByWhitespace(' 1! a, b. '); 可用的 tokenizer: * `splitByNonAlpha` 使用非字母数字的 ASCII 字符来拆分字符串(另见函数 [splitByNonAlpha](/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha))。 -* `splitByString(S)` 使用用户定义的分隔字符串 `S` 来拆分字符串(另见函数 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString))。可以通过可选参数指定分隔符列表,例如:`tokenizer = splitByString([', ', '; ', '\n', '\\'])`。注意,每个分隔字符串可以由多个字符组成(如示例中的 `', '`)。如果未显式指定(例如 `tokenizer = splitByString`),默认的分隔符列表是单个空格字符 `[' ']`。 -* `ngrams(N)` 将字符串拆分为长度相同的 `N`-gram(另见函数 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams))。ngram 的长度可以通过 1 到 8 之间的可选整数参数指定,例如:`tokenizer = ngrams(3)`。如果未显式指定(例如 `tokenizer = ngrams`),默认的 ngram 长度为 3。 -* `sparseGrams(min_length, max_length, min_cutoff_length)` 将字符串拆分为长度在 `min_length` 到 `max_length`(含)之间的可变长度 n-gram(另见函数 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams))。如果未显式指定,`min_length` 和 `max_length` 的默认值分别为 3 和 100。如果提供参数 `min_cutoff_length`,则只返回长度大于或等于 `min_cutoff_length` 的 n-gram。与 `ngrams(N)` 相比,`sparseGrams` tokenizer 生成可变长度的 N-gram,从而可以更灵活地表示原始文本。例如,`tokenizer = sparseGrams(3, 5, 4)` 会在内部从输入字符串生成 3、4、5-gram,但只返回 4 和 5-gram。 +* `splitByString(S)` 使用用户定义的分隔字符串 `S` 来拆分字符串(另见函数 [splitByString](/sql-reference/functions/splitting-merging-functions.md/#splitByString))。可以通过可选参数指定分隔符列表,例如:`tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`。注意,每个分隔字符串可以由多个字符组成(如示例中的 `', '`)。如果未显式指定,默认的分隔符列表是单个空格字符 `[' ']`。 +* `ngrams(N)` 将字符串拆分为长度相同的 `N`-gram(另见函数 [ngrams](/sql-reference/functions/splitting-merging-functions.md/#ngrams))。ngram 的长度可以通过 1 到 8 之间的可选整数参数指定,例如:`tokens(value, 'ngrams', 3)`。如果未显式指定,默认的 ngram 长度为 3。 +* `sparseGrams(min_length, max_length, min_cutoff_length)` 将字符串拆分为长度在 `min_length` 到 `max_length`(含)之间的可变长度 n-gram(另见函数 [sparseGrams](/sql-reference/functions/string-functions#sparseGrams))。如果未显式指定,`min_length` 和 `max_length` 的默认值分别为 3 和 100。如果提供参数 `min_cutoff_length`,则只返回长度大于或等于 `min_cutoff_length` 的 n-gram。与 `ngrams(N)` 相比,`sparseGrams` tokenizer 生成可变长度的 N-gram,从而可以更灵活地表示原始文本。例如,`tokens(value, 'sparseGrams', 3, 5, 4)` 会在内部从输入字符串生成 3、4、5-gram,但只返回 4 和 5-gram。 * `array` 不进行任何 tokenization,即每行的值本身就是一个 token(另见函数 [array](/sql-reference/functions/array-functions.md/#array))。 对于 `splitByString` tokenizer,如果这些 token 并不构成一个 [前缀码](https://en.wikipedia.org/wiki/Prefix_code),通常希望在匹配时优先选择更长的分隔符。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md index 2fb219c2a5a..0eae0746cfe 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/string-search-functions.md @@ -935,7 +935,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitive \{#hasTokenCaseInsensitive\} -引入于:v +引入于:v20.1 在 haystack 中使用 `tokenbf_v1` 索引对 needle 执行不区分大小写的查找。 @@ -954,7 +954,7 @@ SELECT hasToken('clickhouse test', 'test') ## hasTokenCaseInsensitiveOrNull \{#hasTokenCaseInsensitiveOrNull\} -引入于:v +引入于:v23.1 使用 `tokenbf_v1` 索引在 haystack 中对 needle 执行不区分大小写的查找。如果 needle 非法,则返回 NULL。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md index f5b2319fc61..9bcd08c608c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-series-functions.md @@ -796,4 +796,54 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht └────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘ ``` +## timeSeriesThrowDuplicateSeriesIf \{#timeSeriesThrowDuplicateSeriesIf\} + +引入版本:v26.2 + +检查 `condition`,如果为 true,则抛出异常,异常信息为: +`Multiple series have the same tags , duplicate series in the same result set are not allowed`。 +如果 `condition` 为 false,则函数返回 `0`。 +该函数类似于 [throwIf()](/sql-reference/functions/other-functions#throwIf), +但使用了不同的错误码,并以不同的方式格式化错误消息。 + +**语法** + +```sql +timeSeriesThrowDuplicateSeriesIf(condition, group) +``` + +**参数** + +* `condition` — 要检查的条件,通常为函数 [count()](/sql-reference/aggregate-functions/reference/count#count) 的返回值,类型为 [`UInt8`](/sql-reference/data-types/int-uint) +* `group` — 标签组。类型为 [`UInt64`](/sql-reference/data-types/int-uint) + +**返回值** + +返回值为 `0`,类型为 [`UInt8`](/sql-reference/data-types/int-uint) + +**示例** + +**示例** + +```sql title=Query +CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory; + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- OK + +INSERT INTO test VALUES ([('__name__', 'up')]); + +SELECT timeSeriesTagsToGroup(tags) AS group +FROM test +GROUP BY group +HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0; -- Throws exception "Multiple series have the same tags {'__name__': 'up'}" +``` + +```response title=Response +``` + {/*AUTOGENERATED_END*/ } diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md index 61b7393773f..406833cbfb3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/time-window-functions.md @@ -10,30 +10,32 @@ keywords: ['时间窗口'] import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + # 时间窗口函数 \{#time-window-functions\} -时间窗口函数返回对应窗口的下界(包含)和上界(不包含)。 -用于处理 [WindowView](/sql-reference/statements/create/view#window-view) 的函数如下所示: +时间窗口函数返回对应窗口的左闭右开区间边界。 +用于 [WindowView](/sql-reference/statements/create/view#window-view) 的函数如下所示: {/* - 下面标签内的内容会在文档框架构建过程中, - 被从 system.functions 生成的文档替换。请不要修改或移除这些标签。 - 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 下面标签内的内容会在文档框架构建期间被替换为 + 由 system.functions 生成的文档。请不要修改或移除这些标签。 + 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } + ## hop \{#hop\} -引入于:v21.12 +引入版本:v21.12 -跳跃时间窗口具有固定的窗口长度(`window_interval`),并按指定的跳跃间隔(`hop_interval`)向前滑动。如果 `hop_interval` 小于 `window_interval`,则跳跃窗口会发生重叠,因此一条记录可以被分配到多个窗口中。 +跳跃时间窗口具有固定的持续时间(`window_interval`),并按照指定的跳跃间隔(`hop_interval`)移动。如果 `hop_interval` 小于 `window_interval`,则跳跃窗口会发生重叠。因此,一条记录可以被分配到多个窗口中。 -由于一条记录可以被分配到多个跳跃窗口,当在不使用 `WINDOW VIEW` 的情况下使用 `hop` 函数时,该函数只会返回第一个窗口的边界。 +由于一条记录可以被分配到多个跳跃窗口,在未与 WINDOW VIEW 一起使用 hop 函数时,函数只返回第一个窗口的边界。 **语法** @@ -44,17 +46,17 @@ hop(time_attr, hop_interval, window_interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 正数的 Hop 间隔。[`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — 正数的窗口(Window)间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `hop_interval` — 正的 hop 间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — 正的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应跳跃窗口(hopping window)的左闭右开区间边界。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +返回对应 hopping 窗口的左闭右开区间边界值。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **示例** -**跳跃窗口(Hopping window)** +**Hopping 窗口** ```sql title=Query SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -64,13 +66,14 @@ SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) ('2024-07-03 00:00:00','2024-07-05 00:00:00') ``` + ## hopEnd \{#hopEnd\} 引入版本:v22.1 -返回相应跳跃窗口的不包含自身的上界。 +返回对应 hopping window 的不包含端点的上界值(exclusive upper bound)。 -由于一条记录可以被分配到多个跳跃窗口,当在未使用 `WINDOW VIEW` 的情况下调用 `hop` 函数时,该函数仅返回第一个窗口的上界。 +由于一条记录可以被分配到多个 hop window,当 hop 函数未配合 `WINDOW VIEW` 使用时,该函数只返回第一个窗口的上界值。 **语法** @@ -81,17 +84,17 @@ hopEnd(time_attr, hop_interval, window_interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 正数 Hop 间隔。[`Interval`](/sql-reference/data-types/int-uint) -* `window_interval` — 正数窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `hop_interval` — 正值的 hop 间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `window_interval` — 正值的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应 hopping 窗口的上界(不含)。[`DateTime`](/sql-reference/data-types/datetime) +返回对应 hopping window 的开区间上界。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**Hopping 窗口结束** +**Hopping window 结束时间** ```sql title=Query SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -101,13 +104,14 @@ SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-05 00:00:00 ``` + ## hopStart \{#hopStart\} 引入版本:v22.1 -返回对应跳跃窗口的包含下界。 +返回对应 hop 窗口的包含式下界。 -由于一条记录可以被分配到多个跳跃窗口,在未使用 `WINDOW VIEW` 的情况下调用 hop 函数时,该函数只返回第一个窗口的下界。 +由于一条记录可以被分配到多个 hop 窗口,在未结合 `WINDOW VIEW` 使用 hop 函数时,该函数仅返回第一个窗口的下界。 **语法** @@ -118,17 +122,17 @@ hopStart(time_attr, hop_interval, window_interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `hop_interval` — 正的 hop 间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `hop_interval` — 正的 hopping 间隔。[`Interval`](/sql-reference/data-types/int-uint) * `window_interval` — 正的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应跳跃窗口的包含性下界。[`DateTime`](/sql-reference/data-types/datetime) +返回对应 hopping 窗口(跳跃窗口)包含的下边界值。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**跳跃窗口起始时间** +**Hopping 窗口起始时间** ```sql title=Query SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) @@ -138,11 +142,12 @@ SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY) 2024-07-03 00:00:00 ``` + ## tumble \{#tumble\} -引入自:v21.12 +引入于:v21.12 -tumble 时间窗口会将记录分配到固定持续时间(`interval`)、不重叠且连续的时间窗口中。 +tumbling 时间窗口会将记录划分到持续时间固定(`interval`)、互不重叠且连续的窗口中。 **语法** @@ -153,12 +158,12 @@ tumble(time_attr, interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `interval` — `Interval` 类型的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `interval` — Interval 类型的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应滚动窗口包含的下界和不包含的上界。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) +返回对应滚动窗口的左闭右开边界。[`Tuple(DateTime, DateTime)`](/sql-reference/data-types/tuple) **示例** @@ -172,11 +177,12 @@ SELECT tumble(now(), toIntervalDay('1')) ('2024-07-04 00:00:00','2024-07-05 00:00:00') ``` + ## tumbleEnd \{#tumbleEnd\} -引入于:v22.1 +自 v22.1 起引入 -返回相应滚动窗口的右开区间上界值。 +返回对应 tumbling 窗口的不包含自身的上界。 **语法** @@ -187,16 +193,16 @@ tumbleEnd(time_attr, interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `interval` — 窗口区间,类型为 Interval。[`Interval`](/sql-reference/data-types/int-uint) +* `interval` — Interval 类型的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应翻转窗口的开区间上界。[`DateTime`](/sql-reference/data-types/datetime) +返回对应 tumbling 窗口不包含的上边界。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**翻转窗口结束时间** +**Tumbling 窗口结束时间** ```sql title=Query SELECT tumbleEnd(now(), toIntervalDay('1')) @@ -206,11 +212,12 @@ SELECT tumbleEnd(now(), toIntervalDay('1')) 2024-07-05 00:00:00 ``` + ## tumbleStart \{#tumbleStart\} -引入于:v22.1 +自 v22.1 引入 -返回对应翻转窗口(tumbling window)的左闭边界。 +返回对应翻转窗口的下界(含端点)。 **语法** @@ -221,12 +228,12 @@ tumbleStart(time_attr, interval[, timezone]) **参数** * `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) -* `interval` — `Interval` 类型的窗口间隔。[`Interval`](/sql-reference/data-types/int-uint) +* `interval` — 窗口间隔,Interval 类型。[`Interval`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) **返回值** -返回对应滚动窗口(tumbling window)的包含型下界。[`DateTime`](/sql-reference/data-types/datetime) +返回对应滚动窗口(tumbling window)的包含下界。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -240,8 +247,44 @@ SELECT tumbleStart(now(), toIntervalDay('1')) 2024-07-04 00:00:00 ``` -{/* 自动生成结束 */ } + +## windowID \{#windowID\} + +引入版本:v22.1 + +返回对应滚动窗口或跳跃窗口的窗口标识符。 +该函数只能与 `WINDOW VIEW` 一起使用。 + +**语法** + +```sql +windowID(time_attr, interval[, timezone]) +``` + +**参数** + +* `time_attr` — 日期和时间。[`DateTime`](/sql-reference/data-types/datetime) +* `interval` — 窗口间隔,类型为 Interval。[`Interval`](/sql-reference/data-types/int-uint) +* `timezone` — 可选。时区名称。[`String`](/sql-reference/data-types/string) + +**返回值** + +返回对应时间窗口的窗口标识。[`UInt32`](/sql-reference/data-types/int-uint) + +**示例** + +**窗口 ID** + +```sql title=Query +SELECT windowID(now(), toIntervalDay('1')) +``` + +```response title=Response +``` + +{/*AUTOGENERATED_END*/ } + ## 相关内容 \{#related-content\} -- [时间序列用例指南](/use-cases/time-series) +- [时间序列用例指南](/use-cases/time-series) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md index 0683200c23d..920e6af8ba4 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-functions.md @@ -18,6 +18,43 @@ doc_type: 'reference' {/*AUTOGENERATED_START*/ } +## dotProduct \{#dotProduct\} + +引入版本:v21.11 + +计算两个向量(长度相同的 tuple 或 array)的[点积](https://en.wikipedia.org/wiki/Dot_product)(标量积)。 +返回对应元素乘积之和。 + +**语法** + +```sql +dotProduct(vector1, vector2) +``` + +**别名**: `scalarProduct` + +**参数** + +* `vector1` — 第一个向量。[`Array(T)`](/sql-reference/data-types/array) 或 [`Tuple(T)`](/sql-reference/data-types/tuple) +* `vector2` — 第二个向量。长度必须与第一个向量相同。[`Array(T)`](/sql-reference/data-types/array) 或 [`Tuple(T)`](/sql-reference/data-types/tuple) + +**返回值** + +返回两个向量的点积值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) + +**示例** + +**基本用法** + +```sql title=Query +SELECT dotProduct((1, 2), (3, 4)) +``` + +```response title=Response +11 +``` + + ## flattenTuple \{#flattenTuple\} 引入于:v22.6 @@ -58,7 +95,7 @@ SELECT flattenTuple(t) FROM tab; ## tuple \{#tuple\} -引入于:v +引入于:v1.1 通过将输入参数分组来返回一个元组(tuple)。 @@ -90,6 +127,7 @@ SELECT tuple(1, 2) (1,2) ``` + ## tupleConcat \{#tupleConcat\} 首次引入于:v23.8 @@ -685,7 +723,7 @@ SELECT tupleMultiplyByNumber((1, 2), -2.1) ## tupleNames \{#tupleNames\} -引入版本:v +引入版本:v24.8 将一个元组转换为列名数组。对于形如 `Tuple(a T, b T, ...)` 的元组,它会返回一个字符串数组,其中包含该元组中具名列的名称。如果元组元素没有显式名称,则会使用它们的索引作为列名。 @@ -712,6 +750,7 @@ SELECT tupleNames(tuple(1 as a, 2 as b)) ['a','b'] ``` + ## tupleNegate \{#tupleNegate\} 自 v21.11 版本引入 @@ -903,4 +942,4 @@ SELECT untuple((* EXCEPT (v2, v3),)) FROM kv; ## 距离函数 \{#distance-functions\} -所有受支持的函数在[距离函数文档](../../sql-reference/functions/distance-functions.md)中都有说明。 +所有受支持的函数在[距离函数文档](../../sql-reference/functions/distance-functions.md)中都有详细说明。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md index 2b616451e57..e6edd0a3136 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/tuple-map-functions.md @@ -16,7 +16,7 @@ doc_type: 'reference' ## extractKeyValuePairs \{#extractKeyValuePairs\} -引入版本:v +引入版本:v23.4 从任意字符串中提取键值对。该字符串不需要完全符合键值对格式。 @@ -53,14 +53,14 @@ doc_type: 'reference' SELECT extractKeyValuePairs('name:neymar, age:31 team:psg,nationality:brazil') as kv - 查询 id: f9e0ca6f-3178-4ee2-aa2c-a5517abb9cee + Query id: f9e0ca6f-3178-4ee2-aa2c-a5517abb9cee ┌─kv──────────────────────────────────────────────────────────────────────┐ │ {'name':'neymar','age':'31','team':'psg','nationality':'brazil'} │ └─────────────────────────────────────────────────────────────────────────┘ ``` -**将单引号用作引号字符** +**将单引号用作引用符号** ```sql arthur :) select extractKeyValuePairs('name:\'neymar\';\'age\':31;team:psg;nationality:brazil,last_key:last_value', ':', ';,', '\'') as kv @@ -173,7 +173,7 @@ unexpected_quoting_character_strategy=promote ## extractKeyValuePairsWithEscaping \{#extractKeyValuePairsWithEscaping\} -引入版本: v +引入版本: v23.4 与 `extractKeyValuePairs` 相同,但支持转义。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md index 8db4d19dbf3..52328e0a4d2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/type-conversion-functions.md @@ -111,8 +111,8 @@ LIMIT 10 另请参阅 [`toUnixTimestamp`](/sql-reference/functions/date-time-functions#toUnixTimestamp) 函数。 {/* - 下面标签的内部内容会在文档框架构建过程中 - 被从 system.functions 生成的文档所替换。请不要修改或删除这些标签。 + 以下标签内部的内容会在构建文档框架时 + 被 system.functions 生成的文档所替换。请不要修改或删除这些标签。 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } @@ -121,10 +121,10 @@ LIMIT 10 ## CAST \{#CAST\} -引入版本:v1.1 +引入自:v1.1 将一个值转换为指定的数据类型。 -与 `reinterpret` 函数不同,CAST 会尝试在目标类型中产生相同的值。 +与 reinterpret 函数不同,CAST 会尝试在目标类型中生成相同的值。 如果无法做到,则会抛出异常。 **语法** @@ -183,13 +183,46 @@ SELECT '123'::UInt32 ``` +## DATE \{#DATE\} + +引入于:v21.2 + +将参数转换为 `Date` 数据类型。这是用于 MySQL 兼容性的 `toDate` 的别名,其行为与 `toDate` 相同。 + +**语法** + +```sql +DATE(expr) +``` + +**参数** + +* `expr` — 要转换的值。[`String`](/sql-reference/data-types/string) 或 [`UInt32`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) + +**返回值** + +返回一个 Date 类型的值。[`Date`](/sql-reference/data-types/date) + +**示例** + +**基本用法** + +```sql title=Query +SELECT DATE('2023-01-01') +``` + +```response title=Response +2023-01-01 +``` + + ## accurateCast \{#accurateCast\} -引入版本:v1.1 +引入于:v1.1 -将一个值转换为指定的数据类型。与 [`CAST`](#CAST) 不同,`accurateCast` 会执行更严格的类型检查,如果转换会导致数据精度丢失或无法进行转换,则抛出异常。 +将一个值转换为指定的数据类型。与 [`CAST`](#CAST) 不同,`accurateCast` 会执行更严格的类型检查,如果转换会导致数据精度丢失,或者根本无法完成转换,则会抛出异常。 -该函数比常规的 `CAST` 更安全,因为它可以防止精度丢失和无效转换。 +该函数比常规 `CAST` 更安全,因为它可以防止精度丢失和无效转换。 **语法** @@ -200,7 +233,7 @@ accurateCast(x, T) **参数** * `x` — 要转换的值。[`Any`](/sql-reference/data-types) -* `T` — 目标数据类型的名称。[`String`](/sql-reference/data-types/string) +* `T` — 目标数据类型名称。[`String`](/sql-reference/data-types/string) **返回值** @@ -208,7 +241,7 @@ accurateCast(x, T) **示例** -**转换成功示例** +**转换成功** ```sql title=Query SELECT accurateCast(42, 'UInt16') @@ -220,7 +253,7 @@ SELECT accurateCast(42, 'UInt16') └───────────────────────────┘ ``` -**字符串转数字** +**字符串转换为数字** ```sql title=Query SELECT accurateCast('123.45', 'Float64') @@ -235,12 +268,12 @@ SELECT accurateCast('123.45', 'Float64') ## accurateCastOrDefault \{#accurateCastOrDefault\} -引入版本:v21.1 +引入自:v21.1 -将值转换为指定的数据类型。 -与 [`accurateCast`](#accurateCast) 类似,但在无法精确完成转换时,会返回一个默认值而不是抛出异常。 +将一个值转换为指定的数据类型。 +类似于 [`accurateCast`](#accurateCast),但在无法精确完成转换时,不抛出异常,而是返回一个默认值。 -如果将默认值作为第二个参数提供,则它必须是目标类型的值。 +如果将默认值作为第二个参数提供,则它必须为目标类型。 如果未提供默认值,则使用目标类型的默认值。 **语法** @@ -251,13 +284,13 @@ accurateCastOrDefault(x, T[, default_value]) **参数** -* `x` — 要进行转换的值。[`Any`](/sql-reference/data-types) +* `x` — 要转换的值。[`Any`](/sql-reference/data-types) * `T` — 目标数据类型的名称。[`const String`](/sql-reference/data-types/string) -* `default_value` — 可选。转换失败时返回的默认值。[`Any`](/sql-reference/data-types) +* `default_value` — 可选。转换失败时要返回的默认值。[`Any`](/sql-reference/data-types) **返回值** -返回转换为目标数据类型的值;如果无法转换,则返回默认值。[`Any`](/sql-reference/data-types) +返回转换为目标数据类型的值;若无法转换,则返回默认值。[`Any`](/sql-reference/data-types) **示例** @@ -273,7 +306,7 @@ SELECT accurateCastOrDefault(42, 'String') └─────────────────────────────────────┘ ``` -**转换失败并使用显式默认值** +**带显式默认值的转换失败** ```sql title=Query SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32) @@ -300,12 +333,12 @@ SELECT accurateCastOrDefault('abc', 'UInt32') ## accurateCastOrNull \{#accurateCastOrNull\} -自 v1.1 引入 +引入于:v1.1 将一个值转换为指定的数据类型。 -与 [`accurateCast`](#accurateCast) 类似,但如果无法精确完成转换,则返回 `NULL` 而不是抛出异常。 +与 [`accurateCast`](#accurateCast) 类似,但如果无法精确完成转换,则返回 `NULL`,而不是抛出异常。 -此函数将 [`accurateCast`](#accurateCast) 的安全性与优雅的错误处理相结合。 +该函数兼具 [`accurateCast`](#accurateCast) 的安全性和更优雅的错误处理。 **语法** @@ -316,11 +349,11 @@ accurateCastOrNull(x, T) **参数** * `x` — 要转换的值。[`Any`](/sql-reference/data-types) -* `T` — 目标数据类型名称。[`String`](/sql-reference/data-types/string) +* `T` — 目标数据类型的名称。[`String`](/sql-reference/data-types/string) **返回值** -返回转换为目标数据类型的值,如果无法转换则返回 `NULL`。[`Any`](/sql-reference/data-types) +返回转换为目标数据类型的值;如果无法转换则返回 `NULL`。[`Any`](/sql-reference/data-types) **示例** @@ -351,13 +384,13 @@ SELECT accurateCastOrNull('abc', 'UInt32') ## formatRow \{#formatRow\} -引入版本:v20.7 +引入自:v20.7 -通过指定的格式将任意表达式转换为字符串。 +按照给定格式将任意表达式转换为字符串。 :::note -如果格式中包含前缀或后缀,它会写入到每一行中。 -此函数仅支持基于行的输出格式。 +如果格式包含前缀或后缀,它会在每一行中写出。 +此函数仅支持基于行的格式。 ::: **语法** @@ -368,7 +401,7 @@ formatRow(format, x, y, ...) **参数** -* `format` — 文本格式。例如 CSV、TSV。[`String`](/sql-reference/data-types/string) +* `format` — 文本格式,例如 CSV、TSV。[`String`](/sql-reference/data-types/string) * `x, y, ...` — 表达式。[`Any`](/sql-reference/data-types) **返回值** @@ -377,7 +410,7 @@ formatRow(format, x, y, ...) **示例** -**基本用法** +**基础用法** ```sql title=Query SELECT formatRow('CSV', number, 'good') @@ -424,7 +457,7 @@ SETTINGS format_custom_result_before_delimiter='\n', format_custom_resul 与 [`formatRow`](#formatRow) 相同,但会去除每一行末尾的换行符。 -按给定格式将任意表达式转换为字符串,并从结果中移除所有末尾的换行符。 +根据给定的格式将任意表达式转换为字符串,但会从结果中移除所有结尾的换行符。 **语法** @@ -434,16 +467,16 @@ formatRowNoNewline(format, x, y, ...) **参数** -* `format` — 文本格式。例如 CSV、TSV。[`String`](/sql-reference/data-types/string) +* `format` — 文本格式。例如:CSV、TSV。[`String`](/sql-reference/data-types/string) * `x, y, ...` — 表达式。[`Any`](/sql-reference/data-types) **返回值** -返回去除换行符的格式化字符串。[`String`](/sql-reference/data-types/string) +返回一个移除换行符后的格式化字符串。[`String`](/sql-reference/data-types/string) **示例** -**基础用法** +**基本用法** ```sql title=Query SELECT formatRowNoNewline('CSV', number, 'good') @@ -465,7 +498,7 @@ FROM numbers(3) 将以微秒为单位的 Unix 时间戳转换为具有微秒精度的 `DateTime64` 值。 -输入值被视为具有微秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起的微秒数)。 +输入值被视为具有微秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起经过的微秒数)。 **语法** @@ -476,15 +509,15 @@ fromUnixTimestamp64Micro(value[, timezone]) **参数** * `value` — 以微秒为单位的 Unix 时间戳。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 可选。返回值所使用的时区。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。指定返回值的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回一个具有微秒级精度的 `DateTime64` 值。[`DateTime64(6)`](/sql-reference/data-types/datetime64) +返回一个具有微秒精度的 `DateTime64` 值。[`DateTime64(6)`](/sql-reference/data-types/datetime64) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT fromUnixTimestamp64Micro(1640995200123456) @@ -499,11 +532,11 @@ SELECT fromUnixTimestamp64Micro(1640995200123456) ## fromUnixTimestamp64Milli \{#fromUnixTimestamp64Milli\} -自 v20.5 引入 +自 v20.5 起引入 -将以毫秒为单位的 Unix 时间戳转换为具有毫秒级精度的 `DateTime64` 值。 +将以毫秒为单位的 Unix 时间戳转换为具有毫秒精度的 `DateTime64` 值。 -输入值被视为一个具有毫秒级精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起的毫秒数)。 +输入值被视为具有毫秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起的毫秒数)。 **语法** @@ -514,7 +547,7 @@ fromUnixTimestamp64Milli(value[, timezone]) **参数** * `value` — 以毫秒为单位的 Unix 时间戳。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 可选。返回值所使用的时区。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。返回值的时区。[`String`](/sql-reference/data-types/string) **返回值** @@ -537,14 +570,14 @@ SELECT fromUnixTimestamp64Milli(1640995200123) ## fromUnixTimestamp64Nano \{#fromUnixTimestamp64Nano\} -自 v20.5 版本引入 +自 v20.5 引入 将以纳秒为单位的 Unix 时间戳转换为具有纳秒精度的 [`DateTime64`](/sql-reference/data-types/datetime64) 值。 输入值被视为具有纳秒精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起的纳秒数)。 :::note -请注意,输入值被视为 UTC 时间戳,而不是使用输入值所指定时区的时间戳。 +请注意,输入值被视为 UTC 时间戳,而不是根据输入值所在时区进行解释的时间戳。 ::: **语法** @@ -556,7 +589,7 @@ fromUnixTimestamp64Nano(value[, timezone]) **参数** * `value` — 以纳秒为单位的 Unix 时间戳。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 可选。返回值的时区。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。结果值所使用的时区。[`String`](/sql-reference/data-types/string) **返回值** @@ -579,9 +612,9 @@ SELECT fromUnixTimestamp64Nano(1640995200123456789) ## fromUnixTimestamp64Second \{#fromUnixTimestamp64Second\} -引入于:v24.12 +自 v24.12 引入 -将以秒为单位的 Unix 时间戳转换为具有秒级精度的 `DateTime64` 值。 +将以秒为单位的 Unix 时间戳转换为秒级精度的 `DateTime64` 值。 输入值被视为具有秒级精度的 Unix 时间戳(自 1970-01-01 00:00:00 UTC 起的秒数)。 @@ -594,11 +627,11 @@ fromUnixTimestamp64Second(value[, timezone]) **参数** * `value` — 以秒为单位的 Unix 时间戳。[`Int64`](/sql-reference/data-types/int-uint) -* `timezone` — 可选。用于返回值的时区。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。返回值使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回一个秒级精度的 `DateTime64` 值。[`DateTime64(0)`](/sql-reference/data-types/datetime64) +返回一个具有秒级精度的 `DateTime64` 值。[`DateTime64(0)`](/sql-reference/data-types/datetime64) **示例** @@ -617,12 +650,12 @@ SELECT fromUnixTimestamp64Second(1640995200) ## parseDateTime \{#parseDateTime\} -引入于:v23.3 +自 v23.3 引入 -根据 MySQL 日期格式字符串解析日期和时间字符串。 +按照 MySQL 日期格式字符串对日期和时间字符串进行解析。 -此函数是 [`formatDateTime`](/sql-reference/functions/date-time-functions) 的逆函数。 -它使用格式字符串解析一个字符串参数,返回一个 DateTime 类型的值。 +该函数是 [`formatDateTime`](/sql-reference/functions/date-time-functions) 的逆函数。 +它按照给定的格式字符串解析一个 String 类型的参数,返回一个 DateTime 类型。 **语法** @@ -640,7 +673,7 @@ parseDateTime(time_string, format[, timezone]) **返回值** -返回根据 MySQL 风格的格式字符串从输入字符串解析得到的 DateTime。[`DateTime`](/sql-reference/data-types/datetime) +返回一个 DateTime 值,该值根据 MySQL 风格的格式字符串从输入字符串解析得到。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -659,11 +692,11 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## parseDateTime32BestEffort \{#parseDateTime32BestEffort\} -引入版本:v20.9 +引入于:v20.9 -将日期和时间的字符串形式转换为 [`DateTime`](/sql-reference/data-types/datetime) 数据类型。 +将日期和时间的字符串表示转换为 [`DateTime`](/sql-reference/data-types/datetime) 数据类型。 -该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 自身格式以及其他一些日期和时间格式。 +该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 的以及其他一些日期和时间格式。 **语法** @@ -678,11 +711,11 @@ parseDateTime32BestEffort(time_string[, time_zone]) **返回值** -返回由 `time_string` 转换得到的 `DateTime` 值。[`DateTime`](/sql-reference/data-types/datetime) +返回将 `time_string` 解析后的 `DateTime` 值。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT parseDateTime32BestEffort('23/10/2025 12:12:57') @@ -724,9 +757,9 @@ AS parseDateTime32BestEffort ## parseDateTime32BestEffortOrNull \{#parseDateTime32BestEffortOrNull\} -引入版本:v20.9 +自 v20.9 引入 -与 [`parseDateTime32BestEffort`](#parseDateTime32BestEffort) 相同,不同之处在于当遇到无法处理的日期格式时返回 `NULL`。 +与 [`parseDateTime32BestEffort`](#parseDateTime32BestEffort) 相同,但在遇到无法处理的日期格式时返回 `NULL`。 **语法** @@ -736,12 +769,12 @@ parseDateTime32BestEffortOrNull(time_string[, time_zone]) **参数** -* `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) +* `time_string` — 包含待转换日期和时间的字符串。[`String`](/sql-reference/data-types/string) * `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从字符串解析得到的 `DateTime` 对象,如果解析失败,则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) +返回从字符串解析得到的 `DateTime` 对象,如果解析失败则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -762,9 +795,9 @@ SELECT ## parseDateTime32BestEffortOrZero \{#parseDateTime32BestEffortOrZero\} -引入于:v20.9 +引入版本:v20.9 -与 [`parseDateTime32BestEffort`](#parseDateTime32BestEffort) 相同,不同之处在于当遇到无法处理的日期格式时,它会返回全零的日期或日期时间值。 +与 [`parseDateTime32BestEffort`](#parseDateTime32BestEffort) 相同,不同之处在于,当遇到无法处理的日期格式时,它会返回零日期或零日期时间值。 **语法** @@ -775,15 +808,15 @@ parseDateTime32BestEffortOrZero(time_string[, time_zone]) **参数** * `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选参数。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从字符串解析得到的 `DateTime` 对象,如果解析失败则返回零日期(`1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) +返回从字符串解析得到的 `DateTime` 对象;如果解析失败,则返回零日期值(`1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -800,12 +833,12 @@ SELECT ## parseDateTime64 \{#parseDateTime64\} -引入版本:v24.11 +引入于:v24.11 -根据 MySQL 日期格式字符串解析具有子秒级精度的日期和时间字符串。 +根据 MySQL 日期格式字符串解析具有亚秒级精度的日期时间字符串。 -对于 DateTime64 类型,此函数是 [`formatDateTime`](/sql-reference/functions/date-time-functions) 的逆函数。 -它按照给定的格式字符串解析一个 String 参数。返回一个 DateTime64 类型的值,可在子秒级精度下表示 1900 年到 2299 年之间的日期和时间。 +对于 DateTime64,此函数是 [`formatDateTime`](/sql-reference/functions/date-time-functions) 的逆函数。 +它使用格式字符串解析一个 String 参数。返回的类型为 DateTime64,可以表示从 1900 年到 2299 年、具有亚秒级精度的日期时间。 **语法** @@ -815,13 +848,13 @@ parseDateTime64(time_string, format[, timezone]) **参数** -* `time_string` — 要解析为 DateTime64 类型的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `time_string` — 将被解析为 DateTime64 的字符串。[`String`](/sql-reference/data-types/string) +* `format` — 指定如何解析 time_string 的格式字符串。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回根据 MySQL 风格的格式字符串,从输入字符串解析得到的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) +返回根据 MySQL 风格的格式字符串从输入字符串解析得到的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -840,7 +873,7 @@ SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTime64BestEffort \{#parseDateTime64BestEffort\} -引入版本:v20.1 +引入于:v20.1 与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 函数相同,但还会解析毫秒和微秒,并返回 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 数据类型。 @@ -853,8 +886,8 @@ parseDateTime64BestEffort(time_string[, precision[, time_zone]]) **参数** * `time_string` — 包含要转换的日期或日期时间的字符串。[`String`](/sql-reference/data-types/string) -* `precision` — 可选。目标精度。`3` 表示毫秒,`6` 表示微秒。默认值:`3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 可选。时区。函数会按照该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) +* `precision` — 可选。所需精度。`3` 表示毫秒,`6` 表示微秒。默认值:`3`。[`UInt8`](/sql-reference/data-types/int-uint) +* `time_zone` — 可选。时区。函数会根据该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) **返回值** @@ -887,9 +920,9 @@ FORMAT PrettyCompactMonoBlock ## parseDateTime64BestEffortOrNull \{#parseDateTime64BestEffortOrNull\} -引入于:v20.1 +自 v20.1 起引入。 -与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,不同之处在于,当遇到无法解析的日期格式时,它会返回 `NULL`。 +与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,但在遇到无法处理的日期格式时返回 `NULL`。 **语法** @@ -901,11 +934,11 @@ parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]]) * `time_string` — 包含要转换的日期或日期时间的字符串。[`String`](/sql-reference/data-types/string) * `precision` — 可选。所需精度。`3` 表示毫秒,`6` 表示微秒。默认值:`3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 可选。时区。函数会依据该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。时区。函数会根据该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) **返回值** -返回将 `time_string` 转换得到的 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 值;如果输入无法解析,则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) +返回将 `time_string` 转换为 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 的结果,如果无法解析输入,则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -927,7 +960,7 @@ SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid, 引入版本:v20.1 -与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,但在遇到无法解析的日期格式时,会返回零日期或零日期时间。 +与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,不同之处在于当遇到无法处理的日期格式时,它会返回零值日期或零值日期时间。 **语法** @@ -937,13 +970,13 @@ parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]]) **参数** -* `time_string` — 要转换的日期或日期时间字符串。[`String`](/sql-reference/data-types/string) +* `time_string` — 包含要转换的日期或日期时间的字符串。[`String`](/sql-reference/data-types/string) * `precision` — 可选。所需精度。`3` 表示毫秒,`6` 表示微秒。默认值:`3`。[`UInt8`](/sql-reference/data-types/int-uint) * `time_zone` — 可选。时区。函数会根据该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) **返回值** -返回将 `time_string` 转换为 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 的结果;如果无法解析输入,则返回零日期/日期时间值(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) +返回将 `time_string` 转换得到的 [`DateTime64`](../../sql-reference/data-types/datetime64.md),如果输入无法解析,则返回零日期/日期时间值(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -963,9 +996,9 @@ SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid, ## parseDateTime64BestEffortUS \{#parseDateTime64BestEffortUS\} -自 v22.8 引入。 +引入于:v22.8 -与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,只是在存在歧义时,该函数会优先采用美国日期格式(`MM/DD/YYYY` 等)。 +与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,但在存在歧义的情况下,该函数优先使用美国日期格式(`MM/DD/YYYY` 等)。 **语法** @@ -981,7 +1014,7 @@ parseDateTime64BestEffortUS(time_string [, precision [, time_zone]]) **返回值** -返回将 `time_string` 按照美国日期格式习惯(用于解析存在歧义的情况)转换为 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 的结果。[`DateTime64`](/sql-reference/data-types/datetime64) +返回将 `time_string` 按照美国日期格式偏好处理歧义情况后转换得到的 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 值。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -1001,9 +1034,9 @@ SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format, ## parseDateTime64BestEffortUSOrNull \{#parseDateTime64BestEffortUSOrNull\} -引入自:v22.8 +引入版本:v22.8 -与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,只是在存在歧义时,该函数会优先采用美国日期格式(`MM/DD/YYYY` 等),并在遇到无法处理的日期格式时返回 `NULL`。 +与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,只是在存在歧义时,该函数优先采用美国日期格式(如 `MM/DD/YYYY` 等),并在遇到无法处理的日期格式时返回 `NULL`。 **语法** @@ -1015,15 +1048,15 @@ parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]]) * `time_string` — 包含要转换的日期或日期时间的字符串。[`String`](/sql-reference/data-types/string) * `precision` — 可选。所需精度。`3` 表示毫秒,`6` 表示微秒。默认值:`3`。[`UInt8`](/sql-reference/data-types/int-uint) -* `time_zone` — 可选。时区。函数会根据指定时区解析 `time_string`。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。时区。函数会根据该时区解析 `time_string`。[`String`](/sql-reference/data-types/string) **返回值** -返回按美国惯用格式将 `time_string` 转换为 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 的结果,如果输入无法解析则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) +返回在优先采用美国日期格式的前提下,将 `time_string` 转换为 [`DateTime64`](../../sql-reference/data-types/datetime64.md) 的结果,如果输入无法解析则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us, @@ -1039,9 +1072,9 @@ SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us, ## parseDateTime64BestEffortUSOrZero \{#parseDateTime64BestEffortUSOrZero\} -自 v22.8 引入 +引入版本:v22.8 -与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,只是在存在歧义时,此函数会优先采用美国日期格式(`MM/DD/YYYY` 等),并在遇到无法处理的日期格式时返回全零日期或全零日期时间值。 +与 [`parseDateTime64BestEffort`](#parseDateTime64BestEffort) 相同,不同之处在于,在存在歧义时,该 FUNCTION 会优先采用美国日期格式(`MM/DD/YYYY` 等),并在遇到无法处理的日期格式时返回零日期或零日期时间。 **语法** @@ -1057,7 +1090,7 @@ parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) **返回值** -返回按美国格式习惯将 `time_string` 转换得到的 [`DateTime64`](../../sql-reference/data-types/datetime64.md),如果输入无法解析,则返回零日期/日期时间值(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) +返回按美国日期时间格式惯例将 `time_string` 转换得到的 [`DateTime64`](../../sql-reference/data-types/datetime64.md),如果输入无法解析,则返回零日期/日期时间(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -1079,12 +1112,12 @@ SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us, 引入于:v24.10 -根据 Joda 日期格式化字符串解析具备亚秒级精度的日期时间字符串。 +根据 Joda 日期格式字符串解析具有子秒精度的日期时间字符串。 -此函数是用于 DateTime64 的 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) 的反函数。 -它使用 Joda 风格的格式化字符串解析一个 String 类型参数。返回一个 DateTime64 类型,该类型可以表示从 1900 年到 2299 年、具备亚秒级精度的日期。 +此函数是用于 DateTime64 的 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) 的逆函数。 +它使用 Joda 风格的格式字符串解析一个字符串参数。返回一个 DateTime64 类型,可在 1900 到 2299 年范围内表示具有子秒精度的日期时间。 -有关格式模式,请参阅 [Joda Time 文档](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)。 +有关格式模式,请参考 [Joda Time 文档](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)。 **语法** @@ -1095,12 +1128,12 @@ parseDateTime64InJodaSyntax(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime64 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 采用 Joda 语法的格式字符串,用于指定如何解析 `time_string`。[`String`](/sql-reference/data-types/string) +* `format` — 按 Joda 语法编写的格式字符串,用于指定如何解析 `time_string`。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回根据 Joda 风格的格式字符串从输入字符串解析得到的 DateTime64。[`DateTime64`](/sql-reference/data-types/datetime64) +返回根据 Joda 风格格式字符串从输入字符串解析得到的 DateTime64。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -1119,7 +1152,7 @@ SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm: ## parseDateTime64InJodaSyntaxOrNull \{#parseDateTime64InJodaSyntaxOrNull\} -引入版本:v24.10 +自 v24.10 引入 与 [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) 相同,但在遇到无法解析的日期格式时返回 `NULL`。 @@ -1132,7 +1165,7 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime64 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 使用 Joda 语法指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 采用 Joda 语法的格式字符串,用于指定如何解析 time_string。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** @@ -1141,7 +1174,7 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS') @@ -1156,9 +1189,9 @@ SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64InJodaSyntaxOrZero \{#parseDateTime64InJodaSyntaxOrZero\} -引入版本:v24.10 +引入于:v24.10 -与 [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) 相同,但在遇到无法解析的日期格式时返回零日期值。 +与 [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax) 相同,但在遇到不可解析的日期格式时返回零日期值。 **语法** @@ -1169,7 +1202,7 @@ parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime64 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 使用 Joda 语法的格式字符串,指定如何解析 time_string。[`String`](/sql-reference/data-types/string) +* `format` — 使用 Joda 语法的格式字符串,用于指定如何解析 time_string。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** @@ -1193,9 +1226,9 @@ SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd ## parseDateTime64OrNull \{#parseDateTime64OrNull\} -引入自:v24.11 +引入版本:v24.11 -与 [`parseDateTime64`](#parseDateTime64) 相同,但在遇到无法解析的日期格式时返回 `NULL`。 +与 [`parseDateTime64`](#parseDateTime64) 相同,但在遇到无法解析的日期时间格式时返回 `NULL`。 **语法** @@ -1211,7 +1244,7 @@ parseDateTime64OrNull(time_string, format[, timezone]) **返回值** -返回从输入字符串解析得到的 DateTime64,如果解析失败,则返回 NULL。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) +返回根据输入字符串解析得到的 DateTime64,如果解析失败则返回 NULL。[`Nullable(DateTime64)`](/sql-reference/data-types/nullable) **示例** @@ -1230,9 +1263,9 @@ SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTime64OrZero \{#parseDateTime64OrZero\} -引入于:v24.11 +引入版本:v24.11 -与 [`parseDateTime64`](#parseDateTime64) 相同,但在遇到无法解析的日期格式时返回零值日期。 +与 [`parseDateTime64`](#parseDateTime64) 相同,但在遇到无法解析的日期格式时返回零日期值。 **语法** @@ -1243,16 +1276,16 @@ parseDateTime64OrZero(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime64 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从输入字符串解析得到的 DateTime64;如果解析失败,则返回 0 的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) +返回从输入字符串解析得到的 DateTime64;如果解析失败,则返回全为零的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') @@ -1267,21 +1300,21 @@ SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') ## parseDateTimeBestEffort \{#parseDateTimeBestEffort\} -引入于:v1.1 +引入版本:v1.1 将字符串形式的日期和时间转换为 DateTime 数据类型。 -该函数可以解析 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)、[RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822) 日期和时间规范、ClickHouse 自身的格式以及其他一些日期和时间格式。 +该函数会解析 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)、[RFC 1123 - 5.2.14 RFC-822 日期和时间规范](https://datatracker.ietf.org/doc/html/rfc822)、ClickHouse 自身的格式以及其他一些日期和时间格式。 支持的非标准格式: * 包含 9..10 位 Unix 时间戳的字符串。 * 同时包含日期和时间部分的字符串:`YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` 等。 -* 只包含日期而不包含时间部分的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 -* 仅包含日和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被替换为 `01`。 +* 仅包含日期、不包含时间部分的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 +* 仅包含“日”和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被替换为 `01`。 * 包含日期和时间以及时区偏移信息的字符串:`YYYY-MM-DD hh:mm:ss ±h:mm` 等。 * syslog 时间戳:`Mmm dd hh:mm:ss`。例如,`Jun 9 14:20:32`。 -对于所有带分隔符的格式,函数可以解析以月份全名或前三个字母表示的月份名称。 +对于所有带分隔符的格式,函数都可以解析以月份全名或前三个字母表示的月份名称。 如果未指定年份,则默认使用当前年份。 **语法** @@ -1292,8 +1325,8 @@ parseDateTimeBestEffort(time_string[, time_zone]) **参数** -* `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) +* `time_string` — 要转换的日期和时间字符串。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) **返回值** @@ -1301,7 +1334,7 @@ parseDateTimeBestEffort(time_string[, time_zone]) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort @@ -1313,7 +1346,7 @@ SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort └─────────────────────────┘ ``` -**含时区** +**包含时区** ```sql title=Query SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort @@ -1342,20 +1375,20 @@ SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort 引入版本:v1.1 -与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,不同之处在于当遇到无法处理的日期格式时会返回 `NULL`。 -该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 特有以及其他部分日期和时间格式。 +与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,不同之处在于,当遇到无法处理的日期格式时,该函数返回 `NULL`。 +该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 特有的以及其他一些日期和时间格式。 支持的非标准格式: -* 包含 9 到 10 位 Unix 时间戳的字符串。 +* 包含 9..10 位 Unix 时间戳的字符串。 * 同时包含日期和时间组件的字符串:`YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` 等。 -* 仅包含日期但不包含时间组件的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 -* 包含日和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被填充为 `01`。 -* 包含日期和时间以及时区偏移信息的字符串:`YYYY-MM-DD hh:mm:ss ±h:mm` 等。 +* 仅包含日期、不包含时间组件的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 +* 包含日和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被替换为 `01`。 +* 包含日期、时间以及时区偏移信息的字符串:`YYYY-MM-DD hh:mm:ss ±h:mm` 等。 * syslog 时间戳:`Mmm dd hh:mm:ss`。例如,`Jun 9 14:20:32`。 -对于所有带分隔符的格式,函数都可以解析以完整名称或月份名称前三个字母表示的月份名。 -如果未指定年份,则默认认为等于当前年份。 +对于所有带有分隔符的格式,函数可以解析以完整名称或月份名称前三个字母表示的月份。 +如果未指定年份,则默认使用当前年份。 **语法** @@ -1366,15 +1399,15 @@ parseDateTimeBestEffortOrNull(time_string[, time_zone]) **参数** * `time_string` — 包含要转换日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回 `time_string` 对应的 DateTime 值,如果输入无法解析则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) +将 `time_string` 转换为 DateTime 类型;如果输入无法解析,则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid, @@ -1392,20 +1425,20 @@ SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid, 引入于:v1.1 -与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,不同之处在于,当遇到无法处理的日期格式时,它会返回零日期或零日期时间值。 -该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 自身的格式以及其他一些日期和时间格式。 +与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,不同之处在于当遇到无法处理的日期格式时,它会返回全零日期或全零日期时间值。 +该函数可以解析 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)、[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55)、ClickHouse 自身以及其他一些日期和时间格式。 支持的非标准格式: * 包含 9~10 位 Unix 时间戳的字符串。 -* 同时包含日期和时间部分的字符串:`YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` 等。 -* 仅包含日期、不包含时间部分的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 -* 仅包含日和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被替换为 `01`。 -* 包含日期、时间以及时区偏移信息的字符串:`YYYY-MM-DD hh:mm:ss ±h:mm` 等。 +* 包含日期和时间部分的字符串:`YYYYMMDDhhmmss`、`DD/MM/YYYY hh:mm:ss`、`DD-MM-YY hh:mm`、`YYYY-MM-DD hh:mm:ss` 等。 +* 只有日期部分而没有时间部分的字符串:`YYYY`、`YYYYMM`、`YYYY*MM`、`DD/MM/YYYY`、`DD-MM-YY` 等。 +* 只包含日和时间的字符串:`DD`、`DD hh`、`DD hh:mm`。在这种情况下,`MM` 会被替换为 `01`。 +* 包含日期和时间以及时区偏移信息的字符串:`YYYY-MM-DD hh:mm:ss ±h:mm` 等。 * syslog 时间戳:`Mmm dd hh:mm:ss`。例如,`Jun 9 14:20:32`。 -对于所有带分隔符的格式,该函数可以解析以完整月份名称或月份名称前三个字母表示的月份。 -如果未指定年份,则默认为当前年份。 +对于所有使用分隔符的格式,函数可以解析以完整名称或首三个字母表示的月份名称。 +如果未指定年份,则默认等于当前年份。 **语法** @@ -1416,11 +1449,11 @@ parseDateTimeBestEffortOrZero(time_string[, time_zone]) **参数** * `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回与 `time_string` 对应的 `DateTime` 值;如果输入无法解析,则返回零日期/日期时间(`1970-01-01` 或 `1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) +将 `time_string` 作为 `DateTime` 返回;如果输入无法解析,则返回零日期/日期时间值(`1970-01-01` 或 `1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1440,11 +1473,11 @@ SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid, ## parseDateTimeBestEffortUS \{#parseDateTimeBestEffortUS\} -引入于:v1.1 +引入版本:v1.1 -对于 ISO 日期格式(例如 `YYYY-MM-DD hh:mm:ss`)以及其他可以无歧义地提取出“月”和“日”组成部分的日期格式(例如 `YYYYMMDDhhmmss`、`YYYY-MM`、`DD hh` 或 `YYYY-MM-DD hh:mm:ss ±h:mm`),此函数的行为与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同。 -如果“月”和“日”组成部分无法被无歧义地确定,例如 `MM/DD/YYYY`、`MM-DD-YYYY` 或 `MM-DD-YY`,则此函数会优先按照美国日期格式进行解析,而不是按照 `DD/MM/YYYY`、`DD-MM-YYYY` 或 `DD-MM-YY` 进行解析。 -作为对前述说明的一个例外,如果“月”的数值大于 12 且小于等于 31,则该函数会回退为 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 的行为,例如 `15/08/2020` 会被解析为 `2020-08-15`。 +对于 ISO 日期格式(例如 `YYYY-MM-DD hh:mm:ss`)以及其他可以无歧义解析出月份和日期部分的日期格式(例如 `YYYYMMDDhhmmss`、`YYYY-MM`、`DD hh` 或 `YYYY-MM-DD hh:mm:ss ±h:mm`),此函数的行为与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同。 +如果无法无歧义地解析出月份和日期部分,例如 `MM/DD/YYYY`、`MM-DD-YYYY` 或 `MM-DD-YY`,则该函数会优先按美国日期格式进行解析,而不是 `DD/MM/YYYY`、`DD-MM-YYYY` 或 `DD-MM-YY`。 +作为上述规则的一个例外,如果月份大于 12 且小于等于 31,则该函数会回退到与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同的行为,例如 `15/08/2020` 会被解析为 `2020-08-15`。 **语法** @@ -1454,12 +1487,12 @@ parseDateTimeBestEffortUS(time_string[, time_zone]) **参数** -* `time_string` — 要转换的日期和时间字符串。[`String`](/sql-reference/data-types/string) +* `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) * `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回由 `time_string` 解析得到的 `DateTime`,在存在歧义时优先按照美国日期格式进行解析。[`DateTime`](/sql-reference/data-types/datetime) +将 `time_string` 转换为 `DateTime` 类型,对于存在歧义的情况,按美国日期格式习惯进行解析。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1479,11 +1512,11 @@ SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format, ## parseDateTimeBestEffortUSOrNull \{#parseDateTimeBestEffortUSOrNull\} -引入于:v1.1 +引入自:v1.1 -与 [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 函数相同,只是当遇到无法处理的日期格式时会返回 `NULL`。 +与 [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 函数相同,只是在遇到无法处理的日期格式时返回 `NULL`。 -对于 ISO 日期格式,此函数的行为与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,但在存在歧义的情况下会优先采用美国日期格式,并在解析出错时返回 `NULL`。 +对于 ISO 日期格式,此函数的行为类似于 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort),但在存在歧义的情况下更倾向于使用美国日期格式,并且在解析错误时返回 `NULL`。 **语法** @@ -1493,12 +1526,12 @@ parseDateTimeBestEffortUSOrNull(time_string[, time_zone]) **参数** -* `time_string` — 包含要转换日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) +* `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) **返回值** -将 `time_string` 按美国格式优先解析为 DateTime 返回;若输入无法解析,则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) +按美国格式优先的规则将 `time_string` 解析并返回为 DateTime 类型;如果输入无法解析,则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -1518,11 +1551,11 @@ SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us, ## parseDateTimeBestEffortUSOrZero \{#parseDateTimeBestEffortUSOrZero\} -引入自:v1.1 +引入版本:v1.1 -与 [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 函数相同,只是在遇到无法处理的日期格式时,会返回零日期(`1970-01-01`)或带时间的零日期(`1970-01-01 00:00:00`)。 +与 [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS) 函数相同,不同之处在于,当遇到无法处理的日期格式时,它会返回零日期(`1970-01-01`)或带时间的零日期(`1970-01-01 00:00:00`)。 -对于 ISO 日期格式,此函数的行为与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 一致,但在存在歧义的情况下更偏向使用美国日期格式,并且在解析错误时返回零日期值。 +对于 ISO 日期格式,此函数的行为与 [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) 相同,但在存在歧义的情况下更偏向采用美国日期格式,并且在解析出错时返回零值。 **语法** @@ -1533,11 +1566,11 @@ parseDateTimeBestEffortUSOrZero(time_string[, time_zone]) **参数** * `time_string` — 包含要转换的日期和时间的字符串。[`String`](/sql-reference/data-types/string) -* `time_zone` — 可选。解析 `time_string` 时使用的时区。[`String`](/sql-reference/data-types/string) +* `time_zone` — 可选。用于解析 `time_string` 的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回按美国格式偏好将 `time_string` 解析得到的 `DateTime` 值;如果输入无法解析,则返回零日期/日期时间值(`1970-01-01` 或 `1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) +将 `time_string` 按照美国格式偏好解析并返回为 `DateTime`;如果输入无法解析,则返回零值日期/日期时间(`1970-01-01` 或 `1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1557,14 +1590,14 @@ SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us, ## parseDateTimeInJodaSyntax \{#parseDateTimeInJodaSyntax\} -引入版本:v23.3 +引入于:v23.3 根据 Joda 日期格式字符串解析日期和时间字符串。 此函数是 [`formatDateTimeInJodaSyntax`](/sql-reference/functions/date-time-functions#formatDateTimeInJodaSyntax) 的逆函数。 -它使用 Joda 风格的格式字符串解析一个 String 类型的参数,返回一个 DateTime 类型的值。 +它使用 Joda 风格的格式字符串解析一个 String 参数。返回 DateTime 类型的值。 -有关格式模式,请参考 [Joda Time 文档](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)。 +有关格式模式,请参阅 [Joda Time 文档](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)。 **语法** @@ -1575,12 +1608,12 @@ parseDateTimeInJodaSyntax(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 使用 Joda 语法指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 使用 Joda 语法的格式字符串,指定如何解析 `time_string`。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回根据 Joda 风格的格式字符串从输入字符串解析得到的 DateTime。[`DateTime`](/sql-reference/data-types/datetime) +返回一个根据 Joda 风格格式字符串从输入字符串解析得到的 DateTime 值。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1599,9 +1632,9 @@ SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss') ## parseDateTimeInJodaSyntaxOrNull \{#parseDateTimeInJodaSyntaxOrNull\} -自 v23.3 起引入 +自 v23.3 版本引入。 -与 [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) 相同,但当遇到无法解析的日期格式时返回 `NULL`。 +与 [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) 相同,但在遇到无法解析的日期格式时返回 `NULL`。 **语法** @@ -1612,12 +1645,12 @@ parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 用于按照 Joda 语法指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 使用 Joda 语法的格式字符串,用于指定如何解析 `time_string`。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从输入字符串解析得到的 DateTime,若解析失败则返回 NULL。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) +返回从输入字符串解析得到的 DateTime,如果解析失败则返回 NULL。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) **示例** @@ -1636,7 +1669,7 @@ SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: ## parseDateTimeInJodaSyntaxOrZero \{#parseDateTimeInJodaSyntaxOrZero\} -引入于:v23.3 +引入版本:v23.3 与 [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax) 相同,但在遇到无法解析的日期格式时返回零日期值。 @@ -1649,12 +1682,12 @@ parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone]) **参数** * `time_string` — 要解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 使用 Joda 语法指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 采用 Joda 语法的格式字符串,用于指定如何解析 time_string。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从输入字符串解析得到的 DateTime,如果解析失败则返回零值的 DateTime。[`DateTime`](/sql-reference/data-types/datetime) +返回从输入字符串解析得到的 DateTime,如果解析失败则返回全零的 DateTime 值。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1673,7 +1706,7 @@ SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: ## parseDateTimeOrNull \{#parseDateTimeOrNull\} -自 v23.3 起引入 +自 v23.3 起引入。 与 [`parseDateTime`](#parseDateTime) 相同,但在遇到无法解析的日期格式时返回 `NULL`。 @@ -1683,17 +1716,17 @@ SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm: parseDateTimeOrNull(time_string, format[, timezone]) ``` -**别名**: `str_to_date` +**别名**:`str_to_date` **参数** * `time_string` — 要解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `format` — 指定如何解析 time_string 的格式字符串。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从输入字符串解析得到的 DateTime,如果解析失败,则返回 NULL。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) +返回从输入字符串解析得到的 DateTime,如果解析失败则返回 NULL。[`Nullable(DateTime)`](/sql-reference/data-types/nullable) **示例** @@ -1714,7 +1747,7 @@ SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') 引入版本:v23.3 -与 [`parseDateTime`](#parseDateTime) 相同,但在遇到无法解析的日期格式时返回零日期值。 +与 [`parseDateTime`](#parseDateTime) 相同,但在遇到无法解析的日期格式时返回零值日期。 **语法** @@ -1724,13 +1757,13 @@ parseDateTimeOrZero(time_string, format[, timezone]) **参数** -* `time_string` — 将被解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) -* `format` — 指定如何解析 `time_string` 的格式字符串。[`String`](/sql-reference/data-types/string) +* `time_string` — 要解析为 DateTime 的字符串。[`String`](/sql-reference/data-types/string) +* `format` — 指定如何解析 time_string 的格式字符串。[`String`](/sql-reference/data-types/string) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) **返回值** -返回从输入字符串解析得到的 DateTime,如果解析失败则返回零值 DateTime。[`DateTime`](/sql-reference/data-types/datetime) +返回从输入字符串解析得到的 DateTime,如果解析失败则返回全零的 DateTime 值。[`DateTime`](/sql-reference/data-types/datetime) **示例** @@ -1749,9 +1782,9 @@ SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') ## reinterpret \{#reinterpret\} -自 v1.1 起引入 +引入自:v1.1 -对给定值 `x` 复用其在内存中的原始字节序列,并将其重新解释为目标类型。 +对给定值 `x` 复用其在内存中的同一字节序列,并将其按目标类型重新解释。 **语法** @@ -1762,7 +1795,7 @@ reinterpret(x, type) **参数** * `x` — 任意类型。[`Any`](/sql-reference/data-types) -* `type` — 目标类型。如果是数组类型,则数组元素类型必须是定长类型。[`String`](/sql-reference/data-types/string) +* `type` — 目标类型。如果是数组,则数组元素类型必须是定长类型。[`String`](/sql-reference/data-types/string) **返回值** @@ -1799,9 +1832,9 @@ SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS str ## reinterpretAsDate \{#reinterpretAsDate\} -引入版本:v1.1 +自 v1.1 版本引入 -将输入值重新解释为一个 Date 值(假定为小端字节序),表示自 Unix 纪元起点 1970-01-01 以来经过的天数。 +将输入值重新解释为一个 Date 类型的值(假定为小端字节序),表示自 Unix 纪元 1970-01-01 起经过的天数。 **语法** @@ -1811,7 +1844,7 @@ reinterpretAsDate(x) **参数** -* `x` — 自 Unix 纪元开始经过的天数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 自 Unix 纪元起算的天数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** @@ -1836,7 +1869,7 @@ SELECT reinterpretAsDate(65), reinterpretAsDate('A') 引入于:v1.1 -将输入值重新解释为一个 DateTime 值(假设为小端序),该值表示自 Unix 纪元(1970-01-01)开始以来的天数。 +将输入值按小端序重新解释为一个 DateTime 值,该值表示自 Unix 纪元(1970-01-01)起算的天数。 **语法** @@ -1846,7 +1879,7 @@ reinterpretAsDateTime(x) **参数** -* `x` — 自 Unix 纪元开始起算的秒数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 自 Unix 纪元(Unix Epoch)开始起计算的秒数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** @@ -1869,10 +1902,10 @@ SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A') ## reinterpretAsFixedString \{#reinterpretAsFixedString\} -自 v1.1 引入 +引入自:v1.1 将输入值重新解释为定长字符串(假定为小端字节序)。 -末尾的空字节会被忽略,例如,对于 UInt32 值 255,该函数返回仅包含单个字符的字符串。 +末尾的空字节会被忽略,例如,对于 UInt32 值 255,该函数返回一个仅包含单个字符的字符串。 **语法** @@ -1882,15 +1915,15 @@ reinterpretAsFixedString(x) **参数** -* `x` — 要重新解释为字符串的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 要按字符串重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) **返回值** -定长字符串,其中的字节表示 `x`。[`FixedString`](/sql-reference/data-types/fixedstring) +包含表示 `x` 的字节的定长字符串值。[`FixedString`](/sql-reference/data-types/fixedstring) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -1910,7 +1943,7 @@ SELECT 引入版本:v1.1 将输入值重新解释为 Float32 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入类型,则输出结果未定义。 **语法** @@ -1920,11 +1953,11 @@ reinterpretAsFloat32(x) **参数** -* `x` — 要重新解释为 Float32 的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 将被重新解释为 Float32 的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回重新解释后的 `x` 值。[`Float32`](/sql-reference/data-types/float) +返回将 `x` 重新解释后的值。[`Float32`](/sql-reference/data-types/float) **示例** @@ -1943,10 +1976,10 @@ SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x) ## reinterpretAsFloat64 \{#reinterpretAsFloat64\} -首次在 v1.1 中引入 +引入版本:v1.1 将输入值重新解释为 Float64 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入类型,则输出是未定义的。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示该输入值,则结果是未定义的。 **语法** @@ -1956,7 +1989,7 @@ reinterpretAsFloat64(x) **参数** -* `x` — 要按 Float64 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 按 Float64 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** @@ -1964,7 +1997,7 @@ reinterpretAsFloat64(x) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) @@ -1981,8 +2014,8 @@ SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x) 引入版本:v1.1 -将输入值按 `Int128` 类型重新解释。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,其结果未定义。 +将输入值重新解释为 `Int128` 类型的值。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示该输入值,则输出结果未定义。 **语法** @@ -1992,11 +2025,11 @@ reinterpretAsInt128(x) **参数** -* `x` — 按 Int128 重新解释的值。可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 +* `x` — 要按 Int128 类型重解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按 Int128 重新解释后的值 `x`。[`Int128`](/sql-reference/data-types/int-uint) +返回按 Int128 类型重解释后的值 `x`。[`Int128`](/sql-reference/data-types/int-uint) **示例** @@ -2019,10 +2052,10 @@ SELECT ## reinterpretAsInt16 \{#reinterpretAsInt16\} -引入版本:v1.1 +引入于:v1.1 -将输入值重新解释为 Int16 类型的值。 -与 [`CAST`](#CAST) 不同,函数不会尝试保留原始值——如果目标类型无法表示输入值,输出是未定义的。 +将输入值重新解释为 `Int16` 类型的值。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出未定义。 **语法** @@ -2032,15 +2065,15 @@ reinterpretAsInt16(x) **参数** -* `x` — 要按 Int16 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 要按 Int16 类型重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按 Int16 重新解释后的值 `x`。[`Int16`](/sql-reference/data-types/int-uint) +返回按 Int16 类型重新解释后的 `x` 值。[`Int16`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -2059,10 +2092,10 @@ SELECT ## reinterpretAsInt256 \{#reinterpretAsInt256\} -自 v1.1 引入 +引入于:v1.1 -将输入值重新解释为 Int256 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 +将输入值按位重新解释为 `Int256` 类型的值。 +与 [`CAST`](#CAST) 不同,该 FUNCTION 不尝试保留原始数值——如果目标类型无法表示输入值,则输出结果未定义。 **语法** @@ -2072,11 +2105,11 @@ reinterpretAsInt256(x) **参数** -* `x` — 要按 Int256 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 要重新解释为 Int256 类型的值。可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 **返回值** -返回按新类型重新解释后的值 `x`。[`Int256`](/sql-reference/data-types/int-uint) +返回将 `x` 重新解释后的值。[`Int256`](/sql-reference/data-types/int-uint) **示例** @@ -2099,10 +2132,10 @@ SELECT ## reinterpretAsInt32 \{#reinterpretAsInt32\} -引入版本:v1.1 +自 v1.1 起引入 -将输入值重新解释为 Int32 类型的值。 -与 [`CAST`](#CAST) 不同,函数不会尝试保留原始值——如果目标类型无法表示该输入值,则输出结果未定义。 +将输入值按 Int32 类型重新解释。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始数值——如果目标类型无法表示输入类型,输出结果未定义。 **语法** @@ -2112,11 +2145,11 @@ reinterpretAsInt32(x) **参数** -* `x` — 要按 Int32 重解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 要按 Int32 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按 Int32 重解释后的值 `x`。[`Int32`](/sql-reference/data-types/int-uint) +返回按 Int32 重新解释后的值 `x`。[`Int32`](/sql-reference/data-types/int-uint) **示例** @@ -2139,10 +2172,10 @@ SELECT ## reinterpretAsInt64 \{#reinterpretAsInt64\} -引入版本:v1.1 +自 v1.1 引入 将输入值重新解释为 `Int64` 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入类型,则输出结果未定义。 +与 [`CAST`](#CAST) 不同,该 FUNCTION 不会尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 **语法** @@ -2152,15 +2185,15 @@ reinterpretAsInt64(x) **参数** -* `x` — 要按 Int64 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 按 Int64 类型重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按新类型重新解释后的值 `x`。[`Int64`](/sql-reference/data-types/int-uint) +返回按 Int64 类型重新解释后的值 `x`,类型为 [`Int64`](/sql-reference/data-types/int-uint)。 **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -2179,10 +2212,10 @@ SELECT ## reinterpretAsInt8 \{#reinterpretAsInt8\} -引入于:v1.1 +引入版本:v1.1 -将输入值重新解释为 Int8 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入类型,则输出未定义。 +将输入值按 Int8 类型重新解释为一个值。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出是未定义的。 **语法** @@ -2192,11 +2225,11 @@ reinterpretAsInt8(x) **参数** -* `x` — 要重新解释为 Int8 的值。可以为 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 +* `x` — 要重解释为 Int8 的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回将 `x` 重新解释后的值。[`Int8`](/sql-reference/data-types/int-uint) +返回将 `x` 重解释后的值。[`Int8`](/sql-reference/data-types/int-uint) **示例** @@ -2219,10 +2252,10 @@ SELECT ## reinterpretAsString \{#reinterpretAsString\} -引入版本:v1.1 +引入于:v1.1 将输入值重新解释为字符串(假定为小端字节序)。 -末尾的空字节会被忽略,例如,对于 UInt32 值 255,该函数会返回仅包含一个字符的字符串。 +末尾的空字节会被忽略,例如,对于 UInt32 值 255,函数会返回一个只包含单个字符的字符串。 **语法** @@ -2232,15 +2265,15 @@ reinterpretAsString(x) **参数** -* `x` — 要按字节重新解释为字符串的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 按字符串方式重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) **返回值** -包含表示 `x` 的字节序列的字符串。[`String`](/sql-reference/data-types/string) +由表示 `x` 的字节组成的字符串。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -2260,7 +2293,7 @@ SELECT 引入版本:v1.1 将输入值重新解释为 `UInt128` 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出是未定义的。 +不同于 [`CAST`](#CAST),该 FUNCTION 不会尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 **语法** @@ -2270,11 +2303,11 @@ reinterpretAsUInt128(x) **参数** -* `x` — 要重新解释为 UInt128 的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 要按 UInt128 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回重新解释后的值 `x`。[`UInt128`](/sql-reference/data-types/int-uint) +返回按 UInt128 重新解释后的值 `x`。[`UInt128`](/sql-reference/data-types/int-uint) **示例** @@ -2297,10 +2330,10 @@ SELECT ## reinterpretAsUInt16 \{#reinterpretAsUInt16\} -自 v1.1 引入 +引入于:v1.1 将输入值重新解释为 `UInt16` 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示该输入值,则输出是未定义的。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出是未定义的。 **语法** @@ -2310,15 +2343,15 @@ reinterpretAsUInt16(x) **参数** -* `x` — 要按 UInt16 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 要被重新解释为 UInt16 的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按 UInt16 重新解释后的值 `x`。[`UInt16`](/sql-reference/data-types/int-uint) +返回重新解释后的 `x` 值。[`UInt16`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -2337,10 +2370,10 @@ SELECT ## reinterpretAsUInt256 \{#reinterpretAsUInt256\} -自 v1.1 起引入 +引入版本:v1.1 将输入值重新解释为 `UInt256` 类型的值。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入类型,则输出未定义。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 **语法** @@ -2350,11 +2383,11 @@ reinterpretAsUInt256(x) **参数** -* `x` — 要重新解释为 UInt256 类型的值。可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 +* `x` — 需要被重新解释为 UInt256 的值。类型可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回将 `x` 重新解释为 [`UInt256`](/sql-reference/data-types/int-uint) 类型后的值。 +返回将 `x` 重新解释后的值。[`UInt256`](/sql-reference/data-types/int-uint) **示例** @@ -2379,8 +2412,8 @@ SELECT 引入于:v1.1 -将输入值按 `UInt32` 类型重新解释。 -与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出是未定义的。 +将输入值重新解释为 `UInt32` 类型的值。 +与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值;如果目标类型无法表示输入值,则结果是未定义的。 **语法** @@ -2390,11 +2423,11 @@ reinterpretAsUInt32(x) **参数** -* `x` — 要按 UInt32 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `x` — 被按 UInt32 重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回被重新解释后的 `x` 值。[`UInt32`](/sql-reference/data-types/int-uint) +返回对 `x` 重新解释后的值。[`UInt32`](/sql-reference/data-types/int-uint) **示例** @@ -2417,10 +2450,10 @@ SELECT ## reinterpretAsUInt64 \{#reinterpretAsUInt64\} -引入版本:v1.1 +引入于:v1.1 -将输入值按 `UInt64` 类型重新解释为该类型的值。 -与 [`CAST`](#CAST) 不同,函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出是未定义的。 +将输入值重新解释为 `UInt64` 类型的值。 +不同于 [`CAST`](#CAST),该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出结果未定义。 **语法** @@ -2430,11 +2463,11 @@ reinterpretAsUInt64(x) **参数** -* `x` — 按 UInt64 重新解释的值。可以是 [`Int*`](/sql-reference/data-types/int-uint)、[`UInt*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 +* `x` — 按 UInt64 重新解释的值。[`Int*`](/sql-reference/data-types/int-uint) 或 [`UInt*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回按 UInt64 重新解释后的 `x` 的值。[`UInt64`](/sql-reference/data-types/int-uint) +返回按上述方式重新解释后的 `x` 值。[`UInt64`](/sql-reference/data-types/int-uint) **示例** @@ -2457,7 +2490,7 @@ SELECT ## reinterpretAsUInt8 \{#reinterpretAsUInt8\} -自 v1.1 起引入 +自 v1.1 引入 将输入值重新解释为 `UInt8` 类型的值。 与 [`CAST`](#CAST) 不同,该函数不会尝试保留原始值——如果目标类型无法表示输入值,则输出未定义。 @@ -2470,11 +2503,11 @@ reinterpretAsUInt8(x) **参数** -* `x` — 要重新解释为 UInt8 类型的值。类型可以是 [`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`UUID`](/sql-reference/data-types/uuid)、[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring)。 +* `x` — 要按 UInt8 类型重新解释的值。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`UUID`](/sql-reference/data-types/uuid) 或 [`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回重新解释后的 `x` 值,类型为 [`UInt8`](/sql-reference/data-types/int-uint)。 +返回重新解释后的值 `x`,类型为 [`UInt8`](/sql-reference/data-types/int-uint)。 **示例** @@ -2497,9 +2530,9 @@ SELECT ## reinterpretAsUUID \{#reinterpretAsUUID\} -自 v1.1 起引入 +引入版本:v1.1 -接受一个 16 字节的字符串,并通过将其分成两个 8 字节部分、按小端字节序解释来返回一个 UUID。如果字符串长度不足,函数的行为等同于在字符串末尾填充所需数量的空字节。如果字符串长度超过 16 字节,则会忽略末尾多余的字节。 +接受一个长度为 16 字节的字符串,将其拆分为两个 8 字节部分,并按小端字节序解释每个部分,从而返回一个 UUID。如果字符串长度不足,函数的行为等同于在字符串末尾用所需数量的空字节进行填充。如果字符串长于 16 字节,则会忽略末尾多余的字节。 **语法** @@ -2509,7 +2542,7 @@ reinterpretAsUUID(fixed_string) **参数** -* `fixed_string` — 大端序字节串。[`FixedString`](/sql-reference/data-types/fixedstring) +* `fixed_string` — 大端序字节字符串。[`FixedString`](/sql-reference/data-types/fixedstring) **返回值** @@ -2532,10 +2565,10 @@ SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f'))) ## toBFloat16 \{#toBFloat16\} -引入版本:v1.1 +自 v1.1 引入 将输入值转换为 BFloat16 类型的值。 -发生错误时抛出异常。 +发生错误时会抛出异常。 另请参阅: @@ -2550,11 +2583,11 @@ toBFloat16(expr) **参数** -* `expr` — 求值结果为数字或数字字符串表示的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 结果为数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回一个 16 位 bfloat16 浮点值。[`BFloat16`](/sql-reference/data-types/float) +返回一个 16 位 brain floating point(BFloat16)值。[`BFloat16`](/sql-reference/data-types/float) **示例** @@ -2579,8 +2612,8 @@ toBFloat16('42.7'): 42.5 引入版本:v1.1 -将一个字符串类型的输入值转换为 BFloat16 类型的值。 -如果该字符串不表示浮点数,则函数返回 NULL。 +将一个 String 输入值转换为 BFloat16 类型的值。 +如果该字符串不表示浮点值,则函数返回 NULL。 支持的参数: @@ -2588,17 +2621,17 @@ toBFloat16('42.7'): 42.5 不支持的参数(返回 `NULL`): -* 二进制和十六进制数值的字符串表示。 -* 数值类型的输入值。 +* 二进制和十六进制值的字符串表示。 +* 数值类型的值。 :::note -该函数在从字符串表示进行转换时允许静默地损失精度。 +该函数在从字符串表示进行转换时允许静默的精度损失。 ::: 另请参阅: -* [`toBFloat16`](#toBFloat16)。 -* [`toBFloat16OrZero`](#toBFloat16OrZero)。 +* [`toBFloat16`](#toBFloat16). +* [`toBFloat16OrZero`](#toBFloat16OrZero). **语法** @@ -2612,7 +2645,7 @@ toBFloat16OrNull(x) **返回值** -返回一个 16 位 bfloat16 浮点数值,否则为 `NULL`。[`BFloat16`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) +返回一个 16 位 BFloat16 浮点值,否则返回 `NULL`。[`BFloat16`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -2633,22 +2666,22 @@ SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments ## toBFloat16OrZero \{#toBFloat16OrZero\} -引入版本:v1.1 +引入于:v1.1 -将 String 类型的输入值转换为 BFloat16 类型的值。 -如果字符串不表示浮点数值,则函数返回 0。 +将一个 String 输入值转换为 BFloat16 类型的值。 +如果该字符串不表示浮点数值,函数返回 0。 支持的参数: -* 数值的字符串表示。 +* 数值的字符串形式。 不支持的参数(返回 `0`): -* 二进制和十六进制值的字符串表示。 +* 二进制值和十六进制值的字符串形式。 * 数值类型的值。 :::note -该函数在从字符串表示进行转换时允许无提示的精度损失。 +该函数在从字符串表示转换时可能会静默丢失精度。 ::: 另请参阅: @@ -2664,11 +2697,11 @@ toBFloat16OrZero(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示。[`String`](/sql-reference/data-types/string) **返回值** -返回一个 16 位 BFloat16(brain floating point)值,否则返回 `0`。[`BFloat16`](/sql-reference/data-types/float) +返回 16 位 brain-float 浮点值,否则返回 `0`。[`BFloat16`](/sql-reference/data-types/float) **示例** @@ -2689,7 +2722,7 @@ SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments ## toBool \{#toBool\} -自 v22.2 起引入 +自 v22.2 引入 将输入值转换为 Bool 类型的值。 @@ -2701,15 +2734,15 @@ toBool(expr) **参数** -* `expr` — 其结果为数字或字符串的表达式。对于字符串,接受 'true' 或 'false'(不区分大小写)。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) 或 [`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或字符串的表达式。对于字符串,接受 'true' 或 'false'(不区分大小写)。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) 或 [`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -根据参数的求值结果返回 `true` 或 `false`。[`Bool`](/sql-reference/data-types/boolean) +根据参数求值结果返回 `true` 或 `false`。[`Bool`](/sql-reference/data-types/boolean) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -2734,7 +2767,7 @@ toBool('FALSE'): false ## toDate \{#toDate\} -自 v1.1 引入 +自 v1.1 起引入 将输入值转换为 [`Date`](/sql-reference/data-types/date) 类型。 支持从 String、FixedString、DateTime 或数值类型进行转换。 @@ -2751,11 +2784,11 @@ toDate(x) **返回值** -返回转换后的日期值。[`Date`](/sql-reference/data-types/date) +返回转换后的值。[`Date`](/sql-reference/data-types/date) **示例** -**将 String 转换为 Date** +**String 转换为 Date** ```sql title=Query SELECT toDate('2025-04-15') @@ -2775,7 +2808,7 @@ SELECT toDate(toDateTime('2025-04-15 10:30:00')) 2025-04-15 ``` -**整数转换为 Date** +**将整数转换为 Date** ```sql title=Query SELECT toDate(20297) @@ -2788,11 +2821,11 @@ SELECT toDate(20297) ## toDate32 \{#toDate32\} -首次引入于:v21.9 +自 v21.9 引入 将参数转换为 [Date32](../data-types/date32.md) 数据类型。 -如果值超出范围,`toDate32` 会返回 [Date32](../data-types/date32.md) 所支持范围的边界值。 -如果参数类型为 [`Date`](../data-types/date.md),则会考虑其自身的取值边界。 +如果值超出取值范围,`toDate32` 会返回 [Date32](../data-types/date32.md) 所支持的边界值。 +如果参数类型为 [`Date`](../data-types/date.md),则会考虑该类型的取值范围。 **语法** @@ -2802,15 +2835,15 @@ toDate32(expr) **参数** -* `expr` — 要转换的值。[`String`](/sql-reference/data-types/string)、[`UInt32`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) +* `expr` — 要转换的值。[`String`](/sql-reference/data-types/string) 或 [`UInt32`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) **返回值** -返回一个日历日期。[`Date32`](/sql-reference/data-types/date32) +返回日历日期。[`Date32`](/sql-reference/data-types/date32) **示例** -**处于有效范围内** +**在有效范围内** ```sql title=Query SELECT toDate32('2025-01-01') AS value, toTypeName(value) @@ -2824,7 +2857,7 @@ value: 2025-01-01 toTypeName(value): Date32 ``` -**超出有效范围** +**超出取值范围** ```sql title=Query SELECT toDate32('1899-01-01') AS value, toTypeName(value) @@ -2841,9 +2874,9 @@ toTypeName(value): Date32 ## toDate32OrDefault \{#toDate32OrDefault\} -引入版本:v21.11 +引入于:v21.11 -将参数转换为 [Date32](../data-types/date32.md) 数据类型。如果值超出取值范围,`toDate32OrDefault` 会返回 [Date32](../data-types/date32.md) 支持的下边界值。如果参数的类型是 [Date](../data-types/date.md),则会同时考虑该类型的取值边界。当接收到无效参数时,返回默认值。 +将参数转换为 [Date32](../data-types/date32.md) 数据类型。如果值超出该类型的取值范围,`toDate32OrDefault` 会返回 [Date32](../data-types/date32.md) 支持的下边界值。如果参数类型为 [Date](../data-types/date.md),则会同时考虑 `Date` 类型的取值边界。若接收到无效参数,则返回默认值。 **语法** @@ -2854,15 +2887,15 @@ toDate32OrDefault(expr[, default]) **参数** * `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时返回的默认值。[`Date32`](/sql-reference/data-types/date32) +* `default` — 可选。解析失败时要返回的默认值。[`Date32`](/sql-reference/data-types/date32) **返回值** -如果解析成功,则返回 Date32 类型的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 1900-01-01。[`Date32`](/sql-reference/data-types/date32) +如果转换成功,则返回类型为 Date32 的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 1900-01-01。[`Date32`](/sql-reference/data-types/date32) **示例** -**成功的转换** +**转换成功** ```sql title=Query SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01')) @@ -2885,10 +2918,10 @@ SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01')) ## toDate32OrNull \{#toDate32OrNull\} -引入版本:v21.9 +自 v21.9 引入 -将输入值转换为 `Date32` 类型的值,但在传入无效参数时返回 `NULL`。 -与 [`toDate32`](#toDate32) 相同,只是当传入无效参数时返回 `NULL`。 +将输入值转换为 `Date32` 类型的值,如果参数无效则返回 `NULL`。 +与 [`toDate32`](#toDate32) 相同,只是在参数无效时返回 `NULL`。 **语法** @@ -2898,15 +2931,15 @@ toDate32OrNull(x) **参数** -* `x` — 日期的字符串形式。[`String`](/sql-reference/data-types/string) +* `x` — 日期的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 Date32 值,否则返回 `NULL`。[`Date32`](/sql-reference/data-types/date32) 或 [`NULL`](/sql-reference/syntax#null) +成功时返回一个 Date32 类型的值,否则返回 `NULL`。[`Date32`](/sql-reference/data-types/date32) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') @@ -2921,10 +2954,10 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') ## toDate32OrZero \{#toDate32OrZero\} -引入于:v21.9 +引入自:v21.9 -将输入值转换为 [Date32](../data-types/date32.md) 类型的值,但在接收到无效参数时返回 [Date32](../data-types/date32.md) 的下限值。 -与 [toDate32](#toDate32) 相同,但在接收到无效参数时返回 [Date32](../data-types/date32.md) 的下限值。 +将输入值转换为 [Date32](../data-types/date32.md) 类型的值,但在接收到无效参数时返回 [Date32](../data-types/date32.md) 的下界。 +与 [toDate32](#toDate32) 相同,但在接收到无效参数时返回 [Date32](../data-types/date32.md) 的下界。 另请参阅: @@ -2940,11 +2973,11 @@ toDate32OrZero(x) **参数** -* `x` — 日期的字符串形式。[`String`](/sql-reference/data-types/string) +* `x` — 日期的字符串形式表示。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 Date32 值,否则返回 Date32 的下界值(`1900-01-01`)。[`Date32`](/sql-reference/data-types/date32) +成功时返回一个 Date32 值,否则返回 Date32 的下界值 (`1900-01-01`)。[`Date32`](/sql-reference/data-types/date32) **示例** @@ -2963,9 +2996,9 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') ## toDateOrDefault \{#toDateOrDefault\} -自 v21.11 引入 +引入版本:v21.11 -类似于 [toDate](#toDate),但在转换失败时,会返回一个默认值:如果指定了第二个参数,则返回该参数的值;否则返回 [Date](../data-types/date.md) 的下界。 +类似于 [toDate](#toDate),但在转换失败时,会返回一个默认值:如果指定了第二个参数,则使用第二个参数,否则返回 [Date](../data-types/date.md) 的最小值。 **语法** @@ -2975,16 +3008,16 @@ toDateOrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时要返回的默认值。[`Date`](/sql-reference/data-types/date) +* `expr` — 返回数值或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时返回的默认值。[`Date`](/sql-reference/data-types/date) **返回值** -成功时返回类型为 Date 的值;否则,如果传入了默认值则返回该默认值,未传入时返回 1970-01-01。[`Date`](/sql-reference/data-types/date) +解析成功时返回 `Date` 类型的值;否则,如果提供了默认值则返回该默认值,如果未提供则返回 `1970-01-01`。[`Date`](/sql-reference/data-types/date) **示例** -**转换成功** +**成功转换** ```sql title=Query SELECT toDateOrDefault('2022-12-30') @@ -3007,10 +3040,10 @@ SELECT toDateOrDefault('', CAST('2023-01-01', 'Date')) ## toDateOrNull \{#toDateOrNull\} -引入版本:v1.1 +自 v1.1 起引入 -将输入值转换为 `Date` 类型的值,但在传入无效参数时返回 `NULL`。 -与 [`toDate`](#toDate) 相同,但在传入无效参数时返回 `NULL`。 +将输入值转换为 `Date` 类型的值,但在接收到无效参数时返回 `NULL`。 +与 [`toDate`](#toDate) 相同,但在接收到无效参数时返回 `NULL`。 **语法** @@ -3024,7 +3057,7 @@ toDateOrNull(x) **返回值** -成功时返回一个 Date 类型的值,否则返回 `NULL`。[`Date`](/sql-reference/data-types/date) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回一个 Date 值,否则返回 `NULL`。[`Date`](/sql-reference/data-types/date) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -3062,11 +3095,11 @@ toDateOrZero(x) **参数** -* `x` — 日期的字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 日期的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 Date 类型的值,否则返回 Date 类型的下界值(`1970-01-01`)。[`Date`](/sql-reference/data-types/date) +成功时返回 `Date` 类型的值,否则返回 `Date` 类型的下界(`1970-01-01`)。[`Date`](/sql-reference/data-types/date) **示例** @@ -3090,9 +3123,9 @@ SELECT toDateOrZero('2025-12-30'), toDateOrZero('') 将输入值转换为 [DateTime](../data-types/datetime.md) 类型。 :::note -如果 `expr` 是数字,则将其解释为自 Unix 纪元(Unix Epoch)开始以来经过的秒数(即 Unix 时间戳)。 -如果 `expr` 是 [String](../data-types/string.md),则可能被解释为 Unix 时间戳,或者是日期/日期时间的字符串表示。 -因此,由于存在歧义,明确禁用了对长度较短的数字字符串(最多 4 位)的解析,例如字符串 `'1999'` 既可以表示年份(不完整的 Date / DateTime 字符串表示),也可以表示 Unix 时间戳。而长度更长的数字字符串是允许的。 +如果 `expr` 是数值,则将其解释为自 Unix 纪元(Unix Epoch)开始以来的秒数(即 Unix 时间戳)。 +如果 `expr` 是 [String](../data-types/string.md),则可能被解释为 Unix 时间戳,或日期 / 含时间日期的字符串表示。 +因此,出于避免歧义的考虑,明确禁用了对短数字字符串(最多 4 位数字)的解析,例如字符串 `'1999'` 既可能是年份(Date / DateTime 的不完整字符串表示),也可能是 Unix 时间戳。更长的数字字符串则允许解析。 ::: **语法** @@ -3103,12 +3136,12 @@ toDateTime(expr[, time_zone]) **参数** -* `expr` — 值。[`String`](/sql-reference/data-types/string) 或 [`Int`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) +* `expr` — 输入值。[`String`](/sql-reference/data-types/string) 或 [`Int`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) * `time_zone` — 时区。[`String`](/sql-reference/data-types/string) **返回值** -返回日期时间值。[`DateTime`](/sql-reference/data-types/datetime) +返回一个 [`DateTime`](/sql-reference/data-types/datetime) 类型的值。 **示例** @@ -3129,11 +3162,11 @@ toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00 ## toDateTime32 \{#toDateTime32\} -引入于:v20.9 +引入版本:v20.9 将输入值转换为 `DateTime` 类型。 支持从 `String`、`FixedString`、`Date`、`Date32`、`DateTime` 或数值类型(`(U)Int*`、`Float*`、`Decimal`)进行转换。 -与 `DateTime` 相比,DateTime32 提供了更大的取值范围,支持从 `1900-01-01` 到 `2299-12-31` 的日期。 +与 `DateTime` 相比,`DateTime32` 提供了更大的取值范围,支持 `1900-01-01` 至 `2299-12-31` 之间的日期。 **语法** @@ -3144,15 +3177,15 @@ toDateTime32(x[, timezone]) **参数** * `x` — 要转换的输入值。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) 或 [`UInt*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`DateTime64`](/sql-reference/data-types/datetime64) -* `timezone` — 可选。用于返回的 `DateTime` 值的时区。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。返回的 `DateTime` 值所使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回转换后的值。[`DateTime`](/sql-reference/data-types/datetime) +返回转换后的输入值。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**值在有效范围内** +**值在范围内** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3164,7 +3197,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**以指定精度的小数形式** +**作为带精度的十进制数** ```sql title=Query SELECT toDateTime64(1735689600.000, 3) AS value, toTypeName(value); @@ -3196,9 +3229,9 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN ## toDateTime64 \{#toDateTime64\} -引入版本:v20.1 +自 v20.1 引入 -将输入值转换为 [`DateTime64`](../data-types/datetime64.md) 类型的值。 +将输入值转换为 [`DateTime64`](../data-types/datetime64.md) 类型。 **语法** @@ -3209,16 +3242,16 @@ toDateTime64(expr, scale[, timezone]) **参数** * `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `scale` — 刻度(精度):10^(-scale) 秒。[`UInt8`](/sql-reference/data-types/int-uint) +* `scale` — 步长(精度):10^(-scale) 秒。[`UInt8`](/sql-reference/data-types/int-uint) * `timezone` — 可选。指定的 `DateTime64` 对象所使用的时区。[`String`](/sql-reference/data-types/string) **返回值** -返回具有亚秒级精度的日历日期和时间。[`DateTime64`](/sql-reference/data-types/datetime64) +返回带有子秒级精度的日历日期和时间。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** -**值在范围内时** +**值在范围内** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); @@ -3230,7 +3263,7 @@ SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────────────────┘ ``` -**作为指定精度的 Decimal** +**以指定精度的 Decimal 类型** ```sql title=Query SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value); @@ -3244,7 +3277,7 @@ SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value); └─────────────────────────┴────────────────────────────────────────────┘ ``` -**含时区** +**含时区信息** ```sql title=Query SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value); @@ -3259,10 +3292,10 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN ## toDateTime64OrDefault \{#toDateTime64OrDefault\} -自 v21.11 引入 +引入自:v21.11 与 [toDateTime64](#toDateTime64) 类似,此函数将输入值转换为 [DateTime64](../data-types/datetime64.md) 类型的值, -但在收到无效参数时,会返回 [DateTime64](../data-types/datetime64.md) 的默认值 +但如果收到无效参数,则返回 [DateTime64](../data-types/datetime64.md) 的默认值 或调用方提供的默认值。 **语法** @@ -3273,14 +3306,14 @@ toDateTime64OrDefault(expr, scale[, timezone, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `scale` — 刻度大小(精度):10^-precision 秒。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `scale` — 刻度大小(时间精度):10^-precision 秒。[`UInt8`](/sql-reference/data-types/int-uint) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) * `default` — 可选。解析失败时返回的默认值。[`DateTime64`](/sql-reference/data-types/datetime64) **返回值** -如果转换成功,则返回 `DateTime64` 类型的值;否则在提供默认值时返回该默认值,未提供时返回 1970-01-01 00:00:00.000。[`DateTime64`](/sql-reference/data-types/datetime64) +成功时返回 `DateTime64` 类型的值,否则如果提供了默认值则返回该默认值;如果未提供则返回 1970-01-01 00:00:00.000。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -3307,10 +3340,10 @@ SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2 ## toDateTime64OrNull \{#toDateTime64OrNull\} -引入于:v20.1 +引入版本:v20.1 将输入值转换为 `DateTime64` 类型的值,但在传入无效参数时返回 `NULL`。 -与 `toDateTime64` 相同,但在传入无效参数时返回 `NULL`。 +与 `toDateTime64` 类似,只是在传入无效参数时返回 `NULL`。 **语法** @@ -3320,11 +3353,11 @@ toDateTime64OrNull(x) **参数** -* `x` — 包含日期、时间且具有子秒精度的字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 带有时间和亚秒级精度的日期的字符串表示。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 DateTime64 值,否则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回一个 DateTime64 值,否则返回 `NULL`。[`DateTime64`](/sql-reference/data-types/datetime64) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -3343,10 +3376,10 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali ## toDateTime64OrZero \{#toDateTime64OrZero\} -自 v20.1 引入 +引入自:v20.1 -将输入值转换为 [DateTime64](../data-types/datetime64.md) 类型的值,但如果接收到无效参数,则返回 [DateTime64](../data-types/datetime64.md) 的下界值。 -与 [toDateTime64](#toDateTime64) 相同,但如果接收到无效参数,则返回 [DateTime64](../data-types/datetime64.md) 的下界值。 +将输入值转换为 [DateTime64](../data-types/datetime64.md) 类型的值,但在接收到无效参数时返回 [DateTime64](../data-types/datetime64.md) 的下边界值。 +与 [toDateTime64](#toDateTime64) 相同,但在接收到无效参数时返回 [DateTime64](../data-types/datetime64.md) 的下边界值。 另请参阅: @@ -3362,11 +3395,11 @@ toDateTime64OrZero(x) **参数** -* `x` — 具有时间和子秒级精度的日期的字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 表示包含时间和子秒级精度日期的字符串。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回 DateTime64 值,否则返回 DateTime64 的下界(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) +成功时返回一个 DateTime64 值,否则返回 DateTime64 的下界值(`1970-01-01 00:00:00.000`)。[`DateTime64`](/sql-reference/data-types/datetime64) **示例** @@ -3385,9 +3418,9 @@ SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invali ## toDateTimeOrDefault \{#toDateTimeOrDefault\} -引入版本:v21.11 +引入于:v21.11 -与 [toDateTime](#toDateTime) 类似,但在解析失败时会返回一个默认值。该默认值要么是第三个参数(如果指定),否则为 [DateTime](../data-types/datetime.md) 的下边界值。 +与 [toDateTime](#toDateTime) 类似,但在转换失败时返回一个默认值:如果指定了第三个参数,则使用该参数,否则返回 [DateTime](../data-types/datetime.md) 的最小值。 **语法** @@ -3397,17 +3430,17 @@ toDateTimeOrDefault(expr[, timezone, default]) **参数** -* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 一个返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `timezone` — 可选。时区。[`String`](/sql-reference/data-types/string) -* `default` — 可选。解析失败时返回的默认值。[`DateTime`](/sql-reference/data-types/datetime) +* `default` — 可选。解析失败时要返回的默认值。[`DateTime`](/sql-reference/data-types/datetime) **返回值** -如果解析成功,则返回 `DateTime` 类型的值;否则,如果传入了默认值则返回该默认值,未传入则返回 1970-01-01 00:00:00。[`DateTime`](/sql-reference/data-types/datetime) +解析成功时返回 `DateTime` 类型的值;否则,如果提供了默认值则返回该默认值,如果未提供则返回 1970-01-01 00:00:00。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**转换成功** +**成功转换** ```sql title=Query SELECT toDateTimeOrDefault('2022-12-30 13:44:17') @@ -3430,10 +3463,10 @@ SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')')) ## toDateTimeOrNull \{#toDateTimeOrNull\} -引入于:v1.1 +引入版本:v1.1 -将输入值转换为 `DateTime` 类型的值,但在传入无效参数时返回 `NULL`。 -与 [`toDateTime`](#toDateTime) 相同,但在传入无效参数时返回 `NULL`。 +将输入值转换为 `DateTime` 类型的值,但在参数无效时返回 `NULL`。 +与 [`toDateTime`](#toDateTime) 相同,但在参数无效时返回 `NULL`。 **语法** @@ -3443,15 +3476,15 @@ toDateTimeOrNull(x) **参数** -* `x` — 包含时间的日期字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 日期时间的字符串表示。[`String`](/sql-reference/data-types/string) **返回值** -如果解析成功,则返回一个 `DateTime` 值,否则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回一个 `DateTime` 值,否则返回 `NULL`。[`DateTime`](/sql-reference/data-types/datetime) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') @@ -3466,10 +3499,10 @@ SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') ## toDateTimeOrZero \{#toDateTimeOrZero\} -自 v1.1 起提供 +引入版本:v1.1 -将输入值转换为 [DateTime](../data-types/datetime.md) 类型的值,但在接收到无效参数时返回 [DateTime](../data-types/datetime.md) 的最小值。 -与 [toDateTime](#toDateTime) 相同,但在接收到无效参数时返回 [DateTime](../data-types/datetime.md) 的最小值。 +将输入值转换为 [DateTime](../data-types/datetime.md) 类型的值,但如果传入无效参数,则返回 [DateTime](../data-types/datetime.md) 的下限值。 +与 [toDateTime](#toDateTime) 相同,但在传入无效参数时会返回 [DateTime](../data-types/datetime.md) 的下限值。 **语法** @@ -3479,15 +3512,15 @@ toDateTimeOrZero(x) **参数** -* `x` — 含时间部分的日期字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 日期时间的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 DateTime 值,否则返回 DateTime 的下限(`1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) +成功时返回一个 DateTime 值,否则返回 DateTime 的下界(`1970-01-01 00:00:00`)。[`DateTime`](/sql-reference/data-types/datetime) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') @@ -3504,7 +3537,7 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') 引入于:v18.12 -将输入值转换为类型为 [`Decimal(38, S)`](../data-types/decimal.md) 且 scale 为 `S` 的值。 +将输入值转换为类型为 [`Decimal(38, S)`](../data-types/decimal.md)、scale 为 `S` 的值。 在发生错误时抛出异常。 支持的参数: @@ -3514,19 +3547,19 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') 不支持的参数: -* 取值为 `NaN` 和 `Inf`(不区分大小写)的 Float* 值或其字符串表示。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)或其字符串表示。 * 二进制和十六进制值的字符串表示,例如:`SELECT toDecimal128('0xc0fe', 1);`。 :::note -如果 `expr` 的值超出 `Decimal128` 的范围:`(-1*10^(38 - S), 1*10^(38 - S))`,可能会发生溢出。 +如果 `expr` 的值超出 `Decimal128` 的取值范围:`(-1*10^(38 - S), 1*10^(38 - S))`,可能会发生溢出。 小数部分中多余的数字会被丢弃(不会四舍五入)。 -整数部分中多余的数字将导致异常。 +整数部分中多余的数字会导致异常。 ::: :::warning -在处理 Float32/Float64 输入时,由于运算是使用浮点指令完成的,转换会丢弃多余的数字,并可能产生非预期结果。 -例如:`toDecimal128(1.15, 2)` 等于 `1.14`,因为在浮点数中 1.15 * 100 的结果是 114.99。 -可以使用字符串(String)输入,使运算基于底层整数类型:`toDecimal128('1.15', 2) = 1.15` +转换会丢弃额外的数字,并且在处理 Float32/Float64 输入时,由于操作是使用浮点指令执行的,可能会出现非预期行为。 +例如:`toDecimal128(1.15, 2)` 等于 `1.14`,因为在浮点数中 1.15 * 100 等于 114.99。 +你可以使用字符串(String)作为输入,以便运算使用底层整数类型:`toDecimal128('1.15', 2) = 1.15` ::: **语法** @@ -3537,8 +3570,8 @@ toDecimal128(expr, S) **参数** -* `expr` — 返回一个数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 38 之间的刻度(scale)参数,用于指定数字小数部分的位数上限。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 38 之间的 scale 参数,用于指定数字小数部分最多可以有多少位数字。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** @@ -3570,7 +3603,7 @@ type_c: Decimal(38, 3) ## toDecimal128OrDefault \{#toDecimal128OrDefault\} -引入版本:v21.11 +引入于:v21.11 与 [`toDecimal128`](#toDecimal128) 类似,此函数将输入值转换为类型为 [Decimal(38, S)](../data-types/decimal.md) 的值,但在发生错误时返回默认值。 @@ -3583,12 +3616,12 @@ toDecimal128OrDefault(expr, S[, default]) **参数** * `expr` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) -* `S` — 取值范围为 0 到 38 的 scale 参数,用于指定数值小数部分最多可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 可选。解析为 Decimal128(S) 类型失败时要返回的默认值。[`Decimal128(S)`](/sql-reference/data-types/decimal) +* `S` — 介于 0 和 38 之间的 scale 参数,用于指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 可选。若解析为类型 Decimal128(S) 失败时返回的默认值。[`Decimal128(S)`](/sql-reference/data-types/decimal) **返回值** -成功时返回 Decimal(38, S) 类型的值;否则如果传入了默认值则返回该默认值,如果未传入默认值则返回 0。[`Decimal128(S)`](/sql-reference/data-types/decimal) +解析成功时返回类型为 Decimal(38, S) 的值,否则返回传入的默认值(如未传入则返回 0)。[`Decimal128(S)`](/sql-reference/data-types/decimal) **示例** @@ -3618,18 +3651,18 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) 引入于:v20.1 将输入值转换为 [`Decimal(38, S)`](../data-types/decimal.md) 类型的值,但在出错时返回 `NULL`。 -类似于 [`toDecimal128`](#toDecimal128),但在转换出错时返回 `NULL`,而不是抛出异常。 +类似于 [`toDecimal128`](#toDecimal128),但在转换出错时返回 `NULL`,而不是在出错时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示形式。 -* 类型为 Float* 的值或其字符串表示形式。 +* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 Float* 的值或其字符串形式。 不支持的参数(返回 `NULL`): -* Float* 值 `NaN` 和 `Inf` 的值或其字符串表示形式(不区分大小写)。 -* 二进制和十六进制值的字符串表示形式。 -* 超出 `Decimal128` 范围的值:`(-1*10^(38 - S), 1*10^(38 - S))`。 +* Float* 值 `NaN` 和 `Inf`(大小写不敏感)的值或其字符串形式。 +* 二进制和十六进制值的字符串形式。 +* 超出 `Decimal128` 取值范围的值:`(-1*10^(38 - S), 1*10^(38 - S))`。 另请参阅: @@ -3645,12 +3678,12 @@ toDecimal128OrNull(expr, S) **参数** -* `expr` — 返回数值或数值字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 38 之间的标度(scale)参数,用于指定数字小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 38 之间的小数位数(scale)参数,指定数字的小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -成功时返回 Decimal(38, S) 值,否则返回 `NULL`。[`Decimal128(S)`](/sql-reference/data-types/decimal) 或 [`NULL`](/sql-reference/syntax#null) +成功时返回一个 Decimal(38, S) 值,否则返回 `NULL`。[`Decimal128(S)`](/sql-reference/data-types/decimal) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -3672,17 +3705,17 @@ SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) 引入版本:v20.1 将输入值转换为 [Decimal(38, S)](../data-types/decimal.md) 类型的值,但在发生错误时返回 `0`。 -类似于 [`toDecimal128`](#toDecimal128) 但在转换出错时返回 `0`,而不是抛出异常。 +与 [`toDecimal128`](#toDecimal128) 类似,但在转换出错时返回 `0`,而不是抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 -* 类型为 Float* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 Float* 的值或其字符串形式。 不支持的参数(返回 `0`): -* 类型为 Float* 的 `NaN` 和 `Inf` 值或其字符串表示(不区分大小写)。 -* 二进制值和十六进制值的字符串表示。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)的值或其字符串形式。 +* 二进制和十六进制值的字符串形式。 :::note 如果输入值超出 `Decimal128` 的范围:`(-1*10^(38 - S), 1*10^(38 - S))`,函数返回 `0`。 @@ -3696,12 +3729,12 @@ toDecimal128OrZero(expr, S) **参数** -* `expr` — 返回数值或其字符串表示的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 取值范围为 0 到 38 的 scale 参数,用于指定数值小数部分最多可以有多少位数字。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 计算得到数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 取值在 0 到 38 之间的 scale 参数,用于指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -成功时返回一个 Decimal(38, S) 值,否则返回 `0`。[`Decimal128(S)`](/sql-reference/data-types/decimal) +成功时返回 Decimal(38, S) 类型的值,否则返回 `0`。[`Decimal128(S)`](/sql-reference/data-types/decimal) **示例** @@ -3722,28 +3755,28 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) 引入版本:v20.8 -将输入值转换为 [`Decimal(76, S)`](../data-types/decimal.md) 类型、scale 为 `S` 的值。若发生错误则抛出异常。 +将输入值转换为类型为 [`Decimal(76, S)`](../data-types/decimal.md)、scale 为 `S` 的值。发生错误时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 -* 类型为 Float* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 Float* 的值或其字符串形式。 不支持的参数: -* 取值为 `NaN` 和 `Inf`(不区分大小写)的 Float* 值或其字符串表示。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toDecimal256('0xc0fe', 1);`。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)的值或其字符串形式。 +* 二进制和十六进制值的字符串形式,例如:`SELECT toDecimal256('0xc0fe', 1);`。 :::note -如果 `expr` 的值超出了 `Decimal256` 的边界 `(-1*10^(76 - S), 1*10^(76 - S))`,则可能发生溢出。 -小数部分中过多的数字会被丢弃(不会四舍五入)。 -整数部分中过多的数字将导致异常。 +如果 `expr` 的值超出 `Decimal256` 的范围:`(-1*10^(76 - S), 1*10^(76 - S))`,则可能发生溢出。 +小数部分中多余的数字会被截断(不会进行四舍五入)。 +整数部分中多余的数字会导致异常。 ::: :::warning -在处理 Float32/Float64 输入时,转换会丢弃额外的数字,并且由于操作是通过浮点指令完成的,可能会以意料之外的方式工作。 -例如:`toDecimal256(1.15, 2)` 等于 `1.14`,因为在浮点运算中 1.15 * 100 等于 114.99。 -可以使用 String 类型的输入,此时运算将使用底层的整数类型:`toDecimal256('1.15', 2) = 1.15` +在处理 Float32/Float64 输入时,由于运算是使用浮点指令执行的,转换会丢弃多余的数字,并且在行为上可能与预期不符。 +例如:`toDecimal256(1.15, 2)` 等于 `1.14`,因为在浮点表示中 1.15 * 100 等于 114.99。 +你可以使用 String 作为输入,这样运算会使用底层的整数类型:`toDecimal256('1.15', 2) = 1.15` ::: **语法** @@ -3754,12 +3787,12 @@ toDecimal256(expr, S) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 取值在 0 到 76 之间的 scale 参数,用于指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数值或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 76 之间的标度参数,用于指定数值小数部分可以包含多少位小数。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -返回类型为 `Decimal(76, S)` 的值。[`Decimal256(S)`](/sql-reference/data-types/decimal) +返回 `Decimal(76, S)` 类型的值。[`Decimal256(S)`](/sql-reference/data-types/decimal) **示例** @@ -3787,9 +3820,9 @@ type_c: Decimal(76, 3) ## toDecimal256OrDefault \{#toDecimal256OrDefault\} -自 v21.11 起引入 +引入版本:v21.11 -与 [`toDecimal256`](#toDecimal256) 类似,此函数将输入值转换为 [Decimal(76, S)](../data-types/decimal.md) 类型的值,但在出错时返回默认值。 +与 [`toDecimal256`](#toDecimal256) 类似,此 FUNCTION 将输入值转换为 [Decimal(76, S)](../data-types/decimal.md) 类型的值,但在发生错误时返回默认值。 **语法** @@ -3799,13 +3832,13 @@ toDecimal256OrDefault(expr, S[, default]) **参数** -* `expr` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) -* `S` — 介于 0 和 76 之间的 scale 参数,指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 可选。解析为 Decimal256(S) 类型失败时返回的默认值。[`Decimal256(S)`](/sql-reference/data-types/decimal) +* `expr` — 数值的字符串形式。[`String`](/sql-reference/data-types/string) +* `S` — 取值为 0 到 76 之间的 scale 参数,用于指定数值小数部分最多可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 可选。解析为类型 Decimal256(S) 失败时返回的默认值。[`Decimal256(S)`](/sql-reference/data-types/decimal) **返回值** -成功时返回类型为 Decimal(76, S) 的值,否则如果传入了默认值则返回该默认值,未传入则返回 0。[`Decimal256(S)`](/sql-reference/data-types/decimal) +如果解析成功,返回类型为 Decimal(76, S) 的值;否则,如果传入了默认值则返回该默认值,未传入则返回 0。[`Decimal256(S)`](/sql-reference/data-types/decimal) **示例** @@ -3834,21 +3867,21 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) 引入版本:v20.8 -将输入值转换为 [`Decimal(76, S)`](../data-types/decimal.md) 类型的值,但在出错时返回 `NULL`。 +将输入值转换为 [`Decimal(76, S)`](../data-types/decimal.md) 类型的值,但在发生错误时返回 `NULL`。 类似于 [`toDecimal256`](#toDecimal256),但在转换出错时返回 `NULL`,而不是抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示形式。 -* 类型为 Float* 的值或其字符串表示形式。 +* 类型为 (U)Int* 的数值或其字符串表示。 +* 类型为 Float* 的数值或其字符串表示。 不支持的参数(返回 `NULL`): -* Float* 值 `NaN` 和 `Inf`(大小写不敏感)的值或字符串表示形式。 -* 二进制和十六进制值的字符串表示形式。 -* 超出 `Decimal256` 边界的值:`(-1 * 10^(76 - S), 1 * 10^(76 - S))`。 +* 类型为 Float* 的 `NaN` 和 `Inf` 值(大小写不敏感)或其字符串表示。 +* 二进制和十六进制值的字符串表示。 +* 超出 `Decimal256` 取值范围的值:`(-1 * 10^(76 - S), 1 * 10^(76 - S))`。 -参见: +另见: * [`toDecimal256`](#toDecimal256)。 * [`toDecimal256OrZero`](#toDecimal256OrZero)。 @@ -3862,8 +3895,8 @@ toDecimal256OrNull(expr, S) **参数** -* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 76 之间的 scale 参数,用于指定数字的小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数值或数值字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 76 之间的 scale 参数,用于指定数值小数部分所允许的位数。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** @@ -3886,23 +3919,23 @@ SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2) ## toDecimal256OrZero \{#toDecimal256OrZero\} -引入于:v20.8 +引入版本:v20.8 将输入值转换为类型为 [Decimal(76, S)](../data-types/decimal.md) 的值,但在出错时返回 `0`。 类似于 [`toDecimal256`](#toDecimal256),但在转换出错时返回 `0`,而不是抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 -* 类型为 Float* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串表示形式。 +* 类型为 Float* 的值或其字符串表示形式。 不支持的参数(返回 `0`): -* Float* 类型的 `NaN` 和 `Inf` 值或其字符串表示(不区分大小写)。 -* 二进制值和十六进制值的字符串表示。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)的值或其字符串表示形式。 +* 二进制和十六进制值的字符串表示形式。 :::note -如果输入值超出 `Decimal256` 的范围:`(-1*10^(76 - S), 1*10^(76 - S))`,则函数返回 `0`。 +如果输入值超过 `Decimal256` 的取值范围:`(-1*10^(76 - S), 1*10^(76 - S))`,函数会返回 `0`。 ::: 另请参阅: @@ -3919,12 +3952,12 @@ toDecimal256OrZero(expr, S) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 到 76 之间的 scale 参数,用于指定数字小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 76 之间的 scale 参数,用于指定数字小数部分的位数上限。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -成功时返回 Decimal(76, S) 类型的值,否则返回 `0`。[`Decimal256(S)`](/sql-reference/data-types/decimal) +成功时返回一个 Decimal(76, S) 值,否则返回 `0`。[`Decimal256(S)`](/sql-reference/data-types/decimal) **示例** @@ -3943,9 +3976,9 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) ## toDecimal32 \{#toDecimal32\} -引入于:v18.12 +引入版本:v18.12 -将输入值转换为 [`Decimal(9, S)`](../data-types/decimal.md) 类型、标度为 `S` 的值。若发生错误则抛出异常。 +将输入值转换为 [`Decimal(9, S)`](../data-types/decimal.md) 类型、scale 为 `S` 的值。发生错误时抛出异常。 支持的参数: @@ -3954,19 +3987,19 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) 不支持的参数: -* 值或字符串表示为 Float* 的 `NaN` 和 `Inf`(不区分大小写)。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toDecimal32('0xc0fe', 1);`。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)的值或其字符串表示。 +* 二进制和十六进制形式的字符串表示,例如:`SELECT toDecimal32('0xc0fe', 1);`。 :::note 如果 `expr` 的值超出 `Decimal32` 的范围:`(-1*10^(9 - S), 1*10^(9 - S))`,则可能发生溢出。 -小数部分多余的数字会被丢弃(不会四舍五入)。 -整数部分多余的数字会导致抛出异常。 +小数部分中多余的数字会被直接丢弃(不会四舍五入)。 +整数部分中多余的数字会导致异常。 ::: :::warning -当使用 Float32/Float64 作为输入时,由于运算是通过浮点指令执行的,转换会丢弃多余的数字,并且可能出现非预期的行为。 -例如:`toDecimal32(1.15, 2)` 等于 `1.14`,因为在浮点数中 1.15 * 100 等于 114.99。 -可以使用 String 作为输入,以便运算基于底层整数类型:`toDecimal32('1.15', 2) = 1.15` +由于转换使用浮点指令,当处理 Float32/Float64 输入时,会丢弃多出的数字,并可能产生非预期的结果。 +例如:`toDecimal32(1.15, 2)` 等于 `1.14`,因为 1.15 * 100 在浮点表示中为 114.99。 +你可以使用字符串(String)输入,以便运算使用底层整数类型:`toDecimal32('1.15', 2) = 1.15` ::: **语法** @@ -3977,16 +4010,16 @@ toDecimal32(expr, S) **参数** -* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 9 之间的标度参数,指定数字小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 9 之间的 scale 参数,用于指定数字小数部分最多可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -返回类型为 `Decimal(9, S)` 的值。[`Decimal32(S)`](/sql-reference/data-types/decimal) +返回 `Decimal(9, S)` 类型的值。[`Decimal32(S)`](/sql-reference/data-types/decimal) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -4010,9 +4043,9 @@ type_c: Decimal(9, 3) ## toDecimal32OrDefault \{#toDecimal32OrDefault\} -自 v21.11 引入 +引入版本:v21.11 -与 [`toDecimal32`](#toDecimal32) 类似,此函数将输入值转换为 [Decimal(9, S)](../data-types/decimal.md) 类型的值,但在出错时返回默认值。 +与 [`toDecimal32`](#toDecimal32) 类似,此函数将输入值转换为类型为 [Decimal(9, S)](../data-types/decimal.md) 的值,但在发生错误时返回默认值。 **语法** @@ -4023,12 +4056,12 @@ toDecimal32OrDefault(expr, S[, default]) **参数** * `expr` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) -* `S` — 介于 0 和 9 之间的小数位数参数,指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 可选。如果解析为 Decimal32(S) 类型失败,返回的默认值。[`Decimal32(S)`](/sql-reference/data-types/decimal) +* `S` — 介于 0 和 9 之间的 scale 参数,用于指定数字小数部分最多可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 可选。解析为类型 Decimal32(S) 失败时要返回的默认值。[`Decimal32(S)`](/sql-reference/data-types/decimal) **返回值** -解析成功时返回类型为 Decimal(9, S) 的值,否则返回传入的默认值;如果未传入默认值,则返回 0。[`Decimal32(S)`](/sql-reference/data-types/decimal) +转换成功时返回类型为 Decimal(9, S) 的值;否则,如果传入了默认值则返回该默认值,未传入时返回 0。[`Decimal32(S)`](/sql-reference/data-types/decimal) **示例** @@ -4042,7 +4075,7 @@ SELECT toDecimal32OrDefault(toString(0.0001), 5) 0.0001 ``` -**转换失败** +**转换未成功** ```sql title=Query SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) @@ -4055,20 +4088,20 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) ## toDecimal32OrNull \{#toDecimal32OrNull\} -自 v20.1 起引入 +自 v20.1 引入 -将输入值转换为 [`Decimal(9, S)`](../data-types/decimal.md) 类型的值,但在出错时返回 `NULL`。 -与 [`toDecimal32`](#toDecimal32) 类似,但在转换出错时返回 `NULL`,而不是抛出异常。 +将输入值转换为 [`Decimal(9, S)`](../data-types/decimal.md) 类型的值,但在发生错误时返回 `NULL`。 +类似于 [`toDecimal32`](#toDecimal32),但在转换出错时返回 `NULL`,而不是抛出异常。 支持的参数: -* (U)Int* 类型的值或其字符串表示。 -* Float* 类型的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串表示形式。 +* 类型为 Float* 的值或其字符串表示形式。 不支持的参数(返回 `NULL`): -* Float* 类型的 `NaN` 和 `Inf` 值或其字符串表示(不区分大小写)。 -* 二进制和十六进制值的字符串表示。 +* Float* 值 `NaN` 和 `Inf` 的值或字符串表示形式(不区分大小写)。 +* 二进制和十六进制值的字符串表示形式。 * 超出 `Decimal32` 范围的值:`(-1*10^(9 - S), 1*10^(9 - S))`。 另请参阅: @@ -4085,16 +4118,16 @@ toDecimal32OrNull(expr, S) **参数** -* `expr` — 返回数值或数值字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 到 9 之间的刻度参数,指定数字小数部分可以具有的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 9 之间的 scale 参数,用于指定数字小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -成功时返回一个 Decimal(9, S) 值,否则返回 `NULL`。[`Decimal32(S)`](/sql-reference/data-types/decimal) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回 Decimal(9, S) 值,否则返回 `NULL`。[`Decimal32(S)`](/sql-reference/data-types/decimal) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) @@ -4116,16 +4149,16 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 -* 类型为 Float* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 Float* 的值或其字符串形式。 不支持的参数(返回 `0`): -* 类型为 Float* 的 `NaN` 和 `Inf` 值或其字符串表示(不区分大小写)。 -* 二进制和十六进制值的字符串表示。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)或其字符串形式。 +* 二进制和十六进制值的字符串形式。 :::note -如果输入值超出 `Decimal32` 的范围:`(-1*10^(9 - S), 1*10^(9 - S))`,则函数返回 `0`。 +如果输入值超出 `Decimal32` 的取值范围:`(-1*10^(9 - S), 1*10^(9 - S))`,函数会返回 `0`。 ::: **语法** @@ -4136,12 +4169,12 @@ toDecimal32OrZero(expr, S) **参数** -* `expr` — 返回一个数字或数字的字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 9 之间的 scale 参数,用于指定数值小数部分的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 9 之间的 scale 参数,指定数字小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -转换成功时返回 `Decimal(9, S)` 值,否则返回 `0`。[`Decimal32(S)`](/sql-reference/data-types/decimal) +成功时返回 Decimal(9, S) 值,否则返回 `0`。[`Decimal32(S)`](/sql-reference/data-types/decimal) **示例** @@ -4160,9 +4193,9 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) ## toDecimal64 \{#toDecimal64\} -引入于:v18.12 +引入版本:v18.12 -将输入值转换为类型为 [`Decimal(18, S)`](../data-types/decimal.md)、小数位数为 `S` 的值。 +将输入值转换为类型为 [`Decimal(18, S)`](../data-types/decimal.md),且 scale 为 `S` 的值。 在发生错误时抛出异常。 支持的参数: @@ -4172,19 +4205,19 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) 不支持的参数: -* Float* 类型中的 `NaN` 和 `Inf` 值及其字符串表示(不区分大小写)。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toDecimal64('0xc0fe', 1);`。 +* Float* 类型值 `NaN` 和 `Inf`(不区分大小写)或其字符串表示。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toDecimal64('0xc0fe', 1);`。 :::note 如果 `expr` 的值超出 `Decimal64` 的范围:`(-1*10^(18 - S), 1*10^(18 - S))`,则可能发生溢出。 -小数部分中过多的数字会被丢弃(不进行四舍五入)。 -整数部分中过多的数字将导致异常。 +小数部分中多余的数字会被直接丢弃(不会四舍五入)。 +整数部分中多余的数字会导致抛出异常。 ::: :::warning -在处理 Float32/Float64 输入时,由于转换操作是使用浮点指令执行的,会丢弃额外的数位,并且在实际行为上可能与预期不符。 -例如:`toDecimal64(1.15, 2)` 等于 `1.14`,因为在浮点运算中 1.15 * 100 的结果是 114.99。 -你可以使用 String 输入,以便这些操作使用底层的整数类型:`toDecimal64('1.15', 2) = 1.15` +执行转换时会丢弃额外的数字,并且在处理 Float32/Float64 输入时,由于操作是使用浮点指令完成的,因此可能会出现非预期行为。 +例如:`toDecimal64(1.15, 2)` 等于 `1.14`,因为在浮点数运算中 1.15 * 100 的结果是 114.99。 +可以使用 String 作为输入,使操作基于底层整数类型进行:`toDecimal64('1.15', 2) = 1.15` ::: **语法** @@ -4196,7 +4229,7 @@ toDecimal64(expr, S) **参数** * `expr` — 返回数值或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 到 18 之间的刻度参数,用于指定数值小数部分可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `S` — 介于 0 到 18 之间的 scale 参数(小数位数),指定数字小数部分可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** @@ -4228,9 +4261,9 @@ type_c: Decimal(18, 3) ## toDecimal64OrDefault \{#toDecimal64OrDefault\} -自 v21.11 起提供 +引入于:v21.11 -与 [`toDecimal64`](#toDecimal64) 类似,此函数将输入值转换为类型为 [Decimal(18, S)](../data-types/decimal.md) 的值,但在出错时返回默认值。 +与 [`toDecimal64`](#toDecimal64) 类似,此函数将输入值转换为 [Decimal(18, S)](../data-types/decimal.md) 类型的值,但在出错时返回默认值。 **语法** @@ -4240,9 +4273,9 @@ toDecimal64OrDefault(expr, S[, default]) **参数** -* `expr` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) -* `S` — 介于 0 和 18 之间的小数位数参数,指定数字小数部分最多可以包含的位数。[`UInt8`](/sql-reference/data-types/int-uint) -* `default` — 可选。将值解析为 Decimal64(S) 类型失败时返回的默认值。[`Decimal64(S)`](/sql-reference/data-types/decimal) +* `expr` — 数值的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `S` — 介于 0 和 18 之间的刻度(scale)参数,用于指定数值小数部分的位数上限。[`UInt8`](/sql-reference/data-types/int-uint) +* `default` — 可选。解析为类型 Decimal64(S) 失败时要返回的默认值。[`Decimal64(S)`](/sql-reference/data-types/decimal) **返回值** @@ -4250,7 +4283,7 @@ toDecimal64OrDefault(expr, S[, default]) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toDecimal64OrDefault(toString(0.0001), 18) @@ -4273,20 +4306,20 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) ## toDecimal64OrNull \{#toDecimal64OrNull\} -引入自:v20.1 +引入于:v20.1 将输入值转换为类型为 [Decimal(18, S)](../data-types/decimal.md) 的值,但在出错时返回 `NULL`。 -类似于 [`toDecimal64`](#toDecimal64),但在转换出错时返回 `NULL` 而不是抛出异常。 +类似于 [`toDecimal64`](#toDecimal64),但在转换出错时返回 `NULL`,而不是抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 -* 类型为 Float* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串表示形式。 +* 类型为 Float* 的值或其字符串表示形式。 -不支持的参数(返回 `NULL`): +不支持的参数(将返回 `NULL`): -* Float* 类型值 `NaN` 和 `Inf`(不区分大小写)或其字符串表示。 -* 二进制和十六进制值的字符串表示。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)及其字符串表示形式。 +* 二进制和十六进制值的字符串表示形式。 * 超出 `Decimal64` 范围的值:`(-1*10^(18 - S), 1*10^(18 - S))`。 另请参阅: @@ -4303,8 +4336,8 @@ toDecimal64OrNull(expr, S) **参数** -* `expr` — 返回数字或其字符串形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 到 18 之间的小数位精度参数,用于指定数字小数部分最多可以有多少位数字。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 18 之间的小数位数参数,用于指定数字小数部分可以有多少位。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** @@ -4327,23 +4360,23 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) ## toDecimal64OrZero \{#toDecimal64OrZero\} -引入于:v20.1 +引入版本:v20.1 -将输入值转换为类型为 [Decimal(18, S)](../data-types/decimal.md) 的值,但在出错时返回 `0`。 -类似于 [`toDecimal64`](#toDecimal64),但在转换出错时返回 `0`,而不是抛出异常。 +将输入值转换为类型 [Decimal(18, S)](../data-types/decimal.md) 的值,但在发生错误时返回 `0`。 +类似于 [`toDecimal64`](#toDecimal64),但在转换错误时返回 `0`,而不是抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示形式。 -* 类型为 Float* 的值或其字符串表示形式。 +* 类型为 (U)Int* 的值或其字符串表示。 +* 类型为 Float* 的值或其字符串表示。 不支持的参数(返回 `0`): -* 值为 `NaN` 和 `Inf`(不区分大小写)的 Float* 值或其字符串表示形式。 -* 二进制值和十六进制值的字符串表示形式。 +* Float* 值 `NaN` 和 `Inf`(不区分大小写)本身及其字符串表示。 +* 二进制值和十六进制值的字符串表示。 :::note -如果输入值超出 `Decimal64` 的范围:`(-1*10^(18 - S), 1*10^(18 - S))`,函数将返回 `0`。 +如果输入值超出 `Decimal64` 的范围:`(-1*10^(18 - S), 1*10^(18 - S))`,函数返回 `0`。 ::: 另请参阅: @@ -4360,16 +4393,16 @@ toDecimal64OrZero(expr, S) **参数** -* `expr` — 返回数值或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) -* `S` — 介于 0 和 18 之间的 scale 参数,用于指定数值小数部分的小数位数。[`UInt8`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `S` — 介于 0 和 18 之间的 scale 参数,用于指定数字小数部分的位数上限。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -成功时返回 Decimal(18, S) 类型的值,否则返回 `0`。[`Decimal64(S)`](/sql-reference/data-types/decimal) +成功时返回一个 Decimal(18, S) 值,否则返回 `0`。[`Decimal64(S)`](/sql-reference/data-types/decimal) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2) @@ -4386,9 +4419,9 @@ SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2) 引入版本:v23.3 -将数值转换为带有指定小数位数的 String。 +将数值转换为具有指定小数位数的 String 类型。 -该函数会将输入值四舍五入到指定的小数位数。如果输入值的小数位少于指定的位数,则在小数部分补零,以达到精确指定的小数位数。 +该函数会将输入值四舍五入到指定的小数位数。如果输入值的小数位少于指定的小数位数,结果会通过在末尾补零的方式达到精确指定的小数位数。 **语法** @@ -4399,15 +4432,15 @@ toDecimalString(number, scale) **参数** * `number` — 要转换为字符串的数值。可以是任意数值类型(Int、UInt、Float、Decimal)。[`Int8`](/sql-reference/data-types/int-uint) 或 [`Int16`](/sql-reference/data-types/int-uint) 或 [`Int32`](/sql-reference/data-types/int-uint) 或 [`Int64`](/sql-reference/data-types/int-uint) 或 [`UInt8`](/sql-reference/data-types/int-uint) 或 [`UInt16`](/sql-reference/data-types/int-uint) 或 [`UInt32`](/sql-reference/data-types/int-uint) 或 [`UInt64`](/sql-reference/data-types/int-uint) 或 [`Float32`](/sql-reference/data-types/float) 或 [`Float64`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) -* `scale` — 小数部分要显示的位数。如有必要,结果会被四舍五入。[`UInt8`](/sql-reference/data-types/int-uint) +* `scale` — 小数部分要显示的位数。如有必要,将对结果进行四舍五入。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -返回一个字符串形式的数值表示,且小数位数严格等于指定的位数。[`String`](/sql-reference/data-types/string) +返回该数字的字符串表示形式,小数位数与指定值完全一致。[`String`](/sql-reference/data-types/string) **示例** -**对数字进行舍入并格式化** +**对数字进行四舍五入并格式化** ```sql title=Query SELECT toDecimalString(2.1456, 2) @@ -4419,7 +4452,7 @@ SELECT toDecimalString(2.1456, 2) └────────────────────────────┘ ``` -**零填充** +**用零填充** ```sql title=Query SELECT toDecimalString(5, 3) @@ -4431,7 +4464,7 @@ SELECT toDecimalString(5, 3) └───────────────────────┘ ``` -**不同数值类型** +**不同的数值数据类型** ```sql title=Query SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, @@ -4447,11 +4480,11 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, ## toFixedString \{#toFixedString\} -引入版本:v1.1 +自 v1.1 引入 -将一个 [`String`](/sql-reference/data-types/string) 参数转换为 [`FixedString(N)`](/sql-reference/data-types/fixedstring) 类型(长度固定为 N 的字符串)。 +将 [`String`](/sql-reference/data-types/string) 参数转换为 [`FixedString(N)`](/sql-reference/data-types/fixedstring) 类型(长度固定为 N 的字符串)。 -如果字符串的字节数少于 N,则在右侧用空字节进行填充。 +如果字符串的字节数少于 N,则在右侧使用空字节进行填充。 如果字符串的字节数多于 N,则会抛出异常。 **语法** @@ -4467,7 +4500,7 @@ toFixedString(s, N) **返回值** -返回长度为 N 的 FixedString。[`FixedString(N)`](/sql-reference/data-types/fixedstring) +返回一个长度为 N 的 FixedString。[`FixedString(N)`](/sql-reference/data-types/fixedstring) **示例** @@ -4486,21 +4519,21 @@ SELECT toFixedString('foo', 8) AS s; ## toFloat32 \{#toFloat32\} -引入于:v1.1 +引入版本:v1.1 将输入值转换为 [Float32](/sql-reference/data-types/float) 类型的值。 在出错时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值。 -* (U)Int8/16/32/128/256 的字符串形式。 -* 类型为 Float* 的值,包括 `NaN` 和 `Inf`。 -* Float* 的字符串形式,包括 `NaN` 和 `Inf`(不区分大小写)。 +* (U)Int* 类型的值。 +* (U)Int8/16/32/128/256 的字符串表示。 +* Float* 类型的值,包括 `NaN` 和 `Inf`。 +* Float* 的字符串表示,包括 `NaN` 和 `Inf`(不区分大小写)。 不支持的参数: -* 二进制和十六进制值的字符串形式,例如 `SELECT toFloat32('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toFloat32('0xc0fe');`。 另请参阅: @@ -4516,15 +4549,15 @@ toFloat32(expr) **参数** -* `expr` — 一个表达式,返回一个数字或该数字的字符串表示形式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回一个 32 位浮点值。[`Float32`](/sql-reference/data-types/float) +返回一个 32 位浮点数值。[`Float32`](/sql-reference/data-types/float) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -4547,7 +4580,7 @@ toFloat32('NaN'): nan 引入版本:v21.11 -与 [`toFloat32`](#toFloat32) 类似,此函数会将输入值转换为 [Float32](../data-types/float.md) 类型的值,但在发生错误时返回默认值。 +与 [`toFloat32`](#toFloat32) 类似,此函数将输入值转换为 [Float32](../data-types/float.md) 类型的值,但在发生错误时返回默认值。 如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -4563,11 +4596,11 @@ toFloat32OrDefault(expr[, default]) **返回值** -解析成功时返回 `Float32` 类型的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 0。[`Float32`](/sql-reference/data-types/float) +如果转换成功,返回 `Float32` 类型的值;否则,如果传入了默认值则返回该默认值,未传入默认值时返回 0。[`Float32`](/sql-reference/data-types/float) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toFloat32OrDefault('8', CAST('0', 'Float32')) @@ -4590,21 +4623,21 @@ SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) ## toFloat32OrNull \{#toFloat32OrNull\} -引入版本:v1.1 +引入于:v1.1 -将输入值转换为 [Float32](../data-types/float.md) 类型的值,但在出错时返回 `NULL`。 -类似于 [`toFloat32`](#toFloat32),但在转换出错时返回 `NULL`,而不是抛出异常。 +将输入值转换为 [Float32](../data-types/float.md) 类型的值,但在发生错误时返回 `NULL`。 +类似于 [`toFloat32`](#toFloat32),但在转换出错时返回 `NULL`,而不是在转换错误时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值。 -* (U)Int8/16/32/128/256 的字符串表示。 -* 类型为 Float* 的值,包括 `NaN` 和 `Inf`。 -* Float* 的字符串表示,包括 `NaN` 和 `Inf`(不区分大小写)。 +* (U)Int* 类型的值。 +* (U)Int8/16/32/128/256 的字符串形式。 +* Float* 类型的值,包括 `NaN` 和 `Inf`。 +* Float* 的字符串形式,包括 `NaN` 和 `Inf`(不区分大小写)。 不支持的参数(返回 `NULL`): -* 二进制和十六进制值的字符串表示,例如:`SELECT toFloat32OrNull('0xc0fe');`。 +* 二进制和十六进制值的字符串形式,例如 `SELECT toFloat32OrNull('0xc0fe');`。 * 无效的字符串格式。 另请参阅: @@ -4621,15 +4654,15 @@ toFloat32OrNull(x) **参数** -* `x` — 数字的字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -如果转换成功,返回 32 位浮点数,否则返回 `NULL`。[`Float32`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回 32 位浮点数值,否则返回 `NULL`。[`Float32`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -4653,7 +4686,7 @@ toFloat32OrNull('abc'): \N 引入版本:v1.1 将输入值转换为 [Float32](../data-types/float.md) 类型的值,但在发生错误时返回 `0`。 -类似于 [`toFloat32`](#toFloat32),但在转换出错时返回 `0` 而不是抛出异常。 +类似于 [`toFloat32`](#toFloat32),但在转换出错时返回 `0`,而不是抛出异常。 另请参阅: @@ -4673,7 +4706,7 @@ toFloat32OrZero(x) **返回值** -成功时返回 32 位浮点数值,否则返回 `0`。[`Float32`](/sql-reference/data-types/float) +转换成功时返回 32 位浮点数值,否则返回 `0`。[`Float32`](/sql-reference/data-types/float) **示例** @@ -4696,21 +4729,21 @@ toFloat32OrZero('abc'): 0 ## toFloat64 \{#toFloat64\} -引入于:v1.1 +引入版本:v1.1 将输入值转换为 [`Float64`](../data-types/float.md) 类型的值。 -在发生错误时抛出异常。 +出错时抛出异常。 -支持的参数类型: +支持的参数: * 类型为 (U)Int* 的值。 -* (U)Int8/16/32/128/256 的字符串形式。 +* (U)Int8/16/32/128/256 的字符串表示形式。 * 类型为 Float* 的值,包括 `NaN` 和 `Inf`。 -* 类型为 Float* 的字符串形式,包括 `NaN` 和 `Inf`(不区分大小写)。 +* 类型为 Float* 的字符串表示形式,包括 `NaN` 和 `Inf`(不区分大小写)。 -不支持的参数类型: +不支持的参数: -* 二进制和十六进制值的字符串形式,例如:`SELECT toFloat64('0xc0fe');`。 +* 二进制和十六进制值的字符串表示形式,例如 `SELECT toFloat64('0xc0fe');`。 另请参阅: @@ -4726,15 +4759,15 @@ toFloat64(expr) **参数** -* `expr` — 其结果为数字或数字的字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 计算结果为数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回 64 位浮点数值。[`Float64`](/sql-reference/data-types/float) +返回一个 64 位浮点数。[`Float64`](/sql-reference/data-types/float) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -4755,10 +4788,10 @@ toFloat64('NaN'): nan ## toFloat64OrDefault \{#toFloat64OrDefault\} -自 v21.11 引入 +引入版本:v21.11 -与 [`toFloat64`](#toFloat64) 类似,此函数将输入值转换为 [Float64](../data-types/float.md) 类型的值,但在出错时返回默认值。 -如果未传递 `default` 参数,则在出错时返回 `0`。 +与 [`toFloat64`](#toFloat64) 类似,此函数将输入值转换为 [Float64](../data-types/float.md) 类型的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -4768,16 +4801,16 @@ toFloat64OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时要返回的默认值。[`Float64`](/sql-reference/data-types/float) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时返回的默认值。[`Float64`](/sql-reference/data-types/float) **返回值** -转换成功时返回 `Float64` 类型的值;否则,如果传入了默认值则返回该默认值,否则返回 0。[`Float64`](/sql-reference/data-types/float) +转换成功时返回 `Float64` 类型的值;否则,如果传入了默认值则返回该默认值,如果未传入默认值则返回 0。[`Float64`](/sql-reference/data-types/float) **示例** -**成功的转换** +**转换成功** ```sql title=Query SELECT toFloat64OrDefault('8', CAST('0', 'Float64')) @@ -4831,11 +4864,11 @@ toFloat64OrNull(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** -如果转换成功,返回 64 位浮点数,否则返回 `NULL`。[`Float64`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) +如果转换成功,则返回 64 位浮点数值,否则返回 `NULL`。[`Float64`](/sql-reference/data-types/float) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -4860,10 +4893,10 @@ toFloat64OrNull('abc'): \N ## toFloat64OrZero \{#toFloat64OrZero\} -引入于:v1.1 +自 v1.1 引入 -将输入值转换为 [Float64](../data-types/float.md) 类型的值,但在发生错误时返回 `0`。 -其行为类似于 [`toFloat64`](#toFloat64),但在转换出错时返回 `0`,而不是抛出异常。 +将输入值转换为 [Float64](../data-types/float.md) 类型的值,但在出错时返回 `0`。 +类似于 [`toFloat64`](#toFloat64),但在转换出错时返回 `0`,而不是抛出异常。 另请参阅: @@ -4879,11 +4912,11 @@ toFloat64OrZero(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数值的字符串表示。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回 64 位浮点数值,否则返回 `0`。[`Float64`](/sql-reference/data-types/float) +成功时返回一个 64 位浮点数值,否则返回 `0`。[`Float64`](/sql-reference/data-types/float) **示例** @@ -4908,9 +4941,9 @@ toFloat64OrZero('abc'): 0 引入于:v1.1 -将输入值转换为 [Int128](/sql-reference/data-types/int-uint) 类型的值。 -出错时抛出异常。 -该函数采用向零舍入,这意味着会截断数字的小数部分。 +将输入值转换为类型为 [Int128](/sql-reference/data-types/int-uint) 的值。 +在发生错误时抛出异常。 +该函数采用向零舍入,即截断数值的小数部分。 支持的参数: @@ -4920,10 +4953,10 @@ toFloat64OrZero('abc'): 0 不支持的参数: * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toInt128('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如 `SELECT toInt128('0xc0fe');`。 :::note -如果输入值不能在 Int128 的范围内表示,结果会发生上溢或下溢。 +如果输入值不能在 Int128 的范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 ::: @@ -4941,7 +4974,7 @@ toInt128(expr) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数值或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -4970,10 +5003,10 @@ toInt128('-128'): -128 ## toInt128OrDefault \{#toInt128OrDefault\} -引入版本:v21.11 +引入于:v21.11 -与 [`toInt128`](#toInt128) 类似,此函数将输入值转换为 [Int128](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 -如果未传入 `default` 参数,则在出错时返回 `0`。 +与 [`toInt128`](#toInt128) 类似,此函数将输入值转换为 [Int128](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -4983,16 +5016,16 @@ toInt128OrDefault(expr[, default]) **参数** -* `expr` — 返回数值或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时返回的默认值。[`Int128`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,则返回 Int128 类型的值;否则,如果提供了默认值则返回该默认值,如果未提供则返回 0。[`Int128`](/sql-reference/data-types/int-uint) +如果解析成功,则返回 Int128 类型的值;否则,如果提供了默认值则返回该默认值,未提供默认值时返回 0。[`Int128`](/sql-reference/data-types/int-uint) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toInt128OrDefault('-128', CAST('-1', 'Int128')) @@ -5015,21 +5048,21 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) ## toInt128OrNull \{#toInt128OrNull\} -引入版本:v20.8 +引入于:v20.8 -与 [`toInt128`](#toInt128) 类似,此函数将输入值转换为 [Int128](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `NULL`。 +与 [`toInt128`](#toInt128) 类似,此函数将输入值转换为类型为 [Int128](../data-types/int-uint.md) 的值,但在出错时返回 `NULL`。 支持的参数: -* (U)Int* 的字符串表示。 +* (U)Int* 的字符串表示形式。 不支持的参数(返回 `NULL`): -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toInt128OrNull('0xc0fe');`。 +* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt128OrNull('0xc0fe');`。 :::note -如果输入值不能在 [Int128](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +如果输入值不能在 [Int128](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 这不视为错误。 ::: @@ -5047,11 +5080,11 @@ toInt128OrNull(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** -返回类型为 Int128 的值,如果转换失败则返回 `NULL`。[`Int128`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `Int128` 类型的值,如果转换失败则返回 `NULL`。[`Int128`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -5074,10 +5107,10 @@ toInt128OrNull('abc'): \N ## toInt128OrZero \{#toInt128OrZero\} -自 v20.8 引入 +引入版本:v20.8 将输入值转换为 [Int128](/sql-reference/data-types/int-uint) 类型,但在出错时返回 `0`。 -类似于 [`toInt128`](#toInt128),但会返回 `0` 而不是抛出异常。 +类似于 [`toInt128`](#toInt128),但在发生异常时返回 `0`。 另请参阅: @@ -5093,15 +5126,15 @@ toInt128OrZero(x) **参数** -* `x` — 要进行转换的输入值,可以是 [`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime)。 +* `x` — 要转换的输入值。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) **返回值** -返回转换后的输入值,如果转换失败则返回 `0`。[`Int128`](/sql-reference/data-types/int-uint) +返回转换后的输入值;如果转换失败,则返回 `0`。[`Int128`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toInt128OrZero('123') @@ -5111,7 +5144,7 @@ SELECT toInt128OrZero('123') 123 ``` -**转换失败时返回 0** +**失败的转换将返回零** ```sql title=Query SELECT toInt128OrZero('abc') @@ -5124,14 +5157,14 @@ SELECT toInt128OrZero('abc') ## toInt16 \{#toInt16\} -引入版本:v1.1 +自 v1.1 引入 将输入值转换为 [`Int16`](../data-types/int-uint.md) 类型的值。 在发生错误时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 (U)Int* 的值或其字符串表示。 * 类型为 Float* 的值。 不支持的参数: @@ -5146,7 +5179,7 @@ SELECT toInt128OrZero('abc') ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数字的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数值的小数部分。 ::: 另请参阅: @@ -5163,7 +5196,7 @@ toInt16(expr) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回一个数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -5192,10 +5225,10 @@ toInt16('-16'): -16 ## toInt16OrDefault \{#toInt16OrDefault\} -引入于:v21.11 +引入版本:v21.11 -与 [`toInt16`](#toInt16) 类似,此函数将输入值转换为 [Int16](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未指定 `default` 值,则在发生错误时返回 `0`。 +与 [`toInt16`](#toInt16) 类似,此函数将输入值转换为 [Int16](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 +如果未传入 `default` 参数,则在出错时返回 `0`。 **语法** @@ -5205,16 +5238,16 @@ toInt16OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或数字字符串形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时要返回的默认值。[`Int16`](/sql-reference/data-types/int-uint) +* `expr` — 返回数值或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时返回的默认值。[`Int16`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,则返回 `Int16` 类型的值;否则在传入默认值时返回该默认值,未传入则返回 0。[`Int16`](/sql-reference/data-types/int-uint) +解析成功时返回 `Int16` 类型的值;否则,如果传入了默认值,则返回默认值;如果未传入默认值,则返回 0。[`Int16`](/sql-reference/data-types/int-uint) **示例** -**转换成功** +**成功转换** ```sql title=Query SELECT toInt16OrDefault('-16', CAST('-1', 'Int16')) @@ -5248,11 +5281,11 @@ SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) 不支持的参数(返回 `NULL`): * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toInt16OrNull('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt16OrNull('0xc0fe');`。 :::note 如果输入值无法在 [Int16](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不会被视为错误。 +这不视为错误。 ::: 另请参阅: @@ -5269,7 +5302,7 @@ toInt16OrNull(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 表示数字的字符串。[`String`](/sql-reference/data-types/string) **返回值** @@ -5296,25 +5329,25 @@ toInt16OrNull('abc'): \N ## toInt16OrZero \{#toInt16OrZero\} -引入版本:v1.1 +引入于:v1.1 -与 [`toInt16`](#toInt16) 类似,此函数将输入值转换为 [Int16](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toInt16`](#toInt16) 类似,此函数将输入值转换为 [Int16](../data-types/int-uint.md) 类型的值,但在出现错误时返回 `0`。 支持的参数: -* (U)Int* 的字符串表示形式。 +* (U)Int* 的字符串表示。 不支持的参数(返回 `0`): -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt16OrZero('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt16OrZero('0xc0fe');`。 :::note -如果输入值不能在 [Int16](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不视为错误。 +如果输入值无法在 [Int16](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +这不被视为错误。 ::: -另请参阅: +另见: * [`toInt16`](#toInt16)。 * [`toInt16OrNull`](#toInt16OrNull)。 @@ -5328,11 +5361,11 @@ toInt16OrZero(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** -返回 `Int16` 类型的值,如果转换失败则返回 `0`。[`Int16`](/sql-reference/data-types/int-uint) +返回 `Int16` 类型的值,如果转换失败,则返回 `0`。[`Int16`](/sql-reference/data-types/int-uint) **示例** @@ -5355,24 +5388,24 @@ toInt16OrZero('abc'): 0 ## toInt256 \{#toInt256\} -引入版本:v1.1 +引入于:v1.1 将输入值转换为 [Int256](/sql-reference/data-types/int-uint) 类型的值。 -出错时抛出异常。 -该函数使用趋零舍入,这意味着会截断数值的小数部分。 +在发生错误时抛出异常。 +该函数采用向零舍入的方式,即截断数字的小数部分。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串形式。 * 类型为 Float* 的值。 不支持的参数: -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toInt256('0xc0fe');`。 +* Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串形式,例如:`SELECT toInt256('0xc0fe');`。 :::note -如果输入值无法在 Int256 的数值范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 Int256 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 ::: @@ -5390,15 +5423,15 @@ toInt256(expr) **参数** -* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字字符串形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回一个 256 位整数值。[`Int256`](/sql-reference/data-types/int-uint) +返回 256 位整数值。[`Int256`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -5419,10 +5452,10 @@ toInt256('-256'): -256 ## toInt256OrDefault \{#toInt256OrDefault\} -引入于:v21.11 +引入版本:v21.11 -与 [`toInt256`](#toInt256) 类似,此函数将输入值转换为 [Int256](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未传入 `default` 值,则在发生错误时返回 `0`。 +与 [`toInt256`](#toInt256) 类似,此函数将输入值转换为 [Int256](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 +如果未传入 `default` 值,则在出错时返回 `0`。 **语法** @@ -5432,16 +5465,16 @@ toInt256OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时返回的默认值。[`Int256`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,则返回 `Int256` 类型的值;否则,如果传入了默认值则返回该默认值,未传入则返回 0。[`Int256`](/sql-reference/data-types/int-uint) +如果转换成功,则返回 `Int256` 类型的值;否则在传入默认值时返回该默认值,未传入默认值时返回 0。[`Int256`](/sql-reference/data-types/int-uint) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toInt256OrDefault('-256', CAST('-1', 'Int256')) @@ -5474,12 +5507,12 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) 不支持的参数(返回 `NULL`): -* Float* 浮点值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制值和十六进制值的字符串表示,例如 `SELECT toInt256OrNull('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt256OrNull('0xc0fe');`。 :::note -如果输入值无法在 [Int256](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 -这不被视为错误。 +如果输入值不能在 [Int256](../data-types/int-uint.md) 的范围内表示,则结果会发生溢出或下溢。 +这不视为错误。 ::: 另请参阅: @@ -5496,15 +5529,15 @@ toInt256OrNull(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示。[`String`](/sql-reference/data-types/string) **返回值** -返回 `Int256` 类型的值;如果转换失败,则返回 `NULL`。[`Int256`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `Int256` 类型的值,如果转换失败则返回 `NULL`。[`Int256`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -5542,7 +5575,7 @@ toInt256OrZero(x) **参数** -* `x` — 要转换的输入值,类型可以是 [`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Float*`](/sql-reference/data-types/float)、[`Decimal`](/sql-reference/data-types/decimal)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) +* `x` — 要转换的输入值。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) 或 [`Float*`](/sql-reference/data-types/float) 或 [`Decimal`](/sql-reference/data-types/decimal) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) **返回值** @@ -5550,7 +5583,7 @@ toInt256OrZero(x) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toInt256OrZero('123') @@ -5573,10 +5606,10 @@ SELECT toInt256OrZero('abc') ## toInt32 \{#toInt32\} -引入于:v1.1 +引入版本:v1.1 将输入值转换为 [`Int32`](../data-types/int-uint.md) 类型的值。 -如果发生错误,则抛出异常。 +在发生错误时抛出异常。 支持的参数: @@ -5589,13 +5622,13 @@ SELECT toInt256OrZero('abc') * 二进制和十六进制值的字符串表示,例如:`SELECT toInt32('0xc0fe');`。 :::note -如果输入值不能在 [Int32](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +如果输入值无法在 [Int32](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 +此情况不视为错误。 例如:`SELECT toInt32(2147483648) == -2147483648;` ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数字的小数部分。 +该函数使用 [趋零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数字的小数部分。 ::: 另请参阅: @@ -5612,7 +5645,7 @@ toInt32(expr) **参数** -* `expr` — 返回数值或其字符串形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回一个数字或数字的字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -5620,7 +5653,7 @@ toInt32(expr) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -5641,10 +5674,10 @@ toInt32('-32'): -32 ## toInt32OrDefault \{#toInt32OrDefault\} -引入于:v21.11 +引入版本:v21.11 -与 [`toInt32`](#toInt32) 类似,此函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 -如果未指定 `default` 值,则在出错时返回 `0`。 +与 [`toInt32`](#toInt32) 类似,该函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -5654,12 +5687,12 @@ toInt32OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回数值或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时返回的默认值。[`Int32`](/sql-reference/data-types/int-uint) **返回值** -成功时返回 `Int32` 类型的值,否则如果传入了默认值则返回该默认值,如果未传入则返回 0。[`Int32`](/sql-reference/data-types/int-uint) +解析成功时返回 `Int32` 类型的值;否则在传入默认值时返回该默认值,未传入时返回 0。[`Int32`](/sql-reference/data-types/int-uint) **示例** @@ -5686,9 +5719,9 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) ## toInt32OrNull \{#toInt32OrNull\} -引入自:v1.1 +引入版本:v1.1 -与 [`toInt32`](#toInt32) 类似,此函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 +与 [`toInt32`](#toInt32) 类似,此函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `NULL`。 支持的参数: @@ -5697,11 +5730,11 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) 不支持的参数(返回 `NULL`): * Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串形式,例如 `SELECT toInt32OrNull('0xc0fe');`。 +* 二进制和十六进制值的字符串形式,例如:`SELECT toInt32OrNull('0xc0fe');`。 :::note -如果输入值不能在 [Int32](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +如果输入值无法在 [Int32](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 +这不视为错误。 ::: 另请参阅: @@ -5718,15 +5751,15 @@ toInt32OrNull(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 表示数字的字符串。[`String`](/sql-reference/data-types/string) **返回值** -返回 `Int32` 类型的值;如果转换失败则返回 `NULL`。[`Int32`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `Int32` 类型的值,若转换失败则返回 `NULL`。[`Int32`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -5745,21 +5778,21 @@ toInt32OrNull('abc'): \N ## toInt32OrZero \{#toInt32OrZero\} -引入于:v1.1 +引入版本:v1.1 -与 [`toInt32`](#toInt32) 类似,此函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toInt32`](#toInt32) 类似,此函数将输入值转换为 [Int32](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `0`。 支持的参数: -* (U)Int* 的字符串表示。 +* (U)Int* 的字符串形式。 不支持的参数(返回 `0`): -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toInt32OrZero('0xc0fe');`。 +* Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串形式,例如:`SELECT toInt32OrZero('0xc0fe');`。 :::note -如果输入值无法在 [Int32](../data-types/int-uint.md) 的范围内表示,则结果会发生溢出或下溢。 +如果输入值不能在 [Int32](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 ::: @@ -5777,15 +5810,15 @@ toInt32OrZero(x) **参数** -* `x` — 表示数字的字符串。[`String`](/sql-reference/data-types/string) +* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) **返回值** -返回 `Int32` 类型的值;如果转换失败则返回 `0`。[`Int32`](/sql-reference/data-types/int-uint) +返回 `Int32` 类型的值;如果转换失败,则返回 `0`。[`Int32`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -5804,29 +5837,29 @@ toInt32OrZero('abc'): 0 ## toInt64 \{#toInt64\} -引入于:v1.1 +引入自:v1.1 将输入值转换为 [`Int64`](../data-types/int-uint.md) 类型的值。 -如果发生错误,则抛出异常。 +在发生错误时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或其字符串表示形式。 * 类型为 Float* 的值。 不支持的参数: -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toInt64('0xc0fe');`。 +* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt64('0xc0fe');`。 :::note -如果输入值无法在 [Int64](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 [Int64](../data-types/int-uint.md) 的范围内表示,则结果会发生溢出(上溢或下溢)。 这不被视为错误。 例如:`SELECT toInt64(9223372036854775808) == -9223372036854775808;` ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即会截断数字的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数字的小数部分。 ::: 另请参阅: @@ -5843,11 +5876,11 @@ toInt64(expr) **参数** -* `expr` — 返回数字或数字字符串表示形式的表达式。支持:类型为 (U)Int* 的值或其字符串表示、类型为 Float* 的值。不支持:类型为 Float* 的值(包括 NaN 和 Inf)的字符串表示,以及二进制值和十六进制值的字符串表示。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字字符串表示形式的表达式。支持:类型为 (U)Int* 的值或其字符串表示、类型为 Float* 的值。不支持:Float* 值(包括 NaN 和 Inf)的字符串表示,以及二进制和十六进制值的字符串表示。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回 64 位整数值。[`Int64`](/sql-reference/data-types/int-uint) +返回一个 64 位整数值。[`Int64`](/sql-reference/data-types/int-uint) **示例** @@ -5872,10 +5905,10 @@ toInt64('-64'): -64 ## toInt64OrDefault \{#toInt64OrDefault\} -引入于:v21.11 +引入自:v21.11 -与 [`toInt64`](#toInt64) 类似,此函数将输入值转换为 [Int64](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 -如果未传入 `default` 值,则在出错时返回 `0`。 +与 [`toInt64`](#toInt64) 类似,此函数将输入值转换为 [Int64](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -5885,16 +5918,16 @@ toInt64OrDefault(expr[, default]) **参数** -* `expr` — 计算结果为数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回一个数值或该数值字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时要返回的默认值。[`Int64`](/sql-reference/data-types/int-uint) **返回值** -转换成功时返回 `Int64` 类型的值;否则,如果传入了默认值则返回默认值,未传入则返回 0。[`Int64`](/sql-reference/data-types/int-uint) +如果转换成功,则返回 `Int64` 类型的值;否则,如果提供了默认值,则返回该默认值;如果未提供,则返回 0。[`Int64`](/sql-reference/data-types/int-uint) **示例** -**转换成功** +**成功转换** ```sql title=Query SELECT toInt64OrDefault('-64', CAST('-1', 'Int64')) @@ -5917,22 +5950,22 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) ## toInt64OrNull \{#toInt64OrNull\} -引入于:v1.1 +引入版本:v1.1 -与 [`toInt64`](#toInt64) 类似,此函数将输入值转换为 [Int64](../data-types/int-uint.md) 类型的值,但在出错时则返回 `NULL`。 +与 [`toInt64`](#toInt64) 类似,此函数将输入值转换为 [Int64](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 支持的参数: -* (U)Int* 的字符串表示形式。 +* (U)Int* 的字符串表示。 不支持的参数(返回 `NULL`): -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt64OrNull('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt64OrNull('0xc0fe');`。 :::note -如果输入值无法在 [Int64](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +如果输入值不能在 [Int64](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +这不视为错误。 ::: 另请参阅: @@ -5957,7 +5990,7 @@ toInt64OrNull(x) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -5978,8 +6011,8 @@ toInt64OrNull('abc'): \N 自 v1.1 引入 -将输入值转换为类型 [Int64](/sql-reference/data-types/int-uint),但在出错时返回 `0`。 -类似于 [`toInt64`](#toInt64),但在发生错误时返回 `0`,而不是抛出异常。 +将输入值转换为 [Int64](/sql-reference/data-types/int-uint) 类型,但在出错时返回 `0`。 +类似于 [`toInt64`](#toInt64),但会返回 `0` 而不是抛出异常。 另请参阅: @@ -5999,11 +6032,11 @@ toInt64OrZero(x) **返回值** -返回转换后的值,如果转换失败则返回 `0`。[`Int64`](/sql-reference/data-types/int-uint) +返回转换后的值;如果转换失败,则返回 `0`。[`Int64`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT toInt64OrZero('123') @@ -6013,7 +6046,7 @@ SELECT toInt64OrZero('123') 123 ``` -**转换失败时返回零** +**转换失败时返回 0** ```sql title=Query SELECT toInt64OrZero('abc') @@ -6026,29 +6059,29 @@ SELECT toInt64OrZero('abc') ## toInt8 \{#toInt8\} -引入于:v1.1 +引入版本:v1.1 将输入值转换为 [`Int8`](../data-types/int-uint.md) 类型的值。 在发生错误时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示形式。 +* 类型为 (U)Int* 的值或其字符串形式。 * 类型为 Float* 的值。 不支持的参数: -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt8('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt8('0xc0fe');`。 :::note -如果输入值无法在 [Int8](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 -这不视为错误。 +如果输入值无法在 [Int8](../data-types/int-uint.md) 的范围内表示,则结果会发生溢出或下溢出。 +这不被视为错误。 例如:`SELECT toInt8(128) == -128;`。 ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数字的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),也就是说,它会截断数字的小数部分。 ::: 另请参阅: @@ -6065,7 +6098,7 @@ toInt8(expr) **参数** -* `expr` — 返回数值或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -6073,7 +6106,7 @@ toInt8(expr) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -6094,10 +6127,10 @@ toInt8('-8'): -8 ## toInt8OrDefault \{#toInt8OrDefault\} -自 v21.11 起引入 +引入版本:v21.11 与 [`toInt8`](#toInt8) 类似,此函数将输入值转换为 [Int8](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未传入 `default` 值,则在发生错误时返回 `0`。 +如果未传入 `default` 参数,则在发生错误时返回 `0`。 **语法** @@ -6107,12 +6140,12 @@ toInt8OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或数字字符串表示的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时返回的默认值。[`Int8`](/sql-reference/data-types/int-uint) +* `expr` — 计算结果为数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时要返回的默认值。[`Int8`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,返回 `Int8` 类型的值;否则在传入默认值时返回该默认值,未传入则返回 0。[`Int8`](/sql-reference/data-types/int-uint) +如果转换成功,则返回 `Int8` 类型的值;否则在传入默认值时返回该默认值,未传入默认值时返回 0。[`Int8`](/sql-reference/data-types/int-uint) **示例** @@ -6139,9 +6172,9 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) ## toInt8OrNull \{#toInt8OrNull\} -引入于:v1.1 +引入版本:v1.1 -与 [`toInt8`](#toInt8) 类似,此函数将输入值转换为 [Int8](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `NULL`。 +与 [`toInt8`](#toInt8) 类似,该函数将输入值转换为 [Int8](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `NULL`。 支持的参数: @@ -6150,7 +6183,7 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) 不支持的参数(返回 `NULL`): * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toInt8OrNull('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toInt8OrNull('0xc0fe');`。 :::note 如果输入值无法在 [Int8](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 @@ -6171,11 +6204,11 @@ toInt8OrNull(x) **参数** -* `x` — 数字的字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 以字符串(`String`)形式表示的数字。[`String`](/sql-reference/data-types/string) **返回值** -返回 `Int8` 类型的值,如果转换失败则返回 `NULL`。[`Int8`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `Int8` 类型的值;如果转换失败,则返回 `NULL`。[`Int8`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -6198,9 +6231,9 @@ toInt8OrNull('abc'): \N ## toInt8OrZero \{#toInt8OrZero\} -引入于:v1.1 +引入版本:v1.1 -与 [`toInt8`](#toInt8) 类似,此函数将输入值转换为类型为 [Int8](../data-types/int-uint.md) 的值,但在出错时返回 `0`。 +与 [`toInt8`](#toInt8) 类似,该函数将输入值转换为 [Int8](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 支持的参数: @@ -6209,11 +6242,11 @@ toInt8OrNull('abc'): \N 不支持的参数(返回 `0`): * Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toInt8OrZero('0xc0fe');`。 +* 二进制和十六进制值的字符串表示形式,例如 `SELECT toInt8OrZero('0xc0fe');`。 :::note -如果输入值不能在 [Int8](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +如果输入值不能在 [Int8](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 +这不视为错误。 ::: 另请参阅: @@ -6230,7 +6263,7 @@ toInt8OrZero(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -6257,14 +6290,13 @@ toInt8OrZero('abc'): 0 ## toInterval \{#toInterval\} -引入于:v25.4 +引入版本:v25.4 -从数值和单位字符串创建一个 Interval 类型的值。 +根据数值和单位字符串创建一个 Interval 值。 -此函数提供了一种统一的方式,通过在单个函数中以字符串参数的形式指定单位,来创建不同类型的时间间隔(秒、分、小时、天、周、月、季度、年)。单位字符串不区分大小写。 +通过将单位作为字符串参数指定,此函数提供了一种统一的方式来创建不同类型的时间间隔(秒、分钟、小时、天、周、月、季度、年)。单位字符串不区分大小写。 -这等价于调用各个类型专用的函数,例如 `toIntervalSecond`、`toIntervalMinute`、`toIntervalDay` 等, -但允许以字符串参数的形式动态指定单位。 +这等同于调用类型特定的函数,例如 `toIntervalSecond`、`toIntervalMinute`、`toIntervalDay` 等,但允许以字符串参数的形式动态指定单位。 **语法** @@ -6274,16 +6306,16 @@ toInterval(value, unit) **参数** -* `value` — 表示某个单位数量的数值。可以是任意数值类型。[`Int8`](/sql-reference/data-types/int-uint) 或 [`Int16`](/sql-reference/data-types/int-uint) 或 [`Int32`](/sql-reference/data-types/int-uint) 或 [`Int64`](/sql-reference/data-types/int-uint) 或 [`UInt8`](/sql-reference/data-types/int-uint) 或 [`UInt16`](/sql-reference/data-types/int-uint) 或 [`UInt32`](/sql-reference/data-types/int-uint) 或 [`UInt64`](/sql-reference/data-types/int-uint) 或 [`Float32`](/sql-reference/data-types/float) 或 [`Float64`](/sql-reference/data-types/float) +* `value` — 表示单位数量的数值。可以是任意数值类型:[`Int8`](/sql-reference/data-types/int-uint)、[`Int16`](/sql-reference/data-types/int-uint)、[`Int32`](/sql-reference/data-types/int-uint)、[`Int64`](/sql-reference/data-types/int-uint)、[`UInt8`](/sql-reference/data-types/int-uint)、[`UInt16`](/sql-reference/data-types/int-uint)、[`UInt32`](/sql-reference/data-types/int-uint)、[`UInt64`](/sql-reference/data-types/int-uint)、[`Float32`](/sql-reference/data-types/float) 或 [`Float64`](/sql-reference/data-types/float)。 * `unit` — 时间单位。必须是常量字符串。有效值:'nanosecond'、'microsecond'、'millisecond'、'second'、'minute'、'hour'、'day'、'week'、'month'、'quarter'、'year'。[`String`](/sql-reference/data-types/string) **返回值** -返回指定类型的 Interval 类型值。结果类型取决于单位:IntervalNanosecond、IntervalMicrosecond、IntervalMillisecond、IntervalSecond、IntervalMinute、IntervalHour、IntervalDay、IntervalWeek、IntervalMonth、IntervalQuarter 或 IntervalYear。[`Interval`](/sql-reference/data-types/int-uint) +返回指定类型的 Interval 值。结果类型取决于时间单位:IntervalNanosecond、IntervalMicrosecond、IntervalMillisecond、IntervalSecond、IntervalMinute、IntervalHour、IntervalDay、IntervalWeek、IntervalMonth、IntervalQuarter 或 IntervalYear。[`Interval`](/sql-reference/data-types/int-uint) **示例** -**使用不同时间单位创建区间** +**创建不同时间单位的 Interval** ```sql title=Query SELECT @@ -6298,7 +6330,7 @@ SELECT └─────────┴──────┴────────┘ ``` -**在日期运算中使用间隔** +**在日期运算中使用时间间隔** ```sql title=Query SELECT @@ -6333,9 +6365,9 @@ FROM numbers(5) ## toIntervalDay \{#toIntervalDay\} -自 v1.1 引入 +自 v1.1 版本引入 -返回一个长度为 `n` 天、数据类型为 [`IntervalDay`](../data-types/special-data-types/interval.md) 的时间间隔。 +返回一个长度为 `n` 天、数据类型为 [`IntervalDay`](../data-types/special-data-types/interval.md) 的区间值。 **语法** @@ -6345,11 +6377,11 @@ toIntervalDay(n) **参数** -* `n` — 天数。可以是整数或其字符串形式,也可以是浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 天数。可以是整数、其字符串表示形式或浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** -返回一个表示 `n` 天的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个长度为 `n` 天的区间值。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6371,9 +6403,9 @@ SELECT date + interval_to_days AS result ## toIntervalHour \{#toIntervalHour\} -自 v1.1 引入 +自 v1.1 起引入 -返回一个 [`IntervalHour`](../data-types/special-data-types/interval.md) 数据类型的、表示 `n` 小时的时间间隔。 +返回一个由 `n` 小时组成的时间间隔,数据类型为 [`IntervalHour`](../data-types/special-data-types/interval.md)。 **语法** @@ -6383,7 +6415,7 @@ toIntervalHour(n) **参数** -* `n` — 小时数。可以是整数、其字符串表示形式,或浮点数。[`Int*`](/sql-reference/data-types/int-uint) 或 [`UInt*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 小时数。可以是整数或其字符串表示形式,也可以是浮点数。[`Int*`](/sql-reference/data-types/int-uint) 或 [`UInt*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** @@ -6391,7 +6423,7 @@ toIntervalHour(n) **示例** -**用法示例** +**使用示例** ```sql title=Query WITH @@ -6409,7 +6441,7 @@ SELECT date + interval_to_hours AS result ## toIntervalMicrosecond \{#toIntervalMicrosecond\} -引入版本:v22.6 +自 v22.6 引入 返回一个表示 `n` 微秒的时间间隔,数据类型为 [`IntervalMicrosecond`](../../sql-reference/data-types/special-data-types/interval.md)。 @@ -6425,7 +6457,7 @@ toIntervalMicrosecond(n) **返回值** -返回一个长度为 `n` 微秒的区间值。[`Interval`](/sql-reference/data-types/int-uint) +返回一个表示 `n` 微秒的区间。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6447,9 +6479,9 @@ SELECT date + interval_to_microseconds AS result ## toIntervalMillisecond \{#toIntervalMillisecond\} -自 v22.6 起引入 +自 v22.6 引入 -返回一个时长为 `n` 毫秒、数据类型为 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md) 的时间间隔。 +返回一个长度为 `n` 毫秒的时间间隔,数据类型为 [IntervalMillisecond](../../sql-reference/data-types/special-data-types/interval.md)。 **语法** @@ -6463,7 +6495,7 @@ toIntervalMillisecond(n) **返回值** -返回一个长度为 `n` 毫秒的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个包含 `n` 毫秒的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6485,9 +6517,9 @@ SELECT date + interval_to_milliseconds AS result ## toIntervalMinute \{#toIntervalMinute\} -自 v1.1 版本引入 +引入版本:v1.1 -返回一个由 `n` 分钟组成、数据类型为 [`IntervalMinute`](../data-types/special-data-types/interval.md) 的时间间隔。 +返回一个 `n` 分钟的时间间隔,数据类型为 [`IntervalMinute`](../data-types/special-data-types/interval.md)。 **语法** @@ -6497,15 +6529,15 @@ toIntervalMinute(n) **参数** -* `n` — 分钟数。可以是整数、其字符串表示形式或浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 分钟数。可以是整数或其字符串表示形式,也可以是浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** -返回一个表示 `n` 分钟的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个长度为 `n` 分钟的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query WITH @@ -6523,9 +6555,9 @@ SELECT date + interval_to_minutes AS result ## toIntervalMonth \{#toIntervalMonth\} -引入版本:v1.1 +自 v1.1 起引入 -返回一个长度为 `n` 个月、数据类型为 [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md) 的时间间隔。 +返回一个数据类型为 [`IntervalMonth`](../../sql-reference/data-types/special-data-types/interval.md)、表示 `n` 个月的时间间隔。 **语法** @@ -6535,15 +6567,15 @@ toIntervalMonth(n) **参数** -* `n` — 月份数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 月数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** -返回一个表示 `n` 个月的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个长度为 `n` 个月的区间。[`Interval`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query WITH @@ -6561,9 +6593,9 @@ SELECT date + interval_to_month AS result ## toIntervalNanosecond \{#toIntervalNanosecond\} -引入于:v22.6 +自 v22.6 起提供 -返回一个长度为 `n` 个纳秒的数据区间,数据类型为 [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md)。 +返回一个表示 `n` 纳秒、数据类型为 [`IntervalNanosecond`](../../sql-reference/data-types/special-data-types/interval.md) 的区间值。 **语法** @@ -6577,7 +6609,7 @@ toIntervalNanosecond(n) **返回值** -返回一个表示 `n` 纳秒的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个时长为 `n` 纳秒的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6599,9 +6631,9 @@ SELECT date + interval_to_nanoseconds AS result ## toIntervalQuarter \{#toIntervalQuarter\} -引入版本:v1.1 +引入于:v1.1 -返回一个表示 `n` 个季度的 [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md) 类型的时间间隔。 +返回一个由 `n` 个季度组成、数据类型为 [`IntervalQuarter`](../../sql-reference/data-types/special-data-types/interval.md) 的区间。 **语法** @@ -6611,11 +6643,11 @@ toIntervalQuarter(n) **参数** -* `n` — 季度数量。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 季度数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** -返回一个跨越 `n` 个季度的时间区间。[`Interval`](/sql-reference/data-types/int-uint) +返回一个 `n` 个季度的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6637,9 +6669,9 @@ SELECT date + interval_to_quarter AS result ## toIntervalSecond \{#toIntervalSecond\} -引入版本:v1.1 +自 v1.1 版本引入。 -返回一个长度为 `n` 秒、数据类型为 [`IntervalSecond`](../data-types/special-data-types/interval.md) 的时间间隔。 +返回一个时长为 `n` 秒、数据类型为 [`IntervalSecond`](../data-types/special-data-types/interval.md) 的时间间隔。 **语法** @@ -6649,15 +6681,15 @@ toIntervalSecond(n) **参数** -* `n` — 秒数。可以是整数、其字符串表示形式或浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) +* `n` — 秒数。可以是整数、该整数的字符串表示形式,或浮点数。[`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) 或 [`String`](/sql-reference/data-types/string) **返回值** -返回一个持续 `n` 秒的时间区间。[`Interval`](/sql-reference/data-types/int-uint) +返回一个持续 `n` 秒的时间间隔(`Interval` 类型)。[`Interval`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query WITH @@ -6675,9 +6707,9 @@ SELECT date + interval_to_seconds AS result ## toIntervalWeek \{#toIntervalWeek\} -引入版本:v1.1 +自 v1.1 引入 -返回一个表示 `n` 周的时间间隔,数据类型为 [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md)。 +返回一个由 `n` 周组成、数据类型为 [`IntervalWeek`](../../sql-reference/data-types/special-data-types/interval.md) 的时间间隔。 **语法** @@ -6691,11 +6723,11 @@ toIntervalWeek(n) **返回值** -返回一个持续 `n` 周的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个 `n` 周的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query WITH @@ -6713,9 +6745,9 @@ SELECT date + interval_to_week AS result ## toIntervalYear \{#toIntervalYear\} -引入版本:v1.1 +引入于:v1.1 -返回一个表示 `n` 年的 [`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) 类型时间间隔。 +返回一个长度为 `n` 年、数据类型为 [`IntervalYear`](../../sql-reference/data-types/special-data-types/interval.md) 的区间。 **语法** @@ -6729,7 +6761,7 @@ toIntervalYear(n) **返回值** -返回一个表示 `n` 年的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) +返回一个长度为 `n` 年的时间间隔。[`Interval`](/sql-reference/data-types/int-uint) **示例** @@ -6756,7 +6788,7 @@ SELECT date + interval_to_year AS result 将输入参数转换为相同数据类型的 [LowCardinality](../data-types/lowcardinality.md) 版本。 :::tip -要将 `LowCardinality` 数据类型转换为普通数据类型,请使用 [CAST](#CAST) 函数。 +要将 `LowCardinality` 数据类型转换为常规数据类型,请使用 [CAST](#CAST) 函数。 例如:`CAST(x AS String)`。 ::: @@ -6768,15 +6800,15 @@ toLowCardinality(expr) **参数** -* `expr` — 其结果为受支持数据类型之一的表达式。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) 或 [`Date`](/sql-reference/data-types/date) 或 [`DateTime`](/sql-reference/data-types/datetime) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 结果类型为以下任一受支持数据类型的表达式:[`String`](/sql-reference/data-types/string)、[`FixedString`](/sql-reference/data-types/fixedstring)、[`Date`](/sql-reference/data-types/date)、[`DateTime`](/sql-reference/data-types/datetime)、[`(U)Int*`](/sql-reference/data-types/int-uint)、[`Float*`](/sql-reference/data-types/float) **返回值** -返回将输入值转换为 `LowCardinality` 数据类型的结果。[`LowCardinality`](/sql-reference/data-types/lowcardinality) +返回将输入值转换为 `LowCardinality` 数据类型后的结果值。[`LowCardinality`](/sql-reference/data-types/lowcardinality) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT toLowCardinality('1') @@ -6791,10 +6823,10 @@ SELECT toLowCardinality('1') ## toString \{#toString\} -自 v1.1 起引入 +引入于:v1.1 -将值转换为其字符串表示。 -对于 DateTime 参数,该函数可以接收第二个 String 参数,用于指定时区名称。 +将值转换为其字符串表示形式。 +对于 `DateTime` 参数,该函数可以接受第二个 `String` 类型参数,其中包含时区名称。 **语法** @@ -6805,7 +6837,7 @@ toString(value[, timezone]) **参数** * `value` — 要转换为字符串的值。[`Any`](/sql-reference/data-types) -* `timezone` — 可选。用于 DateTime 转换的时区名称。[`String`](/sql-reference/data-types/string) +* `timezone` — 可选。用于 `DateTime` 转换的时区名称。[`String`](/sql-reference/data-types/string) **返回值** @@ -6813,7 +6845,7 @@ toString(value[, timezone]) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -6840,10 +6872,10 @@ LIMIT 10 引入版本:v1.1 -接受一个 [String](/sql-reference/data-types/string) 或 [FixedString](/sql-reference/data-types/fixedstring) 参数,并返回一个 String,其中包含原始字符串的副本,但在第一个空字节处被截断。 +接受一个 [String](/sql-reference/data-types/string) 或 [FixedString](/sql-reference/data-types/fixedstring) 参数,并返回一个 String,其内容为原始字符串在遇到第一个空字节处被截断的副本。 空字节(\0)被视为字符串终止符。 -此函数适用于处理 C 风格字符串或二进制数据,在这些场景中空字节用于标记有效内容的结束。 +此函数适用于处理 C 风格字符串或以空字节标记有效内容结束的二进制数据。 **语法** @@ -6853,11 +6885,11 @@ toStringCutToZero(s) **参数** -* `s` — 要处理的 String 或 FixedString。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `s` — 要处理的 String 或 FixedString 类型的值。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** -返回一个包含首个空字节(null byte)之前所有字符的 String。[`String`](/sql-reference/data-types/string) +返回一个 String,其内容为第一个空字节之前的字符。[`String`](/sql-reference/data-types/string) **示例** @@ -6878,10 +6910,10 @@ SELECT ## toTime \{#toTime\} -在 v1.1 版本中引入 +引入版本:v1.1 将输入值转换为 [Time](/sql-reference/data-types/time) 类型。 -支持从 String、FixedString、DateTime 或表示自午夜起经过秒数的数值类型进行转换。 +支持从 String、FixedString、DateTime,或表示自午夜起经过秒数的数值类型进行转换。 **语法** @@ -6899,7 +6931,7 @@ toTime(x) **示例** -**将 String 转换为 Time 的示例** +**String 到 Time 的类型转换** ```sql title=Query SELECT toTime('14:30:25') @@ -6932,10 +6964,10 @@ SELECT toTime(52225) ## toTime64 \{#toTime64\} -自 v25.6 起引入 +引入自:v25.6 将输入值转换为 [Time64](/sql-reference/data-types/time64) 类型。 -支持从 String、FixedString、DateTime64,或数值类型(表示自午夜起经过的微秒数)进行转换。 +支持从 String、FixedString、DateTime64,或表示自午夜起微秒数的数值类型进行转换。 为时间值提供微秒级精度。 **语法** @@ -6954,7 +6986,7 @@ toTime64(x) **示例** -**将 String 转换为 Time64** +**String 到 Time64 的转换** ```sql title=Query SELECT toTime64('14:30:25.123456') @@ -6964,7 +6996,7 @@ SELECT toTime64('14:30:25.123456') 14:30:25.123456 ``` -**将 DateTime64 转换为 Time64** +**DateTime64 到 Time64 的转换** ```sql title=Query SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6)) @@ -6974,7 +7006,7 @@ SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6)) 14:30:25.123456 ``` -**整数到 Time64 的转换** +**整数到 Time64 的类型转换** ```sql title=Query SELECT toTime64(52225123456) @@ -6987,12 +7019,12 @@ SELECT toTime64(52225123456) ## toTime64OrNull \{#toTime64OrNull\} -引入于:v25.6 +引入自:v25.6 -将输入值转换为 `Time64` 类型的值,但在出错时返回 `NULL`。 -类似于 [`toTime64`](#toTime64),只是当转换出错时返回 `NULL`,而不是抛出异常。 +将输入值转换为 `Time64` 类型的值,但在出现错误时返回 `NULL`。 +类似于 [`toTime64`](#toTime64),但在转换出错时返回 `NULL`,而不是抛出异常。 -另请参阅: +另见: * [`toTime64`](#toTime64) * [`toTime64OrZero`](#toTime64OrZero) @@ -7009,11 +7041,11 @@ toTime64OrNull(x) **返回值** -成功时返回 Time64 值,否则返回 `NULL`。[`Time64`](/sql-reference/data-types/time64) 或 [`NULL`](/sql-reference/syntax#null) +成功时返回 Time64 类型的值,否则返回 `NULL`。[`Time64`](/sql-reference/data-types/time64) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid') @@ -7028,10 +7060,10 @@ SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid') ## toTime64OrZero \{#toTime64OrZero\} -引入版本:v25.6 +引入于:v25.6 将输入值转换为 Time64 类型的值,但在发生错误时返回 `00:00:00.000`。 -类似于 [`toTime64`](#toTime64),但在转换出错时返回 `00:00:00.000`,而不是抛出异常。 +类似于 [`toTime64`](#toTime64),但在转换出错时不会抛出异常,而是返回 `00:00:00.000`。 **语法** @@ -7041,11 +7073,11 @@ toTime64OrZero(x) **参数** -* `x` — 具有亚秒级精度的时间字符串表示。[`String`](/sql-reference/data-types/string) +* `x` — 具有子秒级精度的时间的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -如果成功,则返回一个 Time64 值,否则返回 `00:00:00.000`。[`Time64`](/sql-reference/data-types/time64) +成功时返回一个 Time64 值,否则返回 `00:00:00.000`。[`Time64`](/sql-reference/data-types/time64) **示例** @@ -7064,12 +7096,12 @@ SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid') ## toTimeOrNull \{#toTimeOrNull\} -引入版本:v1.1 +引入于:v1.1 -将输入值转换为 `Time` 类型的值,但在出错时返回 `NULL`。 +将输入值转换为 `Time` 类型的值,但在转换失败时返回 `NULL`。 类似于 [`toTime`](#toTime),但在转换出错时返回 `NULL`,而不是抛出异常。 -另见: +另请参阅: * [`toTime`](#toTime) * [`toTimeOrZero`](#toTimeOrZero) @@ -7082,11 +7114,11 @@ toTimeOrNull(x) **参数** -* `x` — 表示时间的字符串。[`String`](/sql-reference/data-types/string) +* `x` — 时间的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -成功时返回一个 Time 类型的值,否则返回 `NULL`。[`Time`](/sql-reference/data-types/time) 或 [`NULL`](/sql-reference/syntax#null) +转换成功时返回一个 Time 值,否则返回 `NULL`。[`Time`](/sql-reference/data-types/time) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -7105,10 +7137,10 @@ SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid') ## toTimeOrZero \{#toTimeOrZero\} -自 v1.1 引入 +引入版本:v1.1 -将输入值转换为 `Time` 类型的值,但在出错时返回 `00:00:00`。 -与 `toTime` 类似,但在转换出错时返回 `00:00:00`,而不是抛出异常。 +将输入值转换为 `Time` 类型的值,但在发生错误时返回 `00:00:00`。 +类似于 `toTime`,但在转换出错时返回 `00:00:00`,而不是抛出异常。 **语法** @@ -7122,7 +7154,7 @@ toTimeOrZero(x) **返回值** -成功时返回一个 Time 类型的值,否则返回 `00:00:00`。[`Time`](/sql-reference/data-types/time) +如果转换成功,则返回一个 Time 类型的值,否则返回 `00:00:00`。[`Time`](/sql-reference/data-types/time) **示例** @@ -7141,24 +7173,24 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') ## toUInt128 \{#toUInt128\} -引入自:v1.1 +引入版本:v1.1 将输入值转换为 [`UInt128`](/sql-reference/functions/type-conversion-functions#toUInt128) 类型的值。 -在发生错误时抛出异常。 -该函数使用向零舍入方式,即截断数值的小数部分。 +发生错误时会抛出异常。 +该函数采用向零舍入方式,即会截断数字的小数部分。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示形式。 +* 类型为 (U)Int* 的值或其字符串表示。 * 类型为 Float* 的值。 不支持的参数: -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如 `SELECT toUInt128('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt128('0xc0fe');`。 :::note -如果输入值无法在 UInt128 的范围内表示,结果会发生上溢或下溢。 +如果输入值不能在 UInt128 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 ::: @@ -7176,7 +7208,7 @@ toUInt128(expr) **参数** -* `expr` — 返回一个数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -7207,8 +7239,8 @@ toUInt128('128'): 128 引入版本:v21.11 -与 [`toUInt128`](#toUInt128) 类似,此函数将输入值转换为 [`UInt128`](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未传入 `default` 值,则在出错时返回 `0`。 +与 [`toUInt128`](#toUInt128) 类似,此 FUNCTION 将输入值转换为 [`UInt128`](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -7218,16 +7250,16 @@ toUInt128OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时返回的默认值。[`UInt128`](/sql-reference/data-types/int-uint) +* `expr` — 返回一个数字或该数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时要返回的默认值。[`UInt128`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,则返回 `UInt128` 类型的值;否则,如果传入了默认值,则返回该默认值;未传入时返回 0。[`UInt128`](/sql-reference/data-types/int-uint) +转换成功时返回 `UInt128` 类型的值;否则,如果传入了默认值则返回该默认值,未传入则返回 0。[`UInt128`](/sql-reference/data-types/int-uint) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toUInt128OrDefault('128', CAST('0', 'UInt128')) @@ -7250,25 +7282,25 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) ## toUInt128OrNull \{#toUInt128OrNull\} -引入自:v21.6 +引入版本:v21.6 与 [`toUInt128`](#toUInt128) 类似,此函数将输入值转换为 [`UInt128`](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `NULL`。 支持的参数: -* (U)Int* 的字符串表示形式。 +* (U)Int* 的字符串表示。 不支持的参数(返回 `NULL`): -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toUInt128OrNull('0xc0fe');`。 +* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt128OrNull('0xc0fe');`。 :::note 如果输入值不能在 [`UInt128`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不会被视为错误。 +这不被视为错误。 ::: -另请参见: +另请参阅: * [`toUInt128`](#toUInt128)。 * [`toUInt128OrZero`](#toUInt128OrZero)。 @@ -7286,11 +7318,11 @@ toUInt128OrNull(x) **返回值** -返回 `UInt128` 类型的值;如果转换失败,则返回 `NULL`。[`UInt128`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `UInt128` 类型的值,如果转换失败则返回 `NULL`。[`UInt128`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -7315,15 +7347,15 @@ toUInt128OrNull('abc'): \N 支持的参数: -* (U)Int* 的字符串表示形式。 +* (U)Int* 的字符串形式。 不支持的参数(返回 `0`): -* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示形式,例如:`SELECT toUInt128OrZero('0xc0fe');`。 +* Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串形式,例如 `SELECT toUInt128OrZero('0xc0fe');`。 :::note -如果输入值不能在 [`UInt128`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 [`UInt128`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 ::: @@ -7341,11 +7373,11 @@ toUInt128OrZero(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 表示数值的字符串。[`String`](/sql-reference/data-types/string) **返回值** -返回 `UInt128` 类型的值,如果转换失败,则返回 `0`。[`UInt128`](/sql-reference/data-types/int-uint) +返回 `UInt128` 类型的值,如果转换失败则返回 `0`。[`UInt128`](/sql-reference/data-types/int-uint) **示例** @@ -7368,10 +7400,10 @@ toUInt128OrZero('abc'): 0 ## toUInt16 \{#toUInt16\} -引入于:v1.1 +自 v1.1 引入 将输入值转换为 [`UInt16`](../data-types/int-uint.md) 类型的值。 -出错时会抛出异常。 +在发生错误时抛出异常。 支持的参数: @@ -7384,13 +7416,13 @@ toUInt128OrZero('abc'): 0 * 二进制和十六进制值的字符串表示,例如:`SELECT toUInt16('0xc0fe');`。 :::note -如果输入值无法在 [`UInt16`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 +如果输入值无法在 [`UInt16`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 例如:`SELECT toUInt16(65536) == 0;`。 ::: :::note -该函数采用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数值的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),也就是说它会截断数字的小数部分。 ::: 另请参阅: @@ -7407,7 +7439,7 @@ toUInt16(expr) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 结果为数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -7415,7 +7447,7 @@ toUInt16(expr) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -7438,8 +7470,8 @@ toUInt16('16'): 16 引入于:v21.11 -与 [`toUInt16`](#toUInt16) 类似,此函数将输入值转换为 [UInt16](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未传入 `default` 值,则在发生错误时返回 `0`。 +与 [`toUInt16`](#toUInt16) 类似,该 FUNCTION 将输入值转换为 [UInt16](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 +如果未传入 `default` 值,则在出错时返回 `0`。 **语法** @@ -7449,16 +7481,16 @@ toUInt16OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) -* `default` — 可选。解析失败时返回的默认值。[`UInt16`](/sql-reference/data-types/int-uint) +* `expr` — 返回数字或表示数字的字符串的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `default` — 可选。解析失败时要返回的默认值。[`UInt16`](/sql-reference/data-types/int-uint) **返回值** -解析成功时返回 `UInt16` 类型的值;否则返回传入的默认值;如果未传入默认值,则返回 0。[`UInt16`](/sql-reference/data-types/int-uint) +如果转换成功,则返回 `UInt16` 类型的值;否则,如果传入了默认值则返回该默认值,未传入则返回 0。[`UInt16`](/sql-reference/data-types/int-uint) **示例** -**成功转换** +**转换成功** ```sql title=Query SELECT toUInt16OrDefault('16', CAST('0', 'UInt16')) @@ -7483,19 +7515,19 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) 引入于:v1.1 -与 [`toUInt16`](#toUInt16) 类似,此函数将输入值转换为 [`UInt16`](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 +与 [`toUInt16`](#toUInt16) 类似,该函数将输入值转换为 [`UInt16`](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 支持的参数: -* (U)Int8/16/32/128/256 的字符串表示。 +* (U)Int8/16/32/128/256 的字符串形式。 不支持的参数(返回 `NULL`): -* Float* 类型值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt16OrNull('0xc0fe');`。 +* Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串形式,例如 `SELECT toUInt16OrNull('0xc0fe');`。 :::note -如果输入值不能在 [`UInt16`](../data-types/int-uint.md) 的范围内表示,结果将发生溢出或下溢。 +如果输入值无法在 [`UInt16`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 ::: @@ -7513,7 +7545,7 @@ toUInt16OrNull(x) **参数** -* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -7540,25 +7572,25 @@ toUInt16OrNull('abc'): \N ## toUInt16OrZero \{#toUInt16OrZero\} -引入于:v1.1 +引入版本:v1.1 与 [`toUInt16`](#toUInt16) 类似,此函数将输入值转换为 [`UInt16`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 支持的参数: -* (U)Int8/16/32/128/256 的字符串表示。 +* (U)Int8/16/32/128/256 的字符串形式。 不支持的参数(返回 `0`): -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制值和十六进制值的字符串表示,例如:`SELECT toUInt16OrZero('0xc0fe');`。 +* Float* 值的字符串形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串形式,例如:`SELECT toUInt16OrZero('0xc0fe');`。 :::note -如果输入值无法在 [`UInt16`](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 [`UInt16`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 ::: -另请参阅: +另请参见: * [`toUInt16`](#toUInt16)。 * [`toUInt16OrNull`](#toUInt16OrNull)。 @@ -7572,11 +7604,11 @@ toUInt16OrZero(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** -返回 `UInt16` 类型的值,如果转换失败则返回 `0`。[`UInt16`](/sql-reference/data-types/int-uint) +返回 `UInt16` 类型的值,如果转换不成功则返回 `0`。[`UInt16`](/sql-reference/data-types/int-uint) **示例** @@ -7603,11 +7635,11 @@ toUInt16OrZero('abc'): 0 将输入值转换为 `UInt256` 类型的值。 在发生错误时抛出异常。 -该函数采用向零舍入方式,即会截断数字的小数部分。 +该函数采用向零舍入,即截断数字的小数部分。 支持的参数: -* 类型为 (U)Int* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或该类型值的字符串表示。 * 类型为 Float* 的值。 不支持的参数: @@ -7616,8 +7648,8 @@ toUInt16OrZero('abc'): 0 * 二进制和十六进制值的字符串表示,例如:`SELECT toUInt256('0xc0fe');`。 :::note -如果输入值无法在 UInt256 的取值范围内表示,则结果会发生上溢或下溢。 -这不会被视为错误。 +如果输入值超出 UInt256 的取值范围,则结果会发生上溢或下溢。 +这不被视为错误。 ::: 另请参阅: @@ -7634,15 +7666,15 @@ toUInt256(expr) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回 256 位无符号整数值。[`UInt256`](/sql-reference/data-types/int-uint) +返回一个 256 位无符号整数值。[`UInt256`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -7663,9 +7695,9 @@ toUInt256('256'): 256 ## toUInt256OrDefault \{#toUInt256OrDefault\} -引入自:v21.11 +引入于:v21.11 -与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [UInt256](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 +与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [UInt256](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -7681,7 +7713,7 @@ toUInt256OrDefault(expr[, default]) **返回值** -如果解析成功,返回 `UInt256` 类型的值;否则返回传入的默认值;如果未传入默认值,则返回 0。[`UInt256`](/sql-reference/data-types/int-uint) +如果转换成功,则返回 `UInt256` 类型的值;否则,如果传入了默认值,则返回默认值,否则返回 0。[`UInt256`](/sql-reference/data-types/int-uint) **示例** @@ -7710,7 +7742,7 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) 引入于:v20.8 -与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [`UInt256`](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 +与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [`UInt256`](../data-types/int-uint.md) 类型的值,但在出错时则返回 `NULL`。 支持的参数: @@ -7719,10 +7751,10 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) 不支持的参数(返回 `NULL`): * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt256OrNull('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt256OrNull('0xc0fe');`。 :::note -如果输入值不能在 [`UInt256`](../data-types/int-uint.md) 的取值范围内表示,结果会发生上溢或下溢。 +如果输入值无法在 [`UInt256`](../data-types/int-uint.md) 的范围内表示,则结果会发生溢出或下溢。 这不被视为错误。 ::: @@ -7740,11 +7772,11 @@ toUInt256OrNull(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -返回类型为 UInt256 的值,如果转换失败则返回 `NULL`。[`UInt256`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 `UInt256` 类型的值,如果转换失败则返回 `NULL`。[`UInt256`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** @@ -7767,22 +7799,22 @@ toUInt256OrNull('abc'): \N ## toUInt256OrZero \{#toUInt256OrZero\} -引入版本:v20.8 +引入于:v20.8 -与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [`UInt256`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toUInt256`](#toUInt256) 类似,此函数将输入值转换为 [`UInt256`](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `0`。 支持的参数: -* (U)Int* 的字符串表示。 +* (U)Int* 的字符串表示形式。 不支持的参数(返回 `0`): -* Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt256OrZero('0xc0fe');`。 +* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示形式,例如:`SELECT toUInt256OrZero('0xc0fe');`。 :::note -如果输入值无法在 [`UInt256`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 -这不视为错误。 +如果输入值无法在 [`UInt256`](../data-types/int-uint.md) 的范围内表示,则结果将发生上溢或下溢。 +这不被视为错误。 ::: 另请参阅: @@ -7799,11 +7831,11 @@ toUInt256OrZero(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 以字符串形式表示的数字。[`String`](/sql-reference/data-types/string) **返回值** -返回 UInt256 类型的值;如果转换失败,则返回 `0`。[`UInt256`](/sql-reference/data-types/int-uint) +返回 `UInt256` 类型的值,如果转换失败则返回 `0`。[`UInt256`](/sql-reference/data-types/int-uint) **示例** @@ -7826,29 +7858,29 @@ toUInt256OrZero('abc'): 0 ## toUInt32 \{#toUInt32\} -自 v1.1 起引入 +引入自:v1.1 将输入值转换为 [`UInt32`](../data-types/int-uint.md) 类型的值。 -在发生错误时抛出异常。 +出错时抛出异常。 支持的参数: -* 类型为 (U)Int* 的值或其字符串形式。 +* 类型为 (U)Int* 的值或其字符串表示。 * 类型为 Float* 的值。 不支持的参数: * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt32('0xc0fe');`。 +* 二进制值和十六进制值的字符串表示,例如:`SELECT toUInt32('0xc0fe');`。 :::note -如果输入值无法在 [`UInt32`](../data-types/int-uint.md) 的取值范围内表示,结果会发生上溢或下溢。 +如果输入值无法在 [`UInt32`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 这不被视为错误。 例如:`SELECT toUInt32(4294967296) == 0;` ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)方式,即会截断数字的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即截断数值的小数部分。 ::: 另请参阅: @@ -7869,11 +7901,11 @@ toUInt32(expr) **返回值** -返回一个 32 位无符号整数。[`UInt32`](/sql-reference/data-types/int-uint) +返回一个 32 位无符号整数值。[`UInt32`](/sql-reference/data-types/int-uint) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -7894,9 +7926,9 @@ toUInt32('32'): 32 ## toUInt32OrDefault \{#toUInt32OrDefault\} -引入于:v21.11 +引入版本:v21.11 -类似于 [`toUInt32`](#toUInt32),此函数将输入值转换为类型为 [UInt32](../data-types/int-uint.md) 的值,但在发生错误时返回默认值。 +与 [`toUInt32`](#toUInt32) 类似,该函数将输入值转换为类型为 [UInt32](../data-types/int-uint.md) 的值,但在发生错误时返回默认值。 如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -7912,7 +7944,7 @@ toUInt32OrDefault(expr[, default]) **返回值** -如果解析成功,则返回类型为 UInt32 的值;否则在传入默认值时返回该默认值,未传入时返回 0。[`UInt32`](/sql-reference/data-types/int-uint) +如果解析成功,则返回 UInt32 类型的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 0。[`UInt32`](/sql-reference/data-types/int-uint) **示例** @@ -7939,21 +7971,21 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) ## toUInt32OrNull \{#toUInt32OrNull\} -引入于:v1.1 +引入版本:v1.1 与 [`toUInt32`](#toUInt32) 类似,此函数将输入值转换为 [`UInt32`](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 支持的参数: -* (U)Int8/16/32/128/256 的字符串表示。 +* (U)Int8/16/32/128/256 的字符串表示形式。 不支持的参数(返回 `NULL`): -* Float* 类型值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt32OrNull('0xc0fe');`。 +* Float* 值的字符串表示形式,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示形式,例如:`SELECT toUInt32OrNull('0xc0fe');`。 :::note -如果输入值无法在 [`UInt32`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 [`UInt32`](../data-types/int-uint.md) 的取值范围内表示,则结果会产生上溢或下溢。 这不被视为错误。 ::: @@ -7971,7 +8003,7 @@ toUInt32OrNull(x) **参数** -* `x` — 数字的 String 类型表示形式。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -8000,7 +8032,7 @@ toUInt32OrNull('abc'): \N 引入于:v1.1 -与 [`toUInt32`](#toUInt32) 类似,此函数将输入值转换为 [`UInt32`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toUInt32`](#toUInt32) 类似,此函数将输入值转换为 [`UInt32`](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `0`。 支持的参数: @@ -8009,11 +8041,11 @@ toUInt32OrNull('abc'): \N 不支持的参数(返回 `0`): * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt32OrZero('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt32OrZero('0xc0fe');`。 :::note -如果输入值无法在 [`UInt32`](../data-types/int-uint.md) 的范围内表示,则结果将发生溢出或下溢。 -这不被视为错误。 +如果输入值不能在 [`UInt32`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +这不视为错误。 ::: 另请参阅: @@ -8030,15 +8062,15 @@ toUInt32OrZero(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的 String 类型字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -返回 `UInt32` 类型的值,若转换失败则返回 `0`。[`UInt32`](/sql-reference/data-types/int-uint) +返回 `UInt32` 类型的值,如果转换失败则返回 `0`。[`UInt32`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -8060,17 +8092,17 @@ toUInt32OrZero('abc'): 0 引入于:v1.1 将输入值转换为 [`UInt64`](../data-types/int-uint.md) 类型的值。 -在出错时抛出异常。 +在发生错误时抛出异常。 -支持的参数: +支持的参数类型: -* 类型为 (U)Int* 的值或其字符串表示。 +* 类型为 (U)Int* 的值或这些类型的字符串表示。 * 类型为 Float* 的值。 -不支持的类型: +不支持的参数类型: * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt64('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt64('0xc0fe');`。 :::note 如果输入值无法在 [`UInt64`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 @@ -8079,7 +8111,7 @@ toUInt32OrZero('abc'): 0 ::: :::note -该函数采用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)方式,即截断数字的小数部分。 +该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即会截断数字的小数部分。 ::: 另请参阅: @@ -8096,15 +8128,15 @@ toUInt64(expr) **参数** -* `expr` — 结果为数字或数字字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字字符串形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** -返回 64 位无符号整数值。[`UInt64`](/sql-reference/data-types/int-uint) +返回一个 64 位无符号整数值。[`UInt64`](/sql-reference/data-types/int-uint) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -8125,10 +8157,10 @@ toUInt64('64'): 64 ## toUInt64OrDefault \{#toUInt64OrDefault\} -引入于:v21.11 +自 v21.11 引入 -与 [`toUInt64`](#toUInt64) 类似,此函数将输入值转换为 [UInt64](../data-types/int-uint.md) 类型的值,但在发生错误时返回默认值。 -如果未传入 `default` 值,则在发生错误时返回 `0`。 +与 [`toUInt64`](#toUInt64) 类似,此函数将输入值转换为 [UInt64](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 +如果未传入 `default` 值,则在出错时返回 `0`。 **语法** @@ -8138,12 +8170,12 @@ toUInt64OrDefault(expr[, default]) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时返回的默认值。[`UInt64`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,返回 `UInt64` 类型的值;否则,如果传入了默认值则返回该默认值,未传入则返回 0。[`UInt64`](/sql-reference/data-types/int-uint) +如果转换成功,返回 `UInt64` 类型的值;否则,如果传入了默认值则返回该默认值,否则返回 0。[`UInt64`](/sql-reference/data-types/int-uint) **示例** @@ -8184,8 +8216,8 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) * 二进制和十六进制值的字符串表示形式,例如:`SELECT toUInt64OrNull('0xc0fe');`。 :::note -如果输入值无法在 [`UInt64`](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 -这不视为错误。 +如果输入值无法在 [`UInt64`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生溢出或下溢。 +这不被视为错误。 ::: 另请参阅: @@ -8206,11 +8238,11 @@ toUInt64OrNull(x) **返回值** -返回 `UInt64` 类型的值,若转换失败则返回 `NULL`。[`UInt64`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) +返回 UInt64 类型的值,如果转换失败则返回 `NULL`。[`UInt64`](/sql-reference/data-types/int-uint) 或 [`NULL`](/sql-reference/syntax#null) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -8231,20 +8263,20 @@ toUInt64OrNull('abc'): \N 引入版本:v1.1 -类似于 [`toUInt64`](#toUInt64),此函数将输入值转换为 [`UInt64`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toUInt64`](#toUInt64) 类似,该函数将输入值转换为 [`UInt64`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 支持的参数: -* (U)Int* 整数类型的字符串表示。 +* (U)Int* 类型的字符串表示。 不支持的参数(返回 `0`): -* Float* 浮点类型值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt64OrZero('0xc0fe');`。 +* Float* 类型值的字符串表示,包括 `NaN` 和 `Inf`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt64OrZero('0xc0fe');`。 :::note 如果输入值无法在 [`UInt64`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +这不会被视为错误。 ::: 另请参阅: @@ -8261,7 +8293,7 @@ toUInt64OrZero(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -8301,16 +8333,16 @@ toUInt64OrZero('abc'): 0 不支持的参数: * Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 -* 二进制和十六进制值的字符串表示,例如 `SELECT toUInt8('0xc0fe');`。 +* 二进制和十六进制值的字符串表示,例如:`SELECT toUInt8('0xc0fe');`。 :::note -如果输入值无法在 [UInt8](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +如果输入值无法在 [UInt8](../data-types/int-uint.md) 的范围内表示,结果会发生上溢或下溢。 这不视为错误。 例如:`SELECT toUInt8(256) == 0;`。 ::: :::note -该函数使用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero),即会截断数值的小数部分。 +该函数采用[向零舍入](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)方式,即截断数字的小数部分。 ::: 另请参阅: @@ -8327,7 +8359,7 @@ toUInt8(expr) **参数** -* `expr` — 返回数字或其字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) +* `expr` — 返回数字或数字的字符串表示形式的表达式。[`Expression`](/sql-reference/data-types/special-data-types/expression) **返回值** @@ -8356,10 +8388,10 @@ toUInt8('8'): 8 ## toUInt8OrDefault \{#toUInt8OrDefault\} -引入自:v21.11 +引入于:v21.11 -与 [`toUInt8`](#toUInt8) 类似,此函数将输入值转换为 [UInt8](../data-types/int-uint.md) 类型的值,但在出错时返回默认值。 -如果未传入 `default` 值,则在出错时返回 `0`。 +与 [`toUInt8`](#toUInt8) 类似,此函数将输入值转换为类型为 [UInt8](../data-types/int-uint.md) 的值,但在发生错误时返回默认值。 +如果未传入 `default` 值,则在发生错误时返回 `0`。 **语法** @@ -8369,12 +8401,12 @@ toUInt8OrDefault(expr[, default]) **参数** -* `expr` — 求值为数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) +* `expr` — 返回数字或数字字符串表示形式的表达式。[`String`](/sql-reference/data-types/string) 或 [`(U)Int*`](/sql-reference/data-types/int-uint) 或 [`Float*`](/sql-reference/data-types/float) * `default` — 可选。解析失败时要返回的默认值。[`UInt8`](/sql-reference/data-types/int-uint) **返回值** -如果转换成功,返回类型为 `UInt8` 的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) +如果转换成功,返回类型为 UInt8 的值;否则,如果传入了默认值则返回该默认值,如果未传入则返回 0。[`UInt8`](/sql-reference/data-types/int-uint) **示例** @@ -8388,7 +8420,7 @@ SELECT toUInt8OrDefault('8', CAST('0', 'UInt8')) 8 ``` -**转换失败时** +**转换失败** ```sql title=Query SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) @@ -8401,7 +8433,7 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) ## toUInt8OrNull \{#toUInt8OrNull\} -引入版本:v1.1 +自 v1.1 起引入 与 [`toUInt8`](#toUInt8) 类似,此函数将输入值转换为 [`UInt8`](../data-types/int-uint.md) 类型的值,但在出错时返回 `NULL`。 @@ -8415,8 +8447,8 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) * 二进制和十六进制值的字符串表示,例如:`SELECT toUInt8OrNull('0xc0fe');`。 :::note -如果输入值不能在 [`UInt8`](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 -这不视为错误。 +如果输入值无法在 [`UInt8`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +这不被视为错误。 ::: 另请参阅: @@ -8433,7 +8465,7 @@ toUInt8OrNull(x) **参数** -* `x` — 数字的 String 类型表示。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -8441,7 +8473,7 @@ toUInt8OrNull(x) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -8460,9 +8492,9 @@ toUInt8OrNull('abc'): \N ## toUInt8OrZero \{#toUInt8OrZero\} -自 v1.1 起提供 +引入版本:v1.1 -与 [`toUInt8`](#toUInt8) 类似,此函数会将输入值转换为 [`UInt8`](../data-types/int-uint.md) 类型的值,但在出错时返回 `0`。 +与 [`toUInt8`](#toUInt8) 类似,此函数将输入值转换为 [`UInt8`](../data-types/int-uint.md) 类型的值,但在发生错误时返回 `0`。 支持的参数: @@ -8470,12 +8502,12 @@ toUInt8OrNull('abc'): \N 不支持的参数(返回 `0`): -* 常规 Float* 类型值的字符串表示,包括 `NaN` 和 `Inf`。 +* 普通 Float* 值的字符串表示,包括 `NaN` 和 `Inf`。 * 二进制和十六进制值的字符串表示,例如 `SELECT toUInt8OrZero('0xc0fe');`。 :::note -如果输入值无法在 [`UInt8`](../data-types/int-uint.md) 的范围内表示,则结果会发生上溢或下溢。 -这不被视为错误。 +如果输入值无法在 [`UInt8`](../data-types/int-uint.md) 的取值范围内表示,则结果会发生上溢或下溢。 +这不会被视为错误。 ::: 另请参阅: @@ -8492,7 +8524,7 @@ toUInt8OrZero(x) **参数** -* `x` — 表示数字的字符串。[`String`](/sql-reference/data-types/string) +* `x` — 数字的字符串形式。[`String`](/sql-reference/data-types/string) **返回值** @@ -8500,7 +8532,7 @@ toUInt8OrZero(x) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -8519,9 +8551,9 @@ toUInt8OrZero('abc'): 0 ## toUUID \{#toUUID\} -自 v1.1 引入 +首次引入版本:v1.1 -将 String 类型的值转换为 UUID 类型的值。 +将 String 值转换为 UUID 值。 **语法** @@ -8531,7 +8563,7 @@ toUUID(string) **参数** -* `string` — UUID 的字符串表示。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) +* `string` — UUID 的字符串形式。[`String`](/sql-reference/data-types/string) 或 [`FixedString`](/sql-reference/data-types/fixedstring) **返回值** @@ -8539,7 +8571,7 @@ toUUID(string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid @@ -8554,17 +8586,17 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid ## toUUIDOrZero \{#toUUIDOrZero\} -自 v20.12 引入 +引入自:v20.12 -将输入值转换为 [UUID](../data-types/uuid.md) 类型的值,但在发生错误时返回全零 UUID。 -类似于 [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID),但在转换出错时返回全零 UUID(`00000000-0000-0000-0000-000000000000`),而不是抛出异常。 +将输入值转换为 [UUID](../data-types/uuid.md) 类型的值;如果出错则返回零 UUID。 +类似于 [`toUUID`](/sql-reference/functions/type-conversion-functions#toUUID),但在转换出错时不会抛出异常,而是返回零 UUID(`00000000-0000-0000-0000-000000000000`)。 支持的参数: * 标准格式的 UUID 字符串表示(8-4-4-4-12 个十六进制数字)。 * 不带连字符的 UUID 字符串表示(32 个十六进制数字)。 -不支持的参数(返回全零 UUID): +不支持的参数(返回零 UUID): * 无效的字符串格式。 * 非字符串类型。 @@ -8577,11 +8609,11 @@ toUUIDOrZero(x) **参数** -* `x` — UUID 的字符串形式。[`String`](/sql-reference/data-types/string) +* `x` — UUID 的字符串表示形式。[`String`](/sql-reference/data-types/string) **返回值** -如果成功,则返回 UUID 值,否则返回全零 UUID(`00000000-0000-0000-0000-000000000000`)。[`UUID`](/sql-reference/data-types/uuid) +成功时返回一个 UUID 值,否则返回零 UUID(`00000000-0000-0000-0000-000000000000`)。[`UUID`](/sql-reference/data-types/uuid) **示例** @@ -8602,9 +8634,9 @@ SELECT ## toUnixTimestamp64Micro \{#toUnixTimestamp64Micro\} -自 v20.5 引入 +引入自:v20.5 -将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定微秒精度的 [`Int64`](/sql-reference/data-types/int-uint) 值。 +将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定微秒精度的 [`Int64`](/sql-reference/data-types/int-uint) 类型值。 输入值会根据其自身精度被相应地放大或缩小。 :::note @@ -8619,7 +8651,7 @@ toUnixTimestamp64Micro(value) **参数** -* `value` — 任意精度的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 具有任意精度的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) **返回值** @@ -8643,13 +8675,13 @@ SELECT toUnixTimestamp64Micro(dt64); ## toUnixTimestamp64Milli \{#toUnixTimestamp64Milli\} -引入版本:v20.5 +自 v20.5 起引入 将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定毫秒精度的 [`Int64`](/sql-reference/data-types/int-uint) 值。 -输入值会根据其精度适当放大或缩小。 +根据输入值的精度进行相应的放大或缩小。 :::note -输出值是相对于 UTC 的,而不是相对于输入值的时区。 +输出值是相对于 UTC 的,而不是相对于输入值所在的时区。 ::: **语法** @@ -8660,7 +8692,7 @@ toUnixTimestamp64Milli(value) **参数** -* `value` — 具有任意精度的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) +* `value` — 任意精度的 DateTime64 值。[`DateTime64`](/sql-reference/data-types/datetime64) **返回值** @@ -8684,10 +8716,10 @@ SELECT toUnixTimestamp64Milli(dt64); ## toUnixTimestamp64Nano \{#toUnixTimestamp64Nano\} -引入版本:v20.5 +引入于:v20.5 将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定纳秒精度的 [`Int64`](/sql-reference/functions/type-conversion-functions#toInt64) 值。 -输入值会根据其精度被相应地放大或缩小。 +输入值会根据其精度进行相应的放大或缩小。 :::note 输出值是相对于 UTC 的,而不是相对于输入值所在的时区。 @@ -8709,7 +8741,7 @@ toUnixTimestamp64Nano(value) **示例** -**用法示例** +**使用示例** ```sql title=Query WITH toDateTime64('2025-02-13 23:31:31.011123456', 9, 'UTC') AS dt64 @@ -8725,13 +8757,13 @@ SELECT toUnixTimestamp64Nano(dt64); ## toUnixTimestamp64Second \{#toUnixTimestamp64Second\} -引入于:v24.12 +自 v24.12 起提供 -将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定秒级精度的 [`Int64`](/sql-reference/data-types/int-uint) 值。 -输入值会根据其自身精度按比例进行相应的放大或缩小。 +将 [`DateTime64`](/sql-reference/data-types/datetime64) 转换为具有固定秒精度的 [`Int64`](/sql-reference/data-types/int-uint) 值。 +输入值会根据其精度按比例进行放大或缩小。 :::note -输出值是相对于 UTC 的,而不是相对于输入值的时区。 +输出值是相对于 UTC 的,而不是相对于输入值所在的时区。 ::: **语法** diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md index 6c91035d9f4..6988ad757ad 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/functions/url-functions.md @@ -1,22 +1,22 @@ --- -description: 'URL 函数文档' -sidebar_label: 'URL' +description: '用于处理 URL 的函数的文档' +sidebar_label: 'URL 函数' slug: /sql-reference/functions/url-functions -title: 'URL 相关函数' +title: '处理 URL 的函数' doc_type: 'reference' --- -# 用于操作 URL 的函数 \{#functions-for-working-with-urls\} +# 用于处理 URL 的函数 \{#functions-for-working-with-urls\} -## 概览 \{#overview\} +## 概述 \{#overview\} :::note -本节中提到的函数为获得最高性能进行了优化,大多数情况下并不遵循 RFC-3986 标准。 -实现 RFC-3986 的函数在函数名后附加 `RFC`,且通常会较慢。 +本节中提到的函数为了获得尽可能高的性能而进行了优化,因此在大多数情况下不遵循 RFC 3986 标准。 +实现 RFC 3986 的函数会在函数名后附加 `RFC`,通常性能会较低。 ::: -在处理既不包含用户信息字符串也不包含 `@` 符号的公开注册域名时,一般可以使用非 `RFC` 变体函数。 -下表详细说明了 URL 中的各个符号在 `RFC` 与非 `RFC` 变体中可以(`✔`)或不可以(`✗`)被解析的情况: +在处理不包含用户信息字符串或 `@` 符号的公共注册域名时,一般可以使用非 `RFC` 版本的函数。 +下表详细说明了 URL 中的哪些符号可以(`✔`)或不可以(`✗`)被对应的 `RFC` 和非 `RFC` 版本解析: | Symbol | non-`RFC` | `RFC` | | | ----------- | --------- | ----- | - | @@ -28,6 +28,7 @@ doc_type: 'reference' | { | ✗ | ✗ | | | } | ✗ | ✗ | | | | | ✗ | ✗ | +| | | ✗ | ✗ | | | \ | ✗ | ✗ | | | ^ | ✗ | ✗ | | | ~ | ✗ | ✔* | | @@ -37,28 +38,92 @@ doc_type: 'reference' | = | ✗ | ✔* | | | & | ✗ | ✔* | | -标记为 `*` 的符号在 RFC 3986 中属于子分隔符(sub-delimiters),在 `@` 符号后的用户信息中是允许使用的。 +带有 `*` 标记的符号是 RFC 3986 中的子分隔符,并且在 `@` 符号之后的用户信息中是允许的。 URL 函数分为两类: -* 从 URL 中提取部分内容的函数。如果 URL 中不存在相关部分,则返回空字符串。 -* 从 URL 中移除部分内容的函数。如果 URL 中没有类似内容,则 URL 保持不变。 +* 提取 URL 某一部分的函数。若 URL 中不存在相关部分,则返回空字符串。 +* 移除 URL 某一部分的函数。若 URL 中不存在类似部分,则 URL 保持不变。 :::note -下面的函数是根据 `system.functions` 系统表生成的。 +下面列出的函数是从 `system.functions` 系统表中生成的。 ::: {/* - 下方标签内部的内容会在文档框架构建期间替换为 - 由 system.functions 生成的文档。请不要修改或移除这些标签。 - 详见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md + 下列标签内的内容会在文档框架构建时被替换为 + 从 system.functions 生成的文档。请不要修改或删除这些标签。 + 参见:https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogenerated-documentation-from-source.md */ } {/*AUTOGENERATED_START*/ } +## URLHierarchy \{#URLHierarchy\} + +引入于:v1.1 + +返回一个数组,包含在路径和查询字符串中以符号 `/`、`?` 和 `#` 为结尾截断得到的 URL 片段。连续的分隔符字符被视为一个。结果的第一个元素为仅包含协议和主机名的 URL,此后各元素为路径逐步延长所形成的层级结构。 + +**语法** + +```sql +URLHierarchy(url) +``` + +**参数** + +* `url` — 要处理的 URL。[`String`](/sql-reference/data-types/string) + +**返回值** + +返回一个数组,包含依次递增长度、构成层级结构的 URL。[`Array(String)`](/sql-reference/data-types/array) + +**示例** + +**基本用法** + +```sql title=Query +SELECT URLHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['https://example.com/','https://example.com/a/','https://example.com/a/b','https://example.com/a/b?c=1'] +``` + +## URLPathHierarchy \{#URLPathHierarchy\} + +引入版本:v1.1 + +返回一个数组,其中包含 URL 的路径部分,在遇到符号 `/`、`?` 和 `#` 时进行截断。与 `URLHierarchy` 不同,结果不包含协议和主机——它从路径开始。连续的分隔符字符会被视作一个分隔符。 + +**语法** + +```sql +URLPathHierarchy(url) +``` + +**参数** + +* `url` — 要处理的 URL。[`String`](/sql-reference/data-types/string) + +**返回值** + +返回一个由逐渐变长的 URL 路径段组成的数组,构成一个层级结构。[`Array(String)`](/sql-reference/data-types/array) + +**示例** + +**基本用法** + +```sql title=Query +SELECT URLPathHierarchy('https://example.com/a/b?c=1') +``` + +```response title=Response +['/a/','/a/b','/a/b?c=1'] +``` + ## cutFragment \{#cutFragment\} -自 v1.1 版本引入 +引入版本:v1.1 从 URL 中移除片段标识符(包括 # 号)。 @@ -74,11 +139,11 @@ cutFragment(url) **返回值** -返回移除片段标识符后的 URL。[`String`](/sql-reference/data-types/string) +返回去除片段标识符的 URL。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT cutFragment('http://example.com/path?query=value#fragment123'); @@ -92,9 +157,9 @@ SELECT cutFragment('http://example.com/path?query=value#fragment123'); ## cutQueryString \{#cutQueryString\} -引入版本:v1.1 +自 v1.1 版本引入 -从 URL 中移除查询字符串(包括问号)。 +从 URL 中移除查询字符串(query string),包括问号本身。 **语法** @@ -108,7 +173,7 @@ cutQueryString(url) **返回值** -返回去除查询字符串后的 URL。[`String`](/sql-reference/data-types/string) +返回移除了查询字符串的 URL。[`String`](/sql-reference/data-types/string) **示例** @@ -128,7 +193,7 @@ SELECT cutQueryString('http://example.com/path?query=value¶m=123#fragment'); 自 v1.1 引入 -从 URL 中移除查询字符串和片段标识符,连同问号(?)和井号(#)一并删除。 +从 URL 中移除查询字符串和片段标识符,包括问号(?)和井号(#)。 **语法** @@ -142,11 +207,11 @@ cutQueryStringAndFragment(url) **返回值** -返回去掉查询字符串和片段标识符的 URL。[`String`](/sql-reference/data-types/string) +返回去除查询字符串和片段标识符后的 URL。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123#fragment'); @@ -160,9 +225,9 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# ## cutToFirstSignificantSubdomain \{#cutToFirstSignificantSubdomain\} -自 v1.1 版本引入 +引入版本:v1.1 -返回域名中,自顶级子域名起直到[第一个重要子域名](/sql-reference/functions/url-functions#firstSignificantSubdomain)的这部分。 +返回域名中,包含从顶级子域到[第一个显著子域](/sql-reference/functions/url-functions#firstSignificantSubdomain)这一部分的内容。 **语法** @@ -176,11 +241,11 @@ cutToFirstSignificantSubdomain(url) **返回值** -返回域名中从最高层子域到第一个重要子域的那一部分(如果可能),否则返回空字符串。[`String`](/sql-reference/data-types/string) +返回域名中,从顶级后缀起向左直至第一个重要子域名(含)为止的那一部分;如果无法确定,则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT @@ -197,9 +262,9 @@ SELECT ## cutToFirstSignificantSubdomainCustom \{#cutToFirstSignificantSubdomainCustom\} -引入于:v21.1 +引入版本:v21.1 -返回域名中从顶级域及其子域开始直到第一个重要子域的部分。接受自定义的 [TLD 列表](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 名称。如果你需要一份最新的 TLD 列表或有自定义列表,此函数会很有用。 +返回域名中从顶级域开始一直到第一个重要子域(包含在内)的部分。接受自定义的 [TLD 列表](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains) 名称。如果需要最新的 TLD 列表或使用自定义列表时,该函数会很有用。 **配置示例** @@ -208,7 +273,7 @@ SELECT public_suffix_list.dat - + ``` @@ -221,15 +286,15 @@ cutToFirstSignificantSubdomainCustom(url, tld_list_name) **参数** * `url` — 要处理的 URL 或域名字符串。[`String`](/sql-reference/data-types/string) -* `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表的名称。[`const String`](/sql-reference/data-types/string) +* `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。[`const String`](/sql-reference/data-types/string) **返回值** -返回从顶级子域名开始直至第一个重要子域名的这部分域名字符串。[`String`](/sql-reference/data-types/string) +返回域名的一部分,该部分包含自顶级域名起直到第一个重要子域的所有子域。[`String`](/sql-reference/data-types/string) **示例** -**在非标准域名上使用自定义 TLD 列表** +**为非标准域名使用自定义 TLD 列表** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustom('bar.foo.there-is-no-such-domain', 'public_suffix_list') @@ -243,9 +308,9 @@ foo.there-is-no-such-domain 引入版本:v22.10 -返回域名中包含顶级子域名直到第一个关键子域名的部分。 -接受自定义的 [TLD 列表](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)名称作为参数。 -如果你需要更新的 TLD 列表或有自定义列表时,此函数会很有用。 +返回域名中从顶级子域开始直至第一个重要子域的那一部分。 +接受自定义的 [TLD 列表](https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)名称。 +当需要一份最新的 TLD 列表或使用自定义列表时,此函数会很有用。 类似于 [cutToFirstSignificantSubdomainCustom](#cutToFirstSignificantSubdomainCustom),但符合 RFC 3986。 **配置示例** @@ -255,7 +320,7 @@ foo.there-is-no-such-domain public_suffix_list.dat - + ``` @@ -267,15 +332,15 @@ cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name) **参数** -* `url` — 按照 RFC 3986 规范处理的 URL 或域名字符串。- `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 +* `url` — 需要根据 RFC 3986 进行处理的 URL 或域名字符串。- `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 **返回值** -返回域名中从顶级子域开始,包含直到第一个重要子域在内的部分。[`String`](/sql-reference/data-types/string) +返回域名中从顶级子域到第一个重要子域(含)这一部分。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); @@ -291,11 +356,11 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); 引入版本:v21.1 -返回域名中包含顶级子域名、直至第一个重要子域名的部分,并且不会去掉 'www'。支持传入自定义 TLD 列表名称。如果你需要最新的 TLD 列表,或维护了自己的自定义列表,可以使用该参数。 +返回域名中从顶级子域开始,一直到第一个重要子域之间的部分,但不会去除前缀 'www'。接受自定义的 TLD 列表名称。如果需要使用最新的 TLD 列表或自定义列表,可以使用此函数。 **配置示例** -```yaml +````yaml @@ -304,24 +369,23 @@ SELECT cutToFirstSignificantSubdomainCustomRFC('www.foo', 'public_suffix_list'); -**语法** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name) -``` +```` **参数** -* `url` — 要处理的 URL 或域名字符串。 -* `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 +* `url` — 要处理的 URL 或域名字符串。- `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 **返回值** -域名的一部分,包含顶层子域名,直到第一个有意义的子域名为止,并且不会去除 `www` 前缀。[`String`](/sql-reference/data-types/string) +包含从最顶层子域名到第一个有意义子域名的域名部分,且不会去除 'www'。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_list'); @@ -333,44 +397,43 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWW('www.foo', 'public_suffix_lis └──────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainCustomWithWWWRFC {#cutToFirstSignificantSubdomainCustomWithWWWRFC} +## cutToFirstSignificantSubdomainCustomWithWWWRFC \{#cutToFirstSignificantSubdomainRFC\} -引入版本:v22.10 +引入于:v22.10 -返回域名中从包含顶级子域名开始,到第一个关键子域名为止的那一部分,但不会去掉 `www`。 -支持自定义 TLD 列表名称。 -在需要最新 TLD 列表或使用自定义列表时,这会很有用。 +返回域名中包含顶级域及其子域、直到第一个有意义子域的部分,但不会去除 `www`。 +接受自定义 TLD 列表的名称。 +当需要更新的 TLD 列表或使用自定义列表时,这会非常有用。 类似于 [cutToFirstSignificantSubdomainCustomWithWWW](#cutToFirstSignificantSubdomainCustomWithWWW),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 **配置示例** -```xml +````xml public_suffix_list.dat - + -**语法** +**Syntax** ```sql cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name) -``` +```` **参数** -* `url` — 按 RFC 3986 进行解析的 URL 或域名字符串。 -* `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 +* `url` — 待根据 RFC 3986 解析的 URL 或域名字符串。- `tld_list_name` — 在 ClickHouse 中配置的自定义 TLD 列表名称。 **返回值** -返回域名中包含顶层子域在内、直到第一个重要子域为止的部分,并且不会移除 `www`。[`String`](/sql-reference/data-types/string) +返回包含顶级子域名直到第一个重要子域名的域名部分,并且保留 `www`。[`String`](/sql-reference/data-types/string) **示例** -**使用自定义 TLD 列表并保留 www 的 RFC 3986 解析** +**使用自定义 TLD 列表的 RFC 3986 解析(保留 www)** ```sql title=Query SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.example.custom', 'public_suffix_list') @@ -380,11 +443,11 @@ SELECT cutToFirstSignificantSubdomainCustomWithWWWRFC('https://www.subdomain.exa www.example.custom ``` -## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainRFC\} +## cutToFirstSignificantSubdomainRFC \{#cutToFirstSignificantSubdomainWithWWW\} -引入版本:v22.10 +引入于:v22.10 -返回域名中从顶级子域起、包含至[“首个重要子域”](/sql-reference/functions/url-functions#firstSignificantSubdomain)的部分。类似于 [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 +返回域名中自顶级子域起,直至[“first significant subdomain”](/sql-reference/functions/url-functions#firstSignificantSubdomain)(第一个重要子域)之间的部分。与 [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) 类似,但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 **语法** @@ -394,15 +457,15 @@ cutToFirstSignificantSubdomainRFC(url) **参数** -* `url` — 按照 RFC 3986 规范处理的 URL 或域名字符串。[`String`](/sql-reference/data-types/string) +* `url` — 按照 RFC 3986 进行解析的 URL 或域名字符串。[`String`](/sql-reference/data-types/string) **返回值** -返回包含顶级子域名直至第一个重要子域名的那一部分域名;如果无法提取,则返回空字符串。[`String`](/sql-reference/data-types/string) +返回域名中从顶级子域到第一个重要子域的这部分(如果可能),否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -416,13 +479,13 @@ SELECT └─────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWW\} +## cutToFirstSignificantSubdomainWithWWW \{#cutToFirstSignificantSubdomainWithWWWRFC\} -引入版本:v20.12 +引入于:v20.12 -返回域名中从顶级子域开始直到“第一个重要子域”的那一部分,且不会去除 '[www](http://www).'。 +返回域名中从顶级子域到“第一个有意义子域名”的部分,并且不去除 'www.'。 -与 [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) 类似,但如果存在,则保留 '[www](http://www).' 前缀。 +类似于 [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain),但如果存在则保留 'www.' 前缀。 **语法** @@ -436,7 +499,7 @@ cutToFirstSignificantSubdomainWithWWW(url) **返回值** -返回域名中从顶级子域到第一个重要子域(包含 www)的部分(如果可能),否则返回空字符串。[`String`](/sql-reference/data-types/string) +返回域名中从顶级子域开始直到第一个重要子域(含 www)这一部分;若无法确定,则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** @@ -455,11 +518,11 @@ SELECT └──────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────┴─────────────────────────────────────────────┘ ``` -## cutToFirstSignificantSubdomainWithWWWRFC \{#cutToFirstSignificantSubdomainWithWWWRFC\} +## cutToFirstSignificantSubdomainWithWWWRFC \{#cutURLParameter\} 引入版本:v22.10 -返回域名中从顶级子域到“第一个重要子域”为止的部分,且不去除 'www'。类似于 [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 规范。 +返回域名中,从顶级子域开始直到“第一个重要子域”的那一部分,但不会去除 'www'。类似于 [`cutToFirstSignificantSubdomainWithWWW`](#cutToFirstSignificantSubdomainWithWWW),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 **语法** @@ -469,15 +532,15 @@ cutToFirstSignificantSubdomainWithWWWRFC(url) **参数** -* `url` — 按照 RFC 3986 规范处理的 URL 或域名字符串。 +* `url` — 需要根据 RFC 3986 进行处理的 URL 或域名字符串。 **返回值** -返回域名中包含自顶级域起直到第一个重要子域(如有则包含 'www')的部分,否则返回空字符串 [`String`](/sql-reference/data-types/string)。 +返回域名中从顶级子域名开始(在可能的情况下包含 'www'),一直到第一个重要子域名为止的部分;否则返回空字符串 [`String`](/sql-reference/data-types/string)。 **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -491,12 +554,12 @@ SELECT └───────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## cutURLParameter \{#cutURLParameter\} +## cutURLParameter \{#cutWWW\} -引入版本:v1.1 +自 v1.1 起引入 从 URL 中移除名为 `name` 的参数(如果存在)。 -此函数不会对参数名中的字符进行编码或解码,例如,`Client ID` 和 `Client%20ID` 会被视为不同的参数名。 +此函数不会对参数名中的字符进行编码或解码,例如 `Client ID` 和 `Client%20ID` 会被视为不同的参数名。 **语法** @@ -507,15 +570,15 @@ cutURLParameter(url, name) **参数** * `url` — URL。[`String`](/sql-reference/data-types/string) -* `name` — URL 参数的名称。[`String`](/sql-reference/data-types/string) 或 [`Array(String)`](/sql-reference/data-types/array) +* `name` — URL 参数名称。[`String`](/sql-reference/data-types/string) 或 [`Array(String)`](/sql-reference/data-types/array) **返回值** -删除了名为 `name` 的 URL 参数后的 URL。[`String`](/sql-reference/data-types/string) +移除了名为 `name` 的 URL 参数的 URL。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -529,9 +592,9 @@ SELECT └──────────────────────────────┴──────────────────────────┘ ``` -## cutWWW \{#cutWWW\} +## cutWWW \{#decodeURLComponent\} -在 v1.1 中引入 +引入于:v1.1 从 URL 的域名中移除开头的 `www.`(如果存在)。 @@ -547,11 +610,11 @@ cutWWW(url) **返回值** -返回将域名开头的 `www.` 移除后的 URL。[`String`](/sql-reference/data-types/string) +返回去掉域名开头 `www.` 的 URL。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT cutWWW('http://www.example.com/path?query=value#fragment'); @@ -563,9 +626,9 @@ SELECT cutWWW('http://www.example.com/path?query=value#fragment'); └────────────────────────────────────────────────────────────┘ ``` -## decodeURLComponent \{#decodeURLComponent\} +## decodeURLComponent \{#decodeURLFormComponent\} -自 v1.1 起引入 +自 v1.1 引入 接受一个经过 URL 编码的字符串作为输入,并将其解码为原始的可读形式。 @@ -597,11 +660,11 @@ SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS Decod └────────────────────────────────────────┘ ``` -## decodeURLFormComponent \{#decodeURLFormComponent\} +## decodeURLFormComponent \{#domain\} -自 v1.1 起引入 +引入于:v1.1 -使用表单编码规则([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))对 URL 编码的字符串进行解码,其中 `+` 号会被转换为空格,百分号编码的字符会被解码。 +使用表单编码规则([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))对 URL 编码的字符串进行解码,其中将 `+` 号还原为空格,并解码百分号编码的字符。 **语法** @@ -631,13 +694,13 @@ SELECT decodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT%201+2%2B3') A └───────────────────────────────────────────┘ ``` -## domain \{#domain\} +## domain \{#domainRFC\} 自 v1.1 起引入 从 URL 中提取主机名。 -URL 可以带协议或不带协议。 +URL 可以在包含或不包含协议的情况下指定。 **语法** @@ -651,11 +714,11 @@ domain(url) **返回值** -如果输入字符串可以解析为 URL,则返回主机名,否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串能够解析为 URL,则返回主机名,否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk'); @@ -667,12 +730,12 @@ SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────┘ ``` -## domainRFC \{#domainRFC\} +## domainRFC \{#domainWithoutWWW\} -自 v22.10 版本引入 +自 v22.10 起引入 从 URL 中提取主机名。 -类似于 [`domain`](#domain),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 规范。 +类似于 [`domain`](#domain),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 标准。 **语法** @@ -686,11 +749,11 @@ domainRFC(url) **返回值** -若输入字符串可以解析为 URL,则返回主机名;否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串可以解析为 URL,则返回主机名,否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT @@ -704,11 +767,11 @@ SELECT └───────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────┘ ``` -## domainWithoutWWW \{#domainWithoutWWW\} +## domainWithoutWWW \{#domainWithoutWWWRFC\} -引入于:v1.1 +引入版本:v1.1 -返回 URL 的域名,如果存在前缀 `www.`,则去除该前缀。 +返回 URL 的域名;如果存在前缀 `www.`,则将其去除。 **语法** @@ -722,7 +785,7 @@ domainWithoutWWW(url) **返回值** -如果输入字符串可以解析为 URL,则返回其域名(不带前缀 `www.`),否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串可以解析为 URL,则返回域名(不包含前缀 `www.`),否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** @@ -738,11 +801,11 @@ SELECT domainWithoutWWW('http://paul@www.example.com:80/'); └─────────────────────────────────────────────────────┘ ``` -## domainWithoutWWWRFC \{#domainWithoutWWWRFC\} +## domainWithoutWWWRFC \{#encodeURLComponent\} 自 v1.1 引入 -返回去掉前缀 `www.` 的域名(若存在)。类似于 [`domainWithoutWWW`](#domainWithoutWWW),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 +返回去掉前缀 `www.` 的域名(如果存在)。类似于 [`domainWithoutWWW`](#domainWithoutWWW),但遵循 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 **语法** @@ -756,7 +819,7 @@ domainWithoutWWWRFC(url) **返回值** -如果输入字符串可以解析为 URL,则返回域名(不包含前缀 `www.`),否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串可以解析为 URL,则返回域名(不带前缀 `www.`),否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** @@ -774,11 +837,11 @@ SELECT └─────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────┘ ``` -## encodeURLComponent \{#encodeURLComponent\} +## encodeURLComponent \{#encodeURLFormComponent\} -引入版本:v22.3 +自 v22.3 起提供 -接收一个常规字符串并将其转换为 URL 编码(百分号编码)格式,其中特殊字符会被替换为对应的百分号编码。 +接收一个普通字符串,并将其转换为 URL 编码(百分号编码)格式,其中特殊字符会被替换为相应的百分号编码序列。 **语法** @@ -808,11 +871,11 @@ SELECT encodeURLComponent('http://127.0.0.1:8123/?query=SELECT 1;') AS EncodedUR └──────────────────────────────────────────────────────────┘ ``` -## encodeURLFormComponent \{#encodeURLFormComponent\} +## encodeURLFormComponent \{#extractURLParameter\} -引入版本:v22.3 +自 v22.3 起引入 -使用表单编码规则([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))对字符串进行编码,其中空格会被转换为加号 (+),特殊字符会被百分号编码。 +使用表单编码规则([RFC-1866](https://www.rfc-editor.org/rfc/rfc1866.html))对字符串进行编码,其中空格会被转换为 + 号,特殊字符会被进行百分号编码。 **语法** @@ -830,25 +893,25 @@ encodeURLFormComponent(url) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT encodeURLFormComponent('http://127.0.0.1:8123/?query=SELECT 1 2+3') AS EncodedURL; ``` ```response title=Response -┌─编码后的 URL──────────────────────────────────────────────┐ +┌─EncodedURL────────────────────────────────────────────────┐ │ http%3A%2F%2F127.0.0.1%3A8123%2F%3Fquery%3DSELECT+1+2%2B3 │ └───────────────────────────────────────────────────────────┘ ``` -## extractURLParameter \{#extractURLParameter\} +## extractURLParameter \{#extractURLParameterNames\} -引入于:v1.1 +引入版本:v1.1 -返回 URL 中名为 `name` 的参数的值(如果存在),否则返回空字符串。\ -如果存在多个同名参数,则返回首次出现的值。\ -该函数假定 `url` 参数中的参数编码方式与传入 `name` 参数时使用的编码方式相同。 +返回 URL 中名为 `name` 的参数值(如果存在),否则返回空字符串。 +如果存在多个同名参数,则返回首次出现的值。 +该函数假定 `url` 参数中的参数采用与参数 `name` 相同的编码方式。 **语法** @@ -863,11 +926,11 @@ extractURLParameter(url, name) **返回值** -返回 URL 中指定名称参数的值。[`String`](/sql-reference/data-types/string) +返回指定名称的 URL 参数值。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'param1'); @@ -879,12 +942,12 @@ SELECT extractURLParameter('http://example.com/?param1=value1¶m2=value2', 'p └──────────────────────────┘ ``` -## extractURLParameterNames \{#extractURLParameterNames\} +## extractURLParameterNames \{#extractURLParameters\} -自 v1.1 起引入 +自 v1.1 版本引入 -返回一个字符串数组,其中的每个字符串是一个 URL 参数的名称。 -这些值不会被解码。 +返回一个字符串数组,其中的字符串对应 URL 参数的名称。 +返回值不会被解码。 **语法** @@ -914,12 +977,12 @@ SELECT extractURLParameterNames('http://example.com/?param1=value1¶m2=value2 └──────────────────────────┘ ``` -## extractURLParameters \{#extractURLParameters\} +## extractURLParameters \{#firstSignificantSubdomain\} -自 v1.1 起可用 +自 v1.1 引入 -返回一个字符串数组,每个元素为对应 URL 参数的 `name=value` 形式。 -参数值不会被解码。 +返回一个由 `name=value` 字符串组成的数组,对应 URL 参数。 +这些值不会被解码。 **语法** @@ -933,7 +996,7 @@ extractURLParameters(url) **返回值** -返回一个数组,其中每个元素都是与 URL 参数对应的 `name=value` 字符串。[`Array(String)`](/sql-reference/data-types/array) +返回一个字符串数组,元素为与 URL 参数对应的 `name=value` 字符串。[`Array(String)`](/sql-reference/data-types/array) **示例** @@ -949,18 +1012,18 @@ SELECT extractURLParameters('http://example.com/?param1=value1¶m2=value2'); └───────────────────────────────────┘ ``` -## firstSignificantSubdomain \{#firstSignificantSubdomain\} +## firstSignificantSubdomain \{#firstSignificantSubdomainCustom\} -引入版本:v +引入自:v1.1 返回“首个重要子域名”。 -如果二级域名是 'com'、'net'、'org' 或 'co',则首个重要子域名是对应的三级域名。 -否则,首个重要子域名就是二级域名。 +如果二级域名是 'com'、'net'、'org' 或 'co',则首个重要子域名就是该二级域名。 +否则,首个重要子域名就是三级域名。 -例如,firstSignificantSubdomain('[https://news.clickhouse.com/](https://news.clickhouse.com/)') = 'clickhouse',firstSignificantSubdomain('[https://news.clickhouse.com.tr/](https://news.clickhouse.com.tr/)') = 'clickhouse'。 +例如,firstSignificantSubdomain('https://news.clickhouse.com/') = 'clickhouse',firstSignificantSubdomain ('https://news.clickhouse.com.tr/') = 'clickhouse'。 -“不重要”的二级域名列表及其他实现细节在未来可能会发生变化。 +“无关紧要”的二级域名列表和其他实现细节未来可能会发生变化。 **语法** @@ -984,48 +1047,114 @@ SELECT firstSignificantSubdomain('https://news.clickhouse.com/') ```response title=Response ``` -## firstSignificantSubdomainRFC \{#firstSignificantSubdomainRFC\} +## firstSignificantSubdomainCustom \{#firstSignificantSubdomainCustomRFC\} + +引入版本:v21.1 + +使用自定义 TLD(顶级域名)列表,返回 URL 的第一个重要子域名。自定义 TLD 列表名称对应于一个配置,该配置定义哪些域名后缀应被视为顶级域名。这对于非标准的 TLD 层级结构非常有用。该函数使用简化的 URL 解析算法,并假定 URL 中的协议及其后的所有内容已被去掉。 + +**语法** + +```sql +firstSignificantSubdomainCustom(url, tld_list_name) +``` + +**参数** + +* `url` — 要从中提取子域名的 URL。[`String`](/sql-reference/data-types/string) +* `tld_list_name` — 配置中自定义 TLD 列表的名称。[`String`](/sql-reference/data-types/string) + +**返回值** + +返回第一个有效子域名。[`String`](/sql-reference/data-types/string) + +**示例** + +**基本用法** + +```sql title=Query +SELECT firstSignificantSubdomainCustom('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainCustomRFC \{#firstSignificantSubdomainRFC\} -自 v 版本引入。 +引入于 v22.10 -根据 RFC 1034 返回“第一个重要子域名”。 +与 `firstSignificantSubdomainCustom` 类似,但使用符合 RFC 3986 的 URL 解析方式,而非简化算法。 **语法** ```sql +firstSignificantSubdomainCustomRFC(url, tld_list_name) ``` **参数** -* 无 +* `url` — 要从中提取子域名的 URL。[`String`](/sql-reference/data-types/string) +* `tld_list_name` — 配置中自定义的 TLD 列表名称。[`String`](/sql-reference/data-types/string) **返回值** +返回第一个有意义的子域名。[`String`](/sql-reference/data-types/string) + **示例** -## fragment \{#fragment\} +**基本用法** + +```sql title=Query +SELECT firstSignificantSubdomainCustomRFC('https://news.example.com', 'public_suffix_list') +``` + +```response title=Response +example +``` + +## firstSignificantSubdomainRFC \{#fragment\} + +引入于:v22.10 + +返回根据 RFC 1034 定义的“首个有效子域名”。 + +**语法** + +```sql +``` + +**参数** + +* 无。 + +**返回值** + +**示例** + +## fragment \{#netloc\} 引入版本:v1.1 -返回不带开头 `#` 号的片段标识符。 +返回不包含开头井号符号的片段标识符。 **语法** ```sql -片段(url) +fragment(url) ``` **参数** -* `url` — URL 地址。[`String`](/sql-reference/data-types/string) +* `url` — URL。[`String`](/sql-reference/data-types/string) **返回值** -返回不包含开头井号符号(#)的片段标识符。[`String`](/sql-reference/data-types/string) +返回不包含开头井号(#)的 fragment 标识符。[`String`](/sql-reference/data-types/string) **示例** -**使用示例** +**用法示例** ```sql title=Query SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1-create-a-clickhouse-service'); @@ -1033,15 +1162,15 @@ SELECT fragment('https://clickhouse.com/docs/getting-started/quick-start/cloud#1 ```response title=Response ┌─fragment('http⋯ouse-service')─┐ -│ 1-创建-ClickHouse-服务 │ +│ 1-create-a-clickhouse-service │ └───────────────────────────────┘ ``` -## netloc \{#netloc\} +## netloc \{#path\} -自 v20.5 引入 +引入版本:v20.5 -从 URL 中提取网络定位部分(`username:password@host:port`)。 +从 URL 中提取网络位置部分(`username:password@host:port`)。 **语法** @@ -1055,7 +1184,7 @@ netloc(url) **返回值** -从给定的 URL 中返回 `username:password@host:port`。[`String`](/sql-reference/data-types/string) +从给定的 URL 中提取并返回 `username:password@host:port`。[`String`](/sql-reference/data-types/string) **示例** @@ -1071,16 +1200,16 @@ SELECT netloc('http://paul@www.example.com:80/'); └──────────────────────────┘ ``` -## path \{#path\} +## path \{#pathFull\} -自 v1.1 版本引入 +自 v1.1 起引入 -返回 URL 中不包含查询字符串的路径。 +返回 URL 中去除查询字符串后的路径部分。 **语法** ```sql -路径(网址) +path(url) ``` **参数** @@ -1089,7 +1218,7 @@ SELECT netloc('http://paul@www.example.com:80/'); **返回值** -返回不包含查询字符串的 URL 路径部分。[`String`](/sql-reference/data-types/string) +返回去掉查询字符串后的 URL 路径部分。[`String`](/sql-reference/data-types/string) **示例** @@ -1105,11 +1234,11 @@ SELECT path('https://clickhouse.com/docs/sql-reference/functions/url-functions/? └──────────────────────────────────────────────────────────────────────────────────────┘ ``` -## pathFull \{#pathFull\} +## pathFull \{#port\} -自 v1.1 引入 +引入版本:v1.1 -与 [`path`](#path) 相同,但还包括 URL 的查询字符串和片段。 +与 [`path`](#path) 相同,但还包含 URL 的查询字符串和片段。 **语法** @@ -1123,7 +1252,7 @@ pathFull(url) **返回值** -返回 URL 的路径(包含查询字符串和片段)。[`String`](/sql-reference/data-types/string) +返回 URL 的路径,包括查询字符串和片段(fragment)。[`String`](/sql-reference/data-types/string) **示例** @@ -1139,9 +1268,9 @@ SELECT pathFull('https://clickhouse.com/docs/sql-reference/functions/url-functio └──────────────────────────────────────────────────────────────────┘ ``` -## port \{#port\} +## port \{#portRFC\} -自 v20.5 起引入 +自 v20.5 起提供 返回 URL 的端口号;如果 URL 不包含端口或无法解析,则返回 `default_port`。 @@ -1158,7 +1287,7 @@ port(url[, default_port]) **返回值** -返回 URL 的端口;如果 URL 中没有端口或发生校验错误,则返回默认端口。[`UInt16`](/sql-reference/data-types/int-uint) +返回 URL 中的端口;如果 URL 中未指定端口,或发生验证错误,则返回默认端口。[`UInt16`](/sql-reference/data-types/int-uint) **示例** @@ -1174,12 +1303,12 @@ SELECT port('https://clickhouse.com:8443/docs'), port('https://clickhouse.com/do └──────────────────────────────────────────┴──────────────────────────────────────────┘ ``` -## portRFC \{#portRFC\} +## portRFC \{#protocol\} 引入版本:v22.10 -返回 URL 中的端口号;如果 URL 不包含端口或无法解析,则返回 `default_port`。 -类似于 [`port`](#port),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 规范。 +返回端口;如果 URL 不包含端口或无法解析,则返回 `default_port`。 +与 [`port`](#port) 类似,但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 **语法** @@ -1190,11 +1319,11 @@ portRFC(url[, default_port]) **参数** * `url` — URL。[`String`](/sql-reference/data-types/string) -* `default_port` — 可选。要返回的默认端口号,默认为 `0`。[`UInt16`](/sql-reference/data-types/int-uint) +* `default_port` — 可选。要返回的默认端口号。默认值为 `0`。[`UInt16`](/sql-reference/data-types/int-uint) **返回值** -返回端口号;如果 URL 中没有端口或发生验证错误,则返回默认端口。[`UInt16`](/sql-reference/data-types/int-uint) +返回端口号;如果 URL 中未包含端口,或发生校验错误,则返回默认端口号。[`UInt16`](/sql-reference/data-types/int-uint) **示例** @@ -1210,9 +1339,9 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass └──────────────────────────┴──────────────────────────┘ ``` -## protocol \{#protocol\} +## protocol \{#queryString\} -自 v1.1 版本引入 +自 v1.1 起引入 从 URL 中提取协议。 @@ -1221,7 +1350,7 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass **语法** ```sql -协议(url) +protocol(url) ``` **参数** @@ -1230,7 +1359,7 @@ SELECT port('http://user:password@example.com:8080/'), portRFC('http://user:pass **返回值** -返回 URL 的协议;如果无法确定,则返回空字符串。[`String`](/sql-reference/data-types/string) +返回 URL 的协议,若无法确定则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** @@ -1246,11 +1375,11 @@ SELECT protocol('https://clickhouse.com/'); └─────────────────────────────────────┘ ``` -## queryString \{#queryString\} +## queryString \{#queryStringAndFragment\} -引入于:v1.1 +自 v1.1 起提供 -返回 URL 的查询字符串,不包括开头的问号,以及 `#` 字符及其后所有内容。 +返回 URL 中的查询字符串,不包括开头的问号,以及 `#` 及其之后的所有内容。 **语法** @@ -1264,11 +1393,11 @@ queryString(url) **返回值** -返回去掉开头问号和片段标识符后的 URL 查询字符串。[`String`](/sql-reference/data-types/string) +返回 URL 的查询字符串(不包括开头的问号和片段部分)。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT queryString('https://clickhouse.com/docs?query=value¶m=123#section'); @@ -1280,9 +1409,9 @@ SELECT queryString('https://clickhouse.com/docs?query=value¶m=123#section'); └──────────────────────────┘ ``` -## queryStringAndFragment \{#queryStringAndFragment\} +## queryStringAndFragment \{#topLevelDomain\} -自 v1.1 引入 +首次引入:v1.1 返回 URL 的查询字符串和片段标识符。 @@ -1302,7 +1431,7 @@ queryStringAndFragment(url) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value¶m=123#section'); @@ -1314,14 +1443,14 @@ SELECT queryStringAndFragment('https://clickhouse.com/docs?query=value¶m=123 └───────────────────────────────┘ ``` -## topLevelDomain \{#topLevelDomain\} +## topLevelDomain \{#topLevelDomainRFC\} -自 v1.1 起引入 +自 v1.1 引入 从 URL 中提取顶级域名。 :::note -URL 可以带协议或不带协议。 +URL 可以包含协议或不包含协议。 例如: ```text @@ -1335,7 +1464,7 @@ https://clickhouse.com/time/ **语法** ```sql -顶级域名(url) +topLevelDomain(url) ``` **参数** @@ -1344,11 +1473,11 @@ https://clickhouse.com/time/ **返回值** -如果输入字符串可以解析为 URL,则返回域名;否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串能被解析为 URL,则返回域名;否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** -**用法示例** +**使用示例** ```sql title=Query SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); @@ -1360,12 +1489,12 @@ SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk'); └────────────────────────────────────────────────────────────────────┘ ``` -## topLevelDomainRFC \{#topLevelDomainRFC\} +## topLevelDomainRFC -自 v22.10 版本引入 +自 v22.10 起引入 -从 URL 中提取顶级域名部分。 -类似于 [`topLevelDomain`](#topLevelDomain),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)。 +从 URL 中提取顶级域名。 +类似于 [`topLevelDomain`](#topLevelDomain),但符合 [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) 规范。 **语法** @@ -1379,7 +1508,7 @@ topLevelDomainRFC(url) **返回值** -如果输入字符串可以解析为 URL,则返回该 URL 的域名,否则返回空字符串。[`String`](/sql-reference/data-types/string) +如果输入字符串可以解析为 URL,则返回其域名,否则返回空字符串。[`String`](/sql-reference/data-types/string) **示例** diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md index 6e98a7163fb..1d2a28d02e3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/database.md @@ -12,7 +12,7 @@ doc_type: 'reference' 创建新数据库。 ```sql -CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [COMMENT 'Comment'] +CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment'] ``` @@ -61,3 +61,36 @@ SELECT name, comment FROM system.databases WHERE name = 'db_comment'; │ db_comment │ The temporary database │ └────────────┴────────────────────────┘ ``` + + +### SETTINGS \{#settings\} + +#### lazy_load_tables \{#lazy-load-tables\} + +启用后,数据库启动时不会完全加载所有表。取而代之的是,为每个表创建一个轻量级代理,并在首次访问时才加载并初始化实际的表引擎。对于包含大量表且只对其中一部分进行频繁查询的数据库,这可以减少启动时间和内存占用。 + +```sql +CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1; +``` + +适用于将表元数据存储在磁盘上的数据库引擎(例如 `Atomic`、`Ordinary`)。`VIEW`、materialized view、dictionaries,以及基于 table function 的表始终会被立即加载,与此设置无关。 + +**适用场景:** 此设置适用于包含大量表(数百或数千个)且只有一部分表会被实际查询的数据库。它通过将表引擎对象的创建、数据分区片段的扫描以及后台线程的初始化推迟到首次访问时执行,从而减少服务器启动时间和内存使用。 + +**对 `system.tables` 的影响:** + +* 在访问表之前,`system.tables` 会将其引擎显示为 `TableProxy`。首次访问后,会显示真实的引擎名称(例如 `MergeTree`)。 +* 对于尚未加载的表,由于实际存储尚未创建,`total_rows` 和 `total_bytes` 等列会返回 `NULL`。 + +**与 DDL 操作的交互:** + +* `SELECT`、`INSERT`、`ALTER`、`DROP` 会在首次使用时透明地触发真实表引擎的加载。 +* `RENAME TABLE` 可以在不触发加载的情况下执行。 +* 一旦表被加载,在整个服务器进程生命周期内都会保持加载状态。 + +**限制:** + +* 依赖 `system.tables` 元数据(例如 `total_rows`、`engine`)的监控工具,对于未加载的表可能会看到不完整的信息。 +* 针对尚未加载的表的第一次查询会产生一次性的加载开销(解析已存储的 `CREATE TABLE` 语句并初始化引擎)。 + +默认值:`0`(禁用)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md deleted file mode 100644 index 840910db37a..00000000000 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -description: '字典文档' -sidebar_label: 'DICTIONARY' -sidebar_position: 38 -slug: /sql-reference/statements/create/dictionary -title: 'CREATE DICTIONARY' -doc_type: 'reference' ---- - -根据给定的[结构](../../../sql-reference/dictionaries/index.md#dictionary-key-and-fields)、[数据源](../../../sql-reference/dictionaries/index.md#dictionary-sources)、[布局](/sql-reference/dictionaries#storing-dictionaries-in-memory)和[生命周期](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)创建一个新的[字典](../../../sql-reference/dictionaries/index.md)。 - -## 语法 \{#syntax\} - -```sql -CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] -( - key1 type1 [DEFAULT|EXPRESSION expr1] [IS_OBJECT_ID], - key2 type2 [DEFAULT|EXPRESSION expr2], - attr1 type2 [DEFAULT|EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], - attr2 type2 [DEFAULT|EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] -) -PRIMARY KEY key1, key2 -SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) -LAYOUT(LAYOUT_NAME([param_name param_value])) -LIFETIME({MIN min_val MAX max_val | max_val}) -SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) -COMMENT 'Comment' -``` - -字典结构由属性组成。字典属性的定义方式与表列类似。唯一必须显式指定的属性是类型,其余属性都可以使用默认值。 - -`ON CLUSTER` 子句允许在集群上创建字典,参见 [Distributed DDL](../../../sql-reference/distributed-ddl.md)。 - -根据字典的 [layout](/sql-reference/dictionaries#storing-dictionaries-in-memory),可以将一个或多个属性指定为字典键。 - -## 源 \{#source\} - -字典的来源可以是: - -* 当前 ClickHouse 服务中的表 -* 远程 ClickHouse 服务中的表 -* 通过 HTTP(S) 访问的文件 -* 另一个数据库 - -### 从当前 ClickHouse 服务中的表创建字典 \{#create-a-dictionary-from-a-table-in-the-current-clickhouse-service\} - -输入表 `source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -创建字典: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -输出字典: - -```sql -SHOW CREATE DICTIONARY id_value_dictionary; -``` - -```response -CREATE DICTIONARY default.id_value_dictionary -( - `id` UInt64, - `value` String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table')) -LIFETIME(MIN 0 MAX 1000) -LAYOUT(FLAT()) -``` - -:::note -在 [ClickHouse Cloud](https://clickhouse.com) 中使用 SQL 控制台创建字典时,必须指定用户(`default` 或任何具有 `default_role` 角色的其他用户)和密码。 -::: - -```sql -CREATE USER IF NOT EXISTS clickhouse_admin -IDENTIFIED WITH sha256_password BY 'passworD43$x'; - -GRANT default_role TO clickhouse_admin; - -CREATE DATABASE foo_db; - -CREATE TABLE foo_db.source_table ( - id UInt64, - value String -) ENGINE = MergeTree -PRIMARY KEY id; - -CREATE DICTIONARY foo_db.id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(TABLE 'source_table' USER 'clickhouse_admin' PASSWORD 'passworD43$x' DB 'foo_db' )) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000); -``` - -### 基于远程 ClickHouse 服务中的表创建字典 \{#create-a-dictionary-from-a-table-in-a-remote-clickhouse-service\} - -输入表(位于远程 ClickHouse 服务中)`source_table`: - -```text -┌─id─┬─value──┐ -│ 1 │ First │ -│ 2 │ Second │ -└────┴────────┘ -``` - -创建字典: - -```sql -CREATE DICTIONARY id_value_dictionary -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(HOST 'HOSTNAME' PORT 9000 USER 'default' PASSWORD 'PASSWORD' TABLE 'source_table' DB 'default')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -``` - -### 从可通过 HTTP(S) 访问的文件创建字典 \{#create-a-dictionary-from-a-file-available-by-https\} - -```sql -CREATE DICTIONARY default.taxi_zone_dictionary -( - `LocationID` UInt16 DEFAULT 0, - `Borough` String, - `Zone` String, - `service_zone` String -) -PRIMARY KEY LocationID -SOURCE(HTTP(URL 'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv' FORMAT 'CSVWithNames')) -LIFETIME(MIN 0 MAX 0) -LAYOUT(HASHED()) -``` - -### 从另一个数据库创建字典 \{#create-a-dictionary-from-another-database\} - -详细信息请参阅[字典源](/sql-reference/dictionaries#dbms)。 - -**另请参阅** - -* 更多信息请参见[字典](../../../sql-reference/dictionaries/index.md)章节。 -* [system.dictionaries](../../../operations/system-tables/dictionaries.md) — 此表包含关于[字典](../../../sql-reference/dictionaries/index.md)的信息。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md similarity index 100% rename from i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/dictionaries/_snippet_dictionary_in_cloud.md rename to i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md new file mode 100644 index 00000000000..a4a81cb9770 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/attributes.md @@ -0,0 +1,179 @@ +--- +description: '字典键和属性配置' +sidebar_label: '属性' +sidebar_position: 2 +slug: /sql-reference/statements/create/dictionary/attributes +title: '字典属性' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + + + +`structure` 子句用于描述字典键以及可用于查询的字段。 + +XML 描述: + +```xml + + + + Id + + + + + + + ... + + + +``` + +属性通过以下元素来描述: + +* `` — 键列 +* `` — 数据列:可以有多个属性。 + +DDL 查询: + +```sql +CREATE DICTIONARY dict_name ( + Id UInt64, + -- attributes +) +PRIMARY KEY Id +... +``` + +属性在查询体中定义: + +* `PRIMARY KEY` — 键列 +* `AttrName AttrType` — 数据列。可以包含多个属性。 + + +## 键 \{#key\} + +ClickHouse 支持以下几种类型的键: + +- 数值键。类型为 `UInt64`。在 `` 标签中定义,或使用 `PRIMARY KEY` 关键字定义。 +- 复合键。由不同类型的值组成的集合。在 `` 标签中定义,或使用 `PRIMARY KEY` 关键字定义。 + +一个 XML 结构中只能包含 `` 或 `` 其中之一。DDL 查询语句必须且只能包含一个 `PRIMARY KEY`。 + +:::note +不得将键描述为属性。 +::: + +### 数值键 \{#numeric-key\} + +类型:`UInt64`。 + +配置示例: + +```xml + + Id + +``` + +配置字段: + +* `name` – 键所在列的名称。 + +对于 DDL 查询: + +```sql +CREATE DICTIONARY ( + Id UInt64, + ... +) +PRIMARY KEY Id +... +``` + +* `PRIMARY KEY` – 作为键的列名。 + + +### 复合键 \{#composite-key\} + +键可以是由任意类型字段组成的 `tuple`。在这种情况下,[layout](./layouts/) 必须是 `complex_key_hashed` 或 `complex_key_cache`。 + +:::tip +复合键可以只包含一个元素。例如,这样就可以使用字符串作为键。 +::: + +在 `` 元素中定义键结构。键字段的指定格式与字典[属性](#dictionary-key-and-fields)的格式相同。示例: + +```xml + + + + field1 + String + + + field2 + UInt32 + + ... + +... +``` + +或 + +```sql +CREATE DICTIONARY ( + field1 String, + field2 UInt32 + ... +) +PRIMARY KEY field1, field2 +... +``` + +在对 `dictGet*` 函数发起查询时,需要传入一个元组作为键。示例:`dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2))`。 + + +## 属性 \{#attributes\} + +配置示例: + +```xml + + ... + + Name + ClickHouseDataType + + rand64() + true + true + true + + +``` + +或 + +```sql +CREATE DICTIONARY somename ( + Name ClickHouseDataType DEFAULT '' EXPRESSION rand64() HIERARCHICAL INJECTIVE IS_OBJECT_ID +) +``` + +配置字段: + + +| Tag | Description | Required | +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| +| `name` | 列名。 | Yes | +| `type` | ClickHouse 数据类型:[UInt8](../../../data-types/int-uint.md)、[UInt16](../../../data-types/int-uint.md)、[UInt32](../../../data-types/int-uint.md)、[UInt64](../../../data-types/int-uint.md)、[Int8](../../../data-types/int-uint.md)、[Int16](../../../data-types/int-uint.md)、[Int32](../../../data-types/int-uint.md)、[Int64](../../../data-types/int-uint.md)、[Float32](../../../data-types/float.md)、[Float64](../../../data-types/float.md)、[UUID](../../../data-types/uuid.md)、[Decimal32](../../../data-types/decimal.md)、[Decimal64](../../../data-types/decimal.md)、[Decimal128](../../../data-types/decimal.md)、[Decimal256](../../../data-types/decimal.md)、[Date](../../../data-types/date.md)、[Date32](../../../data-types/date32.md)、[DateTime](../../../data-types/datetime.md)、[DateTime64](../../../data-types/datetime64.md)、[String](../../../data-types/string.md)、[Array](../../../data-types/array.md)。
    ClickHouse 会尝试将字典中的值转换为指定的数据类型。例如,对于 MySQL 而言,MySQL 源表中的字段可以是 `TEXT`、`VARCHAR` 或 `BLOB`,但在 ClickHouse 中可以作为 `String` 类型导入。
    [Nullable](../../../data-types/nullable.md) 目前支持用于 [Flat](./layouts/flat)、[Hashed](./layouts/hashed)、[ComplexKeyHashed](./layouts/hashed#complex_key_hashed)、[Direct](./layouts/direct)、[ComplexKeyDirect](./layouts/direct#complex_key_direct)、[RangeHashed](./layouts/range-hashed)、Polygon、[Cache](./layouts/cache)、[ComplexKeyCache](./layouts/cache#complex_key_cache)、[SSDCache](./layouts/ssd-cache)、[SSDComplexKeyCache](./layouts/ssd-cache#complex_key_ssd_cache) 字典。在 [IPTrie](./layouts/ip-trie) 字典中不支持 `Nullable` 类型。 | Yes | +| `null_value` | 不存在的元素的默认值。
    在示例中,它是一个空字符串。[NULL](../../../syntax.md#null) 值只能用于 `Nullable` 类型(参见上一行的类型说明)。 | Yes | +| `expression` | ClickHouse 在该值上执行的[表达式](../../../syntax.md#expressions)。
    表达式可以是远程 SQL 数据库中的列名。因此,可以使用它为远程列创建别名。

    默认值:无表达式。 | No | +| `hierarchical` | 如果为 `true`,则该属性包含当前键的父键值。参见 [Hierarchical Dictionaries](./layouts/hierarchical)。

    默认值:`false`。 | No | +| `injective` | 标志位,用于指示 `id -> attribute` 映射是否为[单射](https://en.wikipedia.org/wiki/Injective_function)。
    如果为 `true`,ClickHouse 可以在 `GROUP BY` 子句之后自动插入对具有单射属性的字典的请求。通常,这会显著减少此类请求的数量。

    默认值:`false`。 | No | +| `is_object_id` | 标志位,用于指示是否通过 `ObjectID` 来为 MongoDB 文档执行查询。

    默认值:`false`。 | No | \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md new file mode 100644 index 00000000000..fc739f52f15 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/embedded.md @@ -0,0 +1,57 @@ +--- +description: 'ClickHouse 中内置的 geobase 字典' +sidebar_label: '嵌入式字典' +sidebar_position: 6 +slug: /sql-reference/statements/create/dictionary/embedded +title: '嵌入式(geobase)字典' +doc_type: 'reference' +--- + +import SelfManaged from '@site/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_self_managed_only_no_roadmap.md'; + + + +ClickHouse 包含一个用于处理地理库(geobase)的内置功能。 + +这使你可以: + +* 使用区域的 ID 获取其在所需语言中的名称。 +* 使用区域的 ID 获取城市、地区、联邦区、国家或大洲的 ID。 +* 检查某个区域是否属于另一个区域。 +* 获取父区域链。 + +所有函数都支持“translocality”(跨地域性),即能够同时采用关于区域归属的不同视角。更多信息,参阅 “Functions for working with web analytics dictionaries” 一节。 + +在默认安装包中,内部字典是禁用的。 +要启用它们,请在服务器配置文件中取消注释参数 `path_to_regions_hierarchy_file` 和 `path_to_regions_names_files`。 + +地理库从文本文件加载。 + +将 `regions_hierarchy*.txt` 文件放入 `path_to_regions_hierarchy_file` 目录。该配置参数必须包含指向 `regions_hierarchy.txt` 文件(默认区域层级)的路径,其余文件(如 `regions_hierarchy_ua.txt`)必须位于同一目录中。 + +将 `regions_names_*.txt` 文件放入 `path_to_regions_names_files` 目录。 + +你也可以自行创建这些文件。文件格式如下: + +`regions_hierarchy*.txt`:TabSeparated(无表头),列: + +* 区域 ID(`UInt32`) +* 父区域 ID(`UInt32`) +* 区域类型(`UInt8`):1 - 大洲,3 - 国家,4 - 联邦区,5 - 地区,6 - 城市;其他类型没有取值 +* 人口(`UInt32`)— 可选列 + +`regions_names_*.txt`:TabSeparated(无表头),列: + +* 区域 ID(`UInt32`) +* 区域名称(`String`)— 不能包含制表符或换行符,即使是转义后的。 + +在 RAM 中使用扁平数组结构进行存储。出于这个原因,ID 不应超过一百万。 + +字典可以在不重启服务器的情况下更新。但是,可用字典的集合不会发生变化。 +在更新时,会检查文件的修改时间。如果文件发生变化,则更新字典。 +检查变更的时间间隔通过 `builtin_dictionaries_reload_interval` 参数进行配置。 +字典更新(首次使用时的加载除外)不会阻塞查询。在更新期间,查询会使用旧版本的字典。如果在更新过程中发生错误,该错误会被写入服务器日志中,查询将继续使用旧版本的字典。 + +我们建议定期使用地理库更新字典。在执行更新时,生成新文件并将其写入单独的位置。当一切准备就绪后,将它们重命名为服务器正在使用的文件名。 + +还有一些用于处理操作系统标识符和搜索引擎的函数,但不建议使用。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md new file mode 100644 index 00000000000..1553987dfa1 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/cache.md @@ -0,0 +1,74 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/cache +title: '缓存字典布局' +sidebar_label: '缓存' +sidebar_position: 6 +description: '在固定大小的内存缓存中存储字典。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`cached` 字典布局类型会将字典存储在具有固定数量单元格的缓存中。 +这些单元格包含经常使用的元素。 + +字典键的类型是 [UInt64](../../../data-types/int-uint.md)。 + +在查找字典时,首先会搜索缓存。对于每个数据块,所有在缓存中未找到或已过期的键会通过 `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)` 向源请求。接收到的数据随后会写入缓存。 + +如果在字典中未找到键,则会创建更新缓存任务并将其加入更新队列。可以通过 `max_update_queue_size`、`update_queue_push_timeout_milliseconds`、`query_wait_timeout_milliseconds`、`max_threads_for_updates` 这些设置控制更新队列属性。 + +对于缓存字典,可以设置缓存中数据的过期 [lifetime](../lifetime.md#refreshing-dictionary-data-using-lifetime)。如果自单元格中数据加载以来已经过去的时间超过 `lifetime`,则不会使用该单元格的值,并且该键会变为过期状态。下次需要使用该键时会重新请求。可以通过设置 `allow_read_expired_keys` 配置此行为。 + +这是所有存储字典方式中效率最低的一种。缓存速度强烈依赖于正确的设置和使用场景。仅当命中率足够高时(建议 99% 及以上),缓存类型的字典才会有良好表现。可以在 [system.dictionaries](../../../../operations/system-tables/dictionaries.md) 表中查看平均命中率。 + +如果将设置 `allow_read_expired_keys` 设为 1(默认值为 0),则字典可以支持异步更新。如果客户端请求了一组键,这些键都在缓存中,但其中一些已过期,则字典会向客户端返回这些过期键,并从源端异步请求它们。 + +为了提升缓存性能,请在子查询中使用 `LIMIT`,并在外部调用字典函数。 + +支持所有类型的源。 + +设置示例: + + + + ```sql + LAYOUT(CACHE(SIZE_IN_CELLS 1000000000)) + ``` + + + + ```xml + + + + 1000000000 + + 0 + + 100000 + + 10 + + 60000 + + 4 + + + ``` + + + +
    + +请设置足够大的缓存大小。需要通过试验选择单元格数量: + +1. 设定一个值。 +2. 运行查询,直到缓存完全填满。 +3. 使用 `system.dictionaries` 表评估内存消耗。 +4. 增加或减少单元格数量,直到达到所需的内存消耗。 + +:::note +不推荐使用 ClickHouse 作为此布局的源。字典查找需要随机点读,这并不是 ClickHouse 所优化的访问模式。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md new file mode 100644 index 00000000000..4690a1d8c7e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/direct.md @@ -0,0 +1,47 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/direct +title: 'direct 字典布局' +sidebar_label: 'direct' +sidebar_position: 9 +description: '一种不使用缓存、直接查询源数据的字典布局。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## direct \{#direct\} + +字典不存储在内存中,在处理请求时会直接访问数据源。 + +字典键的类型为 [UInt64](../../../data-types/int-uint.md)。 + +支持除本地文件之外的所有类型的[数据源](../sources/#dictionary-sources)。 + +配置示例: + + + + +```sql +LAYOUT(DIRECT()) +``` + + + + +```xml + + + +``` + + + + +
    + +## complex_key_direct \{#complex_key_direct\} + +这种存储类型用于带有复合[键](../keys-and-fields.md#dictionary-key-and-fields)的字典,与 `direct` 类似。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md new file mode 100644 index 00000000000..9c5a7049393 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/flat.md @@ -0,0 +1,48 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/flat +title: 'flat 字典布局' +sidebar_label: '扁平' +sidebar_position: 2 +description: '将字典以扁平数组的形式存储在内存中。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +使用 `flat` 布局时,字典以扁平数组的形式完全存储在内存中。 +所使用的内存量与最大键(其占用空间)的大小成正比。 + +:::tip +这种布局类型在所有可用的字典存储方式中性能最佳。 +::: + +字典键的类型为 [UInt64](../../../data-types/int-uint.md),并且键值受 `max_array_size` 限制(默认值为 500,000)。 +如果在创建字典时发现更大的键,ClickHouse 会抛出异常并且不会创建该字典。 +字典扁平数组的初始大小由 `initial_array_size` 设置控制(默认值为 1024)。 + +支持所有类型的数据源。 +在更新字典时,会一次性完整读取数据(来自文件或表)。 + +配置示例: + + + + ```sql + LAYOUT(FLAT(INITIAL_ARRAY_SIZE 50000 MAX_ARRAY_SIZE 5000000)) + ``` + + + + ```xml + + + 50000 + 5000000 + + + ``` + + + +
    diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md new file mode 100644 index 00000000000..188f7a63f1b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed-array.md @@ -0,0 +1,71 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed-array +title: 'hashed_array 字典布局类型' +sidebar_label: 'hashed_array' +sidebar_position: 4 +description: '使用带属性数组的哈希表在内存中存储字典。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed_array \{#hashed_array\} + +字典完全驻留在内存中。每个属性都存储在一个数组中。键属性以哈希表的形式存储,其中的值是属性数组中的索引。字典可以包含任意数量、任意标识符的元素。在实践中,键的数量可以达到数千万个。 + +字典键的数据类型为 [UInt64](../../../data-types/int-uint.md)。 + +支持所有类型的源。在更新时,会将数据(无论来自文件还是表)整体读取。 + +配置示例: + + + + +```sql +LAYOUT(HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + + +``` + + + + +
    + +## complex_key_hashed_array \{#complex_key_hashed_array\} + +这种存储类型用于带有复合[keys](../keys-and-fields.md#dictionary-key-and-fields) 的场景。类似于 [hashed_array](#hashed_array)。 + +配置示例: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED_ARRAY([SHARDS 1])) +``` + + + + +```xml + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md new file mode 100644 index 00000000000..751fd2e0738 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hashed.md @@ -0,0 +1,183 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hashed +title: 'hashed 字典布局类型' +sidebar_label: 'hashed' +sidebar_position: 3 +description: '使用哈希表在内存中将字典存储为:hashed、sparse_hashed、complex_key_hashed、complex_key_sparse_hashed 布局' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## hashed \{#hashed\} + +字典以哈希表的形式完全存储在内存中。字典可以包含任意数量、具有任意标识符的元素。实际使用中,键的数量可以达到数千万级。 + +字典键的类型为 [UInt64](../../../data-types/int-uint.md)。 + +支持所有类型的数据源。更新时会完整读取数据(从文件或表中)。 + +配置示例: + + + + +```sql +LAYOUT(HASHED()) +``` + + + + +```xml + + + +``` + + + + +
    + +带 `settings` 的配置示例: + + + + +```sql +LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + 10 + + + 10000 + + + 0.5 + + +``` + + + + +
    + +## sparse_hashed \{#sparse_hashed\} + +类似于 `hashed`,但在节省内存的同时会消耗更多 CPU 资源。 + +字典键的类型为 [UInt64](../../../data-types/int-uint.md)。 + +配置示例: + + + + +```sql +LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +对于这种类型的字典,也可以使用 `shards`;并且由于 `sparse_hashed` 更慢,相比于 `hashed`,`shards` 对 `sparse_hashed` 更为重要。 + +## complex_key_hashed \{#complex_key_hashed\} + +这种存储类型用于复合[键](../keys-and-fields.md#dictionary-key-and-fields),类似于 `hashed`。 + +配置示例: + + + + +```sql +LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    + +## complex_key_sparse_hashed \{#complex_key_sparse_hashed\} + +此存储类型用于复合[键](../keys-and-fields.md#dictionary-key-and-fields)。类似于 [sparse_hashed](#sparse_hashed)。 + +配置示例: + + + + +```sql +LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5])) +``` + + + + +```xml + + + + + + + +``` + + + + +
    \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md new file mode 100644 index 00000000000..bc446df0d2a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/hierarchical.md @@ -0,0 +1,94 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/hierarchical +title: '层级字典' +sidebar_label: '层级' +sidebar_position: 10 +description: '配置具有父子键关系的层级字典。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## 层级字典 \{#hierarchical-dictionaries\} + +ClickHouse 支持具有[数值键](../keys-and-fields.md#numeric-key)的层级字典。 + +请看下面的层级结构: + +```text +0 (Common parent) +│ +├── 1 (Russia) +│ │ +│ └── 2 (Moscow) +│ │ +│ └── 3 (Center) +│ +└── 4 (Great Britain) + │ + └── 5 (London) +``` + +此层级可以用下表的字典表来表示。 + +| region_id | parent_region | region_name | +| ------------- | ----------------- | --------------- | +| 1 | 0 | Russia | +| 2 | 1 | Moscow | +| 3 | 2 | Center | +| 4 | 0 | Great Britain | +| 5 | 4 | London | + +该表包含一列 `parent_region`,其中存储了该元素最近上级的键值。 + +ClickHouse 为外部字典属性提供层级特性支持。通过该特性,您可以按如上所述的方式配置层级字典。 + +[dictGetHierarchy](../../../functions/ext-dict-functions.md#dictGetHierarchy) 函数可用于获取某个元素的父级链。 + +在我们的示例中,字典的结构可以如下所示: + + + + ```sql + CREATE DICTIONARY regions_dict + ( + region_id UInt64, + parent_region UInt64 DEFAULT 0 HIERARCHICAL, + region_name String DEFAULT '' + ) + PRIMARY KEY region_id + SOURCE(...) + LAYOUT(HASHED()) + LIFETIME(3600); + ``` + + + + ```xml + + + + region_id + + + + parent_region + UInt64 + 0 + true + + + + region_name + String + + + + + + ``` + + + +
    diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md new file mode 100644 index 00000000000..b895c2b2461 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ip-trie.md @@ -0,0 +1,126 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ip-trie +title: 'ip_trie 字典布局' +sidebar_label: 'ip_trie' +sidebar_position: 10 +description: '将字典存储为 trie,以便快速查询 IP 地址前缀。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +`ip_trie` 字典专为按网络前缀进行 IP 地址查找而设计。 +它以 CIDR 表示法存储 IP 范围,并可快速判断给定 IP 属于哪个前缀(例如子网或 ASN 范围),非常适合用于基于 IP 的检索,如地理位置定位或网络分类。 + + + +## 将正则表达式树字典与 YAMLRegExpTree 源一起使用 \{#use-regular-expression-tree-dictionary-in-clickhouse-open-source\} + + + +在 ClickHouse 开源版中,正则表达式树字典是通过 [`YAMLRegExpTree`](../sources/yamlregexptree.md) 源定义的,该源需要提供一个指向包含正则表达式树的 YAML 文件的路径。 + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +... +``` + +字典源 [`YAMLRegExpTree`](../sources/yamlregexptree.md) 表示正则表达式树的结构。例如: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +该配置由一个正则表达式树节点列表组成。每个节点具有以下结构: + +* **regexp**:该节点所使用的正则表达式。 +* **attributes**:用户定义的字典属性列表。在此示例中,有两个属性:`name` 和 `version`。第一个节点定义了这两个属性,第二个节点只定义属性 `name`。属性 `version` 由第二个节点的子节点提供。 + * 属性的值可以包含**反向引用**,用于引用所匹配正则表达式中的捕获组。在示例中,第一个节点中属性 `version` 的值由一个对正则表达式中捕获组 `(\d+[\.\d]*)` 的反向引用 `\1` 组成。反向引用编号范围为 1 到 9,写作 `$1` 或 `\1`(对于编号 1)。在查询执行期间,反向引用会被匹配到的捕获组替换。 +* **child nodes**:regexp 树节点的子节点列表,每个子节点都有自己的属性以及(可能还有)子节点。字符串匹配以深度优先方式进行。如果一个字符串匹配某个 regexp 节点,则字典会检查它是否也匹配该节点的子节点。如果是,则会使用匹配最深的节点的属性。子节点的属性会覆盖父节点中同名属性。YAML 文件中子节点的名称可以是任意的,例如上述示例中的 `versions`。 + +Regexp 树字典只允许通过 `dictGet`、`dictGetOrDefault` 和 `dictGetAll` 函数进行访问。例如: + +```sql title="Query" +SELECT dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024'); +``` + +```text title="Response" +┌─dictGet('regexp_dict', ('name', 'version'), '31/tclwebkit1024')─┐ +│ ('Android','12') │ +└─────────────────────────────────────────────────────────────────┘ +``` + +在这个例子中,我们首先在顶层的第二个节点上匹配正则表达式 `\d+/tclwebkit(?:\d+[\.\d]*)`。 +然后字典继续查找子节点,并发现该字符串同样匹配 `3[12]/tclwebkit`。 +因此,属性 `name` 的值为 `Android`(在第一层中定义),属性 `version` 的值为 `12`(在子节点中定义)。 + +借助精心编写的 YAML 配置文件,你可以将正则表达式树字典用作 User-Agent 字符串解析器。 +ClickHouse 支持 [uap-core](https://github.com/ua-parser/uap-core),你可以在功能测试 [02504_regexp_dictionary_ua_parser](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/02504_regexp_dictionary_ua_parser.sh) 中了解其用法。 + + +### 收集属性值 \{#collecting-attribute-values\} + +有时,相比只返回叶子节点的值,返回所有匹配的多个正则表达式的值会更有用。在这种情况下,可以使用专门的 [`dictGetAll`](../../../functions/ext-dict-functions.md#dictGetAll) 函数。如果某个节点具有类型为 `T` 的属性值,`dictGetAll` 将返回一个包含零个或多个值的 `Array(T)`。 + +默认情况下,每个键返回的匹配数量没有上限。可以将一个上限作为可选的第四个参数传递给 `dictGetAll`。数组按*拓扑顺序*填充,这意味着子节点排在父节点之前,兄弟节点按源数据中的顺序排列。 + +示例: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + tag String, + topological_index Int64, + captured Nullable(String), + parent String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0) +``` + +```yaml +# /var/lib/clickhouse/user_files/regexp_tree.yaml +- regexp: 'clickhouse\.com' + tag: 'ClickHouse' + topological_index: 1 + paths: + - regexp: 'clickhouse\.com/docs(.*)' + tag: 'ClickHouse Documentation' + topological_index: 0 + captured: '\1' + parent: 'ClickHouse' + +- regexp: '/docs(/|$)' + tag: 'Documentation' + topological_index: 2 + +- regexp: 'github.com' + tag: 'GitHub' + topological_index: 3 + captured: 'NULL' +``` + +```sql +CREATE TABLE urls (url String) ENGINE=MergeTree ORDER BY url; +INSERT INTO urls VALUES ('clickhouse.com'), ('clickhouse.com/docs/en'), ('github.com/clickhouse/tree/master/docs'); +SELECT url, dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2) FROM urls; +``` + +结果: + +```text +┌─url────────────────────────────────────┬─dictGetAll('regexp_dict', ('tag', 'topological_index', 'captured', 'parent'), url, 2)─┐ +│ clickhouse.com │ (['ClickHouse'],[1],[],[]) │ +│ clickhouse.com/docs/en │ (['ClickHouse Documentation','ClickHouse'],[0,1],['/en'],['ClickHouse']) │ +│ github.com/clickhouse/tree/master/docs │ (['Documentation','GitHub'],[2,3],[NULL],[]) │ +└────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────┘ +``` + + +### 匹配模式 \{#matching-modes\} + +可以通过某些字典相关的设置项来修改模式匹配行为: + +- `regexp_dict_flag_case_insensitive`:使用不区分大小写的匹配(默认为 `false`)。可以在单个表达式中通过 `(?i)` 和 `(?-i)` 覆盖。 +- `regexp_dict_flag_dotall`:允许 `.` 匹配换行符(默认为 `false`)。 + +## 在 ClickHouse Cloud 中使用正则表达式树字典 \{#use-regular-expression-tree-dictionary-in-clickhouse-cloud\} + +[`YAMLRegExpTree`](../sources/yamlregexptree.md) 源在 ClickHouse 开源版中可用,但在 ClickHouse Cloud 中不可用。 +要在 ClickHouse Cloud 中使用正则表达式树字典,首先需要在本地的 ClickHouse 开源版中从 YAML 文件创建一个正则表达式树字典,然后使用 `dictionary` 表函数和 [INTO OUTFILE](../../select/into-outfile.md) 子句将该字典导出为 CSV 文件。 + +```sql +SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') +``` + +CSV 文件的内容如下: + +```text +1,0,"Linux/(\d+[\.\d]*).+tlinux","['version','name']","['\\1','TencentOS']" +2,0,"(\d+)/tclwebkit(\d+[\.\d]*)","['comment','version','name']","['test $1 and $2','$1','Android']" +3,2,"33/tclwebkit","['version']","['13']" +4,2,"3[12]/tclwebkit","['version']","['12']" +5,2,"3[12]/tclwebkit","['version']","['11']" +6,2,"3[12]/tclwebkit","['version']","['10']" +``` + +导出文件的 schema 如下: + +* `id UInt64`:RegexpTree 节点的 id。 +* `parent_id UInt64`:该节点父节点的 id。 +* `regexp String`:正则表达式字符串。 +* `keys Array(String)`:用户定义属性的名称。 +* `values Array(String)`:用户定义属性的值。 + +要在 ClickHouse Cloud 中创建该字典,首先根据以下表结构创建表 `regexp_dictionary_source_table`: + +```sql +CREATE TABLE regexp_dictionary_source_table +( + id UInt64, + parent_id UInt64, + regexp String, + keys Array(String), + values Array(String) +) ENGINE=Memory; +``` + +然后按如下方式更新本地 CSV 文件: + +```bash +clickhouse client \ + --host MY_HOST \ + --secure \ + --password MY_PASSWORD \ + --query " + INSERT INTO regexp_dictionary_source_table + SELECT * FROM input ('id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') + FORMAT CSV" < regexp_dict.csv +``` + +您可以参阅 [Insert Local Files](/integrations/data-ingestion/insert-local-files) 了解更多详情。在初始化源表之后,我们可以基于该源表创建一个 RegexpTree: + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +PRIMARY KEY(regexp) +SOURCE(CLICKHOUSE(TABLE 'regexp_dictionary_source_table')) +LIFETIME(0) +LAYOUT(regexp_tree); +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md new file mode 100644 index 00000000000..b5dd6ad6e96 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/layouts/ssd-cache.md @@ -0,0 +1,55 @@ +--- +slug: /sql-reference/statements/create/dictionary/layouts/ssd-cache +title: 'ssd_cache 字典布局类型' +sidebar_label: 'ssd_cache' +sidebar_position: 8 +description: '在 SSD 上存储字典数据,并在内存中维护索引:ssd_cache 或 complex_key_ssd_cache 类型' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## ssd_cache \{#ssd_cache\} + +类似于 `cache`,但将数据存储在 SSD 上,并将索引存储在 RAM 中。所有与更新队列相关的缓存字典设置均同样适用于 SSD 缓存字典。 + +字典键的类型为 [UInt64](../../../data-types/int-uint.md)。 + + + + +```sql +LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 + PATH '/var/lib/clickhouse/user_files/test_dict')) +``` + + + + +```xml + + + + 4096 + + 16777216 + + 131072 + + 1048576 + + /var/lib/clickhouse/user_files/test_dict + + +``` + + + + +
    + +## complex_key_ssd_cache \{#complex_key_ssd_cache\} + +此类存储用于复合[键](../keys-and-fields.md#dictionary-key-and-fields)。类似于 `ssd_cache`。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md new file mode 100644 index 00000000000..e7d89f783b9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/lifetime.md @@ -0,0 +1,144 @@ +--- +description: '用于自动刷新字典数据的 LIFETIME 配置' +sidebar_label: 'LIFETIME' +sidebar_position: 5 +slug: /sql-reference/statements/create/dictionary/lifetime +title: '使用 LIFETIME 刷新字典数据' +doc_type: 'reference' +--- + +import CloudDetails from '@site/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; + +ClickHouse 会根据以秒为单位定义的 `LIFETIME` 参数定期更新字典。 +`LIFETIME` 是对完整加载字典的更新间隔,也是对缓存字典的失效间隔。 + +在更新期间,仍然可以查询字典的旧版本。 +字典更新不会阻塞查询,首次加载时除外。 +如果在更新期间发生错误,错误会被写入服务器日志,查询可以继续使用字典的旧版本。 +如果字典更新成功,字典的旧版本会被[以原子方式](/concepts/glossary#atomicity)替换。 + +设置示例: + + + +```xml + + ... + 300 + ... + +``` + +或 + +```sql +CREATE DICTIONARY (...) +... +LIFETIME(300) +... +``` + +设置 `0`(`LIFETIME(0)`)会阻止字典进行更新。 + +你可以为更新设置一个时间区间,ClickHouse 会在该区间内均匀随机选择一个时间。这样可以在大量服务器上执行更新时分散字典源的负载。 + +设置示例: + +```xml + + ... + + 300 + 360 + + ... + +``` + +或 + +```sql +LIFETIME(MIN 300 MAX 360) +``` + +如果 `0` 和 `0`,则 ClickHouse 不会按超时时间重新加载字典。 +在这种情况下,如果字典配置文件被更改,或者执行了 `SYSTEM RELOAD DICTIONARY` 命令,ClickHouse 也可以提前重新加载字典。 + +在更新字典时,ClickHouse 服务器会根据 [数据源](./sources/) 的类型采用不同的逻辑: + +* 对于文本文件,它会检查修改时间。如果该时间与先前记录的时间不同,则更新字典。 +* 来自其他数据源的字典默认每次都会更新。 + +对于其他数据源(ODBC、PostgreSQL、ClickHouse 等),可以设置一个查询,使字典仅在确实发生变化时才更新,而不是每次都更新。为此,请执行以下步骤: + +* 字典表必须有一个字段,在源数据更新时该字段总是会改变。 +* 在数据源的设置中必须指定一个查询,用于获取该变化字段。ClickHouse 服务器将查询结果解释为一行,如果这行数据相较于之前的状态发生了变化,则更新字典。请在该 [数据源](./sources/) 的设置中,将该查询指定到 `` 字段中。 + +设置示例: + +```xml + + ... + + ... + SELECT update_time FROM dictionary_source where id = 1 + + ... + +``` + +或 + +```sql +... +SOURCE(ODBC(... invalidate_query 'SELECT update_time FROM dictionary_source where id = 1')) +... +``` + +对于 `Cache`、`ComplexKeyCache`、`SSDCache` 和 `SSDComplexKeyCache` 字典,同时支持同步和异步更新。 + +对于 `Flat`、`Hashed`、`HashedArray`、`ComplexKeyHashed` 字典,也可以仅请求自上次更新之后发生变更的数据。如果在字典源配置中指定了 `update_field`,则会在数据请求中附加上一次更新时间(以秒为单位)的值。根据源类型(Executable、HTTP、MySQL、PostgreSQL、ClickHouse 或 ODBC)的不同,在向外部源请求数据之前,会对 `update_field` 应用不同的处理逻辑。 + + +* 如果来源是 HTTP,则会将 `update_field` 作为查询参数添加,参数值为上次更新时间。 +* 如果来源是 Executable,则会将 `update_field` 作为可执行脚本参数添加,参数值为上次更新时间。 +* 如果来源是 ClickHouse、MySQL、PostgreSQL、ODBC,则会在 `WHERE` 子句中增加一个条件,其中 `update_field` 与上次更新时间进行大于或等于的比较。 + * 默认情况下,这个 `WHERE` 条件会在 SQL 查询的最外层进行检查。或者,也可以在查询中的任意其他 `WHERE` 子句中通过 `{condition}` 关键字进行检查。示例: + ```sql + ... + SOURCE(CLICKHOUSE(... + update_field 'added_time' + QUERY ' + SELECT my_arr.1 AS x, my_arr.2 AS y, creation_time + FROM ( + SELECT arrayZip(x_arr, y_arr) AS my_arr, creation_time + FROM dictionary_source + WHERE {condition} + )' + )) + ... + ``` + +如果设置了 `update_field` 选项,则可以同时设置额外的 `update_lag` 选项。`update_lag` 选项的值会在请求更新数据之前,先从上一次更新时间中减去。 + +设置示例: + +```xml + + ... + + ... + added_time + 15 + + ... + +``` + +或 + +```sql +... +SOURCE(CLICKHOUSE(... update_field 'added_time' update_lag 15)) +... +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md new file mode 100644 index 00000000000..249e72eb8b0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/overview.md @@ -0,0 +1,102 @@ +--- +description: '用于说明如何创建和配置字典的文档' +sidebar_label: '概览' +sidebar_position: 1 +slug: /sql-reference/statements/create/dictionary +title: 'CREATE DICTIONARY' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import CloudSupportedBadge from '@theme/badges/CloudSupportedBadge'; + + +# CREATE DICTIONARY \{#create-dictionary\} + +字典是一种映射(`key -> attributes`),便于维护各种类型的参考数据列表。 +ClickHouse 支持用于操作字典的特殊函数,这些函数可以在查询中使用。与对参考表执行 `JOIN` 相比,结合函数使用字典更加简单且高效。 + +可以通过两种方式创建字典: + +- [使用 DDL 查询](#creating-a-dictionary-with-a-ddl-query)(推荐) +- [使用配置文件](#creating-a-dictionary-with-a-configuration-file) + +## 使用 DDL 查询创建字典 \{#creating-a-dictionary-with-a-ddl-query\} + + + +可以通过 DDL 查询创建字典。 +这是推荐的方法,因为以 DDL 方式创建的字典具有以下优点: + +- 无需在服务器配置文件中添加额外记录。 +- 字典可以像表或视图等一等对象一样使用。 +- 可以使用熟悉的 `SELECT` 语法直接读取数据,而无需通过字典表函数。请注意,当通过 `SELECT` 语句直接访问字典时,对于启用缓存的字典,仅会返回缓存中的数据;而对于未启用缓存的字典,则会返回其存储的全部数据。 +- 可以轻松重命名字典。 + +### 语法 \{#syntax\} + +```sql +CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster] +( + key1 type1 [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID], + key2 type2 [DEFAULT | EXPRESSION expr2], + attr1 type2 [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE], + attr2 type2 [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE] +) +PRIMARY KEY key1, key2 +SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN])) +LAYOUT(LAYOUT_NAME([param_name param_value])) +LIFETIME({MIN min_val MAX max_val | max_val}) +SETTINGS(setting_name = setting_value, setting_name = setting_value, ...) +COMMENT 'Comment' +``` + +| Clause | Description | +| ------------------------------------------- | ------------------------------------------ | +| [Attributes](./attributes.md) | 字典属性的指定方式与表的列类似。唯一必需的属性是类型,其他属性都可以使用默认值。 | +| PRIMARY KEY | 为字典查询定义键列。根据布局,可以将一个或多个属性指定为键。 | +| [`SOURCE`](./sources/overview.md) | 定义字典的数据源(例如 ClickHouse 表、HTTP、PostgreSQL)。 | +| [`LAYOUT`](./layouts/overview.md) | 控制字典在内存中的存储方式(例如 `FLAT`、`HASHED`、`CACHE`)。 | +| [`LIFETIME`](./lifetime.md) | 设置字典的刷新间隔。 | +| [`ON CLUSTER`](../../../distributed-ddl.md) | 在集群上创建字典。可选。 | +| `SETTINGS` | 字典的附加设置。可选。 | +| `COMMENT` | 为字典添加文本注释。可选。 | + + +## 使用配置文件创建字典 \{#creating-a-dictionary-with-a-configuration-file\} + + + +:::note +在 ClickHouse Cloud 中不支持使用配置文件创建字典。请使用 DDL(见上文),并使用 `default` 用户创建字典。 +::: + +字典配置文件的格式如下: + +```xml + + An optional element with any content. Ignored by the ClickHouse server. + + + /etc/metrika.xml + + + + + + + + +``` + +可以在同一个文件中配置任意数量的字典。 + + +## 相关内容 \{#related-content\} + +- [Layouts](/sql-reference/statements/create/dictionary/layouts) — 字典在内存中的存储方式 +- [Sources](/sql-reference/statements/create/dictionary/sources) — 连接到数据源 +- [Lifetime](./lifetime.md) — 自动刷新设置 +- [Attributes](./attributes.md) — 键与属性配置 +- [Embedded Dictionaries](./embedded.md) — 内置地理位置字典 +- [system.dictionaries](../../../../operations/system-tables/dictionaries.md) — 包含字典信息的系统表 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md new file mode 100644 index 00000000000..dce43ba32aa --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/cassandra.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/cassandra +title: 'Cassandra 字典源' +sidebar_position: 11 +sidebar_label: 'Cassandra' +description: '在 ClickHouse 中将 Cassandra 配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +设置示例: + + + + ```sql + SOURCE(CASSANDRA( + host 'localhost' + port 9042 + user 'username' + password 'qwerty123' + keyspace 'database_name' + column_family 'table_name' + allow_filtering 1 + partition_key_prefix 1 + consistency 'One' + where '"SomeColumn" = 42' + max_threads 8 + query 'SELECT id, value_1, value_2 FROM database_name.table_name' + )) + ``` + + + + ```xml + + + localhost + 9042 + username + qwerty123 + database_name + table_name + 1 + 1 + One + "SomeColumn" = 42 + 8 + SELECT id, value_1, value_2 FROM database_name.table_name + + + ``` + + + +设置字段: + +| Setting | Description | +| ---------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `host` | Cassandra 主机或以逗号分隔的主机列表。 | +| `port` | Cassandra 服务器上的端口。如果未指定,则使用默认端口 `9042`。 | +| `user` | Cassandra 用户名。 | +| `password` | Cassandra 用户的密码。 | +| `keyspace` | keyspace(数据库)的名称。 | +| `column_family` | 列族(表)的名称。 | +| `allow_filtering` | 是否允许在聚簇键列上使用潜在代价较高条件的标记。默认值为 `1`。 | +| `partition_key_prefix` | Cassandra 表主键中分区键列的数量。对复合键字典是必需的。字典定义中的键列顺序必须与 Cassandra 中的顺序相同。默认值为 `1`(第一个键列为分区键,其余键列为聚簇键)。 | +| `consistency` | 一致性级别。可用值:`One`、`Two`、`Three`、`All`、`EachQuorum`、`Quorum`、`LocalQuorum`、`LocalOne`、`Serial`、`LocalSerial`。默认值为 `One`。 | +| `where` | 可选的筛选条件。 | +| `max_threads` | 在复合键字典中从多个分区加载数据时使用的最大线程数。 | +| `query` | 自定义查询。可选。 | + +:::note +`column_family` 或 `where` 字段不能与 `query` 字段同时使用,并且必须声明 `column_family` 或 `query` 字段中的一个。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md new file mode 100644 index 00000000000..b882c9a05cd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/clickhouse.md @@ -0,0 +1,70 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/clickhouse +title: 'ClickHouse 字典源' +sidebar_position: 8 +sidebar_label: 'ClickHouse' +description: '将 ClickHouse 表配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +配置示例: + + + + ```sql + SOURCE(CLICKHOUSE( + host 'example01-01-1' + port 9000 + user 'default' + password '' + db 'default' + table 'ids' + where 'id=10' + secure 1 + query 'SELECT id, value_1, value_2 FROM default.ids' + )); + ``` + + + + ```xml + + + example01-01-1 + 9000 + default + + default +
    ids
    + id=10 + 1 + SELECT id, value_1, value_2 FROM default.ids + + + ``` + + + +
    + +设置字段: + +| Setting | Description | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| `host` | ClickHouse 主机。如果是本地主机,查询会在没有任何网络活动的情况下被处理。为提高容错性,可以创建一个 [Distributed](/engines/table-engines/special/distributed) 表,并在后续配置中使用它。 | +| `port` | ClickHouse 服务器上的端口。 | +| `user` | ClickHouse 用户名。 | +| `password` | ClickHouse 用户的密码。 | +| `db` | 数据库名称。 | +| `table` | 表名。 | +| `where` | 选择条件。可选。 | +| `invalidate_query` | 用于检查字典状态的查询。可选。更多信息参见 [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime) 章节。 | +| `secure` | 使用 SSL 进行连接。 | +| `query` | 自定义查询。可选。 | + +:::note +`table` 或 `where` 字段不能与 `query` 字段同时使用。并且 `table` 和 `query` 字段中必须至少声明一个。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md new file mode 100644 index 00000000000..1dfe8e1925a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-file.md @@ -0,0 +1,54 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-file +title: '可执行文件字典源' +sidebar_position: 3 +sidebar_label: '可执行文件' +description: '在 ClickHouse 中将可执行文件配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +与可执行文件配合使用的方式取决于[字典在内存中的存储方式](../layouts/)。如果字典使用 `cache` 和 `complex_key_cache` 存储,ClickHouse 会通过向可执行文件的 STDIN 发送请求来请求所需的键。否则,ClickHouse 会启动该可执行文件,并将其输出视为字典数据。 + +设置示例: + + + + ```sql + SOURCE(EXECUTABLE( + command 'cat /opt/dictionaries/os.tsv' + format 'TabSeparated' + implicit_key false + )) + ``` + + + + ```xml + + + cat /opt/dictionaries/os.tsv + TabSeparated + false + + + ``` + + + +设置项说明: + +| Setting | Description | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 可执行文件的绝对路径,或者文件名(如果该命令所在目录在 `PATH` 中)。 | +| `format` | 文件格式。支持 [Formats](/sql-reference/formats) 中描述的所有格式。 | +| `command_termination_timeout` | 可执行脚本应包含一个主读写循环。在字典被销毁后,管道会被关闭,此时可执行文件有 `command_termination_timeout` 秒的时间自行关闭,然后 ClickHouse 才会向子进程发送 SIGTERM 信号。以秒为单位指定。默认值为 `10`。可选。 | +| `command_read_timeout` | 从命令的 stdout 读取数据的超时时间(毫秒)。默认值为 `10000`。可选。 | +| `command_write_timeout` | 向命令的 stdin 写入数据的超时时间(毫秒)。默认值为 `10000`。可选。 | +| `implicit_key` | 可执行源文件可以只返回值,与请求键之间的对应关系由结果中行的顺序隐式确定。默认值为 `false`。 | +| `execute_direct` | 如果 `execute_direct` = `1`,则会在由 [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path) 指定的 user_scripts 目录中搜索 `command`。可以使用空格分隔符指定额外的脚本参数。例如:`script_name arg1 arg2`。如果 `execute_direct` = `0`,`command` 会作为 `bin/sh -c` 的参数传入。默认值为 `0`。可选。 | +| `send_chunk_header` | 控制在发送一个数据块之前,是否先发送其行数。默认值为 `false`。可选。 | + +该字典源只能通过 XML 配置进行设置。通过 DDL 创建使用 executable 源的字典已被禁用;否则,数据库用户将能够在 ClickHouse 节点上执行任意二进制文件。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md new file mode 100644 index 00000000000..29a45eb427b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/executable-pool.md @@ -0,0 +1,72 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/executable-pool +title: 'Executable Pool 字典源' +sidebar_position: 4 +sidebar_label: 'Executable Pool' +description: '在 ClickHouse 中将 Executable Pool 配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Executable pool 允许从一组进程中加载数据。 +该字典源不适用于需要从源一次性加载全部数据的字典布局。 + +当字典[存储](../layouts/#ways-to-store-dictionaries-in-memory)为以下任一布局时,Executable pool 可以工作: + +* `cache` +* `complex_key_cache` +* `ssd_cache` +* `complex_key_ssd_cache` +* `direct` +* `complex_key_direct` + +Executable pool 会使用指定的命令启动一组进程,并保持它们运行直到退出。程序应在 STDIN 有数据时从中读取,并将结果输出到 STDOUT。它可以在 STDIN 上等待下一批数据。ClickHouse 在处理完一批数据后不会关闭 STDIN,而是在需要时通过管道传输下一块数据。可执行脚本应适应这种数据处理方式 —— 它应轮询 STDIN,并尽早将数据刷新到 STDOUT。 + +设置示例: + + + + ```sql + SOURCE(EXECUTABLE_POOL( + command 'while read key; do printf "$key\tData for key $key\n"; done' + format 'TabSeparated' + pool_size 10 + max_command_execution_time 10 + implicit_key false + )) + ``` + + + + ```xml + + + while read key; do printf "$key\tData for key $key\n"; done + TabSeparated + 10 + 10 + false + + + ``` + + + +设置字段: + +| Setting | Description | +| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | 可执行文件的绝对路径,或文件名(如果程序目录已加入 `PATH`)。 | +| `format` | 文件格式。支持 [Formats](/sql-reference/formats) 中描述的所有格式。 | +| `pool_size` | 进程池大小。如果将 `pool_size` 指定为 0,则不限制进程池大小。默认值为 `16`。 | +| `command_termination_timeout` | 可执行脚本应包含主读写循环。在字典被销毁后,管道会被关闭,此时可执行程序有 `command_termination_timeout` 秒时间正常退出,然后 ClickHouse 才会向子进程发送 SIGTERM 信号。以秒为单位。默认值为 `10`。可选。 | +| `max_command_execution_time` | 处理一块数据时,可执行脚本命令的最大执行时间。以秒为单位。默认值为 `10`。可选。 | +| `command_read_timeout` | 从命令 stdout 读取数据的超时时间(毫秒)。默认值为 `10000`。可选。 | +| `command_write_timeout` | 向命令 stdin 写入数据的超时时间(毫秒)。默认值为 `10000`。可选。 | +| `implicit_key` | 可执行源文件可以只返回值,对请求键的对应关系由结果中行的顺序隐式确定。默认值为 `false`。可选。 | +| `execute_direct` | 如果 `execute_direct` = `1`,则会在 [user_scripts_path](/operations/server-configuration-parameters/settings#user_scripts_path) 指定的 user_scripts 目录中查找 `command`。可以使用空格分隔符指定额外的脚本参数。例如:`script_name arg1 arg2`。如果 `execute_direct` = `0`,则将 `command` 作为 `bin/sh -c` 的参数传递。默认值为 `1`。可选。 | +| `send_chunk_header` | 控制在向进程发送一块数据之前是否先发送行数。默认值为 `false`。可选。 | + +该字典源只能通过 XML 配置进行配置。通过 DDL 创建带有 Executable 源的字典已被禁用,否则数据库用户将能够在 ClickHouse 节点上执行任意二进制文件。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md new file mode 100644 index 00000000000..0d8097759ea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/http.md @@ -0,0 +1,69 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/http +title: 'HTTP(S) 字典源' +sidebar_position: 5 +sidebar_label: 'HTTP(S)' +description: '将 HTTP 或 HTTPS 端点配置为 ClickHouse 的字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +与 HTTP(S) 服务器交互取决于[字典在内存中的存储方式](../layouts/)。如果字典是使用 `cache` 和 `complex_key_cache` 存储的,ClickHouse 会通过发送 `POST` 方法的请求来获取所需的键。 + +设置示例: + + + + ```sql + SOURCE(HTTP( + url 'http://[::1]/os.tsv' + format 'TabSeparated' + credentials(user 'user' password 'password') + headers(header(name 'API-KEY' value 'key')) + )) + ``` + + + + ```xml + + + http://[::1]/os.tsv + TabSeparated + + user + password + + +
    + API-KEY + key +
    +
    +
    + + ``` +
    +
    + +
    + +为了让 ClickHouse 访问 HTTPS 资源,必须在服务器配置中[配置 OpenSSL](/operations/server-configuration-parameters/settings#openssl)。 + +字段说明: + +| Setting | Description | +| ------------- | --------------------------------------------------- | +| `url` | 源 URL。 | +| `format` | 文件格式。支持 [Formats](/sql-reference/formats) 中描述的所有格式。 | +| `credentials` | 基本 HTTP 认证。可选。 | +| `user` | 认证所需的用户名。 | +| `password` | 认证所需的密码。 | +| `headers` | HTTP 请求中使用的所有自定义 HTTP 头部条目。可选。 | +| `header` | 单个 HTTP 头部条目。 | +| `name` | 在请求中发送的头部所使用的标识符名称。 | +| `value` | 为特定标识符名称设置的值。 | + +使用 DDL 命令(`CREATE DICTIONARY ...`)创建字典时,会根据配置中 `remote_url_allow_hosts` 部分的内容检查 HTTP 字典的远程主机,以防止数据库用户访问任意 HTTP 服务器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md new file mode 100644 index 00000000000..ec8bfc6b868 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/local-file.md @@ -0,0 +1,49 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/local-file +title: '本地文件字典源' +sidebar_position: 2 +sidebar_label: '本地文件' +description: '在 ClickHouse 中将本地文件配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +本地文件源从本地文件系统中的文件加载字典数据。对于体量较小且静态的查找表,如果可以以平面文件形式存储,例如 TSV、CSV 或任何其他[受支持的格式](/sql-reference/formats),这非常适用。 + +设置示例: + + + + ```sql + SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) + ``` + + + + ```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + + ``` + + + +
    + +配置项说明: + +| Setting | Description | +| -------- | ---------------------------------------------- | +| `path` | 文件的绝对路径。 | +| `format` | 文件格式。支持[格式](/sql-reference/formats)文档中描述的所有格式。 | + +当通过 DDL 命令(`CREATE DICTIONARY ...`)创建源为 `FILE` 的字典时,源文件必须位于 `user_files` 目录中,以防止数据库用户访问 ClickHouse 节点上的任意文件。 + +**另请参阅** + +* [字典函数](/sql-reference/table-functions/dictionary) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md new file mode 100644 index 00000000000..d117e7eef96 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mongodb.md @@ -0,0 +1,82 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mongodb +title: 'MongoDB 字典源' +sidebar_position: 9 +sidebar_label: 'MongoDB' +description: '将 MongoDB 配置为 ClickHouse 的字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +配置示例: + + + + ```sql + SOURCE(MONGODB( + host 'localhost' + port 27017 + user '' + password '' + db 'test' + collection 'dictionary_source' + options 'ssl=true' + )) + ``` + + 或使用 URI: + + ```sql + SOURCE(MONGODB( + uri 'mongodb://localhost:27017/clickhouse' + collection 'dictionary_source' + )) + ``` + + + + ```xml + + + localhost + 27017 + + + test + dictionary_source + ssl=true + + + ``` + + 或使用 URI: + + ```xml + + + mongodb://localhost:27017/test?ssl=true + dictionary_source + + + ``` + + + +
    + +Setting 字段: + +| Setting | Description | +| ------------ | --------------------------------------- | +| `host` | MongoDB 主机。 | +| `port` | MongoDB 服务器端口。 | +| `user` | MongoDB 用户名。 | +| `password` | MongoDB 用户密码。 | +| `db` | 数据库名称。 | +| `collection` | 集合名称。 | +| `options` | MongoDB 连接字符串选项(可选)。 | +| `uri` | 用于建立连接的 URI(作为单独 host/port/db 字段的替代方式)。 | + +[关于该引擎的更多信息](/engines/table-engines/integrations/mongodb) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md new file mode 100644 index 00000000000..498497f9ab1 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/mysql.md @@ -0,0 +1,132 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/mysql +title: 'MySQL 字典源' +sidebar_position: 7 +sidebar_label: 'MySQL' +description: '将 MySQL 配置为 ClickHouse 中的字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +设置示例: + + + + ```sql + SOURCE(MYSQL( + port 3306 + user 'clickhouse' + password 'qwerty' + replica(host 'example01-1' priority 1) + replica(host 'example01-2' priority 1) + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + 3306 + clickhouse + qwerty + + example01-1 + 1 + + + example01-2 + 1 + + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +设置字段: + +| Setting | 描述 | +| ------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `port` | MySQL 服务器端口。你可以为所有副本统一指定,或在每个副本配置部分(`` 内部)单独指定。 | +| `user` | MySQL USER 名称。你可以为所有副本统一指定,或在每个副本配置部分(`` 内部)单独指定。 | +| `password` | MySQL USER 的密码。你可以为所有副本统一指定,或在每个副本配置部分(`` 内部)单独指定。 | +| `replica` | 副本配置部分。可以有多个该配置段。 | +| `replica/host` | MySQL 主机地址。 | +| `replica/priority` | 副本优先级。在尝试连接时,ClickHouse 会按优先级顺序遍历副本。数字越小,优先级越高。 | +| `db` | 数据库名称。 | +| `table` | 表名称。 | +| `where` | 选择条件。条件语法与 MySQL 中 `WHERE` 子句相同,例如 `id > 10 AND id < 20`。可选。 | +| `invalidate_query` | 用于检查字典状态的查询。可选。详见章节 [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime)。 | +| `fail_on_connection_loss` | 控制服务器在连接丢失时的行为。如果为 `true`,当客户端与服务器之间的连接丢失时会立即抛出异常。如果为 `false`,ClickHouse 服务器会在抛出异常前重试执行该查询三次。请注意,重试会导致响应时间增加。默认值:`false`。 | +| `query` | 自定义查询。可选。 | + +:::note +`table` 或 `where` 字段不能与 `query` 字段一起使用。同时,`table` 与 `query` 字段中必须声明其中一个。 +::: + +:::note +不存在显式的 `secure` 参数。在建立 SSL 连接时,安全性是强制要求的。 +::: + +可以在本地主机上通过套接字连接到 MySQL。为此,请设置 `host` 和 `socket`。 + +设置示例: + + + + + +```sql +SOURCE(MYSQL( + host 'localhost' + socket '/path/to/socket/file.sock' + user 'clickhouse' + password 'qwerty' + db 'db_name' + table 'table_name' + where 'id=10' + invalidate_query 'SQL_QUERY' + fail_on_connection_loss 'true' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' +)) +``` + + + + +```xml + + + localhost + /path/to/socket/file.sock + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + true + SELECT id, value_1, value_2 FROM db_name.table_name +
    + +``` + +
    +
    \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md new file mode 100644 index 00000000000..3e8d471b91c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/null.md @@ -0,0 +1,24 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/null +title: 'Null 字典源' +sidebar_position: 14 +sidebar_label: 'Null' +description: '在 ClickHouse 中配置 Null(空)字典源以用于测试。' +doc_type: 'reference' +--- + +一种特殊的字典源,可用于创建虚拟(空)字典。 +虚拟字典对于测试场景,或在数据节点与查询节点分离且使用分布式表的部署中非常有用。 + +```sql +CREATE DICTIONARY null_dict ( + id UInt64, + val UInt8, + default_val UInt8 DEFAULT 123, + nullable_val Nullable(UInt8) +) +PRIMARY KEY id +SOURCE(NULL()) +LAYOUT(FLAT()) +LIFETIME(0); +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md new file mode 100644 index 00000000000..17f3d91cd9b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/odbc.md @@ -0,0 +1,289 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/odbc +title: 'ODBC 字典源' +sidebar_position: 6 +sidebar_label: 'ODBC' +description: '将 ODBC 连接配置为 ClickHouse 中的字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +你可以使用这种方法连接任何具有 ODBC 驱动的数据库。 + +设置示例: + + + + ```sql + SOURCE(ODBC( + db 'DatabaseName' + table 'SchemaName.TableName' + connection_string 'DSN=some_parameters' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + DatabaseName + ShemaName.TableName
    + DSN=some_parameters + SQL_QUERY + SELECT id, value_1, value_2 FROM ShemaName.TableName +
    + + ``` +
    +
    + +
    + +设置字段说明: + +| Setting | Description | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `db` | 数据库名称。如果在 `` 参数中已经设置了数据库名称,则可以省略。 | +| `table` | 表名,以及(如存在)对应的 schema 名称。 | +| `connection_string` | 连接字符串。 | +| `invalidate_query` | 用于检查字典状态的查询。可选。详情参见 [Refreshing dictionary data using LIFETIME](../lifetime.md#refreshing-dictionary-data-using-lifetime) 一节。 | +| `background_reconnect` | 当连接失败时,在后台重新连接到副本。可选。 | +| `query` | 自定义查询。可选。 | + +:::note +`table` 和 `query` 字段不能同时使用,并且二者中必须至少声明一个。 +::: + +ClickHouse 从 ODBC 驱动接收引号字符,并在发送给驱动的查询中为所有设置加上引号,因此需要确保这里配置的表名大小写与数据库中的表名完全一致。 + +如果在使用 Oracle 时遇到编码问题,请参阅相应的 [FAQ](/knowledgebase/oracle-odbc) 条目。 + +### ODBC 字典功能的已知漏洞 \{#known-vulnerability-of-the-odbc-dictionary-functionality\} + +:::note +通过 ODBC 驱动并使用连接参数 `Servername` 连接到数据库时,该参数可能被替换。在这种情况下,`odbc.ini` 中的 `USERNAME` 和 `PASSWORD` 会被发送到远程服务器,并有可能被泄露。 +::: + +**不安全用法示例** + +下面我们为 PostgreSQL 配置 unixODBC。`/etc/odbc.ini` 的内容如下: + +```text +[gregtest] +Driver = /usr/lib/psqlodbca.so +Servername = localhost +PORT = 5432 +DATABASE = test_db +#OPTION = 3 +USERNAME = test +PASSWORD = test +``` + +如果随后执行如下查询: + +```sql +SELECT * FROM odbc('DSN=gregtest;Servername=some-server.com', 'test_db'); +``` + +ODBC 驱动程序会把 `odbc.ini` 中的 `USERNAME` 和 `PASSWORD` 的值发送到 `some-server.com`。 + +### 连接 PostgreSQL 的示例 \{#example-of-connecting-postgresql\} + +在 Ubuntu 操作系统上。 + +安装 unixODBC 和 PostgreSQL 的 ODBC 驱动程序: + +```bash +$ sudo apt-get install -y unixodbc odbcinst odbc-postgresql +``` + +配置 `/etc/odbc.ini`(或者,如果是以运行 ClickHouse 的用户身份登录,则配置 `~/.odbc.ini`): + +```text + [DEFAULT] + Driver = myconnection + + [myconnection] + Description = PostgreSQL connection to my_db + Driver = PostgreSQL Unicode + Database = my_db + Servername = 127.0.0.1 + UserName = username + Password = password + Port = 5432 + Protocol = 9.3 + ReadOnly = No + RowVersioning = No + ShowSystemTables = No + ConnSettings = +``` + +ClickHouse 中的字典配置: + + + + ```sql + CREATE DICTIONARY table_name ( + id UInt64, + some_column UInt64 DEFAULT 0 + ) + PRIMARY KEY id + SOURCE(ODBC(connection_string 'DSN=myconnection' table 'postgresql_table')) + LAYOUT(HASHED()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + table_name + + + + + DSN=myconnection + postgresql_table
    +
    + + + 300 + 360 + + + + + + + id + + + some_column + UInt64 + 0 + + +
    +
    + ``` +
    +
    + +
    + +您可能需要编辑 `odbc.ini`,以指定驱动程序库的完整路径:`DRIVER=/usr/local/lib/psqlodbcw.so`。 + +### MS SQL Server 连接示例 \{#example-of-connecting-ms-sql-server\} + +Ubuntu 操作系统。 + +安装用于连接 MS SQL Server 的 ODBC 驱动程序: + +```bash +$ sudo apt-get install tdsodbc freetds-bin sqsh +``` + +配置驱动程序: + +```bash + $ cat /etc/freetds/freetds.conf + ... + + [MSSQL] + host = 192.168.56.101 + port = 1433 + tds version = 7.0 + client charset = UTF-8 + + # test TDS connection + $ sqsh -S MSSQL -D database -U user -P password + + + $ cat /etc/odbcinst.ini + + [FreeTDS] + Description = FreeTDS + Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so + Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so + FileUsage = 1 + UsageCount = 5 + + $ cat /etc/odbc.ini + # $ cat ~/.odbc.ini # if you signed in under a user that runs ClickHouse + + [MSSQL] + Description = FreeTDS + Driver = FreeTDS + Servername = MSSQL + Database = test + UID = test + PWD = test + Port = 1433 + + + # (optional) test ODBC connection (to use isql-tool install the [unixodbc](https://packages.debian.org/sid/unixodbc)-package) + $ isql -v MSSQL "user" "password" +``` + +备注: + +* 要确定特定 SQL Server 版本所支持的最低 TDS 版本,请参阅产品文档,或查看 [MS-TDS Product Behavior](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/135d0ebe-5c4c-4a94-99bf-1811eccb9f4a) + +在 ClickHouse 中配置字典: + + + + ```sql + CREATE DICTIONARY test ( + k UInt64, + s String DEFAULT '' + ) + PRIMARY KEY k + SOURCE(ODBC(table 'dict' connection_string 'DSN=MSSQL;UID=test;PWD=test')) + LAYOUT(FLAT()) + LIFETIME(MIN 300 MAX 360) + ``` + + + + ```xml + + + test + + + dict
    + DSN=MSSQL;UID=test;PWD=test +
    + + + + 300 + 360 + + + + + + + + + k + + + s + String + + + +
    +
    + ``` +
    +
    diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md new file mode 100644 index 00000000000..0d6941c3693 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/overview.md @@ -0,0 +1,106 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources +title: '字典数据源' +sidebar_position: 1 +sidebar_label: '概览' +doc_type: 'reference' +description: '字典数据源类型配置' +--- + +import CloudDetails from '@site/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/_snippet_dictionary_in_cloud.md'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +## 语法 \{#dictionary-sources\} + + + +可以将字典连接到 ClickHouse 中的多种不同数据源。 +数据源在配置文件的 `source` 部分中进行配置,在 DDL 语句中则通过 `SOURCE` 子句进行配置。 + + + + +```sql +CREATE DICTIONARY dict_name (...) +... +SOURCE(SOURCE_TYPE(param1 val1 ... paramN valN)) -- 数据源配置 +... +``` + + + + +```xml + + + ... + + + + + + ... + + ... + +``` + + + + +
    + +## 支持的字典数据源 \{#supported-dictionary-sources\} + +可用的源类型(`SOURCE_TYPE`/`source_type`)包括: + +- [本地文件](./local-file.md) +- [可执行文件](./executable-file.md) +- [可执行池](./executable-pool.md) +- [HTTP(S)](./http.md) +- 数据库管理系统(DBMS) + - [ODBC](./odbc.md) + - [MySQL](./mysql.md) + - [ClickHouse](./clickhouse.md) + - [MongoDB](./mongodb.md) + - [Redis](./redis.md) + - [Cassandra](./cassandra.md) + - [PostgreSQL](./postgresql.md) + - [YTsaurus](./ytsaurus.md) +- [YAMLRegExpTree](./yamlregexptree.md) +- [Null](./null.md) + +对于源类型 [本地文件](./local-file.md)、[可执行文件](./executable-file.md)、[HTTP(s)](./http.md)、[ClickHouse](./clickhouse.md), +可以使用可选的设置: + + + + +```sql +SOURCE(FILE(path './user_files/os.tsv' format 'TabSeparated')) +--highlight-next-line +SETTINGS(format_csv_allow_single_quotes = 0) +``` + + + + +```xml + + + /opt/dictionaries/os.tsv + TabSeparated + + +#highlight-next-line + 0 + + +``` + + + \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md new file mode 100644 index 00000000000..5c930b5ffdb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/postgresql.md @@ -0,0 +1,76 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/postgresql +title: 'PostgreSQL 字典源' +sidebar_position: 12 +sidebar_label: 'PostgreSQL' +description: '在 ClickHouse 中将 PostgreSQL 配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +设置示例: + + + + ```sql + SOURCE(POSTGRESQL( + port 5432 + host 'postgresql-hostname' + user 'postgres_user' + password 'postgres_password' + db 'db_name' + table 'table_name' + replica(host 'example01-1' port 5432 priority 1) + replica(host 'example01-2' port 5432 priority 2) + where 'id=10' + invalidate_query 'SQL_QUERY' + query 'SELECT id, value_1, value_2 FROM db_name.table_name' + )) + ``` + + + + ```xml + + + postgresql-hostname + 5432 + clickhouse + qwerty + db_name + table_name
    + id=10 + SQL_QUERY + SELECT id, value_1, value_2 FROM db_name.table_name +
    + + ``` +
    +
    + +
    + +设置字段: + +| Setting | Description | +| ---------------------- | ----------------------------------------------------------------------------------------------------- | +| `host` | PostgreSQL 服务器上的主机地址。可为所有副本统一指定,或者为每个副本单独指定(在 `` 内)。 | +| `port` | PostgreSQL 服务器上的端口。可为所有副本统一指定,或者为每个副本单独指定(在 `` 内)。 | +| `user` | PostgreSQL 用户名。可为所有副本统一指定,或者为每个副本单独指定(在 `` 内)。 | +| `password` | PostgreSQL 用户的密码。可为所有副本统一指定,或者为每个副本单独指定(在 `` 内)。 | +| `replica` | 副本配置部分。可以包含多个此类部分。 | +| `replica/host` | PostgreSQL 主机地址。 | +| `replica/port` | PostgreSQL 端口。 | +| `replica/priority` | 副本优先级。尝试连接时,ClickHouse 会按优先级顺序遍历副本。数字越小,优先级越高。 | +| `db` | 数据库名称。 | +| `table` | 表名称。 | +| `where` | 选择条件。条件语法与 PostgreSQL 中 `WHERE` 子句相同。例如,`id > 10 AND id < 20`。可选。 | +| `invalidate_query` | 用于检查字典状态的查询。可选。详情参见章节 [使用 LIFETIME 刷新字典数据](../lifetime.md#refreshing-dictionary-data-using-lifetime)。 | +| `background_reconnect` | 当连接失败时在后台重新连接到副本。可选。 | +| `query` | 自定义查询。可选。 | + +:::note +`table` 或 `where` 字段不能与 `query` 字段同时使用,并且必须声明 `table` 或 `query` 字段中的一个。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md new file mode 100644 index 00000000000..c233e64fb53 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/redis.md @@ -0,0 +1,50 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/redis +title: 'Redis 字典源' +sidebar_position: 10 +sidebar_label: 'Redis' +description: '在 ClickHouse 中将 Redis 配置为字典源。' +doc_type: 'reference' +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +设置示例: + + + + ```sql + SOURCE(REDIS( + host 'localhost' + port 6379 + storage_type 'simple' + db_index 0 + )) + ``` + + + + ```xml + + + localhost + 6379 + simple + 0 + + + ``` + + + +
    + +设置字段: + +| Setting | Description | +| -------------- | ------------------------------------------------------------------------------------------------------ | +| `host` | Redis 主机。 | +| `port` | Redis 服务器上的端口。 | +| `storage_type` | 用于处理键的 Redis 内部存储结构。`simple` 适用于简单源以及单键哈希源,`hash_map` 适用于具有两个键的哈希源。不支持范围源以及具有复杂键的缓存源。默认值为 `simple`。可选。 | +| `db_index` | Redis 逻辑数据库的特定数字索引。默认值为 `0`。可选。 | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md new file mode 100644 index 00000000000..6faff031195 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/yamlregexptree.md @@ -0,0 +1,79 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/yamlregexptree +title: 'YAMLRegExpTree 字典源' +sidebar_position: 15 +sidebar_label: 'YAMLRegExpTree' +description: '将 YAML 文件配置为正则表达式树字典的源。' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; + + + +`YAMLRegExpTree` 源会从本地文件系统中的 YAML 文件加载一个正则表达式树。 +它专门用于与 [`regexp_tree`](../layouts/regexp-tree.md) 字典布局配合使用, +并为基于模式的查找(例如 User-Agent 解析)提供分层的正则表达式到属性的映射。 + +:::note +`YAMLRegExpTree` 源仅在 ClickHouse 开源版本中可用。 +对于 ClickHouse Cloud,请先将字典导出为 CSV,然后通过 [ClickHouse table source](./clickhouse.md) 加载。 +详情参见 [在 ClickHouse Cloud 中使用 regexp_tree 字典](../layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud)。 +::: + + +## 配置 \{#configuration\} + +```sql +CREATE DICTIONARY regexp_dict +( + regexp String, + name String, + version String +) +PRIMARY KEY(regexp) +SOURCE(YAMLRegExpTree(PATH '/var/lib/clickhouse/user_files/regexp_tree.yaml')) +LAYOUT(regexp_tree) +LIFETIME(0); +``` + +设置字段: + +| Setting | Description | +| ------- | -------------------------------------------------------------- | +| `PATH` | 指向包含正则表达式树的 YAML 文件的绝对路径。在通过 DDL 创建时,该文件必须位于 `user_files` 目录中。 | + + +## YAML 文件结构 \{#yaml-file-structure\} + +YAML 文件包含一个正则表达式树的节点列表。每个节点都可以具有属性和子节点,从而形成一个层级结构: + +```yaml +- regexp: 'Linux/(\d+[\.\d]*).+tlinux' + name: 'TencentOS' + version: '\1' + +- regexp: '\d+/tclwebkit(?:\d+[\.\d]*)' + name: 'Android' + versions: + - regexp: '33/tclwebkit' + version: '13' + - regexp: '3[12]/tclwebkit' + version: '12' + - regexp: '30/tclwebkit' + version: '11' + - regexp: '29/tclwebkit' + version: '10' +``` + +每个节点具有以下结构: + +* **`regexp`**:该节点对应的正则表达式。 +* **attributes**:用户自定义的字典属性(例如 `name`、`version`)。属性值可以包含对正则表达式中捕获组的**反向引用**,写作 `\1` 或 `$1`(数字 1-9)。这些引用会在查询时被替换为相应的匹配捕获组。 +* **child nodes**:子节点列表,每个子节点都有自己的属性,并且可以选择包含更多子节点。子节点列表的名称是任意的(例如上面的 `versions`)。字符串匹配以深度优先的方式进行:如果某个字符串匹配到某个节点,其子节点也会被检查。最深层匹配节点的属性优先级最高,会覆盖同名的父节点属性。 + + +## 相关页面 \{#related-pages\} + +- [regexp_tree 字典布局](../layouts/regexp-tree.md) — 布局配置、查询示例和匹配模式 +- [dictGet](/sql-reference/functions/ext-dict-functions#dictGet), [dictGetAll](/sql-reference/functions/ext-dict-functions#dictGetAll) — 用于查询 regexp_tree 字典的函数 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md new file mode 100644 index 00000000000..88832d6a902 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/create/dictionary/sources/ytsaurus.md @@ -0,0 +1,59 @@ +--- +slug: /sql-reference/statements/create/dictionary/sources/ytsaurus +title: 'YTsaurus 字典源' +sidebar_position: 13 +sidebar_label: 'YTsaurus' +description: '在 ClickHouse 中将 YTsaurus 配置为字典源。' +doc_type: 'reference' +--- + +import ExperimentalBadge from '@theme/badges/ExperimentalBadge'; +import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + +:::info +这是一个实验性特性,在未来的版本中可能会进行不向后兼容的更改。 +通过设置 [`allow_experimental_ytsaurus_dictionary_source`](/operations/settings/settings#allow_experimental_ytsaurus_dictionary_source) 启用对 YTsaurus 字典源的使用。 +::: + +设置示例: + + + + ```sql + SOURCE(YTSAURUS( + http_proxy_urls 'http://localhost:8000' + cypress_path '//tmp/test' + oauth_token 'password' + )) + ``` + + + + ```xml + + + http://localhost:8000 + //tmp/test + password + 1 + + + ``` + + + +
    + +设置字段: + +| Setting | Description | +| ----------------- | ------------------------- | +| `http_proxy_urls` | 指向 YTsaurus HTTP 代理的 URL。 | +| `cypress_path` | 表源的 Cypress 路径。 | +| `oauth_token` | OAuth 令牌。 | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md index 8b2da492338..283ab9f36fc 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/detach.md @@ -79,4 +79,4 @@ Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table defa **另请参阅** * [物化视图](/sql-reference/statements/create/view#materialized-view) -* [字典](../../sql-reference/dictionaries/index.md) +* [字典](./create/dictionary/index.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md index db26a9cdf8e..596518033bf 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/exchange.md @@ -104,4 +104,4 @@ EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster] **另请参阅** -* [字典](../../sql-reference/dictionaries/index.md) +* [字典](./create/dictionary/index.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md index 3a0b72b7b60..cf7c8481045 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/optimize.md @@ -19,6 +19,10 @@ doc_type: 'reference' OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL | FORCE] [DEDUPLICATE [BY expression]] ``` +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + `OPTIMIZE` 查询支持 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 系列表引擎(包括 [materialized views](/sql-reference/statements/create/view#materialized-view))以及 [Buffer](../../engines/table-engines/special/buffer.md) 引擎。其他表引擎不支持。 当在 [ReplicatedMergeTree](../../engines/table-engines/mergetree-family/replication.md) 系列表引擎中使用 `OPTIMIZE` 时,ClickHouse 会创建一个合并任务,并在所有副本上等待其执行完成(如果 [alter_sync](/operations/settings/settings#alter_sync) 设置为 `2`),或者只在当前副本上等待(如果 [alter_sync](/operations/settings/settings#alter_sync) 设置为 `1`)。 @@ -34,6 +38,55 @@ OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION I 如果 `alter_sync` 设置为 `2`,并且某些副本处于非活动状态的时间超过 `replication_wait_for_inactive_replica_timeout` 设置指定的时长,则会抛出 `UNFINISHED` 异常。 ::: +## DRY RUN \{#dry-run\} + +`DRY RUN` 子句会模拟合并指定的分区片段,而不提交结果。合并后的分区片段会被写入到临时位置、进行校验,然后被丢弃。原始分区片段和表数据保持不变。 + +这在以下场景中非常有用: + +* 在不同 ClickHouse 版本之间测试合并的正确性。 +* 以确定性方式重现与合并相关的缺陷。 +* 对合并性能进行基准测试。 + +`DRY RUN` 仅支持 [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) 家族的表。必须使用带有分区片段名称列表的 `PARTS` 关键字。所有指定的分区片段必须存在、处于活动状态,并且属于同一分区。 + +`DRY RUN` 与 `FINAL` 和 `PARTITION` 不兼容。它可以与 `DEDUPLICATE`(可选列指定)以及 `CLEANUP`(用于 `ReplacingMergeTree` 表)组合使用。 + +**语法** + +```sql +OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] +``` + +默认情况下,合并生成的分片会以类似于 [`CHECK TABLE`](/sql-reference/statements/check-table) 查询的方式进行校验。此行为由 [optimize_dry_run_check_part](/operations/settings/settings#optimize_dry_run_check_part) SETTING 控制(默认启用)。禁用该设置会跳过校验,这在对合并过程本身进行基准测试时很有用。 + +**示例** + +```sql +CREATE TABLE dry_run_example (key UInt64, value String) ENGINE = MergeTree ORDER BY key; + +INSERT INTO dry_run_example VALUES (1, 'a'), (2, 'b'); +INSERT INTO dry_run_example VALUES (1, 'c'), (4, 'd'); + +-- Simulate merging using two parts +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0'; + +-- Simulate merging with deduplication +OPTIMIZE TABLE dry_run_example DRY RUN PARTS 'all_1_1_0', 'all_2_2_0' DEDUPLICATE; + +-- Parts and data remain unchanged after DRY RUN +SELECT name, rows FROM system.parts +WHERE database = currentDatabase() AND table = 'dry_run_example' AND active +ORDER BY name; +``` + +```response +┌─name────────┬─rows─┐ +│ all_1_1_0 │ 2 │ +│ all_2_2_0 │ 2 │ +└─────────────┴──────┘ +``` + ## BY 表达式 \{#by-expression\} 如果希望仅在自定义的一组列上执行去重,而不是在所有列上去重,可以显式指定列列表,或者使用任意组合的 [`*`](../../sql-reference/statements/select/index.md#asterisk)、[`COLUMNS`](/sql-reference/statements/select#select-clause) 或 [`EXCEPT`](/sql-reference/statements/select/except-modifier) 表达式。显式写出或隐式展开得到的列列表必须包含行排序表达式中指定的所有列(包括主键和排序键)以及分区表达式中指定的所有列(分区键)。 @@ -59,7 +112,7 @@ OPTIMIZE TABLE table DEDUPLICATE BY COLUMNS('column-matched-by-regex') EXCEPT (c **示例** -请看下列表: +请考虑如下表: ```sql CREATE TABLE example ( @@ -105,7 +158,7 @@ SELECT * FROM example; #### `DEDUPLICATE` \{#deduplicate\} -当未指定用于去重的列时,将使用所有列进行去重。只有当该行所有列的值都与前一行对应列的值完全相同时,该行才会被移除: +当未指定用于去重的列时,将会考虑所有列。只有当某行中所有列的值都等于前一行中对应列的值时,该行才会被删除: ```sql OPTIMIZE TABLE example FINAL DEDUPLICATE; diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md index 873c9dfe599..044c7665f74 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/rename.md @@ -65,4 +65,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **另请参阅** -* [字典](../../sql-reference/dictionaries/index.md) +* [字典](./create/dictionary/index.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md index d559dbc8721..d5f1cf3414d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/select/join.md @@ -488,7 +488,7 @@ SELECT a, b, toTypeName(a), toTypeName(b) FROM t_1 FULL JOIN t_2 USING (a, b); 在某些情况下,使用 [IN](../../../sql-reference/operators/in.md) 比使用 `JOIN` 更高效。 -如果你需要通过 `JOIN` 与维度表进行关联(这些是相对较小的表,包含维度属性,例如广告活动名称),由于每次查询都会重新访问右表,`JOIN` 可能不是很方便。对于这类场景,应使用 “字典(dictionaries)” 功能来替代 `JOIN`。更多信息请参阅 [Dictionaries](../../../sql-reference/dictionaries/index.md) 章节。 +如果你需要通过 `JOIN` 与维度表进行关联(这些是相对较小的表,包含维度属性,例如广告活动名称),由于每次查询都会重新访问右表,`JOIN` 可能不是很方便。对于这类场景,应使用 “字典(dictionaries)” 功能来替代 `JOIN`。更多信息请参阅 [Dictionaries](../../create/dictionary/index.md) 章节。 ### 内存限制 \{#memory-limitations\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md index c5695e3ddbb..469a60b32c3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/show.md @@ -247,7 +247,7 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%' ## SHOW DICTIONARIES \{#show-dictionaries\} -`SHOW DICTIONARIES` 语句用于显示 [字典(Dictionaries)](../../sql-reference/dictionaries/index.md) 的列表。 +`SHOW DICTIONARIES` 语句用于显示 [字典(Dictionaries)](./create/dictionary/index.md) 的列表。 ### 语法 \{#syntax-4\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md index 5788df384dc..7df701184b3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/statements/system.md @@ -13,7 +13,7 @@ import CloudNotSupportedBadge from '@theme/badges/CloudNotSupportedBadge'; ## SYSTEM RELOAD EMBEDDED DICTIONARIES \{#reload-embedded-dictionaries\} -重新加载所有[内部字典](../../sql-reference/dictionaries/index.md)。 +重新加载所有[内部字典](./create/dictionary/index.md)。 默认情况下,内部字典处于禁用状态。 无论内部字典更新结果如何,此命令始终返回 `Ok.`。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md index 39c3e4f1cf9..08900e536d5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/dictionary.md @@ -9,7 +9,7 @@ doc_type: 'reference' # dictionary 表函数 \{#dictionary-table-function\} -将 [dictionary](../../sql-reference/dictionaries/index.md) 数据以 ClickHouse 表的形式呈现。其工作方式与 [Dictionary](../../engines/table-engines/special/dictionary.md) 引擎相同。 +将 [dictionary](../statements/create/dictionary/index.md) 数据以 ClickHouse 表的形式呈现。其工作方式与 [Dictionary](../../engines/table-engines/special/dictionary.md) 引擎相同。 ## 语法 \{#syntax\} @@ -17,6 +17,7 @@ doc_type: 'reference' dictionary('dict') ``` + ## 参数 \{#arguments\} - `dict` — 字典名。[String](../../sql-reference/data-types/string.md)。 @@ -58,6 +59,7 @@ SELECT * FROM dictionary('new_dictionary'); └────┴───────┘ ``` + ## 相关内容 \{#related\} -- [Dictionary 引擎](/engines/table-engines/special/dictionary) +- [Dictionary 引擎](/engines/table-engines/special/dictionary) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md index c12d0e45088..b1a45020d83 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/iceberg.md @@ -427,7 +427,7 @@ y: 993 ### 模式演进 \{#iceberg-writes-schema-evolution\} -ClickHouse 允许对具有简单类型(非 tuple、非 array、非 map)的列执行添加、删除或修改操作。 +ClickHouse 允许对具有简单类型(非 tuple、非 array、非 map)的列执行添加、删除、修改或重命名操作。 ### 示例 \{#example-iceberg-writes-evolution\} @@ -486,8 +486,30 @@ Row 1: ────── x: Ivanov y: 993 + +ALTER TABLE iceberg_writes_example RENAME COLUMN y TO value; +SHOW CREATE TABLE iceberg_writes_example; + + ┌─statement─────────────────────────────────────────────────┐ +1. │ CREATE TABLE default.iceberg_writes_example ↴│ + │↳( ↴│ + │↳ `x` Nullable(String), ↴│ + │↳ `value` Nullable(Int64) ↴│ + │↳) ↴│ + │↳ENGINE = IcebergLocal('/home/scanhex12/iceberg_example/') │ + └───────────────────────────────────────────────────────────┘ + +SELECT * +FROM iceberg_writes_example +FORMAT VERTICAL; + +Row 1: +────── +x: Ivanov +value: 993 ``` + ### 合并整理(Compaction) \{#iceberg-writes-compaction\} ClickHouse 支持对 Iceberg 表进行合并整理(compaction)。当前,它可以在更新元数据的同时,将 position delete 文件合并到数据文件中。先前的快照 ID 和时间戳保持不变,因此仍然可以使用相同的值进行时间旅行(time travel)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md index 3142b934051..a2221709d7b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mongodb.md @@ -129,4 +129,4 @@ SELECT * FROM mongodb( ## 相关 \{#related\} - [`MongoDB` 表引擎](engines/table-engines/integrations/mongodb.md) -- [将 MongoDB 用作字典源](sql-reference/dictionaries/index.md#mongodb) \ No newline at end of file +- [将 MongoDB 用作字典源](../statements/create/dictionary/sources.md#mongodb) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md index 7eb06fc0e03..e3f2f0e9525 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/mysql.md @@ -17,6 +17,7 @@ doc_type: 'reference' mysql({host:port, database, table, user, password[, replace_query, on_duplicate_clause] | named_collection[, option=value [,..]]}) ``` + ## 参数 \{#arguments\} | Argument | Description | @@ -47,6 +48,7 @@ SELECT name FROM mysql(`mysql{1|2|3}:3306`, 'mysql_database', 'mysql_table', 'us SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database', 'mysql_table', 'user', 'password'); ``` + ## 返回值 \{#returned_value\} 一个表对象,其列与原始 MySQL 表相同。 @@ -103,7 +105,7 @@ SELECT * FROM mysql(creds, table='test'); └────────┴───────┘ ``` -替换与插入: +替换和插入: ```sql INSERT INTO FUNCTION mysql('localhost:3306', 'test', 'test', 'bayonet', '123', 1) (int_id, float) VALUES (1, 3); @@ -142,11 +144,12 @@ SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password') WHERE id > (SELECT max(id) FROM mysql_copy); ``` + ## 相关内容 \{#related\} - [`MySQL` 表引擎](../../engines/table-engines/integrations/mysql.md) -- [将 MySQL 用作字典源](/sql-reference/dictionaries#mysql) +- [将 MySQL 用作字典源](/sql-reference/statements/create/dictionary/sources#mysql) - [mysql_datatypes_support_level](operations/settings/settings.md#mysql_datatypes_support_level) - [mysql_map_fixed_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_fixed_string_to_text_in_show_columns) - [mysql_map_string_to_text_in_show_columns](operations/settings/settings.md#mysql_map_string_to_text_in_show_columns) -- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) +- [mysql_max_rows_to_insert](operations/settings/settings.md#mysql_max_rows_to_insert) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md index 72a662cf00f..7926a9c1fc3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/odbc.md @@ -19,6 +19,7 @@ odbc(datasource, external_table) odbc(named_collection) ``` + ## 参数 \{#arguments\} | 参数 | 描述 | @@ -65,7 +66,7 @@ USERNAME = clickhouse PASSWORD = clickhouse ``` -可以使用 unixODBC 安装中提供的 `isql` 工具来检查连接。 +可以使用 unixODBC 安装提供的 `isql` 工具来验证连接。 ```bash $ isql -v mysqlconn @@ -110,7 +111,8 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test') └────────┴──────────────┴───────┴────────────────┘ ``` + ## 另请参阅 \{#see-also\} -- [ODBC 字典](/sql-reference/dictionaries#dbms) -- [ODBC 表引擎](/engines/table-engines/integrations/odbc). +- [ODBC 字典](/sql-reference/statements/create/dictionary/sources#dbms) +- [ODBC 表引擎](/engines/table-engines/integrations/odbc). \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md index ba6f129142f..7d710c0d67d 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/postgresql.md @@ -17,6 +17,7 @@ doc_type: 'reference' postgresql({host:port, database, table, user, password[, schema, [, on_conflict]] | named_collection[, option=value [,..]]}) ``` + ## 参数 \{#arguments\} | 参数 | 描述 | @@ -61,7 +62,7 @@ PostgreSQL 的数组类型会被转换为 ClickHouse 的数组。 SELECT name FROM postgresql(`postgres{1|2|3}:5432`, 'postgres_database', 'postgres_table', 'user', 'password'); ``` -或 +或者 ```sql SELECT name FROM postgresql(`postgres1:5431|postgres2:5432`, 'postgres_database', 'postgres_table', 'user', 'password'); @@ -69,6 +70,7 @@ SELECT name FROM postgresql(`postgres1:5431|postgres2:5432`, 'postgres_database' 支持为 PostgreSQL 字典数据源设置副本优先级。`map` 中数值越大,优先级越低,最高优先级为 `0`。 + ## 示例 \{#examples\} PostgreSQL 中的表: @@ -147,11 +149,12 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) ENGINE PostgreSQL('localhost:5432', 'clickhouse', 'nice.table', 'postgrsql_user', 'password', 'nice.schema'); ``` + ## 相关 \{#related\} - [PostgreSQL 表引擎](../../engines/table-engines/integrations/postgresql.md) -- [将 PostgreSQL 用作字典源](/sql-reference/dictionaries#postgresql) +- [将 PostgreSQL 用作字典源](/sql-reference/statements/create/dictionary/sources#postgresql) ### 使用 PeerDB 复制或迁移 Postgres 数据 \{#replicating-or-migrating-postgres-data-with-with-peerdb\} -> 除了表函数之外,您还可以使用 ClickHouse 的 [PeerDB](https://docs.peerdb.io/introduction) 来搭建一条从 Postgres 到 ClickHouse 的持续数据管道。PeerDB 是一款专门为基于变更数据捕获(CDC)机制,将数据从 Postgres 复制到 ClickHouse 而设计的工具。 +> 除了表函数之外,您还可以使用 ClickHouse 的 [PeerDB](https://docs.peerdb.io/introduction) 来搭建一条从 Postgres 到 ClickHouse 的持续数据管道。PeerDB 是一款专门为基于变更数据捕获(CDC)机制,将数据从 Postgres 复制到 ClickHouse 而设计的工具。 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md index 95c97672704..7d94b3e35a5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/table-functions/redis.md @@ -17,6 +17,7 @@ doc_type: 'reference' redis(host:port, key, structure[, db_index[, password[, pool_size]]]) ``` + ## 参数 \{#arguments\} | Argument | Description | @@ -59,7 +60,8 @@ INSERT INTO TABLE FUNCTION redis( 'key String, v1 String, v2 UInt32') values ('1', '1', 1); ``` + ## 相关 \{#related\} - [`Redis` 表引擎](/engines/table-engines/integrations/redis.md) -- [将 Redis 用作字典源](/sql-reference/dictionaries/index.md#redis) +- [将 Redis 用作字典源](/sql-reference/statements/create/dictionary/sources#redis) \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md index f1d14bb56e6..92e771c091a 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/sql-reference/window-functions/index.md @@ -50,9 +50,13 @@ ClickHouse 还提供以下特定窗口函数: ```text aggregate_function (column_name) OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column] - [ROWS or RANGE expression_to_bound_rows_withing_the_group]] | [window_name]) + [ROWS or RANGE expression_to_bound_rows_within_the_group]] | [window_name]) FROM table_name -WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]]) +WINDOW window_name as ([ + [PARTITION BY grouping_column] + [ORDER BY sorting_column] + [ROWS or RANGE expression_to_bound_rows_within_the_group] +]) ``` * `PARTITION BY` - 定义如何将结果集划分为多个组。 @@ -90,6 +94,7 @@ WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column] * [`lagInFrame(x)`](./lagInFrame.md) - 返回在其有序窗口中,相对于当前行之前指定物理偏移量那一行计算得到的值。 * [`leadInFrame(x)`](./leadInFrame.md) - 返回在其有序窗口中,相对于当前行之后指定偏移量那一行计算得到的值。 + ## 示例 \{#examples\} 我们来看一些使用窗口函数的示例。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/tutorial.md b/i18n/zh/docusaurus-plugin-content-docs/current/tutorial.md index bf696941e73..8e6f56f8629 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/tutorial.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/tutorial.md @@ -142,9 +142,9 @@ doc_type: 'guide' ") SETTINGS input_format_try_infer_datetimes = 0 ``` - 2. 等待 `INSERT` 完成。下载这 150 MB 的数据可能需要片刻时间。 + 2. 等待 `INSERT` 完成。下载这 150 MB 的数据可能需要一点时间。 - 3. 插入完成后,检查其是否成功: + 3. 插入完成后,验证是否成功: ```sql SELECT count() FROM trips @@ -156,7 +156,7 @@ doc_type: 'guide' 运行一些查询来分析数据。探索以下示例或尝试你自己的 SQL 查询。 - * 计算小费的平均金额: + * 计算平均小费金额: ```sql SELECT round(avg(tip_amount), 2) FROM trips @@ -174,7 +174,7 @@ doc_type: 'guide'

    - * 根据乘客数量计算人均费用: + * 按乘客数量计算平均费用: ```sql SELECT @@ -369,7 +369,7 @@ doc_type: 'guide' ## 创建字典 - 字典是一种存储在内存中的键值对映射。有关详细信息,请参阅 [字典](/sql-reference/dictionaries/index.md) + 字典是一种存储在内存中的键值对映射。有关详细信息,请参阅 [字典](/sql-reference/statements/create/dictionary) 在你的 ClickHouse 服务中创建一个与表关联的字典。 该表和字典基于一个 CSV 文件,该文件为纽约市的每个社区包含一行数据。 @@ -386,7 +386,7 @@ doc_type: 'guide' | 4 | 曼哈顿 | Alphabet City | Yellow Zone | | 5 | 斯塔滕岛 | Arden Heights | Boro Zone | - 1. 运行以下 SQL 命令,以创建一个名为 `taxi_zone_dictionary` 的字典,并从 S3 中的 CSV 文件为该字典加载数据。该文件的 URL 为 `https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv`。 + 1. 运行以下 SQL 命令,用于创建一个名为 `taxi_zone_dictionary` 的字典,并从 S3 中的 CSV 文件为该字典填充数据。该文件的 URL 为 `https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv`。 ```sql CREATE DICTIONARY taxi_zone_dictionary @@ -403,7 +403,7 @@ doc_type: 'guide' ``` :::note - 将 `LIFETIME` 设置为 0 会禁用自动更新,以避免对我们的 S3 存储桶产生不必要的流量。在其他情况下,您可能会以不同方式进行配置。有关详细信息,请参阅[使用 LIFETIME 刷新字典数据](/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime)。 + 将 `LIFETIME` 设置为 0 会禁用自动更新,以避免对我们的 S3 存储桶产生不必要的流量。在其他情况下,您可能会以不同方式进行配置。有关详细信息,请参阅[使用 LIFETIME 刷新字典数据](/sql-reference/statements/create/dictionary/lifetime#refreshing-dictionary-data-using-lifetime)。 ::: 3. 验证其是否生效。下面的查询应该返回 265 行结果,每个社区对应一行: @@ -411,7 +411,7 @@ doc_type: 'guide' SELECT * FROM taxi_zone_dictionary ``` - 4. 使用 `dictGet` 函数([或其变体](./sql-reference/functions/ext-dict-functions.md))从字典中获取值。你需要传入字典的名称、要获取的字段名以及键(在我们的示例中是 `taxi_zone_dictionary` 的 `LocationID` 列)。 + 4. 使用 `dictGet` 函数([或其变体](./sql-reference/functions/ext-dict-functions.md))从字典中获取值。你需要传入字典的名称、要获取的值对应的列名以及键(在我们的示例中是 `taxi_zone_dictionary` 的 `LocationID` 列)。 例如,下面的查询将返回 `LocationID` 为 132 的 `Borough`(对应于 JFK 机场): @@ -419,7 +419,7 @@ doc_type: 'guide' SELECT dictGet('taxi_zone_dictionary', 'Borough', 132) ``` - JFK 位于 Queens 区。注意,检索该值所需的时间几乎为 0: + JFK 位于 Queens 行政区。请注意,检索该值所需的时间几乎为 0: ```response ┌─dictGet('taxi_zone_dictionary', 'Borough', 132)─┐ @@ -429,12 +429,12 @@ doc_type: 'guide' 1 rows in set. Elapsed: 0.004 sec. ``` - 5. 使用 `dictHas` 函数用于检查某个键是否存在于字典中。例如,下面的查询返回 `1`(在 ClickHouse 中表示 "true"): + 5. 使用 `dictHas` 函数检查某个键是否存在于字典中。例如,下面的查询返回 `1`(在 ClickHouse 中表示“true”): ```sql SELECT dictHas('taxi_zone_dictionary', 132) ``` - 6. 以下查询返回 0,因为 4567 不是字典中 `LocationID` 的取值之一: + 6. The following query returns 0 because 4567 不是字典中 `LocationID` 的任何值: ```sql SELECT dictHas('taxi_zone_dictionary', 4567) ``` @@ -451,7 +451,7 @@ doc_type: 'guide' ORDER BY total DESC ``` - 此查询按行政区汇总了在拉瓜迪亚机场或 JFK 机场结束的出租车行程数量。结果如下所示,可以看到有相当多的行程其上车所在街区未知: + 此查询按行政区汇总了在拉瓜迪亚机场或 JFK 机场结束的出租车行程数量。结果如下所示,可以看到有相当多的行程其上车所在社区未知: ```response ┌─total─┬─borough_name──┐ @@ -471,7 +471,7 @@ doc_type: 'guide' 编写一些查询,将 `taxi_zone_dictionary` 与你的 `trips` 表关联起来。 - 1. 从一个简单的 `JOIN` 开始,其作用与前面的机场查询类似: + 1. 从一个简单的 `JOIN` 开始,其效果与前面的机场查询类似: ```sql SELECT @@ -500,7 +500,7 @@ doc_type: 'guide' ``` :::note - 请注意,上述 `JOIN` 查询的结果与之前使用 `dictGetOrDefault` 的查询相同(只是未包含 `Unknown` 值)。在底层实现上,ClickHouse 实际上为 `taxi_zone_dictionary` 字典调用了 `dictGet` FUNCTION,但 `JOIN` 语法对 SQL 开发者来说更为熟悉。 + 请注意,上述 `JOIN` 查询的结果与之前使用 `dictGetOrDefault` 的查询相同(只是未包含 `Unknown` 值)。在底层实现上,ClickHouse 实际上为 `taxi_zone_dictionary` 字典调用了 `dictGet` 函数,但 `JOIN` 语法对 SQL 开发者来说更为熟悉。 ::: 2. 此查询返回小费金额最高的 1000 次行程对应的行,然后对每一行与字典执行 inner join: @@ -514,7 +514,7 @@ doc_type: 'guide' LIMIT 1000 ``` :::note - 通常在 ClickHouse 中应尽量避免使用 `SELECT *`。你应该只检索实际需要的列。 + 一般在 ClickHouse 中应尽量避免频繁使用 `SELECT *`。你应该只检索实际需要的列。 ::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md index 95a4045797a..d877122254f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/build-your-own/schema-design.md @@ -588,7 +588,7 @@ LIMIT 5 ## 使用字典 \{#using-dictionaries\} -[Dictionaries](/sql-reference/dictionaries) 是 ClickHouse 的[关键特性](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse),提供一种内存中的 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 形式,用于表示来自各种内部和外部[数据源](/sql-reference/dictionaries#dictionary-sources)的数据,并针对超低延迟的查找查询进行了优化。 +[Dictionaries](/sql-reference/statements/create/dictionary) 是 ClickHouse 的[关键特性](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse),提供一种内存中的 [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) 形式,用于表示来自各种内部和外部[数据源](/sql-reference/statements/create/dictionary/sources#dictionary-sources)的数据,并针对超低延迟的查找查询进行了优化。 Observability and dictionaries @@ -726,7 +726,7 @@ SELECT FROM geoip_url ``` -为了在 ClickHouse 中进行低延迟的 IP 查询,我们将利用字典在内存中存储 Geo IP 数据的键到属性的映射关系。ClickHouse 提供了一个 `ip_trie` [字典结构](/sql-reference/dictionaries#ip_trie),用于将网络前缀(CIDR 块)映射到坐标和国家代码。下面的查询使用这种布局,并以上述表作为数据源来定义一个字典。 +为了在 ClickHouse 中进行低延迟的 IP 查询,我们将利用字典在内存中存储 Geo IP 数据的键到属性的映射关系。ClickHouse 提供了一个 `ip_trie` [字典结构](/sql-reference/statements/create/dictionary/layouts/ip-trie),用于将网络前缀(CIDR 块)映射到坐标和国家代码。下面的查询使用这种布局,并以上述表作为数据源来定义一个字典。 ```sql CREATE DICTIONARY ip_trie ( @@ -741,7 +741,7 @@ layout(ip_trie) lifetime(3600); ``` -我们可以从该字典中查询行,以确认此数据集可用于查询: +我们可以从该字典中查询几行,以确认此数据集可用于查找: ```sql SELECT * FROM ip_trie LIMIT 3 @@ -838,10 +838,10 @@ ORDER BY (ServiceName, Timestamp) [User-Agent 字符串](https://en.wikipedia.org/wiki/User_agent) 的解析是一个经典的正则表达式问题,也是基于日志和 trace 的数据集中的常见需求。ClickHouse 通过 Regular Expression Tree Dictionaries 高效解析 User-Agent。 -正则表达式树字典在 ClickHouse 开源版本中通过 `YAMLRegExpTree` 字典源类型定义,该类型提供包含正则表达式树的 YAML 文件路径。如果你希望提供自己的正则表达式字典,其所需结构的详细信息可以在[这里](/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source)找到。下面我们重点介绍使用 [uap-core](https://github.com/ua-parser/uap-core) 进行 User-Agent 解析,并加载适用于受支持 CSV 格式的字典。此方法兼容开源版和 ClickHouse Cloud。 +正则表达式树字典在 ClickHouse 开源版本中通过 `YAMLRegExpTree` 字典源类型定义,该类型提供包含正则表达式树的 YAML 文件路径。如果你希望提供自己的正则表达式字典,其所需结构的详细信息可以在[这里](/sql-reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source)找到。下面我们重点介绍使用 [uap-core](https://github.com/ua-parser/uap-core) 进行 User-Agent 解析,并加载适用于受支持 CSV 格式的字典。此方法兼容开源版和 ClickHouse Cloud。 :::note -在下面的示例中,我们使用的是 2024 年 6 月的最新 uap-core User-Agent 解析正则表达式快照。最新文件(会不定期更新)可以在[这里](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)找到。你可以按照[这里](/sql-reference/dictionaries#collecting-attribute-values)的步骤,将其加载到下文使用的 CSV 文件中。 +在下面的示例中,我们使用的是 2024 年 6 月的最新 uap-core User-Agent 解析正则表达式快照。最新文件(会不定期更新)可以在[这里](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml)找到。你可以按照[这里](/sql-reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values)的步骤,将其加载到下文使用的 CSV 文件中。 ::: 创建以下 Memory 表。这些表保存用于解析设备、浏览器和操作系统的正则表达式。 @@ -875,7 +875,7 @@ CREATE TABLE regexp_device ) ENGINE=Memory; ``` -可以使用 `url` 表函数,从以下公开托管的 CSV 文件中填充这些表: +可以使用 `url` 表函数,从下列公开托管的 CSV 文件中填充这些表: ```sql INSERT INTO regexp_os SELECT * FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/user_agent_regex/regexp_os.csv', 'CSV', 'id UInt64, parent_id UInt64, regexp String, keys Array(String), values Array(String)') @@ -1031,7 +1031,7 @@ Os: ('Other','0','0','0') - [字典进阶主题](/dictionary#advanced-dictionary-topics) - [使用字典加速查询](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [字典](/sql-reference/dictionaries) +- [字典](/sql-reference/statements/create/dictionary) ## 加速查询 \{#accelerating-queries\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md index 6dcfba845d3..cdbbf8d69f4 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/alerts.md @@ -1,6 +1,6 @@ --- slug: /use-cases/observability/clickstack/alerts -title: '使用 ClickStack 搜索' +title: '基于 ClickStack 的告警' sidebar_label: '告警' pagination_prev: null pagination_next: null @@ -24,14 +24,12 @@ import remove_chart_alert from '@site/static/images/use-cases/observability/remo import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; - -## 在 ClickStack 中使用告警 \{#alerting-in-clickstack\} - -ClickStack 内置了告警功能,使团队能够在日志、指标和链路追踪中实时发现并响应问题。 +ClickStack 内置了告警功能,使团队能够在日志、指标和追踪等各类数据中实时发现并响应问题。 可以直接在 HyperDX 界面中创建告警,并与 Slack、PagerDuty 等常用通知系统集成。 -告警功能可在您的 ClickStack 数据之上无缝工作,帮助您跟踪系统健康状况、捕获性能退化,并监控关键业务事件。 +告警功能可以无缝适用于 ClickStack 数据,帮助你跟踪系统健康状况、捕获性能回归,并监控关键业务事件。 + ## 告警类型 \{#types-of-alerts\} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md index 70fde35fd36..09727c33cf2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/index.md @@ -14,4 +14,5 @@ keywords: ['ClickStack 示例数据集', 'ClickStack 演示数据', '可观测 |---------|-------------| | [Sample Data](sample-data.md) | 加载一个包含来自我们演示环境的日志、追踪和指标的示例数据集 | | [Local Data](local-data.md) | 采集本地系统的指标和日志,并发送到 ClickStack 进行分析 | -| [Remote Demo Data](remote-demo-data.md) | 连接到我们的远程演示集群并分析一个问题 | \ No newline at end of file +| [Remote Demo Data](remote-demo-data.md) | 连接到我们的远程演示集群并分析一个问题 | +| [Session Replay Demo](session-replay.md) | 为一个演示 Web 应用接入埋点以启用会话回放,并在 ClickStack 中查看你的交互 | \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md new file mode 100644 index 00000000000..f32ad2decac --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/example-datasets/session-replay.md @@ -0,0 +1,179 @@ +--- +slug: /use-cases/observability/clickstack/example-datasets/session-replay-demo +title: '会话回放演示' +sidebar_position: 4 +pagination_prev: null +pagination_next: null +description: '交互式演示应用,展示如何对 Web 应用进行 ClickStack 会话回放埋点' +doc_type: 'guide' +keywords: ['clickstack', 'session replay', 'browser sdk', 'demo', 'observability', 'instrumentation'] +--- + +import Image from '@theme/IdealImage'; +import api_key from '@site/static/images/clickstack/api-key.png'; +import demo_app from '@site/static/images/clickstack/session-replay/demo-app.png'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; + +:::note[要点速览] +本指南将演示如何使用 ClickStack Browser SDK 为 Web 应用接入会话回放功能。与其他加载预生成数据的示例数据集不同,本示例提供了一个交互式应用,你可以通过自己的操作生成会话数据。 + +预计耗时:10–15 分钟 +::: + + +## 概览 \{#overview\} + +[会话回放示例应用](https://github.com/ClickHouse/clickstack-session-replay-demo) 是一个使用原生 JavaScript 构建的文档浏览器。它演示了会话回放埋点如何做到极简——只需一个 script 标签和一次初始化调用,即可自动捕获所有用户交互。 + +该代码仓库包含两个分支: + +- **`main`** —— 已完整埋点,可立即使用 +- **`pre-instrumented`** —— 未包含埋点代码的干净版本,代码注释中标明了需要添加埋点的位置 + +本指南将首先使用 `main` 分支直观展示会话回放的实际效果,然后逐步讲解埋点代码,便于在自己的应用中采用相同的模式。 + +关于会话回放的背景介绍以及它在 ClickStack 中所扮演的角色,请参阅 [Session Replay](/use-cases/observability/clickstack/session-replay) 功能页面。 + +## 先决条件 \{#prerequisites\} + +- 已安装 Docker 和 Docker Compose +- 端口 3000、4317、4318 和 8080 可用 + +## 运行示例 \{#running-the-demo\} + + + +### 克隆代码仓库 \{#clone-repository\} + +```shell +git clone https://github.com/ClickHouse/clickstack-session-replay-demo +cd clickstack-session-replay-demo +``` + +### 启动 ClickStack \{#start-clickstack\} + +```shell +docker-compose up -d clickstack +``` + +### 获取你的 API key \{#get-api-key\} + +1. 在浏览器中打开 HyperDX,地址为 [http://localhost:8080](http://localhost:8080) +2. 创建一个账户,或在需要时登录 +3. 进入 **Team Settings → API Keys** +4. 复制你的 **摄取 API key** + +ClickStack API Key + +5. 将其设置为环境变量: + +```shell +export CLICKSTACK_API_KEY='your-api-key-here' +``` + +### 启动示例应用 \{#start-demo-app\} + +```shell +docker-compose --profile demo up demo-app +``` + +:::note +请确保在导出 `CLICKSTACK_API_KEY` 变量的同一个终端中运行此命令。 +::: + +在浏览器中打开 [http://localhost:3000](http://localhost:3000),与该应用进行交互——搜索主题、按类别过滤、查看代码示例以及收藏条目。 + +Session replay demo app + +所有交互都会由 ClickStack Browser SDK 自动捕获。 + +### 查看你的会话回放 \{#view-session-replay\} + +返回 [http://localhost:8080](http://localhost:8080) 中的 HyperDX,在左侧边栏中进入 **Client Sessions**。 + +Session replay search + +你应该会看到你的会话列表,以及对应的持续时间和事件数量。点击 ▶️ 按钮即可回放。 + +Session replay + +在 **Highlighted** 和 **All Events** 模式之间切换,以调整时间线上的细节级别。 + + + +## 埋点与监测 \{#instrumentation\} + +该演示应用展示了启用 Session Replay 只需极少量代码。只需要对应用做两处改动即可: + +**1. 引入 SDK(`app/public/index.html`):** + +```html + +``` + +**2. 在 `app/public/js/app.js` 中初始化 ClickStack:** + +```javascript +window.HyperDX.init({ + url: 'http://localhost:4318', + apiKey: window.CLICKSTACK_API_KEY, + service: 'clickhouse-session-replay-demo', + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + +其余部分都是标准应用程序代码。SDK 会自动捕获所有用户交互、控制台日志、网络请求和错误——无需任何额外的手动埋点或插桩。 + + +### 自己动手实践 \{#try-it-yourself\} + +要从零开始为应用添加埋点,请切换到 `pre-instrumented` 分支: + +```shell +git checkout pre-instrumented +``` + +此分支包含未添加任何 ClickStack 插桩的同一应用程序版本。`app/public/index.html` 和 `app/public/js/app.js` 中的代码注释精确标明了需要添加上述两个代码片段的具体位置。添加完成后,重启演示应用,你的交互行为就会开始出现在 ClickStack 中。 + + +## 故障排查 \{#troubleshooting\} + +### 会话未在 HyperDX 中显示 \{#sessions-not-appearing\} + +1. 检查浏览器控制台中是否存在错误 +2. 确认 ClickStack 正在运行:`docker-compose ps` +3. 确认已设置 API 密钥:`echo $CLICKSTACK_API_KEY` +4. 在 Client Sessions 视图中调整时间范围(尝试选择 **Last 15 minutes**) +5. 强制刷新浏览器页面:`Cmd+Shift+R`(Mac)或 `Ctrl+Shift+R`(Windows/Linux) + +### 401 未授权错误 \{#401-errors\} + +API 密钥未正确设置。请确保: + +1. 已在终端中导出它:`export CLICKSTACK_API_KEY='your-key'` +2. 在**同一个终端**中启动了演示应用(即你导出该变量的终端) +3. 从 HyperDX UI 获取了该密钥(而不是一个随机生成的字符串) + +## 清理 \{#cleanup\} + +停止服务: + +```bash +docker-compose down +``` + +删除所有数据: + +```bash +docker-compose down -v +``` + + +## 了解更多 \{#learn-more\} + +- [Session Replay](/use-cases/observability/clickstack/session-replay) — 功能概览、SDK 选项和隐私控制 +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — 完整 SDK 选项和高级配置 +- [ClickStack 入门](/use-cases/observability/clickstack/getting-started) — 部署 ClickStack 并摄取首批数据 +- [所有示例数据集](/use-cases/observability/clickstack/sample-datasets) — 其他示例数据集和指南 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md new file mode 100644 index 00000000000..3cf2a860331 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/use-cases/observability/clickstack/session-replay.md @@ -0,0 +1,150 @@ +--- +slug: /use-cases/observability/clickstack/session-replay +title: '会话回放' +sidebar_label: '会话回放' +sidebar_position: 5 +pagination_prev: null +pagination_next: null +description: '在 ClickStack 中捕获并回放用户会话,以便调试前端问题、分析用户行为,并将浏览器活动与后端日志和链路追踪数据进行关联。' +doc_type: 'guide' +keywords: ['clickstack', '会话回放', 'browser sdk', '前端可观测性', '用户会话', '调试'] +--- + +import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import session_replay from '@site/static/images/clickstack/session-replay/session-replay.png'; +import replay_search from '@site/static/images/clickstack/session-replay/replay-search-view.png'; +import trace_to_replay from '@site/static/images/clickstack/session-replay/trace-to-replay.png'; +import clickpy_trace from '@site/static/images/clickstack/session-replay/clickpy-trace.gif'; + +ClickStack 中的会话回放功能会捕获并重建用户在 Web 应用中的交互,使你能够在界面中精确重放用户在整个会话期间所看到的内容和执行的操作。SDK 并非录制视频,而是记录 DOM 变更、鼠标移动、点击、滚动、键盘输入、控制台日志输出、网络请求(XHR、Fetch、WebSocket)以及 JavaScript 异常,然后在浏览器中还原整个使用体验。 + +由于会话回放与日志、追踪数据(traces)和指标一同存储在 ClickHouse 中,你可以从观看用户体验无缝切换到检查支撑该体验的后端追踪和数据库查询——只需点击几下即可完成。这使得会话回放非常适合用于调试生产问题、理解用户行为、识别用户体验中的阻碍点,以及以可视化方式确认用户反馈给支持团队的问题。 + + +## 为应用添加埋点 \{#instrumentation\} + +ClickStack 与 OpenTelemetry 完全兼容,因此你可以使用标准的 OpenTelemetry JavaScript SDK 或任意一种 [ClickStack 语言 SDK](/use-cases/observability/clickstack/sdks) 来发送浏览器遥测数据(trace 和异常)。但是,**session replay 需要使用 ClickStack Browser SDK**(`@hyperdx/browser`),它在 OpenTelemetry SDK 的基础上扩展了会话录制、控制台捕获和网络请求捕获功能。如果你只需要 trace 而不需要 session replay,任何兼容 OTel 的浏览器 SDK 都可以与 ClickStack 一起配合使用。 + +下面的示例使用 ClickStack Browser SDK。为你的应用添加 session replay 只需三步:安装依赖包、初始化 SDK,之后所有用户交互都会被自动捕获——无需再修改任何代码。 + +:::tip +请在应用启动时一定会被加载的位置初始化 SDK。比如在 Next.js 应用中,可以将其放在根组件 `layout.js` 中。这样可以确保会话录制能立即开始,并完整捕获整个用户体验。 +::: + + + + +```shell +npm install @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // 托管版 ClickStack 可省略 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +```shell +yarn add @hyperdx/browser +``` + +```javascript +import HyperDX from '@hyperdx/browser'; + +HyperDX.init({ + url: 'http://your-otel-collector:4318', + apiKey: 'YOUR_INGESTION_API_KEY', // 托管版 ClickStack 可省略 + service: 'my-frontend-app', + tracePropagationTargets: [/api.myapp.domain/i], + consoleCapture: true, + advancedNetworkCapture: true, +}); +``` + + + + +对于未使用打包工具的应用,可以直接通过 script 标签引入 SDK。这会暴露全局变量 `HyperDX`,其使用方式与 NPM 包相同。 + +```html + + +``` + + + + +:::note +`tracePropagationTargets` 选项是将 session replay 与后端 trace 关联起来的关键——将其设置为你的 API 域名即可启用完整的前端到后端分布式追踪。有关包括隐私控制、自定义动作、React 错误边界以及 source map 在内的完整 SDK 配置列表,请参阅 [Browser SDK 参考](/use-cases/observability/clickstack/sdks/browser)。 +::: + +Browser SDK 还支持为对隐私敏感的应用进行[输入和文本遮罩](/use-cases/observability/clickstack/sdks/browser#options),以及[附加用户信息](/use-cases/observability/clickstack/sdks/browser#attach-user-information-or-metadata),从而可以在 ClickStack UI 中按用户搜索和过滤会话。 + +## 查看会话回放 \{#viewing-replays\} + +在 ClickStack UI(HyperDX)左侧边栏中导航到 **Client Sessions**。该视图列出所有已捕获的浏览器会话及其持续时间和事件数量。 + +会话回放搜索视图 + +单击任意会话的播放按钮即可回放。回放视图在右侧显示还原后的用户体验,左侧则显示浏览器事件时间线,包括网络请求、控制台日志和错误。 + +会话回放播放界面 + +在 **Highlighted** 和 **All Events** 模式之间切换,以调整时间线中显示的详细程度。错误会以红色标注,单击任意事件会将回放跳转到会话中的对应时间点。 + +### 从会话到 Trace \{#session-to-trace\} + +在会话时间轴中选择某个网络请求或错误时,可以点击进入 **Trace** 选项卡,沿着该请求在后端服务中的执行路径进行追踪,查看这次用户交互所触发的相关日志、span 和数据库查询。 + +之所以能够实现这一点,是因为 `tracePropagationTargets` 配置通过 `traceparent` 头将浏览器 span 与服务器 span 关联起来,从用户点击一路到数据库,构建出一条完整连通的分布式 trace。要了解包含前端和后端插桩在内的详细实战步骤,请参阅 [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-nextjs-opentelemetry-clickstack)。 + +从会话回放深入到 ClickStack 中的后端 trace + +### 从 trace 到会话 \{#trace-to-session\} + +关联也可以从反方向进行。在 **Search** 视图中查看某个 trace 时,点击它以打开 trace 详情页,然后选择 **Session Replay** 选项卡,即可准确看到该 trace 发生时用户实际经历的情况。这在排查错误或慢请求时尤其有用——你可以从后端问题入手,立即看到用户视角。 + +Session replay trace view + +## 会话数据如何存储 \{#data-storage\} + +会话回放数据存储在 ClickHouse 中专用的 [`hyperdx_sessions`](/use-cases/observability/clickstack/ingesting-data/schemas#sessions) 表中,与日志和链路追踪数据分开存储。每个会话事件对应一行,其中 `Body` 字段包含事件负载,`LogAttributes` 映射存储事件元数据。`Body` 和 `LogAttributes` 列共同保存用于重建会话回放的实际事件详细信息。 + +有关完整的表结构(schema)信息,请参见 [ClickStack 使用的表和 schema](/use-cases/observability/clickstack/ingesting-data/schemas)。 + +## 试用一下 \{#try-it-out\} + +有两种方式可以查看会话回放的实际效果: + +- **在线示例** — 访问 [clickpy.clickhouse.com](https://clickpy.clickhouse.com),与应用交互,然后在 [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com) 的 **ClickPy Sessions** 数据源中查看你的会话回放。要了解 ClickPy 是如何完成埋点的,请参阅博客文章 [Instrumenting your NextJS application with OpenTelemetry and ClickStack](https://clickhouse.com/blog/instrumenting-your-app-with-otel-clickstack)。 +- **本地演示** — [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) 将一步步演示如何为一个示例应用进行埋点,包括在本地运行 ClickStack 并查看回放。 + +## 了解更多 \{#learn-more\} + +- [Session Replay Demo](/use-cases/observability/clickstack/example-datasets/session-replay-demo) — 提供分步说明的交互式本地演示应用程序 +- [Browser SDK Reference](/use-cases/observability/clickstack/sdks/browser) — 完整的 SDK 配置选项、source maps、自定义操作和高级配置 +- [Search](/use-cases/observability/clickstack/search) — 用于筛选会话和事件的搜索语法 +- [Dashboards](/use-cases/observability/clickstack/dashboards) — 基于会话和跟踪(trace)数据构建可视化和仪表板 +- [Alerts](/use-cases/observability/clickstack/alerts) — 为错误、延迟和其他信号配置告警 +- [ClickStack Architecture](/use-cases/observability/clickstack/architecture) — 了解 ClickHouse、HyperDX 和 OTel collector 如何协同工作 \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/roadmap.md b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/roadmap.md index 2b7abb06033..93443336857 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/roadmap.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/whats-new/roadmap.md @@ -7,22 +7,19 @@ doc_type: 'landing-page' keywords: ['路线图', '未来特性', '开发计划', '即将发布版本', '产品方向'] --- - - ## 当前路线图 \{#current-roadmap\} 当前路线图已发布,并开放讨论: -- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - - +- [2026](https://github.com/ClickHouse/ClickHouse/issues/93288) ## 历史路线图 \{#previous-roadmaps\} +- [2025](https://github.com/ClickHouse/ClickHouse/issues/74046) - [2024](https://github.com/ClickHouse/ClickHouse/issues/58392) - [2023](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2022](https://github.com/ClickHouse/ClickHouse/issues/44767) - [2021](https://github.com/ClickHouse/ClickHouse/issues/17623) - [2020](https://github.com/ClickHouse/ClickHouse/blob/be29057de1835f6f4a17e03a422b45b81efe6833/docs/ru/whats-new/extended-roadmap.md) - [2019](https://github.com/ClickHouse/ClickHouse/issues/4785) -- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) +- [2018](https://presentations.clickhouse.com/?path=2018-roadmap) \ No newline at end of file diff --git a/knowledgebase/recovering-from-corrupt-keeper-snapshot.mdx b/knowledgebase/recovering-from-corrupt-keeper-snapshot.mdx new file mode 100644 index 00000000000..ad33ef4f2ba --- /dev/null +++ b/knowledgebase/recovering-from-corrupt-keeper-snapshot.mdx @@ -0,0 +1,235 @@ +--- +date: 2025-01-29 +title: How to recover from a corrupt Keeper snapshot +tags: ['Troubleshooting'] +keywords: ['Keeper', 'corrupt snapshot'] +description: 'Article describing how to recover from a corrupt Keeper snapshot: how the problem manifests, what a snapshot is and where to find it and possible recovery strategies.' +--- + +{frontMatter.description} +{/* truncate */} + +
    +
    + +Corrupt or bad ClickHouse Keeper snapshots can cause significant system instability, such as metadata inconsistencies, read-only states for tables, resource exhaustion, or failed backups. This article covers: + +- [What snapshots are and where to find them](#overview) +- [How the problem manifests](#symptoms) +- [Possible strategies for recovery](#recovery-strategies) and what each of them means + +## Overview of Keeper snapshots {#overview} + +### What is a snapshot? {#what-is-snapshot} + +A snapshot is a serialized state of Keeper's internal data (such as metadata about clusters, table coordination paths, and configurations) at a specific point in time. Snapshots are vital for resynchronizing Keeper nodes within a cluster, recovering metadata during failures, and start-up or restart processes that rely on a known-good Keeper state. + +### Where can I find snapshots? {#where-to-find-snapshots} + +Snapshots are stored as files on the local filesystem of Keeper nodes. By default, they are stored at `/var/lib/clickhouse/coordination/snapshots/` or by the custom path specified by `snapshot_storage_path` in your `keeper_server.xml` file. Snapshots are named incrementally (e.g., snapshot.23), with newer ones having higher numbers. + +For multi-node clusters, each Keeper node has its own snapshot directory. + +:::note +Consistency within snapshots across nodes is critical for recovery. +::: + +## Key symptoms and manifestations of corrupt Keeper snapshots {#symptoms} + +The table below details some common symptoms and manifestations of corrupt Keeper snapshots: + +| **Category** | **Issue Type** | **What to look for** | +|---|---|---| +| **Operational Issues** | Read-Only Mode | Tables unexpectedly switch to read-only mode | +| | Query Failures | Persistent query failures with `Coordination::Exception` errors | +| **Metadata Corruption** | Outdated Metadata | Dropped tables not reflected; operation failures due to stale metadata | +| **Resource Overload** | System Resource Exhaustion | Keeper nodes consume excessive CPU, memory, or disk space; potential downtime | +| | Disk Full | Disk full during snapshot creation | +| **Backup & Restore** | Backup Failures | Backups fail due to missing or inconsistent Keeper metadata | +| **Snapshot Creation/Transfer** | Keeper Crash | Keeper crash mid-snapshot (look for "SEGFAULT" errors) | +| | Snapshot Transfer Corruption | Corruption during snapshot transfer between replicas | +| | Race Condition | Race condition during log compaction - background commit thread accessing deleted logs | +| | Network Synchronization | Network issues preventing snapshot sync from leader to followers | + +**Log Indicators:** + +Before diagnosing snapshot corruption, check **Keeper logs** for specific error patterns: + +| **Log Type** | **What to Look For** | +|---|---| +| **Snapshot corruption errors** | • `Aborting because of failure to load from latest snapshot with index`
    • `Failure to load from latest snapshot with index {}: {}. Manual intervention is necessary for recovery`
    • `Failed to preprocess stored log at index {}, aborting to avoid inconsistent state`
    • Snapshot serialization/loading failures during startup | +| **Other Keeper issues** | • `Coordination::Exception`
    • `Zookeeper::Session Timeout`
    • Synchronization or election issues
    • Log compaction race conditions | + +## Recovering from corrupt Keeper snapshots {#recovery-strategies} + +Before touching any files, always: + +1. Stop all Keeper nodes to prevent further corruption +2. Backup everything by copying the entire coordination directory to a safe location +3. Verify cluster quorum to ensure at least one node has good data + +--- + +### 1. Restore from an existing backup + +You should follow this process if: + +- The Keeper metadata or snapshot corruption makes current data unsalvageable. +- A backup exists with a known-good Keeper state. + +Follow the steps below to restore an existing backup: + +1. Locate and validate the newest backup for metadata consistency. +2. Shut down the ClickHouse and Keeper services. +3. Replace the faulty snapshots and logs with those from the backup directory. +4. Restart the Keeper cluster and validate metadata synchronization. + +:::tip[Backup regularly] +If backups are outdated, you may incur a loss of recent metadata changes. For this reason, we recommend backing up regularly. +::: + +--- + +### 2. Rollback to an older snapshot + +You should follow this process when: + +- Recent snapshots are corrupt, but older ones remain usable. +- Incremental logs are intact for consistent recovery. + +Follow the steps below to roll back to an older snapshot: + +1. Identify and select a valid older snapshot (e.g., snapshot.19) from the Keeper directory. +2. Remove newer snapshots and logs. +3. Restart Keeper so it replays logs to rebuild the metadata state. + +:::warning[Metadata desynchronization risk] +There is a risk of metadata desynchronization if snapshots and logs are missing or incomplete. +::: + +--- + +### 3. Restore metadata using SYSTEM RESTORE REPLICA + +You should follow this process when: + +- Keeper metadata is lost or corrupted but table data still exists on disk +- Tables have switched to read-only mode due to missing ZooKeeper/Keeper metadata +- You need to recreate metadata in Keeper based on locally available data parts + +Follow the steps below to restore metadata: + +1. Verify that table data exists locally in your clickHouse-server data path, set by `` in your config. (`/var/lib/clickhouse/data/` by default) + +2. For each affected table, execute: +```sql +SYSTEM RESTART REPLICA [db.]table_name; +SYSTEM RESTORE REPLICA [db.]table_name; +``` + +3. For database-level recovery (if using Replicated database engine): +```sql +SYSTEM RESTORE DATABASE REPLICA db_name; +``` + +4. Wait for synchronization to complete: +```sql +SYSTEM SYNC REPLICA [db.]table_name; +``` + +5. Verify recovery by checking `system.replicas` for `is_readonly = 0` and monitoring `system.detached_parts` + +:::info[How it works] +`SYSTEM RESTORE REPLICA` detaches all existing parts, recreates metadata in Keeper (as if it's a new empty table), then reattaches all parts. This avoids re-downloading data over the network. +::: + +:::warning[Prerequisites] +This only works if local data parts are intact. If data is also corrupted, use strategy #5 (rebuild cluster) instead. +::: + +--- + +### 4. Drop and recreate replica metadata in Keeper + +You should follow this process when: + +- The error occurs on a single replica of the cluster and has corrupt or inconsistent metadata in Keeper +- You encounter errors like "Part XXXXX intersects previous part YYYYY" +- You need to completely reset a replica's Keeper metadata while preserving local data + +Follow the steps below to drop and recreate metadata: + +1. On the affected replica, detach the table: +```sql +DETACH TABLE [db.]table_name; +``` + +2. Remove the replica's metadata from Keeper (execute on any replica): +```sql +SYSTEM DROP REPLICA 'replica_name' FROM ZKPATH '/clickhouse/tables/{shard}/table_name'; +``` + +To find the correct ZooKeeper path: +```sql +SELECT zookeeper_path, replica_name FROM system.replicas WHERE table = 'table_name'; +``` + +3. Reattach the table (it will be in read-only mode): +```sql +ATTACH TABLE [db.]table_name; +``` + +4. Restore the replica metadata: +```sql +SYSTEM RESTORE REPLICA [db.]table_name; +``` + +5. Synchronize with other replicas: +```sql +SYSTEM SYNC REPLICA [db.]table_name; +``` + +6. Check `system.detached_parts` on all replicas after recovery + +:::warning[Execute on all affected replicas] +If the corruption affects multiple replicas, repeat these steps on each one sequentially. +::: + +:::tip[For entire database] +If using a Replicated database, you can use `SYSTEM DROP REPLICA ... FROM DATABASE db_name` instead. +::: + +**Alternative: Using force_restore_data flag** + +For automatic recovery of all replicated tables at server startup: + +1. Stop ClickHouse server +2. Create the recovery flag: +```bash +sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data +``` +3. Start ClickHouse server +4. The server will automatically delete the flag and restore all replicated tables +5. Monitor logs for recovery progress + +This approach is useful when multiple tables need recovery simultaneously. + +--- + +### 5. Rebuild Keeper cluster + +You should follow this process when: + +- No valid snapshots, logs, or backups are available for recovery. +- You need to recreate the entire Keeper cluster and its metadata. + +Follow the steps below to rebuild the Keeper cluster: + +1. Fully stop the ClickHouse and Keeper clusters. +2. Reset each Keeper node by cleaning the snapshot and log directories. +3. Initialize one Keeper node as the leader and add other nodes incrementally. +4. Re-import metadata if available from external records. + +:::warning[Time-intensive process] +This process is time-intensive and carries a risk of prolonged outage. Total data reconstruction is required. +::: diff --git a/plugins/floating-pages-exceptions.txt b/plugins/floating-pages-exceptions.txt index ac2e3ec5368..d1e98f37928 100644 --- a/plugins/floating-pages-exceptions.txt +++ b/plugins/floating-pages-exceptions.txt @@ -25,3 +25,4 @@ interfaces/overview operations/utilities/clickhouse-keeper-http-api.md operations/settings/detach-non-readonly-queries.md sql-reference/dictionaries/index.md +sql-reference/functions/wasm_udf.md diff --git a/scripts/aspell-ignore/en/aspell-dict.txt b/scripts/aspell-ignore/en/aspell-dict.txt index 67f8087d9a5..5ddbb1f5088 100644 --- a/scripts/aspell-ignore/en/aspell-dict.txt +++ b/scripts/aspell-ignore/en/aspell-dict.txt @@ -1,4 +1,4 @@ -personal_ws-1.1 en 4035 +personal_ws-1.1 en 4036 AArch ACLs AICPA @@ -84,6 +84,7 @@ BSON BSONEachRow BUZZHOUSE BYOC +BYTEA BZIP Backblaze BackgroundBufferFlushSchedulePool @@ -149,6 +150,7 @@ Bugfix BuildID BuilderBinAarch BuilderBinAmd +bytea Bytebase CCPA CCTOOLS @@ -958,6 +960,7 @@ NetworkSendBytes NetworkSendDrop NetworkSendErrors NetworkSendPackets +NextJS Nginx NiFi NoSQL @@ -1620,6 +1623,7 @@ WALs WSFG WarpStream Warpstream +WebSocket WebUI Websocket Welch's @@ -3015,6 +3019,7 @@ nullability nullable nullables nullptr +nuls num numerics nypd @@ -3690,6 +3695,7 @@ timeZoneOffset timeslot timeslots timespan +timestamptz timezones tinylog tmp diff --git a/sidebars.js b/sidebars.js index 962823641b1..2246d6b53f1 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1922,6 +1922,7 @@ const sidebars = { 'use-cases/observability/clickstack/event_patterns', 'use-cases/observability/clickstack/event_deltas', 'use-cases/observability/clickstack/alerts', + 'use-cases/observability/clickstack/session-replay', { type: 'category', label: 'Managing ClickStack', diff --git a/static/cloud/changelog-rss.xml b/static/cloud/changelog-rss.xml index 860c4f7340d..8d8e4967fb8 100644 --- a/static/cloud/changelog-rss.xml +++ b/static/cloud/changelog-rss.xml @@ -5,8 +5,15 @@ https://clickhouse.com/docs/cloud/whats-new/cloud Latest updates and features in ClickHouse Cloud en-us - Fri, 13 Feb 2026 10:18:39 -0600 + Fri, 20 Feb 2026 13:34:20 -0600 + + ClickHouse Cloud - February 20, 2026 + https://clickhouse.com/docs/cloud/whats-new/cloud#february-20-2026 + - ClickPipes:: Reverse private endpoints in an inactive state will now be automatically removed after a defined grace period. This ensures unused or misconfigured endpoints are not persisted indefinitely in the backend. See the automatic clean up documentation for more details. + Fri, 20 Feb 2026 00:00:00 -0600 + https://clickhouse.com/docs/cloud/whats-new/cloud#february-20-2026 + ClickHouse Cloud - February 13, 2026 https://clickhouse.com/docs/cloud/whats-new/cloud#february-13-2026 diff --git a/static/images/clickstack/session-replay/clickpy-trace.gif b/static/images/clickstack/session-replay/clickpy-trace.gif new file mode 100644 index 00000000000..da757ba306a Binary files /dev/null and b/static/images/clickstack/session-replay/clickpy-trace.gif differ diff --git a/static/images/clickstack/session-replay/demo-app.png b/static/images/clickstack/session-replay/demo-app.png new file mode 100644 index 00000000000..03f6e5dd2b8 Binary files /dev/null and b/static/images/clickstack/session-replay/demo-app.png differ diff --git a/static/images/clickstack/session-replay/replay-search-view.png b/static/images/clickstack/session-replay/replay-search-view.png new file mode 100644 index 00000000000..c32278a7d9c Binary files /dev/null and b/static/images/clickstack/session-replay/replay-search-view.png differ diff --git a/static/images/clickstack/session-replay/session-replay.png b/static/images/clickstack/session-replay/session-replay.png new file mode 100644 index 00000000000..b8c3805e8c4 Binary files /dev/null and b/static/images/clickstack/session-replay/session-replay.png differ diff --git a/static/images/clickstack/session-replay/trace-to-replay.png b/static/images/clickstack/session-replay/trace-to-replay.png new file mode 100644 index 00000000000..378b51f45a6 Binary files /dev/null and b/static/images/clickstack/session-replay/trace-to-replay.png differ diff --git a/static/images/cloud/features/data-catalogs-ui.png b/static/images/cloud/features/data-catalogs-ui.png new file mode 100644 index 00000000000..2865c4fbcf3 Binary files /dev/null and b/static/images/cloud/features/data-catalogs-ui.png differ diff --git a/static/images/cloud/reference/billing_payment_threshhold.png b/static/images/cloud/reference/billing_payment_threshhold.png new file mode 100644 index 00000000000..2a6ce05d6f0 Binary files /dev/null and b/static/images/cloud/reference/billing_payment_threshhold.png differ diff --git a/static/images/cloud/reference/billing_payment_threshhold_2.png b/static/images/cloud/reference/billing_payment_threshhold_2.png new file mode 100644 index 00000000000..78e977e66d1 Binary files /dev/null and b/static/images/cloud/reference/billing_payment_threshhold_2.png differ