> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# サポートセンター

> ClickHouse ナレッジベースを閲覧・検索

export const kbIndex = {
  categories: ["Cloud", "設定", "データのインポートとエクスポート", "データ管理", "一般・よくある質問", "インテグレーションとクライアントライブラリ", "Materialized viewとプロジェクション", "監視とデバッグ", "パフォーマンスと最適化", "クエリとSQL", "セキュリティとアクセス制御", "セットアップとインストール", "テーブルとスキーマ", "トラブルシューティングとエラー"],
  tags: ["ベストプラクティス", "コミュニティ", "コンセプト", "データの基本概念", "データエクスポート", "データフォーマット", "データ取り込み", "データモデリング", "データソース", "デプロイとスケーリング", "エラーと例外", "関数", "言語クライアント", "Cloudの管理", "データの管理", "ネイティブクライアントとインターフェース", "パフォーマンスと最適化", "セキュリティと認証", "サーバー管理", "設定", "システムテーブル", "ツールとユーティリティ", "トラブルシューティング", "ユースケース"],
  articles: [{
    id: "integrations/python-clickhouse-connect-example",
    title: "ClickHouse Cloud Serviceへの接続：Pythonクライアントの実例",
    description: "clickhouse-connectドライバーを使ったステップバイステップの例を通じて、PythonでClickHouse Cloud Serviceに接続する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/integrations/python-clickhouse-connect-example",
    category: "Integrations & client libraries",
    tags: ["Language Clients"]
  }, {
    id: "configuration-settings/about-quotas-and-query-complexity",
    title: "クォータとクエリの複雑さについて",
    description: "クォータとクエリの複雑さは、ClickHouseでユーザーの操作を制限する強力な手段です。このナレッジベース記事では、これら2つのアプローチの適用例を紹介します。",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity",
    category: "Configuration & settings",
    tags: ["Managing Cloud"]
  }, {
    id: "data-import-export/achieving-atomic-inserts",
    title: "ClickHouse Cloudにおけるアトミックな挿入と複数テーブルの整合性の実現",
    description: "ステージングテーブルとパーティションレベルの操作を使用して、複数ステートメントのトランザクションなしにClickHouse Cloudでデータをアトミックに挿入し、複数テーブルの整合性を維持する方法。",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/achieving-atomic-inserts",
    category: "Data import & export",
    tags: ["Data Ingestion", "Best Practices"]
  }, {
    id: "tables-schema/add-column",
    title: "テーブルへのカラムの追加",
    description: "このガイドでは、既存のテーブルにカラムを追加する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/add-column",
    category: "Tables & schema",
    tags: ["Data Modelling"]
  }, {
    id: "configuration-settings/alter-user-settings-exception",
    title: "ユーザー設定変更時の例外",
    description: "ユーザー設定の変更時にスローされる例外の処理方法",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception",
    category: "Configuration & settings",
    tags: ["Settings", "Errors and Exceptions"]
  }, {
    id: "materialized-views/are-materialized-views-inserted-asynchronously",
    title: "Materialized Viewは同期的に挿入されますか？",
    description: "このナレッジベース記事では、Materialized Viewへの挿入が同期的に行われるかどうかを検証します。",
    href: "/ja/resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously",
    category: "Materialized views & projections",
    tags: ["Data Modelling"]
  }, {
    id: "tables-schema/schema-migration-tools",
    title: "ClickHouseの自動スキーママイグレーションツール",
    description: "ClickHouseの自動スキーママイグレーションツールと、データベーススキーマの変更を継続的に管理する方法について学びます。",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/schema-migration-tools",
    category: "Tables & schema",
    tags: ["Tools and Utilities"]
  }, {
    id: "cloud-services/aws-privatelink-setup-for-msk-clickpipes",
    title: "ClickPipes向けにMSKを公開するためのAWS PrivateLinkのセットアップ",
    description: "MSKのマルチVPC接続を介してプライベートMSKをClickPipesに公開するためのセットアップ手順。",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-msk-clickpipes",
    category: "Cloud",
    tags: ["Security and Authentication", "Managing Cloud"]
  }, {
    id: "cloud-services/aws-privatelink-setup-for-clickpipes",
    title: "ClickPipes向けにプライベートRDSを公開するためのAWS PrivateLinkのセットアップ",
    description: "AWS PrivateLinkを介してプライベートRDSをClickPipesに公開するためのセットアップ手順。",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes",
    category: "Cloud",
    tags: ["Security and Authentication", "Managing Cloud"]
  }, {
    id: "data-management/backing-up-a-specific-partition",
    title: "特定のパーティションのバックアップ",
    description: "ClickHouseで特定のパーティションをバックアップする方法。",
    href: "/ja/resources/support-center/knowledge-base/data-management/backing-up-a-specific-partition",
    category: "Data management",
    tags: ["Managing Data"]
  }, {
    id: "general-faqs/key-value",
    title: "ClickHouseをキーバリューストレージとして使用できますか？",
    description: "ClickHouseをキーバリューストレージとして使用できるかどうかというよくある質問への回答。",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/key-value",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/time-series",
    title: "ClickHouseを時系列データベースとして使用できますか？",
    description: "ClickHouseを時系列データベースとして使用する方法を解説するページ。",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/time-series",
    category: "General & FAQs",
    tags: []
  }, {
    id: "queries-sql/pivot",
    title: "ClickHouseでPIVOTは使用できますか？",
    description: "ClickHouseにはPIVOT句はありませんが、集計関数コンビネーターを使用して同様の機能を実現できます。英国の住宅価格データセットを使ってその方法を見てみましょう。",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/pivot",
    category: "Queries & SQL",
    tags: ["Data Modelling", "Core Data Concepts"]
  }, {
    id: "general-faqs/vector-search",
    title: "ClickHouseをベクトル検索に使用できますか？",
    description: "埋め込みの保存やコサイン類似度などの距離関数を使った検索など、ClickHouseをベクトル検索に活用する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/vector-search",
    category: "General & FAQs",
    tags: ["Use Cases", "Concepts"]
  }, {
    id: "monitoring-debugging/send-logs-level",
    title: "クライアントでのクエリのサーバーログのキャプチャ",
    description: "`send_logs_level`クライアント設定を使用して、ログ設定が異なる場合でもクライアントレベルでサーバーログをキャプチャする方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/send-logs-level",
    category: "Monitoring & debugging",
    tags: ["Server Admin"]
  }, {
    id: "configuration-settings/change-the-prompt-in-clickhouse-client",
    title: "clickhouse-clientのプロンプトの変更",
    description: "この記事では、ClickHouseクライアントおよびclickhouse-localのターミナルウィンドウのプロンプトを:)からプレフィックス付きの:)に変更する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/change-the-prompt-in-clickhouse-client",
    category: "Configuration & settings",
    tags: ["Settings", "Native Clients and Interfaces"]
  }, {
    id: "security/common-rbac-queries",
    title: "よく使われるRBACクエリ",
    description: "ユーザーに特定の権限を付与するためのクエリ集。",
    href: "/ja/resources/support-center/knowledge-base/security/common-rbac-queries",
    category: "Security & access control",
    tags: ["Security and Authentication", "Managing Cloud"]
  }, {
    id: "queries-sql/comparing-metrics-between-queries",
    title: "デシベルによるクエリ間のメトリクスの比較",
    description: "ClickHouseで2つのクエリ間のメトリクスを比較するクエリ。",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/comparing-metrics-between-queries",
    category: "Queries & SQL",
    tags: ["Performance and Optimizations"]
  }, {
    id: "configuration-settings/configure-cap-ipc-lock-and-cap-sys-nice-in-docker",
    title: "Configuring CAP_IPC_LOCK and CAP_SYS_NICE Capabilities in Docker",
    description: "Learn how to resolve Docker capability warnings for `CAP_IPC_LOCK` and `CAP_SYS_NICE` when running ClickHouse in a container.",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/configure-cap-ipc-lock-and-cap-sys-nice-in-docker",
    category: "Configuration & settings",
    tags: ["Errors and Exceptions"]
  }, {
    id: "troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker",
    title: "Configuring CAP_IPC_LOCK and CAP_SYS_NICE Capabilities in Docker",
    description: "Learn how to resolve Docker capability warnings for `CAP_IPC_LOCK` and `CAP_SYS_NICE` when running ClickHouse in a container.",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker",
    category: "Troubleshooting & errors",
    tags: ["Errors and Exceptions"]
  }, {
    id: "cloud-services/custom-dns-alias-for-instance",
    title: "Create a custom DNS alias by setting up a reverse proxy",
    description: "Learn how to set up a custom DNS alias for your instance using a reverse proxy",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance",
    category: "Cloud",
    tags: ["Server Admin", "Security and Authentication"]
  }, {
    id: "troubleshooting/part-intersects-previous-part",
    title: "DB::Exception: Part XXXXX intersects previous part YYYYY. It is a bug or a result of manual intervention in the ZooKeeper data.",
    description: "この記事では、ClickHouseにおけるパーツの重複に関するDB::Exceptionエラーの解決方法を説明します。このエラーは、競合状態またはZooKeeperデータへの手動介入が原因で発生することがあります。",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/part-intersects-previous-part",
    category: "トラブルシューティングとエラー",
    tags: ["エラーと例外", "システムテーブル"]
  }, {
    id: "setup-installation/difference-between-official-builds-and-3rd-party",
    title: "Differences Between Official and 3rd-Party ClickHouse Builds",
    description: "Understand the key differences between official ClickHouse builds and 3rd-party builds, including updates, compatibility, and security considerations.",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party",
    category: "Setup & installation",
    tags: ["Concepts"]
  }, {
    id: "general-faqs/cost-based",
    title: "Does ClickHouse have a cost-based optimizer",
    description: "ClickHouse has certain cost-based optimization mechanics",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/cost-based",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/datalake",
    title: "Does ClickHouse support data lakes?",
    description: "ClickHouse supports data lakes, including Iceberg, Delta Lake, Apache Hudi, Apache Paimon, Hive",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/datalake",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/distributed-join",
    title: "Does ClickHouse support distributed JOIN?",
    description: "ClickHouse supports distributed JOIN",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/distributed-join",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/federated",
    title: "Does ClickHouse support federated queries?",
    description: "ClickHouse supports a wide range for federated and hybrid queries",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/federated",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/concurrency",
    title: "Does ClickHouse support frequent, concurrent queries?",
    description: "ClickHouse supports high QPS and high concurrency",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/concurrency",
    category: "General & FAQs",
    tags: []
  }, {
    id: "cloud-services/multi-region-replication",
    title: "Does ClickHouse support multi-region replication?",
    description: "This page answers whether ClickHouse supports multi-region replication",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/multi-region-replication",
    category: "Cloud",
    tags: []
  }, {
    id: "general-faqs/updates",
    title: "Does ClickHouse support real-time updates?",
    description: "ClickHouse supports lightweight real-time updates",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/updates",
    category: "General & FAQs",
    tags: []
  }, {
    id: "security/row-column-policy",
    title: "Does ClickHouse support row-level and column-level security?",
    description: "Learn about row-level and column-level access restrictions in ClickHouse and ClickHouse Cloud, and how to implement role-based access control (RBAC) with policies.",
    href: "/ja/resources/support-center/knowledge-base/security/row-column-policy",
    category: "Security & access control",
    tags: ["Security and Authentication"]
  }, {
    id: "cloud-services/execute-system-queries-in-cloud",
    title: "Execute SYSTEM Statements on All Nodes in ClickHouse Cloud",
    description: "Learn how to use `ON CLUSTER` and `clusterAllReplicas` to execute SYSTEM statements and queries across all nodes in a ClickHouse Cloud service.",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud",
    category: "Cloud",
    tags: ["Deployments and Scaling"]
  }, {
    id: "troubleshooting/count-parts-by-type",
    title: "Find counts and sizes of wide or compact parts",
    description: "This knowledgebase article shows you how to find part counts by the type of part - wide or compact.",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type",
    category: "Troubleshooting & errors",
    tags: ["Troubleshooting"]
  }, {
    id: "troubleshooting/fix-developer-verification-error-in-macos",
    title: "Fix the Developer Verification Error in MacOS",
    description: "Learn how to resolve the MacOS developer verification error when running ClickHouse commands, using either System Settings or the terminal.",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/fix-developer-verification-error-in-macos",
    category: "Troubleshooting & errors",
    tags: ["Errors and Exceptions"]
  }, {
    id: "data-import-export/s3-export-data-year-month-folders",
    title: "How can I do partitioned writes by year and month on S3?",
    description: "Learn how to write partitioned data by year and month to an S3 bucket in ClickHouse, using a custom path structure for organizing the data.",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/s3-export-data-year-month-folders",
    category: "Data import & export",
    tags: ["Data Export", "Native Clients and Interfaces"]
  }, {
    id: "data-import-export/kafka-clickhouse-json",
    title: "How can I use the new JSON Data Type with Kafka?",
    description: "Learn how to load JSON messages from Apache Kafka directly into a single JSON column in ClickHouse using the Kafka table engine and JSON data type.",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json",
    category: "Data import & export",
    tags: ["Data Formats", "Data Ingestion"]
  }, {
    id: "cloud-services/change-billing-email",
    title: "How do I change my Billing Contact in ClickHouse Cloud?",
    description: "Let's learn how to change your billing address in ClickHouse Cloud.",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/change-billing-email",
    category: "Cloud",
    tags: ["Managing Cloud"]
  }, {
    id: "general-faqs/how-do-i-contribute-code-to-clickhouse",
    title: "How do I contribute code to ClickHouse?",
    description: "ClickHouseはGitHub上で開発されているオープンソースプロジェクトです。慣例に従い、コントリビューション手順はソースコードリポジトリのルートにあるCONTRIBUTINGファイルに記載されています。",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse",
    category: "一般・よくある質問",
    tags: ["コミュニティ"]
  }, {
    id: "data-import-export/parquet-to-csv-json",
    title: "ParquetファイルをCSVまたはJSONに変換するには？",
    description: "ClickHouseの`clickhouse-local`ツールを使用して、ParquetファイルをCSVまたはJSON形式に変換する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json",
    category: "データのインポートとエクスポート",
    tags: ["データソース", "データフォーマット"]
  }, {
    id: "data-import-export/mysql-to-parquet-csv-json",
    title: "ClickHouseを使用してMySQLデータをParquet、CSV、またはJSONにエクスポートするには？",
    description: "`clickhouse-local`ツールを使用して、MySQLデータをParquet、CSV、またはJSON形式に素早くエクスポートする方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json",
    category: "データのインポートとエクスポート",
    tags: ["データフォーマット", "データエクスポート"]
  }, {
    id: "data-import-export/postgresql-to-parquet-csv-json",
    title: "PostgreSQLデータをParquet、CSV、またはJSONにエクスポートするには？",
    description: "`clickhouse-local`を使用してPostgreSQLデータをParquet、CSV、またはJSON形式にエクスポートする方法を、豊富な例を交えて説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json",
    category: "データのインポートとエクスポート",
    tags: ["データエクスポート", "データフォーマット"]
  }, {
    id: "setup-installation/install-clickhouse-windows10",
    title: "Windows 10にClickHouseをインストールするには？",
    description: "WSL 2を使用してWindows 10にClickHouseをインストールし、動作確認する方法を説明します。セットアップ、トラブルシューティング、テスト環境の構築方法も含みます。",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/install-clickhouse-windows10",
    category: "セットアップとインストール",
    tags: ["ツールとユーティリティ"]
  }, {
    id: "security/remove-default-user",
    title: "デフォルトユーザーを削除するには？",
    description: "ClickHouse Serverの実行時にデフォルトユーザーを削除する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/security/remove-default-user",
    category: "セキュリティとアクセス制御",
    tags: ["サーバー管理"]
  }, {
    id: "cloud-services/ingest-failures-23-9-release",
    title: "ClickHouse 23.9リリース後の取り込みエラーを解決するには？",
    description: "`async_inserts`を使用するテーブルに対してClickHouse 23.9で導入された厳格なグラント確認によって発生する取り込みエラーの解決方法を説明します。グラントを更新してエラーを修正する手順も含みます。",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release",
    category: "Cloud",
    tags: ["エラーと例外"]
  }, {
    id: "performance-optimization/insert-select-settings-tuning",
    title: "INSERT...SELECT実行中のTOO MANY PARTSエラーを解決するには？",
    description: "`INSERT...SELECT`実行中にClickHouseで発生するTOO_MANY_PARTSエラーを、大きなブロック向けの上級設定のチューニングとパーティションしきい値の引き上げによって解決する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning",
    category: "パフォーマンスと最適化",
    tags: ["設定", "エラーと例外"]
  }, {
    id: "integrations/node-js-example",
    title: "NodeJSで@clickhouse/clientを使用するには？",
    description: "Node.jsアプリケーションで@clickhouse/clientを使用してClickHouseと連携し、クエリを実行する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/integrations/node-js-example",
    category: "インテグレーションとクライアントライブラリ",
    tags: ["言語クライアント"]
  }, {
    id: "monitoring-debugging/view-number-of-active-mutations",
    title: "アクティブまたはキュー待ちのミューテーション数を確認するには？",
    description: "特に`ALTER`や`UPDATE`操作を実行する際に、ClickHouseでアクティブまたはキュー待ちのミューテーション数を監視する方法を説明します。ミューテーションの追跡には`system.mutations`テーブルを使用します。",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations",
    category: "監視とデバッグ",
    tags: ["システムテーブル"]
  }, {
    id: "data-management/read-consistency",
    title: "ClickHouseでデータ読み取りの一貫性を確保するには？",
    description: "同一ノードまたは任意のノードに接続している場合でも、ClickHouseからの読み取り時にデータの一貫性を確保する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-management/read-consistency",
    category: "データ管理",
    tags: ["パフォーマンスと最適化"]
  }, {
    id: "setup-installation/llvm-clang-up-to-date",
    title: "LinuxでLLVMとclangをビルドするには",
    description: "LinuxでLLVMとclangをビルドするためのコマンドです。",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/llvm-clang-up-to-date",
    category: "セットアップとインストール",
    tags: ["コミュニティ", "ツールとユーティリティ"]
  }, {
    id: "data-management/calculate-ratio-of-zero-sparse-serialization",
    title: "テーブルの各カラムにおける空/ゼロ値の比率を計算するには",
    description: "スパースカラムのシリアライゼーションを最適化するために、ClickHouseテーブルの各カラムにおける空またはゼロ値の比率を計算する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization",
    category: "データ管理",
    tags: ["パフォーマンスと最適化"]
  }, {
    id: "security/check-users-roles",
    title: "ロールに割り当てられたユーザーとその逆を確認するには",
    description: "ClickHouseの`system.role_grants`をクエリして、ロールに割り当てられたユーザーや特定のユーザーに割り当てられたロールを確認する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/security/check-users-roles",
    category: "セキュリティとアクセス制御",
    tags: ["サーバー管理", "システムテーブル", "Cloud管理"]
  }, {
    id: "monitoring-debugging/which-processes-are-currently-running",
    title: "サーバーで現在実行中のコードを確認するには？",
    description: "ClickHouseは`system.stack_trace`などのイントロスペクションツールを提供しており、各サーバースレッドで現在実行中のコードを検査できます。デバッグやパフォーマンス監視に役立ちます。",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running",
    category: "監視とデバッグ",
    tags: ["サーバー管理"]
  }, {
    id: "cloud-services/how-to-check-my-clickhouse-cloud-sevice-state",
    title: "ClickHouse Cloudサービスの状態を確認するには",
    description: "ClickHouse Cloud APIを使用して、サービスを起動させることなく停止中、アイドル中、または実行中かどうかを確認する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/how-to-check-my-clickhouse-cloud-sevice-state",
    category: "Cloud",
    tags: ["Cloud管理"]
  }, {
    id: "configuration-settings/configure-a-user-setting",
    title: "ClickHouseでユーザーの設定を構成するには",
    description: "`SET`および`ALTER USER`コマンドを使用して、個別のクエリ、クライアントセッション、または特定のユーザー向けにClickHouseの設定を定義する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/configure-a-user-setting",
    category: "構成と設定",
    tags: ["設定"]
  }, {
    id: "materialized-views/projection-example",
    title: "クエリでPROJECTIONが使用されているかを確認するには？",
    description: "サンプルデータを使ったテストとEXPLAINを使用して、ClickHouseクエリでPROJECTIONが使用されているかどうかを確認する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/materialized-views/projection-example",
    category: "materialized viewとPROJECTION",
    tags: ["データモデリング"]
  }, {
    id: "cloud-services/how-to-connect-to-ch-cloud-using-ssh-keys",
    title: "SSHキーを使用してClickHouseに接続するには",
    description: "SSHキーを使用してClickHouseおよびClickHouse Cloudに接続する方法",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/how-to-connect-to-ch-cloud-using-ssh-keys",
    category: "Cloud",
    tags: ["Managing Cloud", "Security and Authentication"]
  }, {
    id: "data-management/dictionary-using-strings",
    title: "How to Create a ClickHouse Dictionary with String Keys and Values",
    description: "Learn how to create a ClickHouse dictionary using string keys and values from a MergeTree table as the source, with examples of setup and usage.",
    href: "/ja/resources/support-center/knowledge-base/data-management/dictionary-using-strings",
    category: "Data management",
    tags: ["Data Modelling"]
  }, {
    id: "tables-schema/how-to-create-table-to-query-multiple-remote-clusters",
    title: "How to create a table that can query multiple remote clusters",
    description: "How to create a table that can query multiple remote clusters",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters",
    category: "Tables & schema",
    tags: ["Deployments and Scaling"]
  }, {
    id: "setup-installation/enabling-ssl-with-lets-encrypt",
    title: "How to Enable SSL with Let's Encrypt on a Single ClickHouse Server",
    description: "Learn how to set up SSL for a single ClickHouse server using Let's Encrypt, including certificate issuance, configuration, and validation.",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/enabling-ssl-with-lets-encrypt",
    category: "Setup & installation",
    tags: ["Security and Authentication"]
  }, {
    id: "data-import-export/file-export",
    title: "How to Export Data from ClickHouse to a File",
    description: "Learn various methods to export data from ClickHouse, including `INTO OUTFILE`, the File table engine, and command-line redirection.",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/file-export",
    category: "Data import & export",
    tags: ["Data Export"]
  }, {
    id: "queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column",
    title: "How to filter a ClickHouse table by an array-column?",
    description: "Knowledgebase article on how to filter a ClickHouse table by an array-column.",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column",
    category: "Queries & SQL",
    tags: ["Data Modelling", "Functions"]
  }, {
    id: "monitoring-debugging/generate-har-file",
    title: "How to Generate a HAR file for support",
    description: "A HAR (HTTP Archive) file captures the network activity in your browser. It can help our support team diagnose slow page loads, failed requests, or other network issues.",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/generate-har-file",
    category: "Monitoring & debugging",
    tags: ["Tools and Utilities"]
  }, {
    id: "materialized-views/how-to-display-queries-using-mv",
    title: "How to Identify Queries Using Materialized Views in ClickHouse",
    description: "Learn how to query ClickHouse logs to identify all queries involving Materialized Views within a specified time range.",
    href: "/ja/resources/support-center/knowledge-base/materialized-views/how-to-display-queries-using-mv",
    category: "Materialized views & projections",
    tags: ["System Tables"]
  }, {
    id: "performance-optimization/find-expensive-queries",
    title: "How to Identify the Most Expensive Queries in ClickHouse",
    description: "Learn how to use the `query_log` table in ClickHouse to identify the most memory and CPU-intensive queries across distributed nodes.",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries",
    category: "Performance & optimization",
    tags: ["Performance and Optimizations"]
  }, {
    id: "configuration-settings/ignoring-incorrect-settings",
    title: "How to Ignore Incorrect Settings in ClickHouse",
    description: "Learn how to use the `skip_check_for_incorrect_settings` option to allow ClickHouse to start even when user-level settings are specified incorrectly.",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/ignoring-incorrect-settings",
    category: "Configuration & settings",
    tags: ["Settings"]
  }, {
    id: "data-import-export/json-import",
    title: "How to import JSON into ClickHouse?",
    description: "This page shows you how to import JSON into ClickHouse",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/json-import",
    category: "Data import & export",
    tags: []
  }, {
    id: "setup-installation/how-to-increase-thread-pool-size",
    title: "How to Increase the Number of Threads in ClickHouse",
    description: "Learn how to configure the Global Thread pool in ClickHouse by adjusting settings like `max_thread_pool_size`, `thread_pool_queue_size`, and `max_thread_pool_free_size`.",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size",
    category: "Setup & installation",
    tags: ["Performance and Optimizations"]
  }, {
    id: "data-import-export/kafka-to-clickhouse-setup",
    title: "How to Ingest Data from Kafka into ClickHouse",
    description: "Learn how to ingest data from a Kafka topic into ClickHouse using the Kafka table engine, materialized views, and MergeTree tables.",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/kafka-to-clickhouse-setup",
    category: "Data import & export",
    tags: ["Data Ingestion"]
  }, {
    id: "data-import-export/ingest-parquet-files-in-s3",
    title: "How to ingest Parquet files from an S3 bucket",
    description: "Learn the basics of using the S3 table engine in ClickHouse to ingest and query Parquet files from an S3 bucket, including setup, access permissions, and data import examples.",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/ingest-parquet-files-in-s3",
    category: "Data import & export",
    tags: ["Data Ingestion"]
  }, {
    id: "queries-sql/how-to-insert-all-rows-from-another-table",
    title: "How to insert all rows from one table to another?",
    description: "Knowledgebase article on how to insert all rows from one table to another.",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/how-to-insert-all-rows-from-another-table",
    category: "Queries & SQL",
    tags: ["Data Ingestion"]
  }, {
    id: "performance-optimization/check-query-processing-time-only",
    title: "How to Measure Query Processing Time Without Returning Rows",
    description: "Learn how to use the `FORMAT Null` option in ClickHouse to measure query processing time without returning any rows to the client.",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/check-query-processing-time-only",
    category: "Performance & optimization",
    tags: ["Performance and Optimizations"]
  }, {
    id: "monitoring-debugging/outputSendLogsLevelTracesToFile",
    title: "How to output send logs level traces to file using the clickhouse-client",
    description: "How to output send logs level traces to file using the clickhouse-client",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/outputSendLogsLevelTracesToFile",
    category: "Monitoring & debugging",
    tags: ["Data Export"]
  }, {
    id: "tables-schema/recreate-table-across-terminals",
    title: "How to quickly recreate a small table across different terminals",
    description: "Learn how to quickly recreate a small table and its data across different terminals using copy/paste for development environments.",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/recreate-table-across-terminals",
    category: "Tables & schema",
    tags: ["Tools and Utilities"]
  }, {
    id: "integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql",
    title: "ODBCを使用してDocker上のClickHouseをMicrosoft SQL Server（MSSQL）データベースに接続する方法",
    description: "ODBCを使用してDocker上のClickHouseをMicrosoft SQL Server（MSSQL）データベースに接続する方法",
    href: "/ja/resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql",
    category: "Integrations & client libraries",
    tags: ["Native Clients and Interfaces"]
  }, {
    id: "queries-sql/using-array-join-to-extract-and-query-attributes",
    title: "How to use array join to extract and query varying attributes using map keys and values",
    description: "マップのキーと値を使用して、array joinで可変属性を抽出・クエリする方法を示す簡単な例",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/using-array-join-to-extract-and-query-attributes",
    category: "クエリ & SQL",
    tags: ["Functions"]
  }, {
    id: "materialized-views/how-to-use-parametrised-views",
    title: "ClickHouseでパラメーター化ビューを使用する方法",
    description: "クエリ時パラメーターに基づく動的なデータスライシングのために、ClickHouseでパラメーター化ビューを作成・クエリする方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/materialized-views/how-to-use-parametrised-views",
    category: "materialized view & プロジェクション",
    tags: ["ユースケース"]
  }, {
    id: "tables-schema/exchangeStatementToSwitchTables",
    title: "exchangeコマンドを使用してテーブルを切り替える方法",
    description: "exchangeコマンドを使用してテーブルを切り替える方法",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables",
    category: "テーブル & スキーマ",
    tags: ["データ管理"]
  }, {
    id: "queries-sql/compare-resultsets",
    title: "2つのクエリが同じ結果セットを返すかを検証する方法",
    description: "ハッシュ関数と比較手法を使用して、2つのClickHouseクエリが同一の結果セットを生成することを検証する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/compare-resultsets",
    category: "クエリ & SQL",
    tags: ["Functions"]
  }, {
    id: "monitoring-debugging/check-query-cache-in-use",
    title: "ClickHouseでクエリキャッシュの使用状況を確認する方法",
    description: "`clickhouse-client`のトレースログまたはSQLコマンドを使用して、ClickHouseでクエリキャッシュが利用されているかどうかを確認する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use",
    category: "監視 & デバッグ",
    tags: ["パフォーマンスと最適化"]
  }, {
    id: "cloud-services/unable-to-access-cloud-service",
    title: "ClickHouse Cloud サービスにアクセスできない",
    description: "IPアクセスリストの設定を含む、ClickHouse Cloud サービスへのアクセス問題のトラブルシューティング",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/unable-to-access-cloud-service",
    category: "Cloud",
    tags: ["エラーと例外", "Cloud管理"]
  }, {
    id: "performance-optimization/finding-expensive-queries-by-memory-usage",
    title: "ClickHouseでメモリ使用量によるコストの高いクエリを特定する",
    description: "`system.query_log`テーブルを使用して、クラスター構成およびスタンドアロン構成の例を交えながら、ClickHouseで最もメモリを消費するクエリを見つける方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage",
    category: "パフォーマンス & 最適化",
    tags: ["パフォーマンスと最適化"]
  }, {
    id: "data-import-export/importing-and-working-with-json-array-objects",
    title: "ClickHouseでのJSON配列オブジェクトのインポートとクエリ",
    description: "JSON関数とArray操作を使用して、ClickHouseにJSON配列オブジェクトをインポートし、高度なクエリを実行する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects",
    category: "データのインポート & エクスポート",
    tags: ["データフォーマット"]
  }, {
    id: "data-import-export/importing-geojason-with-nested-object-array",
    title: "深くネストされたオブジェクト配列を持つGeoJSONのインポート",
    description: "「深くネストされたオブジェクト配列を持つGeoJSONのインポート」",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array",
    category: "データのインポート & エクスポート",
    tags: ["データフォーマット"]
  }, {
    id: "performance-optimization/improve-map-performance",
    title: "ClickHouseでのMapルックアップパフォーマンスの改善",
    description: "特定のキーを独立したカラムとしてマテリアライズすることで、ClickHouseのMapカラムルックアップを最適化してクエリパフォーマンスを向上させる方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/improve-map-performance",
    category: "パフォーマンス & 最適化",
    tags: ["パフォーマンスと最適化"]
  }, {
    id: "tables-schema/delete-old-data",
    title: "ClickHouseテーブルから古いレコードを削除することは可能ですか？",
    description: "このページでは、ClickHouseテーブルから古いレコードを削除できるかどうかという質問に回答します。",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/delete-old-data",
    category: "テーブル & スキーマ",
    tags: []
  }, {
    id: "general-faqs/separate-storage",
    title: "ClickHouseをストレージとコンピュートを分離してデプロイすることは可能ですか？",
    description: "このページでは、ClickHouseをストレージとコンピュートを分離してデプロイできるかどうかについて回答します。",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/separate-storage",
    category: "一般 & よくある質問",
    tags: []
  }, {
    id: "data-import-export/json-extract-example",
    title: "JSONの抽出例",
    description: "JSONから基本型を抽出する方法の簡単な例",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/json-extract-example",
    category: "データのインポート & エクスポート",
    tags: ["データフォーマット"]
  }, {
    id: "queries-sql/calculate-pi-using-sql",
    title: "SQLを使って円周率を計算しよう",
    description: "円周率の日！ClickHouse SQLを使って円周率を計算しましょう",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/calculate-pi-using-sql",
    category: "クエリ & SQL",
    tags: ["ユースケース"]
  }, {
    id: "cloud-services/clickhouse-cloud-api-usage",
    title: "APIとcURLを使用したClickHouse Cloud サービスの管理",
    description: "APIエンドポイントとcURLコマンドを使用して、ClickHouse Cloud サービスを起動、停止、再開する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/cloud-services/clickhouse-cloud-api-usage",
    category: "Cloud",
    tags: ["Cloud管理", "ツールとユーティリティ"]
  }, {
    id: "monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics",
    title: "system.dashboardsで使用されるメトリクスから`system.custom_metrics`のPrometheusメトリクスへのマッピング",
    description: "system.dashboardsで使用されるメトリクスからsystem.custom_metricsのPrometheusメトリクスへのマッピング",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics",
    category: "監視 & デバッグ",
    tags: ["システムテーブル"]
  }, {
    id: "security/windows-active-directory-to-ch-roles",
    title: "Windows Active DirectoryセキュリティグループをClickHouseロールにマッピングする",
    description: "Windows Active DirectoryセキュリティグループをClickHouseロールにマッピングする例",
    href: "/ja/resources/support-center/knowledge-base/security/windows-active-directory-to-ch-roles",
    category: "セキュリティ & アクセス制御",
    tags: ["ツールとユーティリティ"]
  }, {
    id: "performance-optimization/memory-limit-exceeded-for-query",
    title: "クエリのメモリ制限超過",
    description: "クエリのメモリ制限超過エラーのトラブルシューティング",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query",
    category: "パフォーマンス & 最適化",
    tags: ["エラーと例外"]
  }, {
    id: "integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector",
    title: "Power BI ClickHouseコネクターを使用する際のODBC認証失敗エラー",
    description: "Power BI ClickHouseコネクターを使用する際のODBC認証失敗エラー",
    href: "/ja/resources/support-center/knowledge-base/integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector",
    category: "インテグレーション & クライアントライブラリ",
    tags: ["ネイティブクライアントとインターフェース", "エラーと例外"]
  }, {
    id: "monitoring-debugging/profiling-clickhouse-with-llvm-xray",
    title: "LLVMのXRayを使用したClickHouseのプロファイリング",
    description: "LLVMのXRayインストルメンテーションプロファイラーを使用してClickHouseをプロファイリングし、トレースを可視化してパフォーマンスを分析する方法を学びます。",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray",
    category: "監視 & デバッグ",
    tags: ["パフォーマンスと最適化", "ツールとユーティリティ"]
  }, {
    id: "integrations/python-http-requests",
    title: "Python quick example using HTTP requests module",
    description: "An example using Python and requests module to write and read to ClickHouse",
    href: "/ja/resources/support-center/knowledge-base/integrations/python-http-requests",
    category: "Integrations & client libraries",
    tags: ["Native Clients and Interfaces"]
  }, {
    id: "configuration-settings/maximum-number-of-tables-and-databases",
    title: "Recommended Maximum Databases, Tables, Partitions, and Parts in ClickHouse",
    description: "Learn the recommended maximum limits for databases, tables, partitions, and parts in a ClickHouse cluster to ensure optimal performance.",
    href: "/ja/resources/support-center/knowledge-base/configuration-settings/maximum-number-of-tables-and-databases",
    category: "Configuration & settings",
    tags: ["Performance and Optimizations", "Deployments and Scaling"]
  }, {
    id: "data-import-export/cannot-append-data-to-parquet-format",
    title: 'Resolving "Cannot Append Data in Parquet Format" Error in ClickHouse',
    description: 'Are you getting the error "Cannot append data in format Parquet to file" error in ClickHouse? Let\'s take a look at how to resolve it.',
    href: "/ja/resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format",
    category: "Data import & export",
    tags: ["Errors and Exceptions", "Data Formats"]
  }, {
    id: "troubleshooting/exception-too-many-parts",
    title: 'Resolving "Too Many Parts" Error in ClickHouse',
    description: 'Learn how to address the "Too many parts" error in ClickHouse by optimizing insert rates, configuring MergeTree settings, and managing partitions effectively.',
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts",
    category: "Troubleshooting & errors",
    tags: ["Errors and Exceptions"]
  }, {
    id: "troubleshooting/certificate-verify-failed-error",
    title: "Resolving SSL Certificate Verify Error in ClickHouse",
    description: "Learn how to resolve the SSL Exception CERTIFICATE_VERIFY_FAILED error.",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error",
    category: "トラブルシューティングとエラー",
    tags: ["セキュリティと認証", "エラーと例外"]
  }, {
    id: "troubleshooting/connection-timeout-remote-remoteSecure",
    title: "`remote`および`remoteSecure`テーブル関数のタイムアウトエラーを解決する",
    description: "接続タイムアウト設定を調整して、ClickHouseの`remote`または`remoteSecure`テーブル関数使用時に発生するタイムアウトエラーを修正する方法を説明します。",
    href: "/ja/resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure",
    category: "Troubleshooting & errors",
    tags: ["Errors and Exceptions"]
  }, {
    id: "tables-schema/search-across-node-for-tables-with-a-wildcard",
    title: "Searching across nodes for tables with a wildcard",
    description: "Learn how to search across nodes for tables with a wildcard.",
    href: "/ja/resources/support-center/knowledge-base/tables-schema/search-across-node-for-tables-with-a-wildcard",
    category: "Tables & schema",
    tags: ["Deployments and Scaling"]
  }, {
    id: "performance-optimization/query-max-execution-time",
    title: "Setting a limit on query execution time",
    description: "How to enforce limit on max query execution time",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/query-max-execution-time",
    category: "Performance & optimization",
    tags: ["Managing Cloud", "Settings"]
  }, {
    id: "data-import-export/json-simple-example",
    title: "Simple example flow for extracting JSON data using a landing table with a Materialized View",
    description: "Simple example flow for extracting JSON data using a landing table with a Materialized View",
    href: "/ja/resources/support-center/knowledge-base/data-import-export/json-simple-example",
    category: "Data import & export",
    tags: ["Data Formats"]
  }, {
    id: "performance-optimization/async-vs-optimize-read-in-order",
    title: "Synchronous data reading",
    description: "The new setting `allow_asynchronous_read_from_io_pool_for_merge_tree` allows the number of reading threads (streams) to be higher than the number of threads in the rest of the query execution pipeline.",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order",
    category: "Performance & optimization",
    tags: ["Settings", "Performance and Optimizations"]
  }, {
    id: "integrations/terraform-example",
    title: "Terraform example on how to use Cloud API",
    description: "This covers an example of how you can use terraform to create/delete clusters using the API",
    href: "/ja/resources/support-center/knowledge-base/integrations/terraform-example",
    category: "Integrations & client libraries",
    tags: ["Native Clients and Interfaces"]
  }, {
    id: "performance-optimization/tips-tricks-optimizing-basic-data-types-in-clickhouse",
    title: "Tips and tricks on optimizing basic data types in ClickHouse",
    description: "Tips and tricks on optimizing basic data types in ClickHouse",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/tips-tricks-optimizing-basic-data-types-in-clickhouse",
    category: "Performance & optimization",
    tags: ["Performance and Optimizations"]
  }, {
    id: "queries-sql/useful-queries-for-troubleshooting",
    title: "Useful queries for troubleshooting",
    description: "A collection of handy queries for troubleshooting ClickHouse, including monitoring table sizes, long-running queries, and errors.",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/useful-queries-for-troubleshooting",
    category: "Queries & SQL",
    tags: ["Settings"]
  }, {
    id: "general-faqs/use-clickhouse-for-log-analytics",
    title: "Using ClickHouse for Log Analytics",
    description: "ClickHouse is popular for logs and metrics analysis because of the real-time analytics capabilities provided. Ready to find out more?",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics",
    category: "General & FAQs",
    tags: ["Use Cases"]
  }, {
    id: "queries-sql/filtered-aggregates",
    title: "Using Filtered Aggregates in ClickHouse",
    description: "Learn how to use filtered aggregates in ClickHouse with `-If` and `-Distinct` aggregate combinators to simplify query syntax and enhance analytics.",
    href: "/ja/resources/support-center/knowledge-base/queries-sql/filtered-aggregates",
    category: "Queries & SQL",
    tags: ["Functions"]
  }, {
    id: "general-faqs/dependencies",
    title: "What are the 3rd-party dependencies for running ClickHouse?",
    description: "ClickHouse is self-contained and has no runtime dependencies",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/dependencies",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/dbms-naming",
    title: 'What does "ClickHouse" mean?',
    description: 'Learn about What does "ClickHouse" mean?',
    href: "/ja/resources/support-center/knowledge-base/general-faqs/dbms-naming",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/ne-tormozit",
    title: "What does “не тормозит” mean?",
    description: 'This page explains what "Не тормозит" means',
    href: "/ja/resources/support-center/knowledge-base/general-faqs/ne-tormozit",
    category: "General & FAQs",
    tags: []
  }, {
    id: "integrations/oracle-odbc",
    title: "What if I have a problem with encodings when using Oracle via ODBC?",
    description: "This page provides guidance on what to do if you have a problem with encodings when using Oracle via ODBC",
    href: "/ja/resources/support-center/knowledge-base/integrations/oracle-odbc",
    category: "Integrations & client libraries",
    tags: []
  }, {
    id: "general-faqs/columnar-database",
    title: "What is a columnar database?",
    description: "This page describes what a columnar database is",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/columnar-database",
    category: "General & FAQs",
    tags: []
  }, {
    id: "general-faqs/olap",
    title: "What is OLAP?",
    description: "An explainer on what Online Analytical Processing is",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/olap",
    category: "General & FAQs",
    tags: []
  }, {
    id: "performance-optimization/optimize-final-vs-final",
    title: "What is the difference between OPTIMIZE FINAL and FINAL?",
    description: "Discusses the differences between OPTIMIZE FINAL and FINAL, and when to use and avoid them.",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/optimize-final-vs-final",
    category: "Performance & optimization",
    tags: ["Core Data Concepts"]
  }, {
    id: "general-faqs/sql",
    title: "What SQL syntax does ClickHouse support?",
    description: "ClickHouse supports 100% of SQL syntax",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/sql",
    category: "General & FAQs",
    tags: []
  }, {
    id: "data-management/when-is-ttl-applied",
    title: "TTLルールはいつ適用されますか？また、適用タイミングを制御できますか？",
    description: "ClickHouseのTTLルールは非同期で適用されますが、`merge_with_ttl_timeout`設定を使用して実行タイミングを制御できます。TTLを強制適用する方法や、TTL実行に使用するバックグラウンドスレッドの管理方法について説明します。",
    href: "/ja/resources/support-center/knowledge-base/data-management/when-is-ttl-applied",
    category: "Data management",
    tags: ["Core Data Concepts"]
  }, {
    id: "setup-installation/production",
    title: "Which ClickHouse version to use in production?",
    description: "This page provides guidance on which ClickHouse version to use in production",
    href: "/ja/resources/support-center/knowledge-base/setup-installation/production",
    category: "Setup & installation",
    tags: []
  }, {
    id: "general-faqs/who-is-using-clickhouse",
    title: "Who is using ClickHouse?",
    description: "Describes who is using ClickHouse",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse",
    category: "General & FAQs",
    tags: []
  }, {
    id: "data-management/dictionaries-consistent-state",
    title: "Why can't I see my data in a dictionary in ClickHouse Cloud?",
    description: "There is an issue where data in dictionaries may not be visible immediately after creation.",
    href: "/ja/resources/support-center/knowledge-base/data-management/dictionaries-consistent-state",
    category: "Data management",
    tags: ["Managing Cloud", "Data Modelling"]
  }, {
    id: "general-faqs/why-recommend-clickhouse-keeper-over-zookeeper",
    title: "Why is ClickHouse Keeper recommended over ZooKeeper?",
    description: "ClickHouse Keeper improves upon ZooKeeper with features like reduced disk space usage, faster recovery, and less memory consumption, offering better performance for ClickHouse clusters.",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper",
    category: "General & FAQs",
    tags: ["Core Data Concepts"]
  }, {
    id: "monitoring-debugging/why-default-logging-verbose",
    title: "Why is ClickHouse logging so verbose by default?",
    description: "Learn why the ClickHouse developers chose to set a verbose logging level by default.",
    href: "/ja/resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose",
    category: "Monitoring & debugging",
    tags: ["Settings"]
  }, {
    id: "performance-optimization/why-is-my-primary-key-not-used",
    title: "Why is my primary key not used? How can I check?",
    description: "Covers a common reason why a primary key is not used in ordering and how we can confirm",
    href: "/ja/resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used",
    category: "Performance & optimization",
    tags: ["Performance and Optimizations"]
  }, {
    id: "general-faqs/mapreduce",
    title: "Why not use something like MapReduce?",
    description: "This page explains why you would use ClickHouse over MapReduce",
    href: "/ja/resources/support-center/knowledge-base/general-faqs/mapreduce",
    category: "General & FAQs",
    tags: []
  }]
};

export const KBExplorer = ({index, featured = []}) => {
  const featuredIds = featured.map(f => f.id);
  const assetBase = typeof window !== "undefined" && window.location.pathname.startsWith("/docs") ? "/docs" : "";
  const withBase = p => p && p.startsWith("/") ? assetBase + p : p;
  const data = index || ({
    categories: [],
    tags: [],
    articles: []
  });
  const readStoredList = (key, fallback) => {
    if (typeof window === "undefined") return fallback;
    try {
      const raw = localStorage.getItem(key);
      if (!raw) return fallback;
      const parsed = JSON.parse(raw);
      return Array.isArray(parsed) ? parsed : fallback;
    } catch {
      return fallback;
    }
  };
  const [searchTerm, setSearchTerm] = useState(() => {
    if (typeof window !== "undefined") {
      return localStorage.getItem("kb-search") || "";
    }
    return "";
  });
  const [selectedCategories, setSelectedCategories] = useState(() => readStoredList("kb-categories", ["All"]));
  const [currentPage, setCurrentPage] = useState(1);
  const itemsPerPage = 6;
  const [categoriesDropdownOpen, setCategoriesDropdownOpen] = useState(true);
  const [showFilters, setShowFilters] = useState(() => {
    if (typeof window !== "undefined") {
      return localStorage.getItem("kb-show-filters") !== "false";
    }
    return true;
  });
  const [isDesktop, setIsDesktop] = useState(true);
  useEffect(() => {
    if (typeof window === "undefined" || !window.matchMedia) return;
    const mq = window.matchMedia("(min-width: 1024px)");
    const update = () => setIsDesktop(mq.matches);
    update();
    mq.addEventListener("change", update);
    return () => mq.removeEventListener("change", update);
  }, []);
  useEffect(() => {
    if (typeof window !== "undefined") localStorage.setItem("kb-search", searchTerm);
  }, [searchTerm]);
  useEffect(() => {
    if (typeof window !== "undefined") localStorage.setItem("kb-categories", JSON.stringify(selectedCategories));
  }, [selectedCategories]);
  useEffect(() => {
    if (typeof window !== "undefined") localStorage.setItem("kb-show-filters", String(showFilters));
  }, [showFilters]);
  useEffect(() => {
    setCurrentPage(1);
  }, [searchTerm, selectedCategories]);
  const makeToggle = setter => value => {
    setter(prev => {
      if (value === "All") return ["All"];
      const withoutAll = prev.filter(v => v !== "All");
      const result = withoutAll.includes(value) ? withoutAll.filter(v => v !== value) : [...withoutAll, value];
      return result.length === 0 ? ["All"] : result;
    });
  };
  const toggleCategory = makeToggle(setSelectedCategories);
  const categoryOptions = ["All", ...data.categories];
  const resetFilters = () => {
    setSearchTerm("");
    setSelectedCategories(["All"]);
  };
  const hasActiveFilters = searchTerm !== "" || !selectedCategories.includes("All");
  const filteredArticles = useMemo(() => {
    const term = searchTerm.toLowerCase();
    return data.articles.filter(article => {
      if (featuredIds.includes(article.id)) return false;
      const matchesSearch = term === "" || article.title.toLowerCase().includes(term) || (article.description || "").toLowerCase().includes(term) || (article.tags || []).some(t => t.toLowerCase().includes(term));
      const matchesCategory = selectedCategories.includes("All") || selectedCategories.includes(article.category);
      return matchesSearch && matchesCategory;
    });
  }, [data.articles, searchTerm, selectedCategories, featuredIds]);
  const handleCardClick = (e, href) => {
    if (e.defaultPrevented) return;
    if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0) return;
    e.preventDefault();
    window.location.assign(withBase(href));
  };
  const featuredArticles = featured.map(f => {
    const article = data.articles.find(a => a.id === f.id);
    return {
      id: f.id,
      image: f.image,
      href: article && article.href || `/ja/resources/support-center/knowledge-base/${f.id}`,
      title: article && article.title || ""
    };
  }).filter(f => f.image);
  const Expandable = ({label, options, selectedOptions, onToggle, isOpen, setIsOpen}) => {
    const activeCount = selectedOptions.filter(o => o !== "All").length;
    const displayLabel = activeCount > 0 ? `${label} (${activeCount})` : label;
    return <div style={{
      minWidth: "160px"
    }}>
        <button onClick={() => setIsOpen(!isOpen)} className="text-sm font-medium transition-all cursor-pointer flex items-center justify-between w-full text-black dark:text-white" style={{
      padding: "4px 0",
      gap: "8px"
    }}>
          <span className="font-semibold">{displayLabel}</span>
          <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" className={`transition-transform duration-200 ${isOpen ? "rotate-180" : "rotate-0"}`}>
            <path d="M2.5 4.5L6 8L9.5 4.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
          </svg>
        </button>
        {isOpen && <div className="mt-1">
            {options.map(option => <label key={option} className="flex items-center gap-2 py-1.5 cursor-pointer transition-colors" onClick={e => {
      e.preventDefault();
      onToggle(option);
    }}>
                <span className="flex items-center justify-center w-4 h-4 rounded border flex-shrink-0" style={{
      borderColor: selectedOptions.includes(option) ? "#FAFF69" : "rgba(156, 163, 175, 0.6)",
      backgroundColor: selectedOptions.includes(option) ? "#FAFF69" : "transparent"
    }}>
                  {selectedOptions.includes(option) && <svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
                      <path d="M2 5L4 7L8 3" stroke="black" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
                    </svg>}
                </span>
                <span className="text-sm text-black dark:text-white">{option}</span>
              </label>)}
          </div>}
      </div>;
  };
  return <>
      <div style={{
    maxWidth: "1312px",
    marginLeft: "max(0px, calc((100vw - 1312px) / 2 - 19rem))",
    marginRight: "auto",
    paddingLeft: "1.75rem",
    paddingRight: "1.75rem"
  }}>
        <div className="my-8">
          {}
          {featuredArticles.length > 0 && <div className="mb-12">
              <h2 className="text-2xl font-semibold text-gray-900 dark:text-zinc-50 mb-6">注目の記事</h2>
              <div className="grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6">
                {featuredArticles.map(article => <a key={article.id} href={article.href} onClick={e => handleCardClick(e, article.href)} className="group block rounded-xl overflow-hidden border border-gray-200 dark:border-white/10 transition-all hover:border-black dark:hover:border-[#FAFF69] hover:shadow-md">
                    {}
                    <div role="img" aria-label={article.title} className="w-full aspect-[3/1] lg:aspect-[16/9] bg-cover bg-center transition-transform duration-200 group-hover:scale-[1.02]" style={{
    backgroundImage: `url(${withBase(article.image)})`
  }} />
                  </a>)}
              </div>
            </div>}

          {}
          <div className="flex flex-col lg:flex-row gap-8">
            {}
            <div className={isDesktop ? "flex-shrink-0 transition-[width] duration-300 ease-in-out" : "w-full"} style={isDesktop ? {
    width: showFilters ? "16rem" : "0px"
  } : undefined}>
              <div className="lg:sticky relative" style={isDesktop ? {
    top: "8.5rem"
  } : undefined}>
                {}
                <div aria-hidden="true" className="absolute bg-gray-200 dark:bg-white/10" style={isDesktop ? {
    left: "100%",
    top: 0,
    bottom: 0,
    width: "1px"
  } : {
    top: "100%",
    left: 0,
    right: 0,
    height: "1px"
  }} />
                {}
                <button onClick={() => setShowFilters(prev => !prev)} aria-label={showFilters ? "フィルターを非表示" : "フィルターを表示"} title={showFilters ? "フィルターを非表示" : "フィルターを表示"} className="flex items-center justify-center absolute z-20 cursor-pointer rounded-full border transition-colors border-gray-300 dark:border-white/20 hover:border-black dark:hover:border-[#FAFF69] bg-white dark:bg-[#1B1B18] text-gray-500 dark:text-gray-400 hover:text-black dark:hover:text-[#FAFF69] shadow-sm" style={isDesktop ? {
    left: "100%",
    top: "50%",
    width: "28px",
    height: "28px",
    transform: "translate(-50%, -50%)"
  } : {
    top: "100%",
    left: "50%",
    width: "28px",
    height: "28px",
    transform: "translate(-50%, -50%)"
  }}>
                  <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" className="transition-transform duration-300" style={{
    transform: `rotate(${isDesktop ? showFilters ? 0 : 180 : showFilters ? 90 : -90}deg)`
  }}>
                    <path d="M7.5 2.5L4 6L7.5 9.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
                  </svg>
                </button>

                {}
                <div className="overflow-hidden transition-all duration-300" style={isDesktop ? {
    width: "16rem",
    paddingRight: "1.5rem",
    opacity: showFilters ? 1 : 0,
    pointerEvents: showFilters ? "auto" : "none"
  } : {
    width: "100%",
    maxHeight: showFilters ? "1500px" : "0px",
    paddingBottom: showFilters ? "1.5rem" : "0px",
    opacity: showFilters ? 1 : 0,
    pointerEvents: showFilters ? "auto" : "none"
  }}>
                  <div className="space-y-6">
                    {}
                    <div>
                      <label className="block text-sm font-semibold text-gray-900 dark:text-zinc-50 mb-3">検索</label>
                      <div className="relative w-full">
                        <svg className="absolute pointer-events-none z-10" style={{
    left: "12px",
    top: "50%",
    transform: "translateY(-50%)",
    width: "16px",
    height: "16px",
    color: "#666"
  }} fill="none" stroke="currentColor" viewBox="0 0 24 24">
                          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
                        </svg>
                        <input type="text" placeholder="記事を検索..." value={searchTerm} onChange={e => setSearchTerm(e.target.value)} className="w-full text-sm border rounded-xl focus:outline-none bg-white dark:bg-[#1B1B18] text-black dark:text-white border-gray-300 dark:border-gray-600 focus:border-black dark:focus:border-[#FAFF69]" style={{
    height: "42px",
    padding: "0.5rem 0.75rem 0.5rem 2.75rem",
    lineHeight: "1.4",
    boxSizing: "border-box"
  }} />
                      </div>
                    </div>

                    {}
                    <div>
                      <div className="space-y-3">
                        <Expandable label="カテゴリー" options={categoryOptions} selectedOptions={selectedCategories} onToggle={toggleCategory} isOpen={categoriesDropdownOpen} setIsOpen={setCategoriesDropdownOpen} />
                      </div>
                    </div>

                    {}
                    {hasActiveFilters && <button onClick={resetFilters} className="w-full text-sm font-medium px-4 py-2 rounded-lg transition-all cursor-pointer border border-gray-300 dark:border-white/20 hover:border-black dark:hover:border-[#FAFF69] bg-white dark:bg-[#1B1B18] text-black dark:text-white">
                        フィルターをリセット
                      </button>}
                  </div>
                </div>
              </div>
            </div>

            {}
            <div className="flex-1 min-w-0">
              <h2 className="text-2xl font-semibold text-gray-900 dark:text-zinc-50 mb-6">記事を探す</h2>

              {filteredArticles.length > 0 ? <>
                  <div className="flex flex-col gap-2">
                    {filteredArticles.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage).map(article => <a key={article.id} href={article.href} onClick={e => handleCardClick(e, article.href)} className="group block rounded-lg border px-4 py-3 transition-all border-gray-200 dark:border-white/10 hover:border-black dark:hover:border-[#FAFF69] bg-white dark:bg-[#1B1B18]">
                        <div className="text-sm font-semibold text-gray-900 dark:text-zinc-50">{article.title}</div>
                        <div className="text-sm text-gray-600 dark:text-gray-400 mt-0.5 line-clamp-2">{article.description}</div>
                      </a>)}
                  </div>
                  {}
                  {(() => {
    const totalPages = Math.ceil(filteredArticles.length / itemsPerPage);
    if (totalPages <= 1) return null;
    const hasPrev = currentPage > 1;
    const hasNext = currentPage < totalPages;
    return <div className="flex items-center justify-center gap-3 mt-8">
                        <button onClick={() => hasPrev && setCurrentPage(prev => prev - 1)} disabled={!hasPrev} className={`p-2 rounded-lg border transition-all ${hasPrev ? "border-gray-300 dark:border-white/20 bg-white dark:bg-[#1B1B18] text-black dark:text-white hover:border-[#FAFF69] cursor-pointer" : "border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-[#1B1B18]/50 text-gray-300 dark:text-white/20 cursor-not-allowed"}`} aria-label="前のページ">
                          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <path d="M10 12L6 8L10 4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
                          </svg>
                        </button>
                        <span className="text-sm text-gray-600 dark:text-gray-400">
                          {currentPage} / {totalPages} ページ
                        </span>
                        <button onClick={() => hasNext && setCurrentPage(prev => prev + 1)} disabled={!hasNext} className={`p-2 rounded-lg border transition-all ${hasNext ? "border-gray-300 dark:border-white/20 bg-white dark:bg-[#1B1B18] text-black dark:text-white hover:border-[#FAFF69] cursor-pointer" : "border-gray-200 dark:border-white/10 bg-gray-50 dark:bg-[#1B1B18]/50 text-gray-300 dark:text-white/20 cursor-not-allowed"}`} aria-label="次のページ">
                          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                            <path d="M6 4L10 8L6 12" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
                          </svg>
                        </button>
                      </div>;
  })()}
                </> : <div className="text-center py-12 flex flex-col items-center">
                  <p className="text-gray-600 dark:text-gray-400 text-lg block">条件に一致する記事が見つかりませんでした。</p>
                  <p className="text-gray-500 dark:text-gray-500 text-sm mt-2 block">フィルターや検索キーワードを変更してみてください。</p>
                </div>}
            </div>
          </div>
        </div>
      </div>
    </>;
};

export const featuredArticles = [{
  id: 'cloud-services/aws-privatelink-setup-for-clickpipes'
}, {
  id: 'tables-schema/schema-migration-tools'
}, {
  id: 'data-management/read-consistency'
}];

<div className="relative overflow-hidden">
  <div className="absolute top-0 left-0 right-0 opacity-80">
    <img src="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/KEXjaGd0XweSZg01/images/background-light.svg?fit=max&auto=format&n=KEXjaGd0XweSZg01&q=85&s=7588454952512317cf44fe55dfc5839c" className="block dark:hidden pointer-events-none w-full h-auto" alt="装飾用の背景画像。" width="1152" height="388" data-path="images/background-light.svg" />

    <img src="https://mintcdn.com/private-7c7dfe99-postgresql-tls-support/cTIaEq6k6KYDgBI1/images/background-dark.svg?fit=max&auto=format&n=cTIaEq6k6KYDgBI1&q=85&s=8b8718b4be2117d9d0521b6d87ce56a8" className="hidden dark:block pointer-events-none w-full h-auto" alt="装飾用の背景画像。" width="1152" height="388" data-path="images/background-dark.svg" />
  </div>

  <KBExplorer index={kbIndex} featured={featuredArticles} />
</div>
