{"id":9039,"date":"2023-05-09T04:52:36","date_gmt":"2023-05-09T02:52:36","guid":{"rendered":"https:\/\/myoceane.fr\/?p=9039"},"modified":"2024-02-28T10:11:25","modified_gmt":"2024-02-28T09:11:25","slug":"bigdata-apache-superset","status":"publish","type":"post","link":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/","title":{"rendered":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p style=\"text-align: justify;\">\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 <a href=\"https:\/\/superset.apache.org\/docs\/installation\/installing-superset-from-scratch\/\">Apache Superset \u7684\u7db2\u7ad9<\/a>\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002<\/p>\n<pre class=\"lang:bash\">pip3 install apache-superset\nsuperset db upgrade<\/pre>\n<p style=\"text-align: justify;\">\u57f7\u884c\u7b2c\u4e8c\u500b\u6307\u4ee4\u7684\u6642\u5019\uff0c\u56de\u50b3\u4ee5\u4e0b\u7684\u932f\u8aa4\u8a0a\u606f\uff1a<\/p>\n<pre class=\"lang:bash\">root@bda354cf1ad54c9bbc2421eb1d40f8f4000000:\/home\/superset# superset db upgrade\n--------------------------------------------------------------------------------\n                                    WARNING\n--------------------------------------------------------------------------------\nA Default SECRET_KEY was detected, please use superset_config.py to override it.\nUse a strong complex alphanumeric string and use a tool to help you generate \na sufficiently random sequence, ex: openssl rand -base64 42\n--------------------------------------------------------------------------------\n--------------------------------------------------------------------------------\nRefusing to start due to insecure SECRET_KEY<\/pre>\n<p style=\"text-align: justify;\">\u89e3\u6c7a\u65b9\u6cd5\u53c3\u8003\uff1a<a href=\"https:\/\/superset.apache.org\/docs\/installation\/configuring-superset\/#secret_key-rotation\">https:\/\/superset.apache.org\/docs\/installation\/configuring-superset\/#secret_key-rotation<\/a><br \/>\u6211\u5011\u5728 PYTHONPATH \u88e1\u9762\u5275\u5efa\u4e00\u500b superset_config.py \u6a94\u6848\u4e26\u4e14\u5229\u7528 openssl rand -base64 42 \u7684\u6307\u4ee4\u5c07\u8f38\u51fa\u503c\u586b\u5165 <span class=\"s1\">SECRET_KEY<br \/><\/span><\/p>\n<h3>\u9023\u7d50\u7d42\u7aef SQLITE \u8cc7\u6599\u5eab<\/h3>\n<p style=\"text-align: justify;\">\u5c07 superset_config.py \u5167\u90e8\u7684\u8cc7\u6599\u5eab\u8def\u5f91\u8a2d\u5b9a\u5728 \/tmp\/superset.db\uff0c\u5982\u4ee5\u4e0b\u6240\u793a\uff1a<\/p>\n<pre class=\"lang:bash\">ROW_LIMIT = 5000\nSUPERSET_WEBSERVER_PORT = 8088\nSECRET_KEY = 'XrZdZ1UiuDtz5NlKdArLCYMPr+TpCtvEUgQ\/rHVzE3\/4XKFrNZ+Lz9a1'\nSQLALCHEMY_DATABASE_URI = 'sqlite:\/\/\/\/tmp\/superset.db'<\/pre>\n<h3>\u521d\u59cb\u5316<\/h3>\n<p>\u57f7\u884c\u4ee5\u4e0b\u6307\u4ee4\u9032\u884c\u521d\u59cb\u5316\uff1a<\/p>\n<pre class=\"lang:bash\">export FLASK_APP=superset\nexport SUPERSET_CONFIG_PATH=\/path\/to\/your\/superset_config.py\n\nsuperset fab create-admin\nsuperset init\n\nsuperset run -p 8088 --with-threads --reload --debugger<\/pre>\n<h3>\u767b\u5165\u756b\u9762<\/h3>\n<p>\u5728\u700f\u89bd\u5668\u8f38\u5165 localhost:8088 \u53ef\u4ee5\u770b\u5230<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-1024x500.png\" alt=\"\" class=\"wp-image-9246\" srcset=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-1024x500.png 1024w, https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-300x146.png 300w, https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-768x375.png 768w, https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-1536x750.png 1536w, https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/09\/superset_login-2048x1000.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h3>(Optional) \u53e6\u5916\u4e5f\u53ef\u4ee5\u9023\u63a5 MYSQL \u8cc7\u6599\u5eab<\/h3>\n<p style=\"text-align: justify;\">\u932f\u8aa4\u8a0a\u606f\u986f\u793a\u9810\u8a2d\u63d0\u4f9b\u7684 SQLALCHEMY_DATABASE_URI \u8cc7\u6599\u5eab\u7121\u6cd5\u521d\u59cb\u5316\uff0c<a href=\"https:\/\/medium.com\/seaniap\/python-web-flask-flask-sqlalchemy%E6%93%8D%E4%BD%9Cmysql%E8%B3%87%E6%96%99%E5%BA%AB-2a799acdec4c\">\u53c3\u8003\u7db2\u7ad9<\/a>\u9023\u7d50\u5df2\u6709\u7684 MySQL \u8cc7\u6599\u5eab\uff0c\u4f8b\u5982\uff1a<\/p>\n<p class=\"p1\" style=\"text-align: justify;\"><strong><span class=\"s1\">SQLALCHEMY_DATABASE_URI = &#8216;mysql+pymysql:\/\/username:password@hostname:3306\/superset&#8217;<\/span><\/strong><\/p>\n<pre class=\"lang:bash\">oot@bda354cf1ad54c9bbc2421eb1d40f8f4000000:\/mnt\/batch\/tasks\/startup\/wd# superset db upgrade\nLoaded your LOCAL configuration at [\/mnt\/batch\/tasks\/startup\/wd\/superset_config.py]\nlogging was configured successfully\n2023-05-07 21:44:14,870:INFO:superset.utils.logging_configurator:logging was configured successfully\n2023-05-07 21:44:14,879:INFO:root:Configured event logger of type &lt;class 'superset.utils.log.DBEventLogger'&gt;\nWe haven't found any Content Security Policy (CSP) defined in the configurations. Please make sure to configure CSP using the TALISMAN_ENABLED and TALISMAN_CONFIG keys or any other external software. Failing to configure CSP have serious security implications. Check https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/CSP for more information. You can disable this warning using the CONTENT_SECURITY_POLICY_WARNING key.\n2023-05-07 21:44:14,880:WARNING:superset.initialization:We haven't found any Content Security Policy (CSP) defined in the configurations. Please make sure to configure CSP using the TALISMAN_ENABLED and TALISMAN_CONFIG keys or any other external software. Failing to configure CSP have serious security implications. Check https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/CSP for more information. You can disable this warning using the CONTENT_SECURITY_POLICY_WARNING key.\nFalling back to the built-in cache, that stores data in the metadata database, for the following cache: `FILTER_STATE_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\n2023-05-07 21:44:14,882:WARNING:superset.utils.cache_manager:Falling back to the built-in cache, that stores data in the metadata database, for the following cache: `FILTER_STATE_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\nFalling back to the built-in cache, that stores data in the metadata database, for the following cache: `EXPLORE_FORM_DATA_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\n2023-05-07 21:44:14,884:WARNING:superset.utils.cache_manager:Falling back to the built-in cache, that stores data in the metadata database, for the following cache: `EXPLORE_FORM_DATA_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\nNo PIL installation found\n2023-05-07 21:44:15,938:INFO:superset.utils.screenshots:No PIL installation found\n\/usr\/local\/lib\/python3.8\/dist-packages\/flask_appbuilder\/models\/sqla\/interface.py:67: SAWarning: relationship 'SqlaTable.slices' will copy column tables.id to column slices.datasource_id, which conflicts with relationship(s): 'Slice.table' (copies tables.id to slices.datasource_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps=\"table\"' to the 'SqlaTable.slices' relationship. (Background on this error at: https:\/\/sqlalche.me\/e\/14\/qzyx)\n  for prop in class_mapper(obj).iterate_properties:\nINFO  [alembic.runtime.migration] Context impl MySQLImpl.\nINFO  [alembic.runtime.migration] Will assume transactional DDL.\nINFO  [alembic.runtime.migration] Running upgrade  -&gt; 4e6a06bad7a8, Init\nINFO  [alembic.runtime.migration] Running upgrade 4e6a06bad7a8 -&gt; 5a7bad26f2a7, empty message\nINFO  [alembic.runtime.migration] Running upgrade 5a7bad26f2a7 -&gt; 1e2841a4128, empty message\nINFO  [alembic.runtime.migration] Running upgrade 1e2841a4128 -&gt; 2929af7925ed, TZ offsets in data sources\nINFO  [alembic.runtime.migration] Running upgrade 2929af7925ed -&gt; 289ce07647b, Add encrypted password field\nINFO  [alembic.runtime.migration] Running upgrade 289ce07647b -&gt; 1a48a5411020, adding slug to dash\nINFO  [alembic.runtime.migration] Running upgrade 1a48a5411020 -&gt; 315b3f4da9b0, adding log model\nINFO  [alembic.runtime.migration] Running upgrade 315b3f4da9b0 -&gt; 55179c7f25c7, sqla_descr\nINFO  [alembic.runtime.migration] Running upgrade 55179c7f25c7 -&gt; 12d55656cbca, is_featured\nINFO  [alembic.runtime.migration] Running upgrade 12d55656cbca -&gt; 2591d77e9831, user_id\nINFO  [alembic.runtime.migration] Running upgrade 2591d77e9831 -&gt; 8e80a26a31db, empty message\nINFO  [alembic.runtime.migration] Running upgrade 8e80a26a31db -&gt; 7dbf98566af7, empty message\nINFO  [alembic.runtime.migration] Running upgrade 7dbf98566af7 -&gt; 43df8de3a5f4, empty message\nINFO  [alembic.runtime.migration] Running upgrade 43df8de3a5f4 -&gt; d827694c7555, css templates\nINFO  [alembic.runtime.migration] Running upgrade d827694c7555 -&gt; 430039611635, log more\nINFO  [alembic.runtime.migration] Running upgrade 430039611635 -&gt; 18e88e1cc004, making audit nullable\nINFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -&gt; 836c0bf75904, cache_timeouts\nINFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -&gt; a2d606a761d9, adding favstar model\nINFO  [alembic.runtime.migration] Running upgrade a2d606a761d9, 836c0bf75904 -&gt; d2424a248d63, empty message\nINFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -&gt; 763d4b211ec9, fixing audit fk\nINFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -&gt; 1d2ddd543133, log dt\nINFO  [alembic.runtime.migration] Running upgrade 1d2ddd543133, 763d4b211ec9 -&gt; fee7b758c130, empty message\nINFO  [alembic.runtime.migration] Running upgrade fee7b758c130 -&gt; 867bf4f117f9, Adding extra field to Database model\nINFO  [alembic.runtime.migration] Running upgrade 867bf4f117f9 -&gt; bb51420eaf83, add schema to table model\nINFO  [alembic.runtime.migration] Running upgrade bb51420eaf83 -&gt; b4456560d4f3, change_table_unique_constraint\nINFO  [alembic.runtime.migration] Running upgrade b4456560d4f3 -&gt; 4fa88fe24e94, owners_many_to_many\nINFO  [alembic.runtime.migration] Running upgrade 4fa88fe24e94 -&gt; c3a8f8611885, Materializing permission\nINFO  [alembic.runtime.migration] Running upgrade c3a8f8611885 -&gt; f0fbf6129e13, Adding verbose_name to tablecolumn\nINFO  [alembic.runtime.migration] Running upgrade f0fbf6129e13 -&gt; 956a063c52b3, adjusting key length\nINFO  [alembic.runtime.migration] Running upgrade 956a063c52b3 -&gt; 1226819ee0e3, Fix wrong constraint on table columns\nINFO  [alembic.runtime.migration] Running upgrade 1226819ee0e3 -&gt; d8bc074f7aad, Add new field 'is_restricted' to SqlMetric and DruidMetric\nINFO  [alembic.runtime.migration] Running upgrade d8bc074f7aad -&gt; 27ae655e4247, Make creator owners\nINFO  [alembic.runtime.migration] Running upgrade 27ae655e4247 -&gt; 960c69cb1f5b, add dttm_format related fields in table_columns\nINFO  [alembic.runtime.migration] Running upgrade 960c69cb1f5b -&gt; f162a1dea4c4, d3format_by_metric\nINFO  [alembic.runtime.migration] Running upgrade f162a1dea4c4 -&gt; ad82a75afd82, Update models to support storing the queries.\nINFO  [alembic.runtime.migration] Running upgrade ad82a75afd82 -&gt; 3c3ffe173e4f, add_sql_string_to_table\nINFO  [alembic.runtime.migration] Running upgrade 3c3ffe173e4f -&gt; 41f6a59a61f2, database options for sql lab\nINFO  [alembic.runtime.migration] Running upgrade 41f6a59a61f2 -&gt; 4500485bde7d, allow_run_sync_async\nINFO  [alembic.runtime.migration] Running upgrade 4500485bde7d -&gt; 65903709c321, allow_dml\nINFO  [alembic.runtime.migration] Running upgrade 41f6a59a61f2 -&gt; 33d996bcc382, update slice model\nINFO  [alembic.runtime.migration] Running upgrade 33d996bcc382, 65903709c321 -&gt; b347b202819b, empty message\nINFO  [alembic.runtime.migration] Running upgrade b347b202819b -&gt; 5e4a03ef0bf0, Add access_request table to manage requests to access datastores.\nINFO  [alembic.runtime.migration] Running upgrade 5e4a03ef0bf0 -&gt; eca4694defa7, sqllab_setting_defaults\nINFO  [alembic.runtime.migration] Running upgrade eca4694defa7 -&gt; ab3d66c4246e, add_cache_timeout_to_druid_cluster\nINFO  [alembic.runtime.migration] Running upgrade eca4694defa7 -&gt; 3b626e2a6783, Sync DB with the models.py.\n(pymysql.err.OperationalError) (1828, \"Cannot drop column 'druid_datasource_id': needed in a foreign key constraint 'slices_ibfk_1'\")\n[SQL: ALTER TABLE slices DROP COLUMN druid_datasource_id]\n(Background on this error at: https:\/\/sqlalche.me\/e\/14\/e3q8)\nINFO  [alembic.runtime.migration] Running upgrade 3b626e2a6783, ab3d66c4246e -&gt; ef8843b41dac, empty message\nINFO  [alembic.runtime.migration] Running upgrade ef8843b41dac -&gt; b46fa1b0b39e, Add json_metadata to the tables table.\nINFO  [alembic.runtime.migration] Running upgrade b46fa1b0b39e -&gt; 7e3ddad2a00b, results_key to query\nINFO  [alembic.runtime.migration] Running upgrade 7e3ddad2a00b -&gt; ad4d656d92bc, Add avg() to default metrics\nINFO  [alembic.runtime.migration] Running upgrade ad4d656d92bc -&gt; c611f2b591b8, dim_spec\nINFO  [alembic.runtime.migration] Running upgrade c611f2b591b8 -&gt; e46f2d27a08e, materialize perms\nINFO  [alembic.runtime.migration] Running upgrade e46f2d27a08e -&gt; f1f2d4af5b90, Enable Filter Select\nINFO  [alembic.runtime.migration] Running upgrade e46f2d27a08e -&gt; 525c854f0005, log_this_plus\nINFO  [alembic.runtime.migration] Running upgrade 525c854f0005, f1f2d4af5b90 -&gt; 6414e83d82b7, empty message\nINFO  [alembic.runtime.migration] Running upgrade 6414e83d82b7 -&gt; 1296d28ec131, Adds params to the datasource (druid) table\nINFO  [alembic.runtime.migration] Running upgrade 1296d28ec131 -&gt; f18570e03440, Add index on the result key to the query table.\nINFO  [alembic.runtime.migration] Running upgrade f18570e03440 -&gt; bcf3126872fc, Add keyvalue table\nINFO  [alembic.runtime.migration] Running upgrade f18570e03440 -&gt; db0c65b146bd, update_slice_model_json\nINFO  [alembic.runtime.migration] Running upgrade db0c65b146bd -&gt; a99f2f7c195a, rewriting url from shortener with new format\nINFO  [alembic.runtime.migration] Running upgrade a99f2f7c195a, bcf3126872fc -&gt; d6db5a5cdb5d, empty message\nINFO  [alembic.runtime.migration] Running upgrade d6db5a5cdb5d -&gt; b318dfe5fb6c, adding verbose_name to druid column\nINFO  [alembic.runtime.migration] Running upgrade d6db5a5cdb5d -&gt; 732f1c06bcbf, add fetch values predicate\nINFO  [alembic.runtime.migration] Running upgrade 732f1c06bcbf, b318dfe5fb6c -&gt; ea033256294a, empty message\nINFO  [alembic.runtime.migration] Running upgrade b318dfe5fb6c -&gt; db527d8c4c78, Add verbose name to DruidCluster and Database\nINFO  [alembic.runtime.migration] Running upgrade db527d8c4c78, ea033256294a -&gt; 979c03af3341, empty message\nINFO  [alembic.runtime.migration] Running upgrade 979c03af3341 -&gt; a6c18f869a4e, query.start_running_time\nINFO  [alembic.runtime.migration] Running upgrade a6c18f869a4e -&gt; 2fcdcb35e487, saved_queries\nINFO  [alembic.runtime.migration] Running upgrade 2fcdcb35e487 -&gt; a65458420354, add_result_backend_time_logging\nINFO  [alembic.runtime.migration] Running upgrade a65458420354 -&gt; ca69c70ec99b, tracking_url\nINFO  [alembic.runtime.migration] Running upgrade ca69c70ec99b -&gt; a9c47e2c1547, add impersonate_user to dbs\nINFO  [alembic.runtime.migration] Running upgrade ca69c70ec99b -&gt; ddd6ebdd853b, annotations\nINFO  [alembic.runtime.migration] Running upgrade a9c47e2c1547, ddd6ebdd853b -&gt; d39b1e37131d, empty message\nINFO  [alembic.runtime.migration] Running upgrade ca69c70ec99b -&gt; 19a814813610, Adding metric warning_text\nINFO  [alembic.runtime.migration] Running upgrade 19a814813610, a9c47e2c1547 -&gt; 472d2f73dfd4, empty message\nINFO  [alembic.runtime.migration] Running upgrade 472d2f73dfd4, d39b1e37131d -&gt; f959a6652acd, empty message\nINFO  [alembic.runtime.migration] Running upgrade f959a6652acd -&gt; 4736ec66ce19, empty message\nINFO  [alembic.runtime.migration] Running upgrade 4736ec66ce19 -&gt; 67a6ac9b727b, update_spatial_params\nINFO  [alembic.runtime.migration] Running upgrade 67a6ac9b727b -&gt; 21e88bc06c02, migrate_old_annotation_layers\nINFO  [alembic.runtime.migration] Running upgrade 21e88bc06c02 -&gt; e866bd2d4976, smaller_grid\nINFO  [alembic.runtime.migration] Running upgrade e866bd2d4976 -&gt; e68c4473c581, allow_multi_schema_metadata_fetch\nINFO  [alembic.runtime.migration] Running upgrade e68c4473c581 -&gt; f231d82b9b26, empty message\nINFO  [alembic.runtime.migration] Running upgrade f231d82b9b26 -&gt; bf706ae5eb46, cal_heatmap_metric_to_metrics\nINFO  [alembic.runtime.migration] Running upgrade f231d82b9b26 -&gt; 30bb17c0dc76, empty message\nINFO  [alembic.runtime.migration] Running upgrade 30bb17c0dc76, bf706ae5eb46 -&gt; c9495751e314, empty message\nINFO  [alembic.runtime.migration] Running upgrade f231d82b9b26 -&gt; 130915240929, is_sqllab_view\nINFO  [alembic.runtime.migration] Running upgrade 130915240929, c9495751e314 -&gt; 5ccf602336a0, empty message\nINFO  [alembic.runtime.migration] Running upgrade 5ccf602336a0 -&gt; e502db2af7be, add template_params to tables\nINFO  [alembic.runtime.migration] Running upgrade e502db2af7be -&gt; c5756bec8b47, Time grain SQLA\nINFO  [alembic.runtime.migration] Running upgrade c5756bec8b47 -&gt; afb7730f6a9c, remove empty filters\nINFO  [alembic.runtime.migration] Running upgrade afb7730f6a9c -&gt; 80a67c5192fa, single pie chart metric\nINFO  [alembic.runtime.migration] Running upgrade 80a67c5192fa -&gt; bddc498dd179, adhoc filters\nINFO  [alembic.runtime.migration] Running upgrade bddc498dd179 -&gt; 4451805bbaa1, remove double percents\nINFO  [alembic.runtime.migration] Running upgrade bddc498dd179 -&gt; 3dda56f1c4c6, Migrate num_period_compare and period_ratio_type\nINFO  [alembic.runtime.migration] Running upgrade 3dda56f1c4c6 -&gt; 1d9e835a84f9, empty message\nINFO  [alembic.runtime.migration] Running upgrade 4451805bbaa1, 1d9e835a84f9 -&gt; e3970889f38e, empty message\nINFO  [alembic.runtime.migration] Running upgrade 4451805bbaa1, 1d9e835a84f9 -&gt; 705732c70154, empty message\nINFO  [alembic.runtime.migration] Running upgrade 4451805bbaa1, 1d9e835a84f9 -&gt; fc480c87706c, empty message\nINFO  [alembic.runtime.migration] Running upgrade fc480c87706c -&gt; bebcf3fed1fe, Migrate dashboard position_json data from V1 to V2\nINFO  [alembic.runtime.migration] Running upgrade bebcf3fed1fe, 705732c70154 -&gt; ec1f88a35cc6, empty message\nINFO  [alembic.runtime.migration] Running upgrade 705732c70154, e3970889f38e -&gt; 46ba6aaaac97, empty message\nINFO  [alembic.runtime.migration] Running upgrade 46ba6aaaac97, ec1f88a35cc6 -&gt; c18bd4186f15, empty message\nINFO  [alembic.runtime.migration] Running upgrade c18bd4186f15 -&gt; 7fcdcde0761c, Reduce position_json size by remove extra space and component id prefix\nINFO  [alembic.runtime.migration] Running upgrade 7fcdcde0761c -&gt; 0c5070e96b57, add user attributes table\nINFO  [alembic.runtime.migration] Running upgrade 0c5070e96b57 -&gt; 1a1d627ebd8e, position_json\nINFO  [alembic.runtime.migration] Running upgrade 1a1d627ebd8e -&gt; 55e910a74826, add_metadata_column_to_annotation_model.py\nINFO  [alembic.runtime.migration] Running upgrade 55e910a74826 -&gt; 4ce8df208545, empty message\nINFO  [alembic.runtime.migration] Running upgrade 4ce8df208545 -&gt; 46f444d8b9b7, remove_coordinator_from_druid_cluster_model.py\nINFO  [alembic.runtime.migration] Running upgrade 46f444d8b9b7 -&gt; a61b40f9f57f, remove allow_run_sync\nINFO  [alembic.runtime.migration] Running upgrade a61b40f9f57f -&gt; 6c7537a6004a, models for email reports\nINFO  [alembic.runtime.migration] Running upgrade 6c7537a6004a -&gt; 3e1b21cd94a4, change_owner_to_m2m_relation_on_datasources.py\nINFO  [alembic.runtime.migration] Running upgrade 6c7537a6004a -&gt; cefabc8f7d38, Increase size of name column in ab_view_menu\nINFO  [alembic.runtime.migration] Running upgrade 55e910a74826 -&gt; 0b1f1ab473c0, Add extra column to Query\nINFO  [alembic.runtime.migration] Running upgrade 0b1f1ab473c0, cefabc8f7d38, 3e1b21cd94a4 -&gt; de021a1ca60d, empty message\nINFO  [alembic.runtime.migration] Running upgrade de021a1ca60d -&gt; fb13d49b72f9, better_filters\nINFO  [alembic.runtime.migration] Running upgrade fb13d49b72f9 -&gt; a33a03f16c4a, Add extra column to SavedQuery\nINFO  [alembic.runtime.migration] Running upgrade 4451805bbaa1, 1d9e835a84f9 -&gt; c829ff0b37d0, empty message\nINFO  [alembic.runtime.migration] Running upgrade c829ff0b37d0 -&gt; 7467e77870e4, remove_aggs\nINFO  [alembic.runtime.migration] Running upgrade 7467e77870e4, de021a1ca60d -&gt; fbd55e0f83eb, empty message\nINFO  [alembic.runtime.migration] Running upgrade fbd55e0f83eb, fb13d49b72f9 -&gt; 8b70aa3d0f87, empty message\nINFO  [alembic.runtime.migration] Running upgrade 8b70aa3d0f87, a33a03f16c4a -&gt; 18dc26817ad2, empty message\nINFO  [alembic.runtime.migration] Running upgrade 18dc26817ad2 -&gt; c617da68de7d, form nullable\nINFO  [alembic.runtime.migration] Running upgrade c617da68de7d -&gt; c82ee8a39623, Add implicit tags\nINFO  [alembic.runtime.migration] Running upgrade 18dc26817ad2 -&gt; e553e78e90c5, add_druid_auth_py.py\nINFO  [alembic.runtime.migration] Running upgrade e553e78e90c5, c82ee8a39623 -&gt; 45e7da7cfeba, empty message\nINFO  [alembic.runtime.migration] Running upgrade 45e7da7cfeba -&gt; 80aa3f04bc82, Add Parent ids in dashboard layout metadata\nINFO  [alembic.runtime.migration] Running upgrade 80aa3f04bc82 -&gt; d94d33dbe938, form strip\nINFO  [alembic.runtime.migration] Running upgrade d94d33dbe938 -&gt; 937d04c16b64, update datasources\nINFO  [alembic.runtime.migration] Running upgrade 937d04c16b64 -&gt; 7f2635b51f5d, update base columns\nINFO  [alembic.runtime.migration] Running upgrade 7f2635b51f5d -&gt; e9df189e5c7e, update base metrics\nINFO  [alembic.runtime.migration] Running upgrade e9df189e5c7e -&gt; afc69274c25a, update the sql, select_sql, and executed_sql columns in the\n   query table in mysql dbs to be long text columns\nINFO  [alembic.runtime.migration] Running upgrade afc69274c25a -&gt; d7c1a0d6f2da, Remove limit used from query model\nINFO  [alembic.runtime.migration] Running upgrade d7c1a0d6f2da -&gt; ab8c66efdd01, resample\nINFO  [alembic.runtime.migration] Running upgrade ab8c66efdd01 -&gt; b4a38aa87893, deprecate database expression\nINFO  [alembic.runtime.migration] Running upgrade b4a38aa87893 -&gt; d6ffdf31bdd4, Add published column to dashboards\nINFO  [alembic.runtime.migration] Running upgrade d6ffdf31bdd4 -&gt; 190188938582, Remove duplicated entries in dashboard_slices table and add unique constraint\nINFO  [alembic.runtime.migration] Running upgrade 190188938582 -&gt; def97f26fdfb, Add index to tagged_object\nINFO  [alembic.runtime.migration] Running upgrade def97f26fdfb -&gt; 11c737c17cc6, deprecate_restricted_metrics\nINFO  [alembic.runtime.migration] Running upgrade 11c737c17cc6 -&gt; 258b5280a45e, form strip leading and trailing whitespace\nINFO  [alembic.runtime.migration] Running upgrade 258b5280a45e -&gt; 1495eb914ad3, time range\nINFO  [alembic.runtime.migration] Running upgrade 1495eb914ad3 -&gt; b6fa807eac07, make_names_non_nullable\nINFO  [alembic.runtime.migration] Running upgrade b6fa807eac07 -&gt; cca2f5d568c8, add encrypted_extra to dbs\nINFO  [alembic.runtime.migration] Running upgrade cca2f5d568c8 -&gt; c2acd2cf3df2, alter type of dbs encrypted_extra\nINFO  [alembic.runtime.migration] Running upgrade c2acd2cf3df2 -&gt; 78ee127d0d1d, reconvert legacy filters into adhoc\nINFO  [alembic.runtime.migration] Running upgrade 78ee127d0d1d -&gt; db4b49eb0782, Add tables for SQL Lab state\nINFO  [alembic.runtime.migration] Running upgrade db4b49eb0782 -&gt; 5afa9079866a, serialize_schema_permissions.py\nINFO  [alembic.runtime.migration] Running upgrade 5afa9079866a -&gt; 89115a40e8ea, Change table schema description to long text\nINFO  [alembic.runtime.migration] Running upgrade 89115a40e8ea -&gt; 817e1c9b09d0, add_not_null_to_dbs_sqlalchemy_url\nINFO  [alembic.runtime.migration] Running upgrade 817e1c9b09d0 -&gt; e96dbf2cfef0, datasource_cluster_fk\nINFO  [alembic.runtime.migration] Running upgrade e96dbf2cfef0 -&gt; 3325d4caccc8, empty message\nINFO  [alembic.runtime.migration] Running upgrade 3325d4caccc8 -&gt; 0a6f12f60c73, add_role_level_security\nINFO  [alembic.runtime.migration] Running upgrade 0a6f12f60c73 -&gt; 72428d1ea401, Add tmp_schema_name to the query object.\nINFO  [alembic.runtime.migration] Running upgrade 72428d1ea401 -&gt; b5998378c225, add certificate to dbs\nINFO  [alembic.runtime.migration] Running upgrade b5998378c225 -&gt; f9a30386bd74, cleanup_time_granularity\nINFO  [alembic.runtime.migration] Running upgrade f9a30386bd74 -&gt; 620241d1153f, update time_grain_sqla\nINFO  [alembic.runtime.migration] Running upgrade 620241d1153f -&gt; 743a117f0d98, Add slack to the schedule\nINFO  [alembic.runtime.migration] Running upgrade 743a117f0d98 -&gt; e557699a813e, add_tables_relation_to_row_level_security\nINFO  [alembic.runtime.migration] Running upgrade e557699a813e -&gt; ea396d202291, Add ctas_method to the Query object\nINFO  [alembic.runtime.migration] Running upgrade ea396d202291 -&gt; a72cb0ebeb22, deprecate dbs.perm column\nINFO  [alembic.runtime.migration] Running upgrade a72cb0ebeb22 -&gt; 2f1d15e8a6af, add_alerts\nINFO  [alembic.runtime.migration] Running upgrade 2f1d15e8a6af -&gt; f2672aa8350a, add_slack_to_alerts\nINFO  [alembic.runtime.migration] Running upgrade f2672aa8350a -&gt; f120347acb39, Add extra column to tables and metrics\nINFO  [alembic.runtime.migration] Running upgrade f2672aa8350a -&gt; 978245563a02, Migrate iframe in dashboard to markdown component\nINFO  [alembic.runtime.migration] Running upgrade 978245563a02, f120347acb39 -&gt; f80a3b88324b, empty message\nINFO  [alembic.runtime.migration] Running upgrade f80a3b88324b -&gt; 2e5a0ee25ed4, refractor_alerting\nINFO  [alembic.runtime.migration] Running upgrade f80a3b88324b -&gt; 175ea3592453, Add cache to datasource lookup table.\nINFO  [alembic.runtime.migration] Running upgrade 175ea3592453, 2e5a0ee25ed4 -&gt; ae19b4ee3692, empty message\nINFO  [alembic.runtime.migration] Running upgrade ae19b4ee3692 -&gt; e5ef6828ac4e, add rls filter type and grouping key\nINFO  [alembic.runtime.migration] Running upgrade e5ef6828ac4e -&gt; 3fbbc6e8d654, fix data access permissions for virtual datasets\nINFO  [alembic.runtime.migration] Running upgrade 3fbbc6e8d654 -&gt; 18532d70ab98, Delete table_name unique constraint in mysql\nINFO  [alembic.runtime.migration] Running upgrade 18532d70ab98 -&gt; b56500de1855, add_uuid_column_to_import_mixin\n\nCleaning up slice uuid from dashboard position json.. Done.      \n\nINFO  [alembic.runtime.migration] Running upgrade b56500de1855 -&gt; af30ca79208f, Collapse alerting models into a single one\nINFO  [alembic.runtime.migration] Running upgrade af30ca79208f -&gt; 585b0b1a7b18, add exec info to saved queries\nINFO  [alembic.runtime.migration] Running upgrade 585b0b1a7b18 -&gt; 96e99fb176a0, add_import_mixing_to_saved_query\nINFO  [alembic.runtime.migration] Running upgrade 96e99fb176a0 -&gt; 49b5a32daba5, add report schedules\nINFO  [alembic.runtime.migration] Running upgrade 49b5a32daba5 -&gt; a8173232b786, Add path to logs\nINFO  [alembic.runtime.migration] Running upgrade a8173232b786 -&gt; e38177dbf641, security converge saved queries\nINFO  [alembic.runtime.migration] Running upgrade e38177dbf641 -&gt; 8ee129739cf9, security converge css templates\nINFO  [alembic.runtime.migration] Running upgrade 8ee129739cf9 -&gt; 811494c0cc23, Remove path, path_no_int, and ref from logs\nINFO  [alembic.runtime.migration] Running upgrade 811494c0cc23 -&gt; 5daced1f0e76, reports add working_timeout column\nINFO  [alembic.runtime.migration] Running upgrade 5daced1f0e76 -&gt; 40f16acf1ba7, security converge reports\nINFO  [alembic.runtime.migration] Running upgrade 40f16acf1ba7 -&gt; ccb74baaa89b, security converge charts\nINFO  [alembic.runtime.migration] Running upgrade ccb74baaa89b -&gt; c25cb2c78727, security converge annotations\nINFO  [alembic.runtime.migration] Running upgrade c25cb2c78727 -&gt; 45731db65d9c, security converge datasets\nINFO  [alembic.runtime.migration] Running upgrade 45731db65d9c -&gt; 4b84f97828aa, security converge logs\nINFO  [alembic.runtime.migration] Running upgrade 4b84f97828aa -&gt; 1f6dca87d1a2, security converge dashboards\nINFO  [alembic.runtime.migration] Running upgrade 1f6dca87d1a2 -&gt; 42b4c9e01447, security converge databases\nINFO  [alembic.runtime.migration] Running upgrade 42b4c9e01447 -&gt; e37912a26567, security converge queries\nINFO  [alembic.runtime.migration] Running upgrade e37912a26567 -&gt; ab104a954a8f, reports alter crontab size\nINFO  [alembic.runtime.migration] Running upgrade ab104a954a8f -&gt; 73fd22e742ab, add_dynamic_plugins.py\nINFO  [alembic.runtime.migration] Running upgrade 73fd22e742ab -&gt; c878781977c6, alert reports shared uniqueness\nINFO  [alembic.runtime.migration] Running upgrade c878781977c6 -&gt; 260bf0649a77, migrate [x dateunit] to [x dateunit ago\/later]\nINFO  [alembic.runtime.migration] Running upgrade 260bf0649a77 -&gt; e11ccdd12658, add roles relationship to dashboard\nINFO  [alembic.runtime.migration] Running upgrade e11ccdd12658 -&gt; 41ce8799acc3, rename pie label type\nUpdated 0 pie chart labels.\nINFO  [alembic.runtime.migration] Running upgrade 41ce8799acc3 -&gt; 070c043f2fdb, add granularity to charts where missing\n0 slices altered\nINFO  [alembic.runtime.migration] Running upgrade 070c043f2fdb -&gt; c501b7c653a3, add missing uuid column\n\nCleaning up slice uuid from dashboard position json.. Done.      \n\nINFO  [alembic.runtime.migration] Running upgrade c501b7c653a3 -&gt; 1412ec1e5a7b, legacy force directed to echart\nINFO  [alembic.runtime.migration] Running upgrade 1412ec1e5a7b -&gt; 67da9ef1ef9c, add hide_left_bar to tabstate\nINFO  [alembic.runtime.migration] Running upgrade 67da9ef1ef9c -&gt; 989bbe479899, rename_filter_configuration_in_dashboard_metadata.py\nUpdated 0 native filter configurations.\nINFO  [alembic.runtime.migration] Running upgrade 989bbe479899 -&gt; 301362411006, add_execution_id_to_report_execution_log_model.py\nINFO  [alembic.runtime.migration] Running upgrade 301362411006 -&gt; 134cea61c5e7, remove dataset health check message\nINFO  [alembic.runtime.migration] Running upgrade 134cea61c5e7 -&gt; 085f06488938, Country map use lowercase country name\nINFO  [alembic.runtime.migration] Running upgrade 085f06488938 -&gt; fc3a3a8ff221, migrate filter sets to new format\nUpdated 0 filter sets with 0 filters.\nINFO  [alembic.runtime.migration] Running upgrade fc3a3a8ff221 -&gt; 19e978e1b9c3, add_report_format_to_report_schedule_model.py\nINFO  [alembic.runtime.migration] Running upgrade 19e978e1b9c3 -&gt; d416d0d715cc, add_limiting_factor_column_to_query_model.py\nINFO  [alembic.runtime.migration] Running upgrade d416d0d715cc -&gt; f1410ed7ec95, migrate native filters to new schema\nUpgraded 0 filters and 0 filter sets.\nINFO  [alembic.runtime.migration] Running upgrade f1410ed7ec95 -&gt; 453530256cea, add_save_form_column_to_db_model\nINFO  [alembic.runtime.migration] Running upgrade 453530256cea -&gt; 3317e9248280, add_creation_method_to_reports_model\nINFO  [alembic.runtime.migration] Running upgrade 3317e9248280 -&gt; 030c840e3a1c, Add query context to slices\nINFO  [alembic.runtime.migration] Running upgrade 030c840e3a1c -&gt; ae1ed299413b, add_timezone_to_report_schedule\nINFO  [alembic.runtime.migration] Running upgrade ae1ed299413b -&gt; 31b2a1039d4a, drop tables constraint\nINFO  [alembic.runtime.migration] Running upgrade 31b2a1039d4a -&gt; e323605f370a, fix schemas_allowed_for_csv_upload\nINFO  [alembic.runtime.migration] Running upgrade e323605f370a -&gt; 143b6f2815da, migrate pivot table v2 heatmaps to new format\nUpgraded 0 slices.\nINFO  [alembic.runtime.migration] Running upgrade 143b6f2815da -&gt; f6196627326f, update chart permissions\nINFO  [alembic.runtime.migration] Running upgrade f6196627326f -&gt; 6d20ba9ecb33, add_last_saved_at_to_slice_model\nINFO  [alembic.runtime.migration] Running upgrade 6d20ba9ecb33 -&gt; 07071313dd52, change_fetch_values_predicate_to_text\nINFO  [alembic.runtime.migration] Running upgrade 07071313dd52 -&gt; 021b81fe4fbb, Add type to native filter configuration\nINFO  [alembic] [AddTypeToNativeFilter] Starting upgrade\nINFO  [alembic] [AddTypeToNativeFilter] Done!\nINFO  [alembic.runtime.migration] Running upgrade 021b81fe4fbb -&gt; 181091c0ef16, add_extra_column_to_columns_model\nINFO  [alembic.runtime.migration] Running upgrade 181091c0ef16 -&gt; 3ebe0993c770, add filter set model\nINFO  [alembic.runtime.migration] Running upgrade 3ebe0993c770 -&gt; 60dc453f4e2e, migrate timeseries_limit_metric to legacy_order_by in pivot_table_v2\nINFO  [alembic.runtime.migration] Running upgrade 60dc453f4e2e -&gt; 32646df09c64, update time grain SQLA\nINFO  [alembic.runtime.migration] Running upgrade 32646df09c64 -&gt; f9847149153d, add_certifications_columns_to_slice\nINFO  [alembic.runtime.migration] Running upgrade f9847149153d -&gt; aea15018d53b, add_certifications_columns_to_dashboard\nINFO  [alembic.runtime.migration] Running upgrade aea15018d53b -&gt; b92d69a6643c, rename_csv_to_file\nINFO  [alembic.runtime.migration] Running upgrade b92d69a6643c -&gt; 0ca9e5f1dacd, rename to schemas_allowed_for_file_upload in dbs.extra\nINFO  [alembic.runtime.migration] Running upgrade 0ca9e5f1dacd -&gt; abe27eaf93db, add_extra_config_column_to_alerts\nINFO  [alembic.runtime.migration] Running upgrade abe27eaf93db -&gt; 3ba29ecbaac5, Change datatype of type in BaseColumn\nINFO  [alembic.runtime.migration] Running upgrade 3ba29ecbaac5 -&gt; fe23025b9441, rename_big_viz_total_form_data_fields\nINFO  [alembic.runtime.migration] Running upgrade fe23025b9441 -&gt; 31bb738bd1d2, move_pivot_table_v2_legacy_order_by_to_timeseries_limit_metric\nINFO  [alembic.runtime.migration] Running upgrade 31bb738bd1d2 -&gt; bb38f40aa3ff, Add force_screenshot to alerts\/reports\nINFO  [alembic.runtime.migration] Running upgrade bb38f40aa3ff -&gt; c53bae8f08dd, add_saved_query_foreign_key_to_tab_state\nINFO  [alembic.runtime.migration] Running upgrade c53bae8f08dd -&gt; 5fd49410a97a, Add columns for external management\nINFO  [alembic.runtime.migration] Running upgrade 5fd49410a97a -&gt; 5afbb1a5849b, add_embedded_dashboard_table\nINFO  [alembic.runtime.migration] Running upgrade 5afbb1a5849b -&gt; b8d3a24d9131, New dataset models\nINFO  [alembic.runtime.migration] Running upgrade b8d3a24d9131 -&gt; b5a422d8e252, fix query and saved_query null schema\nINFO  [alembic.runtime.migration] Running upgrade b5a422d8e252 -&gt; ab9a9d86e695, deprecate time_range_endpoints\nINFO  [alembic.runtime.migration] Running upgrade ab9a9d86e695 -&gt; 7293b0ca7944, change_adhoc_filter_b_from_none_to_empty_array\nINFO  [alembic.runtime.migration] Running upgrade 7293b0ca7944 -&gt; 6766938c6065, add key-value store\nINFO  [alembic.runtime.migration] Running upgrade 6766938c6065 -&gt; 58df9d617f14, add_on_saved_query_delete_tab_state_null_constraint\"\nINFO  [alembic.runtime.migration] Running upgrade 58df9d617f14 -&gt; 2ed890b36b94, rm_time_range_endpoints_from_qc\nINFO  [alembic.runtime.migration] Running upgrade 2ed890b36b94 -&gt; b0d0249074e4, deprecate time_range_endpoints v2\nINFO  [alembic.runtime.migration] Running upgrade 2ed890b36b94 -&gt; 8b841273bec3, sql_lab_models_database_constraint_updates\nINFO  [alembic.runtime.migration] Running upgrade 8b841273bec3, b0d0249074e4 -&gt; 9d8a8d575284, merge point\nINFO  [alembic.runtime.migration] Running upgrade 9d8a8d575284 -&gt; cecc6bf46990, rm_time_range_endpoints_2\nINFO  [alembic.runtime.migration] Running upgrade cecc6bf46990 -&gt; ad07e4fdbaba, rm_time_range_endpoints_from_qc_3\nslices updated with no time_range_endpoints: 0\nINFO  [alembic.runtime.migration] Running upgrade ad07e4fdbaba -&gt; a9422eeaae74, new_dataset_models_take_2\n&gt;&gt; Assign new UUIDs to tables...\n&gt;&gt; Drop intermediate columns...\nINFO  [alembic.runtime.migration] Running upgrade a9422eeaae74 -&gt; cbe71abde154, fix report schedule and execution log\nINFO  [alembic.runtime.migration] Running upgrade cbe71abde154 -&gt; 6f139c533bea, adding advanced data type to column models\nINFO  [alembic.runtime.migration] Running upgrade 6f139c533bea -&gt; e786798587de, Delete None permissions\nINFO  [alembic.runtime.migration] Running upgrade e786798587de -&gt; e09b4ae78457, Resize key_value blob\nINFO  [alembic.runtime.migration] Running upgrade e09b4ae78457 -&gt; f3afaf1f11f0, add_unique_name_desc_rls\nINFO  [alembic.runtime.migration] Running upgrade f3afaf1f11f0 -&gt; 7fb8bca906d2, permalink_rename_filterState\nINFO  [alembic.runtime.migration] Running upgrade 7fb8bca906d2 -&gt; cdcf3d64daf4, Add user_id and dttm composite index to Log model\nINFO  [alembic.runtime.migration] Running upgrade cdcf3d64daf4 -&gt; c747c78868b6, Migrating legacy TreeMap\nINFO  [alembic.runtime.migration] Running upgrade c747c78868b6 -&gt; 06e1e70058c7, Migrating legacy Area\nINFO  [alembic.runtime.migration] Running upgrade 06e1e70058c7 -&gt; a39867932713, query_context_to_mediumtext\nINFO  [alembic.runtime.migration] Running upgrade a39867932713 -&gt; 409c7b420ab0, add created_by_fk as owner\nINFO  [alembic.runtime.migration] Running upgrade 409c7b420ab0 -&gt; ffa79af61a56, rename report_schedule.extra to extra_json\nINFO  [alembic.runtime.migration] Running upgrade ffa79af61a56 -&gt; 6d3c6f9d665d, fix_table_chart_conditional_formatting_colors\nINFO  [alembic.runtime.migration] Running upgrade 6d3c6f9d665d -&gt; 291f024254b5, drop_column_allow_multi_schema_metadata_fetch\nINFO  [alembic.runtime.migration] Running upgrade 291f024254b5 -&gt; deb4c9d4a4ef, parameters in saved queries\nINFO  [alembic.runtime.migration] Running upgrade deb4c9d4a4ef -&gt; 4ce1d9b25135, remove_filter_bar_orientation\nINFO  [alembic.runtime.migration] Running upgrade 4ce1d9b25135 -&gt; f3c2d8ec8595, create_ssh_tunnel_credentials_tbl<\/pre>\n<h3>\u932f\u8aa4\u7684\u7406\u89e3\uff1a\u9023\u7d50 HIVE \u8cc7\u6599\u5eab<\/h3>\n<p style=\"text-align: justify;\">\u5617\u8a66\u6539\u8a2d\u5b9a\u6210 <strong><span class=\"s1\">SQLALCHEMY_DATABASE_URI = &#8216;hive:\/\/hive@0.0.0.0:10000&#8217; <\/span><\/strong>\u63db\u6210 HIVE \u7684\u5f8c\u7aef<\/p>\n<pre class=\"lang:bash\">root@bda354cf1ad54c9bbc2421eb1d40f8f4000000:\/mnt\/batch\/tasks\/startup\/wd# superset run -p 8088 --with-threads --reload --debugger\nLoaded your LOCAL configuration at [\/mnt\/batch\/tasks\/startup\/wd\/superset_config.py]\nlogging was configured successfully\n2023-05-09 02:48:39,233:INFO:superset.utils.logging_configurator:logging was configured successfully\nFailed to create app\nTraceback (most recent call last):\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/app.py\", line 37, in create_app\n    app_initializer.init_app()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 482, in init_app\n    self.setup_db()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 647, in setup_db\n    pessimistic_connection_handling(db.engine)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 998, in engine\n    return self.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1017, in get_engine\n    return connector.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 594, in get_engine\n    self._engine = rv = self._sa.create_engine(sa_url, options)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1027, in create_engine\n    return sqlalchemy.create_engine(sa_url, **engine_opts)\n  File \"&lt;string&gt;\", line 2, in create_engine\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/deprecations.py\", line 375, in warned\n    return fn(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/create.py\", line 518, in create_engine\n    entrypoint = u._get_entrypoint()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/url.py\", line 662, in _get_entrypoint\n    cls = registry.load(name)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/langhelpers.py\", line 343, in load\n    raise exc.NoSuchModuleError(\nsqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:hive\n2023-05-09 02:48:39,240:ERROR:superset.app:Failed to create app\nTraceback (most recent call last):\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/app.py\", line 37, in create_app\n    app_initializer.init_app()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 482, in init_app\n    self.setup_db()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 647, in setup_db\n    pessimistic_connection_handling(db.engine)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 998, in engine\n    return self.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1017, in get_engine\n    return connector.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 594, in get_engine\n    self._engine = rv = self._sa.create_engine(sa_url, options)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1027, in create_engine\n    return sqlalchemy.create_engine(sa_url, **engine_opts)\n  File \"&lt;string&gt;\", line 2, in create_engine\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/deprecations.py\", line 375, in warned\n    return fn(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/create.py\", line 518, in create_engine\n    entrypoint = u._get_entrypoint()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/url.py\", line 662, in _get_entrypoint\n    cls = registry.load(name)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/langhelpers.py\", line 343, in load\n    raise exc.NoSuchModuleError(\nsqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:hive\nTraceback (most recent call last):\n  File \"\/usr\/local\/bin\/superset\", line 8, in &lt;module&gt;\n    sys.exit(superset())\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/core.py\", line 1130, in __call__\n    return self.main(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask\/cli.py\", line 567, in main\n    return super().main(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/core.py\", line 1055, in main\n    rv = self.invoke(ctx)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/core.py\", line 1654, in invoke\n    super().invoke(ctx)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/core.py\", line 1404, in invoke\n    return ctx.invoke(self.callback, **ctx.params)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/core.py\", line 760, in invoke\n    return __callback(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/click\/decorators.py\", line 26, in new_func\n    return f(get_current_context(), *args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask\/cli.py\", line 406, in decorator\n    with __ctx.ensure_object(ScriptInfo).load_app().app_context():\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask\/cli.py\", line 369, in load_app\n    app = locate_app(import_name, name)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask\/cli.py\", line 231, in locate_app\n    return find_best_app(module)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask\/cli.py\", line 57, in find_best_app\n    app = app_factory()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/app.py\", line 44, in create_app\n    raise ex\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/app.py\", line 37, in create_app\n    app_initializer.init_app()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 482, in init_app\n    self.setup_db()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/superset\/initialization\/__init__.py\", line 647, in setup_db\n    pessimistic_connection_handling(db.engine)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 998, in engine\n    return self.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1017, in get_engine\n    return connector.get_engine()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 594, in get_engine\n    self._engine = rv = self._sa.create_engine(sa_url, options)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/flask_sqlalchemy\/__init__.py\", line 1027, in create_engine\n    return sqlalchemy.create_engine(sa_url, **engine_opts)\n  File \"&lt;string&gt;\", line 2, in create_engine\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/deprecations.py\", line 375, in warned\n    return fn(*args, **kwargs)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/create.py\", line 518, in create_engine\n    entrypoint = u._get_entrypoint()\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/engine\/url.py\", line 662, in _get_entrypoint\n    cls = registry.load(name)\n  File \"\/usr\/local\/lib\/python3.8\/dist-packages\/sqlalchemy\/util\/langhelpers.py\", line 343, in load\n    raise exc.NoSuchModuleError(\nsqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:hive<\/pre>\n<p>\u6839\u64da\u4ee5\u4e0a\u932f\u8aa4\u8a0a\u606f<a href=\"https:\/\/blog.csdn.net\/L13763338360\/article\/details\/103465704\">\u53c3\u8003\u7db2\u7ad9<\/a>\u5efa\u8b70\u5b89\u88dd\u4ee5\u4e0b\u56db\u500b python \u5957\u4ef6\uff1a<\/p>\n<pre class=\"lang:bash\">pip3 install pyhive\npip3 install thrift\npip3 install sasl\npip3 install thrift-sasl<\/pre>\n<p>\u91cd\u65b0\u57f7\u884c\u555f\u52d5\u6307\u4ee4\uff1a<\/p>\n<pre class=\"lang:bash\">root@bda354cf1ad54c9bbc2421eb1d40f8f4000000:\/mnt\/batch\/tasks\/startup\/wd# superset run -p 8088 --with-threads --reload --debugger\nLoaded your LOCAL configuration at [\/mnt\/batch\/tasks\/startup\/wd\/superset_config.py]\nlogging was configured successfully\n2023-05-09 03:13:21,663:INFO:superset.utils.logging_configurator:logging was configured successfully\n2023-05-09 03:13:21,688:INFO:root:Configured event logger of type &lt;class 'superset.utils.log.DBEventLogger'&gt;\nWe haven't found any Content Security Policy (CSP) defined in the configurations. Please make sure to configure CSP using the TALISMAN_ENABLED and TALISMAN_CONFIG keys or any other external software. Failing to configure CSP have serious security implications. Check https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/CSP for more information. You can disable this warning using the CONTENT_SECURITY_POLICY_WARNING key.\n2023-05-09 03:13:21,689:WARNING:superset.initialization:We haven't found any Content Security Policy (CSP) defined in the configurations. Please make sure to configure CSP using the TALISMAN_ENABLED and TALISMAN_CONFIG keys or any other external software. Failing to configure CSP have serious security implications. Check https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/CSP for more information. You can disable this warning using the CONTENT_SECURITY_POLICY_WARNING key.\nFalling back to the built-in cache, that stores data in the metadata database, for the following cache: `FILTER_STATE_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\n2023-05-09 03:13:21,691:WARNING:superset.utils.cache_manager:Falling back to the built-in cache, that stores data in the metadata database, for the following cache: `FILTER_STATE_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\nFalling back to the built-in cache, that stores data in the metadata database, for the following cache: `EXPLORE_FORM_DATA_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\n2023-05-09 03:13:21,693:WARNING:superset.utils.cache_manager:Falling back to the built-in cache, that stores data in the metadata database, for the following cache: `EXPLORE_FORM_DATA_CACHE_CONFIG`. It is recommended to use `RedisCache`, `MemcachedCache` or another dedicated caching backend for production deployments\n2023-05-09 03:13:21,702:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'<\/pre>\n<p>\u4ee5\u4e0a\u932f\u8aa4\u8a0a\u606f\u53ef\u4ee5<a href=\"https:\/\/blog.csdn.net\/Romance5201314\/article\/details\/82767919\">\u53c3\u8003\u7db2\u7ad9<\/a>\u89e3\u6c7a\uff0c\u4e0d\u904e\u6301\u7e8c\u6709\u5176\u4ed6\u7684\u554f\u984c\uff1a<\/p>\n<pre class=\"lang:bash\">2023-05-09 03:38:29,635:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pyhive.exc.OperationalError) TExecuteStatementResp(status=TStatus(statusCode=3, infoMessages=[\"*org.apache.hive.service.cli.HiveSQLException:Error running query: org.apache.spark.sql.AnalysisException: Table or view not found: ab_permission; line 1 pos 9;\\n'DescribeRelation false, [col_name#867, data_type#868, comment#869]\\n+- 'UnresolvedTableOrView [ab_permission], DESCRIBE TABLE, true\\n:36:35\", 'org.apache.spark.sql.hive.thriftserver.HiveThriftServerErrors$:runningQueryError:HiveThriftServerErrors.scala:43', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$execute:SparkExecuteStatementOperation.scala:325', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:runInternal:SparkExecuteStatementOperation.scala:216', 'org.apache.hive.service.cli.operation.Operation:run:Operation.java:277', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:org$apache$spark$sql$hive$thriftserver$SparkOperation$super$run:SparkExecuteStatementOperation.scala:43', 'org.apache.spark.sql.hive.thriftserver.SparkOperation:$anonfun$run$1:SparkOperation.scala:45', 'scala.runtime.java8.JFunction0$mcV$sp:apply:JFunction0$mcV$sp.java:23', 'org.apache.spark.sql.hive.thriftserver.SparkOperation:withLocalProperties:SparkOperation.scala:79', 'org.apache.spark.sql.hive.thriftserver.SparkOperation:withLocalProperties$:SparkOperation.scala:63', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:withLocalProperties:SparkExecuteStatementOperation.scala:43', 'org.apache.spark.sql.hive.thriftserver.SparkOperation:run:SparkOperation.scala:45', 'org.apache.spark.sql.hive.thriftserver.SparkOperation:run$:SparkOperation.scala:43', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:run:SparkExecuteStatementOperation.scala:43', 'org.apache.hive.service.cli.session.HiveSessionImpl:executeStatementInternal:HiveSessionImpl.java:484', 'org.apache.hive.service.cli.session.HiveSessionImpl:executeStatement:HiveSessionImpl.java:460', 'sun.reflect.GeneratedMethodAccessor76:invoke::-1', 'sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43', 'java.lang.reflect.Method:invoke:Method.java:498', 'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:71', 'org.apache.hive.service.cli.session.HiveSessionProxy:lambda$invoke$0:HiveSessionProxy.java:58', 'java.security.AccessController:doPrivileged:AccessController.java:-2', 'javax.security.auth.Subject:doAs:Subject.java:422', 'org.apache.hadoop.security.UserGroupInformation:doAs:UserGroupInformation.java:1878', 'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:58', 'com.sun.proxy.$Proxy56:executeStatement::-1', 'org.apache.hive.service.cli.CLIService:executeStatement:CLIService.java:280', 'org.apache.hive.service.cli.thrift.ThriftCLIService:ExecuteStatement:ThriftCLIService.java:456', 'org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement:getResult:TCLIService.java:1557', 'org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement:getResult:TCLIService.java:1542', 'org.apache.thrift.ProcessFunction:process:ProcessFunction.java:38', 'org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39', 'org.apache.hive.service.auth.TSetIpAddressProcessor:process:TSetIpAddressProcessor.java:52', 'org.apache.thrift.server.TThreadPoolServer$WorkerProcess:run:TThreadPoolServer.java:310', 'java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1149', 'java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:624', 'java.lang.Thread:run:Thread.java:750', \"*org.apache.spark.sql.AnalysisException:Table or view not found: ab_permission; line 1 pos 9;\\n'DescribeRelation false, [col_name#867, data_type#868, comment#869]\\n+- 'UnresolvedTableOrView [ab_permission], DESCRIBE TABLE, true\\n:71:36\", 'org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt:failAnalysis:package.scala:42', 'org.apache.spark.sql.catalyst.analysis.CheckAnalysis:$anonfun$checkAnalysis$1:CheckAnalysis.scala:128', 'org.apache.spark.sql.catalyst.analysis.CheckAnalysis:$anonfun$checkAnalysis$1$adapted:CheckAnalysis.scala:102', 'org.apache.spark.sql.catalyst.trees.TreeNode:foreachUp:TreeNode.scala:367', 'org.apache.spark.sql.catalyst.trees.TreeNode:$anonfun$foreachUp$1:TreeNode.scala:366', 'org.apache.spark.sql.catalyst.trees.TreeNode:$anonfun$foreachUp$1$adapted:TreeNode.scala:366', 'scala.collection.Iterator:foreach:Iterator.scala:943', 'scala.collection.Iterator:foreach$:Iterator.scala:943', 'scala.collection.AbstractIterator:foreach:Iterator.scala:1431', 'scala.collection.IterableLike:foreach:IterableLike.scala:74', 'scala.collection.IterableLike:foreach$:IterableLike.scala:73', 'scala.collection.AbstractIterable:foreach:Iterable.scala:56', 'org.apache.spark.sql.catalyst.trees.TreeNode:foreachUp:TreeNode.scala:366', 'org.apache.spark.sql.catalyst.analysis.CheckAnalysis:checkAnalysis:CheckAnalysis.scala:102', 'org.apache.spark.sql.catalyst.analysis.CheckAnalysis:checkAnalysis$:CheckAnalysis.scala:97', 'org.apache.spark.sql.catalyst.analysis.Analyzer:checkAnalysis:Analyzer.scala:188', 'org.apache.spark.sql.catalyst.analysis.Analyzer:$anonfun$executeAndCheck$1:Analyzer.scala:214', 'org.apache.spark.sql.catalyst.plans.logical.AnalysisHelper$:markInAnalyzer:AnalysisHelper.scala:330', 'org.apache.spark.sql.catalyst.analysis.Analyzer:executeAndCheck:Analyzer.scala:211', 'org.apache.spark.sql.execution.QueryExecution:$anonfun$analyzed$1:QueryExecution.scala:76', 'org.apache.spark.sql.catalyst.QueryPlanningTracker:measurePhase:QueryPlanningTracker.scala:111', 'org.apache.spark.sql.execution.QueryExecution:$anonfun$executePhase$2:QueryExecution.scala:185', 'org.apache.spark.sql.execution.QueryExecution$:withInternalError:QueryExecution.scala:510', 'org.apache.spark.sql.execution.QueryExecution:$anonfun$executePhase$1:QueryExecution.scala:185', 'org.apache.spark.sql.SparkSession:withActive:SparkSession.scala:779', 'org.apache.spark.sql.execution.QueryExecution:executePhase:QueryExecution.scala:184', 'org.apache.spark.sql.execution.QueryExecution:analyzed$lzycompute:QueryExecution.scala:76', 'org.apache.spark.sql.execution.QueryExecution:analyzed:QueryExecution.scala:74', 'org.apache.spark.sql.execution.QueryExecution:assertAnalyzed:QueryExecution.scala:66', 'org.apache.spark.sql.Dataset$:$anonfun$ofRows$2:Dataset.scala:99', 'org.apache.spark.sql.SparkSession:withActive:SparkSession.scala:779', 'org.apache.spark.sql.Dataset$:ofRows:Dataset.scala:97', 'org.apache.spark.sql.SparkSession:$anonfun$sql$1:SparkSession.scala:622', 'org.apache.spark.sql.SparkSession:withActive:SparkSession.scala:779', 'org.apache.spark.sql.SparkSession:sql:SparkSession.scala:617', 'org.apache.spark.sql.SQLContext:sql:SQLContext.scala:651', 'org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation:org$apache$spark$sql$hive$thriftserver$SparkExecuteStatementOperation$execute:SparkExecuteStatementOperation.scala:291'], sqlState=None, errorCode=0, errorMessage=\"Error running query: org.apache.spark.sql.AnalysisException: Table or view not found: ab_permission; line 1 pos 9;\\n'DescribeRelation false, [col_name#867, data_type#868, comment#869]\\n+- 'UnresolvedTableOrView [ab_permission], DESCRIBE TABLE, true\\n\"), operationHandle=None)\n[SQL: DESCRIBE ab_permission]\n(Background on this error at: https:\/\/sqlalche.me\/e\/14\/e3q8)<\/pre>","protected":false},"excerpt":{"rendered":"<p>\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002<\/p>\n","protected":false},"author":1,"featured_media":9059,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[1668],"class_list":["post-9039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bigdata-ml","tag-apache-superset"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane<\/title>\n<meta name=\"description\" content=\"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"og:description\" content=\"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\" \/>\n<meta property=\"og:site_name\" content=\"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-09T02:52:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-28T09:11:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u6ab8\u6aac\u7238\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6ab8\u6aac\u7238\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\"},\"author\":{\"name\":\"\u6ab8\u6aac\u7238\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"headline\":\"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb\",\"datePublished\":\"2023-05-09T02:52:36+00:00\",\"dateModified\":\"2024-02-28T09:11:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\"},\"wordCount\":70,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png\",\"keywords\":[\"Apache Superset\"],\"articleSection\":[\"Big Data &amp; Machine Learning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\",\"url\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\",\"name\":\"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png\",\"datePublished\":\"2023-05-09T02:52:36+00:00\",\"dateModified\":\"2024-02-28T09:11:25+00:00\",\"description\":\"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage\",\"url\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png\",\"contentUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png\",\"width\":1280,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/myoceane.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/myoceane.fr\/#website\",\"url\":\"https:\/\/myoceane.fr\/\",\"name\":\"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a\",\"description\":\"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology\",\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/myoceane.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\",\"name\":\"\u6ab8\u6aac\u7238\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"caption\":\"\u6ab8\u6aac\u7238\"},\"logo\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","description":"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/","og_locale":"en_US","og_type":"article","og_title":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","og_description":"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002","og_url":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/","og_site_name":"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","article_published_time":"2023-05-09T02:52:36+00:00","article_modified_time":"2024-02-28T09:11:25+00:00","og_image":[{"width":1280,"height":640,"url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png","type":"image\/png"}],"author":"\u6ab8\u6aac\u7238","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u6ab8\u6aac\u7238","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#article","isPartOf":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/"},"author":{"name":"\u6ab8\u6aac\u7238","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"headline":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb","datePublished":"2023-05-09T02:52:36+00:00","dateModified":"2024-02-28T09:11:25+00:00","mainEntityOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/"},"wordCount":70,"commentCount":0,"publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png","keywords":["Apache Superset"],"articleSection":["Big Data &amp; Machine Learning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/","url":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/","name":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","isPartOf":{"@id":"https:\/\/myoceane.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png","datePublished":"2023-05-09T02:52:36+00:00","dateModified":"2024-02-28T09:11:25+00:00","description":"\u672c\u7bc7\u60f3\u8981\u8a18\u9304\u5728\u5be6\u4f5c\u5b89\u88dd Apache Superset \u4e26\u4e14\u914d\u5408\u5f8c\u7aef HIVE \u7684\u8cc7\u6599\u5eab\u9032\u884c\u8cc7\u6599\u5448\u73fe\uff0c\u4e00\u958b\u59cb\u4ee5\u70ba\u662f\u8981\u5728 superset_config.py \u5167\u90e8\u8a2d\u5b9aSQLALCHEMY_DATABASE_URI \u5230\u6307\u5b9a\u7684 Hive Server\uff0c\u5f8c\u4f86\u4e86\u89e3\u5230\u90a3\u662f Superset \u5167\u90e8 Database, Dataset \u8207 Charts \u8a2d\u5b9a\u7684\u5132\u5b58\u4f4d\u7f6e\uff0c\u672c\u7bc7\u53c3\u8003 Apache Superset \u7684\u7db2\u7ad9\u5be6\u4f5c\u5b89\u88dd Superset\uff0c\u5e0c\u671b\u5c0d\u8b80\u8005\u6709\u6240\u5e6b\u52a9\u3002","breadcrumb":{"@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#primaryimage","url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png","contentUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2023\/05\/superset.png","width":1280,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/myoceane.fr\/index.php\/bigdata-apache-superset\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/myoceane.fr\/"},{"@type":"ListItem","position":2,"name":"[BigData] Apache Superset \u5b89\u88dd\u7c21\u4ecb"}]},{"@type":"WebSite","@id":"https:\/\/myoceane.fr\/#website","url":"https:\/\/myoceane.fr\/","name":"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a","description":"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology","publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/myoceane.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b","name":"\u6ab8\u6aac\u7238","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","caption":"\u6ab8\u6aac\u7238"},"logo":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/"},"url":"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/"}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/9039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/comments?post=9039"}],"version-history":[{"count":39,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/9039\/revisions"}],"predecessor-version":[{"id":9694,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/9039\/revisions\/9694"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media\/9059"}],"wp:attachment":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media?parent=9039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/categories?post=9039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/tags?post=9039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}