我正在为即将进行的项目进行一些研发,希望我可以启动并运行此POC。我在网上没有看到太多关于自己在做什么的信息,所以希望我只是在做一些新的事情,而不是不可能的事情。
任务:
我们从大约250个来源中接收ArcGIS地理空间数据-一些是shapefile,一些是AutoCAD,其他是文件地理数据库。当前解决方案包括针对每个源的Arc模型,该模型对数据进行规范化以进行进一步的ETL处理-当前具有shapefile输出。这些模型可在ArcGIS 10.6之前的版本中运行,该版本使用Python 2.7作为引擎。
对于每个模型,我都可以导出该模型的python脚本。新解决方案的目标将存储在SQL Server 2017托管的企业级地理数据库上,并提供机器学习服务(其中包括Python支持!)。理想情况下,我希望能够将此导出的Python代码存储在存储过程中,该存储过程可以称为较大SSIS数据流的一部分。我已经解决的另一种方法是在* .py文件作为参数的ArcGIS副本的python.exe上使用EXECUTE PROCESS任务。
我在线找到了archook项目,该项目可以很好地将Python环境指向相应的ArcGIS目录。
障碍:
EXEC sp_execute_external_script @language = N'Python',
@script = N'
import archook
archook.get_arcpy()
import arcpy'
文件 “ C:\ PROGRA〜1 \ MICROS〜2 \ MSSQL1〜2.DEV \ MSSQL \ EXTENS〜1 \ DEV1701 \ 02830305-BCB6-49B3-AEEF-51DDB28FF180 \ sqlindb.py”, 第37行,进行转换 在第72行中,导入arcpy文件“ C:\ Program Files \ ArcGIS \ Pro \ Resources \ arcpy \ arcpy__init __。py” 从arcpy.geoprocessing导入gp文件“ C:\ Program Files \ ArcGIS \ Pro \ Resources \ arcpy \ arcpy \ geoprocessing__init __。py”, 第14行 从._base导入*文件“ C:\ Program Files \ ArcGIS \ Pro \ Resources \ arcpy \ arcpy \ geoprocessing_base.py”,行 14,在 导入arcgisscripting ImportError:DLL加载失败:找不到指定的模块。
SqlSatelliteCall错误:执行错误。检查输出以了解更多 信息。来自外部脚本的标准输出消息:SqlSatelliteCall 功能失败。请参阅控制台输出以获取更多信息。 追溯(最近一次通话):文件“ C:\ Program Files \ Microsoft 的SQL Server \ MSSQL14.DEV17 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ computecontext \ RxInSqlServer.py”, rx_sql_satellite_call中的第406行 rx_native_call(“ SqlSatelliteCall”,params)文件“ C:\ Program Files \ Microsoft SQL Server \ MSSQL14.DEV17 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ RxSerializable.py”, 第291行,在rx_native_call中 ret = px_call(函数名,参数)RuntimeError:revoscalepy函数失败。
如果有人对在外部环境中运行ArcGIS脚本或在MLS中运行外部脚本有任何见识,那么我将不胜感激。