2017-09-18 7 views
3

Google Cloud DataLabには、様々なUDFを使用してパラメータ化されたクエリを構築するために、%%bq「魔法」を幅広く使用しています。Google Cloud DatalabのBigQuery - クエリテキストを取得しますか?

だから、のようなもの:その後、

customFn1 = bq.UDF("customFn1",theJsCode1,theDataTypeDef1,params=paramDefs1) 
customFn2 = bq.UDF("customFn2",theJsCode2,theDataTypeDef2,params=paramDefs2) 

%%bq query --name finalQry --udfs customFn1 customFn2 
SELECT 
    customFn1(bell, whistle) AS Output1, 
    customFn2(rank,serialNo) AS Output2 
FROM 
    myImaginaryTable 
WHERE 
    id < @param1 AND id > @param2 

その後:

%%bq sample -q finalQry 
parameters: 
    - name: param1 
    type: STRING 
    value: "ab1" 
    - name: param2 
    type: STRING 
    value: "ab3" 

私たちは、このプロトタイプを配備に向けた作業を開始し、最終的にアクセスする必要がしたいのですがプロダクションコードで使用するクエリテキスト(当然、APIを通じて呼び出される)。

GCのデータラブが、このクエリーを構成するために舞台裏でいくつかの作業をしていることはわかっています(実際の例はもっと複雑です)。

GC datalabがudfsを作成し、パラメータを置き換えた後に実際のクエリ文字列にアクセスできるのであれば本当に便利でしょうか?私は手作業でコピーや貼り付けなどを行うことができますが、この最終的なクエリ文字列に自動的にアクセスできると非常に便利です。

私はここでドキュメントを読んでいます:http://googledatalab.github.io/pydatalab/datalab.bigquery.html私は必要なものを見つけることができないようです。誰も助けることができますか?

答えて

3

finalQry.sqlを試しましたか?これにより、クエリのSQL文字列が得られます。ただし、これはパラメータの置換の前に実行されます(この場合、sampleコール)。あなたは置換は便利な機能です後にSQL文字列を取得すると、あなたはGithub repo上の特徴リクエストを開くことができると考えられる場合は

http://googledatalab.github.io/pydatalab/datalab.bigquery.html#datalab.bigquery.Query.sql

を参照してください。

+0

これは私が紛失していたものです(どのように私がドキュメントでそれを見逃したのかわかりません - 私の悪い)。パラメータの置換後にクエリを取得することは非常に重要ではありません。 udfsの構成などが私に99%を与えます。ありがとうございました –

関連する問題