🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Presto

Prestoは、Facebook社がオープンソースで公開した分散処理基盤。Hive/Impalaと同じ分散SQLエンジンの一つです。それぞれのタスクが同時進行できる計算モデルを使用。中間データをメモリに持つため、タスク間のデータのやりとりが高速であることが特徴です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

5943閲覧

Presto 0.172(AWS Athena等)で変数を利用する方法は?

redpanda

総合スコア123

Presto

Prestoは、Facebook社がオープンソースで公開した分散処理基盤。Hive/Impalaと同じ分散SQLエンジンの一つです。それぞれのタスクが同時進行できる計算モデルを使用。中間データをメモリに持つため、タスク間のデータのやりとりが高速であることが特徴です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/10/01 21:10

編集2019/10/01 22:34

質問内容

一般的なRDBMSの場合、クエリに変数を利用できる場合があるかと思います。

MySQLの例

sql

1SET @from = '2019-01-01 00:00:00'; 2 3SELECT * FROM users WHERE created_at > @from;

これと同じことを、Prestoのクエリで書くことはできるのでしょうか?
また、できる場合は、どのように記述をするのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ざっと見る限り、ユーザ定義変数が使えるかどうかはクライアント側の問題のような気がします。
なので、どのような方法でクエリを送るか次第ではないでしょうか。
原始的な方法だとシェルスクリプトで動的に値を生成してクエリに突っ込んだり、とか。

いちおう参考
https://dev.classmethod.jp/etc/sql-editor-parameters/

投稿2019/10/04 04:59

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

redpanda

2019/10/05 14:14

ご回答ありがとうございます。 参考のドキュメントを拝見しますと、Redshiftではユーザ定義関数は利用できないようですね。 prestoのGitHub上のIssueを見る限り、現状はユーザ定義関数は利用できないように見えました。 Variable support · Issue #5918 · prestodb/presto https://github.com/prestodb/presto/issues/5918?fbclid=IwAR0nChYycsd8Q0lbSmAOYvbzu78fORiTn5M8C4pIQx3Ubk3VrFYmn_-h4ME クライアント側で解決するしかなさそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問