データソースのインポートとエクスポート
superset cliを使用すると、データソースをYAMLから、またはYAMLにインポートおよびエクスポートできます。データソースにはデータベースが含まれます。データは次の階層で編成されている必要があります
├──databases
| ├──database_1
| | ├──table_1
| | | ├──columns
| | | | ├──column_1
| | | | ├──column_2
| | | | └──... (more columns)
| | | └──metrics
| | | ├──metric_1
| | | ├──metric_2
| | | └──... (more metrics)
| | └── ... (more tables)
| └── ... (more databases)
データソースをYAMLにエクスポートする
次のコマンドを実行することで、現在のデータソースを標準出力に出力できます
superset export_datasources
データソースをZIPファイルに保存するには、次のコマンドを実行します
superset export_datasources -f <filename>
デフォルトでは、デフォルト(null)値は省略されます。それらを含めるには、-dフラグを使用します。逆参照を含める場合(たとえば、テーブルが属するテーブルIDを含む列)、-bフラグを使用します。
または、UIを使用してデータソースをエクスポートすることもできます
- ソース -> データベースを開いて、単一または複数のデータベースに関連付けられているすべてのテーブルをエクスポートします。(1つ以上のテーブルの場合はテーブル)
- エクスポートするアイテムを選択します。
- アクション -> YAMLにエクスポートをクリックします
- UIからエクスポートしたアイテムをインポートする場合は、その親要素の中にネストする必要があります。たとえば、データベースはデータベースの下にネストする必要があり、テーブルはデータベース要素の中にネストする必要があります。
YAMLインポートを使用してインポートできるすべてのフィールドの網羅的なリストを取得するには、次のコマンドを実行します
superset export_datasource_schema
念のため、逆参照を含めるには-b
フラグを使用できます。
データソースのインポート
ZIPファイルからデータソースをインポートするには、次のコマンドを実行します
superset import_datasources -p <path / filename>
オプションのユーザー名フラグ-uは、データソースのインポートに使用されるユーザーを設定します。デフォルトは「admin」です。例:
superset import_datasources -p <path / filename> -u 'admin'
レガシーデータソースのインポート
Supersetの古いバージョンから現在のバージョンへ
Supersetバージョン4.x.xを使用して古いバージョン(2.x.xまたは3.x.x)からインポートする場合、インポートはコマンドlegacy_import_datasources
としてサポートされ、JSONまたはJSONのディレクトリが必要です。オプションは、再帰の場合は-r
、ユーザーを指定する場合は-u
です。オプションなしのレガシーインポートの例
superset legacy_import_datasources -p <path or filename>
Supersetの古いバージョンから古いバージョンへ
Supersetの古いバージョン(2.x.xおよび3.x.x)を使用する場合、コマンドはimport_datasources
です。 ZIPファイルとYAMLファイルがサポートされており、それらを切り替えるには機能フラグVERSIONED_EXPORT
が使用されます。 VERSIONED_EXPORT
がTrue
の場合、import_datasources
はZIPファイルを予期し、そうでない場合はYAMLを予期します。例:
superset import_datasources -p <path or filename>
VERSIONED_EXPORT
がFalse
の場合、パスを指定すると、yamlまたはymlで終わるすべてのファイルが解析されます。追加のフラグを適用できます(たとえば、指定されたパスを再帰的に検索するため)
superset import_datasources -p <path> -r
同期フラグ-sは、指定された要素をファイルと同期するためのパラメーターを受け取ります。これはメタデータベースの内容を削除する可能性があるため、注意してください。例:
superset import_datasources -p <path / filename> -s columns,metrics
これは、Supersetメタデータベースの<path /filename>
で見つかったすべてのデータソースのすべてのメトリックと列を同期します。つまり、YAMLで指定されていない列とメトリックは削除されます。テーブルを列、メトリックに追加する場合、それらも同期されます。
同期フラグ(-s)を指定しない場合、インポートはフィールドの追加と更新(上書き)のみを行います。たとえば、次のYAMLをファイルに保存し、import_datasourcesコマンドを実行することで、サンプルデータセットのテーブルrandom_time_seriesの列dsにverbose_nameを追加できます。
databases:
- database_name: main
tables:
- table_name: random_time_series
columns:
- column_name: ds
verbose_name: datetime