Skip to content

cdm notebook の使い方

cdm notebook サブコマンドで、ノートブックファイル(*.cnb.md)の取得・反映・検証・実行・レンダリングなどの一通りの操作を行うことができます。

cdm notebook <subcommand> [arguments] [options]

このページでは、編集から反映までの操作の流れと、サブコマンドで共通利用する引数の指定方法について説明します。個別サブコマンドの詳細は、各リンク先を参照してください。

操作の流れ

cdm notebook のサブコマンドの説明は、利用する場面ごとに3つのページに分かれています。おおまかには「取得と反映で取り出す → 編集で作り込む → 実行と出力で動作確認 → 取得と反映で書き戻す」という流れで進めます。

取得と反映

サーバ上のノートブックをローカルに取り出したり、編集後の変更を書き戻したりするサブコマンドです。詳細は 取得と反映 を参照してください。

サブコマンド機能概要
notebook cloneサーバ上のノートブックを新規取得
notebook createサーバ上に新規ノートブックを作成して取得
notebook pullローカルファイルをサーバの最新状態に更新
notebook diffサーバへ反映した場合の差分を確認
notebook pushローカルの変更をサーバに反映
notebook deleteサーバ上のノートブックを削除
notebook moveサーバ上のノートブックを別フォルダに移動
notebook copyサーバ上のノートブックを複製
notebook infoノートブックのメタ情報を取得
notebook listフォルダ直下のノートブックを一覧
notebook searchキーワードでノートブックを横断検索
notebook folder listフォルダ直下のサブフォルダを一覧
notebook folder infoフォルダのメタ情報を取得

編集を始める前に、まず対象のノートブックをローカルに取り出します。

  • 編集対象が決まっている場合は、ノートブックのURLやIDを指定して notebook clone で取得します。新規に作る場合は notebook create でサーバ側に作成しつつローカルに取得します。
  • 既に手元にあるファイルを編集する場合は、作業前に notebook pull でサーバの最新状態に揃えておくと、後の書き戻し時に差分が生じにくくなります。
  • 新しいノートブックを作る際に、既存のノートブックを参考にしたいこともあります。その場合は notebook search(キーワードで横断検索)や notebook list / notebook folder list で参考になりそうなノートブックを見つけ、notebook clone で手元に取得しておくと、編集時の参考にできます。

編集が済んだら、サーバへ書き戻します。

  • 反映前に notebook diff で「サーバへ反映した場合に何が変わるか」を確認できます(単純な文字列差分ではなく、サーバ側の統合処理を反映した差分が確認できます)。
  • 問題がなければ notebook push で反映します。

編集

ローカルの *.cnb.md を作り込む際に、繰り返し使うサブコマンドです。詳細は 編集 を参照してください。

サブコマンド機能概要
notebook validateスキーマ・構文を検証(書き換えなし)
notebook format自動修復・検証・整形
notebook param listパラメータ値の一覧
notebook param resetパラメータ値のリセット
notebook build-sql参照を解決した実行可能なSQLにビルド
notebook depsSQLの依存関係・影響範囲を分析
notebook lintダイアグラム・数式の文法をチェック
notebook previewブラウザと双方向同期しながらプレビュー・編集

ノートブックファイルの本文は CLI では編集できないため、エディタやファイルシステム経由で直接編集します。*.cnb.md は通常のマークダウンとフォーマットが異なるため、手動での整形は避け、編集後は必ず CLI で検証・整形します。

  • 編集のたびに notebook format を実行すると、自動修復可能なエラー(id の指定漏れなど)が修正され、あわせて検証・整形が行われます。検証だけ行いたい場合は notebook validate を使います。
  • SQLブロックの参照やバインドが意図通りに展開されるかは、notebook build-sql で実際にビルドされるSQLを出力して確認できます。出力を cdm sql にパイプすれば、その場で実行・検証もできます。
  • パラメータの値の確認やリセット(相対日付の解決、デフォルト値へのロールバック)は、notebook param list / notebook param reset で行えます。
  • SQLブロックを書き換える前に、notebook deps で依存関係や影響範囲(--invert)を確認しておくと、変更が他のブロック・チャートに与える影響を把握できます。
  • クエリ実行結果やチャートを確認しながら作り込む場合は、notebook preview でブラウザと双方向同期するライブセッションを開きます。プレビュー中はファイルとブラウザの変更が相互に反映され、整形や実行・反映もブラウザ側から行えます。

実行と出力

ある程度形になったノートブックを実行し、結果の反映や成果物の出力、書き戻しの準備を行うサブコマンドです。詳細は 実行と出力 を参照してください。

サブコマンド機能概要
notebook runノートブック内のSQLを一括実行し結果を反映
notebook render pageページを PNG・PDF として出力
notebook render chartチャートを画像として出力
notebook stripジョブ実行情報を削除

SQLが書けたら実行してファイルに結果を反映し、最終的な確認や成果物の出力を行います。

  • notebook run でノートブック内のSQLを一括実行し、実行状態・結果をファイルに反映します。キャッシュを参照するため変更があったSQLだけが実行され、最新データで実行したい場合は --refresh を指定します。
  • 仕上がったページやチャートを共有・保存用に出力する場合は、notebook render page / notebook render chart で PNG・PDF を生成します。レンダリングはファイルに記録済みの実行結果を参照するため、最新データで出力したい場合は事前に notebook run を実行してください。
  • サーバへの書き戻しや Git 等での管理時に、実行結果に由来する差分を残したくない場合は、notebook strip でジョブ実行情報を取り除けます。

引数の共通定義

サブコマンドが扱う対象には、サーバ上のノートブック・フォルダと、ローカルのファイル・ディレクトリがあります。サーバのフォルダ階層とローカルのディレクトリ構造は独立しており、例えばサーバ上で別々のフォルダに配置されたノートブックを、ローカルでは同じディレクトリで管理することもできます

サーバ上の対象の指定方法

ノートブック

サーバ上のノートブックを引数として指定する場合は、以下のいずれかの形式で指定します。

  • notebookId (24文字の16進数): 例 671ef14b0d08cf6c657df7da
  • URL: Codatum のノートブックページのURL
    • 形式: https://app.codatum.com/workspace/<wsId>/notebook/<notebookId>/<pageId>
    • URL 内の <wsId> は、利用中の profile のワークスペースと一致する必要があります

フォルダ

サーバ上のフォルダを引数として指定する場合は、以下のいずれかの形式で指定します。

  • フォルダID (24文字の16進数): 例 67955fa3c1834fdc34705bf8
  • URL: Codatum のフォルダページのURL
    • 形式: https://app.codatum.com/workspace/<wsId>/notebook/?folder=<folderId>
    • URL 内の <wsId> は、利用中の profile のワークスペースと一致する必要があります
  • WORKSPACE: ワークスペースのルートフォルダ
  • TEAMSPACE:<teamspaceId>: チームスペース単位のルートフォルダ
  • PRIVATE: 利用中の profile のアカウントのプライベートのルートフォルダ
    • 利用中のプランや権限によっては、利用できない場合があります

ローカルの対象の指定方法

ノートブックファイル

*.cnb.md ファイルへのファイルパスを指定します。 拡張子を省略した場合は .cnb.md を自動的に付与します(例: ./notebooks/sales./notebooks/sales.cnb.md

ディレクトリ

*.cnb.md ファイルを含むディレクトリパスを指定します。 指定されたディレクトリ配下のすべての *.cnb.md ファイルが対象となります。

サーバ上の対象との紐づけ

ファイルやディレクトリを指定した場合、サーバ上の対象との紐づけは、ノートブックファイルのフロントマターで指定されたノートブックID(id)を用いて行われます。

フロントマター内の workspace_id と、利用中の profile のワークスペースIDが一致しない場合、ワークスペースの不一致エラーとして、コマンドは exit 1 で終了します。ディレクトリを指定した場合、配下のすべてのノートブックファイルに対して検証が行われます。

SQL・ページの指定キー

build-sql / deps / run / render chart では、--key で対象の SQL・チャート・グリッド要素を限定できます。--key の形式はページの種類によって異なります。

  • ドキュメントページの SQLブロック: pageId:${pageId}/sqlId:${sqlId}
  • ドキュメントページのチャート(render chart): pageId:${pageId}/chartId:${chartId}
  • グリッドページの グリッド要素: pageId:${pageId}/itemId:${itemId}

また、--page で対象を特定ページに限定できます。<pageId> にはページ属性で指定した id を指定してください。--page--key を同時に指定した場合、エラーを出力して exit 1 で終了します。

Codatum CLI AIエージェントのための分析環境