1

新しい V2 形式を使用してコンソール経由で監査ログをオンにし、シンクを作成して分析のために BigQuery にエクスポートします。

ここに画像の説明を入力

BigQuery にエクスポートされるテーブルはすべて、V2 形式を選択したにもかかわらず、列名に「 v1 」が含まれています。

ここに画像の説明を入力

次に、テーブルにクエリを実行しようとすると、列名が 128 文字を超えているため、エラーがスローされます。

ここに画像の説明を入力

監査ログが v1 命名スキーマを使用してエクスポートされるのはなぜですか? また、列名が 128 文字の制限を超えないようにするにはどうすればよいですか?

4

2 に答える 2

2

列名が 128 文字の制限を超えないようにするにはどうすればよいですか?

問題は長い名前の列パスを参照することではなく、出力列の名前
にあると思います。そのため、レガシー SQL 内で問題を解決するには、名前の慣習に準拠したエイリアスを提供する必要があります。
または、標準 SQL を使用するだけです。この場合、エイリアスはデフォルトでリーフ フィールドの名前です (この場合はtotalBilledBytes) 。

#legacySQL  
SELECT  
  protopayload_google_cloud_audit_auditlog.
    servicedata_google_cloud_bigquery_logging_v1_auditdata.
    jobCompletedEvent.
    job.
    jobStatistics.
    totalBilledBytes AS totalBilledBytes   
FROM [yourTable]

また

#standardSQL   
SELECT  
  protopayload_google_cloud_audit_auditlog.
    servicedata_google_cloud_bigquery_logging_v1_auditdata.
    jobCompletedEvent.
    job.
    jobStatistics.
    totalBilledBytes    
FROM `yourTable`
于 2017-03-09T04:48:14.633 に答える
0

監査ログが v1 命名スキーマを使用してエクスポートされるのはなぜですか?

v2 形式のエクスポートは、監査ログ ペイロードを含むLogEntryを参照します。

列名の「v1」は BigQuery AuditData メッセージ(特にgoogle.cloud.bigquery.logging.v1.AuditDataプロトコル バッファ)のバージョンで、ログエントリの proto ペイロード フィールドに保存されます。REST スタイルで説明されている公開ドキュメントでは、バージョンが公開されていません。

于 2017-03-10T20:49:15.823 に答える