CartoDB で既存の PostGIS コードを使用しようと取り組んでいます。データを取り込んでチャンクし、 CartoDB に POSTする Python スクリプトを作成しましたが、セットアップ ファイルにはうまくチャンクできない複数行の create ステートメントが含まれています。そのため、非常に大きなチャンクを送信していることに気づきました。
POST 経由で URL に送信しようとしているクエリのセットは約 9000 バイトで、その後 414 (大きすぎます) エラーが発生します。
チャンクを完全なステートメントに制約する方法を知っている人はいますか (たとえば、; で終了します)?
def grouper(iterable, n):
it = iter(iterable)
while True:
chunk = tuple(islice(it, n))
if not chunk:
return
yield chunk
buffer = []
#pattern to match blank or comment lines
pattern = re.compile("^\s*\-\-.*$|\s+$")
for line in fileinput.input():
#drop blank or comment lines.
if pattern.match(line):
pass
else:
buffer.append(line.strip())
for group in grouper(buffer,500):
query = "".join(group)
params = {
'api_key' : config['apikey'],
'q' : query
}
r = requests.post(API_URL, params=params)