在勒索病毒盛行的年代,为资讯系统做好备份是最基本的工作,有效的备份除了可以抵挡病毒的攻击,同时可以降低服务器主机因意外毁损而导致无法快速重建系统的风险。同样地,TabPy 的 Model 也是可以备份起来,当有需要的时候可以直接还原,省去重新布署的程序。至於应该要将甚麽档案做备份,便是这里想要分享的主题。
当我们将 Python 函式布署至 TabPy Server 的时候,TabPy 会执行两个步骤
Models 相关的资料都是以档案型式储存下来,使我们备份工作简单许多。但个人认为美中不足的是,我们无法从这些档案中取得原始程序码,这意味着我们用来布署的程序码同样也需要备份起来。
我们已经知道当布署一个 Model 的时候会影响到两个档案,因此只需要备份这两个档案即可。
state.ini
就是 Models 的资料库,用来记录 Models 的相关资讯。TabPy Server 启动时会先读取此档案,再去寻找对应的 cloudpickle 档案转为可呼叫 Model
此档案位於虚拟环境目录下的 \Lib\site-packages\tabpy\tabpy_server
目录
\Lib\site-packages\tabpy\tabpy_server\state.ini
pickle_archive
为 TabPy 透过 cloudpickle 套件将 Model 储存的档案。路径格式如下,以 Model 名称与版次来切分不同的 pickle_archive
档案
\query_objects\{model_name}\{model_version}\pickle_archive
model_name
:Model 的名称。model_version
:Model 的版次。例如:test_SCRIPT_BOOL
第 1
版的 pickle_archive
所在路径应为
\query_objects\test_SCRIPT_BOOL\1\pickle_archive
这样一来,所有 Models 的 pickle_archive
档案都会储存於 query_objects
目录下,因此我们直接备份这整个目录即可,此目录也同样位於 \Lib\site-packages\tabpy\tabpy_server
目录。
{% note info %}
简而言之,我们只需要备份一个档案 (state.ini
) 与一个目录 (query_objects
)。
{% endnote %}
若我们的虚拟环境名称为 Tableau-Python-Server
,且虚拟环境目录位於 C:\Users\wrxue\
,则只需备份以下两个项目
C:\Users\wrxue\Tableau-Python-Server\Lib\site-packages\tabpy\tabpy_server\state.ini
C:\Users\wrxue\Tableau-Python-Server\Lib\site-packages\tabpy\tabpy_server\query_objects
若要将备份还原,遵守一个原则「东西哪里拿来就哪里放回去」,将备份中的两个项目放回 \Lib\site-packages\tabpy\tabpy_server
即可,非常容易。
备份不是一件难事,困难的是要知道应该备份甚麽东西,这里将个人为 TabPy 备份的经验分享给读者,让读者可以少走冤枉路。
>>: [ Day 14 ] 佳评如潮的 React Hooks
Data层的任务主要是储存Object的component,保证资料的安全,他和API层一样也有AP...
第四天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知道...
今天安装 scrapy 时,在两个系统下都出现长篇红字错误,在此做个解决纪录。两个系统者皆在终端跟 ...
Git与Github关系? 说明 : Github是Git进行版本控制软件的服务平台供应商之一。 G...
static静态方法 范围解析操作符(::) php可以利用这一对冒号来访问静态成员,类常量,还可以...