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

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

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

Google BigQueryのニュースまとめ

US と EU 以外のリージョンにおいて Storage Write API の pending mode のストリームの commit 可能なデータサイズの上限が 100GB から 1TB に引き上げられました

US と EU 以外のリージョンにおいて Storage Write API を利用してデータを書き込む際に、ストリームを commit するまで pending にしておけるデータの上限が大幅に引き上げられました。

その他のクォータについては Quotas and limits を、Storage Write API については以下を参照してください。
BigQuery Storage Write API を使用してデータを一括読み込み、ストリーミングする

BigQuery で Workforce identity 連携が利用可能になりました (Preview)

Azure AD や Okta などの外部 ID プロバイダ (IdP) を利用した BigQuery リソースへの認証・認可が可能になりました。GCP側でのアカウント作成不要で権限付与ができるようです。

制限事項があるようですので、詳しくは Workforce Identity 連携: サポート対象のプロダクトと制限事項 をご覧ください。

BigQueryテーブルのカラムにdefault valueが設定できるようになりました (Preview)

デフォルト値の列にデータが含まれていない行をテーブルに追加すると、デフォルト値がその列に書き込まれるようになります。

設定方法など、詳しくは デフォルトの列の値を指定する をご覧ください。

ALTER TABLE RENAME COLUMN DDL ステートメントが利用可能になりました (Preivew)

既存のテーブルスキーマの列の名前を変更できるようになりました。
構文や引数など、詳しくは ALTER TABLE RENAME COLUMN ステートメント をご覧ください。

クラウドコンソールの改善が行われました

  • BigQueryのいくつかのメタデータがクリップボードにコピーしやすくなりました
    • スキーマビューでテーブルスキーマのフィールドを選択し 「表としてコピー」が可能になりました
    • エクスプローラでIDをコピーできるようになりました
  • クエリ実行結果のカラムがリサイズ可能になりました
  • タブ名がタイトルの長さに合わせて広がるようになりました
  • エクスプローラで「保存したクエリ」を表示できるようになり、コンソール下部には表示されないようになりました
  • エクスプローラで mydataset.mytable のような形での検索ができるようになりました
  • クエリエディタで F1 を押すと表示されるショートカットが増えました
  • クエリエディタでオートコンプリートされた関数を選択した後、パラメータ名をBackspaceまたはDeleteキーで一気に削除できるようになりました

マテリアライズドビューのmax_staleness オプションに問題があったため、利用できなくなりました

Data Engineering News 2022年7月アップデートまとめ で Preview になったと紹介した機能ですが、問題があり利用できなくなったようです。

Community contributed UDFがBigQuery上の一般公開データセットとして利用可能になりました (Generally Available)

GitHubの GoogleCloudPlatform/bigquery-utils リポジトリで公開されている Community contributed UDF (ユーザ定義関数) が BigQuery上で bigquery-public-data.persistent_udfs として利用可能になりました。

一般公開データセットの使い方については コンソールを使用して一般公開データセットにクエリを実行する をご覧ください。

外部の永続テーブルを使用してCloud Bigtableに対してクエリ実行できるようになりました (Generally Available)

BigQueryテーブルにデータを保存することなく、Cloud Bigtableに存在するデータに対してクエリを実行できます。(2017/03がベータリリースのようなので長いベータでした)

詳しくは下記のリンクをご覧ください。
外部の永続テーブルを使用して Cloud Bigtable データに対してクエリを実行する

組織、プロジェクト単位でのデフォルトの設定をすることが可能になりました(Generally Available)

以下の値を、組織またはプロジェクト単位で設定することが可能になりました。

  • default_time_zone:タイムゾーンに依存するSQL関数で使用するデフォルトのタイムゾーン
  • default_kms_key_name:テーブルデータを暗号化するための、クラウド鍵管理サービスのデフォルトの鍵
  • default_query_job_timeout_ms:クエリジョブがタイムアウトするまでのデフォルトの時間

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

Cloud Spanner 連携機能において、クエリ実行優先度を管理できるようになりました (Generally Available)

query_execution_priority オプションを利用して、個々のクエリに優先度 (high, medium, low) を割り当てることができます。デフォルトの優先度は medium です。

詳しくは下記のリンクをご覧ください。
Cloud Spanner の連携クエリ | クエリ実行優先度を管理する

BigQuery OmniでReservation、Access Control DCLが利用可能になりました  (Generally Available)

Data Engineering News 2022年7月アップデートまとめ で紹介した BigQuery Omni で利用可能になった機能がGAとなりました。以下、7月アップデートまとめからの引用です。

BigQuery Omni で以下の機能が利用可能になりました。
・料金モデルを柔軟に切り替えることができるReservation機能
・GRANT, REVOKEといったDCLステートメントによるアクセス制御

https://blog.trocco.io/data-engineering-news/2022-08-04#Google_BigQuery

Amazon Redshiftのニュースまとめ

Query Editor V2の機能強化

Query Editor V2がフェデレーションSSOに対応しました。Redshiftクラスターに接続する際に、IDプロバイダーを使用して認証をすることができるようになります。

また、Query Editor V2が複数クエリの同時実行に対応しました。処理に時間のかかるクエリの実行中に、並列して別のクエリを実行できるようになります。

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

Snowflakeのニュースまとめ

GA(一般公開)となった機能リリース

  • Snowpark Stored Procedures in Java / Scala
  • ORGADMIN Role
    • ORGADMIN ロールを持つ組織管理者は次を実行できます。
      • 組織内のすべてのSnowflakeアカウントとリージョンを表示する
      • 組織の下に新しいSnowflakeアカウントを作成する
      • 組織内のSnowflakeアカウントの名前を変更する
      • 組織に属するすべてのSnowflakeアカウントの使用状況と請求データを提供する、 ORGANIZATION_USAGE スキーマにアクセスする
      • 詳しくはこちら https://docs.snowflake.com/en/user-guide/organizations.html
  • ORGANIZATION_USAGE Views
    • 以下のビューが一般公開となり、組織配下のオブジェクトのコスト監視が行えるようになりました。
      • Storage:
        • DATABASE_STORAGE_USAGE_HISTORY
        • STAGE_STORAGE_USAGE_HISTORY
      • Data transfer:
        • DATA_TRANSFER_HISTORY
      • Serverless features:
        • AUTOMATIC_CLUSTERING_HISTORY
        • MATERIALIZED_VIEW_REFRESH_HISTORY
        • PIPE_USAGE_HISTORY
        • REPLICATION_USAGE_HISTORY
        • SEARCH_OPTIMIZATION_HISTORY

GEOMETRY型のサポート(プレビュー)

GEOMETRY(ジオメトリ、幾何学) データ型で平面座標を表現できるものです。

GEOGRAPHY(地理空間)データ型はすでにサポートしており、
一般的には
geography型は回転楕円体(Ellipsoidal)空間を表現するものに対し、
今回リリースされたgeometory型は平面空間を表現するデータ型となります。

関連して、ST_STARTPOINT、ST_ENDPOINTなどの座標点をとり扱う関数も追加されています。

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

アカウント複製機能のサポート(プレビュー)

アカウント配下のデータベース、ウェアハウス、ユーザ、ロールなどを
別のリージョン、プラットフォームに複製することができるようになりました。
複製の型式は2つあり、「複製グループ」「フェイルオーバーグループ」が用意されます。

複製グループは、その単位でオブジェクトを管理し、管理下のオブジェクトの読み取り権限を提供します。

一方で、フェイルオーバーグループという仕組みは、グループを作成することで、元の対象オブジェクトがプライマリフェイルオーバーグループ、作成したグループがセカンダリフェイルオーバーグループとなり、
セカンダリを昇格させることで、読み取り・書き込みが可能になるというものとのことです。

フェイルオーバーグループはBusiness Criticalプラン以上の提供となります。

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

SQL機能のアップデート

  • INFER_SCHEMAの追加パラメータ
    • INFER_SCHEMAは 半構造化データを含む一連のステージングデータファイル内のファイルメタデータスキーマを自動的に検出し、列定義を取得する関数です。
      追加されたパラメタは以下の2つとなります。
      • FILES = ( 'file_name' [ , 'file_name' ... ] )
        半構造化データを含む一連のステージング ファイル内の 1 つ以上のファイル名 (コンマで区切られた) のリストを指定します。
      • IGNORE_CASE = TRUE | FALSE
        ステージ ファイルから検出された列名を大文字と小文字を区別して扱うかどうかを指定します。初期値はFalseとなり、大文字小文字を区別します。Trueを指定した場合は、全て大文字で表現されます。
  • CREATE EXTERNAL TABLE(プレビュー)
    上記のINFER_SCHEMAに利用して、外部テーブルを半構造化ファイルの列定義を含めた作成方法が追加されました。
create or replace external table myet
    using template (
      select array_agg(object_construct(*))
        from table(
          infer_schema(
            location=>'@filestage',
            file_format=>'ffparquet'
          )
        )
    )
    location=@filestage
    file_format=ffparquet
    auto_refresh=false;
  • アカウントのリネーム
alter account original_acctname rename to new_acctname;

デフォルトでは、アカウント名変更後、新しいURLに加えて、古いURL( {original_acctname}.snowflakecomputing.com)もサポートしつづけますが、古いURLを無効にするオプションもあるとのことです。

  • ACCESS_HISTORY ビューのコンシューマアカウントへの参照権限のサポート

より詳しく知りたい方は以下の参考リンクも御覧ください。
https://docs.snowflake.com/en/release-notes/2022-08.html#sql-updates

タスク機能: 単一の SQL ステートメントで複数の先行タスクを指定するためのサポート

SnowflakeタスクはDAG(有向非巡回グラフ)で表現することができます。
今回のリリースで、新しいタスクを作成するとき(CREATE TASK … AFTER を使用)またはそれ以降(ALTER TASK … ADD AFTER を使用)に複数の先行タスクを指定できるようになります。

これまで、タスクの作成時またはタスクの変更時にユーザーが指定できるのは、
単一の先行タスクに制限されていました。

例: 新規タスク(a4)を複数の先行タスク(a1, a2, a3)に依存する形で定義する

create task a4
  after a1, a2, a3
  as select 1;

例: 既存タスク(b4)をを複数の先行タスク(b1, b2, b3)に依存する形で更新する

alter task b4 add after b1, b2, b3;

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

マスキングポリシーのアップデート

  • IS_ROLE_IN_SESSIONのサポート
    マスキングポリシーにROLEによる制御方法が追加されました。

例: 対象列に対し、ANALYSTロールであれば値を返し、それ以外はマスクした結果を返すポリシーの定義

create or replace masking policy allow_analyst as (val string)
returns string ->
case
  when is_role_in_session('ANALYST') then val
  else '*******'
end;
  • ポリシー条件によるNULL/NOT NULL結果を返すビューのサポート

マスキングポリシーに列の長さ、スケール、または精度と一致しないなどの条件に対し、エラーを返すようになりました。

例:
ポリシーの作成(6文字の文字列を返すポリシー)

create masking policy mp as (s string)
returns string -> 'abcdef';
assign the policy:

テーブル定義の作成(2文字制限の列:col1 をもつテーブル名: t)

create table t(col1 string(2));

テーブル:t へのポリシー適用

alter table t modify column col1 set masking policy mp;
query the column (fails):

クエリの実行(この場合エラーとなる)

select * from t;

より詳しく知りたい方は以下の参考リンクも御覧ください。
https://docs.snowflake.com/en/user-guide/managing-behavior-change-releases.html#label-security-column-intro-bcr-casting

Lookerのニュースまとめ

新しい LookML ランタイムが GA になりました

新しいランタイムは様々なパフォーマンスの向上がされています。
LookMLバリデーションやコンテンツバリデーション、 エクスプローラおよびダッシュボードの読み込み、SQLクエリ生成などにおいて性能が向上しているようです。
以前のランタイムに戻したい場合は、マニフェストファイルに new_lookml_runtime: no を記載するか、設定の レガシー機能 内の Use Legacy LookML Runtime を有効にすることで変更できます。

詳細は 公式ドキュメントをご確認ください。

BigQueryコネクションのPDTにOAuthが利用可能になりました

BigQueryで接続した永続的な派生テーブル(PDT)の接続設定において OAuth を使用できるようになりました。

詳細は 公式ドキュメント をご確認ください

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

Google Analytics4のサブプロパティとロールアッププロパティが使用可能になりました

Google Analyticsコネクタを使用して、Google Analytics 4のサブプロパティおよびロールアッププロパティに接続することができます。


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

dbt のニュースまとめ

dbt Cloudの新UI(beta版)が利用可能になりました

上部ナビゲーションバーにあるオプトインリンクから新UIに切り替えることができます。
現在、切り替えは旧UIと双方向性であり、すぐに戻すことも可能です。

新UIは、視覚的には大きく刷新されていますが、機能的にはわずかな変更となります。


一例として、

  • ハンバーガメニューが廃止され、トップのナビゲーションで遷移ができるようになりました
  • Run History、Jobs、Environments、Data Sourcesが全てDeployタブの下に表示されるようになりました
  • ドキュメントとデータソースのリンクは、特定のプロジェクトに設定されたときのみメニューに表示されていましたが、殻の状態で常に表示されるようになりました
  • アカウントとプロフィールの設定は、別々のページになっていましたが、一カ所にまとめられました

次のメジャー アップデートでは、特に IDE に焦点を当てる予定とのことです。
現在、ベータプログラムを展開中で、フォームから参加を希望することができます。

詳細は公式ブログをご確認ください。
The dbt Cloud UI is getting a makeover

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

troccoの直近のアップデートをご紹介します。

データカタログ

基本メタデータをカラム情報画面に表示

基本メタデータ項目「論理名」および「説明」について、カラム一覧に表示するかどうかを選択できるようになりました。
image

上記は「データカタログ設定」の「trocco 基本メタデータ設定」から設定できます。
image

クエリ実行結果を CSV でダウンロード

クエリエディタにて、クエリの実行結果を CSV 形式でダウンロードできるようになりました。
image

:::(Warning) (クエリ実行結果のダウンロードファイルサイズ制限)
ダウンロードできる CSV ファイルのファイルサイズは最大 10MB です。
ファイルサイズ上限を超えた行は切り捨てられます。
:::

Markdown エディタでメタデータを編集

基本メタデータの「説明」欄、およびユーザー定義メタデータの任意のフィールド値を Markdown エディタで編集できるようになりました。
image

image

ユーザー定義メタデータのフィールドについては、「データカタログ設定」の「ユーザー定義メタデータ用テンプレート」から設定できます。
Markdown エディタを利用したいフィールドについて、データ型にText(Markdown) を指定してください。
image

ヘルプドキュメント公開

データカタログについてのヘルプドキュメントが公開されました。
詳しくは、データカタログについてを参照ください。

dbt 連携

dbt 連携機能がリリースされました🎉

  • OSS 版 dbt の実行環境と、GitHub 連携を提供しています。
  • ETL からデータモデリングの流れを、trocco ワークフロー機能上に定義することができます。
  • 2022 年 8 月末現在、dbt Git リポジトリのアダプターとしては、以下の 3 つに対応しています。
    • Google BigQuery
    • Snowflake
    • Amazon Redshift
  • 今後のリリース予定等、詳しくはプレスリリースを参照ください。

マネージドデータ転送

マネージドデータ転送機能がリリースされました🎉

マネージドデータ転送は、既存の一括登録機能を発展させた機能です。
データソース側のテーブルを一括インポートすることに加え、データソース側のテーブルの増減を自動検知して Slack に通知したり、ワークフロー機能上でかんたんに転送ジョブの一括実行が行えるようになりました。

:::(Warning) (マネージドデータ転送の対応コネクタ)
2022 年 8 月末現在、転送元 MySQL、転送先 Google BigQuery にのみ対応しています。
:::

マネージド転送設定の追加

テーブル増減を自動で検知できる

STEP3「テーブル増減検知結果の通知・ラベル一括設定」で、テーブル増減検知結果の通知の設定ができます。
image

マネージド転送設定一覧

先に追加したマネージド転送設定の一覧を確認できます。
各マネージド転送設定の詳細画面だけでなく、各マネージド転送設定配下にある個別の転送設定の詳細画面にもワンクリックで移動することができます。
image

マネージド転送設定詳細画面

該当のマネージド転送設定に対して、手動でテーブルを追加したり、配下の転送設定を個別に削除したりできます。
image

また、テーブルの増減が検知されたときは、ダイアログが表示されます。
image

ワークフロー定義

マネージド転送設定配下の転送ジョブを一括実行できる

ワークフロー定義のフロー編集に追加できるタスクとして、「trocco マネージド転送設定」が追加されました。
これにより、各マネージド転送設定配下の転送設定のジョブを一括で実行できるようになりました。
image

image
image

転送設定

転送先に HubSpot が追加 🎉

contact オブジェクトに対して、merge を実行できます。
今後、対応するオブジェクトを順次追加していく予定です。
image

転送元に trocco が追加 🎉

trocco のデータカタログで保持している、「ユーザー定義メタデータ」および「カラム参照一覧」に関するデータを転送することができます。
image

転送元 Marketo のターゲットにて、フォルダーに対応

転送元 Marketo でフォルダーのデータを取得できるようになりました。
image

カスタム変数に対応する機能が追加 🎉

以下の機能にて、カスタム変数に対応しました。

  • 転送設定 STEP2「データプレビュー・詳細設定」のフィルター設定における、フィルター値
    image
  • 転送元 HTTP (S)の「HTTP ヘッダ」における、キーおよび値
    image

UI・UX

転送設定一覧

絞り込み項目に「作成者」を追加

一覧表示する転送設定を、「作成者」によって絞り込むことができるようになりました。
image

絞り込み項目「名前(部分一致)」が AND 検索に対応

スペースで区切って入力することで、AND 検索できるようになりました。

  • 1 つの単語で検索した場合
    image
  • 2 つの単語で AND 検索をした場合
    image
選択した転送設定に一括でラベルを追加可能に

下の画面内で説明した順番にボタンをクリックすることで、ラベル一括追加画面が表示されます。
image

お好きなラベルを選択し、追加をクリックしてくだsだい。
image

アカウント・ユーザー画面

各ユーザーの認証方式を表示

2 段階認証および SAML 認証がそれぞれ有効かどうかをご確認いただけます。
image


その他、以下のような改修などが加わっております。

  • 転送元 Twitter Ads でレポート種別に line_item を選択したとき、転送内容に campaign_id を含めるようになりました。

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


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

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

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

hirokazu.kobayashi

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