الاسم
Loader_Generate_Script — تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل بيانات Tiger ويجهّزها ويحمّلها في المخطط tiger_data. يُعاد سكربت كل ولاية كسجل منفصل. يدعم أحدث إصدار التغييرات البنيوية في Tiger 2010، ويحمّل أيضًا جداول المناطق الإحصائية ومجموعات الكتل والكتل.
المختصر
setof text loader_generate_script(text[] param_states, text os);
الوصف
تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل بيانات Tiger ويجهّزها ويحمّلها في المخطط tiger_data. يُعاد سكربت كل ولاية كسجل منفصل.
تستخدم unzip على Linux (و7-zip على Windows افتراضيًا) وwget للتنزيل. وتستخدم قسم 4.7.2, “استخدام مُحمِّل Shapefile” لتحميل البيانات. لاحظ أن أصغر وحدة تعالجها هي ولاية كاملة، لكن يمكنك تجاوز ذلك بتنزيل الملفات بنفسك. ولن تعالج إلا الملفات الموجودة في مجلدي التجهيز (staging) والملفات المؤقتة (temp).
تستخدم جداول التحكم التالية للتحكم في العملية وفي اختلافات صياغة shell بين أنظمة التشغيل.
-
loader_variablesيتتبّع متغيرات مختلفة مثل موقع مكتب الإحصاء والسنة ومخططَي البيانات والتجهيز -
loader_platformملفات تعريف لمنصات مختلفة ومواقع الملفات التنفيذية المختلفة. يأتي مع windows وlinux، ويمكن إضافة المزيد. -
loader_lookuptablesيعرّف كل سجل فيه نوعًا من الجداول (state، county)، وما إذا كانت سجلاته ستُعالج وكيفية تحميلها. ويعرّف لكل منها خطوات استيراد البيانات وتجهيزها وإضافة الأعمدة والفهارس والقيود وإزالتها. ويُسبق اسم كل جدول بالولاية ويرث من جدول في المخطط tiger. مثلًا يُنشئtiger_data.ma_facesالذي يرث منtiger.faces
متاحة منذ: 2.0.0 لدعم بيانات Tiger 2010 المهيكلة وتحميل جداول المناطق الإحصائية (tract) ومجموعات الكتل (bg) والكتل (tabblocks).
|
|
|
إذا كنت تستخدم pgAdmin 3، فانتبه إلى أن pgAdmin 3 يقتطع النصوص الطويلة افتراضيًا. ولإصلاح ذلك، غيّر File -> Options -> Query Tool -> Query Editor - > Max. characters per column إلى أكثر من 50000 محرف. |
أمثلة
باستخدام psql حيث gistest هي قاعدة بياناتك و/gisdata/data_load.sh هو الملف الذي سيُنشأ متضمنًا أوامر shell المراد تشغيلها.
psql -U postgres -h localhost -d gistest -A -t \ -c "SELECT Loader_Generate_Script(ARRAY['MA'], 'gistest')" > /gisdata/data_load.sh;
توليد سكربت لتحميل بيانات ولايتين بصيغة سكربت shell لنظام Windows.
SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result; -- result -- set TMPDIR=\gisdata\temp\ set UNZIPTOOL="C:\Program Files\7-Zip\7z.exe" set WGETTOOL="C:\wget\wget.exe" set PGBIN=C:\Program Files\PostgreSQL\9.4\bin\ set PGPORT=5432 set PGHOST=localhost set PGUSER=postgres set PGPASSWORD=yourpasswordhere set PGDATABASE=geocoder set PSQL="%PGBIN%psql" set SHP2PGSQL="%PGBIN%shp2pgsql" cd \gisdata cd \gisdata %WGETTOOL% ftp://ftp2.census.gov/geo/tiger/TIGER2015/PLACE/tl_*_25_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html cd \gisdata/ftp2.census.gov/geo/tiger/TIGER2015/PLACE : :
توليد سكربت sh
SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;
-- result --
TMPDIR="/gisdata/temp/"
UNZIPTOOL=unzip
WGETTOOL="/usr/bin/wget"
export PGBIN=/usr/lib/postgresql/9.4/bin
-- variables used by psql: https://www.postgresql.org/docs/current/static/libpq-envars.html
export PGPORT=5432
export PGHOST=localhost
export PGUSER=postgres
export PGPASSWORD=yourpasswordhere
export PGDATABASE=geocoder
PSQL=${PGBIN}/psql
SHP2PGSQL=${PGBIN}/shp2pgsql
cd /gisdata
cd /gisdata
wget ftp://ftp2.census.gov/geo/tiger/TIGER2015/PLACE/tl_*_25_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html
cd /gisdata/ftp2.census.gov/geo/tiger/TIGER2015/PLACE
rm -f ${TMPDIR}/*.*
:
: