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

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

毎月更新でニュースをお届けしていますので、ニュースの新着メール通知をご希望の方はこちらのフォームよりご登録ください。

Google BigQueryのニュースまとめ

BigLakeテーブル機能がリリースされました(プレビュー)

Amazon S3、Google Cloud Storageなどのオブジェクトストレージ上のファイルに対して、行レベルと列レベルのセキュリティを付与しつつ、クエリを実行することができるようになりました。

既存の外部テーブル機能でもBigQuery外部のデータソースに対してクエリを実行することは可能でしたが、

  • 行レベルと列レベルのセキュリティ制御が可能
  • Amazon S3、Azure Data Lake Storage Gen2といった、Google Cloud外のデータも対象とできる(BigQuery Omniによって実現)

といった点が大きく異なります。

利用方法について詳しく知りたい方は、以下の参考リンクもご覧ください。
BigLake テーブルを作成して管理する

検索インデックス機能がリリースされました(プレビュー)

非構造化テキストや半構造化されたJSONに対してコスト/パフォーマンスの点から効率的に検索することが可能となりました。

検索インデックスが作成可能なデータ型は以下となります。

  • STRING型
  • ARRAY<STRING>型
  • STRING型またはARRAY<STRING>型のネストされたフィールドが一つ以上含まれているSTRUCT型
  • JSON型

検索インデックスは以下のクエリ例で作成することができます

— 作成可能なカラム全てにインデックスを作成
CREATE SEARCH INDEX sample_index ON dataset.sample_table(ALL COLUMNS);

— カラムを指定してインデックスを作成
CREATE SEARCH INDEX sample_index ON dataset.sample_table(sample_col1, sample_col2);

使用例

以下のテーブルに対して検索を行います。

検索はSEARCH関数をWHERE句に指定します。
以下のクエリでは、すべての列に対して「bar」を検索しています。

以下のクエリでは、Messageカラムに対して検索をしています。

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

Analytics Hub がリリースされました(プレビュー)

組織間で大規模データをセキュアかつ容易に共有できる Analytics Hub がプレビュー版で公開されました。

Analytics Hub は パブリッシュ / サブスクライブ モデルを採用しています。
パブリッシャーはデータのコピーを作成することなく、データセットを公開できます。
アクセス権限のあるサブスクライバーはデータセットに対してクエリを実行し、リアルタイムなデータを得ることができます。

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

BigQuery Omni によるクロスクラウド転送がリリースされました(プレビュー)

AWS S3 または Azure blob ストレージに保存されているデータに対して BigQuery 分析を実行できるようになりました。

クエリの実行はデータが存在する場所で行われ、データを BigQuery ストレージへ移動するコストが発生しません。実行結果は Google Cloud へ戻すこともできますし、そのまま Amazon S3 や Azure Blob Storage に直接書き込むこともできます。

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

Amazon Redshiftのニュースまとめ

監査ログの送信先にCloudWatchを追加

Redshiftの監査ログの送信先にCloudWatchを選択できるようになりました。送信先がS3の場合2時間未満のレイテンシがありましたが、CloudWatchにすると2分未満になり、より迅速に監査ログの確認ができます。
送信先をS3からCloudWatchに変更した場合でも、過去分のデータについてはS3に対してクエリすることで取得が可能なようです。

詳しくはリリースノートをご覧ください。

ロールベースのアクセスコントロール (RBAC) のサポート

ロールベースのアクセスコントロール(RBAC)ではロールに権限を付与し、ロールとユーザを紐づけることで権限管理ができます。
これにより、データの機密性に応じてロールを作成し、そのロールを組み合わせることで、より細やかな権限管理が可能になりました。
また、スーパーユーザしか実行できないようなコマンドも、ロールに権限を付与することで実行できるようになるようです。

詳しくはリリースノートをご覧ください。

Snowflakeのニュースまとめ

Snowflakeスクリプト (一般公開)

Snowflakeスクリプトは、Snowflake SQL の拡張機能であり、手続き型ロジックのサポートを追加するものです。
1月にプレビュー版が公開され、今回一般公開されました。

変数を定義していわゆるプログラムのように記述することで、プロシージャの作成や
Webインターフェースでスクリプトブロック($$)で囲い即時実行させたりすることができます。

SQL記述例: 円の面積を計算するスクリプト

execute immediate $$
declare
    radius_of_circle float;
    area_of_circle float;
begin
    radius_of_circle := 3;
    area_of_circle := pi() * radius_of_circle * radius_of_circle;
    return area_of_circle;
end;
$$
;
+-----------------+
| anonymous block |
|-----------------|
|    28.274333882 |
+-----------------+

詳しくは公式ドキュメントを参照ください。

Java用Snowpark API (一般公開)

SnowparkとはScalaを用いてデータフレーム操作を行うプログラムを記述し、
Snowflake上でデータパイプラインを構築・実行できるものです。

これまでは Snowflake Java UDF を作成することはできましたが、
Snowpark本体の記述はScalaで書く必要がありました。

今回のリリースで、プレビューから一般公開となりました。

Scala用Snowpark API, Java UDFs (Azureでの一般公開)

以前は AWS でホストされているアカウント向けのみに一般公開されていましたが、
AzureでホストされているSnowflakeアカウント向けのScala用Snowpark API も一般公開となりました。
また、GCP でホストされているアカウント向けは引き続きプレビューとのことです。

新しい SQL 関数

テーブル関数: CURRENT_TASK_GRAPHS, COMPLETE_TASK_GRAPHS (プレビュー)

スケジューリングされたタスクと小タスクので構成されるツリー情報(グラフ)の
実行ステータスを返すビューがプレビュー版として公開されました。

テーブル関数: TASK_HISTORY の新しい ERROR_ONLY 引数 (プレビュー)

TASK_HISTORY 関数の出力をフィルターし、指定された日付範囲内で失敗した、またはキャンセルされたタスクの実行履歴を取得できるようになりました。

管理者以外の電子メール通知を有効にできるように

管理者以外のユーザー(ACCOUNTADMIN のロールを持たないユーザー)のリソースモニターに対する
Email通知を有効にするサポートを追加されました。
管理者以外のユーザーを最大5人までリソースモニターに追加して、電子メール通知を受信できます。

テーブルの最小データ保持時間を設定できるように

SnowflakeのTime Travel機能は、定義された期間内の任意の時点で
履歴データ(変更または削除されたデータ)にアクセスできます。
このリリースで履歴データを保持する最小日数を設定できるようになりました。

Java UDFs を使用した非構造化データの処理 (プレビュー)

これまでSnowflakeでの非構造化データの扱いは
外部関数、もしくはリモートAPIを利用したファイル操作のみでした。

今回のリリースで、Java UDFs を使い、内部ステージまたは外部ステージのデータを操作して、スカラーまたは表形式の結果を返すことができるようになりました。

書き込み操作、TRUNCATE TABLE操作のアクセス履歴ビューへの追加(一般公開)

ACCESS_HISTORY ビューにおける書き込み操作(例: CTAS、 COPY … INTO TABLE)や
TRUNCATE TABLE コマンドなどの操作履歴が追える機能が、一般公開されました。

オブジェクトの依存関係、タグ付け機能(一般公開)

オブジェクトの依存関係を参照できるOBJECT_DEPENDENCIESビューが一般公開されました。
また、オブジェクトへのタグ付け機能についても一般公開となりました。

Lookerのニュースまとめ

Salesfroce や Facebook に対してデータが送信できるようになりました

Action Hub で SalesfroceとFacebook の Action が利用できるようになりました。
これにより、Salesforce の Campaign や、Facebook Custom Audience に対し、Looker からリードデータなどを送信することが出来るようになります。

詳しくは、リリースノートをご覧ください。
https://docs.looker.com/relnotes/v22-changelog#22.6

LookMLのパフォマーンスが大きく改善

Looker では、LookML という言語で各種ディメンション、集計、計算、およびデータ関係などを記述しコード管理することが出来ます。
この度、LookML の各種パフォーマンスが大きく改善し、バリデーションやダッシュボードの表示などが高速化されました。

パフォーマンスが改善された New LookML Runtime はすべての環境で有効になっています。

詳しくは、公式ドキュメントをご覧ください。
https://docs.looker.com/reference/manifest-params/new_lookml_runtime

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

Microsoft SQL ServerとAmazon Redshift コネクタのリリース(一般公開)

ベータ版のコネクタだったMicrosoft SQL ServerとAmazon Redshiftのコネクタが一般公開されました。

詳しい内容はConnect to Amazon RedshiftConnect to Microsoft SQL Server 2017をご覧ください。

レポートテンプレート機能の改善

レポートテンプレートを使用したレポート作成を簡易にできるようになりました。

選択したレポートテンプレートにご自信が保有しているデータをデータソースとして置き換えることを容易にできるようになりました。

選択したレポートテンプレートの右上にある自分のデータを使用をクリックしてご自身が保有しているデータソースを指定することでデータソースを置き換えることができるようになりました。

また、テンプレートをコピーして自分自身のレポートとして修正することも容易にできるようになりました。

選択したレポートテンプレートの右上にある編集して共有をクリックすることでご自身のレポート一覧に指定したテンプレートがレポートとして追加されます。

レポートテンプレートの作成方法についての詳しい内容はCreate a report from a templateをご覧ください。

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

troccoの直近のアップデートをご紹介します。詳しいアップデートは以下リリースノートもご参照下さい。
https://documents.trocco.io/docs/release-note-2022

接続情報

  • Oracle Database接続情報にて、SSH接続に対応しました。
  • HubSpot接続情報にて、認証方式としてOAuth2.0が選択できるようになりました。

転送設定

  • 転送元HubSpotにて、項目「パイプライン」、「パイプラインステージ」、「担当者」が取得できるようになりました。
    • 「deal」と「ticket」のパイプラインと、パイプラインステージのリストを取得できるようになりました。
  • 転送元としてZohoCRMが追加されました。
    • ZohoCRM専用のSQLライクなクエリ(COQL)を用いてデータを抽出し転送することが可能となりました。
  • トリガージョブ機能を非推奨とする文言を追加しました。
    • GUIで操作でき、より柔軟な依存関係を定義できる、ワークフロー機能への移行をお願いいたします。
  • 転送元としてRtoaster insight+ Googleアカウント連携が追加されました。
    • Rtoaster insight+ Googleアカウント連携を指定して、データ転送が行えるようになりました。

ワークフロー

  • ワークフローのタスク種別ごとにアイコンを分けました。フロー上のタスクが何を表しているのか、直感的にわかりやすくなりました。

データカタログ

  • クエリエディタで、クエリの保存および保存したクエリの読み込みができるようになりました。
  • 登録したユーザー定義メタデータを画面上部検索バーより検索できるようになりました。
  • ユーザー定義メタデータに文字列型のフィールドがある場合、そのフィールド内の値を検索できます。
    • (例:テーブルの「論理名」メタデータに「売上」という値を保存していた場合、検索バーで「売上」と入力すると、検索結果に表示されるようになりました。)
  • 検索時に「検索結果」画面に遷移し、詳細な情報の確認やフィルタ・ソートを行うことができるようになりました。
  • クエリエディタにて、前回起動時に選択していたプロジェクトをそのまま利用できるようになりました。
    • 主に利用しているプロジェクトを、クエリエディタ起動のたびに選択する必要がなくなりました。
  • テーブル・カラムの依存関係を表示・削除できるようになりました。
  • メタデータ収集対象にPostgreSQLが追加されました。

セキュリティ

  • 転送設定などでデータプレビューを行う際に、troccoサービス内部にプレビュー内容を保存(永続化)するかを選択できるようになりました。
    • この機能を有効にした場合、設定完了後の一定時間経過後にプレビュー内容が自動削除されるため、よりセキュアにご利用いただけます。


その他、詳しいアップデートは以下リリースノートをご参照下さい。
https://documents.trocco.io/docs/release-note-2022-04


以上、Data Engineering News 2022年3月のアップデートまとめでした。

毎月更新でニュースをお届けしておりますので、ニュースの新着メール通知をご希望の方はこちらのフォームよりご登録ください。

こんなニュースを知りたい!というようなご意見・ご要望も著者Twitterアカウントまでお気軽にDM下さい!

hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。