created: 2020-09-11T04:43:11.000Z

MySQL の CREATE TABLE から BigQuery のスキーマ(json)を生成する

ddlparseというモジュールを使うと簡単だった

コードはこれだけでよい

import sys
from ddlparse import DdlParse

sql = sys.stdin.read()
table = DdlParse().parse(sql)
print(table.to_bigquery_fields())

こんな感じで生成される

$ cat /tmp/__.sql | python ./generate-bigquery-schema-from-mysql-create-table.py  | jq . | head
[
  {
    "name": "id",
    "type": "INTEGER",
    "mode": "REQUIRED"
  },
  {
    "name": "name",
    "type": "string",
    "mode": "REQUIRED"
パシフィック・リム [Blu-ray]
[ad] パシフィック・リム [Blu-ray]
出演 チャーリー・ハナム, イドリス・エルバ (Blu-ray)