我们处理的数据主要存储在文件系统和数据库中。本书的第3章将专门介绍文件系统,第4章会详细介绍与数据库、数据表相关的操作。Alink采用插件的方式来管理各种文件系统、数据库以及各个版本所需的函数库。本节还会专门介绍如何利用Alink的插件(Plugin)工具自动下载相关的函数库。
下图为Alink文件系统(File System)与数据库(Catalog)的架构图,具体说明如下:
Alink能够支持不同第三方库(例如OSS、Hive、Derby、MySQL等)的不同版本(例如Hive的2.3.4版本、2.3.6版本等)。为了更好地管理插件(外部的第三方库),我们提供了插件下载器(PluginDownloader)来管理不同插件的多个版本。
插件下载器封装了插件的常见功能,如下所示:
在Python代码中可以这样使用插件下载器:
# 初始化 PyAlink from pyalink.alink import * useLocalEnv(1) # 设置插件下载的位置。当路径不存在时,会自行创建路径 AlinkGlobalConfiguration.setPluginDir("/Users/xxx/alink_plugins/") # 获得Alink插件下载器 pluginDownloader = AlinkGlobalConfiguration.getPluginDownloader() # 从远程加载插件的配置项 pluginDownloader.loadConfig() # 展示所有可用的插件名称 plugins = pluginDownloader.listAvailablePlugins() print(plugins) # 输出结果:['oss', 'hive', 'derby', 'mysql', 'hadoop', 'sqlite'] # 显示第0个插件的所有版本 pluginName = plugins[0] # oss availableVersions = pluginDownloader.listAvailablePluginVersions(pluginName) print(availableVersions) # 输出结果:[3.4.1] # 下载某个插件的特定版本 pluginVersion = availableVersions[0] pluginDownloader.downloadPlugin(pluginName, pluginVersion) # 运行结束后,插件会被下载到"/Users/xxx/alink_plugins/"目录中 # 下载某个插件的默认版本 pluginDownloader.downloadPlugin(pluginName) # 运行结束后,插件会被下载到"/Users/xxx/alink_plugins/"目录中 # 下载配置文件中所有插件的默认版本 pluginDownloader.downloadAll() # 插件升级 # 在升级的过程中,会先对旧的插件进行备份,备份文件名称的后缀为.old。等到插件更新完毕后, # 会统一删除旧的插件包 # 若插件更新中断,则用户可以从.old文件中恢复旧版插件 pluginDownloader.upgrade()