こんにちは、小林寛和(@hiro-koba)と申します。私はデータエンジニアのための勉強会「Data Engineering Study」の共同主催者をやったり、ETL & ワークフローサービス「trocco®︎(トロッコ)」を運営する株式会社primeNumberの取締役CPOを務めているデータエンジニアです。
データエンジニアの皆さんが普段利用されているDWH/ETL/BIツールに関する最新アップデートや、界隈の最新トピックをまとめて配信しております。
お忙しい方や、サクッと最新情報をキャッチアップしたい方向けに、主要なニュースをピックアップして独自にまとめています。
毎月更新でニュースをお届けしていますので、ニュースの新着メール通知をご希望の方はこちらのフォームよりご登録ください。
Google BigQueryのニュースまとめ
テーブルクローンが作成できるようになりました(プレビュー)
テーブルクローンは、別のテーブル(ベーステーブル)の軽量で読み書き可能なコピーです。似た機能にテーブルスナップショットがありますが、スナップショットは読み込み飲みなのに対し、クローンは読み書きが可能になっています。
より詳しく知りたい方は、以下の参考リンクもご覧ください。
リモート関数呼び出しができるようになりました(プレビュー)
Cloud FunctionsのHTTPエンドポイントを呼び出すことが可能になりました。関数はNode.js、Python、Go、Java、.net、Ruby、PHPで作成でき、クエリから渡された列に対して処理を実行します。
現時点のリモート関数では扱える方に制限があるなど注意点があります。
より詳しく知りたい方は、以下の参考リンクもご覧ください。
Amazon Redshiftのニュースまとめ
Redshift が PIVOT および UNPIVOT の SQL 演算子のサポートを発表
Redshiftでも、データ分析ではおなじみのPIVOT/UNPIVOTが利用できるようになりました。
データ例
CREATE TABLE part ( partname varchar, manufacturer varchar, quality int, price decimal(12, 2) ); INSERT INTO part VALUES ('P1', 'M1', 2, 10.00); INSERT INTO part VALUES ('P1', 'M2', NULL, 9.00); INSERT INTO part VALUES ('P1', 'M3', 1, 12.00); INSERT INTO part VALUES ('P2', 'M1', 1, 2.50); INSERT INTO part VALUES ('P2', 'M2', 2, 3.75); INSERT INTO part VALUES ('P2', 'M3', NULL, 1.90); INSERT INTO part VALUES ('P3', 'M1', NULL, 7.50); INSERT INTO part VALUES ('P3', 'M2', 1, 15.20); INSERT INTO part VALUES ('P3', 'M3', NULL, 11.80);
PIVOTを扱ったクエリ例
SELECT * FROM (SELECT partname, price FROM part) PIVOT ( AVG(price) FOR partname IN ('P1', 'P2', 'P3') );
結果例
p1 | p2 | p3 -------+------+------- 10.33 | 2.71 | 11.50
より詳しく知りたい方は以下の参考リンクもご覧ください。
- Amazon Redshift が PIVOT および UNPIVOT の SQL 演算子のサポートを発表
- PIVOT と UNPIVOT の例
- DevelopersIOさんの紹介記事: [新機能] RedshiftのPIVOT/UNPIVOT機能を試してみた
Redshift クロスリージョンデータ共有のお知らせ
11月の発表でプレビュー版だったものがGAになりました。
異なるAWS リージョンの Redshift クラスター間でのデータ共有が利用可能になりました。
より詳しく知りたい方は以下の参考リンクも御覧ください。
Redshift 同時実行スケーリングの自動ワークロード管理を発表
Redshiftを複数のセッション、ユーザが利用する際に一部のクエリがRedshiftのリソースを専有することで、
他のクエリのパフォーマンスに影響がでる場合があります。
Redshiftはワークロード管理(WLM)機能を操作することで、
例えば、実行速度が高く処理時間の短いクエリが、処理時間の長いクエリの後に滞らないようにできます。
これまで、WLMは手動で管理する必要がありましたが、
今回のリリースされた、自動WLM(AutoWLM)を利用することで
手動で管理する手間がなくなるとのことです。
現時点では書き込み系のクエリについては未サポートなど、
いくつか制約があるようです。
より詳しく知りたい方は以下の参考リンクも御覧ください。
Redshift で Kinesis データストリームのストリーミング取り込みのパブリックプレビューを発表
これまでAmazon Kinesis, Kinesis Firehose などのサービスから Redshift にリアルタイムデータを取り込みたい場合には、最初に Amazon S3 でデータをステージングし、COPY コマンドを使用する必要がありました。
今回のリリースにより、RedshiftがKinesis データストリーム用の外部表が作成できるようになり、
それを参照するマテリアライズド・ビューを作るというアプローチのようです。
また、これまでストリーミングデータに対するデータ分析には Kinesis Data Analytics がありますが、
こちらは専用のWebのUIからSQLクエリを書いて分析するものに対し、
今回のリリースでは、Redshiftをインターフェースとして同様の分析ができるようになったものと思われます。
利用の際は、Redshiftが利用できる全てのリージョン、追加費用無しで始められます。
Kinesis stream用の外部表の作成例
-- Kinesis用のスキーマ作成
CREATE EXTERNAL SCHEMA schema_one
FROM KINESIS
IAM_ROLE { default | 'iam-role-arn' };
上記の外部表を元にマテリアライズド・ビューの作成例
-- Kinesis用のマテリアライズド・ビューの作成(Kinesisのデータはここに入る)
CREATE MATERIALIZED VIEW my_view AS
SELECT ApproximateArrivalTimestamp,
JSON_PARSE(from_varbyte(Data, 'utf-8')) as Data
FROM schema_one.my_stream_name
WHERE is_utf8(Data) AND is_valid_json(from_varbyte(Data, 'utf-8'));
データにアクセスする例
-- 通常のRedshift同様にSQLで照会する
select * from my_view;
マテリアライズド・ビューのため、リフレッシュすることで
Kinesis stream からデータを最新にできます。
-- マテリアライズド・ビューのデータ更新
REFRESH MATERIALIZED VIEW my_view;
より詳しく知りたい方は、以下の参考リンクもご覧ください。
- Amazon Redshift が、Kinesis データストリームのストリーミング取り込みのパブリックプレビューを発表
- Streaming ingestion (preview) – Amazon Redshift
Snowflakeのニュースまとめ
Snowpark ストアドプロシージャが Scala に対応しました(プレビュー)
詳しくは、リリースノートをご覧ください
https://docs.snowflake.com/ja/release-notes/2022-02.html#snowpark-stored-procedures-preview
SnowpipeがGoogle Cloud Storageのイベントをフックに、データをロード出来るようになりました(一般公開)
Google Cloud Storageにファイルが置かれる通知を契機に、Snowflakeテーブルへのロードが出来るようになりました。
これまではAmazon S3、Microsoft Azure BLOBストレージのみ一般公開されていましたが、Google Cloud Storageもそこに加わります。
Snowpipe については、以下の記事で丁寧に解説されています。
https://shiimanblog.com/engineering/snowflake-snowpipe/
詳しくは、リリースノートをご覧ください。
https://docs.snowflake.com/ja/release-notes/2022-02.html#data-loading-updates
タスクが手動実行できるようになりました(プレビュー)
任意のSQLを定期実行する際に利用されるタスクは、これまでスケジュール実行のみがサポートされていました。
今回のリリースにより、手動実行を行うことが出来るようになりました。
エラー発生時の再実行などでご利用ください。
詳しくは、EXECUTE TASKに関する公式ドキュメントをご覧ください。
https://docs.snowflake.com/ja/sql-reference/sql/execute-task.html
Lookerのニュースまとめ
Action HubにSalesforce Campaigns integrationが追加
Looker外部のサービスとの連携機能であるAction Hub機能として、Salesforce Campaigns integrationが追加されました。
Salesforceにキャンペーンを作成し、キャンペーンメンバーやリード、コンタクトを追加することができます。
Googleデータポータルのニュースまとめ
new Search Ads 360に対応
Googleが今年2月にリリースしたnew Search Ads 360がデータポータルでも利用可能になりました。
new Search Ads 360についての詳細はGoogle公式の記事をご確認ください。
BigQueryの更新頻度を詳細に指定可能に
更新頻度の選択欄に「カスタム」が追加されました。
1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50分、または1〜12時間の中からデータの更新頻度を選択できます。

「データの統合」機能の改善
複数のソースの情報を統合する「データの統合」機能で、統合の方法を下記5つから選択できるようになりました。
(従来は左外部結合しか行なえませんでした)
- 左外部結合
- 右外部結合
- 内部結合
- 完全外部結合
- クロス結合
また、3つ以上のデータを統合する際に、それぞれの別のフィールドを指定して結合が行えるようになりました。


ETLサービス「trocco(トロッコ)」のニュースまとめ
troccoの開発ロードマップを公開

troccoの直近のアップデートや今後の開発ロードマップを、弊社primeNumber主催のイベント「01」にて発表いたしました。
発表の様子は下記からご覧いただけます。是非ご覧ください。
https://01.primenumber.co.jp/sessionarchive/trocco/
対応データソース拡充
以下のコネクタ拡充に対応しました。
- 転送元A8
- 転送元Google広告・Twitter広告・Facebook広告のAPIバージョンアップ
データカタログ機能のアップデート
メタデータの自動統合対象として以下のデータソースが追加されました。
例えばGoogle Analyticsから、troccoデータ転送機能で作成されたテーブルがあった場合、列名に対してGoogle Analytics公式の説明文が付与されるなどのメリットがあります。
- Google Analytics
- Yahoo!広告 検索広告
以上、Data Engineering News 2022年2月のアップデートまとめでした。
毎月更新でニュースをお届けしておりますので、ニュースの新着メール通知をご希望の方はこちらのフォームよりご登録ください。
こんなニュースを知りたい!というようなご意見・ご要望も著者Twitterアカウントまでお気軽にDM下さい!