こんにちは、小林寛和(@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

より詳しく知りたい方は以下の参考リンクもご覧ください。

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;

より詳しく知りたい方は、以下の参考リンクもご覧ください。

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下さい!

hirokazu.kobayashi