クエリの実行と管理

Prev Next

VPC環境で利用できます。

クエリを入力して実行する方法と、入力したクエリを保存して活用する方法を説明します。

クエリ模擬実行

クエリ模擬実行を開始すると入力されたクエリは正式に処理されず、そのクエリ文を処理するときはスキャンされるデータ量を測定して結果ポップアップに表示します。スキャンされるデータ量を予め測定して発生する料金を予測できます。
クエリを模擬実行する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. データソースを選択した後、クエリ入力のポップアップにクエリ文を入力します。
    • テンプレートクエリを利用する場合、クエリ文にデータソースが定義されているため、直接選択する必要がありません。[クエリ] タブ > [テンプレートクエリ] ボタンをクリックした後、実行したいクエリを選択するとそのクエリ文が自動で入力されます。
  4. [模擬実行] ボタンをクリックします。
  5. 画面下部の模擬実行結果を確認します。
参考
  • クエリ模擬実行は料金が発生しません。
  • ストレージカタログを含むクエリの場合、模擬実行結果にはストレージカタログデータのサイズは含まれません。詳細は、ストレージカタログ機能をご参照ください。

クエリ実行

クエリを実行する方法は次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. データソースを選択した後、クエリ入力のポップアップにクエリ文を入力します。
    • データベースドロップダウンメニューからデータベース名を選択すると、ソースパスを全て入力することなく、テーブル名のみ簡単に入力できます。
      dataquery-query-vpc_database_ko
    • テンプレートクエリの場合、データソースは「public_data」所属のデータベースで予め定義されています。[クエリ] タブ > [テンプレートクエリ] ボタンをクリックした後、実行したいクエリを選択すると実行可能なクエリ文が自動で入力されます。
    • 同じクエリを再実行する場合、効率的な処理のために結果再利用機能をオンにすることができます。詳細は、クエリ結果再利用設定をご参照ください。
  4. [実行] ボタンをクリックします。
    • クエリ処理時にスキャンされるデータ量を予め測定したい場合は、 [模擬実行] ボタンを先にクリックして測定結果を確認した後、 [実行] ボタンをクリックします。
  5. 画面下部の実行結果を確認します。
    • 結果領域でクエリ結果以外に様々な情報を確認できます。結果確認に関する詳細は、クエリ結果照会をご参照ください。
    • 入力したクエリはページを移動すると消えるため、必要な場合はクエリ文を保存してください。保存に関する詳細は、クエリ文保存をご参照ください。
参考
  • クエリ実行中に有効化する [実行キャンセル] ボタンをクリックするとクエリ実行をキャンセルできます。
  • クエリ実行は1つの SQL文に対して実行可能です。
    • 基本的に Editor内に作成された文字列全体を実行する SQL文として認識して実行します。
    • Editor内で作成された文字列が2つ以上の SQL文で構成されている場合は、実行したい文字列を選択領域で選択すると、その文字列に対してのみクエリを実行できます。
注意

一部のサポートされていないファイル形式やテーブルの場合、クエリ動作ができない場合があります。

  • 実際のテーブルのスキーマまたはファイル形式に合わないファイルがテーブル Locationに一緒に存在するテーブル
  • サポートしていないエンコード形式のデータファイルを含むテーブル
    • データファイルは UTF-8エンコード形式をサポート

Icebergテーブル

Icebergテーブルに対するクエリを実行できます。Apache Icebergは膨大なデータを分析するための高性能テーブルフォーマットです。Apache Icebergテーブルのバージョン1と2をサポートします。

Icebergテーブルを作成するには、当該ページで説明する CREATE TABLE USING ICEBERG 文を使用します。

CREATE TABLEテーブル名(col_name data_type) USING ICEBERG

Icebergテーブルに対して、次のタスクをサポートします。

  • SELECT, DESCRIBE, SHOW STATS, SHOW CREATE TABLE
  • INSERT, UPDATE, MERGE, DELETE
  • ALTER TABLE, DROP TABLE, COMMENT
注意

Icebergテーブルを削除すると、実際の dataも削除されます。実際の dataを削除しないようにするには、Icebergテーブルの作成時に次のような設定を使用する必要があります。

  • data_location
  • object_store_layout_enabled = true
  • gc.enabled = false

設定の詳細については、Trinoドキュメントをご参照ください

CREATE TABLEテーブル名(col_name data_type)
with (
  "object_store_layout_enabled" = true, 
  "data_location" = 'data保存パス', 
  extra_properties = MAP(ARRAY['gc.enabled'], ARRAY['false'])
) 
USING ICEBERG;
参考

Data Queryで提供する Icebergクエリは trinoをベースに提供します。上記で案内されたリスト以外の追加内容は、Trinoドキュメントをご参照ください。

クエリ結果再利用設定

クエリ結果再利用とは、特定時間の前に処理されたクエリによって存在する結果を再度利用することです。同じ内容のクエリを繰り返して実行する場合に活用すると、クエリ処理時間を節約できます。
結果再利用はクエリ文を入力したステータスで、実行前に設定します。結果再利用を設定する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. クエリ入力のポップアップに希望するクエリ文を入力します。
  4. クエリのポップアップの右上にある結果再利用項目の再利用しないをクリックします。
    dataquery-query-vpc_reuse_ko
  5. ドロップダウンメニューから結果再利用を許可する時間を選択します。
    • 1時間前12時間前1日前の中から選択するか、直接入力をクリックして最小1分から最大7日以内に設定できます。
    • 設定後にクエリの [実行] ボタンをクリックすると有効な結果が存在する場合に再利用します。

パラメータを使用したクエリ実行

クエリに変数を含めて作成し、実行時に変数をバインドすることで、動的なクエリの実行が可能です。次は、パラメータを使用したクエリの実行例です。

  • 実行クエリテキスト
    select * 
    from public_data.incheon_airport.cargo_flight_schedule_summer_arrival
    where TRY_CAST(year AS INTEGER) >= ?
      and TRY_CAST(year AS INTEGER) <  ?
      and airline = ?
    
  • パラメータ
    • パラメータ1: 2015
    • パラメータ2: YEAR(NOW())
    • パラメータ3: KOREAN AIR
参考
  • 数値(整数型または実数型)の入力値を文字列タイプで使用したい場合は、値を引用符(')で囲んで入力します。例として、入力値 123を文字列タイプで入力したい場合は、'123'をパラメータ値として入力します。
  • テーブルデータ形式が CSVのテーブルの場合は、すべての値を文字列タイプで処理するため、入力値を文字列タイプで入力する必要があります。

ストレージカタログ

テーブルを作成せずに Object Storageに保存されたファイルのパスを入力して直接クエリを実行できます。
以下は、ストレージカタログを使用して Object Storageに保存されたファイルをクエリする例です。

  • テーブル位置に TABLE(object_storage.file.read('TYPE', 'PATH')) 構文を使用
    • TYPE: ファイルタイプ(対応可能形式: csvtsvjsonavroparquetorc)
    • PATH: Object Storageに保存されているファイルのパス
select * from TABLE(object_storage.file.read('csv', 's3a://test-bucket/path/file.csv')) ;
参考
  • 以下のファイルタイプの場合、指定された区分記号をサポートします。その他の区切り記号については、今後サポート予定です。
    • csv の場合、Comma(,)区分記号
    • tsv の場合、Tab(\t)区分記号
注意
  • My Object Storageに保存されているファイルに対してのみクエリが可能です。
  • ストレージカタログは、10GB以下の小さなファイルを照会する目的で提供されます(10GB以上のファイルは Timeoutでクエリが正常に実行されない場合があります)。
  • ストレージカタログを含むクエリの場合、模擬実行結果にはストレージカタログデータのサイズは含まれません。
  • 確認が必要な場合は、以下のクエリを実行して模擬実行結果を確認できます。
    • 例) EXPLAIN ANALYZE SELECT * FROM TABLE(object_storage.file.read('TYPE', 'PATH')) ;

提供 Function

Data Queryで提供する Functionリストです。

Function Return Type Argument Types Description Example
convert_range_long varchar integer/varchar, varchar 目的の範囲に含まれているか把握するため、ユーザーが定義した範囲に変更してリターンします。

1つ目の Parameter説明: (必須)範囲に変更するデータです。
2つ目の Parameter説明: (必須)範囲指定値です。それぞれの範囲は昇順でソートし、コンマ(,)で区分する必要がりあります。
select convert_range_long('10', '1,10,20,30')
day_of_week Integer date/varchar 入力した日付の曜日の数字をリターンします。

月曜日(1)、火曜日(2)、水曜日(3)、木曜日(4)、金曜日(5)、土曜日(6)、日曜日(7)
select day_of_week('2024-06-20')
decode_url varchar varchar, varchar エンコードされた URLをデコードされた値に変換します。

1つ目の Parameter説明: (必須)エンコードされた URLです。
2つ目の Parameter説明: (任意)Characterフォーマットです(JAVAでサポートするフォーマットのみ可能です)。
select decode_url
match boolean varchar, varchar, varchar 1つ目の Parameterに記述されたカラムを、2つ目の parameterで入力されたキーワードリストとマッチングするか確認します。3つ目のパラメータは、マッチング方式です。

1つ目の Parameter説明: (必須)マッチングするカラム名です。
2つ目の Parameter説明: (必須)マッチングするキーワードリスト。コンマ(,)で複数のキーワードを入力できます。3つ目の Parameterを regex選択すると、Java regex記法のみ入力できます。
3つ目の Parameter説明: (必須)exact|prefix|postfix|contain|regex
*値の説明-exact: exact matching(default)、prefix: prefix matching、postfix: postfix matching、contain: partial matching、regex: regular expression matching
select match(「JAVA」、「NAVER、クラウド、データ、JAVA、query」、「exact」)

select match(「NAVE」、「\bNA\b」、「regex」)
normalize_option varchar varchar, varchar, varchar ソース検索キーワードを設定された flag形式に正規化された検索キーワードに変更して返します。

1つ目の Parameter説明: (必須)検索キーワードです。
2つ目の Parameter説明: (選択)正規化オプション flagです。「i」: invisible値を欠損値に変更します。「s」: breaking white spaceをスペース(space)に変更します。「n」: breaking white spaceを欠損値に変更します。「L」: 大文字を小文字に変更します。「b」: \を \\に変更します。flag値がない場合は、「inl」オプションと同じです。
3つ目の Parameter説明: (選択)正規化の適用時に必要な言語ロケールです。(e.g.ko_KR, en_US)
select normalize_option('NAVER', 'l')
parse_agent map(varchar,varchar) varchar Apache logの Agentフィールドを Device、OperationSystem、Browserなどの単位にリターンします。 select parse_agent('Mozilla/5.0 (Linux; Android 9; LG-F800S Build/PKQ1.190522.001) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/69.0.3497.128 Whale/1.0.0.0 Crosswalk/23.69.600.0 Mobile Safari/537.36 NAVER(inapp; search; 690; 10.16.2)')
to_period varchar date/timestamp/varchar, varchar date/timestamp/varcharの形を特定形式の文字列に変更します。

1つ目の Parameter説明: (必須)日付/時間です。
2つ目の Parameter説明: (必須)変更する文字列形式です。all/year/half/quarter/month/week/week-monday/day/12hour/6hour/3hour/hour/min/5min/10min/20min/30min
select to_period('2024-06-20','week-monday');
rank map(varchar,integer) array(varchar), integer/varchar, integer 対象領域の rankingをリターンします。

1つ目の Parameter説明: (必須)対象領域です。
2つ目の Parameter説明: (選択)コンマ(,)で区分された領域の値です。
3つ目の Parameter説明: (選択)表示されない場合の表示順位値です。負の数が表示されない場合、無視します。(Default = 99)
select rank(array['aaa','bbb','shp','fff'], 'fff,ddd,eee,aaa', 50)
参考

Data Queryで提供する Functionは trinoをベースに提供します。上記で案内されたリスト以外の追加内容は、Trinoドキュメントをご参照ください。

クエリ管理

入力したクエリを再度利用できるようにマイクエリとして保存でき、保存したクエリ文は必要に応じて変更、コピー、削除できます。予約実行設定を追加して、保存したクエリ文を希望する時間に実行できます。

クエリ文保存

直接入力したクエリ文またはテンプレートクエリを変更して作成したクエリを、マイクエリとして保存できます。クエリ文を保存する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. クエリ入力のポップアップに希望するクエリ文を入力します。
    • テンプレートクエリを利用する場合、 [クエリ] タブ > [テンプレートクエリ] ボタンをクリックした後、保存したいクエリを選択するとそのクエリ文が自動で入力されます。
  4. クエリのポップアップの上部でクエリタブ右側のオプションメニューにマウスオーバーします。
    dataquery-query-vpc_save_ko
  5. 保存または名前を付けて保存をクリックします。
  6. ポップアップでクエリの名前を入力して [保存] ボタンをクリックします。
    • クエリがマイクエリリストに保存されます。画面左側の [クエリ] タブ > [マイクエリ] ボタンをクリックすると保存されたクエリリストを確認できます。
      dataquery-query-vpc_myquery_ko

保存されたクエリを編集

保存されたクエリは名前または内容を変更したり、別名で名前を付けて保存したり、削除できます。保存されたクエリを編集する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. 画面左側の [クエリ] タブ > [マイクエリ] ボタンをクリックします。
  4. マイクエリリストの中から編集したいクエリをクリックします。
    • クエリのポップアップにそのクエリの内容が入力されます。
  5. クエリのポップアップの上部でクエリタブ右側のオプションメニューにマウスオーバーします。
    dataquery-query-vpc_save_ko
  6. 目的のメニューを選択してクリックします。
    • 名前変更: 保存されたクエリ名を変更して保存。クエリのポップアップで内容を変更したステータスで名前を変更すると内容も一緒に更新
    • 保存: クエリのポップアップで内容を変更した後、実行して上書き保存
    • 名前を付けて保存: クエリ内容をコピーして別名で名前を付けて保存
    • 削除: 当該クエリをマイクエリリストから削除

保存されたクエリの予約実行

保存したクエリ文に予約実行設定を追加して、希望する時間に実行できます。予約実行の設定方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Big Data & Analytics > Data Queryメニューを順にクリックします。
  2. Query Editorメニューをクリックします。
  3. 画面左側の [クエリ] タブ > [マイクエリ] ボタンをクリックします。
  4. マイクエリリストの中で編集したいクエリ項目の右側オプションメニューにマウスオーバーします。
  5. 予約実行設定メニューをクリックします。
    • 予約実行設定: 保存されたクエリ文を希望する時間/周期で実行するように予約実行情報を設定します。
    • 予約実行削除: 設定されている予約実行情報を削除します。
参考

クエリの予約実行でも、パラメータを使用したクエリ実行機能を使用できます。変数を含むクエリの予約実行を設定する場合、実行に使用するパラメータ情報を予約実行情報と一緒に入力します。

注意
  • 予約実行を設定する場合、まず保存されたクエリ文が正常に動作するかご確認ください。クエリパースエラーなど一部のエラーケースは実行履歴が作成されず、Query Historyメニューで実行履歴の確認ができません。
  • クエリの予約実行は、Main Accountアカウントの権限で実行されます。Sub Accountのアカウントに予約実行設定に関する権限を付与する際にご参照ください。