HOW TO TD(User Engagement)Treasure Data User Engagement

誰も心当たりのないPrestoクエリについて

ホーム » 誰も心当たりのないPrestoクエリについて

テクニカルサポートエンジニアリングチームの伊藤 一樹です。
今回は見覚えがないPrestoクエリが実行されているという謎について迫っていきます。

心当たりのないクエリ

全く見覚えのない下記クエリを実行するジョブがTreasure Data CDPコンソールのJob Activitiesの画面で見つかったことはありませんか?

SELECT 
  node_version
FROM
  system.runtime.nodes
WHERE
  coordinator = TRUE


しかも下記のようなエラーで失敗しているので、何かしらの処理が失敗したのかどうか不安になりますよね。

Query xxxxxxxx_xxxxxx_xxxxx_xxxxx failed: [PERMISSION_DENIED] Access Denied: Cannot select from table runtime.nodes

謎のクエリの目的

謎のクエリはnode_versionというカラムを抽出していることから推測できるかと思いますが、Prestoのバージョンを取得することができます。Treasure Data CDPではなく、自身で構築したOSSのPrestoであればSELECT node_id, node_version FROM system.runtime.nodes;というクエリを実行すると下記のような情報が取得できたりします。

node_id node_version
1 317
2 317
3 317

どこから実行しされたの?

BIツール(Tableau Desktopのような)を利用している場合に、バージョンチェック目的で自動で実行されることがあるようです。

なぜエラーになるの?

エラーメッセージにある通り、runtime.nodesというシステム用テーブルへのアクセス権限を所持していないことで失敗しています。クライアント(BIツールなど)側からすると接続先がTreasure Data CDPかどうかはわからず、OSSのPrestoを利用している前提の処理となっており、自身で構築している場合は権限分掌によってエラーとさせないことが可能だと思います。

一方、Treasure Data CDPは利用者に対してシステム用のデータベース・テーブルへのアクセス権限は制限しているため、エラーになるのは想定される挙動です。

必要なアクション

あくまでもチェック目的かと思いますので、主目的の処理がエラーになっていないのであれば問題なく、無視して良いでしょう。ツールによってそもそも実行しないよう制御できるのであれば、エラー回避はできないので実行しないように設定いただければと思います。

終わりに

今回はトピックとしても範囲が狭く短かい記事でしたが、いくつかお問い合わせを頂戴することがありましたので、整理して記事にしてみました。ツールを利用する際、実行されるクエリは隠されていることが多く意識しないこともあるかと思いますが、本記事が助けになると幸いです。

伊藤 一樹

Technical Support Engineeringチーム

大学院卒業後2012年に日本オラクル株式会社に入社。ITコンサルタントとしてOracle Databaseの設計から運用、チューニング、性能アセスメントなどに従事。また、顧客のDBAチームの立ち上げやスキルトランスファー、短いダウンタイムでのデータベース移行、テストツール・オプションに注力し、コンサルタントのナレッジの訴求のため外部向けの講演なども経験。縁あって2019年2月にトレジャーデータに入社。多くの問い合わせを解決することを喫緊の至上命題とし、最も多くの問い合わせ対応を行っている。

得意領域 : データベース、SQL/付随するアーキテクチャ、トラブルシューティング

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Back to top button