2019』の15日目のエントリです。Developers.IOSnowflakeには各種プログラミング言語向けのコネクターやドライバーがあります。現時点でSnowflake公式のものとしては以下の8つが利用可能です。Driver(gosnowflake)を使ってSnowflakeに接続する方法をご紹介します。Minutes」で作成したデータベースに接続&クエリを実行しています。実際にサンプルプログラムを動かす場合は、以下のブログ記事を参考にサンプルデータベースを作成ください。Developers.IOgosnowflakeについてgosnowflakeはdatabase/sqlパッケージ用のドライバーです。データベースへの接続やクエリ実行方法はdatabase/sqlの作法に則ります。initで初期化します。github.com/yuyawata/gosnowflake-sampleパスワード認証で接続まずはユーザー名とパスワードを指定してSnowflakeに接続&クエリを実行してみます。buildを実行すると、、、以下のようなエラーが発生します。Versioningに対応していないために発生するエラーです。ModulesでJOSEの最新のバージョンを正しく認識できず、v0.9.1が最新バージョンとして認識されてしまいます)。対策として、replaceを使って手動で最新バージョンを指定します。具体的にはgo.modに以下を追加します。803625baeddc3526d01d321b5066029f53eafc81また、ロギング用のパッケージについてはsnowflakeの独自実装版のglogの利用が推奨されているので、こちらもreplaceでパッケージを置き換えます。f5055e6f21ce71153a199e6460664045b3af8e50この時点でgo.modは以下のようになります。buildを実行します。f5055e6f21ce71153a199e6460664045b3af8e50今度はビルドに成功します。go.modのreplaceでのバージョン指定部分は以下のように自動で書き換わります。v0.0.0-20180824191149-f5055e6f21ce実行クエリの実行に成功すると、以下のような結果が表示されます。|+--------------------------+サンプルプログラムの解説gosnowflakeでは接続文字列として以下のシンタックスが利用できます。username[:password]@accountname/dbname/schemaname[?param1=value&...&paramN=valueNusername[:password]@accountname/dbname[?param1=value&...&paramN=valueNusername[:password]@hostname:port/dbname/schemaname?account=<your_account>[&param1=value&...&paramN=valueN]接続文字列を生成するためのConfig構造体とDSNメソッドも用意されています。上記のサンプルプログラムではこれらを利用して接続文字列を生成しています。接続パラメーターの詳細についてはgosnowflakeのドキュメントを参照ください。Store)から取得する形にしています。Storeに接続パラメーターを保存しておいてください。Storeにパラメーターを保存する方法を記載します。Storeからのパラメーターの取得にはianlopshire/go-ssm-configを使ってみました。JWT認証で接続gosnowflakeはJWT認証にも対応しています(ただし、現時点でPreviewのステータスで、プロダクション環境での利用は非推奨になっています)。キーペアの作成JWTの署名に使用するキーペアを生成します。キーペアはPKCS#8形式で作成します。Managerにプライベートキーを保存プライベートキーはバイナリファイルです。Managerを利用します。Managerに保存します。fileb://rsa-2048-private-key.p8Snowflakeにパブリックキーを登録Snowflakeのユーザーに対してパブリックキーを登録します。パブリックキーをbase64でエンコードします。./rsa-2048-private-key.p8Snowflakeの管理コンソールを開き、Worksheetsから以下のクエリを実行します。RSA_PUBLIC_KEYにはbase64でエンコードしたパブリックキーを指定します。key>,を指定します。Driver(gosnowflake)について簡単に紹介しました。現時点でgosnowflakeはPUTとGETコマンドに対応していないため、データのロード・アンロードには利用できません。Python等を使った方がよさそうですが、Snowflakeをバックエンドにした簡単なツール類の開発であればgosnowflakeでも十分まかなえそうです。他のコネクターやドライバーについても試してみたいと思います。半構造化データサポートの解説」の予定です。529,064Rust始めました。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。夏目祐樹147こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。タイトルがすべてなのですが、社内で「登壇勉強会」が開催されたので、「登壇は最強の生存戦略である」というタイトルで登壇しました。本が出ていたので読んでみたところよかったので紹介させていただきます。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。