Data Engineering Newsとは?

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

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

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

目次

Google BigQueryのニュースまとめ

通常テーブルとクラスタ化テーブルへの相互切り替えが可能に

BigQueryのパフォーマンス向上を期待できる「クラスタリング」機能が、既存テーブルに対しても設定出来るようになりました。相互切り替えにも対応しているため、クラスタ化テーブルのクラスタリングを削除することも可能になりました。

注意点としては、既存テーブルに対してクラスタリングを適用した場合、格納済みのデータについては並び替えされないとのことです。
また、現時点ではWebコンソールからの操作には対応しておらず、CLI(bqコマンド)やSDKからの実行のみサポートしているようです。

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

参考: Google公式アナウンス
参考2: Developers.ioの試してみた記事

管理者向けのリソースダッシュボード画面がリリース

BigQuery Reservationプランをご利用中の方を対象に、リソースの利用状況を詳細にモニタリングできるダッシュボード画面がPreview版としてリリースされました。

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

BigQuery Storage Write APIがプレビュー版として利用できるように

BigQueryにデータをストリーミングする方法としては「Streaming Insert API」がありましたが、その上位互換となるような機能として「BigQuery Storage Write API」がリリースされました。
以下のような特徴があります。

  • Exactly-onceな配信
    • クライアントが同じストリーミングオフセットのデータを重複してInsertしようとした場合、同じメッセージを書き込まないような制御になりました
    • 従来の方法より重複が起こりにくくなります
  • ストリームレベル・ストリーム間のトランザクションをサポート
    • ストリームへのデータ書き込みとcommitをトランザクション内で実行する仕様になりました
    • 複数のワーカーを利用した場合、複数のストリームを1つのトランザクションとしてcommitする事が出来ます
    • これらにより、障害発生時などには安全に再実行が可能になります
  • gRPCストリーミングプロトコルの使用
    • 従来のHTTP on RESTプロトコルよりも効率的にストリーミングが可能になります
    • プロトコルバッファを用いてバイナリ形式でデータを扱うため、従来のJSON型よりも効率的に転送可能です
    • リクエストは非同期ですが、順序保証がされます
  • スキーマの変更を検知可能
    • ストリーミングデータ内のスキーマが、ターゲットテーブルとことなる場合、クライアント側に通知されます
    • クライアント側は新しいスキーマで書き込むか、既存のスキーマで書き込むか選択可能になります

これからBigQueryに対するデータのストリーミングを予定されている方は、Storage Write APIでの書き込みを検討してみると良いかもしれません。

参考: Google BigQuery公式ドキュメント

Parquet形式データロードのサポート強化

Google Cloud StorageにあるParquet形式のファイルをBigQueryにロードする機能に以下のアップデートが入りました。

  • ENUM型のデータはSTRING型かBYTE型としてロードが可能になりました
  • LIST型のデータを自動データ推論可能になりました

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

Amazon Redshiftのニュースまとめ

Advanced Query Accelerator(AQUA)が正式リリース

AWS re:Invent 2019にて発表があり、期待の新機能であるAQUAがGA版としてリリースされました。
公式リリース文を引用すると、「他のエンタープライズクラウドデータウェアハウスよりも最大 10 倍高速なクエリパフォーマンスを提供する新しい分散型ハードウェアアクセラレーションキャッシュ」という謳い文句が掲載されており、Redshiftユーザー・検討ユーザーからすると期待が高まる機能ではないでしょうか。

仕組みをざっくりいうと、新たに新設されたAQUAレイヤーによる並列実行・キャッシュ利用・ハードウェアアクセラレーションなどの恩恵により高速化を図っているそうです。(以下の図をご参照下さい)

DevelopersIOによると、AQUAで具体的に得られるメリットとしては、SIMILART TOやLIKEでの検索が高速化(初回実行で7倍、2回めで28倍高速化)されるなどがあるらしいです。詳細は是非DevelopersIOのこちらの検証記事をご参照下さい。
一方、設定を有効化しない方がクエリが高速に動作する場合もあるらしく、この辺は今後のアップデートにより「Automatic」設定がよしなに切り替えてくれることを期待したいところです。

なお、本リリースは新世代のインスタンスタイプ(RA3.16XL または RA3.4XL)のみで利用可能な機能です。追加の利用料は特に発生せず、AWSコンソールなどからAQUAの設定を有効化するだけで利用が可能になるそうです。

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

ネイティブ JSON と半構造化データのサポート(SUPER)の一般提供

Amazon Redshiftでは半構造化データの取扱をサポートしておらず、JSONのような半構造化データを取り込む際には構造化データに変換して取り込む必要がありました。
2020年12月にプレビューリリースされたSUPER型では、このような半構造化データの取扱をサポート出来るようになりました。これにより、より手軽にJSON型の生データを素早く分析することが可能になりました。
今回のリリースにより、SUPER型のサポートがGA版として版としてリリースされました。

参考1: AWS公式アナウンス
参考2: DevelopersIOの試してみた記事(Preview版時点での紹介記事)

クロスアカウントのデータ共有がプレビュー可能に

先月のNewsにて、同一アカウントの異なるクラスタ間でのデータ共有機能について取り上げましたが、その機能がアップデートされ、クロスアカウントでのデータ共有が可能になりました。
なお、現時点ではPreview版となります。

参考1: AWS公式アナウンス

Snowflakeのニュースまとめ

Apache HiveメタストアとSnowflakeの統合

Snowflake用Hiveメタストアコネクタを使用し、SnowflakeからApache Hiveメタストアに登録されている外部テーブルにアクセスできるようになりました。
ユーザーはHiveでスキーマ管理されているデータレイクを外部テーブルとして、クエリなどでデータ参照することが出来るようになります。

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

行レベルのセキュリティ機能追加

「行アクセスポリシー」を定義しておくことで、Snowflake利用者に対し、行レベルでのアクセス管理を行うことが出来るようになりました。
なお、この機能は現時点でPreview版となっています。

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

Google Cloud Platformでの外部トークン化

AWS、Azureでは既に提供されていましたが、GCPでも外部トークン化機能が提供開始されました。
この機能によって、データをSnowflakeに格納する際に匿名化、検索時に非匿名化することができ、セキュリティレベルが高いデータをGPDRやCCPAなどの規制に対応する形で扱うことが可能になります。
なお、この機能は現時点でPreview版となっています。

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

Lookerのニュースまとめ

新しいユーザーページの公開(ベータ版)

新UIのユーザー一覧ページが公開されました。

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

メタデータサイドバー

LookMLで定義したModelやViewが、どこのダッシュボードやプロジェクトで使われているのかを把握できるようになります。

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

計算フィールドで利用可能な関数が追加(COALESCE、IFNULL、NULLIF)

COALESCE

フィールド リストの中で最初に見つかった非欠損値を返します。
https://support.google.com/datastudio/answer/10522032

IFNULL

入力値が null の場合は結果を返し、そうでない場合は入力値を返します。
https://support.google.com/datastudio/answer/10521929

NULLIF

入力値が式に一致する場合は null を返し、そうでない場合は入力値を返します。
https://support.google.com/datastudio/answer/10522134

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

BigQuery の GEOGRAPHY データをGoogleMap上に可視化することが可能に

データポータルがBigQuery GEOGRAPHY ポリゴンの可視化に対応しました。
GoogleMap上にGEOGRAPHYデータを可視化することが出来ます。

チュートリアルは以下をご参照下さい。
https://support.google.com/datastudio/answer/10502383

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

レポートのフィルターをデフォルト状態にリセットすることができるリセットボタンが追加

レポート上にリセットボタンが追加されました。
ボタンを押すことで、すべてのフィルターや選択項目がデフォルト状態に戻ります。

これまではフィルターを元に戻す場合、グラフごとにリセットする必要がありましたが、リセットボタンによりレポート全体をリセットすることが可能になりました。

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

BigQueryカスタムSQLクエリに任意のパラメータを埋め込むことが可能に

これまではカスタムSQLクエリページで作成したパラメータのみをクエリに埋め込むことが可能でしたが、他のページで作成したパラメータについても埋め込みが可能になりました。
(昨年リリースされた「改善されたコントロールとパラメータ」リリースとの違いがいまいち分からず・・・どなたかわかる方いらっしゃいましたら著者TwitterアカウントまでDMいただければ記事更新します)

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

パラメータの最大/最低値の範囲指定が可能に

各パラメータの最大、最小値の設定が可能になりました。
最大、最小値はスライダーにも反映されます。

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

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

対応データソースを拡充

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

  • 転送先Googleスプレッドシート

  • 転送元Zendesk(チャットデータ)

  • 転送元Hubspotのオブジェクト取得

  • 転送先Googleオフラインコンバージョン

  • 転送先Facebookオフラインコンバージョン

  • 転送元LINEにて、カスタムコンバージョンを指定可能に

  • troccoオンプレエージェントでtsv形式のデータに対応

転送先BigQueryでテスト実行機能を追加

従来のプレビュー機能では転送元からデータが正しく取得できているかテストが可能でしたが、今回のアップデートにより、転送先BigQueryまで含めてデータ転送が正しく行えるか、エンドツーエンドでテストを行うことが出来るようになりました。

内部的には以下のような挙動になっております。

  1. trocco側で一時テーブルを作成
  2. 設定した内容でテスト転送を実行(データ量は制限可能)
  3. テストの成否を確認
  4. テストが完了したタイミングで一時テーブルは自動削除

その他ニュースまとめ

BQ Visualizer

皆様BQ Visualizerをご存知でしょうか?私は恥ずかしながらDevelopersIOの記事を読むまで知りませんでした。。
BigQueryのクエリジョブに関する情報を可視化してくれるGCP謹製のOSSで、クエリプランやSlot使用状況などを(BQコンソールよりも分かりやすく)可視化してくれるWebベースのアプリケーションだそうです。
クエリジョブのチューニングが便利になるツールとして使えそうです。

ホスティング版の公開アプリケーションも存在するみたいですので、簡単に試すことも出来ます。
詳しくはDevelopersIOさんのこちらの記事をぜひご参照下さい!

参考1: GitHubリポジトリ
参考2: DevelopersIOの試してみた記事

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

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

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

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

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