Skip to main content
Apify は、Webスクレイピングと自動化のためのプラットフォームです。Actors と呼ばれるサーバーレスのクラウドプログラムを構築、実行、スケーリングできます。Actor は、Webサイトのスクレイピング、Webクローリング、データ処理、ワークフローの自動化を行います。Actor を実行するたびに、構造化された出力が Datasets (JSON オブジェクト のコレクション) に保存されます。 スクレイピングまたは処理したデータを ClickHouse に取り込み、分析、監視、または enrichment パイプラインに活用できます。

主要な概念

セットアップガイド

1

ClickHouse の接続情報を確認する

HTTP(S) で ClickHouse に接続するには、次の情報が必要です。ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。 サービスを選択し、Connect をクリックします。
ClickHouse Cloud サービスの接続ボタン
HTTPS を選択します。接続情報は curl コマンドの例として表示されます。
ClickHouse Cloud HTTPS 接続情報
セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
2

Apify の前提条件

あわせて、以下が必要です。
3

依存関係をインストールする

Apify JavaScript クライアント と ClickHouse JavaScript クライアント をインストールします。
Apify では Python クライアント も提供しています。Python を使う場合は、pip で apify-client をインストールし、ClickHouse には clickhouse-connect を使用してください。
4

ClickHouse にターゲットテーブルを作成する

スクレイピングしたデータを格納するテーブルを作成します。スキーマは使用する Actor によって異なります。この例では、商品スクレイピング用の Actor に対して MergeTree を使用しています。
5

Apify Dataset を取得して ClickHouse に読み込む

次のスクリプトは、Apify Actor の実行結果を取得して ClickHouse に挿入します。
大規模な Dataset の場合は、List dataset items エンドポイントの limit パラメータと offset パラメータを使って、結果をページ分割して取得してください。また、clean=true を指定すると、空でない重複排除済みの項目のみを取得できます。
6

webhook で自動化する

スクリプトを手動で実行する代わりに、Actor の完了時に毎回データが ClickHouse に読み込まれるよう、パイプラインを自動化します。
  1. Apify Console で対象の Actor を開き、Integrations タブに移動します。
  2. 次の内容で新しい webhook を追加します。
    • Event type: ACTOR.RUN.SUCCEEDED
    • Action: ローダーのエンドポイントへの HTTP POST、または ClickHouse への挿入を処理する別の Actor をトリガー。
  3. webhook の payload には defaultDatasetId が含まれており、これを使ってその実行結果を取得できます。
payload の詳細と設定オプションについては、Apify webhook documentation を参照してください。別の方法として、Apify Schedules を使って cron のようなスケジュールで Actor を実行し、読み込みステップに webhook を組み合わせることもできます。

ベストプラクティス

Apify からデータを取得する

HTTP を直接呼び出す代わりに、Apify のクライアントライブラリ (JavaScript 用の apify-client または Python) を使用してください。ページネーション、再試行、認証を自動で処理してくれます。大規模な Dataset では、List dataset items エンドポイントの limit パラメータと offset パラメータを使って、結果をページ分割しながら取得してください。

ClickHouse へのロード

ClickHouse に挿入する際は、JSONEachRowフォーマットを使用してください。追加の変換は不要で、Apify の JSON 出力にそのまま対応しています。 ClickHouse のテーブルスキーマは、Actor の出力フィールドに合わせてください。Actor の出力スキーマは、Apify Store の該当ページ、または実行後の Dataset タブで確認できます。

パフォーマンス

JavaScript クライアント から高スループットで INSERT する場合は、パフォーマンス最適化のヒントに従ってください。1 行ずつ INSERT するのではなく、複数の行をまとめてより大きな INSERT にし、クライアント側でバッチ処理を行うのが現実的でない場合は、非同期 INSERTを検討してください。

セキュリティ

このページの例では、わかりやすさを優先して default ユーザーとデータベースを使用しています。本番環境では、ターゲットテーブルへの挿入に必要な最小限の権限のみを持つ専用ユーザーを作成し、認証情報は安全に保管してください (たとえば、ソースコードにコミットするのではなく、環境変数やシークレットマネージャーに保存します) 。詳しくは、クラウドアクセス管理を参照してください。
最終更新日 2026年7月24日