5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

日本語カラムを自動的に英字カラムに変換するReactのWebアプリを作ってみた

Last updated at Posted at 2021-09-28

BigQueryにcsvファイルなどのデータをロードする際に、カラム名のユニコード対応が未だにされていないことで、もしカラム名が日本語の場合はヘッダーを英数字に変換する必要が出てくる。
少量のカラムであれば、手で変換して行けば良いかもしれませんが、大量のカラムがある場合にはかなり手間がかかる作業になります:confounded:
このようなシーンで活躍しそうな、日本語カラムのcsvファイルを自動的に英字カラムに変換してデータをロードさせるツールを作ってみました。

ツールの使用感

csvファイルを読み込ませると、text列に元のカラム名、そしてtranslated textに変換された英字を出します。

以下は、国土交通省の台風位置データを読み込ませた画面の例です。
見ての通り、一部で変換出来ない文字があることがわかります。この画面上で編集することが出来ます。

また、type列でインポート先のデータ型をここで決めることも出来るようにしています。最初は全てstring型に固定させてます。string型から適切な型を選ぶと良いです。
(まだ、bq load --autodetectのような、データ型の自動推定まではやれていません。)

スクリーンショット 2021-09-28 1.50.47.png

数字から始まっている文字もBigQueryのカラム名に使えないため編集します。
この例ではtypeもデータに合わせて、integer, floatに変えてしまってます。

スクリーンショット 2021-09-28 1.12.48_2.png

最後に、Create Tableボタンを押すと、BigQueryにテーブルを作ってデータをインポートさせます。

以下はデータが入ったBigQueryのテーブル情報とプレビューです。

スクリーンショット 2021-09-28 10.56.36.png

画面で指定した通りのフィールド名とデータ型でスキーマが定義されています。
英字のみで分からなくならないように、元のカラム名はディスクリプションに入れています。

スクリーンショット 2021-09-28 10.57.31.png

指定したデータ型ですべのデータがインポート出来ています。


今回のサンプルデータとして、以下を使用しています。

ファイルのエンコードにutf-8対応させていません。
国土交通省の元のファイルはsjisだったため、文字化けしてしまいます。
nkfなどを使って、utf-8に変換する必要があります。

何を使って実装しているか

次回の投稿で、内部の実装を簡単に説明したいと思ってます。
https://qiita.com/yasudakn/items/864320b55cbcd1cf7558

5
1
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
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?