방금 hstore 확장자 에 대해 =>
연산자를 읽었습니다. 이것은 내가 R에 여러 함수를 가지고 있기 때문에 나쁜 소식이다. hstore 필드를 포함하는 Postgres 테이블에 저장할 때이 연산자를 사용하는 것에 의존한다.Postgres : 폐기 된 hstore 연산자를 다루는 방법 : "=>"
데이터베이스에 쓰기 전에 data.frame
또는 data.table
을 메모리 (R 세션)에 준비합니다. 다음은 편리한 함수 dbWriteTable
을 사용하여 메모리에있는 전체 테이블을 데이터베이스에 씁니다. 따라서 postgres 함수 hstore (text, text)를 사용하는 것은 불편할 것입니다.
이러한 발표를 처리하기위한 좋은 전략은 무엇입니까? 나는 꽤 많은 사람들이 다른 타입의 필드들과 함께 hstore에 글을 써야하기 때문에 그들이 연산자를 제거하는 것에 상당히 놀랐다. 또한 이것은 실제로 R 특정 적이 아닙니다.
내가 R의 사람들과의 재현 예를 추가 : 그것은 내가 지금까지 몇 가지 유용한 통찰력을 가지고 있지만 ..많은 언어에 대해 동일한 문제가 될 수있다, 어쩌면 이건 내 문제가 무엇인지 명확하게하는 데 도움이 세계의 나머지 부분에 대한 스크린 샷은 ... 나는 이런 식으로 (기본적으로 메모리에 테이블 표현) R에 data.frame을 구축 :
mydf <- structure(list(ts_key = c("somekey",
"somekey"), ts_language = c("de", "en"
), ts_labels = c("\"Kurztitel\" => \"Wohlbefinden\",\"mögliche_Antworten\" => \"fantastisch,so lala,total fertig\",\"Wortlaut\" => \"Wie geht es?\"",
"\"available_items\" => \"awesome,somewhat ok,wasted\",\"short_title\" => \"well being\",\"wording\" => \"How are you?\""
)), .Names = c("ts_key", "ts_language", "ts_labels"), row.names = c(NA,
-2L), class = "data.frame")
그래서 메모리 테이블/data.frame이 같은 hstore
을 포함 문자를 열의 하나로 사용합니다.
dbWriteTable(myconnection,"somePostgresTableWithTheRightStructure",mydf,append=T)
를 그냥 쿼리 또는 명시 적 루프를 구축 할 필요없이 DB에 전체 data.frame 쓰기 : I 행 많이 가진 data.frame을 가지고 단순히 사용할 수 있기 때문에 이 매우 편리합니다. 나는 이것을 지키고 싶지만 단지 dbWriteTable
에 hstore (text, text)를 어떻게 사용 하는지를 모르겠습니다.
'=>'에 대한 래퍼를 작성하여 코드를 마이그레이션 할 수있을 때까지 패키지에 임시 방편으로 포함시킬 수 있습니까? –
현재 모든 것이 작동합니다. 나는이 기능을 가지고있다 : https://github.com/mbannert/pgsqltsmap/blob/master/R/create_hstore.R 문자 표현을 생성하므로 데이터를 가질 수있다.프레임은 (다른 것들 중에서) hstore 열을 포함합니다. 너가 말하는게 이거니? 나는 단지 dbWriteTable을 사용하지 않고 단일 INSERT를 많이 만들지 않고 싶지 않다. –
필자는 기본적으로 패키지에'=>'함수를 가져 오는 것을 의미했지만, @ Denis의 설명에 따르면 SQL에 문제가있는 것처럼 보입니다. –