Working with folders in the IDE(IDEでのフォルダ操作)

Looker IDE では、プロジェクト ファイル用のフォルダがサポートされています。IDE の左側のナビゲーション パネルにフォルダが表示されます。Looker デベロッパーがプロジェクト ファイルをフォルダに整理していない場合、プロジェクトはフラットなファイル構造になり、ファイルは [ファイル ブラウザ] パネルにアルファベット順に表示されます。

プロジェクトをフォルダに整理する場合は、このページの IDE フォルダを使用した既存のプロジェクトの整理で推奨事項をご確認ください。

以下に、デベロッパーがさまざまな種類のプロジェクト ファイル(exploresmodelsviews など)のフォルダを追加したプロジェクトの例を示します。

IDE ファイル ブラウザの表示と非表示を切り替えるには、キーボード ショートカットの Command B(Mac)か Ctrl+B(Windows)を使用するか、ファイル ブラウザ アイコンをクリックします。

ファイル ブラウザ パネルの上部にあるツールバーのアイコンをクリックすると、すべてのフォルダの折りたたみ、一括編集プロジェクト ファイルの検索新しいフォルダ新しいファイルの作成を行うことができます。

左側のパネルの各ファイルまたはフォルダには、そのアイテムで利用可能な操作を表示するメニューがあります。ファイル名の右側にあるその他メニューをクリックしてメニューを開きます。長い名前のアイテムや複数のフォルダにネストされているアイテムについては、左側のパネルをスクロールするとメニューにアクセスできます。

フォルダを使用して LookML ファイルを整理したら、他の Looker デベロッパーが確認できるように、変更を commit して本番環境にデプロイする必要があります。これは、LookML プロジェクトに加えた変更に似ています。

インポートされたプロジェクト フォルダ

プロジェクトをインポートすると、Looker IDE で自動的に imported_projects フォルダが作成されます。ローカル プロジェクトリモート プロジェクトの両方のファイルが imported_projects フォルダに一覧表示されます。インポートしたプロジェクト ファイルをクリックして、その内容を表示します。

これらのファイルは編集できないため、IDE でファイルを一括編集する場合、インポートしたプロジェクト ファイルは表示されません。

ファイルとフォルダの管理

ファイルとフォルダの命名規則

ファイルとフォルダを作成するときは、次の点に注意してください。

  • LookML では大文字と小文字が区別されます。フォルダに名前を付けする際は、プロジェクトの規則を遵守してください。たとえば、プロジェクトですべて小文字を使用することが慣例である場合は、フォルダの名前を Views から views に変更します。これにより、特にファイルを含める場合など、ファイルのパスを指定する必要がある場合に違いが生じます。一般に、LookML のオブジェクトとフォルダの名前に一貫して小文字を使用することは効果的です。
  • ファイル名にスペースや次の文字を含めることはできません: / ? * : | " < > %
  • Looker IDE で LookML ファイルを作成する際、拡張子を手動で指定しないと、Looker によってファイル名の末尾に .lkml 拡張子が自動的に追加されます。たとえば、flights_data_tests というファイル名を入力すると、Looker では flights_data_tests.lkml という名前になります。
  • Explore ファイルを作成するには、ファイル名の末尾に .explore.lkml 拡張子が必要です。ファイルをアップロードする場合は、完全な .explore.lkml 拡張子を使用する必要があります。Looker の IDE で一般的な LookML ファイル オプションを使用してファイルを作成している場合、ファイル名の末尾に .lkml は追加されますが、ファイル名の拡張子は .explore を手動で追加する必要があります。たとえば、Looker IDE を使用して flights という名前の Explore ファイルを作成するには、「flights.explore」または「flights.explore.lkml」と入力します。この場合、ファイル名は flights.explore.lkml になります。
  • Looker IDE で LookML プロジェクトへのファイルの追加は、Looker IDE で行うか、Looker IDE でアップロードすることをおすすめします。Looker IDE の外部でファイルを作成してから、Looker IDE を使用して pull する(production ブランチ)場合は、正しい命名規則を使用し、ファイル名に .lkml 拡張子(Explore ファイルの場合は explore.lkml)を含めます。サポートされていない文字がファイル名に含まれている場合、Looker IDE ファイル ブラウザにはファイル名が赤色で表示され、サポートされている文字でファイル名を変更するまで、そのファイルの内容は表示されません。また、ファイルの拡張子が .lkml でない場合、Looker IDE はそのファイルをまったく表示しません。

フォルダの作成

さまざまなファイル形式(ビューファイルモデルファイルなど)のフォルダを作成できます。サブフォルダも作成できます。サブフォルダは、ビューのサブセットを include する場合に非常に役立ちます。

フォルダを作成する際は、LookML では大文字と小文字が区別されることに注意してください。フォルダに名前を付けする際は、プロジェクトの規則を遵守してください。たとえば、プロジェクトですべて小文字を使用することが慣例である場合は、フォルダの名前を Views から views に変更します。これにより、特にファイルを含める場合など、ファイルのパスを指定する必要がある場合に違いが生じます。一般に、LookML のオブジェクトとフォルダの名前に一貫して小文字を使用することは効果的です。ファイルとフォルダの命名に関する制限事項とガイドラインについては、命名規則をご覧ください。

フォルダを作成するには:

  1. 適切なメニューから [フォルダの作成] オプションを選択します。
    • ディレクトリ構造の最上位に新しいフォルダを作成するには、[File Browser] パネルの上部にある [+] メニューを使用します。
    • 既存のフォルダの下に新しいサブフォルダを作成するには、既存のフォルダのその他メニューを使用します。
  2. 新しいフォルダの名前を入力します。
  3. [Create(作成)] をクリックします。

新しいフォルダがナビゲーション パネルに追加されます。

ファイルの作成

Looker の管理者が LookML 生成機能の改善に関する Labs 機能を有効にしている場合、[ファイル ブラウザ] パネルの上部にある [+] メニューには、ここにリストされているオプションに加えて、[Generate LookML from Database] オプションが表示されます。

LookML プロジェクトで新しいファイルを作成するには:

  1. 該当するメニューを選択します。

    • ディレクトリ構造の最上位に新しいファイルを作成するには、[File Browser] パネルの上部にある [+] メニューを使用します。
    • 既存のフォルダに新しいファイルを作成するには、既存のフォルダのその他メニューを使用します。
  2. 作成する LookML ファイルのタイプを選択します。次の種類のファイルを作成できます。

    * プロジェクト マニフェスト ファイルは、Looker IDE 内のファイル ブラウザの上部にある+ アイコンから、プロジェクトにマニフェスト ファイルがまだない場合にのみ作成できます。これは、1 つのプロジェクトに設定できるマニフェスト ファイルは 1 つのみであり、マニフェスト ファイルはプロジェクトのディレクトリ構造のルートレベルに配置する必要があるためです。
    ** [Create Locale Strings File] オプションは Looker IDE のファイル ブラウザの上部にある [+] アイコンからのみ使用できます。ただし、ロケール文字列ファイルを作成(またはアップロード)すると、ファイルはフォルダに移動できます。

  3. [ファイルの作成] ポップアップで、新しいファイルの名前を入力します。ファイル名の制限事項とガイドラインについては、ファイルの命名規則をご覧ください。

  4. [CREATE] をクリックします。作成したファイルが新しい場所に表示されます。必要に応じて、ファイルを簡単に別のフォルダに移動できます。

ファイルを作成した後、プロジェクトの他の LookML ファイルでファイルから要素を参照する場合は、必ず include パラメータを使用します。詳細については、include パラメータのドキュメント ページをご覧ください。

ファイルのアップロード

パソコンからプロジェクトにファイルをアップロードすることもできます。これは、パソコンのローカルに JSON データファイルまたは LookML ファイルを作成している場合に役立ちます。

ファイル名の制限事項とガイドラインについては、命名規則をご覧ください。

プロジェクトにファイルをアップロードするには、Looker IDE のドラッグ&ドロップ機能を使用します。

  1. プロジェクト ファイルに移動します。
  2. パソコンから Looker IDE にファイルをドラッグします。ファイルはディレクトリ構造のルートに表示されます。
  3. ファイルをアップロードしたら、アイテムを別のフォルダに移動します。

ファイルをアップロードした後に、プロジェクトの他の LookML ファイルでファイルまたはファイル内の要素を参照する場合は、include パラメータを使用します。詳細については、include パラメータのドキュメント ページをご覧ください。

ファイルとフォルダを削除する

フォルダまたはファイルを削除するには、IDE の左側のパネルで、アイテムのその他メニューから [削除] を選択します。

フォルダを削除すると、フォルダの内容も削除されます。そのため、フォルダを削除する場合は注意が必要です。フォルダを削除する前に、以下の手順を行ってください。
フォルダ内のファイルを削除することを確認するか、フォルダを削除する前にそのファイルを別の場所に移動する。
プロジェクトの include ステートメントで参照されているファイルがフォルダに含まれていないことを確認します。IDE フォルダで include を使用する方法については、このページの IDE フォルダで include を使用するをご覧ください。

フォルダを削除すると、IDE に確認ポップアップが表示されます。ポップアップが開き、削除対象となるアイテムの数(フォルダやフォルダ内のファイルも含む)が指定されます。

フォルダ内プロジェクトのアイテムを移動する

1 つのファイルまたはフォルダ全体とその内容を、新しい場所にドラッグ&ドロップできます。

ファイルまたはフォルダを別のフォルダにドラッグ&ドロップします。他のフォルダやファイルを受け付けるために、移動先のフォルダを展開する必要はありません。アイテムにカーソルを合わせると、そのフォルダが自動的に開きます。

ファイルのパスを変更する場合は、新しいファイルパスと一致するようにプロジェクトのすべての include ステートメントを必ず更新してください。IDE フォルダで include を使用する方法については、このページの IDE フォルダで include を使用するをご覧ください。

また、ファイルのパスを変更すると、Git は事実上ファイルを削除し、新しいファイルパスで新しいファイルを作成します。つまり、Git は新しいファイルとみなすため、ファイルの Git 履歴は空になります。移動前のファイルの Git 履歴を確認するには、Git インターフェースを使用して元の場所にあるファイルに移動し、そこから Git 履歴を表示します。(Git は事実上ファイルを削除し、別の名前で新しいファイルを作成するため、名前を変更したファイルにも同じロジックが適用されます)。

ファイルとフォルダの一括編集

複数のフォルダやファイルを選択して新しい場所に移動したり、削除したりすることもできます。

ファイルとフォルダを一括で移動する

フォルダとファイルを一括で移動するには:

  1. [ファイル ブラウザ] パネルの上部にある [一括編集] アイコンをクリックします。
  2. 移動するアイテムを選択します。選択したファイルの数が、[ファイルを選択] ヘッダーの横に紫色で表示されます。
    • 個々のファイルを選択または選択解除するには、各フォルダを展開し、ファイル名の横にあるチェックボックスをオンにします。
    • フォルダ全体とそのコンテンツを選択または選択解除するには、フォルダ名の横にあるチェックボックスをオンにします。
    • ディレクトリ リストのセクション全体を選択するには、Shift キーを押しながらクリックします。範囲内の最上位のアイテムに対するチェックボックスをクリックし、Shift キーを押しながら、リストの最後のアイテムのチェックボックスをオンにします。アイテムと、その中のすべてのアイテムが選択されます。または、アイテムを Shift キーを押しながらクリックするだけで、ディレクトリのリストで、そのアイテムおよびその上にあるすべてのアイテムを選択できます。
  3. [一括移動] フォルダ アイコンをクリックしてオプションを選択します。IDE に、フォルダ選択のポップアップ メニューが表示されます。
  4. ポップアップ メニューで、選択したアイテムのフォルダを選択するか、[新規フォルダ] をクリックして新しいフォルダを作成します。プロジェクト名は、次のメニューページの上部で選択したフォルダのファイルパスを表示します。プロジェクトのルート ディレクトリにアイテムを移動するには、フォルダを選択せずに [移動] をクリックします。
  5. [移動] をクリックして選択した保存先が正しいことを確認するか、[新しいフォルダ] をクリックして選択したフォルダ内に新しいフォルダを作成するか、ファイルパスでプロジェクト名のリンクをクリックしてメインのフォルダ オプション メニューに戻ります。
  6. [ファイルを選択] ヘッダーの [X] をクリックして、一括編集モードを終了します。

ファイルのパスを変更した後は、新しいファイルパスと一致するようにプロジェクト内の include ステートメントを更新します。IDE フォルダで include を使用する方法については、このページの IDE フォルダで include を使用するをご覧ください。

また、ファイルのパスを変更すると、Git は事実上ファイルを削除し、新しいファイルパスで新しいファイルを作成します。つまり、Git は新しいファイルとみなすため、ファイルの Git 履歴は空になります。移動前のファイルの Git 履歴を確認するには、Git インターフェースを使用して元の場所にあるファイルに移動し、そこから Git 履歴を表示します。(Git は事実上ファイルを削除し、別の名前で新しいファイルを作成するため、名前を変更したファイルにも同じロジックが適用されます)。

ファイルとフォルダを一括削除する

フォルダとファイルを一括で削除するには:

フォルダを削除すると、フォルダの内容もすべて削除されます。フォルダを削除する前に、フォルダ内のファイルを削除することを確認してください。そのままにしておく場合は、フォルダを削除する前にファイルを別の場所に移動してください。

  1. [ファイル ブラウザ] パネルの上部にある [一括編集] アイコンをクリックします。
  2. 削除するアイテムを選択します。選択したファイルの数が、[ファイルを選択] ヘッダーの横に紫色で表示されます。
    • 個々のファイルを選択または選択解除するには、各フォルダを展開し、ファイル名の横にあるチェックボックスをオンにします。
    • フォルダ全体とそのコンテンツを選択または選択解除するには、フォルダ名の横にあるチェックボックスをオンにします。
    • ディレクトリ リストのセクション全体を選択するには、Shift キーを押しながらクリックします。範囲内の最上位のアイテムに対するチェックボックスをクリックし、Shift キーを押しながら、リストの最後のアイテムのチェックボックスをオンにします。アイテムと、その中のすべてのアイテムが選択されます。または、アイテムを Shift キーを押しながらクリックするだけで、ディレクトリのリストで、そのアイテムおよびその上にあるすべてのアイテムを選択できます。
  3. アイテムを削除するゴミ箱アイコンをクリックします。IDE により、選択されたアイテムがリストされたポップアップ メニューが表示されます。
  4. [はい、削除] をクリックして削除対象のアイテムを確認するか、[キャンセル] をクリックしてアイテムの選択に戻ります。
  5. [ファイルを選択] ヘッダーの [X] をクリックして、一括編集モードを終了します。

IDE フォルダでの include の使用

プロジェクト ファイルをフォルダに整理した後、include ステートメントを使用するときに、そのファイルのパスを指定する必要があります。

include を使用する場合は、LookML では大文字と小文字が区別されることに注意してください。ファイルへのパスを指定するときは、そのファイルの大文字と小文字、およびパス内のフォルダを一致させる必要があります。たとえば、ファイルが Views フォルダにある場合、include パラメータではこの大文字と小文字を一致させる必要があります。したがって、include: "/Views/accidents.view" を指定します。一般に、LookML のオブジェクトとフォルダには、すべて小文字の名前を付けることをおすすめします。

include ステートメントでは絶対パスまたは相対パスを使用できます(例については、パスの構文をご覧ください)。また、ワイルドカード *** を使用すると、一度に複数のファイルを含めることができます(例については、ワイルドカードの例をご覧ください)。

たとえば、プロジェクト内に次のディレクトリ構造があるとします。

次のステートメントには、products ビュー、order_facts ビュー、/views/users/ ディレクトリ内のすべてのビューが含まれます。

include: "/views/products.view"
include: "/views/orders/order_facts.view"
include: "/views/users/*.view"

ファイルのパスを変更する場合は、プロジェクトの新しいステートメントに合わせてプロジェクトの include ステートメントを必ず更新してください。古い include ステートメントが既存のファイルやファイルパスを参照しなくなった場合、LookML の検証に関する警告が表示されることがあります。さらに、参照先のオブジェクトのファイルパスが変更されたために見つけられなかったものについて、LookML 検証エラーが発生することがあります。

便利なヒント: ワイルドカードを使用する場合、ファイル内の行番号に関する情報アイコンにカーソルを合わせるか、include ステートメントをクリックしてクイックヘルプを表示することで、含まれるファイルを確認できます。

便利なヒント: Looker のその他メニューから [ファイルパスをコピー] を選択して、ファイルのパスをコピーできます。

パスの構文

ファイルを含めるために使用できる構文の例を次に示します。

構文 説明
PATH 現在のファイルの場所から始まる相対パス。
./PATH 現在のファイルの場所から始まる相対パス。この例は、上記の例と同じファイル(PATH)を指しています。
../PATH 現在のファイルの親ディレクトリからの相対パス。
/PATH 現在のプロジェクトのルートを起点とする絶対パス。
//PROJECT_NAME/PATH PROJECT_NAME というインポート済みプロジェクトのルートから始まる絶対パス。

ワイルドカードの例

LookML の絞り込みを使用している場合は、インクルードでワイルドカードを使用しないでください。LookML の絞り込みでは、インクルードの順序を利用します。インクルードでワイルドカードを使用しても、各ファイルを含める順序は制御できません。絞り込みの詳細については、LookML の絞り込みのドキュメントをご覧ください。

ワイルドカードを使用した例を次に示します(PATH は、前のテーブルのパス構文に置き換えることができます)。

構文 説明
PATH/*.view 末尾が .viewPATH のワイルドカードが一致するファイル。
PATH/*.view.lkml 末尾が .view.lkmlPATH のワイルドカードが一致するファイル。

ビューファイルの拡張子は .view.lkml であるため、この例では、前の例と同じファイル(PATH/*.view)を指定します。.lkml 部分は IDE には表示されません。また、include ステートメントで必要な .lkml 部分ではありません。ただし、ファイル拡張子のこの一般的な部分にワイルドカードを使用することもできます。プロジェクト ファイル拡張子の一覧については、LookML プロジェクト ファイルのドキュメント ページをご覧ください。
PATH/*.lkml 末尾が .lkmlPATH のワイルドカードが一致するファイル。

.view.lkml.model.lkml など、複数のファイル形式では、ファイル拡張子の最終部分として .lkml が共有されます。.lkml 部分は IDE には表示されません。また、include ステートメントで必要な .lkml 部分ではありません。ただし、ファイル拡張子のこの一般的な部分にワイルドカードを使用することもできます。プロジェクト ファイル拡張子の一覧については、LookML プロジェクト ファイルのドキュメント ページをご覧ください。
PATH/myfile.* 拡張子が PATHmyfile というワイルドカード マッチング ファイル。
PATH/myfile.*.lkml PATH にある任意の拡張子 .lkml の myfile という名前のワイルドカード マッチング ファイル。
PATH/my*file.view 先頭が my、末尾が file.view のワイルドカードと一致するファイル。PATH
PATH/my*fi*le.view ファイルに一致するワイルドカード。先頭に my、次に文字、fi、その後に文字を追加して、末尾に le.viewPATH を付けます。
PATH/*/myfile.lkml フォルダ名のワイルドカード(1 つのネストレベルにのみ一致)。PATH の直接の子ディレクトリにあるすべての myfile.lkml ファイルと一致します。
PATH/**/my_file.view PATH およびすべてのサブディレクトリにある my_file.view.lkml というファイルすべてに対して、再帰的なワイルドカード マッチング(ネストの量に一致)
PATH/**/*.view 末尾が .view.lkml のすべてのファイルに一致する再帰ワイルドカード。PATH のサブディレクトリにあります。
PATH/**/my_folder/myfile.view PATH より下の任意の深さのサブパス /my_folder/myfile.view に一致する再帰ワイルドカード。

IDE フォルダでの map_layer の使用

プロジェクトで IDE フォルダが有効になっている場合は、map_layer のプロジェクト ファイルを指定する際に、ファイルパスを使用する必要があります。

map_layer: neighborhoods {
  file: "/maps/my_neighborhoods.json"
}

IDE フォルダを使用した既存のプロジェクトの整理

プロジェクトで以前のフラット ファイル構造を使用していた場合は、この構造をそのままにしておくことができます。ただし、プロジェクト ファイルをフォルダに整理する場合は、次の準備を行うことを強くおすすめします。

  • すべてのデベロッパーがファイル構造を事前に計画できるようにします。
  • すべての Looker デベロッパーがすべてのアップデートを本番環境にデプロイしていることを確認します。デベロッパーが変更をデプロイ解除した場合、ブランチには、最後に本番環境から pull したときに存在していたファイル構造が反映されます。その時点でプロジェクトのファイル構造がフラットな場合、開発者のバージョンのファイルは元の場所に本番環境に push されるため、最終的にはファイルのコピーが 2 つになります。さらに、フォルダへの移行中にデベロッパーがデプロイを解除した変更がある場合、そのデベロッパーは移行後に本番環境から pull するときにマージの競合に直面します。
  • プロジェクトが新しいディレクトリ構造に完全に移行されるまで、すべてのデベロッパーに対して一時的なコードフリーズを実施する
  • ファイルを移動するデベロッパーを 1 人割り当てる。次の手順では、単一のデベロッパーがプロジェクトを IDE フォルダに移行することを想定しています。複数のデベロッパーがファイルを移動する必要がある場合は、マージ時に競合が発生しないように、タスクを開発者間で分割してください。マージの競合が発生した場合は、バージョン管理の使用とデプロイのドキュメントで解決方法を確認してください。

Git でファイルを移動すると、ファイルを削除して、新しいファイルパスで新しいファイルを作成することになります。つまり、Git は新しいファイルとみなすため、ファイルの Git 履歴は空になります。移動前のファイルの Git 履歴を確認するには、Git インターフェースを使用して元の場所にあるファイルに移動し、そこから Git 履歴を表示します。

すべてのデベロッパーが変更を push して commit し、プロジェクトのすべての処理を一時停止したら、プロジェクトを新しいディレクトリ構造に移行できます。

以下のステップをすべて行うには、デベロッパーを 1 人割り当てます。

  1. すべての開発ブランチに対するすべての更新が本番環境にデプロイされていることを確認します。これには、IDE フォルダへの移行を行うデベロッパーの開発ブランチも含まれます。
  2. 他のすべてのデベロッパーがプロジェクトの変更を停止したことを確認します。
  3. 本番環境から pull
  4. プロジェクトのフォルダを作成する
  5. プロジェクト ファイルをフォルダに移動する。一度に 1 つのファイルを作成するか、一括編集を使用します。
  6. プロジェクトの LookML を検証する。この手順では移動される可能性があるファイルの場所への参照を include ステートメントと map_layer ステートメントが使用するため、LookML のエラーと警告は複数あると想定されます。
  7. ファイルの新しいパスと一致するように、プロジェクト内の include ステートメントと map_layer ステートメントを更新します。さらに、参照先のオブジェクトのファイルパスが変更されたために見つけられなかったものについて、LookML 検証エラーが発生することがあります。IDE フォルダで include を使用する方法については、このページの IDE フォルダで include を使用するをご覧ください。IDE フォルダで地図レイヤを使用する方法については、IDE フォルダで map_layer を使用するをご覧ください。

    便利なヒント: ワイルドカードを使用すると、include ステートメントに起因する LookML 検証の警告とエラーを一時的に修正できます。例としてビューファイルを使用すると、include: "/**/*.view" を指定して、すべてのプロジェクト フォルダにすべてのファイルを含めることができます。これにより、開発の進行中に LookML の検証で問題が発生するのを防ぐことができます。ただし、必要以上のファイルを含めるとパフォーマンスに影響する可能性があるため、この方法は長期的には推奨されません。

  8. 変更を commit します

  9. 更新を本番環境にデプロイする

  10. 他の Looker デベロッパーに対し、本番環境から更新を pull してプロジェクトで開発を再開できるようになったことを通知します。