SnowflakeのSQLチューニングヒント

はじめに DBManiaです。 突然ですが、みなさんはSnowflakeのパフォーマンスチューニングは行われていますか? パフォーマンスチューニングはWarehouseのスケールアップとクエリーアクセラレーターで十分という方もいらっしゃるかも知れません。 しかし、実は…

スポットA-URシミュレーターを作りました

はじめに REVISIOデータサイエンティストの本川です。(mtkwT (Tetsuya Motokawa) · GitHub) 12/1にスポットA-URシミュレーターというテレビCMプラニングためのツールをローンチしたので、その裏側の仕組みについて書き残します。 ツール紹介 スポットA-URシ…

SnowflakeのUDFやPROCEDUREでdefaultを使う

DBManiaです。 弊社がSnowflake社のData Drivers Awards 2023にて、Data Driver of the Yearを受賞してから初の更新となります。 Snowflakeに新機能としてUDFとPROCEDUREにオプション引数が実装されました。 この機能の何が凄いのか、具体例で説明したいと思…

StreamlitとCognitoを使ってログイン機能を実装してみた

REVISIOのエンジニア植草です。 先日片岡から Streamlitについて投稿がございましたが、Snowflake上でStreamlitのコンテンツを 扱えるようになり、Snowflake・Streamlitのアップデートのスピード感を目の当たりにしているところです。 私もStreamlitを触り始…

Snowflakeのクエリー結果キャッシュが効く条件を調べてみた

つい先日、"SnowflakeのHands On Essentials - Data Warehouse"を獲得したDBManiaです。 相変わらずSnowflakeのDWHとしての性能、機能に惚れ込んで、使い倒す日々を送っております。 クエリー結果キャッシュとは さて、Snowflakeのパフォーマンスを上げるた…

Streamlit in Snowflakeでアプリを作る方法

REVISIOのエンジニア片岡です。 Pythonのみで簡単にダッシュボード的なWebアプリが作れるフレームワークStreamlitですが、昨年Snowflakeに買収され、 Snowflakeのウェアハウス(サーバー)上で実行してユーザーへ提供できるようになりました。 Snowflake Nat…

Docker 4.19でコンテナ・ホストOS間ネットワークが5倍高速になったらしいので試してみる

エンジニアの片岡です。 先日、Docker Desktopの最新版4.19がリリースされました。 macOSでDockerコンテナとホストOSの間のネットワークが5倍高速になったとの情報を見て、もしそのような高速化がされているなら嬉しいなということで、早速試してみました。 …

SnowflakeのSnowsightからGUIベースで外部ステージが作成できるようになりました。

SnowflakeのSnowsightから、GUIベースで外部ステージを作成できる機能がプレビューされました。 これでお手軽に外部ステージが作成できますね。 残念ながら日本語ドキュメントはまだ用意されていないようですので、英文のドキュメントを参考に、さっそく作成…

Snowflakeのアカウント複製で開発環境を作ってみた

DBManiaです。Snowflakeでアカウント複製機能がGAになりましたね。 これでレプリケーションやフェイルオーバーが自由にできるようになったのですが、アカウント複製でできるのはそれだけではありません。 この機能を利用すると、本番環境から独立した開発環…

SnowflakeでDAGを活用するための3つのTips

最近Snowflakeの記事を投稿していますDBManiaです。 今回はSnowflakeで有向非巡回グラフ(Directed Acyclic Graph、以下DAGと表記)と、DAGを組む際にハマりそうなポイントについて説明いたします。 SnowflakeのDAGとは 前準備 Tips1:TASKはRESUMEしないと動…

SNOWDAYで紹介しきれなかったRedshiftとSnowflakeの違い42選

REVISIOのエンジニア片岡です。 先日2月14日、Snowflakeの大規模イベントSNOWDAY JAPANに参加・登壇してきました。 登壇資料はこちら。 speakerdeck.com ANAインターコンチネンタルホテル東京+オンラインでの開催でしたが、オフラインイベントの独特の雰囲…

SnowflakeのTimeTravelはViewにも適用できます。

はじめに 弊社でRedshiftから移行したDWH、Snowflake(移行についてはSNOWDAY JAPANで発表させていただきました)に実装されているTimeTravel機能ですが、これは非常に便利な機能です。 どういう機能かはSnowflakeを使われた方なら存知だとは思いますが、簡…

RedshiftからSnowflakeへの移行 & Snowflakeイベント登壇

REVISIOのエンジニア片岡です。 当社では創業以来、ビジネスの根幹であるテレビ視聴データを格納・処理するデータウェアハウスとしてAmazon Redshiftを使ってきました。 約7年の間、Redshiftの機能の進化に合わせ、クラスタータイプやサイズをアップデートし…

SnowflakeのSEQ関数は、慎重に使いましょう。

みなさん、Snowflakeは使っていますか? 極めて合理的で高い性能を持っているDataWareHouse、Snowflake。 弊社ではメインのDWHとして採用し、その性能に非常に満足しています。 今回はSnowflakeで連番を作るのにサンプルとしてよく使われているSEQ関数につい…

SQL: 組み合わせにビット演算を使ったGROUP BY

はじめに こんにちは、データアナリティクスチームのHuangです。 SQL関連について記事を書きました。 データの抽出となるとSQLはほぼ毎日のように使われている言語ではありますが、実際の仕事現場では教科書に載っているようなケースがほとんど存在してませ…

テレビCMの効果をウェブ検索データで推定する

Google TrendsのデータでテレビCMの(ウェブ検索数への貢献の)効果を推定するアプローチを紹介します。

Githubでマージされたのクエリを自動的にRedashに反映する運用について

はじめに こんにちは。データサイエンティストの曽我です。 Redashというダッシュボードツールがあるのですがご存知でしょうか。 ダッシュボード機能だけではなく、クエリをパラメータで動的に変更できたりする優れものです。そんな便利なRedashですが、Reda…

ビジネス課題を解決するための指標を考える〜Cスコア編〜

はじめに データサイエンティストをしている曽我です。 弊社ではテレビ番組やテレビCMの見られ方に関して様々なデータを取得しています。 取得したデータからビジネス課題を解決するために指標を作りクライアントへ提供をしている会社になります。 指標には…

Docker Compose + libfaketimeでテスト用コンテナの日時を固定する

久しぶりのブログになってしまいました。 開発チームのエンジニア、片岡です。 今回は、ユニットテストにおける時間の問題についてのTipsです。 ユニットテストを行う際に手間のかかる作業として、テスト用環境の構築があります。 今はDockerがあるのでかな…

変数重要度とPartial Dependence Plotでブラックボックスモデルを解釈する

はじめに モデルの学習 変数重要度 Partial Dependence Plot まとめ 参考 はじめに こんにちは、データサイエンティストの森下です。 本記事では所謂ブラックボックスモデルを解釈する方法を紹介したいと思います。 RF/GBDT/NNなどの機械学習モデルは古典的…

purrrとbroomで複数の回帰モデルを効率的に管理する

はじめまして。データサイエンティストの森下です。 TVISIONでは探索的にデータを見てく段階では、可視化に加えて複数の回帰モデルを作成して検討する、ということをよくやっています。 モデルの数が少ない場合は個別にモデルを作成してsummary()で見ていく…

データ分析の信頼性をチームで上げるモブレビューの導入

こんにちは。データサイエンティストのshobyです。 今回は、データ分析の信頼性をチームで上げるために、皆でコードレビューをするモブレビューを導入した話をご紹介します。 モブレビューを導入することにより、分析要件や分析手法の妥当性をチームとして保…

RedShiftでETL処理向けの擬似JSON型カラムViewを作成する

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。 今回は、RedShiftでETL処理向けに、擬似的にJSON型のカラムを持つViewを作成する方法をご紹介します。 擬似JSON型のカラムを使用することで、データマートへデータを移す際のデー…

AWS Data Pipelineのハマりポイント

こんにちは、エンジニアの taross-f です。 弊社では様々なログデータをAWS Batch, AWS Lambda, AWS Data Pipeline などを組み合わせてETLを行っています。 その中で先日Datapipelineを触っていろいろハマるポイントがあったので、同じ気持ちになる人を減ら…

DataGripからAmazon Athenaを利用する

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。 今回は、DataGripからAmazon Athenaを使用する方法をご紹介します。 概要 DataGripとAthenaについて DataGripからAthenaを利用する DataGripとAthenaについて DataGripはJetBrains…

RedShiftでの日時処理を行う際の注意点

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。 RedShiftの日時処理、紛らわしいですよね。 今回は、RedShiftで日時処理をする際の注意点をご紹介します。 概要 現在日時取得の注意点 曜日取得の注意点 日時間隔取得の注意点 現…

S3のデータを別アカウントの別バケットにコピーする際の権限設定

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。 TVISION INSIGHTSでは、本番環境と開発環境でAWSのアカウントを分けて運用しており、 時折本番ログデータを開発用S3バケットにコピーする必要が生じています。 別アカウントの別バ…

RedShiftでDECIMAL(NUMERIC)を使用する際の有効桁数について

こんにちは。データサイエンティスト兼、データ基盤エンジニアのshobyです。 皆さんは、RedShiftで小数点数を扱う際に、どのような型を使用していますか? 今回は、固定精度で小数点数を扱うことのできるDECIMAL(NUMERIC)と、その有効桁数についてご紹介し…

DataGripって、便利

はじめまして、最近TVISION INSIGHTSにジョインしたエンジニアの taross-fです。 前職ではソーシャルゲームの会社で主にC#を書いて過ごしていましたが、現在はデータベースからAWSからいろいろ触っていて、必死に楽しく日々を過ごしています。 他メンバーのp…

『継続して○○した日数』とその最大値をSQLで求める

SQL

こんにちわ。データ部の長野です。 TVISION INSIGHTSのデータ部では、複雑なデータ抽出をする機会が多々あります。 今回は最近おこなった複雑なデータ抽出ロジックの1つ、 「『継続して○○した日数』とその最大値」 をSQLで求める方法を紹介します! ======= …