ちゅらデータ・データエンジニアギルド通信 Vol.2(〜6/21)
がく@ちゅらデータです。
弊社には、ギルドっていう横軸組織があります。そこの定例で、データ界隈を中心に、関係しそうな話題などを共有しています。
まぁ、おもに私がこれ良さそ〜と思う話題をメモっていてそれを共有しています。
それ、公開しちゃってもいいんじゃね?って思ったので、記事を書いていこうかな〜と思っております。
今週のデータ界隈のトピック
Data Engineering is Not Soft Engineering
翻訳には、ChatGPTを使ってらっしゃるとのことですが、専門用語も多いので、ご自身で加筆修正れてるとのこと。太字を読めばだいたい分かる、ともおっしゃっててホスピタリティ最高!
最近、Data Engineering is Not Software Engineeringという記事が話題になっていたのです。
ソフトウェアエンジニアリングの手法は長い時を経てとても進化してきたけど、そこに追いついていかんとねー(dbtが出てきて、だいぶ進化したけど、まだまだがんばらにゃね)
と思ってたんだけど・・・
- データエンジニアリングとソフトウェアエンジニアリングは多くの共通のツールと実践を共有していますが、重要な領域で大きく異なります。
自分は、
「データエンジニアリングがまだまだ「粗削り」で、そのうちソフトウェアエンジニアリングの叡智をそのままデータに持ってこれるに違いない」
って思ってたけど、そう簡単な話ではないなぁって読んでて認識を改めました
ほんの一部だけ抜粋させていただきましたが、詳しくは、こちらの記事を読んでみてください!
データパイプラインはほとんどユニットテストされません。データパイプラインは通常、単純にデプロイすることでテストされます。通常は最初に開発環境に向けてです。これにはビルドとデプロイのステップが必要で、その後エンジニアは一定時間パイプラインを監視して、意図した通りに機能するかどうかを確認しなければなりません。もしパイプラインが冪等でないなら、再デプロイする前に、前回のデプロイが残した状態をリセットするための手動の介入が最初に必要かもしれません。このフィードバックサイクルは、ユニットテストを実行することと比較して非常に遅いです。
ここもすごくわかる・・・
Data Engineering News 2023年5月アップデートまとめ | trocco®(トロッコ)
troccoの開発責任者の小林さんの月イチのまとめ
※こちらでBigQueryとか自分でチェック漏れてたやつとか、いつも助かってます、ありがとうですー
今週のGCP
GA4のBigQueryテーブル
UA⇨GA4が7月1日でしたっけ?
それでいろいろ起きてるのかな〜
当日分が暫定的に、_intraday に書き出されます。
それが、翌日午前中までに、確定データとして追加されます(はず)
以前やったときは、翌日のはやくて8時、遅くて13時には、書き出されてたのですが、最近は下手すると翌々日になったりもしてるそうな・・・・この遅延は早く解消してほしいですね
BigQuery
こちらは、主に Data Engineering News 2023年5月アップデートまとめ | trocco®(トロッコ) からいくつか抜粋させてもらってます。
- ビューのカラムにdescriptionを指定可能に (プレビュー)
- INSERT INTO SELECTでAmazon S3とAzure Blob Storageが取り込み可能に(プレビュー)
- 差分プライバシーが利用可能になりました (プレビュー)
- クエリ結果をソートできるようになりました(プレビュー)
- DMLステートメントは1日あたりのテーブル変更数にカウントされなくなりました
- テーブルクローンが作成できるようになりました。
取込が、GCSからだけじゃなくて、S3やAzureのStorageから取り込めるようになったのは、ちょっとびっくりしました。
あとは、「クエリ結果がソートできる」は、CTE(With句)で組み上げるときに、データを確認するのに ORDER BY を入れたりして確認しながら作る・・・・が、組み込むときに外し忘れってことがなくなるかも
クローンできるようになったんですね!しらんかった、Snowflakeとの機能差をがりがりと詰めてきてますね、さすがGoogleさん。逃げるSnowflake!
今週のAWS
週刊AWS – 2023/6/12週 | Amazon Web Services ブログ
非常に重宝してます、こちらの週間AWS
- Amazon EC2 Instance Connect supports SSH and RDP connectivity without public IP address
- EC2がパブリックIPアドレス(グローバルIPアドレス)をもっていなくても、SSHやRDPでリモート接続が可能
- DevelopersIOさんが記事を書かれてますね!
- AWS IAM Identity Center now supports automated user provisioning from Google Workspace
- AWS IAM Identity Center (旧AWS SSO) が Google Workspace との統合をサポート
- GoogleWorkspaceIDで、AWSにアクセスできるようになるのかな
- 会社のアカウントとかの管理が一元管理できそうで良いですね、退職や異動での処理大変ですからね
- Amazon AppFlow announces 4 new data connectors
- 追加されたコネクタのは Adobe Analytics、 Blackbaud Raiser’s Edge、 Coupa、 Google BigQuery
- Amazon AppFlowとは
- Salesforce、SAP、Google Analytics、Facebook Ads、ServiceNow などの SaaS アプリと、Amazon S3 や AWS サービスの間でデータを安全に転送できる、フルマネージド型の統合サービス
AWS Config でサポートしている属性が増えました
- AWS Config は、AWS リソースの設定を記録、評価、監査できるやつ。違反があったらアラートを出す、とか
AWS Clean Rooms で大規模なコラボレーションのための機能追加 x2
- AWS Clean Roomは、複数の企業間で安全にデータ共有が可能な環境を提供するサービス(いわゆるクリーンルームだと思ってる)
- Analytics Builder:ビジネス ユーザーがコードを記述せずに洞察を生成できるようにするガイド付き UI を追加したぽい
- Cloudformation テンプレートをサポート
今週のSnowflake
Snowflake Ascent Japan Snowflake
2023年7月25日、26日のオンライン開催予定
有償クラスルームFundamentalsは、なんと3000ドル!その内容に近いと噂のウェビナーが2日間にぎゅーっと詰め込んで。SnowProCore取得のきっかけにもいいかも
KTさんとnumaさんのSnowflake SUMMIT レポイベント
2023年7月12日(水) 19時〜 DS虎ノ門オフィスとリモートのハイブリット開催
BUILD.local Tokyo
2023年7月11日(火) 14:30受付開始 渋谷ストリームホール
テクノロジーアップデートとハンズオンラボ(【90名限定!】Snowpark+StreamlitによるMLアプリ実装体験ハンズオン)に田代参加予定です
最高で究極の #SnowflakeSummit を語り合おう〜ラスベガスより愛を込めて
2023年7月5日(水) 20時00分~
SnowVillage主催のSnowflakeSummit2023の振り返りライブ
キーノートやセッション、飯レポ を予定とのこと
リリースノート 2023年6月
今週追加分を抜粋(目grepでやってるから、先週のと重複してたらごめんーー)
- Snowpipe Streaming Replication Support — Preview
- SnowflakeのレプリケーションでSnowpileのストリーミングも
- Access Control: New Privilege for Delegating Warehouse Management — Preview
MANAGE WAREHOUSES 権限を追加- MODIFY、MONITOR、および OPERATE 権限を付与することと同じ
- Improved Performance for SELECT Statements With LIMIT and ORDER BY Clauses — GA
- この改善は、そのような「上位 K」クエリの結果に影響を与えないマイクロパーティションを削除することによって機能します
- (私見)Joinを使ったりする複雑なSQLでは動かないだろうけど、単一テーブルを対象にしたSELECTを分にはパフォーマンス向上が見られるでしょうね
- (私見)SQLの処理順って、ORDER BYやLIMITって、SELECTの結果が出た一番最後の処理で、データ走査量を下げてパフォーマンスを下げる効果はない・・・なんて説明したりしてましたが、例外が出来てしまったァァ、なにしてくれとんねん、Snowflakeさん!(褒めてます)
- Support for Python 3.10 in Snowpark, UDFs, UDTFs and Stored Procedures — Preview
- Snowpark Python、Python UDF、Python UDTF、および Python ストアド プロシージャでの Python 3.10 のサポート
- 先週、3.9をサポートを発表したばかりだったのに、もう3.10
- Tag-based Masking Policy: Support for Database & Schema — Preview
- データベースとスキーマにタグベースのマスキング ポリシーを設定
- Access History: Track Objects Modified by a DDL Operation — Preview
- 「ACCOUNTS」ビューを使用すると、組織管理者は、過去 1 年以内に削除されたアカウントを含む、組織内のアカウントに関する詳細を取得できます
今週のセキュリティ
BigQueryで「差分プライバシー」について対応したってリリースがあったので、簡単に調べてみました
※ただし英語
差分プライバシーが注目を浴びている背景は様々ありますが、主な理由の1つとして、「データ利活用の高度化が進むことで、より柔軟なデータ分析や豊富な情報が活用されるようになってきており、これまでは問題視されることが少なかったプライバシーに関するリスクが顕在化してきている」ことが挙げられます
k-匿名性、 l-多様性 の2つは用語を押さえておくといいかも
GoogleのAds Data Hubが、k-匿名性を導入していたと思います。
一定数以下の結果(たしか、50件?)は、出力されず0件になってしまうので、広告の効果測定で、少数へのリーチが取得できなくて、広告効果が悪化(したように見える)って症状があったと思います。なかなか難しい・・・
今週の開発ツールたち(dbt、SQLFluff、Terraform…etc)
Streamlit
- 30DaysStreamlit が多言語化、日本語対応もしたよ
- Streamlit in Snowflake Roadmap
- PyGWalker と Streamlit でTableau風ダッシュボードを12行コードで作成する – セールスアナリティクス
30DaysStreamlitは、SnowflakeのSteamlitワークシートも次のSummtで出てきそうな気もしてるし、やるなら今でしょ!? って感じで、私も始めようと思ってます。
dbt
dbt-utilsで出来ることのまとめ
Javaとかにも、●●_utils って、よく使うユーティリティを集めたパッケージがありますが、dbtでもマクロを作る前に、こちらに入ってないか?をみてみるのがいいかも
- SQL generators
- star
- group_by
- pivot
- union_relations
- Generic tests
- equal_rowcount
- at_least_one
- not_accepted_values
- not_null_proportion
- Jinja helpers
- pretty_time
- log_info
- Web macros
- get_url_parameter
- get_url_host
- get_url_path
- Introspective macros
- get_column_values
- get_filtered_columns_in_relation
- get_relations_by_pattern
- get_query_results_as_dict
Testing frameworks in dbt
読まにゃ・・・・と思ってます。
dbt用ユニットテストの「dbt unit testing」パッケージ
trocco
SnowflakeにUPSERT!!
今週はここまで〜
Discussion