Data Engineering Newsとは?

こんにちは、小林寛和(@hiro-koba)と申します。私はデータエンジニアのための勉強会「Data Engineering Study」の共同主催者をやったり、ETL & ワークフローサービス「trocco(トロッコ)」を運営する株式会社primeNumberで取締役CPOを務めているデータエンジニアです。

データエンジニアの皆さんが普段利用されているDWH/ETL/BIツールに関する最新アップデートや、界隈の最新トピックをまとめて配信しております。
お忙しい方や、サクッと最新情報をキャッチアップしたい方向けに、主要なニュースをピックアップして独自にまとめています。

毎月更新でニュースをお届けしておりますので、ニュースの新着メール通知をご希望の方は以下フォームよりご登録下さい。
https://forms.gle/ZHUrxtfRZzPXxWZP6

目次

Google BigQueryのニュースまとめ

演算子の追加: PIVOT, UNPIVOT, QUALIFY

以下3つが Previewリリースされました

  • PIVOT演算子
  • UNPIVOT 演算子
  • QUALIFY句

特に PIVOT / UNPIVOT演算子は注目のアップデートかと思います。

データアナリストの利用者にとって、既存のBIツールを使ったピボットテーブル機能を使う場合、ツールのコンピュータリソースの制約によりデータサイズをしぼる必要がありました。

今回、BigQueryでサポートされたことでテーブル全体での整形処理ができるようになることで、BIツールのパフォーマンスやリソースを意識せずにデータ整形が行えるようになりそうです。

また、同様の処理を書く際に以前はUNION地獄となっていたところを、簡潔に(かつ動的に)記述することができるようになったため、データエンジニアにとっても有用なものになりそうです。
(参考 https://twitter.com/satoluxx/status/1391923522050551811)

使い方について個別に紹介していきます。

PIVOT
集計結果を使用して行を列に変換します。

以下のような Produce というテーブルをサンプルとして利用します。(公式DocsのSQL例)

Copy to Clipboard

PIVOT 演算子を使用すると、quarter 列の行が新しい列(Q1、Q2、Q3、Q4)に変換されます。

Copy to Clipboard
Copy to Clipboard

UNPIVOT
PIVOTと対になる演算子で、列を行に変換します。

以下のような Produce というテーブルを参照しています。
(PIVOTで整形した結果データとおなじもの)

Copy to Clipboard

Q1、Q2、Q3、Q4 列が変換されます。これらの列の値には Sales という新しい列が入力され、これらの列の名前に Quarter という新しい列が入力されます。これは、単一列のピボット解除演算です。

Copy to Clipboard

公式Docsより、複数列のピボット解除演算の例

Copy to Clipboard

QUALIFY句
QUALIFY句は分析関数の値でさらにフィルタをかけるものです。

これまではSELECT句に記述し、サブクエリ化した上でフィルタする必要ががありましたが、より簡潔に記述できるようになりました。

SQL記述例

Copy to Clipboard

PIVOT, UNPIVOTはExcelやSpreadsheetsのピボットテーブル機能を利用している人には馴染みのある操作かと思います。

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

DDLステートメントの追加: テーブルのリネーム

テーブルのrenameがDDLステートメントGA(一般提供)リリースされました。
これまではテーブル名の変更はサポートされておらず、新規テーブル名でテーブルをコピーし、元のテーブルを削除するなどが必要でした。

SQL記述例

Copy to Clipboard

ただし、一部制約があり、

  • 外部テーブル、行レベルポリシーのあるテーブルのリネームは不可
  • ストリーミングインサートしているテーブルは一時的に取り込みを止めておく必要あり

などが公式ページにて記載されております。

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

DDLステートメントの追加: create view view_column_name_list, ALTER COLUMN DROP NOT NULL

DDLのサポートとして以下2つがGA(一般提供)リリースされました。

BigQuery のView作成時にカラム名を指定して作成できるようになりました

元はSELECT句の列名を元にカラム名として生成されていましたが、以下の記述例のように指定できるようになりました。
SQL記述例(count列を定義して生成します)

Copy to Clipboard

2. BigQueryテーブルの列から NOT NULL 制約を削除します

SQL記述例

Copy to Clipboard

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

GeoJSON形式データの取り込みと地理関数のサポート

GeoJSON形式のデータロードと地理関数として以下の3つがGA(一般提供)リリースされました。

  • ST_STARTPOINT
  • ST_ENDPOINT
  • ST_POINTN

GeoJSON形式のデータロードについて

BigQuery GIS は 2018年のGoogle Cloud Nextでパブリックアルファ版として公開されています。

GeoJSON形式とはJSON形式で記述された地理空間表現フォーマットのことで以下のような書き方をします。

Copy to Clipboard

上記のデータを改行区切りのファイルとして用意することでGEOGRAPHY型として取り込むことができます。

ST_STARTPOINT

LineString の geography の起点をポイントの geography として返します。

Copy to Clipboard

ST_ENDPOINT

LineString の geography の終点をポイントの geography として返します。

Copy to Clipboard

ST_POINTN

LineString の geography の N 番目の点をポイント geography として返します。

Copy to Clipboard

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

その他のアップデート

Amazon Redshiftのニュースまとめ

Redshift MLの一般提供開始

SQL文を記述することで機械学習のトレーニングから推測まで実行できる新機能です。

従来はRedshiftからS3へUNLOAD、その後SageMakerへ読み込ませるという手動の流れが必要でしたが、SQLで全ての作業を完結できるようになります(裏側では同じようなアーキテクチャが動いているとのこと)。

例えば、CREATE MODEL文といった拡張されたSQL構文によってMLモデルを作成、それに対してSELECT文で結果を得ることが可能です。

参考1: AWS公式アナウンス
参考2: DevelopersIOの試してみた記事

Snowflakeのニュースまとめ

データガバナンスの機能として「アクセス履歴」がプレビューに

過去365日(1年)以内のSnowflakeオブジェクト(例: テーブル、ビュー、列)のアクセス履歴を参照することができます。(現時点ではプレビュー機能)

注意点こちらの公式ドキュメントにできる/できないの記載があります。

参考: Snowflake公式ドキュメント

Amazon API Gatewayプライベートエンドポイントのサポート

外部関数としてAmazon API Gatewayプライベートエンドポイントを呼び出すことが可能になりました。

参考: Snowflake公式リリースノート

Go Snowflake Driver: AWSでのPUTのサポート

GolangのSnowflake DriverでAWSのPUTコマンドをサポートしました。(プレビュー機能)

これにより、ローカルマシンのファイルをSnowflakeのステージとして使用しているS3へアップロードできるようになりました。

参考: Snowflake公式リリースノート

Lookerのニュースまとめ

Lookerモバイルアプリのアップデート

以下のアップデートが入りました。

  1. Web版と同じく22言語に対応
  2. アプリを開くたびに認証が必要な「Force mobile authentication」や、生体認証の設定が可能に
  3. ディープリンクでモバイルアプリへの誘導を可能に

参考: Looker公式リリースノート

GUIからAPIの操作コードを出力する「API Explorer」がリリース

GUI上で操作を行うだけで、APIを操作するための実装コードを好きな言語でアウトプットできる「API explorer」がリリースされました。

現状対応している言語は、LookerでSDKとしてサポートされている以下6つの言語です。

  • Python
  • TS
  • Kotlin
  • C#
  • Swift
  • Go

Looker Error Catalogが公開

Lookerで表示されるエラーとその対処法をまとめたページが公開されました。
エラーメッセージとその発生箇所から、エラーの原因などを索引できます。

参考: Looker公式リリースノート

Googleデータポータルのニュースまとめ

レポートのプレゼンテーション機能が追加

レポートを全画面表示し、プレゼンテーションを行うことが出来るようになりました。
以下の様に、「三点リーダー」 > 「共有」を選択するとプレゼンテーションモードに切り替わります。

参考: Google公式リリースノート
参考2: unyoo.jpの解説記事

レポートやデータソースの履歴に対し、名前の設定が可能に

変更履歴に対して名前を設定できるようになりました。
新規作成時や、過去のバージョンに対して名前を設定することができます。

参考: Google公式リリースノート

ETLツール「trocco(トロッコ)」のニュースまとめ

対応データソースを拡充

ETL & ワークフローサービス「trocco(トロッコ)」が、以下のデータソースに対応しました。

  • 転送元AWS Cost Explorerに正式対応

  • 転送元Shopifyに正式対応

  • 転送元Salesforce Reportに正式対応

  • 転送先Googleスプレッドシートに正式対応

  • 転送元PostgreSQLでCDC方式の転送に正式対応

  • 転送元Boxに正式対応

  • 転送元Facebook Adsクリエイティブに正式対応

  • 転送元eセールスマネージャーに正式対応

プログラミングETL機能をリリース

好きな言語でETLを実装できる「プログラミングETL」機能をリリースいたしました。
troccoのデータ転送の最中に、Ruby, Pythonでデータ変換処理などが実行できます。

詳しくは以下のデモ動画を御覧ください。

BigQueryテスト実行機能の追加

設定を作成・編集する際、BigQueryに一時テーブルを作成し、転送をテスト実行する機能が追加されました。
設定変更時に、BigQuery上にお試しで転送してみて、実データで変更内容を確認したい方におすすめです。

ワークフローでBigQueryクエリ実行結果に基づくループ実行に対応

ワークフロー(ジョブ管理機能)において、BigQueryのクエリ結果に基づくループ実行ができるようになりました。
BigQuery上にある任意のリストを利用し、転送設定をループ実行させることが出来ます。

下の例の通り、ループ対象のカスタム変数は複数指定することが可能です。

オンプレエージェント機能が登場

今までtroccoでは、クラウド上にあるtrocco実行環境からデータを取ってくる方式のみに対応していました。そのため、オンプレミスなどの外部からアクセス出来ない環境に存在するデータを転送することが出来ませんでした。

今回のリリースにより、オンプレミス環境にtroccoのエージェントをインストールし、オンプレ内からクラウドにデータを転送する方式に対応しました。

現時点で対応しているのは以下の転送経路となります。

  • ローカルファイル → BigQuery
  • ローカルファイル → Google Cloud Storage
  • ローカルファイル → S3

こちらはオプション機能になりますので、お試しになりたい方はこちらからご連絡くださいませ。

その他のアップデート

今月のtroccoは上記以外にもアップデートがたくさんありました。
詳しくは以下のページをご参照ください。
https://blog.trocco.io/releases/programming-etl

新着ニュースのメール通知

毎月更新でニュースをお届けしておりますので、ニュースのメール通知をご希望の方は以下フォームよりご登録下さい。
https://forms.gle/ZHUrxtfRZzPXxWZP6
(「こんなニュースを知りたい!」というようなご意見・ご要望も著者Twitterアカウントまでお気軽にDM下さい!)

trocco(トロッコ)を試してみる

trocco(トロッコ)のETL & ワークフロー機能を無料でお試しいただけます。
今なら14日間の無料トライアルを実施中ですので、下記よりお申し込み下さい!

トライアルお申込みはこちら