0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NiFi で 推論したスキーマを出力する

Posted at

問題意識

NiFi の CSV Record Reader では Infer Schema という Schema Access Strategy を選択することができます。

Screenshot 2024-09-05 at 15.24.28.png

CSV には型の情報がありませんが、この設定を使って1行目がヘッダー(項目名)になっている CSV を読み込むことで、2行目以降のデータの内容をもとに各項目の型を推論したスキーマを当てはめて処理してくれます。

これはとても便利なのですが、「推論された型が本当に合っているのか?」という課題もあります。

かといって、項目数が多い CSV の場合、全項目のスキーマを手作業で定義するのは大変です。

そこで、「Infer Schema を使って推論されたスキーマを、何らかの形で出力して、それを検証・修正する形で本チャンのスキーマを作れないか」という話がこちらの雑談会で話題になりました。

結論

NiFi で 推論したスキーマを出力することは可能でした!

やりかた

ExtractRecordSchema プロセッサーを使います。
使い方はこんな感じ!

Fetch 系など、CSVファイルを取得した処理の後続に ExtractRecordSchema を配置して、Record Reader に CSVRecordReader を指定します。CSVRecordReader の Schema Access Strategy で、Infer Schemaを選択します。

image.png

ExtractRecordSchema から出力されるフローファイルの attribute に、avro.schema という項目があり、そこに推測されたスキーマが入っています。

Screenshot 2024-09-05 at 15.36.59.png

これをベースに、必要に応じて型や null の許容有無などを修正することで、本番運用に耐えるスキーマを楽に作れるのではないでしょうか!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?