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

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

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

Google BigQueryのニュースまとめ

トランザクション(Multi-statement transactions)のサポート

RDBMSではお馴染みのトランザクション機能がプレビュー版でリリースされました。

1つ以上のテーブルでの行の挿入や削除などの操作、および変更をアトミックに処理を行い、コミットまたはロールバックを行えるようになりました。

クエリ例は以下の通りです。

BEGIN
  BEGIN TRANSACTION;
  INSERT INTO mydataset.NewArrivals
    VALUES ('top load washer', 100, 'warehouse #1');
  -- Trigger an error.
  SELECT 1/0;
  COMMIT TRANSACTION;
EXCEPTION WHEN ERROR THEN
  -- Roll back the transaction inside the exception handler.
  SELECT @@error.message;
  ROLLBACK TRANSACTION;
END;

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

権限操作命令(data control language, DCL)のサポート

SQLによる権限の付与・除外の操作としておなじみのGRANT、REVOKEはGAリリース、OBJECT_PRIVILEGESはプレビュー版としてリリースされました。

GRANT

ユーザにBigQueryのリソースへの権限を付与します。SQL記述例は以下のとおりです。

GRANT `roles/bigquery.dataViewer` ON SCHEMA `mycompany`.revenue
TO "user:tom@example.com", "user:sara@example.com"

REVOKE

ユーザにBigQueryのリソースへの権限を除外します。SQL記述例は以下のとおりです。

REVOKE `roles/bigquery.admin` ON SCHEMA myProject
FROM "group:example-team@example.com", "serviceAccount:user@test-project.iam.gserviceaccount.com"

INFORMATION_SCHEMA.OBJECT_PRIVILEGES ビュー

メタ管理ビューのひとつ。各行にリソースとその操作権限情報を含む結果を返します。

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

データ型に対する型変換関数のGA版リリース

以下のデータ型変換用の関数がGA版としてリリースされました。

PARSE_BIGNUMERIC / PARSE_NUMERICSTRING型からBIGNUMERIC/NUMERIC型に変換します。
CASTSTRING, DATE, DATETIME, TIME, TIMESTAMP, NUMERIC,BYTES型の変換をサポートしました。
INT64型のエイリアス(INT, SMALLINT, INTEGER, BIGINT, TINYINT, BYTEINT)他のRDBMSの場合桁数による違いがありますが、BigQueryでは全てINT64型のエイリアスとして定期されたとのことです。
ST_GEOGFROMSTRING または BYTES の値の式を GEOGRAPHY の値に変換します。

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

ALTER COLUMN SET OPTIONS ステートメントのGA版リリース

ALTER COLUMN SET OPTIONS がGA版でリリースされました。
カラムの説明(description)を書き込むことができます。

ALTER TABLE mydataset.mytable
ALTER COLUMN price
SET OPTIONS (
  description="Price per unit"
)

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

Table-valued Functions (TVF, テーブル値関数)がプレビュー版でリリース

Table-valued Functions (TVF, テーブル値関数)がプレビュー版でリリースされました。
TVFはユーザ定義関数の一つで、テーブル結果を返す関数になります。
振る舞いはテーブルビューと似ていますが、パラメータを持つことが特徴です。

定義例

CREATE OR REPLACE TABLE FUNCTION mydataset.names_by_year(y INT64)
AS
  SELECT year, name, SUM(number) AS total
  FROM `bigquery-public-data.usa_names.usa_1910_current`
  WHERE year = y
  GROUP BY year, name

利用例

SELECT * FROM mydataset.names_by_year(1950)
  ORDER BY total DESC
  LIMIT 5

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

Googleトレンド(US)のデータセットがプレビュー版で公開

USのGoogleトレンドのデータセットがBigQueryのpublic datasetとして公開されました。
内容は過去5年間のUSでのデイリー上位25位のワード、25個の急上昇ワードが含まれているとのことです。

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

テーブルスナップショットがプレビュー版でリリース

テーブルのスナップショットの作成がリリースされました。

元テーブルに存在する同じデータや作成後に追加されたデータについては課金されず、変更・削除されたデータについてのみ課金される仕組みとのことです。

ほとんどのユースケースに置いてテーブルコピーをして保持するよりもコストが抑えられそうです。

主な制約としては以下があります。

  • 元テーブルと同一リージョンにのみ配置可能
  • 変更操作はできない
  • クエリ実行回数上限など

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

行レベルのアクセス制御がGA版でリリース

これまでデータアクセスの制限として、プロジェクト、データセット、テーブル、そしてカラム単位でのアクセス制限がサポートされていましたが、今回のリリースから行レベルセキュリティを使用することで、設定したユーザー条件に基づいて行単位でのアクセス制御ができるようになりました。

データのアクセス制御を行う手段として、他に

  • 承認済みビュー
  • テーブルを分割

などの方法がありますが、今回リリースされた行レベルアクセスセキュリティとの比較しているものが公式ドキュメントに記載されています。

ポイントとしては

  • 承認済みビュー・行レベルアクセスの場合はクエリエラーメッセージなどから、保護された行の情報を特定されてしまう可能性がある
  • 不正な操作をモニタリングできるように監査ロギングをセットで利用することを推奨している
  • クエリの課金バイト数は行レベルセキュリティのフィルタでなく、通常のWHERE句と同じ方法で計算される
  • 行レベルアクセスを設定したテーブルに対し、レガシーSQLクエリはエラーになる

などがありました。

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

データ型の制約を指定するパラメータのサポート

以下のデータ型で、長さや桁数をに制限をつけられるようになりました。

  • STRING(L): Lは整数値で、文字列の最大文字数を指定します。指定値を超える値を割り当てようとした場合には OUT_OF_RANGE エラーを返します。
  • BYTES(L): Lは整数値で、最大バイト数を指定します。指定値を超える値を割り当てようとした場合には OUT_OF_RANGE エラーを返します。
  • NUMERIC(P) / NUMERIC(P, S): 最大精度がP、最大スケールSを整数値で指定します。最大スケール範囲: 0 ≤ S ≤ 9 最大精度範囲: max(1, S) ≤ P ≤ S + 29
  • BIGNUMERIC(P) / BIGNUMERIC(P, S): 最大精度がP、最大スケールSを整数値で指定します。最大スケール範囲: 0 ≤ S ≤ 38 最大精度範囲: max(1, S) ≤ P ≤ S + 38

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

Amazon Redshiftのニュースまとめ

Amazon Redshift が列レベルの上書きで大文字と小文字を区別しない照合順序をサポート

並べ替え・グループ化・LIKE検索・正規表現検索など比較ベースのオペレーションで、大文字小文字の区別をしない設定が可能になりました。なお、データとしては大文字小文字が区別されて保持されています。

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

Snowflakeのニュースまとめ

Snowparkをプレビュー提供開始

好きな言語でETL/ELT、データプレパレーション、フィーチャーエンジニアリングなどのワークロードを実装し、Snowflake上で実行できるようになりました。

現時点では、言語としてはScalaのみの対応で、AWS上でホストされているSnowflakeアカウントでのみ利用可能とのことです。

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

Java UDFsをプレビュー提供開始

Javaでユーザー定義関数を記述し、それらを組み込み関数のように呼び出すことができるようになりました。関数はインラインもしくはjarファイルで指定可能のようです。

こちらも現時点ではプレビュー版で、AWS上でホストされているSnowflakeアカウントでのみ利用可能とのことです。

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

地理空間データのサポート

GEOGRAPHY データ型が追加されました。

緯度/経度地、WKT、WKBなどのデータの場合、GEOGRAPHY型に保存するとクエリパフォーマンスの向上が期待できます。

また、GEOGRAPHY データ型を操作する地理空間関数が用意されています。

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

Snowflake SQL API

Snowflakeのデータを参照、更新するためのREST APIが、プレビュー版として提供開始されました。

現時点で以下の操作が可能とのことです。

  • SQLステートメントの実行
  • SQLステートメントの実行状況確認
  • SQLステートメントのキャンセル

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

クラウドストレージ内のファイルセットから列定義の検出

クラウドストレージ内の半構造化データファイルから、列定義の自動検出機能が提供開始されました。

この機能により標準ランディングテーブルや外部テーブルの作成が容易に行えるようになります。

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

Snowflake Data Marketplace の一般提供開始

プロバイダーとしてデータを公開したり、コンシューマーとしてデータの購入が可能になりました。

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

Lookerのニュースまとめ

マテリアライズドビューのサポート

永続的派生テーブル(PDT)を作成する際、マテリアライズドビューを利用できるようになりました。

従来からサポートしているPDTとはテーブルの更新方法が異なります。
PDTがLookerで永続化を管理するのに対し、マテリアライズドビューはデータベースがテーブルを更新します。

なお、マテリアライズドビューは現在、BigQueryとRedshiftで利用可能とのことです。

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

Looker Expressionでcase / whenが使用可能に

表計算時などにcase/whenが使用できるようになりました。

例えばこれまでif文でネストさせる必要があった箇所で、より簡単に表現が可能になります。

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

Lookerのラーニングプラットフォームがオープン

ビジネスユーザー、LookML開発者、Looker管理者のそれぞれのロールに合わせたレッスンが公開されました(3つの中から自分のロールを選択してレッスンを受ける形になります)。

なお、日本語へのローカライズは未対応です。

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

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

Googleアドマネージャーで取得可能なフィールドが追加

以下のフィールドを取得することが出来るようになりました。

  • Line item ID
  • Order ID
  • Creative ID
  • Ad unit ID (top level)
  • Placement ID
  • Country ID
  • City ID
  • Master and Companion creative ID
  • App ID

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

値の書式を保持したままのデータエクスポートが可能に

CSV、エクセル、SpreadSheetへのエクスポートの際に、数値や日付の書式を維持したままデータをエクスポートすることが可能になりました。

エクスポート時に「値の書式に合わせる」を選択することで有効になります。

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

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

設定変更の履歴管理・ロールバック機能をリリース

転送設定の変更履歴をビジュアライズし、任意の地点にロールバック出来る機能がリリースされました。

詳しくはこちらのリリースノートをご参照下さい。

SSOログインに対応

SAML認証によるSingle Sign On (SSO) に対応しました。
OneLoginやOktaといったSAML2.0に対応した各種サービスがご利用いただけます。

ワークフロータスクのエラーハンドリング機能の追加

これまではタスクが成功した場合にしか後続タスクが実行することができませんでした。
タスクエラー時も後続タスクを続行 を有効にすることで、タスクがエラーの場合でも次のタスクが実行できるようになります。


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

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

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

hirokazu.kobayashi

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